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
|
|
@ -7,11 +7,11 @@ namespace gui {
|
|||
using enum Event;
|
||||
using enum State;
|
||||
|
||||
gui::Event Router::process_event(std::optional<sf::Event> ev) {
|
||||
$next_event = gui::Event::TICK;
|
||||
game::Event Router::process_event(std::optional<sf::Event> ev) {
|
||||
$next_event = game::Event::TICK;
|
||||
|
||||
if(ev->is<sf::Event::Closed>()) {
|
||||
return gui::Event::QUIT;
|
||||
return game::Event::QUIT;
|
||||
}
|
||||
|
||||
if(const auto* mouse = ev->getIf<sf::Event::MouseButtonPressed>()) {
|
||||
|
|
@ -58,18 +58,18 @@ namespace gui {
|
|||
switch(ev) {
|
||||
case MOUSE_DOWN:
|
||||
move_count=0;
|
||||
set_event(gui::Event::TICK);
|
||||
set_event(game::Event::TICK);
|
||||
state(State::MOUSE_ACTIVE);
|
||||
break;
|
||||
case MOUSE_UP:
|
||||
set_event(gui::Event::MOUSE_CLICK);
|
||||
set_event(game::Event::MOUSE_CLICK);
|
||||
state(State::IDLE);
|
||||
break;
|
||||
case MOUSE_MOVE:
|
||||
set_event(gui::Event::MOUSE_MOVE);
|
||||
set_event(game::Event::MOUSE_MOVE);
|
||||
break;
|
||||
case KEY_PRESS:
|
||||
set_event(gui::Event::KEY_PRESS);
|
||||
set_event(game::Event::KEY_PRESS);
|
||||
break;
|
||||
default:
|
||||
dbc::sentinel(fmt::format("invalid event: {}", int(ev)));
|
||||
|
|
@ -79,16 +79,16 @@ namespace gui {
|
|||
void Router::MOUSE_ACTIVE(Event ev) {
|
||||
switch(ev) {
|
||||
case MOUSE_UP:
|
||||
set_event(gui::Event::MOUSE_CLICK);
|
||||
set_event(game::Event::MOUSE_CLICK);
|
||||
state(State::IDLE);
|
||||
break;
|
||||
case MOUSE_MOVE:
|
||||
move_count++;
|
||||
set_event(gui::Event::MOUSE_DRAG);
|
||||
set_event(game::Event::MOUSE_DRAG);
|
||||
state(State::MOUSE_MOVING);
|
||||
break;
|
||||
case KEY_PRESS:
|
||||
set_event(gui::Event::KEY_PRESS);
|
||||
set_event(game::Event::KEY_PRESS);
|
||||
state(State::IDLE);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -100,21 +100,21 @@ namespace gui {
|
|||
switch(ev) {
|
||||
case MOUSE_UP: {
|
||||
dbc::check(move_count < $drag_tolerance, "mouse up but not in dragging state");
|
||||
set_event(gui::Event::MOUSE_CLICK);
|
||||
set_event(game::Event::MOUSE_CLICK);
|
||||
state(State::IDLE);
|
||||
} break;
|
||||
case MOUSE_MOVE:
|
||||
move_count++;
|
||||
|
||||
if(move_count < $drag_tolerance) {
|
||||
set_event(gui::Event::MOUSE_DRAG);
|
||||
set_event(game::Event::MOUSE_DRAG);
|
||||
} else {
|
||||
set_event(gui::Event::MOUSE_DRAG_START);
|
||||
set_event(game::Event::MOUSE_DRAG_START);
|
||||
state(State::MOUSE_DRAGGING);
|
||||
}
|
||||
break;
|
||||
case KEY_PRESS:
|
||||
set_event(gui::Event::KEY_PRESS);
|
||||
set_event(game::Event::KEY_PRESS);
|
||||
break;
|
||||
default:
|
||||
dbc::sentinel("invalid event");
|
||||
|
|
@ -125,15 +125,15 @@ namespace gui {
|
|||
void Router::MOUSE_DRAGGING(Event ev) {
|
||||
switch(ev) {
|
||||
case MOUSE_UP:
|
||||
set_event(gui::Event::MOUSE_DROP);
|
||||
set_event(game::Event::MOUSE_DROP);
|
||||
state(State::IDLE);
|
||||
break;
|
||||
case MOUSE_MOVE:
|
||||
move_count++;
|
||||
set_event(gui::Event::MOUSE_DRAG);
|
||||
set_event(game::Event::MOUSE_DRAG);
|
||||
break;
|
||||
case KEY_PRESS:
|
||||
set_event(gui::Event::KEY_PRESS);
|
||||
set_event(game::Event::KEY_PRESS);
|
||||
break;
|
||||
default:
|
||||
dbc::sentinel("invalid events");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue