Simply re-init the overlay on new level. Closes #14.

master
Zed A. Shaw 9 hours ago
parent 02c42eb042
commit 6a0725e401
  1. 4
      gui/overlay_ui.cpp
  2. 2
      worldbuilder.cpp

@ -14,6 +14,7 @@ namespace gui {
"[_|middle|middle_right]" "[_|middle|middle_right]"
"[_|bottom|bottom_right]" "[_|bottom|bottom_right]"
); );
$gui.init();
} }
inline void make_clickable_area(GameLevel& level, guecs::UI &gui, const std::string &name) { inline void make_clickable_area(GameLevel& level, guecs::UI &gui, const std::string &name) {
@ -27,7 +28,7 @@ namespace gui {
} }
void OverlayUI::init() { void OverlayUI::init() {
$gui.init(); // gui.init is in the constructor
make_clickable_area($level, $gui, "top"); make_clickable_area($level, $gui, "top");
make_clickable_area($level, $gui, "middle"); make_clickable_area($level, $gui, "middle");
make_clickable_area($level, $gui, "bottom"); make_clickable_area($level, $gui, "bottom");
@ -64,5 +65,6 @@ namespace gui {
void OverlayUI::update_level(GameLevel level) { void OverlayUI::update_level(GameLevel level) {
$level = level; $level = level;
init();
} }
} }

@ -139,7 +139,7 @@ inline json& random_entity_data(GameConfig& config, json& gen_config) {
int rand_entity = Random::uniform<int>(0, keys.size() - 1); int rand_entity = Random::uniform<int>(0, keys.size() - 1);
std::string key = keys[rand_entity]; std::string key = keys[rand_entity];
// BUG: this may crash if PLAYER_TILE isn't first
return entity_db[key]; return entity_db[key];
} }

Loading…
Cancel
Save