diff options
author | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-12-22 17:28:41 -0700 |
---|---|---|
committer | nathansmithsmith <thenathansmithsmith@gmail.com> | 2023-12-22 17:28:41 -0700 |
commit | 2fb4b9a9b8f1de6d22a356ad58cd6ebef15126c5 (patch) | |
tree | 29d0a51788deea1f35dd07904e02deb735e5ced6 | |
parent | af1c26fa866a290eeace75fdf4e0bac8b43e09c5 (diff) |
Finally added the end button lol
-rw-r--r-- | src/screens/gameScreen.c | 26 | ||||
-rw-r--r-- | src/screens/howToPlayScreen.c | 1 | ||||
-rw-r--r-- | src/screens/infoScreen.c | 22 | ||||
-rw-r--r-- | src/screens/infoScreen.h | 2 |
4 files changed, 38 insertions, 13 deletions
diff --git a/src/screens/gameScreen.c b/src/screens/gameScreen.c index de650c5..8fe141a 100644 --- a/src/screens/gameScreen.c +++ b/src/screens/gameScreen.c @@ -198,7 +198,23 @@ void drawGameScreenGui(Game * game) { drawRadar(game, &gameScreen->radar); } +void resetGame(Game * game, GameScreen * gameScreen) { + gameScreen->gameOver = false; + gameScreen->lastLevel = 0; + gameScreen->levelComplete = false; + gameScreen->gameComplete = false; + resetKillLog(&game->killLog); + + startLevel(game, &game->levels, 0); +} + void handleGameScreenInput(Game * game, GameScreen * gameScreen) { + if (IsKeyPressed(KEY_E)) { + resetGame(game, gameScreen); + closeGameScreen(game); + game->screenId = SCREEN_MAIN_MENU; + } + switch(GetKeyPressed()) { case KEY_ONE: gameScreen->mainCamera = FIRST_PERSON_CAMERA; @@ -385,16 +401,6 @@ void drawGameOverGameScreen(Game * game, GameScreen * gameScreen) { DrawText(gameOverMsg, position.x, position.y, GAME_SCREEN_GAME_OVER_FONT_SIZE, GREEN); } -void resetGame(Game * game, GameScreen * gameScreen) { - gameScreen->gameOver = false; - gameScreen->lastLevel = 0; - gameScreen->levelComplete = false; - gameScreen->gameComplete = false; - resetKillLog(&game->killLog); - - startLevel(game, &game->levels, 0); -} - bool handleGameOver(Game * game, GameScreen * gameScreen) { Entity * player = getEntityFromWorld(game->world, 0); diff --git a/src/screens/howToPlayScreen.c b/src/screens/howToPlayScreen.c index ff6ccd2..80685cc 100644 --- a/src/screens/howToPlayScreen.c +++ b/src/screens/howToPlayScreen.c @@ -31,6 +31,7 @@ void updateHowToPlayScreen(Game * game) { " Shift to slow down the mouse and scroll wheel\n" " Ctrl to speed up the moues and scroll wheel\n" " Number key to change the camera view\n" + " e to end game\n" " Left click to shoot\n" " Right click to auto target\n" "Using auto target:\n" diff --git a/src/screens/infoScreen.c b/src/screens/infoScreen.c index 745ea03..9e7f8d5 100644 --- a/src/screens/infoScreen.c +++ b/src/screens/infoScreen.c @@ -44,7 +44,7 @@ const EntityUserInfo infoScreenEntityInfo[INFO_SCREEN_ENTITY_COUNT] = { (EntityUserInfo){ .type = ENTITY_MUSSOLINI, .assetId = MUSSOLINI_ASSET, - .cameraDistance = 100.0, + .cameraDistance = 150.0, .msg = "A deadly mother fucker named after the Italian fascist dictator" } }; @@ -58,6 +58,12 @@ void initInfoScreen(Game * game) { infoScreen->nextButton = (Rectangle){100.0, 85.0, 100.0, 50.0}; infoScreen->resetButton = (Rectangle){0.0, 145.0, 100.0, 50.0}; + // Shitty thingy. + infoScreen->controlsPosition = (Vector2){ + 10.0, + infoScreen->resetButton.y + infoScreen->resetButton.height + 10 + }; + // Camera. infoScreen->camera = (Camera3D){ .position = (Vector3){0.0, 0.0, infoScreenEntityInfo[0].cameraDistance}, @@ -144,7 +150,7 @@ void drawInfoScreenUI(Game * game, InfoScreen * infoScreen) { int currentEntity = infoScreen->currentEntity; // Back to main menu button. - if (GuiButton(infoScreen->goBackButton, "Main menu")) + if (GuiButton(infoScreen->goBackButton, "Main Menu")) game->screenId = SCREEN_MAIN_MENU; // Back button. @@ -156,9 +162,19 @@ void drawInfoScreenUI(Game * game, InfoScreen * infoScreen) { infoScreenNext(infoScreen); // Reset button. - if (GuiButton(infoScreen->resetButton, "Reest")) + if (GuiButton(infoScreen->resetButton, "Reset")) infoScreenResetEntity(infoScreen); + // I need to tell the stupid players how to use this fucker. + const char * stupidFuck = "-Right click and mouse to change angle\n" + "-Middle click with right click for a different type of rotation\n" + "-scroll wheel to zoom in and out\n" + "-r to reset\n" + "-right and left arrows to go to next and previous entities"; + + DrawText(stupidFuck, infoScreen->controlsPosition.x, infoScreen->controlsPosition.y, + ENTITY_INFO_FONT_SIZE, GREEN); + // Draw ship name. EntityType type = infoScreenEntityInfo[currentEntity].type; const char * name = entityTypeInfo[type].name; diff --git a/src/screens/infoScreen.h b/src/screens/infoScreen.h index a84180c..f1a268f 100644 --- a/src/screens/infoScreen.h +++ b/src/screens/infoScreen.h @@ -26,6 +26,8 @@ typedef struct InfoScreen { Rectangle nextButton; Rectangle resetButton; + Vector2 controlsPosition; + Camera3D camera; float distances[ENTITY_USER_INFO_MSG_MAX]; |