From a418b48e945ceec8cf8949f4cb37eea131f836f1 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Mon, 30 Jun 2025 10:38:53 -0400 Subject: [PATCH] Don't re-run the whole next level thing on every spawned item. Closes #48 --- gui/fsm.cpp | 7 ++++--- raycaster.cpp | 5 +---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/gui/fsm.cpp b/gui/fsm.cpp index c4f5778..a602fae 100644 --- a/gui/fsm.cpp +++ b/gui/fsm.cpp @@ -446,11 +446,12 @@ namespace gui { case eGUI::COMBAT_START: event(Event::START_COMBAT); break; - case eGUI::ENTITY_SPAWN: - $main_ui.$rayview.update_level($level); + case eGUI::ENTITY_SPAWN: { + auto& sprite = world.get(entity); + $main_ui.$rayview.update_sprite(entity, sprite); $main_ui.dirty(); run_systems(); - break; + } break; case eGUI::NO_NEIGHBORS: event(Event::STOP_COMBAT); break; diff --git a/raycaster.cpp b/raycaster.cpp index f76e3eb..7cbfa3d 100644 --- a/raycaster.cpp +++ b/raycaster.cpp @@ -417,7 +417,6 @@ void Raycaster::draw(sf::RenderTarget& target) { } void Raycaster::update_sprite(DinkyECS::Entity ent, components::Sprite& sprite) { - // fmt::println("entity UPDATE SPRITE {} will have sprite named {}", ent, sprite.name); auto sprite_txt = textures::get(sprite.name); $sprites.insert_or_assign(ent, sprite_txt); } @@ -433,9 +432,7 @@ void Raycaster::update_level(GameLevel level) { $level.world->query([&](const auto ent, auto& sprite) { // player doesn't need a sprite if($level.player == ent) return; - // fmt::println("entity {} will have sprite named {}", ent, sprite.name); - auto sprite_txt = textures::get(sprite.name); - $sprites.insert_or_assign(ent, sprite_txt); + update_sprite(ent, sprite); }); }