summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/d_event.h15
-rw-r--r--src/strife/p_user.c55
2 files changed, 70 insertions, 0 deletions
diff --git a/src/d_event.h b/src/d_event.h
index e47f82df..eb9211bb 100644
--- a/src/d_event.h
+++ b/src/d_event.h
@@ -89,6 +89,21 @@ typedef enum
} buttoncode_t;
+// villsa [STRIFE] Strife specific buttons
+// TODO - not finished
+typedef enum
+{
+ // Player view look up
+ BT_LOOKUP = 1,
+ // Player view look down
+ BT_LOOKDOWN = 2,
+ // Center player's view
+ BT_CENTERVIEW = 4,
+ // Jump up and down
+ BT_JUMP = 32,
+
+} buttoncode2_t;
+
diff --git a/src/strife/p_user.c b/src/strife/p_user.c
index 9d44f78c..3c0cdb5e 100644
--- a/src/strife/p_user.c
+++ b/src/strife/p_user.c
@@ -40,6 +40,10 @@
// Index of the special effects (INVUL inverse) map.
#define INVERSECOLORMAP 32
+#define LOOKPITCHAMOUNT 6 // villsa [STRIFE]
+#define CENTERVIEWAMOUNT (LOOKPITCHAMOUNT + 2) // villsa [STRIFE]
+#define LOOKUPMAX 90 // villsa [STRIFE]
+#define LOOKDOWNMAX -110 // villsa [STRIFE]
//
@@ -161,6 +165,13 @@ void P_MovePlayer (player_t* player)
// Do not let the player control movement
// if not onground.
onground = (player->mo->z <= player->mo->floorz);
+
+ // villsa [STRIFE] jump button
+ if (onground && cmd->buttons2 & BT_JUMP)
+ {
+ if(!player->deltaviewheight)
+ player->mo->momz += (8*FRACUNIT);
+ }
if (cmd->forwardmove && onground)
P_Thrust (player, player->mo->angle, cmd->forwardmove*2048);
@@ -174,6 +185,50 @@ void P_MovePlayer (player_t* player)
{
P_SetMobjState (player->mo, S_PLAY_01);
}
+
+ // villsa [STRIFE] centerview button
+ if (cmd->buttons2 & BT_CENTERVIEW)
+ player->centerview = 1;
+
+ // villsa [STRIFE] adjust player's pitch when centerviewing
+ if (player->centerview)
+ {
+ if (player->pitch <= 0)
+ {
+ if (player->pitch < 0)
+ player->pitch = player->pitch + CENTERVIEWAMOUNT;
+ }
+ else
+ {
+ player->pitch = player->pitch - CENTERVIEWAMOUNT;
+ }
+ if (abs(player->pitch) < CENTERVIEWAMOUNT)
+ {
+ player->pitch = 0;
+ player->centerview = 0;
+ }
+ }
+
+ // villsa [STRIFE] look up action
+ if (cmd->buttons2 & BT_LOOKUP)
+ {
+ player->pitch += LOOKPITCHAMOUNT;
+ if ((player->pitch + LOOKPITCHAMOUNT) > LOOKUPMAX ||
+ (player->pitch + LOOKPITCHAMOUNT) < LOOKDOWNMAX)
+ player->pitch -= LOOKPITCHAMOUNT;
+ }
+ else
+ {
+ // villsa [STRIFE] look down action
+ if (cmd->buttons2 & BT_LOOKDOWN)
+ {
+ player->pitch -= LOOKPITCHAMOUNT;
+ if ((player->pitch - LOOKPITCHAMOUNT) > LOOKUPMAX ||
+ (player->pitch - LOOKPITCHAMOUNT) < LOOKDOWNMAX)
+ player->pitch += LOOKPITCHAMOUNT;
+ }
+ }
+
}