From b62865965ee798d8fd82c685faa105b04c129218 Mon Sep 17 00:00:00 2001 From: fschildt Date: Sun, 28 Sep 2025 13:19:22 +0200 Subject: tetris: fix game over condition --- src/games/tetris/Board.cpp | 6 ------ src/games/tetris/Tetris.cpp | 5 +++-- 2 files changed, 3 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/games/tetris/Board.cpp b/src/games/tetris/Board.cpp index 87a0e22..ab70cd5 100644 --- a/src/games/tetris/Board.cpp +++ b/src/games/tetris/Board.cpp @@ -24,12 +24,6 @@ int32_t Board::PlaceTetromino(Tetromino &tetromino) { tetromino.GetBitmap(tetromino_bitmap); - // check if Tetromino cannot be placed (Game Over) - if (tetromino.IsCollisionWithBoard()) { - return -1; - } - - // place in Board's Bitmap m_Bitmap[pos.y+0] |= tetromino_bitmap[0]; m_Bitmap[pos.y+1] |= tetromino_bitmap[1]; diff --git a/src/games/tetris/Tetris.cpp b/src/games/tetris/Tetris.cpp index 8f07df0..331e8a6 100644 --- a/src/games/tetris/Tetris.cpp +++ b/src/games/tetris/Tetris.cpp @@ -122,10 +122,11 @@ void Tetris::UpdatePauseState(SDL_Event &event) { void Tetris::HandleTetrominoPlacement() { int32_t rows_cleared = m_Board.PlaceTetromino(m_ActiveTetromino); + m_ActiveTetromino = m_NextTetromino; - m_NextTetromino = Tetromino(m_Board); + m_NextTetromino = Tetromino{m_Board}; - if (rows_cleared == -1) { + if (m_ActiveTetromino.IsCollisionWithBoard()) { HandleGameOver(); return; } -- cgit v1.2.3