Finally unified all of my events into one place.
This commit is contained in:
parent
6c34fea64a
commit
c618a4828f
30 changed files with 215 additions and 216 deletions
20
gui/fsm.cpp
20
gui/fsm.cpp
|
|
@ -6,7 +6,6 @@
|
|||
#include "components.hpp"
|
||||
#include <numbers>
|
||||
#include "systems.hpp"
|
||||
#include "gui/fsm_events.hpp"
|
||||
#include "events.hpp"
|
||||
#include "sound.hpp"
|
||||
#include "shaders.hpp"
|
||||
|
|
@ -17,6 +16,7 @@
|
|||
|
||||
namespace gui {
|
||||
using namespace components;
|
||||
using game::Event;
|
||||
|
||||
FSM::FSM() :
|
||||
$window(sf::VideoMode({SCREEN_WIDTH, SCREEN_HEIGHT}), "Zed's Raycaster Thing"),
|
||||
|
|
@ -83,7 +83,7 @@ namespace gui {
|
|||
run_systems();
|
||||
state(State::IN_COMBAT);
|
||||
} break;
|
||||
case STOP_COMBAT:
|
||||
case COMBAT_STOP:
|
||||
state(State::IDLE);
|
||||
break;
|
||||
case ATTACK: {
|
||||
|
|
@ -165,7 +165,7 @@ namespace gui {
|
|||
case ATTACK:
|
||||
state(State::ATTACKING);
|
||||
break;
|
||||
case START_COMBAT:
|
||||
case COMBAT_START:
|
||||
$map_open = false;
|
||||
state(State::IN_COMBAT);
|
||||
break;
|
||||
|
|
@ -215,7 +215,7 @@ namespace gui {
|
|||
dbc::check($boss_fight != nullptr, "$boss_fight not initialized");
|
||||
|
||||
if($boss_scene->playing()) {
|
||||
if(ev == gui::Event::MOUSE_CLICK) {
|
||||
if(ev == game::Event::MOUSE_CLICK) {
|
||||
$boss_scene->mouse(0,0, 0);
|
||||
}
|
||||
return;
|
||||
|
|
@ -223,7 +223,7 @@ namespace gui {
|
|||
|
||||
$boss_fight->mouse_pos = mouse_position();
|
||||
|
||||
if(ev == gui::Event::QUIT) {
|
||||
if(ev == game::Event::QUIT) {
|
||||
// just epsilon straight to the exit
|
||||
IDLE(ev, data);
|
||||
} if($boss_fight->event(ev, data)) {
|
||||
|
|
@ -260,7 +260,7 @@ namespace gui {
|
|||
$main_ui.plan_rotate(1, DEFAULT_ROTATE);
|
||||
state(State::COMBAT_ROTATE);
|
||||
break;
|
||||
case STOP_COMBAT:
|
||||
case COMBAT_STOP:
|
||||
$main_ui.$overlay_ui.close_sprite("top_right");
|
||||
state(State::IDLE);
|
||||
break;
|
||||
|
|
@ -436,7 +436,7 @@ namespace gui {
|
|||
}
|
||||
|
||||
void FSM::handle_world_events() {
|
||||
using eGUI = Events::GUI;
|
||||
using eGUI = game::Event;
|
||||
auto world = GameDB::current_world();
|
||||
|
||||
while(world->has_event<eGUI>()) {
|
||||
|
|
@ -447,7 +447,7 @@ namespace gui {
|
|||
|
||||
switch(evt) {
|
||||
case eGUI::COMBAT: {
|
||||
auto &damage = std::any_cast<Events::Combat&>(data);
|
||||
auto &damage = std::any_cast<components::CombatResult&>(data);
|
||||
|
||||
if(damage.enemy_did > 0) {
|
||||
$map_ui.log(fmt::format(L"Enemy HIT YOU for {} damage!", damage.enemy_did));
|
||||
|
|
@ -463,7 +463,7 @@ namespace gui {
|
|||
}
|
||||
break;
|
||||
case eGUI::COMBAT_START:
|
||||
event(Event::START_COMBAT);
|
||||
event(Event::COMBAT_START);
|
||||
break;
|
||||
case eGUI::ENTITY_SPAWN: {
|
||||
auto& sprite = world->get<components::Sprite>(entity);
|
||||
|
|
@ -472,7 +472,7 @@ namespace gui {
|
|||
run_systems();
|
||||
} break;
|
||||
case eGUI::NO_NEIGHBORS:
|
||||
event(Event::STOP_COMBAT);
|
||||
event(Event::COMBAT_STOP);
|
||||
break;
|
||||
case eGUI::LOOT_CLOSE:
|
||||
// BUG: need to resolve GUI events vs. FSM events better
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue