Start the refactor of FSM::handle_world_events.

This commit is contained in:
Zed A. Shaw 2026-05-27 13:43:03 -04:00
parent e4d6bf4854
commit a58439a289

View file

@ -75,6 +75,7 @@ namespace gui {
}
void FSM::ATTACKING(Event ev, std::any data) {
// BUG: the way this locks animations is weird
if(!$main_ui.hands_playing()) {
// run combat one more time
$systems.runCombat(0);
@ -426,13 +427,6 @@ namespace gui {
$main_ui.dirty();
run_systems();
} break;
case eGUI::LOOT_CLOSE:
// BUG: need to resolve GUI events vs. FSM events better
event(Event::LOOT_OPEN);
break;
case eGUI::LOOT_SELECT:
event(Event::LOOT_SELECT, data);
break;
case eGUI::INV_SELECT: {
if($router.left_button) {
event(Event::INV_SELECT, data);
@ -440,8 +434,8 @@ namespace gui {
event(Event::USE_ITEM, data);
}
} break;
case eGUI::AIM_CLICK:
event(Event::AIM_CLICK);
case eGUI::STAIRS_DOWN:
event(Event::BOSS_START);
break;
case eGUI::LOOT_ITEM: {
dbc::check(world->has<components::InventoryItem>(entity),
@ -460,12 +454,6 @@ namespace gui {
case eGUI::NEW_RITUAL:
$combat_ui.init(COMBAT_UI_X, COMBAT_UI_Y, COMBAT_UI_WIDTH, COMBAT_UI_HEIGHT);
break;
case eGUI::ATTACK:
event(Event::ATTACK, data);
break;
case eGUI::STAIRS_DOWN:
event(Event::BOSS_START);
break;
case eGUI::DEATH: {
$status_ui.update();
if(entity != player.entity) {
@ -480,6 +468,15 @@ namespace gui {
$map_ui.log($F(L"NOOP EVENT! {},{}", evt, entity));
}
} break;
case eGUI::AIM_CLICK:
case eGUI::LOOT_SELECT:
case eGUI::LOOT_CLOSE:
case eGUI::ATTACK:
// BUG: need to resolve GUI events vs. FSM events better
event(Event(evt), data);
break;
default:
dbc::log($F("Unhandled event: evt={}; enemy={}; data={}",
evt, entity, data.type().name()));