diff --git a/src/gui/fsm.cpp b/src/gui/fsm.cpp index 3d4fa31..4d32bcf 100644 --- a/src/gui/fsm.cpp +++ b/src/gui/fsm.cpp @@ -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(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()));