diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/common.h | 8 | ||||
-rw-r--r-- | include/entities.h | 48 | ||||
-rw-r--r-- | include/world.h | 5 |
3 files changed, 58 insertions, 3 deletions
diff --git a/include/common.h b/include/common.h index 095b3e3..31126d7 100644 --- a/include/common.h +++ b/include/common.h @@ -54,11 +54,17 @@ typedef struct { vec2 end; } Ray; +typedef struct{ + float red; + float green; + float blue; +} Color; + /** * Define the game's name (displayed in the window title). */ -#define GAME_NAME "Independent Study v.0.4 alpha" +#define GAME_NAME "Independent Study v.0.5 alpha - NOW WITH SOUND!" /** * The desired width of the game window. diff --git a/include/entities.h b/include/entities.h index dd3adab..141d29a 100644 --- a/include/entities.h +++ b/include/entities.h @@ -34,6 +34,50 @@ enum MOB_SUB { MS_TRIGGER }; +enum BUILD_SUB{ + TOWN_HALL = 1, + HOUSE, + HOUSE2, + HOUSE3, + HOUSE4, + FOUNTAIN +}; + +class Particles{ +public: + vec2 loc; + float width; + float height; + float velx; + float vely; + Color color; + int duration; + bool canMove; + Particles(float x, float y, float w, float h, float vx, float vy, Color c, int d){ + loc.x = (x); + loc.y = (y); + width = (w); + height = (h); + velx = vx; + vely = vy; + color.red = (c.red); + color.green = (c.green); + color.blue = (c.blue); + duration = d; + } + ~Particles(){} + void draw(){ + glColor3f(color.red,color.green,color.blue); + glRectf(loc.x,loc.y,loc.x+width,loc.y+height); + } + bool kill(float delta){ + duration -= delta; + if(duration <= 0) + return true; + else return false; + } +}; + class Entity{ public: Inventory *inv; @@ -58,6 +102,7 @@ public: bool canMove; // Enables movement bool right,left; // Direction faced by Entity bool alive; + bool hit; unsigned char ground; // Shows how the Entity is grounded (if it is) /* @@ -118,11 +163,12 @@ class Structures : public Entity{ public: void *inWorld; void *inside; + BUILD_SUB bsubtype; Structures(); ~Structures(); - unsigned int spawn(_TYPE, float, float); + unsigned int spawn(_TYPE, BUILD_SUB, float, float); }; class Mob : public Entity{ diff --git a/include/world.h b/include/world.h index 1e78cd0..4e02a08 100644 --- a/include/world.h +++ b/include/world.h @@ -164,12 +164,15 @@ public: std::vector<Mob *> mob; std::vector<Entity *> entity; std::vector<Object *> object; + std::vector<Particles *> particles; - void addStructure(_TYPE t,float x,float y,World *outside,World *inside); + void addStructure(_TYPE t,BUILD_SUB sub,float x,float y,World *outside,World *inside); + void addVillage(int bCount, int npcMin, int npcMax,_TYPE t,float x,float y,World *outside,World *inside); void addMob(int t,float x,float y); void addMob(int t,float x,float y,void (*hey)(Mob *)); void addNPC(float x,float y); void addObject(ITEM_ID, bool, const char *, float, float); + void addParticle(float, float, float, float, float, float, Color color, int); void update(Player *p,unsigned int delta); |