Don't re-run the whole next level thing on every spawned item. Closes #48

master
Zed A. Shaw 21 hours ago
parent b28b76ee2d
commit a418b48e94
  1. 7
      gui/fsm.cpp
  2. 5
      raycaster.cpp

@ -446,11 +446,12 @@ namespace gui {
case eGUI::COMBAT_START: case eGUI::COMBAT_START:
event(Event::START_COMBAT); event(Event::START_COMBAT);
break; break;
case eGUI::ENTITY_SPAWN: case eGUI::ENTITY_SPAWN: {
$main_ui.$rayview.update_level($level); auto& sprite = world.get<components::Sprite>(entity);
$main_ui.$rayview.update_sprite(entity, sprite);
$main_ui.dirty(); $main_ui.dirty();
run_systems(); run_systems();
break; } break;
case eGUI::NO_NEIGHBORS: case eGUI::NO_NEIGHBORS:
event(Event::STOP_COMBAT); event(Event::STOP_COMBAT);
break; break;

@ -417,7 +417,6 @@ void Raycaster::draw(sf::RenderTarget& target) {
} }
void Raycaster::update_sprite(DinkyECS::Entity ent, components::Sprite& sprite) { 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); auto sprite_txt = textures::get(sprite.name);
$sprites.insert_or_assign(ent, sprite_txt); $sprites.insert_or_assign(ent, sprite_txt);
} }
@ -433,9 +432,7 @@ void Raycaster::update_level(GameLevel level) {
$level.world->query<components::Sprite>([&](const auto ent, auto& sprite) { $level.world->query<components::Sprite>([&](const auto ent, auto& sprite) {
// player doesn't need a sprite // player doesn't need a sprite
if($level.player == ent) return; if($level.player == ent) return;
// fmt::println("entity {} will have sprite named {}", ent, sprite.name); update_sprite(ent, sprite);
auto sprite_txt = textures::get(sprite.name);
$sprites.insert_or_assign(ent, sprite_txt);
}); });
} }

Loading…
Cancel
Save