aboutsummaryrefslogtreecommitdiff
path: root/src/player
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-09-20 13:43:18 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-09-20 16:56:30 +0200
commit87b4ef3a15af505f5ed5150ee1dadd2e2bc94c17 (patch)
treef3d317088514089d0f84fb553cf9e307dffca549 /src/player
parent14df82ee4db71509f4ec4968df439d4659ca1ac3 (diff)
downloadjancity-87b4ef3a15af505f5ed5150ee1dadd2e2bc94c17.tar.gz
Remap calls to pad/mouse/keyboard to input
Diffstat (limited to 'src/player')
-rw-r--r--src/player/CMakeLists.txt1
-rw-r--r--src/player/inc/human_player.h2
-rw-r--r--src/player/src/human_player.c40
3 files changed, 27 insertions, 16 deletions
diff --git a/src/player/CMakeLists.txt b/src/player/CMakeLists.txt
index 3d995ee..f722a53 100644
--- a/src/player/CMakeLists.txt
+++ b/src/player/CMakeLists.txt
@@ -11,6 +11,7 @@ target_link_libraries(player
gfx
keyboard
instance
+ input
mouse
pad
resource
diff --git a/src/player/inc/human_player.h b/src/player/inc/human_player.h
index 7d28b34..173ff80 100644
--- a/src/player/inc/human_player.h
+++ b/src/player/inc/human_player.h
@@ -4,6 +4,7 @@
#include <camera.h>
#include <keyboard.h>
#include <instance.h>
+#include <input.h>
#include <mouse.h>
#include <pad.h>
#include <peripheral.h>
@@ -32,6 +33,7 @@ struct human_player
struct player pl;
struct camera cam;
union peripheral periph;
+ struct input in;
struct sel_instance
{
diff --git a/src/player/src/human_player.c b/src/player/src/human_player.c
index 1d2af7d..314581b 100644
--- a/src/player/src/human_player.c
+++ b/src/player/src/human_player.c
@@ -6,6 +6,7 @@
#include <gfx.h>
#include <gui.h>
#include <instance.h>
+#include <input.h>
#include <keyboard.h>
#include <pad.h>
#include <resource.h>
@@ -542,26 +543,28 @@ static void update_target(struct human_player *const h)
static void update_from_pad(struct human_player *const h,
struct player_others *const o)
{
- struct pad *const p = &h->periph.pad.pad;
+ const struct pad *const p = &h->periph.pad.pad;
+ const struct input *const in = &h->in;
- if (pad_justpressed(p, PAD_KEY_A))
+ if (input_pad_justpressed(in, p, PAD_KEY_A))
select_instances(h, o, false, false);
- else if (pad_justpressed(p, PAD_KEY_B))
+ else if (input_pad_justpressed(in, p, PAD_KEY_B))
move_units(h, o);
- else if (pad_justpressed(p, PAD_KEY_C))
+ else if (input_pad_justpressed(in, p, PAD_KEY_C))
deselect_instances(h);
- else if (pad_justpressed(p, PAD_KEY_E))
+ else if (input_pad_justpressed(in, p, PAD_KEY_E))
h->top_gui ^= true;
}
static void update_from_touch(struct human_player *const h,
struct player_others *const o)
{
- struct mouse *const m = &h->periph.kbm.mouse;
+ const struct mouse *const m = &h->periph.kbm.mouse;
+ const struct input *const in = &h->in;
struct peripheral_kbm *const kbm = &h->periph.kbm;
bool *const pan = &h->cam.pan;
- if (mouse_pressed(m, MOUSE_BUTTON_LEFT) && !*pan)
+ if (input_mouse_pressed(in, m, MOUSE_BUTTON_LEFT) && !*pan)
{
enum {LONG_PRESS_THRESHOLD = 30};
@@ -573,7 +576,7 @@ static void update_from_touch(struct human_player *const h,
deselect_instances(h);
}
}
- else if (mouse_justreleased(m, MOUSE_BUTTON_LEFT))
+ else if (input_mouse_justreleased(in, m, MOUSE_BUTTON_LEFT))
{
if (!*pan && !select_instances(h, o, false, true))
move_units(h, o);
@@ -587,19 +590,22 @@ static void update_from_touch(struct human_player *const h,
static void update_from_keyboard_mouse(struct human_player *const h,
struct player_others *const o)
{
- struct mouse *const m = &h->periph.kbm.mouse;
- struct keyboard *const k = &h->periph.kbm.keyboard;
+ const struct mouse *const m = &h->periph.kbm.mouse;
+ const struct keyboard *const k = &h->periph.kbm.keyboard;
+ const struct input *const in = &h->in;
- if (mouse_justreleased(m, MOUSE_BUTTON_LEFT))
+ if (input_mouse_justreleased(in, m, MOUSE_BUTTON_LEFT))
{
const bool shift_pressed =
- keyboard_pressed(k, &KEYBOARD_COMBO(KEYBOARD_KEY_LSHIFT))
- || keyboard_pressed(k, &KEYBOARD_COMBO(KEYBOARD_KEY_RSHIFT));
+ input_keyboard_pressed(in, k,
+ &KEYBOARD_COMBO(KEYBOARD_KEY_LSHIFT))
+ || input_keyboard_pressed(in, k,
+ &KEYBOARD_COMBO(KEYBOARD_KEY_RSHIFT));
if (!select_instances(h, o, !shift_pressed, false))
deselect_instances(h);
}
- else if (mouse_justreleased(m, MOUSE_BUTTON_RIGHT))
+ else if (input_mouse_justreleased(in, m, MOUSE_BUTTON_RIGHT))
move_units(h, o);
}
@@ -614,6 +620,7 @@ void human_player_update(struct human_player *const h,
update_selected(h);
update_target(h);
peripheral_update(&h->periph);
+ input_update(&h->in, &h->periph);
switch (h->periph.common.type)
{
@@ -630,7 +637,7 @@ void human_player_update(struct human_player *const h,
break;
}
- camera_update(&h->cam, &h->periph);
+ camera_update(&h->cam, &h->periph, &h->in);
player_update(p);
}
}
@@ -702,7 +709,8 @@ int human_player_render(const struct human_player *const h,
|| render_own_units(h)
|| render_own_buildings(h)
|| render_resources(h, o->res, o->n_res)
- || human_player_gui_render(h))
+ || human_player_gui_render(h)
+ || input_render(&h->in, &h->periph))
return -1;
switch (h->periph.common.type)