diff --git a/assets/images/levels/level0.jpg b/assets/images/levels/level0.jpg new file mode 100644 index 0000000..c2a0cf5 Binary files /dev/null and b/assets/images/levels/level0.jpg differ diff --git a/assets/images/levels/level1.jpg b/assets/images/levels/level1.jpg new file mode 100644 index 0000000..43d10a7 Binary files /dev/null and b/assets/images/levels/level1.jpg differ diff --git a/assets/images/levels/level10.jpg b/assets/images/levels/level10.jpg new file mode 100644 index 0000000..8b62e21 Binary files /dev/null and b/assets/images/levels/level10.jpg differ diff --git a/assets/images/levels/level11.jpg b/assets/images/levels/level11.jpg new file mode 100644 index 0000000..1588979 Binary files /dev/null and b/assets/images/levels/level11.jpg differ diff --git a/assets/images/levels/level12.jpg b/assets/images/levels/level12.jpg new file mode 100644 index 0000000..f553a7e Binary files /dev/null and b/assets/images/levels/level12.jpg differ diff --git a/assets/images/levels/level13.jpg b/assets/images/levels/level13.jpg new file mode 100644 index 0000000..f505cf4 Binary files /dev/null and b/assets/images/levels/level13.jpg differ diff --git a/assets/images/levels/level14.jpg b/assets/images/levels/level14.jpg new file mode 100644 index 0000000..1c9801a Binary files /dev/null and b/assets/images/levels/level14.jpg differ diff --git a/assets/images/levels/level15.jpg b/assets/images/levels/level15.jpg new file mode 100644 index 0000000..4de466b Binary files /dev/null and b/assets/images/levels/level15.jpg differ diff --git a/assets/images/levels/level16.jpg b/assets/images/levels/level16.jpg new file mode 100644 index 0000000..256393d Binary files /dev/null and b/assets/images/levels/level16.jpg differ diff --git a/assets/images/levels/level17.jpg b/assets/images/levels/level17.jpg new file mode 100644 index 0000000..f34534d Binary files /dev/null and b/assets/images/levels/level17.jpg differ diff --git a/assets/images/levels/level18.jpg b/assets/images/levels/level18.jpg new file mode 100644 index 0000000..726b839 Binary files /dev/null and b/assets/images/levels/level18.jpg differ diff --git a/assets/images/levels/level19.jpg b/assets/images/levels/level19.jpg new file mode 100644 index 0000000..cb2a64d Binary files /dev/null and b/assets/images/levels/level19.jpg differ diff --git a/assets/images/levels/level2.jpg b/assets/images/levels/level2.jpg new file mode 100644 index 0000000..e98da88 Binary files /dev/null and b/assets/images/levels/level2.jpg differ diff --git a/assets/images/levels/level20.jpg b/assets/images/levels/level20.jpg new file mode 100644 index 0000000..e2cc918 Binary files /dev/null and b/assets/images/levels/level20.jpg differ diff --git a/assets/images/levels/level21.jpg b/assets/images/levels/level21.jpg new file mode 100644 index 0000000..dd03a6b Binary files /dev/null and b/assets/images/levels/level21.jpg differ diff --git a/assets/images/levels/level22.jpg b/assets/images/levels/level22.jpg new file mode 100644 index 0000000..1ec27fe Binary files /dev/null and b/assets/images/levels/level22.jpg differ diff --git a/assets/images/levels/level23.jpg b/assets/images/levels/level23.jpg new file mode 100644 index 0000000..cf7aa39 Binary files /dev/null and b/assets/images/levels/level23.jpg differ diff --git a/assets/images/levels/level24.jpg b/assets/images/levels/level24.jpg new file mode 100644 index 0000000..f457f1e Binary files /dev/null and b/assets/images/levels/level24.jpg differ diff --git a/assets/images/levels/level25.jpg b/assets/images/levels/level25.jpg new file mode 100644 index 0000000..cc83029 Binary files /dev/null and b/assets/images/levels/level25.jpg differ diff --git a/assets/images/levels/level26.jpg b/assets/images/levels/level26.jpg new file mode 100644 index 0000000..daf8d82 Binary files /dev/null and b/assets/images/levels/level26.jpg differ diff --git a/assets/images/levels/level27.jpg b/assets/images/levels/level27.jpg new file mode 100644 index 0000000..335fde2 Binary files /dev/null and b/assets/images/levels/level27.jpg differ diff --git a/assets/images/levels/level28.jpg b/assets/images/levels/level28.jpg new file mode 100644 index 0000000..5808398 Binary files /dev/null and b/assets/images/levels/level28.jpg differ diff --git a/assets/images/levels/level29.jpg b/assets/images/levels/level29.jpg new file mode 100644 index 0000000..e2d167d Binary files /dev/null and b/assets/images/levels/level29.jpg differ diff --git a/assets/images/levels/level3.jpg b/assets/images/levels/level3.jpg new file mode 100644 index 0000000..fb34d25 Binary files /dev/null and b/assets/images/levels/level3.jpg differ diff --git a/assets/images/levels/level30.jpg b/assets/images/levels/level30.jpg new file mode 100644 index 0000000..31451a1 Binary files /dev/null and b/assets/images/levels/level30.jpg differ diff --git a/assets/images/levels/level31.jpg b/assets/images/levels/level31.jpg new file mode 100644 index 0000000..1544ada Binary files /dev/null and b/assets/images/levels/level31.jpg differ diff --git a/assets/images/levels/level32.jpg b/assets/images/levels/level32.jpg new file mode 100644 index 0000000..9765ab6 Binary files /dev/null and b/assets/images/levels/level32.jpg differ diff --git a/assets/images/levels/level4.jpg b/assets/images/levels/level4.jpg new file mode 100644 index 0000000..3a614e4 Binary files /dev/null and b/assets/images/levels/level4.jpg differ diff --git a/assets/images/levels/level5.jpg b/assets/images/levels/level5.jpg new file mode 100644 index 0000000..6b8c544 Binary files /dev/null and b/assets/images/levels/level5.jpg differ diff --git a/assets/images/levels/level6.jpg b/assets/images/levels/level6.jpg new file mode 100644 index 0000000..7882fe9 Binary files /dev/null and b/assets/images/levels/level6.jpg differ diff --git a/assets/images/levels/level7.jpg b/assets/images/levels/level7.jpg new file mode 100644 index 0000000..415b12c Binary files /dev/null and b/assets/images/levels/level7.jpg differ diff --git a/assets/images/levels/level8.jpg b/assets/images/levels/level8.jpg new file mode 100644 index 0000000..584c664 Binary files /dev/null and b/assets/images/levels/level8.jpg differ diff --git a/assets/images/levels/level9.jpg b/assets/images/levels/level9.jpg new file mode 100644 index 0000000..e2c69b4 Binary files /dev/null and b/assets/images/levels/level9.jpg differ diff --git a/assets/images/main_screen_004.png b/assets/images/main_screen_004.png deleted file mode 100644 index 4260160..0000000 Binary files a/assets/images/main_screen_004.png and /dev/null differ diff --git a/assets/images/tetris_main_back_level1.jpg b/assets/images/tetris_main_back_level1.jpg deleted file mode 100644 index 1e2e3e7..0000000 Binary files a/assets/images/tetris_main_back_level1.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level10.jpg b/assets/images/tetris_main_back_level10.jpg deleted file mode 100644 index 6a0d8a7..0000000 Binary files a/assets/images/tetris_main_back_level10.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level11.jpg b/assets/images/tetris_main_back_level11.jpg deleted file mode 100644 index 68fbea9..0000000 Binary files a/assets/images/tetris_main_back_level11.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level12.jpg b/assets/images/tetris_main_back_level12.jpg deleted file mode 100644 index 2236820..0000000 Binary files a/assets/images/tetris_main_back_level12.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level13.jpg b/assets/images/tetris_main_back_level13.jpg deleted file mode 100644 index 0f85309..0000000 Binary files a/assets/images/tetris_main_back_level13.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level14.jpg b/assets/images/tetris_main_back_level14.jpg deleted file mode 100644 index fb7b55a..0000000 Binary files a/assets/images/tetris_main_back_level14.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level15.jpg b/assets/images/tetris_main_back_level15.jpg deleted file mode 100644 index fadc33e..0000000 Binary files a/assets/images/tetris_main_back_level15.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level16.jpg b/assets/images/tetris_main_back_level16.jpg deleted file mode 100644 index 0506f1b..0000000 Binary files a/assets/images/tetris_main_back_level16.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level17.jpg b/assets/images/tetris_main_back_level17.jpg deleted file mode 100644 index 238cfa2..0000000 Binary files a/assets/images/tetris_main_back_level17.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level18.jpg b/assets/images/tetris_main_back_level18.jpg deleted file mode 100644 index a347b0a..0000000 Binary files a/assets/images/tetris_main_back_level18.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level19.jpg b/assets/images/tetris_main_back_level19.jpg deleted file mode 100644 index 2159b45..0000000 Binary files a/assets/images/tetris_main_back_level19.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level2.jpg b/assets/images/tetris_main_back_level2.jpg deleted file mode 100644 index 276e092..0000000 Binary files a/assets/images/tetris_main_back_level2.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level20.jpg b/assets/images/tetris_main_back_level20.jpg deleted file mode 100644 index a805fcf..0000000 Binary files a/assets/images/tetris_main_back_level20.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level21.jpg b/assets/images/tetris_main_back_level21.jpg deleted file mode 100644 index b0b3c56..0000000 Binary files a/assets/images/tetris_main_back_level21.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level22.jpg b/assets/images/tetris_main_back_level22.jpg deleted file mode 100644 index fa41309..0000000 Binary files a/assets/images/tetris_main_back_level22.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level23.jpg b/assets/images/tetris_main_back_level23.jpg deleted file mode 100644 index a9f1165..0000000 Binary files a/assets/images/tetris_main_back_level23.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level24.jpg b/assets/images/tetris_main_back_level24.jpg deleted file mode 100644 index c2e1d1d..0000000 Binary files a/assets/images/tetris_main_back_level24.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level25.jpg b/assets/images/tetris_main_back_level25.jpg deleted file mode 100644 index ef6c890..0000000 Binary files a/assets/images/tetris_main_back_level25.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level26.jpg b/assets/images/tetris_main_back_level26.jpg deleted file mode 100644 index 96e9c26..0000000 Binary files a/assets/images/tetris_main_back_level26.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level27.jpg b/assets/images/tetris_main_back_level27.jpg deleted file mode 100644 index effe5a8..0000000 Binary files a/assets/images/tetris_main_back_level27.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level28.jpg b/assets/images/tetris_main_back_level28.jpg deleted file mode 100644 index caa71cd..0000000 Binary files a/assets/images/tetris_main_back_level28.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level29.jpg b/assets/images/tetris_main_back_level29.jpg deleted file mode 100644 index b77e3a5..0000000 Binary files a/assets/images/tetris_main_back_level29.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level3.jpg b/assets/images/tetris_main_back_level3.jpg deleted file mode 100644 index 0ead72f..0000000 Binary files a/assets/images/tetris_main_back_level3.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level30.jpg b/assets/images/tetris_main_back_level30.jpg deleted file mode 100644 index 6503d7e..0000000 Binary files a/assets/images/tetris_main_back_level30.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level31.jpg b/assets/images/tetris_main_back_level31.jpg deleted file mode 100644 index c480b0b..0000000 Binary files a/assets/images/tetris_main_back_level31.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level32.jpg b/assets/images/tetris_main_back_level32.jpg deleted file mode 100644 index d345caa..0000000 Binary files a/assets/images/tetris_main_back_level32.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level4.jpg b/assets/images/tetris_main_back_level4.jpg deleted file mode 100644 index ce36388..0000000 Binary files a/assets/images/tetris_main_back_level4.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level5.jpg b/assets/images/tetris_main_back_level5.jpg deleted file mode 100644 index 37db308..0000000 Binary files a/assets/images/tetris_main_back_level5.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level6.jpg b/assets/images/tetris_main_back_level6.jpg deleted file mode 100644 index 559898d..0000000 Binary files a/assets/images/tetris_main_back_level6.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level7.jpg b/assets/images/tetris_main_back_level7.jpg deleted file mode 100644 index d010cbc..0000000 Binary files a/assets/images/tetris_main_back_level7.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level8.jpg b/assets/images/tetris_main_back_level8.jpg deleted file mode 100644 index 382468a..0000000 Binary files a/assets/images/tetris_main_back_level8.jpg and /dev/null differ diff --git a/assets/images/tetris_main_back_level9.jpg b/assets/images/tetris_main_back_level9.jpg deleted file mode 100644 index 955c1c5..0000000 Binary files a/assets/images/tetris_main_back_level9.jpg and /dev/null differ diff --git a/src/main.cpp b/src/main.cpp index 489291a..da2b2a4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -160,7 +160,7 @@ static bool queueLevelBackground(LevelBackgroundFader& fader, SDL_Renderer* rend } char bgPath[256]; - std::snprintf(bgPath, sizeof(bgPath), "assets/images/tetris_main_back_level%d.jpg", level); + std::snprintf(bgPath, sizeof(bgPath), "assets/images/levels/level%d.jpg", level); SDL_Texture* newTexture = loadTextureFromImage(renderer, bgPath); if (!newTexture) { diff --git a/src/states/MenuState.cpp b/src/states/MenuState.cpp index ca02702..638bce1 100644 --- a/src/states/MenuState.cpp +++ b/src/states/MenuState.cpp @@ -120,7 +120,7 @@ void MenuState::renderMainButtonTop(SDL_Renderer* renderer, float logicalScale, const float LOGICAL_W = 1200.f; const float LOGICAL_H = 1000.f; float contentOffsetX = 0.0f; - float contentOffsetY = 20.0f; + float contentOffsetY = 0.0f; UIRenderer::computeContentOffsets((float)logicalVP.w, (float)logicalVP.h, LOGICAL_W, LOGICAL_H, logicalScale, contentOffsetX, contentOffsetY); float contentW = LOGICAL_W * logicalScale; @@ -131,7 +131,7 @@ void MenuState::renderMainButtonTop(SDL_Renderer* renderer, float logicalScale, // move buttons a bit lower for better visibility // small global vertical offset for the whole menu (tweak to move UI down) float menuYOffset = LOGICAL_H * 0.03f; - float btnY = LOGICAL_H * 0.865f + contentOffsetY + (LOGICAL_H * 0.02f) + menuYOffset + 45.0f; + float btnY = LOGICAL_H * 0.865f + contentOffsetY + (LOGICAL_H * 0.02f) + menuYOffset + 4.5f; // Compose same button definition used in render() char levelBtnText[32]; @@ -153,6 +153,8 @@ void MenuState::renderMainButtonTop(SDL_Renderer* renderer, float logicalScale, // Draw semi-transparent background panel behind the full button group (draw first so text sits on top) + // `groupCenterY` is declared here so it can be used when drawing the buttons below. + float groupCenterY = 0.0f; { float groupCenterX = btnX; float halfSpan = 1.5f * spacing; // covers from leftmost to rightmost button centers @@ -179,12 +181,15 @@ void MenuState::renderMainButtonTop(SDL_Renderer* renderer, float logicalScale, // Expand border to cover full window width (use actual viewport) SDL_FRect borderFull{ 0.0f, panelTop, viewportLogicalW, panelH }; SDL_RenderRect(renderer, &borderFull); + // Compute a vertical center for the group so labels/icons can be centered + groupCenterY = panelTop + panelH * 0.5f; } // Draw all four buttons on top for (int i = 0; i < 4; ++i) { float cxCenter = 0.0f; - float cyCenter = btnY; + // Use the group's center Y so text/icons sit visually centered in the panel + float cyCenter = groupCenterY; if (ctx.menuButtonsExplicit) { cxCenter = ctx.menuButtonCX[i] + contentOffsetX; cyCenter = ctx.menuButtonCY[i] + contentOffsetY; @@ -302,8 +307,8 @@ void MenuState::handleEvent(const SDL_Event& e) { // If the inline options HUD is visible and not animating, capture navigation if (optionsVisible && !optionsAnimating) { - // Options now has more rows; use OPTIONS_ROW_COUNT - constexpr int OPTIONS_ROW_COUNT = 8; + // Options rows drawn here are 5 (Fullscreen, Music, Sound FX, Smooth Scroll, Return) + constexpr int OPTIONS_ROW_COUNT = 5; switch (e.key.scancode) { case SDL_SCANCODE_UP: { @@ -356,25 +361,6 @@ void MenuState::handleEvent(const SDL_Event& e) { return; } case 4: { - // PULSE ENABLE - buttonPulseEnabled = !buttonPulseEnabled; - return; - } - case 5: { - // PULSE SPEED (Enter toggles to default) - if (e.key.scancode == SDL_SCANCODE_RETURN || e.key.scancode == SDL_SCANCODE_KP_ENTER || e.key.scancode == SDL_SCANCODE_SPACE) { - buttonPulseSpeed = 1.0; - } - return; - } - case 6: { - // PULSE MIN ALPHA (Enter resets) - if (e.key.scancode == SDL_SCANCODE_RETURN || e.key.scancode == SDL_SCANCODE_KP_ENTER || e.key.scancode == SDL_SCANCODE_SPACE) { - buttonPulseMinAlpha = 0.6; - } - return; - } - case 7: { // RETURN TO MENU -> hide panel optionsAnimating = true; optionsDirection = -1;