Fix the mouse handler so that it uses the router mouse_mods.
This commit is contained in:
parent
af4ee30ade
commit
dc9f942912
2 changed files with 25 additions and 25 deletions
|
|
@ -33,19 +33,19 @@ namespace gui {
|
||||||
|
|
||||||
void FSM::event(Event ev, std::any data) {
|
void FSM::event(Event ev, std::any data) {
|
||||||
switch($state) {
|
switch($state) {
|
||||||
FSM_STATE(State, START, ev);
|
FSM_STATE(State, START, ev, data);
|
||||||
FSM_STATE(State, MOVING, ev);
|
FSM_STATE(State, MOVING, ev, data);
|
||||||
FSM_STATE(State, ATTACKING, ev, data);
|
FSM_STATE(State, ATTACKING, ev, data);
|
||||||
FSM_STATE(State, ROTATING, ev);
|
FSM_STATE(State, ROTATING, ev, data);
|
||||||
FSM_STATE(State, IDLE, ev, data);
|
FSM_STATE(State, IDLE, ev, data);
|
||||||
FSM_STATE(State, CUT_SCENE_PLAYING, ev, data);
|
FSM_STATE(State, CUT_SCENE_PLAYING, ev, data);
|
||||||
FSM_STATE(State, BOSS_FIGHT, ev, data);
|
FSM_STATE(State, BOSS_FIGHT, ev, data);
|
||||||
FSM_STATE(State, LOOTING, ev, data);
|
FSM_STATE(State, LOOTING, ev, data);
|
||||||
FSM_STATE(State, END, ev);
|
FSM_STATE(State, END, ev, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::START(Event ) {
|
void FSM::START(Event ev, std::any data) {
|
||||||
$main_ui.update_level();
|
$main_ui.update_level();
|
||||||
$main_ui.init();
|
$main_ui.init();
|
||||||
$loot_ui.init();
|
$loot_ui.init();
|
||||||
|
|
@ -64,7 +64,7 @@ namespace gui {
|
||||||
state(State::IDLE);
|
state(State::IDLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::MOVING(Event ) {
|
void FSM::MOVING(Event ev, std::any data) {
|
||||||
// this should be an optional that returns a point
|
// this should be an optional that returns a point
|
||||||
if(auto move_to = $main_ui.play_move()) {
|
if(auto move_to = $main_ui.play_move()) {
|
||||||
$systems.runMoving(*move_to);
|
$systems.runMoving(*move_to);
|
||||||
|
|
@ -82,7 +82,7 @@ namespace gui {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::ROTATING(Event) {
|
void FSM::ROTATING(Event ev, std::any data) {
|
||||||
if(auto aim = $main_ui.play_rotate()) {
|
if(auto aim = $main_ui.play_rotate()) {
|
||||||
auto& player_pos = GameDB::player_position();
|
auto& player_pos = GameDB::player_position();
|
||||||
player_pos.aiming_at = *aim;
|
player_pos.aiming_at = *aim;
|
||||||
|
|
@ -97,7 +97,7 @@ namespace gui {
|
||||||
case MOUSE_DRAG_START:
|
case MOUSE_DRAG_START:
|
||||||
case MOUSE_CLICK:
|
case MOUSE_CLICK:
|
||||||
case MOUSE_DROP:
|
case MOUSE_DROP:
|
||||||
mouse_action(guecs::NO_MODS);
|
mouse_action();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(!$dnd_loot.event(ev, data)) {
|
if(!$dnd_loot.event(ev, data)) {
|
||||||
|
|
@ -176,10 +176,10 @@ namespace gui {
|
||||||
$status_ui.update();
|
$status_ui.update();
|
||||||
} break;
|
} break;
|
||||||
case MOUSE_CLICK:
|
case MOUSE_CLICK:
|
||||||
mouse_action(guecs::NO_MODS);
|
mouse_action();
|
||||||
break;
|
break;
|
||||||
case MOUSE_MOVE: {
|
case MOUSE_MOVE: {
|
||||||
mouse_action({1 << guecs::ModBit::hover});
|
mouse_action();
|
||||||
} break;
|
} break;
|
||||||
case AIM_CLICK:
|
case AIM_CLICK:
|
||||||
$systems.runPickup();
|
$systems.runPickup();
|
||||||
|
|
@ -220,7 +220,7 @@ namespace gui {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::END(Event ev) {
|
void FSM::END(Event ev, std::any data) {
|
||||||
dbc::log($F("END: received event after done: {}", int(ev)));
|
dbc::log($F("END: received event after done: {}", int(ev)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -228,16 +228,16 @@ namespace gui {
|
||||||
return $window.mapPixelToCoords($router.position);
|
return $window.mapPixelToCoords($router.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::mouse_action(guecs::Modifiers mods) {
|
void FSM::mouse_action() {
|
||||||
sf::Vector2f pos = mouse_position();
|
sf::Vector2f pos = mouse_position();
|
||||||
if($debug_ui.active) $debug_ui.mouse(pos.x, pos.y, mods);
|
if($debug_ui.active) $debug_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||||
$combat_ui.mouse(pos.x, pos.y, mods);
|
$combat_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||||
$status_ui.mouse(pos.x, pos.y, mods);
|
$status_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||||
|
|
||||||
if($loot_ui.active) {
|
if($loot_ui.active) {
|
||||||
$loot_ui.mouse(pos.x, pos.y, mods);
|
$loot_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||||
} else {
|
} else {
|
||||||
$main_ui.mouse(pos.x, pos.y, mods);
|
$main_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,22 +53,22 @@ namespace gui {
|
||||||
void autowalk();
|
void autowalk();
|
||||||
void start_autowalk(double rot_speed);
|
void start_autowalk(double rot_speed);
|
||||||
|
|
||||||
void START(game::Event ev);
|
void START(game::Event ev, std::any data);
|
||||||
void MOVING(game::Event ev);
|
void MOVING(game::Event ev, std::any data);
|
||||||
void ATTACKING(game::Event ev, std::any data);
|
void ATTACKING(game::Event ev, std::any data);
|
||||||
void MAPPING(game::Event ev);
|
void MAPPING(game::Event ev, std::any data);
|
||||||
void ROTATING(game::Event ev);
|
void ROTATING(game::Event ev, std::any data);
|
||||||
void IDLE(game::Event ev, std::any data);
|
void IDLE(game::Event ev, std::any data);
|
||||||
void IN_COMBAT(game::Event ev);
|
void IN_COMBAT(game::Event ev, std::any data);
|
||||||
void COMBAT_ROTATE(game::Event ev);
|
void COMBAT_ROTATE(game::Event ev, std::any data);
|
||||||
void BOSS_FIGHT(game::Event ev, std::any data);
|
void BOSS_FIGHT(game::Event ev, std::any data);
|
||||||
void LOOTING(game::Event ev, std::any data);
|
void LOOTING(game::Event ev, std::any data);
|
||||||
void CUT_SCENE_PLAYING(game::Event ev, std::any data);
|
void CUT_SCENE_PLAYING(game::Event ev, std::any data);
|
||||||
void END(game::Event ev);
|
void END(game::Event ev, std::any data);
|
||||||
|
|
||||||
void try_move(int dir, bool strafe);
|
void try_move(int dir, bool strafe);
|
||||||
sf::Vector2f mouse_position();
|
sf::Vector2f mouse_position();
|
||||||
void mouse_action(guecs::Modifiers mods);
|
void mouse_action();
|
||||||
void handle_keyboard_mouse();
|
void handle_keyboard_mouse();
|
||||||
void draw_gui();
|
void draw_gui();
|
||||||
void update();
|
void update();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue