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) {
|
||||
switch($state) {
|
||||
FSM_STATE(State, START, ev);
|
||||
FSM_STATE(State, MOVING, ev);
|
||||
FSM_STATE(State, START, ev, data);
|
||||
FSM_STATE(State, MOVING, 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, CUT_SCENE_PLAYING, ev, data);
|
||||
FSM_STATE(State, BOSS_FIGHT, 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.init();
|
||||
$loot_ui.init();
|
||||
|
|
@ -64,7 +64,7 @@ namespace gui {
|
|||
state(State::IDLE);
|
||||
}
|
||||
|
||||
void FSM::MOVING(Event ) {
|
||||
void FSM::MOVING(Event ev, std::any data) {
|
||||
// this should be an optional that returns a point
|
||||
if(auto move_to = $main_ui.play_move()) {
|
||||
$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()) {
|
||||
auto& player_pos = GameDB::player_position();
|
||||
player_pos.aiming_at = *aim;
|
||||
|
|
@ -97,7 +97,7 @@ namespace gui {
|
|||
case MOUSE_DRAG_START:
|
||||
case MOUSE_CLICK:
|
||||
case MOUSE_DROP:
|
||||
mouse_action(guecs::NO_MODS);
|
||||
mouse_action();
|
||||
break;
|
||||
default:
|
||||
if(!$dnd_loot.event(ev, data)) {
|
||||
|
|
@ -176,10 +176,10 @@ namespace gui {
|
|||
$status_ui.update();
|
||||
} break;
|
||||
case MOUSE_CLICK:
|
||||
mouse_action(guecs::NO_MODS);
|
||||
mouse_action();
|
||||
break;
|
||||
case MOUSE_MOVE: {
|
||||
mouse_action({1 << guecs::ModBit::hover});
|
||||
mouse_action();
|
||||
} break;
|
||||
case AIM_CLICK:
|
||||
$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)));
|
||||
}
|
||||
|
||||
|
|
@ -228,16 +228,16 @@ namespace gui {
|
|||
return $window.mapPixelToCoords($router.position);
|
||||
}
|
||||
|
||||
void FSM::mouse_action(guecs::Modifiers mods) {
|
||||
void FSM::mouse_action() {
|
||||
sf::Vector2f pos = mouse_position();
|
||||
if($debug_ui.active) $debug_ui.mouse(pos.x, pos.y, mods);
|
||||
$combat_ui.mouse(pos.x, pos.y, mods);
|
||||
$status_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, $router.mouse_mods);
|
||||
$status_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||
|
||||
if($loot_ui.active) {
|
||||
$loot_ui.mouse(pos.x, pos.y, mods);
|
||||
$loot_ui.mouse(pos.x, pos.y, $router.mouse_mods);
|
||||
} 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 start_autowalk(double rot_speed);
|
||||
|
||||
void START(game::Event ev);
|
||||
void MOVING(game::Event ev);
|
||||
void START(game::Event ev, std::any data);
|
||||
void MOVING(game::Event ev, std::any data);
|
||||
void ATTACKING(game::Event ev, std::any data);
|
||||
void MAPPING(game::Event ev);
|
||||
void ROTATING(game::Event ev);
|
||||
void MAPPING(game::Event ev, std::any data);
|
||||
void ROTATING(game::Event ev, std::any data);
|
||||
void IDLE(game::Event ev, std::any data);
|
||||
void IN_COMBAT(game::Event ev);
|
||||
void COMBAT_ROTATE(game::Event ev);
|
||||
void IN_COMBAT(game::Event ev, std::any data);
|
||||
void COMBAT_ROTATE(game::Event ev, std::any data);
|
||||
void BOSS_FIGHT(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 END(game::Event ev);
|
||||
void END(game::Event ev, std::any data);
|
||||
|
||||
void try_move(int dir, bool strafe);
|
||||
sf::Vector2f mouse_position();
|
||||
void mouse_action(guecs::Modifiers mods);
|
||||
void mouse_action();
|
||||
void handle_keyboard_mouse();
|
||||
void draw_gui();
|
||||
void update();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue