#include "map_view.hpp" #include #include #include "dbc.hpp" #include "components.hpp" #include "rand.hpp" #include "animation.hpp" #include "systems.hpp" #include "rand.hpp" #include #include #include namespace gui { using namespace components; using namespace guecs; MapViewUI::MapViewUI(GameLevel &level) : $level(level), $paper(textures::get("full_screen_paper")) { } void MapViewUI::update_level(GameLevel &level) { $level = level; } void MapViewUI::init() { //auto top_right = overlay.entity("top_right"); //auto cell = overlay.cell_for(top_right); $gui.position(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); $gui.layout( "[log_view| *%(200)map_grid | _ ]" ); auto grid = $gui.entity("map_grid"); $gui.set(grid, {L"Loading...", 65, {27, 26, 23, 150}, 10}); $log_to = $gui.entity("log_view"); $gui.set($log_to, {L"Welcome to the Game!", 25, {37, 36, 33}, 25}); $paper.sprite->setPosition({0, 0}); $gui.init(); } void MapViewUI::render(sf::RenderWindow &window, int compass_dir) { window.draw(*$paper.sprite); auto grid = $gui.entity("map_grid"); std::wstring map_out = System::draw_map($level, 23, 9, compass_dir); auto& map_text = $gui.get(grid); map_text.update(map_out); $gui.render(window); // $gui.debug_layout(window); } void MapViewUI::update() { if($gui.has($log_to)) { auto& text = $gui.get($log_to); //BUG: I'm calling this what it is, fix it wstring log_garbage; for(auto msg : $messages) { log_garbage += msg + L"\n"; } text.update(log_garbage); } } void MapViewUI::log(wstring msg) { $messages.push_front(msg); if($messages.size() > MAX_LOG_MESSAGES) { $messages.pop_back(); } update(); } }