aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathansmithsmith <thenathansmithsmith@gmail.com>2023-12-22 17:28:41 -0700
committernathansmithsmith <thenathansmithsmith@gmail.com>2023-12-22 17:28:41 -0700
commit2fb4b9a9b8f1de6d22a356ad58cd6ebef15126c5 (patch)
tree29d0a51788deea1f35dd07904e02deb735e5ced6
parentaf1c26fa866a290eeace75fdf4e0bac8b43e09c5 (diff)
Finally added the end button lol
-rw-r--r--src/screens/gameScreen.c26
-rw-r--r--src/screens/howToPlayScreen.c1
-rw-r--r--src/screens/infoScreen.c22
-rw-r--r--src/screens/infoScreen.h2
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];