mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire.
This commit is contained in:
parent
d62d2eaec7
commit
b9e0f493b2
27 changed files with 352 additions and 436 deletions
|
@ -4749,7 +4749,7 @@ void MoveDude(spritetype *pSprite)
|
|||
if (pPlayer) {
|
||||
pPlayer->posture = 0;
|
||||
pPlayer->bubbleTime = 0;
|
||||
if (!pPlayer->cantJump && pPlayer->input.syncFlags.jump) {
|
||||
if (!pPlayer->cantJump && (pPlayer->input.actions & SB_JUMP)) {
|
||||
zvel[nSprite] = -0x6aaaa;
|
||||
pPlayer->cantJump = 1;
|
||||
}
|
||||
|
|
|
@ -73,6 +73,7 @@ char gUserMapFilename[BMAX_PATH];
|
|||
|
||||
short BloodVersion = 0x115;
|
||||
|
||||
bool gameRestart;
|
||||
int gNetPlayers;
|
||||
int gQuitRequest;
|
||||
|
||||
|
@ -529,7 +530,7 @@ void ProcessFrame(void)
|
|||
auto oldflags = inp.syncFlags.value;
|
||||
|
||||
inp = gFifoInput[gNetFifoTail & 255][i];
|
||||
inp.actions |= oldactions & SB_INTERFACE_MASK; // should be everything non-button and non-weapon
|
||||
inp.actions |= oldactions & ~(SB_BUTTON_MASK|SB_RUN|SB_WEAPONMASK_BITS); // should be everything non-button and non-weapon
|
||||
inp.syncFlags.value |= oldflags & ~flag_buttonmask;
|
||||
|
||||
int newweap = inp.getNewWeapon();
|
||||
|
@ -562,6 +563,13 @@ void ProcessFrame(void)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
// This is single player only.
|
||||
if (gameRestart)
|
||||
{
|
||||
gameRestart = false;
|
||||
levelRestart();
|
||||
return;
|
||||
}
|
||||
viewClearInterpolations();
|
||||
{
|
||||
if (paused || gEndGameMgr.at0 || (gGameOptions.nGameType == 0 && M_Active()))
|
||||
|
|
|
@ -169,24 +169,6 @@ void ctrlGetInput(void)
|
|||
cl_showweapon = (cl_showweapon + 1) & 3;
|
||||
}
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Jump))
|
||||
gInput.syncFlags.jump = 1;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Crouch))
|
||||
gInput.syncFlags.crouch = 1;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Fire))
|
||||
gInput.syncFlags.shoot = 1;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Alt_Fire))
|
||||
gInput.syncFlags.shoot2 = 1;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Open))
|
||||
{
|
||||
buttonMap.ClearButton(gamefunc_Open);
|
||||
gInput.syncFlags.action = 1;
|
||||
}
|
||||
|
||||
gInput.syncFlags.lookUp |= buttonMap.ButtonDown(gamefunc_Look_Up);
|
||||
gInput.syncFlags.lookDown |= buttonMap.ButtonDown(gamefunc_Look_Down);
|
||||
|
||||
|
|
|
@ -1990,7 +1990,7 @@ void usePropertiesChanger(XSPRITE* pXSource, short objType, int objIndex) {
|
|||
|
||||
xsprite[pSpr->extra].medium = kMediumNormal;
|
||||
if (pPlayer) {
|
||||
pPlayer->posture = (!pPlayer->input.syncFlags.crouch) ? kPostureStand : kPostureCrouch;
|
||||
pPlayer->posture = (!(pPlayer->input.actions & SB_CROUCH)) ? kPostureStand : kPostureCrouch;
|
||||
pPlayer->nWaterPal = 0;
|
||||
}
|
||||
|
||||
|
@ -2087,7 +2087,7 @@ void useTeleportTarget(XSPRITE* pXSource, spritetype* pSprite) {
|
|||
|
||||
xsprite[pSprite->extra].medium = kMediumNormal;
|
||||
if (pPlayer) {
|
||||
pPlayer->posture = (!pPlayer->input.syncFlags.crouch) ? kPostureStand : kPostureCrouch;
|
||||
pPlayer->posture = (!(pPlayer->input.actions & SB_CROUCH)) ? kPostureStand : kPostureCrouch;
|
||||
pPlayer->nWaterPal = 0;
|
||||
}
|
||||
|
||||
|
@ -2889,10 +2889,10 @@ bool condCheckPlayer(XSPRITE* pXCond, int cmpOp, bool PUSH) {
|
|||
case 2: return (pPlayer->input.fvel < 0); // backward
|
||||
case 3: return (pPlayer->input.svel > 0); // left
|
||||
case 4: return (pPlayer->input.svel < 0); // right
|
||||
case 5: return (pPlayer->input.syncFlags.jump); // jump
|
||||
case 6: return (pPlayer->input.syncFlags.crouch); // crouch
|
||||
case 7: return (pPlayer->input.syncFlags.shoot); // normal fire weapon
|
||||
case 8: return (pPlayer->input.syncFlags.shoot2); // alt fire weapon
|
||||
case 5: return !!(pPlayer->input.actions & SB_JUMP); // jump
|
||||
case 6: return !!(pPlayer->input.actions & SB_CROUCH); // crouch
|
||||
case 7: return !!(pPlayer->input.actions & SB_FIRE); // normal fire weapon
|
||||
case 8: return !!(pPlayer->input.actions & SB_ALTFIRE); // alt fire weapon
|
||||
default:
|
||||
condError(pXCond, "Player conditions:\nSpecify a correct key!");
|
||||
break;
|
||||
|
|
|
@ -51,6 +51,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
BEGIN_BLD_NS
|
||||
|
||||
extern bool gameRestart;
|
||||
|
||||
PROFILE gProfile[kMaxPlayers];
|
||||
|
||||
PLAYER gPlayer[kMaxPlayers];
|
||||
|
@ -762,6 +764,7 @@ void playerStart(int nPlayer, int bNewLevel)
|
|||
pPlayer->nextWeapon = 0;
|
||||
xvel[pSprite->index] = yvel[pSprite->index] = zvel[pSprite->index] = 0;
|
||||
pInput->q16avel = 0;
|
||||
pInput->actions = 0;
|
||||
pInput->syncFlags.value = 0;
|
||||
pInput->fvel = 0;
|
||||
pInput->svel = 0;
|
||||
|
@ -1330,7 +1333,7 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
}
|
||||
|
||||
pPlayer->isRunning = pInput->syncFlags.run;
|
||||
if ((pInput->syncFlags.value & flag_buttonmask_norun) || pInput->fvel || pInput->svel || pInput->q16avel)
|
||||
if ((pInput->syncFlags.value & flag_buttonmask_norun) || (pInput->actions & SB_BUTTON_MASK) || pInput->fvel || pInput->svel || pInput->q16avel)
|
||||
pPlayer->restTime = 0;
|
||||
else if (pPlayer->restTime >= 0)
|
||||
pPlayer->restTime += 4;
|
||||
|
@ -1353,7 +1356,7 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
}
|
||||
if (pPlayer->curWeapon)
|
||||
pInput->setNewWeapon(pPlayer->curWeapon);
|
||||
if (pInput->syncFlags.action)
|
||||
if (pInput->actions & SB_OPEN)
|
||||
{
|
||||
if (bSeqStat)
|
||||
{
|
||||
|
@ -1369,12 +1372,12 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
playerReset(pPlayer);
|
||||
if (gGameOptions.nGameType == 0 && numplayers == 1)
|
||||
{
|
||||
pInput->syncFlags.restart = 1;
|
||||
gameRestart = 1;
|
||||
}
|
||||
else
|
||||
playerStart(pPlayer->nPlayer);
|
||||
}
|
||||
pInput->syncFlags.action = 0;
|
||||
pInput->actions &= ~SB_OPEN;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -1431,11 +1434,11 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
}
|
||||
if (pInput->q16avel)
|
||||
pPlayer->q16ang = (pPlayer->q16ang+pInput->q16avel)&0x7ffffff;
|
||||
if (pInput->syncFlags.spin180)
|
||||
if (pInput->actions & SB_TURNAROUND)
|
||||
{
|
||||
if (!pPlayer->spin)
|
||||
pPlayer->spin = -1024;
|
||||
pInput->syncFlags.spin180 = 0;
|
||||
pInput->actions &= ~SB_TURNAROUND;
|
||||
}
|
||||
if (pPlayer->spin < 0)
|
||||
{
|
||||
|
@ -1453,22 +1456,22 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
gViewAngleAdjust += float(pSprite->ang - pPlayer->angold);
|
||||
pPlayer->q16ang = (pPlayer->q16ang+fix16_from_int(pSprite->ang-pPlayer->angold))&0x7ffffff;
|
||||
pPlayer->angold = pSprite->ang = fix16_to_int(pPlayer->q16ang);
|
||||
if (!pInput->syncFlags.jump)
|
||||
if (!(pInput->actions & SB_JUMP))
|
||||
pPlayer->cantJump = 0;
|
||||
|
||||
switch (pPlayer->posture) {
|
||||
case 1:
|
||||
if (pInput->syncFlags.jump)
|
||||
if (pInput->actions & SB_JUMP)
|
||||
zvel[nSprite] -= pPosture->normalJumpZ;//0x5b05;
|
||||
if (pInput->syncFlags.crouch)
|
||||
if (pInput->actions & SB_CROUCH)
|
||||
zvel[nSprite] += pPosture->normalJumpZ;//0x5b05;
|
||||
break;
|
||||
case 2:
|
||||
if (!pInput->syncFlags.crouch)
|
||||
if (!(pInput->actions & SB_CROUCH))
|
||||
pPlayer->posture = 0;
|
||||
break;
|
||||
default:
|
||||
if (!pPlayer->cantJump && pInput->syncFlags.jump && pXSprite->height == 0) {
|
||||
if (!pPlayer->cantJump && (pInput->actions & SB_JUMP) && pXSprite->height == 0) {
|
||||
#ifdef NOONE_EXTENSIONS
|
||||
if ((packItemActive(pPlayer, 4) && pPosture->pwupJumpZ != 0) || pPosture->normalJumpZ != 0)
|
||||
#endif
|
||||
|
@ -1479,11 +1482,11 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
pPlayer->cantJump = 1;
|
||||
}
|
||||
|
||||
if (pInput->syncFlags.crouch)
|
||||
if (pInput->actions & SB_CROUCH)
|
||||
pPlayer->posture = 2;
|
||||
break;
|
||||
}
|
||||
if (pInput->syncFlags.action)
|
||||
if (pInput->actions & SB_OPEN)
|
||||
{
|
||||
int a2, a3;
|
||||
int hit = ActionScan(pPlayer, &a2, &a3);
|
||||
|
@ -1556,18 +1559,18 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
zvel[pSprite2->index] = zvel[nSprite];
|
||||
pPlayer->hand = 0;
|
||||
}
|
||||
pInput->syncFlags.action = 0;
|
||||
pInput->actions &= ~SB_OPEN;
|
||||
}
|
||||
if (bVanilla)
|
||||
{
|
||||
if (pInput->syncFlags.lookCenter && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown)
|
||||
if ((pInput->actions & SB_CENTERVIEW) && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown)
|
||||
{
|
||||
if (pPlayer->q16look < 0)
|
||||
pPlayer->q16look = fix16_min(pPlayer->q16look+fix16_from_int(4), fix16_from_int(0));
|
||||
if (pPlayer->q16look > 0)
|
||||
pPlayer->q16look = fix16_max(pPlayer->q16look-fix16_from_int(4), fix16_from_int(0));
|
||||
if (!pPlayer->q16look)
|
||||
pInput->syncFlags.lookCenter = 0;
|
||||
pInput->actions &= ~SB_CENTERVIEW;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1590,14 +1593,14 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
int downAngle = -347;
|
||||
double lookStepUp = 4.0*upAngle/60.0;
|
||||
double lookStepDown = -4.0*downAngle/60.0;
|
||||
if (pInput->syncFlags.lookCenter && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown)
|
||||
if ((pInput->actions & SB_CENTERVIEW) && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown)
|
||||
{
|
||||
if (pPlayer->q16look < 0)
|
||||
pPlayer->q16look = fix16_min(pPlayer->q16look+fix16_from_dbl(lookStepDown), fix16_from_int(0));
|
||||
if (pPlayer->q16look > 0)
|
||||
pPlayer->q16look = fix16_max(pPlayer->q16look-fix16_from_dbl(lookStepUp), fix16_from_int(0));
|
||||
if (!pPlayer->q16look)
|
||||
pInput->syncFlags.lookCenter = 0;
|
||||
pInput->actions &= ~SB_CENTERVIEW;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1616,7 +1619,7 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
{
|
||||
gViewLookAdjust -= float(lookStepDown);
|
||||
}
|
||||
gViewLookRecenter = pInput->syncFlags.lookCenter && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown;
|
||||
gViewLookRecenter = (pInput->actions & SB_CENTERVIEW) && !pInput->syncFlags.lookUp && !pInput->syncFlags.lookDown;
|
||||
}
|
||||
pPlayer->q16look = fix16_clamp(pPlayer->q16look+(pInput->q16horz<<3), fix16_from_int(downAngle), fix16_from_int(upAngle));
|
||||
pPlayer->q16horiz = fix16_from_float(100.f*tanf(fix16_to_float(pPlayer->q16look)*fPI/1024.f));
|
||||
|
@ -1688,9 +1691,9 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
if (pPlayer->packSlots[0].curAmount > 0)
|
||||
packUseItem(pPlayer, 0);
|
||||
}
|
||||
if (pInput->syncFlags.holsterWeapon)
|
||||
if (pInput->actions & SB_HOLSTER)
|
||||
{
|
||||
pInput->syncFlags.holsterWeapon = 0;
|
||||
pInput->actions &= ~SB_HOLSTER;
|
||||
if (pPlayer->curWeapon)
|
||||
{
|
||||
WeaponLower(pPlayer);
|
||||
|
|
|
@ -1767,17 +1767,17 @@ char sub_4F0E0(PLAYER *pPlayer)
|
|||
switch (pPlayer->weaponState)
|
||||
{
|
||||
case 5:
|
||||
if (!pPlayer->input.syncFlags.shoot2)
|
||||
if (!(pPlayer->input.actions & SB_ALTFIRE))
|
||||
pPlayer->weaponState = 6;
|
||||
return 1;
|
||||
case 6:
|
||||
if (pPlayer->input.syncFlags.shoot2)
|
||||
if (pPlayer->input.actions & SB_ALTFIRE)
|
||||
{
|
||||
pPlayer->weaponState = 3;
|
||||
pPlayer->fuseTime = pPlayer->weaponTimer;
|
||||
StartQAV(pPlayer, 13, nClientDropCan, 0);
|
||||
}
|
||||
else if (pPlayer->input.syncFlags.shoot)
|
||||
else if (pPlayer->input.actions & SB_FIRE)
|
||||
{
|
||||
pPlayer->weaponState = 7;
|
||||
pPlayer->fuseTime = 0;
|
||||
|
@ -1787,7 +1787,7 @@ char sub_4F0E0(PLAYER *pPlayer)
|
|||
case 7:
|
||||
{
|
||||
pPlayer->throwPower = ClipHigh(divscale16(gFrameClock-pPlayer->throwTime,240), 65536);
|
||||
if (!pPlayer->input.syncFlags.shoot)
|
||||
if (!(pPlayer->input.actions & SB_FIRE))
|
||||
{
|
||||
if (!pPlayer->fuseTime)
|
||||
pPlayer->fuseTime = pPlayer->weaponTimer;
|
||||
|
@ -1805,17 +1805,17 @@ char sub_4F200(PLAYER *pPlayer)
|
|||
switch (pPlayer->weaponState)
|
||||
{
|
||||
case 4:
|
||||
if (!pPlayer->input.syncFlags.shoot2)
|
||||
if (!(pPlayer->input.actions & SB_ALTFIRE))
|
||||
pPlayer->weaponState = 5;
|
||||
return 1;
|
||||
case 5:
|
||||
if (pPlayer->input.syncFlags.shoot2)
|
||||
if (pPlayer->input.actions & SB_ALTFIRE)
|
||||
{
|
||||
pPlayer->weaponState = 1;
|
||||
pPlayer->fuseTime = pPlayer->weaponTimer;
|
||||
StartQAV(pPlayer, 22, nClientDropBundle, 0);
|
||||
}
|
||||
else if (pPlayer->input.syncFlags.shoot)
|
||||
else if (pPlayer->input.actions & SB_FIRE)
|
||||
{
|
||||
pPlayer->weaponState = 6;
|
||||
pPlayer->fuseTime = 0;
|
||||
|
@ -1825,7 +1825,7 @@ char sub_4F200(PLAYER *pPlayer)
|
|||
case 6:
|
||||
{
|
||||
pPlayer->throwPower = ClipHigh(divscale16(gFrameClock-pPlayer->throwTime,240), 65536);
|
||||
if (!pPlayer->input.syncFlags.shoot)
|
||||
if (!(pPlayer->input.actions & SB_FIRE))
|
||||
{
|
||||
if (!pPlayer->fuseTime)
|
||||
pPlayer->fuseTime = pPlayer->weaponTimer;
|
||||
|
@ -1845,7 +1845,7 @@ char sub_4F320(PLAYER *pPlayer)
|
|||
case 9:
|
||||
pPlayer->throwPower = ClipHigh(divscale16(gFrameClock-pPlayer->throwTime,240), 65536);
|
||||
pPlayer->weaponTimer = 0;
|
||||
if (!pPlayer->input.syncFlags.shoot)
|
||||
if (!(pPlayer->input.actions & SB_FIRE))
|
||||
{
|
||||
pPlayer->weaponState = 8;
|
||||
StartQAV(pPlayer, 29, nClientThrowProx, 0);
|
||||
|
@ -1861,7 +1861,7 @@ char sub_4F3A0(PLAYER *pPlayer)
|
|||
{
|
||||
case 13:
|
||||
pPlayer->throwPower = ClipHigh(divscale16(gFrameClock-pPlayer->throwTime,240), 65536);
|
||||
if (!pPlayer->input.syncFlags.shoot)
|
||||
if (!(pPlayer->input.actions & SB_FIRE))
|
||||
{
|
||||
pPlayer->weaponState = 11;
|
||||
StartQAV(pPlayer, 39, nClientThrowRemote, 0);
|
||||
|
@ -1880,7 +1880,7 @@ char sub_4F414(PLAYER *pPlayer)
|
|||
StartQAV(pPlayer, 114, nClientFireLifeLeech, 1);
|
||||
return 1;
|
||||
case 6:
|
||||
if (!pPlayer->input.syncFlags.shoot2)
|
||||
if (!(pPlayer->input.actions & SB_ALTFIRE))
|
||||
{
|
||||
pPlayer->weaponState = 2;
|
||||
StartQAV(pPlayer, 118, -1, 0);
|
||||
|
@ -1907,7 +1907,7 @@ char sub_4F484(PLAYER *pPlayer)
|
|||
StartQAV(pPlayer, 77, nClientFireTesla, 1);
|
||||
return 1;
|
||||
case 5:
|
||||
if (!pPlayer->input.syncFlags.shoot)
|
||||
if (!(pPlayer->input.actions & SB_FIRE))
|
||||
{
|
||||
pPlayer->weaponState = 2;
|
||||
if (sub_4B2C8(pPlayer, 7, 10) && powerupCheck(pPlayer, kPwUpTwoGuns))
|
||||
|
@ -1968,8 +1968,8 @@ void WeaponProcess(PLAYER *pPlayer) {
|
|||
WeaponPlay(pPlayer);
|
||||
UpdateAimVector(pPlayer);
|
||||
pPlayer->weaponTimer -= 4;
|
||||
char bShoot = pPlayer->input.syncFlags.shoot;
|
||||
char bShoot2 = pPlayer->input.syncFlags.shoot2;
|
||||
bool bShoot = pPlayer->input.actions & SB_FIRE;
|
||||
bool bShoot2 = pPlayer->input.actions & SB_ALTFIRE;
|
||||
if (pPlayer->qavLoop && pPlayer->pXSprite->health > 0)
|
||||
{
|
||||
if (bShoot && CheckAmmo(pPlayer, pPlayer->weaponAmmo, 1))
|
||||
|
|
|
@ -343,25 +343,28 @@ void ApplyGlobalInput(InputPacket& input, ControlInfo *info)
|
|||
input.actions |= ActionsToSend;
|
||||
ActionsToSend = 0;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Jump))
|
||||
input.actions |= SB_JUMP;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Crouch))
|
||||
input.actions |= SB_CROUCH;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Fire))
|
||||
input.actions |= SB_FIRE;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Alt_Fire))
|
||||
input.actions |= SB_ALTFIRE;
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Open))
|
||||
{
|
||||
if (g_gameType & GAMEFLAG_BLOOD) buttonMap.ClearButton(gamefunc_Open);
|
||||
input.actions |= SB_OPEN;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#if 0
|
||||
void registerinputcommands()
|
||||
{
|
||||
C_RegisterFunction("centerview", nullptr, [](CCmdFuncPtr)->int { BitsToSend.lookCenter = 1; return CCMD_OK; });
|
||||
C_RegisterFunction("holsterweapon", nullptr, [](CCmdFuncPtr)->int { BitsToSend.holsterWeapon = 1; return CCMD_OK; });
|
||||
C_RegisterFunction("turnaround", nullptr, [](CCmdFuncPtr)->int { BitsToSend.spin180 = 1; return CCMD_OK; });
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// CCMD based input. The basics are from Randi's ZDuke but this uses dynamic
|
||||
// registration to only have the commands active when this game module runs.
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
C_RegisterFunction("backoff", nullptr, [](CCmdFuncPtr)->int { BitsToSend |= SKB_ESCAPE; return CCMD_OK; });
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,12 +21,19 @@ enum ESyncBits_ : uint32_t
|
|||
SB_CENTERVIEW = 1 << 14,
|
||||
SB_TURNAROUND = 1 << 15,
|
||||
SB_HOLSTER = 1 << 16,
|
||||
SB_OPEN = 1 << 17,
|
||||
|
||||
SB_RUN = 1 << 27,
|
||||
SB_JUMP = 1 << 28,
|
||||
SB_CROUCH = 1 << 29,
|
||||
SB_FIRE = 1 << 30,
|
||||
SB_ALTFIRE = 1u << 31,
|
||||
|
||||
SB_WEAPONMASK_BITS = (15u * SB_FIRST_WEAPON_BIT), // Weapons take up 4 bits
|
||||
SB_ITEMUSE_BITS = (127u * SB_ITEM_BIT_1),
|
||||
|
||||
SB_BUTTON_MASK = 0, // all input from buttons (i.e. active while held)
|
||||
SB_INTERFACE_MASK = (SB_INVPREV|SB_INVNEXT|SB_INVUSE|SB_CENTERVIEW|SB_TURNAROUND|SB_HOLSTER), // all input from CCMDs
|
||||
SB_BUTTON_MASK = SB_ALTFIRE|SB_FIRE|SB_CROUCH|SB_JUMP, // all input from buttons (i.e. active while held)
|
||||
SB_INTERFACE_MASK = (SB_INVPREV|SB_INVNEXT|SB_INVUSE|SB_CENTERVIEW|SB_TURNAROUND|SB_HOLSTER|SB_OPEN), // all input from CCMDs
|
||||
SB_INTERFACE_BITS = (SB_WEAPONMASK_BITS | SB_ITEMUSE_BITS | SB_INTERFACE_MASK),
|
||||
SB_ALL = ~0u
|
||||
};
|
||||
|
@ -60,9 +67,6 @@ enum
|
|||
|
||||
enum EDukeSyncBits_ : uint32_t
|
||||
{
|
||||
SKB_JUMP = 1 << 0,
|
||||
SKB_CROUCH = 1 << 1,
|
||||
SKB_FIRE = 1 << 2,
|
||||
SKB_AIM_UP = 1 << 3,
|
||||
SKB_AIM_DOWN = 1 << 4,
|
||||
SKB_RUN = 1 << 5,
|
||||
|
@ -72,11 +76,10 @@ enum EDukeSyncBits_ : uint32_t
|
|||
SKB_LOOK_DOWN = 1 << 14,
|
||||
SKB_QUICK_KICK = 1 << 22,
|
||||
SKB_AIMMODE = 1 << 23,
|
||||
SKB_OPEN = 1 << 29,
|
||||
SKB_ESCAPE = 1u << 31,
|
||||
|
||||
SKB_INTERFACE_BITS = (SKB_QUICK_KICK | \
|
||||
SKB_OPEN | SKB_ESCAPE),
|
||||
SKB_ESCAPE),
|
||||
|
||||
SKB_NONE = 0,
|
||||
SKB_ALL = ~0u
|
||||
|
@ -93,15 +96,14 @@ union SYNCFLAGS
|
|||
struct
|
||||
{
|
||||
unsigned int run : 1;
|
||||
unsigned int jump : 1;
|
||||
unsigned int crouch : 1;
|
||||
unsigned int shoot : 1;
|
||||
unsigned int shoot2 : 1;
|
||||
unsigned int _jump : 1;
|
||||
unsigned int _crouch : 1;
|
||||
unsigned int _shoot : 1;
|
||||
unsigned int _shoot2 : 1;
|
||||
unsigned int lookUp : 1;
|
||||
unsigned int lookDown : 1;
|
||||
|
||||
|
||||
unsigned int action : 1;
|
||||
unsigned int jab : 1;
|
||||
unsigned int lookLeft : 1;
|
||||
unsigned int lookRight : 1;
|
||||
|
@ -123,12 +125,8 @@ union SYNCFLAGS
|
|||
#define SK_FLY 15
|
||||
|
||||
#define SK_RUN 16
|
||||
#define SK_SHOOT 17
|
||||
#define SK_OPERATE 18
|
||||
#define SK_JUMP 19
|
||||
#define SK_CRAWL 20
|
||||
#define SK_SNAP_UP 21
|
||||
#define SK_SNAP_DOWN 22
|
||||
#define SK_AIM_UP 21
|
||||
#define SK_AIM_DOWN 22
|
||||
|
||||
#define SK_SPACE_BAR 31
|
||||
|
||||
|
@ -136,10 +134,6 @@ union SYNCFLAGS
|
|||
// Exhumed
|
||||
|
||||
enum {
|
||||
kButtonJump = 0x1,
|
||||
kButtonOpen = 0x4,
|
||||
kButtonFire = 0x8,
|
||||
kButtonCrouch = 0x10,
|
||||
kButtonCheatGuns = 0x20,
|
||||
kButtonCheatGodMode = 0x40,
|
||||
kButtonCheatKeys = 0x80,
|
||||
|
|
|
@ -501,7 +501,6 @@ void GameTicker()
|
|||
{
|
||||
lastTic = currentTic;
|
||||
|
||||
int lLocalButtons = GetLocalInput(); // shouldn't this be placed in localInput?
|
||||
PlayerInterruptKeys(false);
|
||||
|
||||
nPlayerDAng = fix16_sadd(nPlayerDAng, localInput.q16avel);
|
||||
|
@ -601,7 +600,7 @@ void GameTicker()
|
|||
sPlayerInput[nLocalPlayer].xVel = lPlayerXVel;
|
||||
sPlayerInput[nLocalPlayer].yVel = lPlayerYVel;
|
||||
// make weapon selection persist until it gets used up.
|
||||
sPlayerInput[nLocalPlayer].buttons = lLocalButtons | lLocalCodes;
|
||||
sPlayerInput[nLocalPlayer].buttons = lLocalCodes;
|
||||
int weap = sPlayerInput[nLocalPlayer].getNewWeapon();
|
||||
sPlayerInput[nLocalPlayer].actions = localInput.actions;
|
||||
if (weap2 <= 0 || weap2 > 7) sPlayerInput[nLocalPlayer].SetNewWeapon(weap);
|
||||
|
@ -635,52 +634,12 @@ void InitTimer()
|
|||
htimer = 1;
|
||||
}
|
||||
|
||||
static const char* actions[] =
|
||||
{
|
||||
"Move_Forward",
|
||||
"Move_Backward",
|
||||
"Turn_Left",
|
||||
"Turn_Right",
|
||||
"Strafe",
|
||||
"Fire",
|
||||
"Open",
|
||||
"Run",
|
||||
"Alt_Fire", // Duke3D", Blood
|
||||
"Jump",
|
||||
"Crouch",
|
||||
"Look_Up",
|
||||
"Look_Down",
|
||||
"Look_Left",
|
||||
"Look_Right",
|
||||
"Strafe_Left",
|
||||
"Strafe_Right",
|
||||
"Aim_Up",
|
||||
"Aim_Down",
|
||||
"SendMessage",
|
||||
"Shrink_Screen",
|
||||
"Enlarge_Screen",
|
||||
"Show_Opponents_Weapon",
|
||||
"See_Coop_View",
|
||||
"Mouse_Aiming",
|
||||
"Dpad_Select",
|
||||
"Dpad_Aiming",
|
||||
"Last_Weapon",
|
||||
"Alt_Weapon",
|
||||
"Third_Person_View",
|
||||
"Toggle_Crouch", // This is the last one used by EDuke32.
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
void GameInterface::app_init()
|
||||
{
|
||||
int i;
|
||||
//int esi = 1;
|
||||
//int edi = esi;
|
||||
|
||||
buttonMap.SetButtons(actions, NUM_ACTIONS);
|
||||
|
||||
help_disabled = true;
|
||||
// Create the global level table. Parts of the engine need it, even though the game itself does not.
|
||||
for (int i = 0; i <= 32; i++)
|
||||
|
|
|
@ -74,26 +74,10 @@ void InitInput()
|
|||
|
||||
void ClearSpaceBar(short nPlayer)
|
||||
{
|
||||
sPlayerInput[nPlayer].buttons &= 0x0FB;
|
||||
sPlayerInput[nPlayer].actions &= SB_OPEN;
|
||||
buttonMap.ClearButton(gamefunc_Open);
|
||||
}
|
||||
|
||||
int GetLocalInput()
|
||||
{
|
||||
int lLocalButtons;
|
||||
if (PlayerList[nLocalPlayer].nHealth)
|
||||
{
|
||||
lLocalButtons = (buttonMap.ButtonDown(gamefunc_Crouch) << 4) | (buttonMap.ButtonDown(gamefunc_Fire) << 3)
|
||||
| (buttonMap.ButtonDown(gamefunc_Jump) << 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
lLocalButtons = 0;
|
||||
}
|
||||
|
||||
lLocalButtons |= buttonMap.ButtonDown(gamefunc_Open) << 2;
|
||||
return lLocalButtons;
|
||||
}
|
||||
|
||||
void BackupInput()
|
||||
{
|
||||
|
@ -189,6 +173,7 @@ void PlayerInterruptKeys(bool after)
|
|||
if (!after)
|
||||
{
|
||||
ApplyGlobalInput(localInput, &info);
|
||||
if (PlayerList[nLocalPlayer].nHealth == 0) localInput.actions &= ~(SB_FIRE | SB_JUMP | SB_CROUCH);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1279,6 +1279,7 @@ loc_1AB8E:
|
|||
int var_5C = SectFlag[nViewSect] & kSectUnderwater;
|
||||
|
||||
uint16_t buttons = sPlayerInput[nPlayer].buttons;
|
||||
auto actions = sPlayerInput[nPlayer].actions;
|
||||
|
||||
if (buttons & kButtonCheatGodMode) // LOBODEITY cheat
|
||||
{
|
||||
|
@ -2535,7 +2536,7 @@ do_default_b:
|
|||
|
||||
if (!PlayerList[nPlayer].bIsMummified)
|
||||
{
|
||||
if (buttons & kButtonOpen)
|
||||
if (actions & SB_OPEN)
|
||||
{
|
||||
ClearSpaceBar(nPlayer);
|
||||
|
||||
|
@ -2551,7 +2552,7 @@ do_default_b:
|
|||
}
|
||||
|
||||
// was int var_38 = buttons & 0x8
|
||||
if (buttons & kButtonFire)
|
||||
if (actions & SB_FIRE)
|
||||
{
|
||||
FireWeapon(nPlayer);
|
||||
}
|
||||
|
@ -2568,7 +2569,7 @@ do_default_b:
|
|||
}
|
||||
|
||||
// Jumping
|
||||
if (buttons & kButtonJump)
|
||||
if (actions & SB_JUMP)
|
||||
{
|
||||
if (bUnderwater)
|
||||
{
|
||||
|
@ -2586,7 +2587,7 @@ do_default_b:
|
|||
|
||||
// goto loc_1BE70:
|
||||
}
|
||||
else if (buttons & kButtonCrouch)
|
||||
else if (actions & SB_CROUCH)
|
||||
{
|
||||
if (bUnderwater)
|
||||
{
|
||||
|
@ -2647,7 +2648,7 @@ loc_1BD2E:
|
|||
}
|
||||
}
|
||||
// loc_1BE30
|
||||
if (buttons & kButtonFire) // was var_38
|
||||
if (actions & SB_FIRE) // was var_38
|
||||
{
|
||||
if (bUnderwater)
|
||||
{
|
||||
|
@ -2679,7 +2680,7 @@ loc_1BD2E:
|
|||
}
|
||||
else // player is mummified
|
||||
{
|
||||
if (buttons & kButtonFire)
|
||||
if (actions & SB_FIRE)
|
||||
{
|
||||
FireWeapon(nPlayer);
|
||||
}
|
||||
|
@ -2708,7 +2709,7 @@ loc_1BD2E:
|
|||
else // else, player's health is less than 0
|
||||
{
|
||||
// loc_1C0E9
|
||||
if (buttons & kButtonOpen)
|
||||
if (actions & SB_OPEN)
|
||||
{
|
||||
ClearSpaceBar(nPlayer);
|
||||
|
||||
|
|
|
@ -1522,7 +1522,7 @@ bool queball(int i, int pocket, int queball, int stripeball)
|
|||
// if(s->pal == 12)
|
||||
{
|
||||
j = getincangle(ps[p].getang(), getangle(s->x - ps[p].posx, s->y - ps[p].posy));
|
||||
if (j > -64 && j < 64 && PlayerInput(p, SKB_OPEN))
|
||||
if (j > -64 && j < 64 && PlayerInput(p, SB_OPEN))
|
||||
if (ps[p].toggle_key_flag == 1)
|
||||
{
|
||||
int a = headspritestat[STAT_ACTOR];
|
||||
|
|
|
@ -2126,13 +2126,13 @@ void movetransports_d(void)
|
|||
else if (!(sectlotag == 1 && ps[p].on_ground == 1)) break;
|
||||
|
||||
if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144)
|
||||
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP))) ||
|
||||
(ps[p].jetpack_on && (PlayerInput(p, SKB_CROUCH) ^ !!ps[p].crouch_toggle)))
|
||||
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SB_JUMP))) ||
|
||||
(ps[p].jetpack_on && (PlayerInput(p, SB_CROUCH) ^ !!ps[p].crouch_toggle)))
|
||||
{
|
||||
ps[p].oposx = ps[p].posx += sprite[sprite[i].owner].x - sprite[i].x;
|
||||
ps[p].oposy = ps[p].posy += sprite[sprite[i].owner].y - sprite[i].y;
|
||||
|
||||
if (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP) || ps[p].jetpack_on < 11))
|
||||
if (ps[p].jetpack_on && (PlayerInput(p, SB_JUMP) || ps[p].jetpack_on < 11))
|
||||
ps[p].posz = sprite[sprite[i].owner].z - 6144;
|
||||
else ps[p].posz = sprite[sprite[i].owner].z + 6144;
|
||||
ps[p].oposz = ps[p].posz;
|
||||
|
@ -2149,7 +2149,7 @@ void movetransports_d(void)
|
|||
|
||||
k = 0;
|
||||
|
||||
if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].posz > (sector[sect].floorz - (16 << 8)) && (PlayerInput(p, SKB_CROUCH) || ps[p].poszv > 2048))
|
||||
if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].posz > (sector[sect].floorz - (16 << 8)) && (PlayerInput(p, SB_CROUCH) || ps[p].poszv > 2048))
|
||||
// if( onfloorz && sectlotag == 1 && ps[p].posz > (sector[sect].floorz-(6<<8)) )
|
||||
{
|
||||
k = 1;
|
||||
|
@ -2478,7 +2478,7 @@ static void greenslime(int i)
|
|||
|
||||
s->ang = ps[p].getang();
|
||||
|
||||
if ((PlayerInput(p, SKB_FIRE) || (ps[p].quick_kick > 0)) && sprite[ps[p].i].extra > 0)
|
||||
if ((PlayerInput(p, SB_FIRE) || (ps[p].quick_kick > 0)) && sprite[ps[p].i].extra > 0)
|
||||
if (ps[p].quick_kick > 0 || (ps[p].curr_weapon != HANDREMOTE_WEAPON && ps[p].curr_weapon != HANDBOMB_WEAPON && ps[p].curr_weapon != TRIPBOMB_WEAPON && ps[p].ammo_amount[ps[p].curr_weapon] >= 0))
|
||||
{
|
||||
for (x = 0; x < 8; x++)
|
||||
|
|
|
@ -1755,13 +1755,13 @@ void movetransports_r(void)
|
|||
else break;
|
||||
|
||||
if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144)
|
||||
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && PlayerInput(p, SKB_JUMP)) ||
|
||||
(ps[p].jetpack_on && PlayerInput(p, SKB_CROUCH)))
|
||||
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && PlayerInput(p, SB_JUMP)) ||
|
||||
(ps[p].jetpack_on && PlayerInput(p, SB_CROUCH)))
|
||||
{
|
||||
ps[p].oposx = ps[p].posx += sprite[OW].x - sprite[i].x;
|
||||
ps[p].oposy = ps[p].posy += sprite[OW].y - sprite[i].y;
|
||||
|
||||
if (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP) || ps[p].jetpack_on < 11))
|
||||
if (ps[p].jetpack_on && (PlayerInput(p, SB_JUMP) || ps[p].jetpack_on < 11))
|
||||
ps[p].posz = sprite[OW].z - 6144;
|
||||
else ps[p].posz = sprite[OW].z + 6144;
|
||||
ps[p].oposz = ps[p].posz;
|
||||
|
|
|
@ -1163,7 +1163,7 @@ int ParseState::parse(void)
|
|||
s = g_sp->xvel;
|
||||
|
||||
// sigh... this was yet another place where number literals were used as bit masks for every single value, making the code totally unreadable.
|
||||
if( (l& pducking) && ps[g_p].on_ground && (PlayerInput(g_p, SKB_CROUCH) ^ !!(ps[g_p].crouch_toggle) ))
|
||||
if( (l& pducking) && ps[g_p].on_ground && (PlayerInput(g_p, SB_CROUCH) ^ !!(ps[g_p].crouch_toggle) ))
|
||||
j = 1;
|
||||
else if( (l& pfalling) && ps[g_p].jumping_counter == 0 && !ps[g_p].on_ground && ps[g_p].poszv > 2048 )
|
||||
j = 1;
|
||||
|
@ -1244,7 +1244,7 @@ int ParseState::parse(void)
|
|||
parseifelse( (( hittype[g_i].floorz - hittype[g_i].ceilingz ) >> 8 ) < *insptr);
|
||||
break;
|
||||
case concmd_ifhitspace:
|
||||
parseifelse(PlayerInput(g_p, SKB_OPEN));
|
||||
parseifelse(PlayerInput(g_p, SB_OPEN));
|
||||
break;
|
||||
case concmd_ifoutside:
|
||||
parseifelse(sector[g_sp->sectnum].ceilingstat & 1);
|
||||
|
|
|
@ -178,7 +178,7 @@ void mploadsave()
|
|||
|
||||
int domovethings()
|
||||
{
|
||||
int i, j;
|
||||
int i;
|
||||
|
||||
// mplpadsave();
|
||||
|
||||
|
|
|
@ -607,33 +607,34 @@ enum
|
|||
static void processInputBits(player_struct *p, ControlInfo &info)
|
||||
{
|
||||
bool onVehicle = p->OnMotorcycle || p->OnBoat;
|
||||
if (buttonMap.ButtonDown(gamefunc_Fire)) loc.sbits |= SKB_FIRE;
|
||||
if (buttonMap.ButtonDown(gamefunc_Open)) loc.sbits |= SKB_OPEN;
|
||||
|
||||
if (!onVehicle)
|
||||
{
|
||||
if (buttonMap.ButtonDown(gamefunc_Jump)) loc.sbits |= SKB_JUMP;
|
||||
if (buttonMap.ButtonDown(gamefunc_Crouch) || buttonMap.ButtonDown(gamefunc_Toggle_Crouch) || p->crouch_toggle)
|
||||
if (buttonMap.ButtonDown(gamefunc_Toggle_Crouch) || p->crouch_toggle)
|
||||
{
|
||||
loc.sbits |= SKB_CROUCH;
|
||||
if (isRR()) loc.sbits &= ~SKB_JUMP;
|
||||
loc.actions |= SB_CROUCH;
|
||||
}
|
||||
if (buttonMap.ButtonDown(gamefunc_Aim_Up) || (buttonMap.ButtonDown(gamefunc_Dpad_Aiming) && info.dz > 0)) loc.sbits |= SKB_AIM_UP;
|
||||
if ((buttonMap.ButtonDown(gamefunc_Aim_Down) || (buttonMap.ButtonDown(gamefunc_Dpad_Aiming) && info.dz < 0))) loc.sbits |= SKB_AIM_DOWN;
|
||||
if (G_CheckAutorun(buttonMap.ButtonDown(gamefunc_Run))) loc.sbits |= SKB_RUN;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Left) || (isRR() && p->drink_amt > 88)) loc.sbits |= SKB_LOOK_LEFT;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Left)) loc.sbits |= SKB_LOOK_LEFT;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Right)) loc.sbits |= SKB_LOOK_RIGHT;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Up)) loc.sbits |= SKB_LOOK_UP;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Down) || (isRR() && p->drink_amt > 99)) loc.sbits |= SKB_LOOK_DOWN;
|
||||
if (buttonMap.ButtonDown(gamefunc_Look_Down)) loc.sbits |= SKB_LOOK_DOWN;
|
||||
if (buttonMap.ButtonDown(gamefunc_Quick_Kick)) loc.sbits |= SKB_QUICK_KICK;
|
||||
if (in_mousemode || buttonMap.ButtonDown(gamefunc_Mouse_Aiming)) loc.sbits |= SKB_AIMMODE;
|
||||
|
||||
if ((isRR() && p->drink_amt > 88)) loc.sbits |= SKB_LOOK_LEFT;
|
||||
if ((isRR() && p->drink_amt > 99)) loc.sbits |= SKB_LOOK_DOWN;
|
||||
|
||||
}
|
||||
ApplyGlobalInput(loc, &info);
|
||||
if (isRR() && (loc.actions & SB_CROUCH)) loc.actions &= ~SB_JUMP;
|
||||
|
||||
if (onVehicle)
|
||||
{
|
||||
// mask out all actions not compatible with vehicles.
|
||||
loc.actions &= ~(SB_WEAPONMASK_BITS | SB_TURNAROUND | SB_CENTERVIEW | SB_HOLSTER);
|
||||
loc.actions &= ~(SB_WEAPONMASK_BITS | SB_TURNAROUND | SB_CENTERVIEW | SB_HOLSTER | SB_JUMP | SB_CROUCH);
|
||||
}
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Dpad_Aiming))
|
||||
|
@ -978,11 +979,11 @@ static void processVehicleInput(player_struct *p, ControlInfo& info, InputPacket
|
|||
if (p->OnBoat || !p->moto_underwater)
|
||||
{
|
||||
if (buttonMap.ButtonDown(gamefunc_Move_Forward) || buttonMap.ButtonDown(gamefunc_Strafe))
|
||||
loc.sbits |= SKB_JUMP;
|
||||
loc.actions |= SB_JUMP;
|
||||
if (buttonMap.ButtonDown(gamefunc_Move_Backward))
|
||||
loc.sbits |= SKB_AIM_UP;
|
||||
if (buttonMap.ButtonDown(gamefunc_Run))
|
||||
loc.sbits |= SKB_CROUCH;
|
||||
loc.actions |= SB_CROUCH;
|
||||
}
|
||||
|
||||
if (turnl)
|
||||
|
|
|
@ -41,7 +41,7 @@ source as it is released.
|
|||
BEGIN_DUKE_NS
|
||||
|
||||
void fireweapon_ww(int snum);
|
||||
void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect);
|
||||
void operateweapon_ww(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
|
@ -1498,7 +1498,7 @@ int doincrements_d(struct player_struct* p)
|
|||
}
|
||||
S_PlayActorSound(DUKE_CRACK_FIRST, p->i);
|
||||
}
|
||||
else if (p->knuckle_incs == 22 || PlayerInput(snum, SKB_FIRE))
|
||||
else if (p->knuckle_incs == 22 || PlayerInput(snum, SB_FIRE))
|
||||
p->knuckle_incs = 0;
|
||||
|
||||
return 1;
|
||||
|
@ -1552,7 +1552,7 @@ void checkweapons_d(struct player_struct* p)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void operateJetpack(int snum, EDukeSyncBits sb_snum, int psectlotag, int fz, int cz, int shrunk)
|
||||
static void operateJetpack(int snum, ESyncBits actions, int psectlotag, int fz, int cz, int shrunk)
|
||||
{
|
||||
int j;
|
||||
auto p = &ps[snum];
|
||||
|
@ -1582,7 +1582,7 @@ static void operateJetpack(int snum, EDukeSyncBits sb_snum, int psectlotag, int
|
|||
if (shrunk) j = 512;
|
||||
else j = 2048;
|
||||
|
||||
if (sb_snum & SKB_JUMP) //A (soar high)
|
||||
if (actions & SB_JUMP) //A (soar high)
|
||||
{
|
||||
// jump
|
||||
SetGameVarID(g_iReturnVarID, 0, pi, snum);
|
||||
|
@ -1594,7 +1594,7 @@ static void operateJetpack(int snum, EDukeSyncBits sb_snum, int psectlotag, int
|
|||
}
|
||||
}
|
||||
|
||||
if (sb_snum & SKB_CROUCH) //Z (soar low)
|
||||
if (actions & SB_CROUCH) //Z (soar low)
|
||||
{
|
||||
// crouch
|
||||
SetGameVarID(g_iReturnVarID, 0, pi, snum);
|
||||
|
@ -1626,7 +1626,7 @@ static void operateJetpack(int snum, EDukeSyncBits sb_snum, int psectlotag, int
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist, int psectlotag)
|
||||
static void movement(int snum, ESyncBits actions, int psect, int fz, int cz, int shrunk, int truefdist, int psectlotag)
|
||||
{
|
||||
int j;
|
||||
auto p = &ps[snum];
|
||||
|
@ -1675,7 +1675,7 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
{
|
||||
|
||||
// not jumping or crouching
|
||||
if ((sb_snum & (SKB_JUMP|SKB_CROUCH)) == 0 && p->on_ground && (sector[psect].floorstat & 2) && p->posz >= (fz - (i << 8) - (16 << 8)))
|
||||
if ((actions & (SB_JUMP|SB_CROUCH)) == 0 && p->on_ground && (sector[psect].floorstat & 2) && p->posz >= (fz - (i << 8) - (16 << 8)))
|
||||
p->posz = fz - (i << 8);
|
||||
else
|
||||
{
|
||||
|
@ -1751,27 +1751,27 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
|
||||
p->on_warping_sector = 0;
|
||||
|
||||
if (sb_snum & SKB_CROUCH)
|
||||
if (actions & SB_CROUCH)
|
||||
{
|
||||
playerCrouch(snum);
|
||||
}
|
||||
|
||||
// jumping
|
||||
if ((sb_snum & SKB_JUMP) == 0 && p->jumping_toggle == 1)
|
||||
if ((actions & SB_JUMP) == 0 && p->jumping_toggle == 1)
|
||||
p->jumping_toggle = 0;
|
||||
|
||||
else if ((sb_snum & SKB_JUMP))
|
||||
else if ((actions & SB_JUMP))
|
||||
{
|
||||
playerJump(snum, fz, cz);
|
||||
}
|
||||
|
||||
if (p->jumping_counter && (sb_snum & SKB_JUMP) == 0)
|
||||
if (p->jumping_counter && (actions & SB_JUMP) == 0)
|
||||
p->jumping_toggle = 0;
|
||||
}
|
||||
|
||||
if (p->jumping_counter)
|
||||
{
|
||||
if ((sb_snum & SKB_JUMP) == 0 && p->jumping_toggle == 1)
|
||||
if ((actions & SB_JUMP) == 0 && p->jumping_toggle == 1)
|
||||
p->jumping_toggle = 0;
|
||||
|
||||
if (p->jumping_counter < (1024 + 256))
|
||||
|
@ -1813,7 +1813,7 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void underwater(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz)
|
||||
static void underwater(int snum, ESyncBits actions, int psect, int fz, int cz)
|
||||
{
|
||||
int j;
|
||||
auto p = &ps[snum];
|
||||
|
@ -1830,14 +1830,14 @@ static void underwater(int snum, EDukeSyncBits sb_snum, int psect, int fz, int c
|
|||
if (!S_CheckActorSoundPlaying(pi, DUKE_UNDERWATER))
|
||||
S_PlayActorSound(DUKE_UNDERWATER, pi);
|
||||
|
||||
if (sb_snum & SKB_JUMP)
|
||||
if (actions & SB_JUMP)
|
||||
{
|
||||
// jump
|
||||
if (p->poszv > 0) p->poszv = 0;
|
||||
p->poszv -= 348;
|
||||
if (p->poszv < -(256 * 6)) p->poszv = -(256 * 6);
|
||||
}
|
||||
else if (sb_snum & SKB_CROUCH)
|
||||
else if (actions & SB_CROUCH)
|
||||
{
|
||||
// crouch
|
||||
if (p->poszv < 0) p->poszv = 0;
|
||||
|
@ -2062,7 +2062,7 @@ static void fireweapon(int snum)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
||||
static void operateweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
int pi = p->i;
|
||||
|
@ -2073,7 +2073,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
switch (p->curr_weapon)
|
||||
{
|
||||
case HANDBOMB_WEAPON: // grenade in NAM
|
||||
if (p->kickback_pic == 6 && (sb_snum & SKB_FIRE))
|
||||
if (p->kickback_pic == 6 && (actions & SB_FIRE))
|
||||
{
|
||||
p->rapid_fire_hold = 1;
|
||||
break;
|
||||
|
@ -2083,7 +2083,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
{
|
||||
p->ammo_amount[HANDBOMB_WEAPON]--;
|
||||
|
||||
if (p->on_ground && (sb_snum & SKB_CROUCH))
|
||||
if (p->on_ground && (actions & SB_CROUCH))
|
||||
{
|
||||
k = 15;
|
||||
i = ((p->gethorizsum() - 100) * 20);
|
||||
|
@ -2122,7 +2122,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
p->hbomb_on = 1;
|
||||
|
||||
}
|
||||
else if (p->kickback_pic < 12 && (sb_snum & SKB_FIRE))
|
||||
else if (p->kickback_pic < 12 && (actions & SB_FIRE))
|
||||
p->hbomb_hold_delay++;
|
||||
else if (p->kickback_pic > 19)
|
||||
{
|
||||
|
@ -2282,7 +2282,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
p->visibility = 0;
|
||||
checkavailweapon(p);
|
||||
|
||||
if ((sb_snum & SKB_FIRE) == 0)
|
||||
if ((actions & SB_FIRE) == 0)
|
||||
{
|
||||
p->okickback_pic = p->kickback_pic = 0;
|
||||
break;
|
||||
|
@ -2291,7 +2291,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
else if (p->kickback_pic > 10)
|
||||
{
|
||||
if (sb_snum & SKB_FIRE) p->okickback_pic = p->kickback_pic = 1;
|
||||
if (actions & SB_FIRE) p->okickback_pic = p->kickback_pic = 1;
|
||||
else p->okickback_pic = p->kickback_pic = 0;
|
||||
}
|
||||
|
||||
|
@ -2429,7 +2429,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (sb_snum & SKB_FIRE)
|
||||
if (actions & SB_FIRE)
|
||||
{
|
||||
p->okickback_pic = p->kickback_pic = 1;
|
||||
S_PlayActorSound(CAT_FIRE, pi);
|
||||
|
@ -2455,7 +2455,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
else if (p->kickback_pic == 16)
|
||||
{
|
||||
if ((sb_snum & SKB_FIRE) != 0)
|
||||
if ((actions & SB_FIRE) != 0)
|
||||
{
|
||||
p->okickback_pic = p->kickback_pic = 1;
|
||||
S_PlayActorSound(FLAMETHROWER_INTRO, pi);
|
||||
|
@ -2487,7 +2487,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 7) fi.shoot(pi, KNEE);
|
||||
else if (p->kickback_pic == 14)
|
||||
{
|
||||
if (sb_snum & SKB_FIRE)
|
||||
if (actions & SB_FIRE)
|
||||
p->okickback_pic = p->kickback_pic = 1 + (krand() & 3);
|
||||
else p->okickback_pic = p->kickback_pic = 0;
|
||||
}
|
||||
|
@ -2547,7 +2547,7 @@ static void processweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, in
|
|||
p->ammo_amount[p->curr_weapon] % aplWeaponClip[p->curr_weapon][snum];
|
||||
// p->kickback_pic = aplWeaponFireDelay[p->curr_weapon][snum]+1; // animate, but don't shoot...
|
||||
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum] + 1; // animate, but don't shoot...
|
||||
sb_snum &= ~SKB_FIRE; // not firing...
|
||||
actions &= ~SB_FIRE; // not firing...
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -2560,7 +2560,7 @@ static void processweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, in
|
|||
// throw away the remaining clip
|
||||
p->ammo_amount[PISTOL_WEAPON] -= p->ammo_amount[PISTOL_WEAPON] % 20;
|
||||
p->kickback_pic = 3; // animate, but don't shoot...
|
||||
sb_snum &= ~SKB_FIRE; // not firing...
|
||||
actions &= ~SB_FIRE; // not firing...
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -2575,13 +2575,13 @@ static void processweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, in
|
|||
|
||||
if (p->rapid_fire_hold == 1)
|
||||
{
|
||||
if (sb_snum & SKB_FIRE) return;
|
||||
if (actions & SB_FIRE) return;
|
||||
p->rapid_fire_hold = 0;
|
||||
}
|
||||
|
||||
if (shrunk || p->tipincs || p->access_incs)
|
||||
sb_snum &= ~SKB_FIRE;
|
||||
else if (shrunk == 0 && (sb_snum & SKB_FIRE) && p->kickback_pic == 0 && p->fist_incs == 0 &&
|
||||
actions &= ~SB_FIRE;
|
||||
else if (shrunk == 0 && (actions & SB_FIRE) && p->kickback_pic == 0 && p->fist_incs == 0 &&
|
||||
p->last_weapon == -1 && (p->weapon_pos == 0 || p->holster_weapon == 1))
|
||||
{
|
||||
if (!isWW2GI()) fireweapon(snum);
|
||||
|
@ -2589,8 +2589,8 @@ static void processweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, in
|
|||
}
|
||||
else if (p->kickback_pic)
|
||||
{
|
||||
if (!isWW2GI()) operateweapon(snum, sb_snum, psect);
|
||||
else operateweapon_ww(snum, sb_snum, psect);
|
||||
if (!isWW2GI()) operateweapon(snum, actions, sb_snum, psect);
|
||||
else operateweapon_ww(snum, actions, sb_snum, psect);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -2764,16 +2764,16 @@ void processinput_d(int snum)
|
|||
|
||||
if (psectlotag == ST_2_UNDERWATER)
|
||||
{
|
||||
underwater(snum, sb_snum, psect, fz, cz);
|
||||
underwater(snum, actions, psect, fz, cz);
|
||||
}
|
||||
|
||||
else if (p->jetpack_on)
|
||||
{
|
||||
operateJetpack(snum, sb_snum, psectlotag, fz, cz, shrunk);
|
||||
operateJetpack(snum, actions, psectlotag, fz, cz, shrunk);
|
||||
}
|
||||
else if (psectlotag != ST_2_UNDERWATER)
|
||||
{
|
||||
movement(snum, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
movement(snum, actions, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
}
|
||||
|
||||
p->psectlotag = psectlotag;
|
||||
|
@ -2882,8 +2882,8 @@ void processinput_d(int snum)
|
|||
|
||||
bool check;
|
||||
|
||||
if (!isWW2GI()) check = ((p->curr_weapon == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (sb_snum & SKB_CROUCH)));
|
||||
else check = ((aplWeaponWorksLike[p->curr_weapon][snum] == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (sb_snum & SKB_CROUCH)));
|
||||
if (!isWW2GI()) check = ((p->curr_weapon == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (actions & SB_CROUCH)));
|
||||
else check = ((aplWeaponWorksLike[p->curr_weapon][snum] == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (actions & SB_CROUCH)));
|
||||
if (check)
|
||||
{
|
||||
p->posxv = mulscale(p->posxv, dukefriction - 0x2000, 16);
|
||||
|
@ -3071,22 +3071,22 @@ HORIZONLY:
|
|||
processweapon(snum, actions, sb_snum, psect);
|
||||
}
|
||||
|
||||
void processmove_d(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
|
||||
void processmove_d(int snum, ESyncBits actions, int psect, int fz, int cz, int shrunk, int truefdist)
|
||||
{
|
||||
int psectlotag = sector[psect].lotag;
|
||||
auto p = &ps[snum];
|
||||
if (psectlotag == 2)
|
||||
{
|
||||
underwater(snum, sb_snum, psect, fz, cz);
|
||||
underwater(snum, actions, psect, fz, cz);
|
||||
}
|
||||
|
||||
else if (p->jetpack_on)
|
||||
{
|
||||
operateJetpack(snum, sb_snum, psectlotag, fz, cz, shrunk);
|
||||
operateJetpack(snum, actions, psectlotag, fz, cz, shrunk);
|
||||
}
|
||||
else if (psectlotag != 2)
|
||||
{
|
||||
movement(snum, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
movement(snum, actions, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
}
|
||||
}
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -1411,7 +1411,7 @@ int doincrements_r(struct player_struct* p)
|
|||
else S_PlayActorSound(DUKE_CRACK2, p->i);
|
||||
}
|
||||
}
|
||||
else if (p->knuckle_incs == 22 || PlayerInput(snum, SKB_FIRE))
|
||||
else if (p->knuckle_incs == 22 || PlayerInput(snum, SB_FIRE))
|
||||
p->knuckle_incs = 0;
|
||||
|
||||
return 1;
|
||||
|
@ -1513,7 +1513,7 @@ void checkweapons_r(struct player_struct* p)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void onMotorcycle(int snum, EDukeSyncBits &sb_snum)
|
||||
static void onMotorcycle(int snum, ESyncBits &actions, EDukeSyncBits &sb_snum)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
auto pi = p->i;
|
||||
|
@ -1523,18 +1523,18 @@ static void onMotorcycle(int snum, EDukeSyncBits &sb_snum)
|
|||
short var84;
|
||||
if (p->MotoSpeed < 0)
|
||||
p->MotoSpeed = 0;
|
||||
if (sb_snum & SKB_CROUCH)
|
||||
if (actions & SB_CROUCH)
|
||||
{
|
||||
var64 = 1;
|
||||
sb_snum &= ~SKB_CROUCH;
|
||||
actions &= ~SB_CROUCH;
|
||||
}
|
||||
else
|
||||
var64 = 0;
|
||||
|
||||
if (sb_snum & SKB_JUMP)
|
||||
if (actions & SB_JUMP)
|
||||
{
|
||||
var68 = 1;
|
||||
sb_snum &= ~SKB_JUMP;
|
||||
actions &= ~SB_JUMP;
|
||||
if (p->on_ground)
|
||||
{
|
||||
if (p->MotoSpeed == 0 && var64)
|
||||
|
@ -1806,7 +1806,7 @@ static void onMotorcycle(int snum, EDukeSyncBits &sb_snum)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void onBoat(int snum, EDukeSyncBits& sb_snum)
|
||||
static void onBoat(int snum, ESyncBits &actions, EDukeSyncBits& sb_snum)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
auto pi = p->i;
|
||||
|
@ -1829,19 +1829,19 @@ static void onBoat(int snum, EDukeSyncBits& sb_snum)
|
|||
}
|
||||
if (p->MotoSpeed < 0)
|
||||
p->MotoSpeed = 0;
|
||||
if ((sb_snum & SKB_CROUCH) && (sb_snum & SKB_JUMP))
|
||||
if ((actions & SB_CROUCH) && (actions & SB_JUMP))
|
||||
{
|
||||
vara8 = 1;
|
||||
varac = 0;
|
||||
varb0 = 0;
|
||||
sb_snum &= ~(SKB_JUMP|SKB_CROUCH);
|
||||
actions &= ~(SB_JUMP|SB_CROUCH);
|
||||
}
|
||||
else
|
||||
vara8 = 0;
|
||||
if (sb_snum & SKB_JUMP)
|
||||
if (actions & SB_JUMP)
|
||||
{
|
||||
varac = 1;
|
||||
sb_snum &= ~SKB_JUMP;
|
||||
actions &= ~SB_JUMP;
|
||||
if (p->MotoSpeed == 0 && !S_CheckActorSoundPlaying(pi, 89))
|
||||
{
|
||||
if (S_CheckActorSoundPlaying(pi, 87))
|
||||
|
@ -1872,10 +1872,10 @@ static void onBoat(int snum, EDukeSyncBits& sb_snum)
|
|||
S_PlayActorSound(87, pi);
|
||||
}
|
||||
|
||||
if (sb_snum & SKB_CROUCH)
|
||||
if (actions & SB_CROUCH)
|
||||
{
|
||||
varb0 = 1;
|
||||
sb_snum &= ~SKB_CROUCH;
|
||||
actions &= ~SB_CROUCH;
|
||||
}
|
||||
else
|
||||
varb0 = 0;
|
||||
|
@ -2090,7 +2090,7 @@ static void onBoat(int snum, EDukeSyncBits& sb_snum)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist, int psectlotag)
|
||||
static void movement(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist, int psectlotag)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
auto pi = p->i;
|
||||
|
@ -2148,7 +2148,7 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
|
||||
if (p->posz < (fz - (i << 8))) //falling
|
||||
{
|
||||
if ((sb_snum & (SKB_JUMP|SKB_CROUCH)) == 0 && p->on_ground && (sector[psect].floorstat & 2) && p->posz >= (fz - (i << 8) - (16 << 8)))
|
||||
if ((actions & (SB_JUMP|SB_CROUCH)) == 0 && p->on_ground && (sector[psect].floorstat & 2) && p->posz >= (fz - (i << 8) - (16 << 8)))
|
||||
p->posz = fz - (i << 8);
|
||||
else
|
||||
{
|
||||
|
@ -2262,15 +2262,15 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
|
||||
p->on_warping_sector = 0;
|
||||
|
||||
if ((sb_snum & SKB_CROUCH) && !p->OnMotorcycle)
|
||||
if ((actions & SB_CROUCH) && !p->OnMotorcycle)
|
||||
{
|
||||
playerCrouch(snum);
|
||||
}
|
||||
|
||||
if ((sb_snum & SKB_JUMP) == 0 && !p->OnMotorcycle && p->jumping_toggle == 1)
|
||||
if ((actions & SB_JUMP) == 0 && !p->OnMotorcycle && p->jumping_toggle == 1)
|
||||
p->jumping_toggle = 0;
|
||||
|
||||
else if ((sb_snum & SKB_JUMP) && !p->OnMotorcycle && p->jumping_toggle == 0)
|
||||
else if ((actions & SB_JUMP) && !p->OnMotorcycle && p->jumping_toggle == 0)
|
||||
{
|
||||
playerJump(snum, fz, cz);
|
||||
}
|
||||
|
@ -2278,7 +2278,7 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
|
||||
if (p->jumping_counter)
|
||||
{
|
||||
if ((sb_snum & SKB_JUMP) == 0 && !p->OnMotorcycle && p->jumping_toggle == 1)
|
||||
if ((actions & SB_JUMP) == 0 && !p->OnMotorcycle && p->jumping_toggle == 1)
|
||||
p->jumping_toggle = 0;
|
||||
|
||||
if (p->jumping_counter < 768)
|
||||
|
@ -2320,7 +2320,7 @@ static void movement(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz,
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void underwater(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz)
|
||||
static void underwater(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect, int fz, int cz)
|
||||
{
|
||||
int j;
|
||||
auto p = &ps[snum];
|
||||
|
@ -2336,13 +2336,13 @@ static void underwater(int snum, EDukeSyncBits sb_snum, int psect, int fz, int c
|
|||
if (!S_CheckActorSoundPlaying(pi, DUKE_UNDERWATER))
|
||||
S_PlayActorSound(DUKE_UNDERWATER, pi);
|
||||
|
||||
if ((sb_snum & SKB_JUMP) && !p->OnMotorcycle)
|
||||
if ((actions & SB_JUMP) && !p->OnMotorcycle)
|
||||
{
|
||||
if (p->poszv > 0) p->poszv = 0;
|
||||
p->poszv -= 348;
|
||||
if (p->poszv < -(256 * 6)) p->poszv = -(256 * 6);
|
||||
}
|
||||
else if ((sb_snum & SKB_CROUCH) || p->OnMotorcycle)
|
||||
else if ((actions & SB_CROUCH) || p->OnMotorcycle)
|
||||
{
|
||||
if (p->poszv < 0) p->poszv = 0;
|
||||
p->poszv += 348;
|
||||
|
@ -2744,7 +2744,7 @@ static void fireweapon(int snum)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
||||
static void operateweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
int pi = p->i;
|
||||
|
@ -2758,7 +2758,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
|
||||
if (p->kickback_pic == 1)
|
||||
S_PlaySound(401);
|
||||
if (p->kickback_pic == 6 && (sb_snum & SKB_FIRE))
|
||||
if (p->kickback_pic == 6 && (actions & SB_FIRE))
|
||||
p->rapid_fire_hold = 1;
|
||||
p->kickback_pic++;
|
||||
if (p->kickback_pic > 19)
|
||||
|
@ -2795,7 +2795,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
p->ammo_amount[DYNAMITE_WEAPON]--;
|
||||
if (p->ammo_amount[CROSSBOW_WEAPON])
|
||||
p->ammo_amount[CROSSBOW_WEAPON]--;
|
||||
if (p->on_ground && (sb_snum & SKB_CROUCH) && !p->OnMotorcycle)
|
||||
if (p->on_ground && (actions & SB_CROUCH) && !p->OnMotorcycle)
|
||||
{
|
||||
k = 15;
|
||||
i = ((p->gethorizsum() - 100) * 20);
|
||||
|
@ -2828,7 +2828,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
|
||||
p->hbomb_on = 1;
|
||||
}
|
||||
else if (p->kickback_pic < 12 && (sb_snum & SKB_FIRE))
|
||||
else if (p->kickback_pic < 12 && (actions & SB_FIRE))
|
||||
p->hbomb_hold_delay++;
|
||||
|
||||
if (p->kickback_pic == 40)
|
||||
|
@ -2911,7 +2911,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 6)
|
||||
if (p->shotgun_state[0] == 0)
|
||||
if (p->ammo_amount[SHOTGUN_WEAPON] > 1)
|
||||
if (sb_snum & SKB_FIRE)
|
||||
if (actions & SB_FIRE)
|
||||
p->shotgun_state[1] = 1;
|
||||
|
||||
if (p->kickback_pic == 4)
|
||||
|
@ -3055,7 +3055,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
checkavailweapon(p);
|
||||
|
||||
if ((sb_snum & SKB_FIRE) == 0)
|
||||
if ((actions & SB_FIRE) == 0)
|
||||
{
|
||||
p->kickback_pic = 0;
|
||||
break;
|
||||
|
@ -3064,7 +3064,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
else if (p->kickback_pic > 10)
|
||||
{
|
||||
if (sb_snum & SKB_FIRE) p->kickback_pic = 1;
|
||||
if (actions & SB_FIRE) p->kickback_pic = 1;
|
||||
else p->kickback_pic = 0;
|
||||
}
|
||||
|
||||
|
@ -3119,7 +3119,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
if (p->kickback_pic > 4)
|
||||
p->kickback_pic = 1;
|
||||
if (!(sb_snum & SKB_FIRE))
|
||||
if (!(actions & SB_FIRE))
|
||||
p->kickback_pic = 0;
|
||||
break;
|
||||
|
||||
|
@ -3149,7 +3149,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
}
|
||||
if (p->kickback_pic > 4)
|
||||
p->kickback_pic = 1;
|
||||
if (!(sb_snum & SKB_FIRE))
|
||||
if (!(actions & SB_FIRE))
|
||||
p->kickback_pic = 0;
|
||||
break;
|
||||
case BOAT_WEAPON:
|
||||
|
@ -3205,7 +3205,7 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
{
|
||||
p->ammo_amount[POWDERKEG_WEAPON]--;
|
||||
p->gotweapon.Clear(POWDERKEG_WEAPON);
|
||||
if (p->on_ground && (sb_snum & SKB_CROUCH) && !p->OnMotorcycle)
|
||||
if (p->on_ground && (actions & SB_CROUCH) && !p->OnMotorcycle)
|
||||
{
|
||||
k = 15;
|
||||
i = ((p->gethorizsum() - 100) * 20);
|
||||
|
@ -3336,14 +3336,14 @@ static void operateweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void processweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
||||
static void processweapon(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
int pi = p->i;
|
||||
auto s = &sprite[pi];
|
||||
int shrunk = (s->yrepeat < 8);
|
||||
|
||||
if (sb_snum & SKB_FIRE)
|
||||
if (actions & SB_FIRE)
|
||||
{
|
||||
int a = 0;
|
||||
}
|
||||
|
@ -3374,20 +3374,20 @@ static void processweapon(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
|
||||
if (p->rapid_fire_hold == 1)
|
||||
{
|
||||
if (sb_snum & SKB_FIRE) return;
|
||||
if (actions & SB_FIRE) return;
|
||||
p->rapid_fire_hold = 0;
|
||||
}
|
||||
|
||||
if (shrunk || p->tipincs || p->access_incs)
|
||||
sb_snum &= ~SKB_FIRE;
|
||||
else if (shrunk == 0 && (sb_snum & SKB_FIRE) && p->kickback_pic == 0 && p->fist_incs == 0 &&
|
||||
actions &= ~SB_FIRE;
|
||||
else if (shrunk == 0 && (actions & SB_FIRE) && p->kickback_pic == 0 && p->fist_incs == 0 &&
|
||||
p->last_weapon == -1 && (p->weapon_pos == 0 || p->holster_weapon == 1))
|
||||
{
|
||||
fireweapon(snum);
|
||||
}
|
||||
else if (p->kickback_pic)
|
||||
{
|
||||
operateweapon(snum, sb_snum, psect);
|
||||
operateweapon(snum, actions, sb_snum, psect);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3423,11 +3423,11 @@ void processinput_r(int snum)
|
|||
psect = p->cursectnum;
|
||||
if (p->OnMotorcycle && s->extra > 0)
|
||||
{
|
||||
onMotorcycle(snum, sb_snum);
|
||||
onMotorcycle(snum, actions, sb_snum);
|
||||
}
|
||||
else if (p->OnBoat && s->extra > 0)
|
||||
{
|
||||
onBoat(snum, sb_snum);
|
||||
onBoat(snum, actions, sb_snum);
|
||||
}
|
||||
if (psect == -1)
|
||||
{
|
||||
|
@ -3510,7 +3510,7 @@ void processinput_r(int snum)
|
|||
if (!p->stairs)
|
||||
{
|
||||
p->stairs = 10;
|
||||
if ((sb_snum & SKB_JUMP) && !p->OnMotorcycle)
|
||||
if ((actions & SB_JUMP) && !p->OnMotorcycle)
|
||||
{
|
||||
hz = 0;
|
||||
cz = p->truecz;
|
||||
|
@ -3560,7 +3560,7 @@ void processinput_r(int snum)
|
|||
if (!p->stairs)
|
||||
{
|
||||
p->stairs = 10;
|
||||
if ((sb_snum & SKB_CROUCH) && !p->OnMotorcycle)
|
||||
if ((actions & SB_CROUCH) && !p->OnMotorcycle)
|
||||
{
|
||||
cz = sprite[j].z;
|
||||
hz = 0;
|
||||
|
@ -3572,7 +3572,7 @@ void processinput_r(int snum)
|
|||
}
|
||||
else if (sprite[j].picnum == TOILET || sprite[j].picnum == RRTILE2121)
|
||||
{
|
||||
if ((sb_snum & SKB_CROUCH) && !p->OnMotorcycle)
|
||||
if ((actions & SB_CROUCH) && !p->OnMotorcycle)
|
||||
//if (Sound[436].num == 0)
|
||||
{
|
||||
S_PlayActorSound(436, p->i);
|
||||
|
@ -3634,7 +3634,7 @@ void processinput_r(int snum)
|
|||
|
||||
fi.doincrements(p);
|
||||
|
||||
if (p->curr_weapon == THROWINGDYNAMITE_WEAPON) processweapon(snum, sb_snum, psect);
|
||||
if (p->curr_weapon == THROWINGDYNAMITE_WEAPON) processweapon(snum, actions, sb_snum, psect);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3680,11 +3680,11 @@ void processinput_r(int snum)
|
|||
|
||||
if (psectlotag == ST_2_UNDERWATER)
|
||||
{
|
||||
underwater(snum, sb_snum, psect, fz, cz);
|
||||
underwater(snum, actions, sb_snum, psect, fz, cz);
|
||||
}
|
||||
else
|
||||
{
|
||||
movement(snum, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
movement(snum, actions, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
}
|
||||
|
||||
p->psectlotag = psectlotag;
|
||||
|
@ -3780,7 +3780,7 @@ void processinput_r(int snum)
|
|||
p->posxv += ((sb_fvel * doubvel) << 6);
|
||||
p->posyv += ((sb_svel * doubvel) << 6);
|
||||
|
||||
if (!isRRRA() && ((p->curr_weapon == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (sb_snum & SKB_CROUCH))))
|
||||
if (!isRRRA() && ((p->curr_weapon == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (actions & SB_CROUCH))))
|
||||
{
|
||||
p->posxv = mulscale(p->posxv, dukefriction - 0x2000, 16);
|
||||
p->posyv = mulscale(p->posyv, dukefriction - 0x2000, 16);
|
||||
|
@ -4096,7 +4096,7 @@ HORIZONLY:
|
|||
else p->weapon_pos--;
|
||||
}
|
||||
|
||||
processweapon(snum, sb_snum, psect);
|
||||
processweapon(snum, actions, sb_snum, psect);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -4105,17 +4105,17 @@ HORIZONLY:
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void processmove_r(int snum, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
|
||||
void processmove_r(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
|
||||
{
|
||||
int psectlotag = sector[psect].lotag;
|
||||
auto p = &ps[snum];
|
||||
if (psectlotag == ST_2_UNDERWATER)
|
||||
{
|
||||
underwater(snum, sb_snum, psect, fz, cz);
|
||||
underwater(snum, actions, sb_snum, psect, fz, cz);
|
||||
}
|
||||
else
|
||||
{
|
||||
movement(snum, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
movement(snum, actions, sb_snum, psect, fz, cz, shrunk, truefdist, psectlotag);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -306,7 +306,7 @@ void fireweapon_ww(int snum)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
||||
void operateweapon_ww(int snum, ESyncBits actions, EDukeSyncBits sb_snum, int psect)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
int pi = p->i;
|
||||
|
@ -318,7 +318,7 @@ void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
{
|
||||
if (aplWeaponHoldDelay[p->curr_weapon][snum] // there is a hold delay
|
||||
&& (p->kickback_pic == aplWeaponFireDelay[p->curr_weapon][snum]) // and we are 'at' hold
|
||||
&& (sb_snum & SKB_FIRE) // and 'fire' button is still down
|
||||
&& (actions & SB_FIRE) // and 'fire' button is still down
|
||||
)
|
||||
// just hold here...
|
||||
{
|
||||
|
@ -330,7 +330,7 @@ void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
{
|
||||
p->ammo_amount[p->curr_weapon]--;
|
||||
|
||||
if (p->on_ground && (sb_snum & SKB_CROUCH))
|
||||
if (p->on_ground && (actions & SB_CROUCH))
|
||||
{
|
||||
k = 15;
|
||||
i = ((p->gethorizsum() - 100) * 20);
|
||||
|
@ -374,7 +374,7 @@ void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
|
||||
}
|
||||
else if (p->kickback_pic < aplWeaponHoldDelay[p->curr_weapon][snum] &&
|
||||
(sb_snum & SKB_CROUCH))
|
||||
(actions & SB_CROUCH))
|
||||
{
|
||||
p->hbomb_hold_delay++;
|
||||
}
|
||||
|
@ -461,7 +461,7 @@ void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
|
||||
if (aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_AUTOMATIC)
|
||||
{ // an 'automatic'
|
||||
if ((sb_snum & SKB_FIRE) == 0)
|
||||
if ((actions & SB_FIRE) == 0)
|
||||
{
|
||||
p->kickback_pic = aplWeaponTotalTime[p->curr_weapon][snum];
|
||||
}
|
||||
|
@ -518,7 +518,7 @@ void operateweapon_ww(int snum, EDukeSyncBits sb_snum, int psect)
|
|||
{
|
||||
if (aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_AUTOMATIC)
|
||||
{ // an 'automatic'
|
||||
if (sb_snum & SKB_FIRE)
|
||||
if (actions & SB_FIRE)
|
||||
{
|
||||
// we are an AUTOMATIC. Fire again...
|
||||
if (aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_RANDOMRESTART)
|
||||
|
|
|
@ -1520,7 +1520,7 @@ void checksectors_d(int snum)
|
|||
|
||||
if (chatmodeon || sprite[p->i].extra <= 0) return;
|
||||
|
||||
if (ud.cashman && PlayerInput(snum, SKB_OPEN))
|
||||
if (ud.cashman && PlayerInput(snum, SB_OPEN))
|
||||
fi.lotsofmoney(&sprite[p->i], 2);
|
||||
|
||||
if (p->newowner >= 0)
|
||||
|
@ -1532,7 +1532,7 @@ void checksectors_d(int snum)
|
|||
}
|
||||
}
|
||||
|
||||
if (!(PlayerInput(snum, SKB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
|
||||
if (!(PlayerInput(snum, SB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
|
||||
p->toggle_key_flag = 0;
|
||||
|
||||
else if (!p->toggle_key_flag)
|
||||
|
@ -1740,7 +1740,7 @@ void checksectors_d(int snum)
|
|||
}
|
||||
}
|
||||
|
||||
if (!PlayerInput(snum, SKB_OPEN)) return;
|
||||
if (!PlayerInput(snum, SB_OPEN)) return;
|
||||
else if (p->newowner >= 0) { i = -1; goto CLEARCAMERAS; }
|
||||
|
||||
if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1)
|
||||
|
|
|
@ -2484,11 +2484,11 @@ void checksectors_r(int snum)
|
|||
|
||||
if (chatmodeon || sprite[p->i].extra <= 0) return;
|
||||
|
||||
if (ud.cashman && PlayerInput(snum, SKB_OPEN))
|
||||
if (ud.cashman && PlayerInput(snum, SB_OPEN))
|
||||
fi.lotsofmoney(&sprite[p->i], 2);
|
||||
|
||||
|
||||
if (!(PlayerInput(snum, SKB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
|
||||
if (!(PlayerInput(snum, SB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
|
||||
p->toggle_key_flag = 0;
|
||||
|
||||
else if (!p->toggle_key_flag)
|
||||
|
@ -2709,7 +2709,7 @@ void checksectors_r(int snum)
|
|||
}
|
||||
}
|
||||
|
||||
if (!PlayerInput(snum, SKB_OPEN)) return;
|
||||
if (!PlayerInput(snum, SB_OPEN)) return;
|
||||
|
||||
if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1)
|
||||
if (abs(hits(p->i)) < 512)
|
||||
|
|
|
@ -323,12 +323,10 @@ getinput(InputPacket *loc, SWBOOL tied)
|
|||
#endif
|
||||
}
|
||||
|
||||
SET_LOC_KEY(loc->bits, SK_RUN, buttonMap.ButtonDown(gamefunc_Run));
|
||||
SET_LOC_KEY(loc->bits, SK_SHOOT, buttonMap.ButtonDown(gamefunc_Fire));
|
||||
|
||||
// actually snap
|
||||
SET_LOC_KEY(loc->bits, SK_SNAP_UP, buttonMap.ButtonDown(gamefunc_Aim_Up));
|
||||
SET_LOC_KEY(loc->bits, SK_SNAP_DOWN, buttonMap.ButtonDown(gamefunc_Aim_Down));
|
||||
SET_LOC_KEY(loc->bits, SK_AIM_UP, buttonMap.ButtonDown(gamefunc_Aim_Up));
|
||||
SET_LOC_KEY(loc->bits, SK_AIM_DOWN, buttonMap.ButtonDown(gamefunc_Aim_Down));
|
||||
|
||||
// actually just look
|
||||
SET_LOC_KEY(loc->bits, SK_LOOK_UP, buttonMap.ButtonDown(gamefunc_Look_Up));
|
||||
|
@ -410,11 +408,6 @@ getinput(InputPacket *loc, SWBOOL tied)
|
|||
loc->setNewWeapon(which_weapon);
|
||||
}
|
||||
|
||||
|
||||
SET_LOC_KEY(loc->bits, SK_OPERATE, buttonMap.ButtonDown(gamefunc_Open));
|
||||
SET_LOC_KEY(loc->bits, SK_JUMP, buttonMap.ButtonDown(gamefunc_Jump));
|
||||
SET_LOC_KEY(loc->bits, SK_CRAWL, buttonMap.ButtonDown(gamefunc_Crouch));
|
||||
|
||||
// need BUTTON
|
||||
SET_LOC_KEY(loc->bits, SK_CRAWL_LOCK, buttonMap.ButtonDown(gamefunc_Toggle_Crouch));
|
||||
|
||||
|
|
|
@ -465,9 +465,9 @@ int WeaponOperate(PLAYERp pp)
|
|||
if (!TEST(pp->sop->flags, SOBJ_HAS_WEAPON))
|
||||
break;
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_SHOOT))
|
||||
if (pp->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_SHOOT))
|
||||
if (pp->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
if (!pp->FirePause)
|
||||
{
|
||||
|
@ -693,7 +693,7 @@ WeaponOK(PLAYERp pp)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
FLAG_KEY_RELEASE(pp, SK_SHOOT);
|
||||
pp->KeyPressBits &= ~SB_FIRE;
|
||||
|
||||
FindWeaponNum = WPN_SHOTGUN; // Start at the top
|
||||
|
||||
|
@ -984,8 +984,7 @@ InitWeaponSword(PLAYERp pp)
|
|||
PlayerSound(DIGI_ILIKESWORD, v3df_follow|v3df_dontpan,pp);
|
||||
}
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1065,9 +1064,9 @@ pSwordSlideDown(PANEL_SPRITEp psp)
|
|||
if (psp->x < -40)
|
||||
{
|
||||
// if still holding down the fire key - continue swinging
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
DoPlayerChooseYell(psp->PlayerP);
|
||||
// continue to next state to swing right
|
||||
|
@ -1150,9 +1149,9 @@ pSwordSlideDownR(PANEL_SPRITEp psp)
|
|||
if (psp->x > 350)
|
||||
{
|
||||
// if still holding down the fire key - continue swinging
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
DoPlayerChooseYell(psp->PlayerP);
|
||||
// back to action state
|
||||
|
@ -1227,9 +1226,9 @@ pSwordRest(PANEL_SPRITEp psp)
|
|||
|
||||
force = !!TEST(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -1361,9 +1360,9 @@ PANEL_STATE ps_RetractStar[] =
|
|||
void
|
||||
pStarRestTest(PANEL_SPRITEp psp)
|
||||
{
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
if (!WeaponOK(psp->PlayerP))
|
||||
return;
|
||||
|
@ -1439,8 +1438,7 @@ InitWeaponStar(PLAYERp pp)
|
|||
PlayerSound(DIGI_ILIKESHURIKEN, v3df_follow|v3df_dontpan,pp);
|
||||
}
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1518,9 +1516,9 @@ pStarRest(PANEL_SPRITEp psp)
|
|||
pStarBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -2156,8 +2154,7 @@ InitWeaponUzi(PLAYERp pp)
|
|||
|
||||
PlaySound(DIGI_UZI_UP, pp, v3df_follow);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
PANEL_SPRITEp
|
||||
|
@ -2358,7 +2355,7 @@ pUziRest(PANEL_SPRITEp psp)
|
|||
|
||||
SetVisNorm();
|
||||
|
||||
shooting = TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) && FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT);
|
||||
shooting = (psp->PlayerP->input.actions & SB_FIRE) && (psp->PlayerP->KeyPressBits & SB_FIRE);
|
||||
shooting |= force;
|
||||
|
||||
pUziBobSetup(psp);
|
||||
|
@ -2383,7 +2380,7 @@ pUziAction(PANEL_SPRITEp psp)
|
|||
char shooting;
|
||||
static SWBOOL alternate = FALSE;
|
||||
|
||||
shooting = TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) && FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT);
|
||||
shooting = (psp->PlayerP->input.actions & SB_FIRE) && (psp->PlayerP->KeyPressBits & SB_FIRE);
|
||||
|
||||
if (shooting)
|
||||
{
|
||||
|
@ -2803,8 +2800,7 @@ InitWeaponShotgun(PLAYERp pp)
|
|||
|
||||
PlaySound(DIGI_SHOTGUN_UP, pp, v3df_follow);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -3056,9 +3052,9 @@ pShotgunRest(PANEL_SPRITEp psp)
|
|||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -3100,9 +3096,9 @@ pShotgunRestTest(PANEL_SPRITEp psp)
|
|||
pShotgunBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -3315,8 +3311,7 @@ InitWeaponRail(PLAYERp pp)
|
|||
PlaySound(DIGI_RAILREADY, pp, v3df_follow | v3df_dontpan, CHAN_ITEM); // this one needs to be on a dedicated channel to allow switching it off without too many checks.
|
||||
Set3DSoundOwner(psp->PlayerP->PlayerSprite);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -3460,9 +3455,9 @@ pRailRest(PANEL_SPRITEp psp)
|
|||
pRailBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -3493,9 +3488,9 @@ pRailRestTest(PANEL_SPRITEp psp)
|
|||
pRailBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -3773,8 +3768,7 @@ InitWeaponHothead(PLAYERp pp)
|
|||
psp->ang = 768;
|
||||
psp->vel = 512;
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
pHotHeadOverlays(psp, pp->WpnFlameType);
|
||||
psp->over[0].xoff = HOTHEAD_FINGER_XOFF;
|
||||
psp->over[0].yoff = HOTHEAD_FINGER_YOFF;
|
||||
|
@ -3785,9 +3779,9 @@ InitWeaponHothead(PLAYERp pp)
|
|||
void
|
||||
pHotheadRestTest(PANEL_SPRITEp psp)
|
||||
{
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
//if (!TEST(psp->PlayerP->Flags,PF_DIVING))
|
||||
{
|
||||
|
@ -3883,9 +3877,9 @@ pHotheadRest(PANEL_SPRITEp psp)
|
|||
pHotheadBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -3917,7 +3911,7 @@ pHotheadAction(PANEL_SPRITEp psp)
|
|||
{
|
||||
char shooting;
|
||||
|
||||
shooting = TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) && FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT);
|
||||
shooting = (psp->PlayerP->input.actions & SB_FIRE) && (psp->PlayerP->KeyPressBits & SB_FIRE);
|
||||
|
||||
if (shooting)
|
||||
{
|
||||
|
@ -4216,8 +4210,7 @@ InitWeaponMicro(PLAYERp pp)
|
|||
|
||||
PlaySound(DIGI_ROCKET_UP, pp, v3df_follow);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
|
||||
}
|
||||
|
||||
|
@ -4467,9 +4460,9 @@ pMicroRest(PANEL_SPRITEp psp)
|
|||
}
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -4729,8 +4722,7 @@ InitWeaponHeart(PLAYERp pp)
|
|||
psp->RestState = ps_HeartRest;
|
||||
pSetState(psp, psp->PresentState);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -4798,11 +4790,11 @@ pHeartRest(PANEL_SPRITEp psp)
|
|||
pHeartBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits &= ~SB_FIRE;
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
if (!WeaponOK(psp->PlayerP))
|
||||
|
@ -4814,7 +4806,7 @@ pHeartRest(PANEL_SPRITEp psp)
|
|||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
WeaponOK(psp->PlayerP);
|
||||
}
|
||||
}
|
||||
|
@ -5232,8 +5224,7 @@ InitWeaponGrenade(PLAYERp pp)
|
|||
|
||||
PlaySound(DIGI_GRENADE_UP, pp, v3df_follow);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -5380,9 +5371,9 @@ pGrenadeRest(PANEL_SPRITEp psp)
|
|||
pGrenadeBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -5530,8 +5521,7 @@ InitWeaponMine(PLAYERp pp)
|
|||
|
||||
PlaySound(DIGI_PULL, pp, v3df_follow|v3df_dontpan);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -5630,9 +5620,9 @@ pMineRest(PANEL_SPRITEp psp)
|
|||
pMineBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -6197,8 +6187,7 @@ InitWeaponFist(PLAYERp pp)
|
|||
else if (rnd_num > 700)
|
||||
PlaySound(DIGI_PLAYERYELL2, pp, v3df_follow|v3df_dontpan);
|
||||
|
||||
FLAG_KEY_RELEASE(psp->PlayerP, SK_SHOOT);
|
||||
FLAG_KEY_RESET(psp->PlayerP, SK_SHOOT);
|
||||
psp->PlayerP->KeyPressBits |= SB_FIRE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -6298,9 +6287,9 @@ pFistSlideDown(PANEL_SPRITEp psp)
|
|||
if (psp->y > 440)
|
||||
{
|
||||
// if still holding down the fire key - continue swinging
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
DoPlayerChooseYell(psp->PlayerP);
|
||||
|
||||
|
@ -6417,9 +6406,9 @@ pFistSlideDownR(PANEL_SPRITEp psp)
|
|||
if (psp->y > 440)
|
||||
{
|
||||
// if still holding down the fire key - continue swinging
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
DoPlayerChooseYell(psp->PlayerP);
|
||||
|
||||
|
@ -6520,11 +6509,11 @@ pFistRest(PANEL_SPRITEp psp)
|
|||
// Reset move to default
|
||||
psp->PlayerP->WpnKungFuMove = 0;
|
||||
|
||||
//if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force || TEST_SYNC_KEY(psp->PlayerP, SK_OPERATE))
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT) || force)
|
||||
//if ((psp->PlayerP->input.actions & SB_FIRE) || force || TEST_SYNC_KEY(psp->PlayerP, SK_OPERATE))
|
||||
if ((psp->PlayerP->input.actions & SB_FIRE) || force)
|
||||
{
|
||||
//if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force || FLAG_KEY_PRESSED(psp->PlayerP, SK_OPERATE))
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT) || force)
|
||||
//if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force || FLAG_KEY_PRESSED(psp->PlayerP, SK_OPERATE))
|
||||
if ((psp->PlayerP->KeyPressBits & SB_FIRE) || force)
|
||||
{
|
||||
RESET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
|
||||
|
@ -6585,7 +6574,7 @@ pFistBlock(PANEL_SPRITEp psp)
|
|||
pFistBobSetup(psp);
|
||||
pWeaponBob(psp, PLAYER_MOVING(psp->PlayerP));
|
||||
|
||||
if (!TEST_SYNC_KEY(psp->PlayerP, SK_OPERATE))
|
||||
if (!(psp->PlayerP->input.actions & SB_OPEN))
|
||||
{
|
||||
pStatePlusOne(psp);
|
||||
}
|
||||
|
@ -6641,9 +6630,9 @@ pWeaponUnHideKeys(PANEL_SPRITEp psp, PANEL_STATEp state)
|
|||
psp->PlayerP->KeyPressBits |= SB_HOLSTER;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(psp->PlayerP, SK_SHOOT))
|
||||
if (psp->PlayerP->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
SET(psp->flags, PANF_UNHIDE_SHOOT);
|
||||
pSetState(psp, state);
|
||||
|
|
|
@ -1957,13 +1957,13 @@ DoPlayerHorizon(PLAYERp pp, fix16_t *pq16horiz, fix16_t q16aimvel)
|
|||
}
|
||||
|
||||
// this is the locked type
|
||||
if (TEST_SYNC_KEY(pp, SK_SNAP_UP) || TEST_SYNC_KEY(pp, SK_SNAP_DOWN))
|
||||
if (TEST_SYNC_KEY(pp, SK_AIM_UP) || TEST_SYNC_KEY(pp, SK_AIM_DOWN))
|
||||
{
|
||||
// set looking because player is manually looking
|
||||
SET(pp->Flags, PF_LOCK_HORIZ | PF_LOOKING);
|
||||
|
||||
// adjust *pq16horiz negative
|
||||
if (TEST_SYNC_KEY(pp, SK_SNAP_DOWN))
|
||||
if (TEST_SYNC_KEY(pp, SK_AIM_DOWN))
|
||||
{
|
||||
if (PedanticMode)
|
||||
pp->q16horizbase -= fix16_from_int((HORIZ_SPEED/2));
|
||||
|
@ -1972,7 +1972,7 @@ DoPlayerHorizon(PLAYERp pp, fix16_t *pq16horiz, fix16_t q16aimvel)
|
|||
}
|
||||
|
||||
// adjust *pq16horiz positive
|
||||
if (TEST_SYNC_KEY(pp, SK_SNAP_UP))
|
||||
if (TEST_SYNC_KEY(pp, SK_AIM_UP))
|
||||
{
|
||||
if (PedanticMode)
|
||||
pp->q16horizbase += fix16_from_int((HORIZ_SPEED/2));
|
||||
|
@ -3485,16 +3485,16 @@ DoPlayerJump(PLAYERp pp)
|
|||
short i;
|
||||
|
||||
// reset flag key for double jumps
|
||||
if (!TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (!(pp->input.actions & SB_JUMP))
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_JUMP);
|
||||
pp->KeyPressBits |= SB_JUMP;
|
||||
}
|
||||
|
||||
// instead of multiplying by synctics, use a loop for greater accuracy
|
||||
for (i = 0; i < synctics; i++)
|
||||
{
|
||||
// PlayerGravity += synctics; // See how increase gravity as we go?
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
if (pp->JumpDuration > 0)
|
||||
{
|
||||
|
@ -3650,9 +3650,9 @@ DoPlayerFall(PLAYERp pp)
|
|||
int depth;
|
||||
|
||||
// reset flag key for double jumps
|
||||
if (!TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (!(pp->input.actions & SB_JUMP))
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_JUMP);
|
||||
pp->KeyPressBits |= SB_JUMP;
|
||||
}
|
||||
|
||||
if (pp->cursectnum >= 0 && SectorIsUnderwaterArea(pp->cursectnum))
|
||||
|
@ -3727,7 +3727,7 @@ DoPlayerFall(PLAYERp pp)
|
|||
StopPlayerSound(pp, DIGI_FALLSCREAM);
|
||||
|
||||
// i any kind of crawl key get rid of recoil
|
||||
if (DoPlayerTestCrawl(pp) || TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (DoPlayerTestCrawl(pp) || (pp->input.actions & SB_CROUCH))
|
||||
{
|
||||
pp->posz = pp->loz - PLAYER_CRAWL_HEIGHT;
|
||||
}
|
||||
|
@ -3767,7 +3767,7 @@ DoPlayerFall(PLAYERp pp)
|
|||
return;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (pp->input.actions & SB_CROUCH)
|
||||
{
|
||||
StackedWaterSplash(pp);
|
||||
DoPlayerBeginCrawl(pp);
|
||||
|
@ -3856,7 +3856,7 @@ DoPlayerClimb(PLAYERp pp)
|
|||
// need to rewrite this for FAF stuff
|
||||
|
||||
// Jump off of the ladder
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
RESET(pp->Flags, PF_CLIMBING|PF_WEAPON_DOWN);
|
||||
RESET(sp->cstat, CSTAT_SPRITE_YCENTER);
|
||||
|
@ -4188,7 +4188,7 @@ DoPlayerCrawl(PLAYERp pp)
|
|||
}
|
||||
|
||||
// Jump to get up
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
if (labs(pp->loz - pp->hiz) >= PLAYER_STANDING_ROOM)
|
||||
{
|
||||
|
@ -4204,7 +4204,7 @@ DoPlayerCrawl(PLAYERp pp)
|
|||
else
|
||||
{
|
||||
// Let off of crawl to get up
|
||||
if (!TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (!(pp->input.actions & SB_CROUCH))
|
||||
{
|
||||
if (labs(pp->loz - pp->hiz) >= PLAYER_STANDING_ROOM)
|
||||
{
|
||||
|
@ -4331,7 +4331,7 @@ DoPlayerFly(PLAYERp pp)
|
|||
return;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (pp->input.actions & SB_CROUCH)
|
||||
{
|
||||
pp->z_speed += PLAYER_FLY_INC;
|
||||
|
||||
|
@ -4339,7 +4339,7 @@ DoPlayerFly(PLAYERp pp)
|
|||
pp->z_speed = PLAYER_FLY_MAX_SPEED;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
pp->z_speed -= PLAYER_FLY_INC;
|
||||
|
||||
|
@ -4550,7 +4550,7 @@ PlayerCanDive(PLAYERp pp)
|
|||
return FALSE;
|
||||
|
||||
// Crawl - check for diving
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL) || pp->jump_speed > 0)
|
||||
if ((pp->input.actions & SB_CROUCH) || pp->jump_speed > 0)
|
||||
{
|
||||
if (PlayerInDiveArea(pp))
|
||||
{
|
||||
|
@ -5183,7 +5183,7 @@ DoPlayerDive(PLAYERp pp)
|
|||
}
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (pp->input.actions & SB_CROUCH)
|
||||
{
|
||||
pp->z_speed += PLAYER_DIVE_INC;
|
||||
|
||||
|
@ -5191,7 +5191,7 @@ DoPlayerDive(PLAYERp pp)
|
|||
pp->z_speed = PLAYER_DIVE_MAX_SPEED;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
pp->z_speed -= PLAYER_DIVE_INC;
|
||||
|
||||
|
@ -5456,13 +5456,13 @@ DoPlayerWade(PLAYERp pp)
|
|||
|
||||
if (DebugOperate)
|
||||
{
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE))
|
||||
if (pp->KeyPressBits & SB_OPEN)
|
||||
{
|
||||
if (TEST(sector[pp->cursectnum].extra, SECTFX_OPERATIONAL))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
DoPlayerBeginOperate(pp);
|
||||
pp->bob_amt = 0;
|
||||
pp->bob_ndx = 0;
|
||||
|
@ -5472,7 +5472,7 @@ DoPlayerWade(PLAYERp pp)
|
|||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5484,17 +5484,17 @@ DoPlayerWade(PLAYERp pp)
|
|||
}
|
||||
|
||||
// Crawl Commanded
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL) && pp->WadeDepth <= PLAYER_CRAWL_WADE_DEPTH)
|
||||
if ((pp->input.actions & SB_CROUCH) && pp->WadeDepth <= PLAYER_CRAWL_WADE_DEPTH)
|
||||
{
|
||||
DoPlayerBeginCrawl(pp);
|
||||
return;
|
||||
}
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_JUMP))
|
||||
if (pp->KeyPressBits & SB_JUMP)
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_JUMP);
|
||||
pp->KeyPressBits &= ~SB_JUMP;
|
||||
//DoPlayerHeight(pp);
|
||||
//DoPlayerHeight(pp);
|
||||
//DoPlayerHeight(pp);
|
||||
|
@ -5507,7 +5507,7 @@ DoPlayerWade(PLAYERp pp)
|
|||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_JUMP);
|
||||
pp->KeyPressBits |= SB_JUMP;
|
||||
}
|
||||
|
||||
if (PlayerFlyKey())
|
||||
|
@ -5980,18 +5980,18 @@ DoPlayerOperateTurret(PLAYERp pp)
|
|||
{
|
||||
short save_sectnum;
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE))
|
||||
if (pp->KeyPressBits & SB_OPEN)
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
DoPlayerStopOperate(pp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
|
||||
if (pp->sop->max_damage != -9999 && pp->sop->max_damage <= 0)
|
||||
|
@ -6020,18 +6020,18 @@ DoPlayerOperateBoat(PLAYERp pp)
|
|||
{
|
||||
short save_sectnum;
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE))
|
||||
if (pp->KeyPressBits & SB_OPEN)
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
DoPlayerStopOperate(pp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
|
||||
if (pp->sop->max_damage != -9999 && pp->sop->max_damage <= 0)
|
||||
|
@ -6060,18 +6060,18 @@ DoPlayerOperateTank(PLAYERp pp)
|
|||
short save_sectnum;
|
||||
|
||||
//ASSERT(!TEST_SYNC_KEY(pp, SK_OPERATE));
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE))
|
||||
if (pp->KeyPressBits & SB_OPEN)
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
DoPlayerStopOperate(pp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
|
||||
if (pp->sop->max_damage != -9999 && pp->sop->max_damage <= 0)
|
||||
|
@ -6574,9 +6574,9 @@ void DoPlayerDeathHurl(PLAYERp pp)
|
|||
{
|
||||
if (numplayers > 1)
|
||||
{
|
||||
if (TEST_SYNC_KEY(pp, SK_SHOOT))
|
||||
if (pp->input.actions & SB_FIRE)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_SHOOT))
|
||||
if (pp->KeyPressBits & SB_FIRE)
|
||||
{
|
||||
|
||||
|
||||
|
@ -6637,7 +6637,7 @@ void DoPlayerDeathCheckKeys(PLAYERp pp)
|
|||
SPRITEp sp = pp->SpriteP;
|
||||
USERp u = User[pp->PlayerSprite];
|
||||
|
||||
//if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
//if (pp->input.actions & SB_OPEN)
|
||||
if (TEST_SYNC_KEY(pp, SK_SPACE_BAR))
|
||||
{
|
||||
// Spawn a dead LoWang body for non-head deaths
|
||||
|
@ -7139,18 +7139,18 @@ DoPlayerRun(PLAYERp pp)
|
|||
}
|
||||
|
||||
// Crawl Commanded
|
||||
if (TEST_SYNC_KEY(pp, SK_CRAWL))
|
||||
if (pp->input.actions & SB_CROUCH)
|
||||
{
|
||||
DoPlayerBeginCrawl(pp);
|
||||
return;
|
||||
}
|
||||
|
||||
// Jump
|
||||
if (TEST_SYNC_KEY(pp, SK_JUMP))
|
||||
if (pp->input.actions & SB_JUMP)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_JUMP))
|
||||
if (pp->KeyPressBits & SB_JUMP)
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_JUMP);
|
||||
pp->KeyPressBits &= ~SB_JUMP;
|
||||
// make sure you stand at full heights for jumps/double jumps
|
||||
//DoPlayerHeight(pp);
|
||||
//DoPlayerHeight(pp);
|
||||
|
@ -7164,7 +7164,7 @@ DoPlayerRun(PLAYERp pp)
|
|||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_JUMP);
|
||||
pp->KeyPressBits |= SB_JUMP;
|
||||
}
|
||||
|
||||
// Crawl lock
|
||||
|
@ -7193,13 +7193,13 @@ DoPlayerRun(PLAYERp pp)
|
|||
{
|
||||
if (!TEST(pp->Flags, PF_DEAD) && !Prediction)
|
||||
{
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE) && pp->cursectnum >= 0)
|
||||
if ((pp->KeyPressBits & SB_OPEN) && pp->cursectnum >= 0)
|
||||
{
|
||||
if (TEST(sector[pp->cursectnum].extra, SECTFX_OPERATIONAL))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
DoPlayerBeginOperate(pp);
|
||||
return;
|
||||
}
|
||||
|
@ -7211,7 +7211,7 @@ DoPlayerRun(PLAYERp pp)
|
|||
if (sp && SP_TAG5(sp) == TRIGGER_TYPE_REMOTE_SO)
|
||||
{
|
||||
pp->remote_sprite = sp;
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
ASSERT(pp->remote_sprite);
|
||||
DoPlayerBeginRemoteOperate(pp, &SectorObject[SP_TAG7(pp->remote_sprite)]);
|
||||
return;
|
||||
|
@ -7221,7 +7221,7 @@ DoPlayerRun(PLAYERp pp)
|
|||
}
|
||||
else
|
||||
{
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,15 +83,13 @@ DoPrediction(PLAYERp ppp)
|
|||
|
||||
// get rid of input bits so it doesn't go into other code branches that would
|
||||
// get it out of sync
|
||||
ppp->input.actions &= ~(SB_WEAPONMASK_BITS|SB_ITEMUSE_BITS|SB_HOLSTER|SB_CENTERVIEW);
|
||||
ppp->KeyPressBits |= (SB_WEAPONMASK_BITS|SB_ITEMUSE_BITS|SB_INVNEXT|SB_INVPREV|SB_INVUSE|SB_HOLSTER|SB_CENTERVIEW);
|
||||
ppp->input.actions &= ~(SB_WEAPONMASK_BITS|SB_ITEMUSE_BITS|SB_INVNEXT|SB_INVPREV|SB_INVUSE|SB_HOLSTER|SB_CENTERVIEW|SB_FIRE|SB_OPEN);;
|
||||
ppp->KeyPressBits |= (SB_WEAPONMASK_BITS|SB_ITEMUSE_BITS|SB_INVNEXT|SB_INVPREV|SB_INVUSE|SB_HOLSTER|SB_CENTERVIEW|SB_FIRE|SB_OPEN);
|
||||
RESET(ppp->input.bits,
|
||||
BIT(SK_SHOOT)|BIT(SK_OPERATE)|
|
||||
BIT(SK_AUTO_AIM)
|
||||
);
|
||||
|
||||
SET(ppp->KeyPressFlags,
|
||||
BIT(SK_SHOOT)|BIT(SK_OPERATE)|
|
||||
BIT(SK_AUTO_AIM)
|
||||
);
|
||||
|
||||
|
|
|
@ -2585,9 +2585,9 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
// Switch & door activations
|
||||
//
|
||||
|
||||
if (TEST_SYNC_KEY(pp, SK_OPERATE))
|
||||
if (pp->input.actions & SB_OPEN)
|
||||
{
|
||||
if (FLAG_KEY_PRESSED(pp, SK_OPERATE))
|
||||
if (pp->KeyPressBits & SB_OPEN)
|
||||
{
|
||||
// if space bar pressed
|
||||
short nt_ndx;
|
||||
|
@ -2595,7 +2595,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
|
||||
if (DoPlayerGrabStar(pp))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2613,7 +2613,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
{
|
||||
if (OperateSprite(nti[nt_ndx].spritenum, TRUE))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
found = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -2642,7 +2642,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
{
|
||||
if (OperateSprite(nti[nt_ndx].spritenum, TRUE))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2663,7 +2663,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
if (OperateSector(neartagsector, TRUE))
|
||||
{
|
||||
// Release the key
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2671,7 +2671,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
{
|
||||
if (OperateWall(neartagwall, TRUE))
|
||||
{
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2690,11 +2690,11 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
break;
|
||||
case TAG_SPRING_BOARD:
|
||||
DoSpringBoard(pp/*, pp->cursectnum*/);
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
break;
|
||||
case TAG_DOOR_ROTATE:
|
||||
if (OperateSector(pp->cursectnum, TRUE))
|
||||
FLAG_KEY_RELEASE(pp, SK_OPERATE);
|
||||
pp->KeyPressBits &= ~SB_OPEN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2702,7 +2702,7 @@ PlayerOperateEnv(PLAYERp pp)
|
|||
else
|
||||
{
|
||||
// Reset the key when syncbit key is not in use
|
||||
FLAG_KEY_RESET(pp, SK_OPERATE);
|
||||
pp->KeyPressBits |= SB_OPEN;
|
||||
}
|
||||
|
||||
// ////////////////////////////
|
||||
|
|
Loading…
Reference in a new issue