diff options
Diffstat (limited to 'src/games/minesweeper/Minesweeper.cpp')
| -rw-r--r-- | src/games/minesweeper/Minesweeper.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/games/minesweeper/Minesweeper.cpp b/src/games/minesweeper/Minesweeper.cpp index 2174ab8..8e27eb3 100644 --- a/src/games/minesweeper/Minesweeper.cpp +++ b/src/games/minesweeper/Minesweeper.cpp @@ -1,5 +1,7 @@ -#include <renderer/RenderGroup.hpp> #include <games/minesweeper/Minesweeper.hpp> +#include <renderer/Renderer.hpp> + +#include <imgui.h> #include <algorithm> #include <random> @@ -7,8 +9,7 @@ // Todo: winning condition (maybe: total_cells - uncovered_cells = mine_count) -Minesweeper::Minesweeper(RenderGroup& render_group) - : m_render_group {render_group} +Minesweeper::Minesweeper() { m_font.Init("fonts/dejavu_ttf/DejaVuSansMono.ttf", 16); for (uint32_t i = 0; i < m_digit_glyphs.size(); ++i) { @@ -112,9 +113,8 @@ Minesweeper::InitAdjacentMineCounters() bool Minesweeper::Update(std::vector<SDL_Event>& events) { - Color clear_color = {0.3f, 0.2f, 0.3f}; - m_render_group.SetCameraSize(4.0f, 3.0f); - m_render_group.Clear(clear_color); + g_renderer.SetCameraSize(4.0f, 3.0f); + g_renderer.Clear({0.3f, 0.2f, 0.3f}); for (SDL_Event &event : events) { if (m_run_state == exit) { @@ -171,8 +171,8 @@ Minesweeper::ProcessEventDuringResume(SDL_Event &event) } break; case SDL_EVENT_MOUSE_BUTTON_DOWN: { - V2F32 click_screen_pos = {event.button.x, (float)m_render_group.m_ScreenHeight -1 - event.button.y}; - V2F32 click_view_pos = ScreenPosToViewPos(click_screen_pos, m_render_group); + V2F32 click_screen_pos = {event.button.x, (float)g_renderer.m_screen_h-1 - event.button.y}; + V2F32 click_view_pos = ScreenPosToViewPos(click_screen_pos); float x_adjusted = click_view_pos.x - m_grid_pos.x; float y_adjusted = click_view_pos.y - m_grid_pos.y; @@ -285,12 +285,12 @@ Minesweeper::IsMine(int32_t x, int32_t y) } V2F32 -Minesweeper::ScreenPosToViewPos(V2F32 screen_pos, RenderGroup &render_group) +Minesweeper::ScreenPosToViewPos(V2F32 screen_pos) { // e.g. [0, 1024] -> [0, 1] -> [0, 4] // e.g. [0, 768] -> [0, 1] -> [0, 3] - float screen_width = (float)render_group.m_ScreenWidth; - float screen_height = (float)render_group.m_ScreenHeight; + float screen_width = (float)g_renderer.m_screen_w; + float screen_height = (float)g_renderer.m_screen_h; V2F32 view_pos; view_pos.x = (screen_pos.x / screen_width) * m_world_width; @@ -381,7 +381,7 @@ Minesweeper::DrawBoard() bool is_mine = IsMine(x, y); if (is_covered) { - m_render_group.PushRectangle(cell_rect, 0.0f, covered_cell_color); + g_renderer.PushRectangle(cell_rect, 0.0f, covered_cell_color); if (is_flagged) { @@ -396,7 +396,7 @@ Minesweeper::DrawBoard() flag_pos.x + flag_size.x, flag_pos.y + flag_size.y, }; - m_render_group.PushRectangle(flag_rect, flag_pos.z, flag_color); + g_renderer.PushRectangle(flag_rect, flag_pos.z, flag_color); } } else { @@ -412,10 +412,10 @@ Minesweeper::DrawBoard() mine_pos.x + m_cell_inner_size.x, mine_pos.y + m_cell_inner_size.y, }; - m_render_group.PushRectangle(mine_rect, mine_pos.z, mine_color); + g_renderer.PushRectangle(mine_rect, mine_pos.z, mine_color); } else { - m_render_group.PushRectangle(cell_rect, 0.0f, uncovered_cell_color); + g_renderer.PushRectangle(cell_rect, 0.0f, uncovered_cell_color); // Todo: Figure out how to scale this properly. // 256.0f is a random number that just works for now. @@ -425,7 +425,7 @@ Minesweeper::DrawBoard() 256.0f }; size_t mine_count_val = (size_t)m_adjacent_mine_counts[y*m_grid_width + x]; - m_render_group.PushBitmap( + g_renderer.PushMonoBitmap( mine_count_pos, m_digit_glyphs[mine_count_val].bitmap.width, m_digit_glyphs[mine_count_val].bitmap.height, |
