aboutsummaryrefslogtreecommitdiffstats
path: root/src/game.c
diff options
context:
space:
mode:
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();
}