aboutsummaryrefslogtreecommitdiff
path: root/09-september/game.h
diff options
context:
space:
mode:
authorThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 23:02:32 +0100
committerThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 23:02:32 +0100
commit6b8af9cf83851c075c6c9514b1deaa931c2b19a4 (patch)
tree428986b49c32e21d3f7a3c2dfa41858ae0153209 /09-september/game.h
Initial commit
Diffstat (limited to '09-september/game.h')
-rw-r--r--09-september/game.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/09-september/game.h b/09-september/game.h
new file mode 100644
index 0000000..3225d39
--- /dev/null
+++ b/09-september/game.h
@@ -0,0 +1,54 @@
+#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