58 lines
983 B
C
58 lines
983 B
C
#ifndef GAME_H
|
|
#define GAME_H
|
|
|
|
#include <time.h>
|
|
#include "event.h"
|
|
#include "texture_manager.h"
|
|
#include "ecs/ecs.h"
|
|
|
|
/**
|
|
* @brief Game data.
|
|
* There should be only one instance of this struct.
|
|
*
|
|
* @param event Events data
|
|
* @param texture_manager Texture manager instance
|
|
* @param entity_manager Entity manager instance
|
|
* @param is_running Game running state
|
|
* @param delta_time_ms Frame time
|
|
*/
|
|
typedef struct game_t {
|
|
event_t event;
|
|
texture_manager_t texture_manager;
|
|
entity_manager_t entity_manager;
|
|
|
|
bool is_running;
|
|
double delta_time_ms;
|
|
} game_t;
|
|
|
|
/**
|
|
* @brief Global game instance
|
|
*/
|
|
extern game_t game;
|
|
|
|
/**
|
|
* @brief Initialise game
|
|
*/
|
|
void game_init(void);
|
|
|
|
/**
|
|
* @brief Handle event like inputs
|
|
*/
|
|
void game_handle_event(void);
|
|
|
|
/**
|
|
* @brief Update game
|
|
*/
|
|
void game_update(void);
|
|
|
|
/**
|
|
* @brief Render game
|
|
*/
|
|
void game_render(void);
|
|
|
|
/**
|
|
* @brief Free game instance
|
|
*/
|
|
void game_exit(void);
|
|
|
|
#endif // GAME_H
|