diff options
author | Charadon <dev@iotib.net> | 2022-09-21 09:06:48 -0400 |
---|---|---|
committer | Charadon <dev@iotib.net> | 2022-09-21 09:06:48 -0400 |
commit | ecf9374e3e75d6528afb44f013432844d5fc01dd (patch) | |
tree | 3634c32689cb1f9684e90d3fe69a03bab98f6231 /src/title.c | |
parent | 4ea69698424f7bfe93d0e9142f6f50c0583ef168 (diff) | |
download | Pong-C-ecf9374e3e75d6528afb44f013432844d5fc01dd.tar.gz |
Made it possible for new controls to select All Scores Screen
Diffstat (limited to 'src/title.c')
-rw-r--r-- | src/title.c | 62 |
1 files changed, 46 insertions, 16 deletions
diff --git a/src/title.c b/src/title.c index 7594ed9..5ab0bf3 100644 --- a/src/title.c +++ b/src/title.c @@ -8,6 +8,10 @@ struct LeaderboardEntries { struct LeaderboardEntries Top10[10]; +/* Fun fact, I don't know what this does for the most part! + * Okay, well I kind of do. It sorts the leaderboard from highest score to lowest. + * But uh, I don't know how it does, but it works! + */ static int compare_int(const void *Score1, const void *Score2) { const struct LeaderboardEntries *Entry1 = *(struct LeaderboardEntries**) Score1; const struct LeaderboardEntries *Entry2 = *(struct LeaderboardEntries**) Score2; @@ -421,6 +425,7 @@ int title_screen() { Vector2 NewPosition = GetMousePosition(); Texture2D MouseCursor = LoadTexture("resources/cursor.png"); bool MouseCursorIn = true; + bool LeaderboardButtonSelected = false; DisableCursor(); while(TitleScreenGoing == true && GameGoing == true) { @@ -447,6 +452,21 @@ int title_screen() { Mouse.x += OldPosition.x-NewPosition.x; } } + /* Check which button the mouse is hovering over. */ + if(CheckCollisionRecs(Mouse, Versus)) { + Choice = 0; + } else if(CheckCollisionRecs(Mouse, Marathon)) { + Choice = 1; + } else if(CheckCollisionRecs(Mouse, Settings)) { + Choice = 2; + } else if(CheckCollisionRecs(Mouse, Help)) { + Choice = 3; + } else if(CheckCollisionRecs(Mouse, Exit)) { + Choice = 4; + } else if(CheckCollisionRecs(Mouse, AllScores)) { + LeaderboardButtonSelected = true; + } + /* Gamepad & Keyboard */ switch (player_controls_pressed()) { @@ -456,14 +476,33 @@ int title_screen() { case CONTROLLER_DOWN: ++Choice; break; + case CONTROLLER_RIGHT: + if(Choice == 1) { + LeaderboardButtonSelected = true; + break; + } + break; + case CONTROLLER_LEFT: + if(LeaderboardButtonSelected == true) { + LeaderboardButtonSelected = false; + } + break; default: break; } + /* Make sure choice selector doesn't go off screen */ if(Choice > 4) { Choice = 4; } else if(Choice < 0) { Choice = 0; } + + /* Unselect the Leaderboard button if Marathon is no longer selected. */ + if(Choice != 1) { + LeaderboardButtonSelected = false; + } + + /* Unlock, and locking cursor */ if (IsKeyPressed(KEY_ESCAPE)) { EnableCursor(); MouseCursorIn = false; @@ -473,20 +512,9 @@ int title_screen() { EndDrawing(); MouseCursorIn = true; } - /* Mouse */ - if(CheckCollisionRecs(Mouse, Versus)) { - Choice = 0; - } else if(CheckCollisionRecs(Mouse, Marathon)) { - Choice = 1; - } else if(CheckCollisionRecs(Mouse, Settings)) { - Choice = 2; - } else if(CheckCollisionRecs(Mouse, Help)) { - Choice = 3; - } else if(CheckCollisionRecs(Mouse, Exit)) { - Choice = 4; - } - /* Select Menu Item */ + + /* Highlight selected Menu Item */ switch(Choice) { case 0: Selected = &Versus; @@ -505,7 +533,9 @@ int title_screen() { break; default: break; - } /* Activate menu item */ + } + + /* Activate menu item */ if( player_controls_pressed() == CONTROLLER_ACTIVATE ){ switch(Choice) { case 2: @@ -553,9 +583,9 @@ int title_screen() { } skip: if (Choice == 1) { - if(CheckCollisionRecs(Mouse, AllScores)) { + if(LeaderboardButtonSelected == true) { DrawRectangleRec(AllScores, RED); - if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + if(player_controls_pressed() == CONTROLLER_ACTIVATE) { score_screen(&MainCamera); } } |