aboutsummaryrefslogtreecommitdiff
path: root/src/games/tetris/Tetris.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/games/tetris/Tetris.cpp')
-rw-r--r--src/games/tetris/Tetris.cpp45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/games/tetris/Tetris.cpp b/src/games/tetris/Tetris.cpp
index 331e8a6..a8004f3 100644
--- a/src/games/tetris/Tetris.cpp
+++ b/src/games/tetris/Tetris.cpp
@@ -1,7 +1,9 @@
#include <games/tetris/Tetromino.hpp>
+#include <games/tetris/Tetris.hpp>
+#include <renderer/Renderer.hpp>
+
#include <SDL3/SDL_events.h>
#include <SDL3/SDL_timer.h>
-#include <games/tetris/Tetris.hpp>
#include <imgui.h>
#include <fstream>
@@ -9,8 +11,7 @@
// Todo: change to new font scaling api in imgui first
// Todo: test text with hardcoded gap + dummy to ensure it gets placed as expected
-Tetris::Tetris(RenderGroup& m_RenderGroup) :
- m_RenderGroup(m_RenderGroup),
+Tetris::Tetris() :
m_ActiveTetromino(m_Board),
m_NextTetromino(m_Board)
{
@@ -37,8 +38,8 @@ void Tetris::Restart() {
bool Tetris::Update(std::vector<SDL_Event> &events) {
Color clear_color = {0.2f, 0.2f, 0.2f, 1.0f};
- m_RenderGroup.SetCameraSize(4.0f, 3.0f);
- m_RenderGroup.Clear(clear_color);
+ g_renderer.SetCameraSize(4.0f, 3.0f);
+ g_renderer.Clear(clear_color);
if (m_RunningState == TetrisRunningState::Restart) {
Restart();
@@ -213,8 +214,8 @@ void Tetris::HandleGameOver() {
}
void Tetris::Draw() {
- m_Board.Draw(m_Level, m_RenderGroup);
- m_ActiveTetromino.Draw(m_RenderGroup);
+ m_Board.Draw(m_Level);
+ m_ActiveTetromino.Draw();
DrawNextTetromino();
DrawStatistics();
@@ -260,7 +261,7 @@ void Tetris::DrawGameOverMenu() {
void Tetris::DrawLineCounter() {
V2F32 view_pos = {0.5f, 2.6f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisLines", nullptr, s_DefaultImGuiWindowFlags);
@@ -273,33 +274,33 @@ void Tetris::DrawStatistics() {
V2F32 view_advance = {0.0f, 0.2f};
V2F32 view_text_title_pos = view_tetrominoes_pos + V2F32(0.02f, 0.4f);
- ImVec2 screen_text_title_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_text_title_pos);
+ ImVec2 screen_text_title_pos = g_renderer.ViewPosToScreenPosImGui(view_text_title_pos);
V2F32 view_text_pos = view_tetrominoes_pos + V2F32(0.4f, 0.16f);
V2F32 view_text_gap = {0.0f, 0.124f};
- ImVec2 screen_text_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_text_pos);
- ImVec2 screen_text_gap = m_RenderGroup.ViewSizeToScreenSizeImGui(view_text_gap);
+ ImVec2 screen_text_pos = g_renderer.ViewPosToScreenPosImGui(view_text_pos);
+ ImVec2 screen_text_gap = g_renderer.ViewSizeToScreenSizeImGui(view_text_gap);
- Tetromino::Draw(Tetromino::t_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::t_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::j_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::j_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::z_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::z_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::o_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::o_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::s_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::s_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::l_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::l_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::i_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::i_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
@@ -332,7 +333,7 @@ void Tetris::DrawStatistics() {
void Tetris::DrawScore() {
V2F32 view_pos = {3.0f, 2.2f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisScore", nullptr, s_DefaultImGuiWindowFlags);
@@ -343,7 +344,7 @@ void Tetris::DrawScore() {
void Tetris::DrawNextTetromino() {
V2F32 text_view_pos = {3.0f, 1.8f};
- ImVec2 text_screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(text_view_pos);
+ ImVec2 text_screen_pos = g_renderer.ViewPosToScreenPosImGui(text_view_pos);
ImGui::SetNextWindowPos(text_screen_pos);
ImGui::Begin("TetrisNextTetromino", nullptr, s_DefaultImGuiWindowFlags);
@@ -352,12 +353,12 @@ void Tetris::DrawNextTetromino() {
V2F32 tetromino_view_pos = {3.0, 1.4f};
- Tetromino::Draw(m_NextTetromino.GetId(), 0, tetromino_view_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(m_NextTetromino.GetId(), 0, tetromino_view_pos, 0.5f);
}
void Tetris::DrawLevel() {
V2F32 view_pos = {3.0f, 1.2f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisLevel", nullptr, s_DefaultImGuiWindowFlags);