aboutsummaryrefslogtreecommitdiff
path: root/src/games/minesweeper/Minesweeper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/games/minesweeper/Minesweeper.cpp')
-rw-r--r--src/games/minesweeper/Minesweeper.cpp32
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,