diff --git a/src/game/level/Level.cpp b/src/game/level/Level.cpp index 8cc8fbf864527cd66a1e9796932e242633083a5c..ea6af4ba2ef74fcdc0915c95a64bb152c388894d 100644 --- a/src/game/level/Level.cpp +++ b/src/game/level/Level.cpp @@ -429,6 +429,8 @@ void Level::render(Engine& engine) m_recruitingMenu.render(engine); } + m_turnQ.front().renderMoney(engine, RENDERING_SCALE); + if (m_showUnitInfoMenu) { m_unitInfoMenu.render(engine); diff --git a/src/game/player/Player.cpp b/src/game/player/Player.cpp index 32ff5e6a12eb6e1161fa26a4675d44da18101664..f7f1478fce21a2a90df5ca38e1ede4f3ee224412 100644 --- a/src/game/player/Player.cpp +++ b/src/game/player/Player.cpp @@ -5,6 +5,7 @@ */ #include "Player.hpp" +#include <SDL_ttf.h> #include <iostream> namespace advanced_wars @@ -107,4 +108,41 @@ void Player::spendMoney(int toSpend) { m_money -= toSpend; } + +void Player::renderMoney(Engine& engine, int scale) +{ + if (TTF_Init() == -1) + { + return; + } + + TTF_Font* font = TTF_OpenFont("res/ARCADECLASSIC.TTF", 16); + + SDL_Rect backdrop = {0, 0, 75 * scale, 40 * scale}; + SDL_Rect textRect = {4 * scale, 3 * scale, 70 * scale, 35 * scale}; + SDL_Rect outline = {0, 0, 77 * scale, 42 * scale}; + + SDL_SetRenderDrawBlendMode(engine.renderer(), SDL_BlendMode::SDL_BLENDMODE_BLEND); + + SDL_SetRenderDrawColor(engine.renderer(), 255, 255, 255, 200); + + SDL_RenderFillRect(engine.renderer(), &outline); + + SDL_SetRenderDrawColor(engine.renderer(), 75, 87, 219, 200); + + SDL_RenderFillRect(engine.renderer(), &backdrop); + + std::string money = std::to_string(m_money); + + SDL_Surface* textSurface = TTF_RenderUTF8_Solid(font, money.c_str(), {200, 200, 0, 200}); + + SDL_Texture* textTexture = SDL_CreateTextureFromSurface(engine.renderer(), textSurface); + + SDL_RenderCopy(engine.renderer(), textTexture, NULL, &textRect); + + SDL_FreeSurface(textSurface); + SDL_DestroyTexture(textTexture); + TTF_CloseFont(font); + TTF_Quit(); +} } // namespace advanced_wars diff --git a/src/game/player/Player.hpp b/src/game/player/Player.hpp index 9f330840d190d7f70bab319a77e4e18ec7111f87..776b0bc646a76110a0bb4607eebee7748491d3cf 100644 --- a/src/game/player/Player.hpp +++ b/src/game/player/Player.hpp @@ -62,6 +62,8 @@ class Player */ void spendMoney(int toSpend); + void renderMoney(Engine& engine, int scale); + private: int m_money; // The players current amound of money bool m_alive; // Signals if the player is alive or not