2D_Engine_C/src/headers/game.h

45 lines
880 B
C

#ifndef GAME_H
#define GAME_H
#include "events.h"
#include "texture_manager.h"
#include "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 {
events_t events;
texture_manager_t texture_manager;
entity_manager_t entity_manager;
bool is_running;
double delta_time_ms;
} game_t;
// Global game instance
extern game_t game;
// Initialise game
void game_init(void);
// Handle event like inputs
void game_handle_event(void);
// Update game
void game_update(void);
// Render game
void game_render(void);
// Free game instance
void game_exit(void);
#endif // GAME_H