summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2023-10-28 14:58:27 +0200
committerAldrik Ramaekers <aldrik@amftech.nl>2023-10-28 14:58:27 +0200
commit2f3be64ddfcd5beac009b56cee34812e20849ef1 (patch)
treed3d0eab4c11d0061cf287489eef9d82df65ae89a
parent7d87e8e3e9eccbb3ae351f3218276b2dae506665 (diff)
remove img from sprite struct
-rw-r--r--.vscode/settings.json6
-rw-r--r--build/zombies.exebin1979153 -> 1979153 bytes
-rw-r--r--include/sprite.h3
-rw-r--r--src/game.c4
-rw-r--r--src/players.c2
-rw-r--r--src/sprite.c9
-rw-r--r--src/zombies.c2
7 files changed, 14 insertions, 12 deletions
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..6386813
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+ "files.associations": {
+ "*.ejs": "html",
+ "sprite.h": "c"
+ }
+} \ No newline at end of file
diff --git a/build/zombies.exe b/build/zombies.exe
index ce05408..214f186 100644
--- a/build/zombies.exe
+++ b/build/zombies.exe
Binary files differ
diff --git a/include/sprite.h b/include/sprite.h
index a5e04d8..7e0fa41 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -4,13 +4,14 @@
#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;
+ int img_width;
+ int img_height;
} sprite;
typedef struct t_sprite_frame {
diff --git a/src/game.c b/src/game.c
index 6bb0301..a9a91c1 100644
--- a/src/game.c
+++ b/src/game.c
@@ -251,10 +251,6 @@ void update_client(platform_window* window) {
case MESSAGE_USER_LIST: {
protocol_user_list* msg_players = (protocol_user_list*)msg;
memcpy(players, msg_players->players, sizeof(players));
-
- for (int i = 0; i < MAX_PLAYERS; i++) {
- players[i].sprite.image = img_player;
- }
} break;
case MESSAGE_ZOMBIE_LIST: {
diff --git a/src/players.c b/src/players.c
index 03ee4e0..51418ed 100644
--- a/src/players.c
+++ b/src/players.c
@@ -249,7 +249,7 @@ void draw_players(platform_window* window) {
render_quad_with_outline(box.bl_u, box.br_u, box.bl_d, box.br_d, rgb(200,150,120));
*/
sprite_frame frame = sprite_get_frame(&players[i].sprite);
- renderer->render_image_quad_partial(players[i].sprite.image,
+ renderer->render_image_quad_partial(img_player,
box.tl_u.x, box.tl_u.y,
box.bl_d.x, box.bl_d.y,
box.br_d.x, box.br_d.y,
diff --git a/src/sprite.c b/src/sprite.c
index fa6f2e9..c905f7a 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -6,7 +6,8 @@ sprite create_sprite(image* img, int frame_count, int fwidth, int fheight, float
s.frame_count = frame_count;
s.frame_height = fheight;
s.frame_width = fwidth;
- s.image = img;
+ s.img_width = img->width;
+ s.img_height = img->height;
s.sec_per_frame = sec_per_frame;
s.time = 0.0f;
return s;
@@ -24,10 +25,8 @@ void update_sprite(sprite* sprite) {
sprite_frame sprite_get_frame(sprite* sprite) {
sprite_frame frame = {0};
- if (!sprite->image->loaded) return frame;
-
- int columns = sprite->image->width / sprite->frame_width;
- int rows = sprite->image->height / sprite->frame_height;
+ int columns = sprite->img_width / sprite->frame_width;
+ int rows = sprite->img_height/ sprite->frame_height;
float column_percentage = 1.0f / columns;
float row_percentage = 1.0f / rows;
diff --git a/src/zombies.c b/src/zombies.c
index 55c0c57..c72e04b 100644
--- a/src/zombies.c
+++ b/src/zombies.c
@@ -85,7 +85,7 @@ void draw_spawners(platform_window* window) {
tile tile = loaded_map.heightmap[spawner.position.y][spawner.position.x];
sprite_frame frame = sprite_get_frame(&spawner.sprite);
- renderer->render_image_quad_partial(spawner.sprite.image,
+ renderer->render_image_quad_partial(img_spawner,
tile.tl.x, tile.tl.y,
tile.bl.x, tile.bl.y,
tile.br.x, tile.br.y,