diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp index b570692..5210205 100644 --- a/src/saland/Game.cpp +++ b/src/saland/Game.cpp @@ -131,8 +131,6 @@ static GotoConsoleCommand gcc; static ResetRegionConsoleCommand rrcc; static ShopCommand sc; -static Player player; - struct Game::GameImpl { GameRegion gameRegion; std::shared_ptr human; @@ -198,11 +196,11 @@ Game::Game() { data->human.reset(new Human()); data->lastUpdate = SDL_GetTicks(); ResetWorld(0, 0, false); - data->human->pants = player.get_visible_bottom(); - data->human->hair = player.get_visible_hair(); + data->human->pants = globalData.player.get_visible_bottom(); + data->human->hair = globalData.player.get_visible_hair(); - data->human->race = player.get_visible_race(); - data->human->top = player.get_visible_top(); + data->human->race = globalData.player.get_visible_race(); + data->human->top = globalData.player.get_visible_top(); data->bottomField.SetHolder(globalData.dataHolder); data->bottomField.SetFontSize(20); diff --git a/src/saland/GameShop.cpp b/src/saland/GameShop.cpp index cfffd4e..e5b033a 100644 --- a/src/saland/GameShop.cpp +++ b/src/saland/GameShop.cpp @@ -25,9 +25,10 @@ https://github.com/sago007/saland #include "GameShop.hpp" struct GameShop::GameShopImpl { - bool active = true; - std::string name = "Shop!!"; - sago::SagoTextField headerField; + bool active = true; + std::string name = "Shop!!"; + sago::SagoTextField headerField; + sago::SagoTextField goldField; }; @@ -36,6 +37,8 @@ GameShop::GameShop() { data->headerField.SetHolder(globalData.dataHolder); data->headerField.SetFontSize(20); data->headerField.SetText(data->name); + data->goldField.SetHolder(globalData.dataHolder); + data->goldField.SetFontSize(16); } bool GameShop::IsActive() { @@ -44,6 +47,8 @@ bool GameShop::IsActive() { void GameShop::Draw(SDL_Renderer* target) { data->headerField.Draw(target, globalData.xsize/2, 4, sago::SagoTextField::Alignment::center); + data->goldField.SetText(std::string("Gold: ")+std::to_string(globalData.player.item_inventory["gold"])); + data->goldField.Draw(target, globalData.xsize-1, globalData.ysize-1, sago::SagoTextField::Alignment::right, sago::SagoTextField::VerticalAlignment::bottom); } void GameShop::ProcessInput(const SDL_Event& event, bool &) { diff --git a/src/saland/globals.hpp b/src/saland/globals.hpp index 7e586f3..6c192a7 100644 --- a/src/saland/globals.hpp +++ b/src/saland/globals.hpp @@ -26,6 +26,7 @@ https://github.com/sago007/saland #include "../sago/SagoSpriteHolder.hpp" #include +#include "model/Player.hpp" struct PlayerControls { SDL_Scancode move_up = SDL_SCANCODE_W; @@ -50,6 +51,7 @@ struct GlobalData { int xsize = 1024; int ysize = 768; PlayerControls playerControls; + Player player; }; extern GlobalData globalData; diff --git a/src/saland/model/Player.hpp b/src/saland/model/Player.hpp index 6d5d15b..747ae2a 100644 --- a/src/saland/model/Player.hpp +++ b/src/saland/model/Player.hpp @@ -25,6 +25,7 @@ https://github.com/sago007/saland #define PLAYER_HPP #include +#include struct Player { Player() {}; @@ -35,6 +36,7 @@ struct Player { std::string get_visible_top(){return "pirate_shirt_sky";} std::string get_visibla_hat(){ return "";} std::string get_visible_shoes(){ return "";} + std::map item_inventory; }; #endif //PLAYER_HPP \ No newline at end of file