From 6a0725e401bba88138c2b8faa3c2ed70073d6f25 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Sat, 28 Jun 2025 22:39:46 -0400 Subject: [PATCH] Simply re-init the overlay on new level. Closes #14. --- gui/overlay_ui.cpp | 4 +++- worldbuilder.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gui/overlay_ui.cpp b/gui/overlay_ui.cpp index 6b189e7..a24ac73 100644 --- a/gui/overlay_ui.cpp +++ b/gui/overlay_ui.cpp @@ -14,6 +14,7 @@ namespace gui { "[_|middle|middle_right]" "[_|bottom|bottom_right]" ); + $gui.init(); } inline void make_clickable_area(GameLevel& level, guecs::UI &gui, const std::string &name) { @@ -27,7 +28,7 @@ namespace gui { } void OverlayUI::init() { - $gui.init(); + // gui.init is in the constructor make_clickable_area($level, $gui, "top"); make_clickable_area($level, $gui, "middle"); make_clickable_area($level, $gui, "bottom"); @@ -64,5 +65,6 @@ namespace gui { void OverlayUI::update_level(GameLevel level) { $level = level; + init(); } } diff --git a/worldbuilder.cpp b/worldbuilder.cpp index dfeb787..4335ac2 100644 --- a/worldbuilder.cpp +++ b/worldbuilder.cpp @@ -139,7 +139,7 @@ inline json& random_entity_data(GameConfig& config, json& gen_config) { int rand_entity = Random::uniform(0, keys.size() - 1); std::string key = keys[rand_entity]; - // BUG: this may crash if PLAYER_TILE isn't first + return entity_db[key]; }