aboutsummaryrefslogtreecommitdiff
path: root/src/player
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-06-24 17:28:38 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2022-06-24 17:28:38 +0200
commit992e7fb9358a0d0a5d99ba119cf584477bda8d72 (patch)
tree1cd753a73b560e60e0de353b9a1b7d0e15b002d6 /src/player
parent5ac01ff845f37fadd1822f99149f1b610f510bba (diff)
downloadrts-992e7fb9358a0d0a5d99ba119cf584477bda8d72.tar.gz
peripheral: provide common actions
Whereas some actions are context-specific (e.g.: selecting a player), some are context-independent and can be executed for all screens (e.g.: exiting the game).
Diffstat (limited to 'src/player')
-rw-r--r--src/player/inc/human_player.h2
-rw-r--r--src/player/src/human_player.c43
2 files changed, 9 insertions, 36 deletions
diff --git a/src/player/inc/human_player.h b/src/player/inc/human_player.h
index ca52112..39a0d6d 100644
--- a/src/player/inc/human_player.h
+++ b/src/player/inc/human_player.h
@@ -64,7 +64,7 @@ struct human_player
};
int human_player_init(const struct human_player_cfg *cfg, struct human_player *h);
-bool human_player_update(struct human_player *h, struct player_others *o);
+void human_player_update(struct human_player *h, struct player_others *o);
int human_player_render(const struct human_player *h, const struct player_others *o);
#ifdef __cplusplus
diff --git a/src/player/src/human_player.c b/src/player/src/human_player.c
index 956b692..a70eddf 100644
--- a/src/player/src/human_player.c
+++ b/src/player/src/human_player.c
@@ -524,16 +524,12 @@ static void update_target(struct human_player *const h)
}
}
-static bool update_from_pad(struct human_player *const h,
+static void update_from_pad(struct human_player *const h,
struct player_others *const o)
{
- bool ret = false;
struct pad *const p = &h->periph.pad.pad;
- if (pad_justpressed(p, PAD_KEY_OPTIONS)
- || pad_justpressed(p, PAD_KEY_EXIT))
- ret = true;
- else if (pad_justpressed(p, PAD_KEY_A))
+ if (pad_justpressed(p, PAD_KEY_A))
select_instances(h, o, false, false);
else if (pad_justpressed(p, PAD_KEY_B))
move_units(h, o);
@@ -541,28 +537,12 @@ static bool update_from_pad(struct human_player *const h,
deselect_instances(h);
else if (pad_justpressed(p, PAD_KEY_E))
h->top_gui ^= true;
-
- return ret;
-}
-
-static bool update_keyboard_mouse_common(const struct mouse *const m,
- const struct keyboard *const k)
-{
- bool ret = false;
-
- if (keyboard_justpressed(k, &KEYBOARD_COMBO(KEYBOARD_KEY_EXIT)))
- ret = true;
- else if (keyboard_justreleased(k, &KEYBOARD_COMBO(KEYBOARD_KEY_F11)))
- gfx_toggle_fullscreen();
-
- return ret;
}
-static bool update_from_touch(struct human_player *const h,
+static void update_from_touch(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;
struct peripheral_kbm *const kbm = &h->periph.kbm;
bool *const pan = &h->cam.pan;
@@ -587,11 +567,9 @@ static bool update_from_touch(struct human_player *const h,
kbm->long_press = false;
kbm->lp_t = 0;
}
-
- return update_keyboard_mouse_common(m, k);
}
-static bool update_from_keyboard_mouse(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;
@@ -608,14 +586,11 @@ static bool update_from_keyboard_mouse(struct human_player *const h,
}
else if (mouse_justreleased(m, MOUSE_BUTTON_RIGHT))
move_units(h, o);
-
- return update_keyboard_mouse_common(m, k);
}
-bool human_player_update(struct human_player *const h,
+void human_player_update(struct human_player *const h,
struct player_others *const o)
{
- bool ret = false;
struct player *const p = &h->pl;
if (p->alive)
@@ -628,23 +603,21 @@ bool human_player_update(struct human_player *const h,
switch (h->periph.common.type)
{
case PERIPHERAL_TYPE_PAD:
- ret = update_from_pad(h, o);
+ update_from_pad(h, o);
break;
case PERIPHERAL_TYPE_TOUCH:
- ret = update_from_touch(h, o);
+ update_from_touch(h, o);
break;
case PERIPHERAL_TYPE_KEYBOARD_MOUSE:
- ret = update_from_keyboard_mouse(h, o);
+ update_from_keyboard_mouse(h, o);
break;
}
camera_update(&h->cam, &h->periph);
player_update(p);
}
-
- return ret;
}
static int render_target(const struct human_player *const h)