diff options
Diffstat (limited to 'src/games/minesweeper/Minesweeper.cpp')
| -rw-r--r-- | src/games/minesweeper/Minesweeper.cpp | 58 |
1 files changed, 15 insertions, 43 deletions
diff --git a/src/games/minesweeper/Minesweeper.cpp b/src/games/minesweeper/Minesweeper.cpp index a1886ff..e110acb 100644 --- a/src/games/minesweeper/Minesweeper.cpp +++ b/src/games/minesweeper/Minesweeper.cpp @@ -1,3 +1,4 @@ +#include "games/Game.hpp" #include <games/minesweeper/Minesweeper.hpp> #include <renderer/Renderer.hpp> @@ -117,31 +118,31 @@ Minesweeper::Update(std::vector<SDL_Event>& events) g_renderer.Clear({0.3f, 0.2f, 0.3f}); for (SDL_Event &event : events) { - if (m_run_state == exit) { + if (m_game_status == game_exit) { return false; } - else if (m_run_state == pause) { + else if (m_game_status == game_paused) { ProcessEventDuringPause(event); } - else if (m_run_state == resume) { + else if (m_game_status== game_resuming) { ProcessEventDuringResume(event); } } - if (m_run_state == exit) { + if (m_game_status == game_exit) { return false; } - if (m_run_state == pause) { + if (m_game_status == game_paused) { DrawBoard(); - DrawPauseMenu(); + DrawGamePausedMenu(); } - else if (m_run_state == start) { + else if (m_game_status == game_starting) { DrawStartMenu(); } - else if (m_run_state == resume) { + else if (m_game_status == game_resuming) { DrawBoard(); } - else if (m_run_state == game_over) { + else if (m_game_status == game_over) { DrawBoard(); DrawGameOverMenu(); } @@ -155,7 +156,7 @@ Minesweeper::ProcessEventDuringPause(SDL_Event &event) switch (event.type) { case SDL_EVENT_KEY_DOWN: { if (event.key.key == SDLK_ESCAPE) { - m_run_state = resume; + m_game_status = game_resuming; } } break; @@ -169,7 +170,7 @@ Minesweeper::ProcessEventDuringResume(SDL_Event &event) switch (event.type) { case SDL_EVENT_KEY_DOWN: { if (event.key.key == SDLK_ESCAPE) { - m_run_state = pause; + m_game_status = game_paused; } } break; @@ -200,7 +201,7 @@ Minesweeper::ProcessEventDuringResume(SDL_Event &event) if (IsMine(x, y)) { m_is_covered_bitmap[y] &= ~(1 << x); UncoverMines(); - m_run_state = game_over; + m_game_status = game_over; } else { Uncover(x, y); @@ -302,22 +303,6 @@ Minesweeper::ScreenPosToViewPos(V2F32 screen_pos) } void -Minesweeper::DrawPauseMenu() -{ - ImGui::Begin("MinesweeperPause"); - if (ImGui::Button("Resume")) { - m_run_state = resume; - } - if (ImGui::Button("Restart")) { - m_run_state = start; - } - if (ImGui::Button("Exit")) { - m_run_state = exit; - } - ImGui::End(); -} - -void Minesweeper::DrawStartMenu() { ImGui::Begin("MinesweeperStart"); @@ -332,23 +317,10 @@ Minesweeper::DrawStartMenu() } if (ImGui::Button("Start")) { Reset(m_difficulty); - m_run_state = resume; - } - if (ImGui::Button("Exit")) { - m_run_state = exit; - } - ImGui::End(); -} - -void -Minesweeper::DrawGameOverMenu() -{ - ImGui::Begin("MinesweeperGameOverMenu"); - if (ImGui::Button("Play Again")) { - m_run_state = start; + m_game_status = game_resuming; } if (ImGui::Button("Exit")) { - m_run_state = exit; + m_game_status = game_exit; } ImGui::End(); } |
