commit 964507f8014938dcae18d42b605c058edf906799
Author: Michael Day <michael.day@lexmark.com>
AuthorDate: Thu Apr 21 09:11:53 2022 -0400
Commit: Michael Day <michael.day@lexmark.com>
CommitDate: Thu Apr 21 09:11:53 2022 -0400
Hexen: Add inventory move helper functions
Co-authored-by: kraflab <kraflab@gmail.com>
---
src/hexen/g_game.c | 97 +++++++++++++++++++++++++++++++++---------------------
1 file changed, 59 insertions(+), 38 deletions(-)
diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index b0210799..4bdd0a7c 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -744,6 +744,59 @@ static void SetJoyButtons(unsigned int buttons_mask)
}
}
+static boolean InventoryMoveLeft()
+{
+ inventoryTics = 5 * 35;
+ if (!inventory)
+ {
+ inventory = true;
+ return false;
+ }
+ inv_ptr--;
+ if (inv_ptr < 0)
+ {
+ inv_ptr = 0;
+ }
+ else
+ {
+ curpos--;
+ if (curpos < 0)
+ {
+ curpos = 0;
+ }
+ }
+ return true;
+}
+
+static boolean InventoryMoveRight()
+{
+ player_t *plr;
+
+ plr = &players[consoleplayer];
+ inventoryTics = 5 * 35;
+ if (!inventory)
+ {
+ inventory = true;
+ return false;
+ }
+ inv_ptr++;
+ if (inv_ptr >= plr->inventorySlotNum)
+ {
+ inv_ptr--;
+ if (inv_ptr < 0)
+ inv_ptr = 0;
+ }
+ else
+ {
+ curpos++;
+ if (curpos > 6)
+ {
+ curpos = 6;
+ }
+ }
+ return true;
+}
+
static void SetMouseButtons(unsigned int buttons_mask)
{
int i;
@@ -847,51 +900,19 @@ boolean G_Responder(event_t * ev)
case ev_keydown:
if (ev->data1 == key_invleft)
{
- inventoryTics = 5 * 35;
- if (!inventory)
- {
- inventory = true;
- break;
- }
- inv_ptr--;
- if (inv_ptr < 0)
+ if (InventoryMoveLeft())
{
- inv_ptr = 0;
+ return (true);
}
- else
- {
- curpos--;
- if (curpos < 0)
- {
- curpos = 0;
- }
- }
- return (true);
+ break;
}
if (ev->data1 == key_invright)
{
- inventoryTics = 5 * 35;
- if (!inventory)
- {
- inventory = true;
- break;
- }
- inv_ptr++;
- if (inv_ptr >= plr->inventorySlotNum)
+ if (InventoryMoveRight())
{
- inv_ptr--;
- if (inv_ptr < 0)
- inv_ptr = 0;
+ return (true);
}
- else
- {
- curpos++;
- if (curpos > 6)
- {
- curpos = 6;
- }
- }
- return (true);
+ break;
}
if (ev->data1 == key_pause && !MenuActive)
{