|
|
@ -17,9 +17,9 @@ namespace gui { |
|
|
|
"[ ritual_ui ]" |
|
|
|
"[ ritual_ui ]" |
|
|
|
"[inv_slot1 | inv_slot2 | inv_slot3]" |
|
|
|
"[inv_slot1 | inv_slot2 | inv_slot3]" |
|
|
|
"[inv_slot4 | inv_slot5 | inv_slot6]" |
|
|
|
"[inv_slot4 | inv_slot5 | inv_slot6]" |
|
|
|
"[*%(100,300)log_view]" |
|
|
|
"[*%(200,300)character_view|_|stat1]" |
|
|
|
"[_]" |
|
|
|
"[_|_|stat2]" |
|
|
|
"[_]"); |
|
|
|
"[_|_|stat3]"); |
|
|
|
|
|
|
|
|
|
|
|
size_t inv_id = 0; |
|
|
|
size_t inv_id = 0; |
|
|
|
for(auto [name, entity] : $gui.$name_ents) { |
|
|
|
for(auto [name, entity] : $gui.$name_ents) { |
|
|
@ -33,10 +33,14 @@ namespace gui { |
|
|
|
$gui.set<Background>($gui.MAIN, {$gui.$parser}); |
|
|
|
$gui.set<Background>($gui.MAIN, {$gui.$parser}); |
|
|
|
|
|
|
|
|
|
|
|
for(auto& [name, cell] : $gui.cells()) { |
|
|
|
for(auto& [name, cell] : $gui.cells()) { |
|
|
|
if(name == "log_view") { |
|
|
|
if(name == "character_view") { |
|
|
|
$log_to = $gui.entity("log_view"); |
|
|
|
auto char_view = $gui.entity(name); |
|
|
|
$gui.set<Rectangle>($log_to, {}); |
|
|
|
$gui.set<Rectangle>(char_view, {}); |
|
|
|
$gui.set<Textual>($log_to, {L"Welcome to the Game!", 20}); |
|
|
|
$gui.set<Sprite>(char_view, {"peasant_girl"}); |
|
|
|
|
|
|
|
} else if(name.starts_with("stat")) { |
|
|
|
|
|
|
|
auto stat = $gui.entity(name); |
|
|
|
|
|
|
|
$gui.set<Rectangle>(stat, {}); |
|
|
|
|
|
|
|
$gui.set<Label>(stat, {guecs::to_wstring(name)}); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
auto button = $gui.entity(name); |
|
|
|
auto button = $gui.entity(name); |
|
|
|
$gui.set<Rectangle>(button, {}); |
|
|
|
$gui.set<Rectangle>(button, {}); |
|
|
@ -84,30 +88,12 @@ namespace gui { |
|
|
|
|
|
|
|
|
|
|
|
if(inventory.has_item(inv_id)) { |
|
|
|
if(inventory.has_item(inv_id)) { |
|
|
|
auto [used, name] = inventory.use($level, inv_id); |
|
|
|
auto [used, name] = inventory.use($level, inv_id); |
|
|
|
|
|
|
|
|
|
|
|
if(used) { |
|
|
|
|
|
|
|
// log(fmt::format(L"Used item: {}", name));
|
|
|
|
|
|
|
|
log(fmt::format(L"Used item: {}", L"FIX ME ZED")); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
// log(fmt::format(L"You are out of {}.", name));
|
|
|
|
|
|
|
|
log(fmt::format(L"Used item: {}", L"FIX ME ZED")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* WARNING: This is really not the greatest way to do this. */ |
|
|
|
/* WARNING: This is really not the greatest way to do this. */ |
|
|
|
void StatusUI::update() { |
|
|
|
void StatusUI::update() { |
|
|
|
if($gui.has<Textual>($log_to)) { |
|
|
|
|
|
|
|
auto& text = $gui.get<Textual>($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); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto world = $level.world; |
|
|
|
auto world = $level.world; |
|
|
|
if(world->has<components::Inventory>($level.player)) { |
|
|
|
if(world->has<components::Inventory>($level.player)) { |
|
|
|
auto& inventory = world->get<components::Inventory>($level.player); |
|
|
|
auto& inventory = world->get<components::Inventory>($level.player); |
|
|
@ -136,17 +122,10 @@ namespace gui { |
|
|
|
|
|
|
|
|
|
|
|
void StatusUI::render(sf::RenderWindow &window) { |
|
|
|
void StatusUI::render(sf::RenderWindow &window) { |
|
|
|
$gui.render(window); |
|
|
|
$gui.render(window); |
|
|
|
|
|
|
|
// $gui.debug_layout(window);
|
|
|
|
$ritual_ui.render(window); |
|
|
|
$ritual_ui.render(window); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void StatusUI::log(wstring msg) { |
|
|
|
|
|
|
|
$messages.push_front(msg); |
|
|
|
|
|
|
|
if($messages.size() > MAX_LOG_MESSAGES) { |
|
|
|
|
|
|
|
$messages.pop_back(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
update(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void StatusUI::update_level(GameLevel &level) { |
|
|
|
void StatusUI::update_level(GameLevel &level) { |
|
|
|
$level = level; |
|
|
|
$level = level; |
|
|
|
init(); |
|
|
|
init(); |
|
|
|