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:
event(Event::START_COMBAT);
break;
case eGUI::ENTITY_SPAWN:
$main_ui.$rayview.update_level($level);
case eGUI::ENTITY_SPAWN: {
auto& sprite = world.get<components::Sprite>(entity);
$main_ui.$rayview.update_sprite(entity, sprite);
$main_ui.dirty();
run_systems();
break;
} break;
case eGUI::NO_NEIGHBORS:
event(Event::STOP_COMBAT);
break;

@ -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<components::Sprite>([&](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);
});
}

Loading…
Cancel
Save