#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; 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( "[status| *%(200)map_grid | _ ]" ); auto grid = $gui.entity("map_grid"); $gui.set(grid, {L"Loading...", 65, {27, 26, 23, 150}, 10}); auto status = $gui.entity("status"); $gui.set(status, {L"Loading...", 25, {37, 36, 33}, 25}); $paper.sprite->setPosition({0, 0}); $gui.init(); } void MapViewUI::render(sf::RenderWindow &window) { window.draw(*$paper.sprite); auto grid = $gui.entity("map_grid"); auto status = $gui.entity("status"); std::wstring map_out = System::draw_map($level, 23, 9); auto& map_text = $gui.get(grid); map_text.update(map_out); auto& status_text = $gui.get(status); std::wstring status_out = fmt::format( L"Level: {}\n" L"Enemies Killed: A Lot\n", $level.index + 1); status_text.update(status_out); $gui.render(window); // $gui.debug_layout(window); } }