summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asset_defs.h4
-rw-r--r--include/sprite.h27
-rw-r--r--include/zombies.h12
3 files changed, 37 insertions, 6 deletions
diff --git a/include/asset_defs.h b/include/asset_defs.h
index 6dee5d4..d6af444 100644
--- a/include/asset_defs.h
+++ b/include/asset_defs.h
@@ -10,11 +10,15 @@ image* img_icon_bullets;
image* img_icon_nova;
image* img_drop;
+image* img_spawner;
image* img_zombie_chunk_hand;
image* img_zombie_chunk_foot;
image* img_zombie_chunk_blood;
+image* img_tile_cobblestone;
+
+
void load_assets();
#endif \ No newline at end of file
diff --git a/include/sprite.h b/include/sprite.h
new file mode 100644
index 0000000..58ff293
--- /dev/null
+++ b/include/sprite.h
@@ -0,0 +1,27 @@
+#ifndef INCLUDE_SPRITE
+#define INCLUDE_SPRITE
+
+#include <projectbase/project_base.h>
+
+typedef struct t_sprite {
+ image* image;
+ int current_frame;
+ int frame_count;
+ int frame_width;
+ int frame_height;
+ float sec_per_frame;
+ float time;
+} sprite;
+
+typedef struct t_sprite_frame {
+ vec2f tl;
+ vec2f tr;
+ vec2f bl;
+ vec2f br;
+} sprite_frame;
+
+sprite create_sprite(image* img, int frame_count, int fwidth, int fheight, float sec_per_frame);
+void update_sprite(sprite* sprite);
+sprite_frame get_frame(sprite* sprite);
+
+#endif \ No newline at end of file
diff --git a/include/zombies.h b/include/zombies.h
index c99063e..72836ea 100644
--- a/include/zombies.h
+++ b/include/zombies.h
@@ -6,6 +6,7 @@
#include "players.h"
#include "objects.h"
#include "pathfinding.h"
+#include "sprite.h"
typedef struct t_zombie {
bool alive;
@@ -20,21 +21,20 @@ typedef struct t_zombie {
} zombie;
typedef struct t_spawner {
+ bool active;
vec2 position;
float sec_since_last_spawn;
+ sprite sprite;
} spawner;
-#define MAX_SPAWNERS (3)
+#define MAX_SPAWNERS (5)
// data data that is stored on disk
-spawner spawner_tiles[MAX_SPAWNERS] = {
- {15, 5, 999},
- {3, 8, 999},
- {11, 18, 999},
-};
+spawner spawner_tiles[MAX_SPAWNERS] = {0};
#define MAX_ZOMBIES (50)
zombie zombies[MAX_ZOMBIES] = {0};
+void create_spawner(vec2 position);
void draw_spawners(platform_window* window);
void draw_zombies(platform_window* window);
void spawn_zombie(int x, int y);