aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/InputSystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/system/InputSystem.cpp')
-rw-r--r--src/crepe/system/InputSystem.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/crepe/system/InputSystem.cpp b/src/crepe/system/InputSystem.cpp
index dd45821..f5d8536 100644
--- a/src/crepe/system/InputSystem.cpp
+++ b/src/crepe/system/InputSystem.cpp
@@ -30,13 +30,13 @@ void InputSystem::update() {
ivec2 camera_origin;
camera_origin.y = cam_transform.position.y + current_cam.data.postion_offset.y
- - (current_cam.viewport_size.y / 2);
+ - (current_cam.viewport_size.y / 2);
camera_origin.x = cam_transform.position.x + current_cam.data.postion_offset.x
- - (current_cam.viewport_size.x / 2);
+ - (current_cam.viewport_size.x / 2);
for (const SDLContext::EventData & event : event_list) {
// Only calculate mouse coordinates for relevant events
- if (event.event_type == SDLContext::EventType::MOUSEDOWN
+ if (event.event_type == SDLContext::EventType::MOUSEDOWN
|| event.event_type == SDLContext::EventType::MOUSEUP
|| event.event_type == SDLContext::EventType::MOUSEMOVE
|| event.event_type == SDLContext::EventType::MOUSEWHEEL) {
@@ -45,10 +45,11 @@ void InputSystem::update() {
int adjusted_mouse_y = event.mouse_data.mouse_position.y + camera_origin.y;
// Check if the mouse is within the viewport
- bool mouse_in_viewport = !(adjusted_mouse_x < camera_origin.x
- || adjusted_mouse_x > camera_origin.x + current_cam.viewport_size.x
- || adjusted_mouse_y < camera_origin.y
- || adjusted_mouse_y > camera_origin.y + current_cam.viewport_size.y);
+ bool mouse_in_viewport
+ = !(adjusted_mouse_x < camera_origin.x
+ || adjusted_mouse_x > camera_origin.x + current_cam.viewport_size.x
+ || adjusted_mouse_y < camera_origin.y
+ || adjusted_mouse_y > camera_origin.y + current_cam.viewport_size.y);
if (!mouse_in_viewport) continue;
@@ -78,7 +79,8 @@ void InputSystem::update() {
.mouse_pos = {adjusted_mouse_x, adjusted_mouse_y},
.button = event.mouse_data.mouse_button,
});
- this->handle_click(event.mouse_data.mouse_button, adjusted_mouse_x, adjusted_mouse_y);
+ this->handle_click(event.mouse_data.mouse_button, adjusted_mouse_x,
+ adjusted_mouse_y);
}
break;
}
@@ -106,7 +108,8 @@ void InputSystem::update() {
// Handle non-mouse events
switch (event.event_type) {
case SDLContext::EventType::KEYDOWN:
- event_mgr.queue_event<KeyPressEvent>({.repeat = event.key_data.key_repeat, .key = event.key_data.key});
+ event_mgr.queue_event<KeyPressEvent>(
+ {.repeat = event.key_data.key_repeat, .key = event.key_data.key});
break;
case SDLContext::EventType::KEYUP:
event_mgr.queue_event<KeyReleaseEvent>({.key = event.key_data.key});
@@ -118,10 +121,12 @@ void InputSystem::update() {
event_mgr.queue_event<WindowExposeEvent>({});
break;
case SDLContext::EventType::WINDOW_RESIZE:
- event_mgr.queue_event<WindowResizeEvent>(WindowResizeEvent{.dimensions = event.window_data.resize_dimension});
+ event_mgr.queue_event<WindowResizeEvent>(
+ WindowResizeEvent{.dimensions = event.window_data.resize_dimension});
break;
case SDLContext::EventType::WINDOW_MOVE:
- event_mgr.queue_event<WindowMoveEvent>({.delta_move = event.window_data.move_delta});
+ event_mgr.queue_event<WindowMoveEvent>(
+ {.delta_move = event.window_data.move_delta});
break;
case SDLContext::EventType::WINDOW_MINIMIZE:
event_mgr.queue_event<WindowMinimizeEvent>({});
@@ -155,7 +160,8 @@ void InputSystem::handle_move(const SDLContext::EventData & event_data,
bool was_hovering = button.hover;
if (button.active
- && this->is_mouse_inside_button(adjusted_mouse_x, adjusted_mouse_y, button, transform)) {
+ && this->is_mouse_inside_button(adjusted_mouse_x, adjusted_mouse_y, button,
+ transform)) {
button.hover = true;
if (!was_hovering && button.on_mouse_enter) {
button.on_mouse_enter();
@@ -182,7 +188,8 @@ void InputSystem::handle_click(const MouseButton & mouse_button, const int adjus
Transform & transform = transform_vec.front().get();
if (button.active
- && this->is_mouse_inside_button(adjusted_mouse_x, adjusted_mouse_y, button, transform)) {
+ && this->is_mouse_inside_button(adjusted_mouse_x, adjusted_mouse_y, button,
+ transform)) {
this->handle_button_press(button);
}
}