so://phie

freezo

A retro platform game
git clone git://soophie.de/freezo

feat: Updated struct inits


commit: a19857eb6d1b1249122d227d518a56b12383136f
parent: e118d43a767c387eafb5ac13579b5a248756ae26
author: Sophie <info@soophie.de>
time: 2024-12-15 17:42

diff --git a/src/enemy.c b/src/enemy.c

index 466e1e4..c4d2540 100644

--- a/src/enemy.c

+++ b/src/enemy.c

1@@ -8,18 +8,20 @@

2

3 enemy_t *enemy_create(pos_t pos, enemy_e type) {

4 enemy_t *enemy = malloc(sizeof(enemy_t));

5- enemy->pos = pos;

6- enemy->type = type;

7- enemy->on_ground = false;

8- enemy->velocity = 0.0;

9- enemy->gravity = 0.0;

10- enemy->dir = 1;

11- enemy->stunned = false;

12- enemy->frozen = false;

13- enemy->frozen_timer = 0;

14- enemy->fall_height = 0.0;

15- enemy->timer_walking = timer_create(9, 8);

16- enemy->timer_sneaking = timer_create(9, 16);

17+ *enemy = (enemy_t) {

18+ .pos = pos,

19+ .type = type,

20+ .on_ground = false,

21+ .velocity = 0.0,

22+ .gravity = 0.0,

23+ .dir = 1,

24+ .stunned = false,

25+ .frozen = false,

26+ .frozen_timer = 0,

27+ .fall_height = 0.0,

28+ .timer_walking = timer_create(9, 8),

29+ .timer_sneaking = timer_create(9, 16),

30+ };

31 return enemy;

32 }

33

34

35

diff --git a/src/game.c b/src/game.c

index 11f1b44..a98017c 100644

--- a/src/game.c

+++ b/src/game.c

1@@ -13,29 +13,31 @@

2

3 game_t *game_create(void) {

4 game_t *game = malloc(sizeof(game_t));

5- game->state = STATE_GAME;

6- game->level = NULL,

7- game->quit = false;

8- game->defeat = false;

9- game->victory = false;

10- game->menu = menu_create();

11- game->player = NULL;

12- game->tiles = NULL;

13- game->tiles_len = 0;

14- game->entities = NULL;

15- game->entities_len = 0;

16- game->effects = NULL;

17- game->effects_len = 0;

18- game->assets.tiles = texture_load("assets/tiles.png", SCALE);

19- game->assets.entities = texture_load("assets/entities.png", SCALE);

20- game->assets.font = texture_load("assets/font.png", SCALE - 1);

21- game->assets.images = texture_load("assets/images.png", SCALE);

22- game->camera = (Camera2D) {

23- .offset = (pos_t) { 0.0, 0.0 },

24- .zoom = 1,

25+ *game = (game_t) {

26+ .state = STATE_GAME,

27+ .level = NULL,

28+ .quit = false,

29+ .defeat = false,

30+ .victory = false,

31+ .menu = menu_create(),

32+ .player = NULL,

33+ .tiles = NULL,

34+ .tiles_len = 0,

35+ .entities = NULL,

36+ .entities_len = 0,

37+ .effects = NULL,

38+ .effects_len = 0,

39+ .assets.tiles = texture_load("assets/tiles.png", SCALE),

40+ .assets.entities = texture_load("assets/entities.png", SCALE),

41+ .assets.font = texture_load("assets/font.png", SCALE - 1),

42+ .assets.images = texture_load("assets/images.png", SCALE),

43+ .camera = (Camera2D) {

44+ .offset = (pos_t) { 0.0, 0.0 },

45+ .zoom = 1,

46+ },

47+ .xp = 0,

48+ .sceen_timer = 0,

49 };

50- game->xp = 0;

51- game->sceen_timer = 0;

52 level_load(game, LEVEL_1);

53 return game;

54 }

55

56

diff --git a/src/player.c b/src/player.c

index 79a51e7..4391c9f 100644

--- a/src/player.c

+++ b/src/player.c

1@@ -10,22 +10,24 @@

2

3 player_t *player_create(pos_t pos) {

4 player_t *player = malloc(sizeof(player_t));

5- player->pos = pos;

6- player->health = 6;

7- player->on_ground = false;

8- player->velocity = 0.0;

9- player->gravity = 0.0;

10- player->dir = 1;

11- player->sneaking = false;

12- player->shooting = false;

13- player->damage_timer = 0;

14- player->fall_height = 0.0;

15- player->held_enemy = NULL;

16- player->moving = false;

17- player->timer_walking = timer_create(9, 4);

18- player->timer_sneaking = timer_create(9, 8);

19- player->target_entity = NULL;

20- player->shooting_distance = PLAYER_SHOOTING_RANGE;

21+ *player = (player_t) {

22+ .pos = pos,

23+ .health = 6,

24+ .on_ground = false,

25+ .velocity = 0.0,

26+ .gravity = 0.0,

27+ .dir = 1,

28+ .sneaking = false,

29+ .shooting = false,

30+ .damage_timer = 0,

31+ .fall_height = 0.0,

32+ .held_enemy = NULL,

33+ .moving = false,

34+ .timer_walking = timer_create(9, 4),

35+ .timer_sneaking = timer_create(9, 8),

36+ .target_entity = NULL,

37+ .shooting_distance = PLAYER_SHOOTING_RANGE,

38+ };

39 return player;

40 }

41

42

43

diff --git a/todo.md b/todo.md

deleted file mode 100644

index be5c238..0000000

--- a/todo.md

+++ /dev/null

1@@ -1,17 +0,0 @@

2-Todos

3-=====

4-

5-- [x] Improve freeze target detection

6-- [x] Adjust win conditions (check if all gates are frozen)

7-- [x] Add ceiling collision

8-- [x] Victory/Defeat screen (delay)

9-- [x] Add title screen

10-- [ ] Create a file format for designing levels (also entity/tile state)

11-- [ ] Add wall collision

12-- [ ] Add move velocity (for damage and maybe icy surfaces)

13-- [x] Stop enemy movement on walls

14-- [ ] Stop freeze laser on walls

15-- [ ] Add hitboxes (make them visible in debug mode)

16-- [ ] Add countdown

17-- [ ] Add new enemies

18-- [ ] Add boss

19

20

diff --git a/todo.txt b/todo.txt

new file mode 100644

index 0000000..a605b0c

--- /dev/null

+++ b/todo.txt

1@@ -0,0 +1,17 @@

2+Todos

3+=====

4+

5+- [x] Improve freeze target detection

6+- [x] Adjust win conditions (check if all gates are frozen)

7+- [x] Add ceiling collision

8+- [x] Victory/Defeat screen (delay)

9+- [x] Add title screen

10+- [ ] Create a file format for designing levels (also entity/tile state)

11+- [x] Add wall collision

12+- [ ] Add move velocity (for damage and maybe icy surfaces)

13+- [x] Stop enemy movement on walls

14+- [ ] Stop freeze laser on walls

15+- [ ] Add hitboxes (make them visible in debug mode)

16+- [ ] Add countdown

17+- [ ] Add new enemies

18+- [ ] Add boss

19

20