Start the refactor of FSM::handle_world_events.
This commit is contained in:
parent
e4d6bf4854
commit
a58439a289
1 changed files with 12 additions and 15 deletions
|
|
@ -75,6 +75,7 @@ namespace gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::ATTACKING(Event ev, std::any data) {
|
void FSM::ATTACKING(Event ev, std::any data) {
|
||||||
|
// BUG: the way this locks animations is weird
|
||||||
if(!$main_ui.hands_playing()) {
|
if(!$main_ui.hands_playing()) {
|
||||||
// run combat one more time
|
// run combat one more time
|
||||||
$systems.runCombat(0);
|
$systems.runCombat(0);
|
||||||
|
|
@ -426,13 +427,6 @@ namespace gui {
|
||||||
$main_ui.dirty();
|
$main_ui.dirty();
|
||||||
run_systems();
|
run_systems();
|
||||||
} break;
|
} 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: {
|
case eGUI::INV_SELECT: {
|
||||||
if($router.left_button) {
|
if($router.left_button) {
|
||||||
event(Event::INV_SELECT, data);
|
event(Event::INV_SELECT, data);
|
||||||
|
|
@ -440,8 +434,8 @@ namespace gui {
|
||||||
event(Event::USE_ITEM, data);
|
event(Event::USE_ITEM, data);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case eGUI::AIM_CLICK:
|
case eGUI::STAIRS_DOWN:
|
||||||
event(Event::AIM_CLICK);
|
event(Event::BOSS_START);
|
||||||
break;
|
break;
|
||||||
case eGUI::LOOT_ITEM: {
|
case eGUI::LOOT_ITEM: {
|
||||||
dbc::check(world->has<components::InventoryItem>(entity),
|
dbc::check(world->has<components::InventoryItem>(entity),
|
||||||
|
|
@ -460,12 +454,6 @@ namespace gui {
|
||||||
case eGUI::NEW_RITUAL:
|
case eGUI::NEW_RITUAL:
|
||||||
$combat_ui.init(COMBAT_UI_X, COMBAT_UI_Y, COMBAT_UI_WIDTH, COMBAT_UI_HEIGHT);
|
$combat_ui.init(COMBAT_UI_X, COMBAT_UI_Y, COMBAT_UI_WIDTH, COMBAT_UI_HEIGHT);
|
||||||
break;
|
break;
|
||||||
case eGUI::ATTACK:
|
|
||||||
event(Event::ATTACK, data);
|
|
||||||
break;
|
|
||||||
case eGUI::STAIRS_DOWN:
|
|
||||||
event(Event::BOSS_START);
|
|
||||||
break;
|
|
||||||
case eGUI::DEATH: {
|
case eGUI::DEATH: {
|
||||||
$status_ui.update();
|
$status_ui.update();
|
||||||
if(entity != player.entity) {
|
if(entity != player.entity) {
|
||||||
|
|
@ -480,6 +468,15 @@ namespace gui {
|
||||||
$map_ui.log($F(L"NOOP EVENT! {},{}", evt, entity));
|
$map_ui.log($F(L"NOOP EVENT! {},{}", evt, entity));
|
||||||
}
|
}
|
||||||
} break;
|
} 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:
|
default:
|
||||||
dbc::log($F("Unhandled event: evt={}; enemy={}; data={}",
|
dbc::log($F("Unhandled event: evt={}; enemy={}; data={}",
|
||||||
evt, entity, data.type().name()));
|
evt, entity, data.type().name()));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue