so://phie

freezo

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

blob: 91b8c68dab104162e40807db541b3da4dd8f0dd5 (1034 bytes)[raw]

1#pragma once

2

3typedef struct Assets assets_t;

4typedef struct Game game_t;

5

6#include "entity.h"

7#include "player.h"

8#include "tile.h"

9#include "menu.h"

10#include "level.h"

11#include "effect.h"

12#include "door.h"

13

14#define GAME_SCEEN_TIMER 150

15#define GAME_MUSIC_VOLUME 0.7f

16#define GAME_SOUND_VOLUME 1.0f

17

18typedef enum {

19 STATE_MENU,

20 STATE_GAME,

21} state_e;

22

23struct Assets {

24 Texture2D tiles;

25 Texture2D entities;

26 Texture2D font;

27 Texture2D images;

28 Texture2D background;

29 Sound track;

30 Sound win;

31 Sound lose;

32 Sound locked;

33};

34

35struct Game {

36 state_e state;

37 level_t *level;

38 bool quit;

39 bool defeat;

40 bool victory;

41 menu_t *menu;

42 player_t *player;

43 tile_t **tiles;

44 int tiles_len;

45 entity_t *entities;

46 int entities_len;

47 effect_t **effects;

48 int effects_len;

49 assets_t assets;

50 Camera2D camera;

51 int xp;

52 int sceen_timer;

53 door_t *door;

54 RenderTexture2D overlay;

55 bool is_muted;

56};

57

58game_t *game_create(void);

59void game_update(game_t *game);

60void game_draw(game_t *game);

61void game_free(game_t *game);