From 0c44af8f6c45e5bb957f38cc3e9784ca69524261 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Wed, 7 Dec 2022 23:43:20 +0100 Subject: work --- include/map.h | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/objects.h | 38 +++++++++++++++++++++++++++++++++ include/players.h | 29 +++++++++++++++++++++++++ include/zombies.h | 23 ++++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 include/map.h create mode 100644 include/objects.h create mode 100644 include/players.h create mode 100644 include/zombies.h (limited to 'include') diff --git a/include/map.h b/include/map.h new file mode 100644 index 0000000..0bf1028 --- /dev/null +++ b/include/map.h @@ -0,0 +1,63 @@ +#ifndef INCLUDE_MAP +#define INCLUDE_MAP + +#include + +#include "players.h" +#include "objects.h" + +typedef struct t_tile { + int height; + + // filled in on load. + int topleft; + int topright; + int bottomleft; + int bottomright; + + // filled after each frame. + vec2f tl; + vec2f tr; + vec2f bl; + vec2f br; +} tile; + +tile map_loaded[10][10]; + +// data data that is stored on disk +vec2 spawner_tiles[2] = { + {9, 0}, + {1, 8}, +}; + +typedef struct t_map_info { + int tile_width; + int tile_height; + int px_raised_per_h; + int px_incline; +} map_info; + +// data data that is stored on disk +int map[10][10] = { + {0,0,0,0,0,0,0,0,0,1}, + {0,0,0,0,0,0,0,0,0,0}, + {0,0,0,1,1,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0}, + {0,0,0,1,1,2,1,0,0,0}, + {0,0,0,0,0,0,1,0,0,0}, + {0,0,0,0,0,0,0,0,0,0}, +}; + +void load_map_from_data(); +tile get_tile_under_coords(platform_window* window, float x, float y); +float get_height_of_tile_under_coords(platform_window* window, float tocheckx, float tochecky); +int get_tile_height(platform_window* window); +int get_tile_width(platform_window* window); +bool is_in_bounds(platform_window* window, float x, float y); +void draw_grid(platform_window* window); +map_info get_map_info(platform_window* window); + +#endif \ No newline at end of file diff --git a/include/objects.h b/include/objects.h new file mode 100644 index 0000000..c4bb689 --- /dev/null +++ b/include/objects.h @@ -0,0 +1,38 @@ +#ifndef INCLUDE_OBJECT +#define INCLUDE_OBJECT + +#include + +#include "map.h" + +typedef struct t_vec3f { + float x,y,z; +} vec3f; + +typedef struct t_object { + bool active; + vec2f position; + vec3f size; + float h; +} object; + +typedef struct t_box { + vec2f tl_b; + vec2f tr_b; + vec2f bl_b; + vec2f br_b; + + vec2f tl_u; + vec2f tr_u; + vec2f bl_u; + vec2f br_u; +} box; + +object objects[50]; +int max_objects = 50; + +void create_objects(); +void draw_objects_at_row(platform_window* window, int row); +box get_box_of_object(platform_window* window, object o); + +#endif \ No newline at end of file diff --git a/include/players.h b/include/players.h new file mode 100644 index 0000000..b74ce7e --- /dev/null +++ b/include/players.h @@ -0,0 +1,29 @@ +#ifndef INCLUDE_PLAYER +#define INCLUDE_PLAYER + +#include + +#include "map.h" +#include "objects.h" + +typedef struct t_bullet { + bool active; + float x; + float y; + float h; + float xacceleration; + float yacceleration; +} bullet; + +bullet bullets[500] = {0}; +int max_bullets = 500; + +float playerx = 3; +float playery = 3; + +void shoot(platform_window* window); +void draw_player(platform_window* window); +void draw_bullets(platform_window* window); +float get_player_size(platform_window* window); + +#endif \ No newline at end of file diff --git a/include/zombies.h b/include/zombies.h new file mode 100644 index 0000000..c9e22f1 --- /dev/null +++ b/include/zombies.h @@ -0,0 +1,23 @@ +#ifndef INCLUDE_ZOMBIES +#define INCLUDE_ZOMBIES + +#include + +#include "players.h" +#include "objects.h" + +typedef struct t_zombie { + bool alive; + float health; + vec2f position; +} zombie; + + +zombie zombies[50] = {0}; +int max_zombies = 50; + +void draw_spawners(platform_window* window); +void draw_zombies_at_tile(platform_window* window, int x, int y); +void spawn_zombie(int x, int y); + +#endif \ No newline at end of file -- cgit v1.2.3-70-g09d2