diff --git a/src/game/ui/modals/HelpMenu.cpp b/src/game/ui/modals/HelpMenu.cpp index a9c72b490e779bee4fc77254841b7a177fdd6dd9..3d15bd25e128c7111af0fdff8cda577904e0e81a 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(), ÷r); 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,