aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/common.h8
-rw-r--r--include/entities.h48
-rw-r--r--include/world.h5
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);