From 47d3d929dbc7e7ab8efad1a9b6ae29a216bb3762 Mon Sep 17 00:00:00 2001 From: zulianc Date: Mon, 3 Mar 2025 00:26:05 +0100 Subject: [PATCH] typo --- src/Core/Game.cpp | 29 ++++++++++++++++++----------- src/Core/GameParameters.cpp | 5 +++-- src/TextUI/TextApp.cpp | 6 +++--- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/Core/Game.cpp b/src/Core/Game.cpp index 8447cfa..4f6a31b 100644 --- a/src/Core/Game.cpp +++ b/src/Core/Game.cpp @@ -192,15 +192,20 @@ void Game::nextFrame(const std::set& playerActions) { // no need to apply gravity and lock delay if the piece was hard dropped else { /* GRAVITY */ - // parameters.getGravity() gives the gravity for an assumed 20-line high board - int appliedGravity = this->parameters.getGravity() * std::max((double) this->board.getBoard().getBaseHeight() / 20.0, 1.0); - - this->subVerticalPosition += appliedGravity; - while (this->subVerticalPosition >= SUBPX_PER_ROW) { - this->subVerticalPosition -= SUBPX_PER_ROW; - this->board.moveDown(); + if (this->parameters.getLevel() >= 20) { + while (this->board.moveDown()); } + else { + // parameters.getGravity() gives the gravity for an assumed 20-line high board + int appliedGravity = this->parameters.getGravity() * std::max((double) this->board.getBoard().getBaseHeight() / 20.0, 1.0); + this->subVerticalPosition += appliedGravity; + while (this->subVerticalPosition >= SUBPX_PER_ROW) { + this->subVerticalPosition -= SUBPX_PER_ROW; + this->board.moveDown(); + } + } + /* LOCK DELAY */ if (this->board.touchesGround()) { this->totalLockDelay++; @@ -304,10 +309,12 @@ void Game::lockPiece() { this->totalForcedLockDelay = 0; this->heldARR = 0; - this->leftARETime = this->parameters.getARE(); - if (this->leftARETime == 0) { - this->lost = this->board.spawnNextPiece(); - } + if (!this->hasWon()) { + this->leftARETime = this->parameters.getARE(); + if (this->leftARETime == 0) { + this->lost = this->board.spawnNextPiece(); + } + } } bool Game::hasWon() const { diff --git a/src/Core/GameParameters.cpp b/src/Core/GameParameters.cpp index e9590d8..16df69f 100644 --- a/src/Core/GameParameters.cpp +++ b/src/Core/GameParameters.cpp @@ -94,7 +94,7 @@ void GameParameters::updateStats() { /* GRAVITY */ // get gravity for an assumed 20-rows board static const int gravityPerLevel[] = { - 0, // LVL0 + 0, // lvl0 = no gravity 1, // 60f/line, 20s total 2, // 30f/line, 10s total 3, // 20f/line, 6.66s total @@ -113,7 +113,8 @@ void GameParameters::updateStats() { 40, // 1.5f/line, 30f total 1 * 60, // 1line/f, 20f total 2 * 60, // 2line/f, 10f total - 4 * 60 // 4line/f, 5f total + 4 * 60, // 4line/f, 5f total + 20 * 60 // lvl20 = instant gravity }; if (this->level < 0) { this->gravity = gravityPerLevel[0]; diff --git a/src/TextUI/TextApp.cpp b/src/TextUI/TextApp.cpp index 9c9cf4a..bf6bcef 100644 --- a/src/TextUI/TextApp.cpp +++ b/src/TextUI/TextApp.cpp @@ -14,7 +14,7 @@ static const int FRAMES_PER_INPUT = FRAMES_PER_SECOND / 2; static const int MAXIMUM_PIECE_SIZE = 10; static const int DEFAULT_PIECE_SIZE = 4; static const int MAXIMUM_BOARD_WIDTH = 30; -static const int MAXIMYM_BOARD_HEIGHT = 40; +static const int MAXIMUM_BOARD_HEIGHT = 40; static const Gamemode DEFAULT_GAMEMODE = SPRINT; @@ -103,12 +103,12 @@ void TextApp::chooseBoardSize() { } catch (std::exception ignored) {} - std::cout << "Choose the height of the board (from 1 to " << MAXIMYM_BOARD_HEIGHT << ")." << std::endl; + std::cout << "Choose the height of the board (from 1 to " << MAXIMUM_BOARD_HEIGHT << ")." << std::endl; std::cout << "Choice: "; std::getline(std::cin, answer); try { int selectedSize = std::stoi(answer); - if (selectedSize >= 1 && selectedSize <= MAXIMYM_BOARD_HEIGHT) { + if (selectedSize >= 1 && selectedSize <= MAXIMUM_BOARD_HEIGHT) { this->gameMenu.setBoardHeight(selectedSize); } }