aboutsummaryrefslogtreecommitdiffstats
path: root/src/game.c
diff options
context:
space:
mode:
authornathan <nathansmith@disroot.org>2025-07-04 13:00:08 +0000
committernathan <nathansmith@disroot.org>2025-07-04 13:00:08 +0000
commit2b2b69ee31f00aa46ab6baa967e12437ce7334d1 (patch)
tree1ba7fd19c30bb33ef20f55afc84ccfff30460969 /src/game.c
parentde3a92fb2bde8cbec688f788c53f7ba52d6a723a (diff)
downloadFindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.tar.gz
FindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.tar.bz2
FindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.zip
Heightmap, player, and more concepts
Diffstat (limited to 'src/game.c')
-rw-r--r--src/game.c54
1 files changed, 53 insertions, 1 deletions
diff --git a/src/game.c b/src/game.c
index 807220c..778d05e 100644
--- a/src/game.c
+++ b/src/game.c
@@ -3,23 +3,75 @@
void initGame(Game* game)
{
+ game->sceneId = GAME_SCENE;
+
// Settings.
game->settings = defaultSettings();
// Window.
InitWindow(game->settings.windowWidth, game->settings.windowHeight,
"Find Things");
+ SetWindowState(FLAG_WINDOW_RESIZABLE);
+
+ // Assets.
+ initAssets(&game->assets);
+
+ // Player.
+ game->player = createPlayer();
+ game->player.position = (Vector3){50.0, 30.0, 50.0};
+
+ // Heightmap.
+ Mesh heightmapMesh = GenMeshHeightmap(game->assets.images[HEIGHT_MAP_IMAGE],
+ (Vector3){100.0, 30.0, 100.0});
+ game->heightmap = LoadModelFromMesh(heightmapMesh);
+ game->heightmap.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture =
+ game->assets.textures[HEIGHT_MAP_TEXTURE];
+
+ DisableCursor();
+}
+
+void updateMainMenuScene(Game* game)
+{
+ ClearBackground(BLACK);
+}
+
+void updateGameScene(Game* game)
+{
+ ClearBackground(BLACK);
+
+ BeginMode3D(game->player.camera);
+
+ updatePlayer(&game->player, game);
+
+ DrawModel(game->heightmap, Vector3Zero(), 1.0, WHITE);
+
+ EndMode3D();
}
void updateGame(Game* game)
{
BeginDrawing();
- ClearBackground(RAYWHITE);
+
+ switch (game->sceneId)
+ {
+ case MAIN_MENU_SCENE:
+ updateMainMenuScene(game);
+ break;
+ case GAME_SCENE:
+ updateGameScene(game);
+ break;
+ default:
+ break;
+ }
+
+ DrawFPS(0, 0);
EndDrawing();
}
void closeGame(Game* game)
{
+ closeAssets(&game->assets);
+ UnloadModel(game->heightmap);
CloseWindow();
}