From 965b721fbb84793504fce649ebdd1233afe4f6a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Max=20G=C3=B6tz=20Hans-Georg=20K=C3=B6rschen?=
 <max.koerschen@informatik.hs-fulda.de>
Date: Mon, 10 Feb 2025 01:22:31 +0100
Subject: [PATCH] Better help menu

---
 src/game/ui/modals/HelpMenu.cpp | 40 ++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 13 deletions(-)

diff --git a/src/game/ui/modals/HelpMenu.cpp b/src/game/ui/modals/HelpMenu.cpp
index a9c72b4..3d15bd2 100644
--- a/src/game/ui/modals/HelpMenu.cpp
+++ b/src/game/ui/modals/HelpMenu.cpp
@@ -1,9 +1,10 @@
 /**
+ * HelpMenu.cpp
+ *
  * @authors Max Körschen
  * @author Nicolas Will
  */
 
-
 #include "HelpMenu.hpp"
 
 #include <SDL_ttf.h>
@@ -27,13 +28,13 @@ std::vector<std::string> helpTable = {
     "auszuwaehlen  und  RETURN  um  ihre  Auswahl  zu  bestaetigen!  ", // 5
     "Spielregeln!  ",                                                   // 6
     "Einheiten  daerfen  sich  in  einer  Runde  nur  ein  Mal  bewegen  und  ein  Mal  "
-    "angreifen!  ",                                                                        // 7
-    "Gegnerische  Einheiten  muessen  sich  in  REICHWEITE  befinden!  ",                  // 8
-    "Einheiten  kosten  Geld!  ",                                                          // 9
-    "Am Start  ihres  Zuges  erhalten  Sie  pro  Stadt  1000  Geld!  ",                    // 10
-    "Angreifer  schiessen  immer  zuerst!  ",                                              // 11
-    "Achten  Sie  auf  die  Einheitenklassen  um  Schadensboni  auszunutzen!  ",           // 12
-    "Nutzen  Sie  diese  Werkzeuge um  das Spiel  gegen  ihren  Gegner  zu  gewinnen!  "}; // 13
+    "angreifen!  ",                                                                // 7
+    "Gegnerische  Einheiten  muessen  sich  in  REICHWEITE  befinden!  ",          // 8
+    "Einheiten  kosten  Geld! Ihren aktuellen Kontostand sehen sie oben links!  ", // 9
+    "Am Start  ihres  Zuges  erhalten  Sie  pro  Stadt  1000  Geld!  ",            // 10
+    "Angreifer  schiessen  immer  zuerst!  ",                                      // 11
+    "Achten  Sie  auf  die  Einheitenklassen  um  Schadensboni  auszunutzen!  ",   // 12
+    "Nutzen  Sie  diese  Werkzeuge um  das Spiel  zu  gewinnen!  "};               // 13
 
 void HelpMenu::render(advanced_wars::Engine& engine)
 {
@@ -58,6 +59,10 @@ void HelpMenu::render(advanced_wars::Engine& engine)
     int       boxWidth = 600;
     int       boxHeight = 610;
 
+    SDL_SetRenderDrawColor(engine.renderer(), 255, 255, 255, 255);
+    SDL_Rect boxw = {48, 48, boxWidth + 4, boxHeight + 4};
+    SDL_RenderFillRect(engine.renderer(), &boxw);
+
     SDL_SetRenderDrawColor(engine.renderer(), 75, 87, 219, 255);
     SDL_Rect box = {50, 50, boxWidth, boxHeight};
     SDL_RenderFillRect(engine.renderer(), &box);
@@ -81,24 +86,33 @@ void HelpMenu::render(advanced_wars::Engine& engine)
     SDL_RenderFillRect(engine.renderer(), &divider);
 
     Spritesheet* spritesheet = engine.getSpritesheet();
-    SDL_Texture* buildingTexture = spritesheet->getBuildingTextures().at(0);
+    SDL_Texture* buildingTexture = spritesheet->getBuildingTextures().at(5);
+    SDL_Texture* buildingTextureRedHQ = spritesheet->getBuildingTextures().at(0);
+    SDL_Texture* buildingTextureBluHQ = spritesheet->getBuildingTextures().at(1);
 
     int      renderingScale = 2;
     SDL_Rect targetRect = {65, textY, 16 * renderingScale, 16 * renderingScale * 2};
+    SDL_Rect targetRectBluHQ = {115, textY, 16 * renderingScale, 16 * renderingScale * 2};
 
     SDL_Rect sourceRect = {0, 0, 16, 32};
 
-    SDL_RenderCopy(engine.renderer(), buildingTexture, &sourceRect, &targetRect);
+    SDL_RenderCopy(engine.renderer(), buildingTextureRedHQ, &sourceRect, &targetRect);
+    SDL_RenderCopy(engine.renderer(), buildingTextureBluHQ, &sourceRect, &targetRectBluHQ);
 
     renderTextPortion(
-        engine, "Das ist das Hauptquartier! Wenn es faellt, haben Sie das Spiel verloren!", font,
-        white, boxWidth - 120 - 5, 120, textY);
+        engine, "Das  ist  das  Hauptquartier! Wenn es faellt  haben Sie das Spiel verloren!", font,
+        white, boxWidth - 120 - 5, 175, textY);
 
     textY += 48;
     renderTexture(buildingTexture, engine, 55, textY + 48, 16, 16);
     renderTexture(buildingTexture, engine, 55, textY + 96, 32, 16);
     renderTexture(buildingTexture, engine, 55, textY + 144, 48, 16);
-    renderTexture(buildingTexture, engine, 55, textY + 192, 64, 16);
+
+    SDL_Rect targetRectHarbor = {65, textY + 180, 16 * renderingScale, 16 * renderingScale * 2};
+    SDL_Rect srcRectHarbor = {64, 0, 16, 48};
+
+    // harbor needs special treatment
+    SDL_RenderCopy(engine.renderer(), buildingTexture, &srcRectHarbor, &targetRectHarbor);
 
     renderTextPortion(
         engine,
-- 
GitLab