summaryrefslogtreecommitdiff
path: root/in_practice/breakout/game.h
blob: 31f5dcd5dec7ab527247b2667e599d6cc02e4af2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef GAME_H
#define GAME_H

#include "types.h"
#include "input.h"
#include "sprite.h"
#include "level.h"
#include "ball.h"

typedef enum {
	game_active,
	game_menu,
	game_win
} game_state_enum;

typedef struct {
	game_state_enum state;
	i32 running;
	input_t input;
	i32 width, height;
	const char *bindir;
	sprite_renderer_t renderer;
	level_t level;
	object_t player;
	ball_t ball;
} game_t;

extern game_t init_game(i32 width, i32 height);
extern void process_input(game_t *game);
extern void update_game(game_t *game, f32 dt);
extern void render_game(game_t game);

#endif