#ifndef GAME_H
#define GAME_H
#include "tomcat/renderer/camera.h"
#include "player.h"
#include "tomcat/terrain.h"
#include "tomcat/math/vector.h"
#include "tomcat/math/matrix4x4.h"
#include "tomcat/input.h"
#include "tomcat/util/util.h"
#include "tomcat/util/util_time.h"
#include "tomcat/renderer/renderer_types.h"
#include "tomcat/renderer/window.h"
typedef enum
{
MENU,
RUNNING,
EXIT
}GameState;
#define NUM_ENTITIES 1
#define WINDOW_WIDTH 1024
#define WINDOW_HEIGHT 768
#define WINDOW_ASPECT_RATIO (float)WINDOW_WIDTH / (float)WINDOW_HEIGHT
typedef struct _Game
{
GameState gameState;
Shader *shaderProgram, *terrainProgram, *skyboxProgram, *particlesProgram;
Entity ents[NUM_ENTITIES];
Texture *normalMap[2];
Texture *defaultNormalMap;
Terrain *terrain;
Skybox sky;
Player player;
Camera *camera;
Window *window;
ParticleSystem *s;
} Game;
extern void LoadResources(Game *game);
extern void Draw(Game *game);
extern void ProcessInput(Game *game);
extern void CleanUp(Game *game);
#endif // GAME_H