Handle player state is P_MobjSetState

This commit is contained in:
Gustaf Alhäll 2023-12-23 13:45:16 +01:00
parent 7893d08407
commit ddba6e80f7
No known key found for this signature in database
GPG key ID: 6C1F67D690CDEDFD
13 changed files with 177 additions and 183 deletions

View file

@ -584,11 +584,11 @@ void B_RespawnBot(INT32 playernum)
P_SetOrigin(tails, x, y, z); P_SetOrigin(tails, x, y, z);
if (player->charability == CA_FLY) if (player->charability == CA_FLY)
{ {
P_SetPlayerMobjState(tails, S_PLAY_FLY); P_SetMobjState(tails, S_PLAY_FLY);
tails->player->powers[pw_tailsfly] = (UINT16)-1; tails->player->powers[pw_tailsfly] = (UINT16)-1;
} }
else else
P_SetPlayerMobjState(tails, S_PLAY_FALL); P_SetMobjState(tails, S_PLAY_FALL);
P_SetScale(tails, sonic->scale); P_SetScale(tails, sonic->scale);
tails->destscale = sonic->destscale; tails->destscale = sonic->destscale;
} }

View file

@ -4524,7 +4524,7 @@ void F_TextPromptDrawer(void)
if (players[j].mo->state == states+S_PLAY_STND && players[j].mo->tics != -1)\ if (players[j].mo->state == states+S_PLAY_STND && players[j].mo->tics != -1)\
players[j].mo->tics++;\ players[j].mo->tics++;\
else if (players[j].mo->state == states+S_PLAY_WAIT)\ else if (players[j].mo->state == states+S_PLAY_WAIT)\
P_SetPlayerMobjState(players[j].mo, S_PLAY_STND);\ P_SetMobjState(players[j].mo, S_PLAY_STND);\
}\ }\
} }

View file

@ -641,10 +641,7 @@ static int mobj_set(lua_State *L)
mo->tics = luaL_checkinteger(L, 3); mo->tics = luaL_checkinteger(L, 3);
break; break;
case mobj_state: // set state by enum case mobj_state: // set state by enum
if (mo->player) P_SetMobjState(mo, luaL_checkinteger(L, 3));
P_SetPlayerMobjState(mo, luaL_checkinteger(L, 3));
else
P_SetMobjState(mo, luaL_checkinteger(L, 3));
break; break;
case mobj_flags: // special handling for MF_NOBLOCKMAP and MF_NOSECTOR case mobj_flags: // special handling for MF_NOBLOCKMAP and MF_NOSECTOR
{ {

View file

@ -1019,7 +1019,7 @@ static void OP_CycleThings(INT32 amt)
if (players[0].mo->eflags & MFE_VERTICALFLIP) // correct z when flipped if (players[0].mo->eflags & MFE_VERTICALFLIP) // correct z when flipped
players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale); players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale);
players[0].mo->height = FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale); players[0].mo->height = FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale);
P_SetPlayerMobjState(players[0].mo, S_OBJPLACE_DUMMY); P_SetMobjState(players[0].mo, S_OBJPLACE_DUMMY);
op_currentdoomednum = mobjinfo[op_currentthing].doomednum; op_currentdoomednum = mobjinfo[op_currentthing].doomednum;
} }
@ -1528,7 +1528,7 @@ void Command_ObjectPlace_f(void)
else else
OP_CycleThings(0); // sets all necessary height values without cycling op_currentthing OP_CycleThings(0); // sets all necessary height values without cycling op_currentthing
P_SetPlayerMobjState(players[0].mo, S_OBJPLACE_DUMMY); P_SetMobjState(players[0].mo, S_OBJPLACE_DUMMY);
} }
// Or are we leaving it instead? // Or are we leaving it instead?
else else
@ -1542,7 +1542,7 @@ void Command_ObjectPlace_f(void)
// If still in dummy state, get out of it. // If still in dummy state, get out of it.
if (players[0].mo->state == &states[S_OBJPLACE_DUMMY]) if (players[0].mo->state == &states[S_OBJPLACE_DUMMY])
P_SetPlayerMobjState(players[0].mo, op_oldstate); P_SetMobjState(players[0].mo, op_oldstate);
// Reset everything back to how it was before we entered objectplace. // Reset everything back to how it was before we entered objectplace.
P_UnsetThingPosition(players[0].mo); P_UnsetThingPosition(players[0].mo);

View file

@ -9780,7 +9780,7 @@ void A_SetObjectState(mobj_t *actor)
if (!target->player) if (!target->player)
P_SetMobjState(target, locvar1); P_SetMobjState(target, locvar1);
else else
P_SetPlayerMobjState(target, locvar1); P_SetMobjState(target, locvar1);
} }
} }
@ -13609,7 +13609,7 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing)
player->powers[pw_carry] = CR_DUSTDEVIL; player->powers[pw_carry] = CR_DUSTDEVIL;
player->powers[pw_nocontrol] = 2; player->powers[pw_nocontrol] = 2;
P_SetTarget(&thing->tracer, dustdevil); P_SetTarget(&thing->tracer, dustdevil);
P_SetPlayerMobjState(thing, S_PLAY_PAIN); P_SetMobjState(thing, S_PLAY_PAIN);
if (dist > dragamount) if (dist > dragamount)
{ {
@ -13632,7 +13632,7 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing)
player->powers[pw_nocontrol] = 0; player->powers[pw_nocontrol] = 0;
P_SetTarget(&thing->tracer, NULL); P_SetTarget(&thing->tracer, NULL);
S_StartSound(thing, sfx_wdjump); S_StartSound(thing, sfx_wdjump);
P_SetPlayerMobjState(thing, S_PLAY_FALL); P_SetMobjState(thing, S_PLAY_FALL);
} }
thing->momz = thrust; thing->momz = thrust;

View file

@ -526,7 +526,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
else if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher)) else if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher))
{ {
player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE); player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE);
P_SetPlayerMobjState(toucher, S_PLAY_FALL); P_SetMobjState(toucher, S_PLAY_FALL);
toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3); toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3);
toucher->momx = 7*toucher->momx>>3; toucher->momx = 7*toucher->momx>>3;
toucher->momy = 7*toucher->momy>>3; toucher->momy = 7*toucher->momy>>3;
@ -1246,7 +1246,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(toucher, S_PLAY_FALL); P_SetMobjState(toucher, S_PLAY_FALL);
} }
} }
return; return;
@ -1553,7 +1553,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher)) if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher))
{ {
player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE); player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE);
P_SetPlayerMobjState(toucher, S_PLAY_FALL); P_SetMobjState(toucher, S_PLAY_FALL);
toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3); toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3);
toucher->momx = 7*toucher->momx>>3; toucher->momx = 7*toucher->momx>>3;
toucher->momy = 7*toucher->momy>>3; toucher->momy = 7*toucher->momy>>3;
@ -1604,7 +1604,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher)) if (player->pflags & PF_GLIDING && !P_IsObjectOnGround(toucher))
{ {
player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE); player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE);
P_SetPlayerMobjState(toucher, S_PLAY_FALL); P_SetMobjState(toucher, S_PLAY_FALL);
toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3); toucher->momz += P_MobjFlip(toucher) * (player->speed >> 3);
toucher->momx = 7*toucher->momx>>3; toucher->momx = 7*toucher->momx>>3;
toucher->momy = 7*toucher->momy>>3; toucher->momy = 7*toucher->momy>>3;
@ -1640,7 +1640,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
special->momx = special->momy = 0; special->momx = special->momy = 0;
// Buenos Dias Mandy // Buenos Dias Mandy
P_SetPlayerMobjState(toucher, S_PLAY_STUN); P_SetMobjState(toucher, S_PLAY_STUN);
player->pflags &= ~PF_APPLYAUTOBRAKE; player->pflags &= ~PF_APPLYAUTOBRAKE;
P_ResetPlayer(player); P_ResetPlayer(player);
player->drawangle = special->angle + ANGLE_180; player->drawangle = special->angle + ANGLE_180;
@ -1719,7 +1719,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
{ {
player->powers[pw_carry] = CR_MACESPIN; player->powers[pw_carry] = CR_MACESPIN;
S_StartSound(toucher, sfx_spin); S_StartSound(toucher, sfx_spin);
P_SetPlayerMobjState(toucher, S_PLAY_ROLL); P_SetMobjState(toucher, S_PLAY_ROLL);
} }
else else
player->powers[pw_carry] = CR_GENERIC; player->powers[pw_carry] = CR_GENERIC;
@ -1780,7 +1780,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
{ {
if (player->bot && player->bot != BOT_MPAI && toucher->state-states != S_PLAY_GASP) if (player->bot && player->bot != BOT_MPAI && toucher->state-states != S_PLAY_GASP)
S_StartSound(toucher, special->info->deathsound); // Force it to play a sound for bots S_StartSound(toucher, special->info->deathsound); // Force it to play a sound for bots
P_SetPlayerMobjState(toucher, S_PLAY_GASP); P_SetMobjState(toucher, S_PLAY_GASP);
P_ResetPlayer(player); P_ResetPlayer(player);
} }
@ -1847,7 +1847,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
toucher->momz = toucher->tracer->momz + P_AproxDistance(toucher->tracer->momx, toucher->tracer->momy)/2; toucher->momz = toucher->tracer->momz + P_AproxDistance(toucher->tracer->momx, toucher->tracer->momy)/2;
P_ResetPlayer(player); P_ResetPlayer(player);
player->pflags &= ~PF_APPLYAUTOBRAKE; player->pflags &= ~PF_APPLYAUTOBRAKE;
P_SetPlayerMobjState(toucher, S_PLAY_FALL); P_SetMobjState(toucher, S_PLAY_FALL);
P_SetTarget(&toucher->tracer->target, NULL); P_SetTarget(&toucher->tracer->target, NULL);
P_KillMobj(toucher->tracer, toucher, special, 0); P_KillMobj(toucher->tracer, toucher, special, 0);
P_SetTarget(&toucher->tracer, NULL); P_SetTarget(&toucher->tracer, NULL);
@ -3059,9 +3059,9 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
else if (target->player) else if (target->player)
{ {
if (damagetype == DMG_DROWNED || damagetype == DMG_SPACEDROWN) if (damagetype == DMG_DROWNED || damagetype == DMG_SPACEDROWN)
P_SetPlayerMobjState(target, target->info->xdeathstate); P_SetMobjState(target, target->info->xdeathstate);
else else
P_SetPlayerMobjState(target, target->info->deathstate); P_SetMobjState(target, target->info->deathstate);
} }
else else
#ifdef DEBUG_NULL_DEATHSTATE #ifdef DEBUG_NULL_DEATHSTATE
@ -3115,7 +3115,7 @@ static void P_NiGHTSDamage(mobj_t *target, mobj_t *source)
} }
player->powers[pw_flashing] = flashingtics; player->powers[pw_flashing] = flashingtics;
P_SetPlayerMobjState(target, S_PLAY_NIGHTS_STUN); P_SetMobjState(target, S_PLAY_NIGHTS_STUN);
S_StartSound(target, sfx_nghurt); S_StartSound(target, sfx_nghurt);
player->mo->spriteroll = 0; player->mo->spriteroll = 0;
@ -3336,7 +3336,7 @@ static void P_KillPlayer(player_t *player, mobj_t *source, INT32 damage)
if (!player->spectator) if (!player->spectator)
player->mo->flags2 &= ~MF2_DONTDRAW; player->mo->flags2 &= ~MF2_DONTDRAW;
P_SetPlayerMobjState(player->mo, player->mo->info->deathstate); P_SetMobjState(player->mo, player->mo->info->deathstate);
if ((gametyperules & GTR_TEAMFLAGS) && (player->gotflag & (GF_REDFLAG|GF_BLUEFLAG))) if ((gametyperules & GTR_TEAMFLAGS) && (player->gotflag & (GF_REDFLAG|GF_BLUEFLAG)))
{ {
P_PlayerFlagBurst(player, false); P_PlayerFlagBurst(player, false);
@ -3410,7 +3410,7 @@ static void P_SuperDamage(player_t *player, mobj_t *inflictor, mobj_t *source, I
P_InstaThrust(player->mo, ang, fallbackspeed); P_InstaThrust(player->mo, ang, fallbackspeed);
P_SetPlayerMobjState(player->mo, S_PLAY_STUN); P_SetMobjState(player->mo, S_PLAY_STUN);
P_ResetPlayer(player); P_ResetPlayer(player);

View file

@ -296,7 +296,6 @@ void P_PrecipitationEffects(void);
void P_RemoveMobj(mobj_t *th); void P_RemoveMobj(mobj_t *th);
boolean P_MobjWasRemoved(mobj_t *th); boolean P_MobjWasRemoved(mobj_t *th);
void P_RemoveSavegameMobj(mobj_t *th); void P_RemoveSavegameMobj(mobj_t *th);
boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state);
boolean P_SetMobjState(mobj_t *mobj, statenum_t state); boolean P_SetMobjState(mobj_t *mobj, statenum_t state);
void P_RunShields(void); void P_RunShields(void);
void P_RunOverlays(void); void P_RunOverlays(void);

View file

@ -264,7 +264,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
UINT8 secondjump = object->player->secondjump; UINT8 secondjump = object->player->secondjump;
UINT16 tailsfly = object->player->powers[pw_tailsfly]; UINT16 tailsfly = object->player->powers[pw_tailsfly];
if (object->player->pflags & PF_GLIDING) if (object->player->pflags & PF_GLIDING)
P_SetPlayerMobjState(object, S_PLAY_FALL); P_SetMobjState(object, S_PLAY_FALL);
P_ResetPlayer(object->player); P_ResetPlayer(object->player);
object->player->pflags |= pflags; object->player->pflags |= pflags;
object->player->secondjump = secondjump; object->player->secondjump = secondjump;
@ -403,7 +403,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
} }
if (object->player->pflags & PF_GLIDING) if (object->player->pflags & PF_GLIDING)
P_SetPlayerMobjState(object, S_PLAY_FALL); P_SetMobjState(object, S_PLAY_FALL);
if ((spring->info->painchance == 3)) if ((spring->info->painchance == 3))
{ {
if (!(pflags = (object->player->pflags & PF_SPINNING)) && if (!(pflags = (object->player->pflags & PF_SPINNING)) &&
@ -411,11 +411,11 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
|| (spring->flags2 & MF2_AMBUSH))) || (spring->flags2 & MF2_AMBUSH)))
{ {
pflags = PF_SPINNING; pflags = PF_SPINNING;
P_SetPlayerMobjState(object, S_PLAY_ROLL); P_SetMobjState(object, S_PLAY_ROLL);
S_StartSound(object, sfx_spin); S_StartSound(object, sfx_spin);
} }
else else
P_SetPlayerMobjState(object, S_PLAY_ROLL); P_SetMobjState(object, S_PLAY_ROLL);
} }
else else
{ {
@ -424,7 +424,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
pflags = object->player->pflags & (PF_STARTJUMP | PF_JUMPED | PF_NOJUMPDAMAGE | PF_SPINNING | PF_THOKKED | PF_BOUNCING); // I still need these. pflags = object->player->pflags & (PF_STARTJUMP | PF_JUMPED | PF_NOJUMPDAMAGE | PF_SPINNING | PF_THOKKED | PF_BOUNCING); // I still need these.
if (wasSpindashing) // Ensure we're in the rolling state, and not spindash. if (wasSpindashing) // Ensure we're in the rolling state, and not spindash.
P_SetPlayerMobjState(object, S_PLAY_ROLL); P_SetMobjState(object, S_PLAY_ROLL);
if (object->player->charability == CA_GLIDEANDCLIMB && object->player->skidtime && (pflags & PF_JUMPED)) if (object->player->charability == CA_GLIDEANDCLIMB && object->player->skidtime && (pflags & PF_JUMPED))
{ {
@ -439,7 +439,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
if (spring->info->painchance == 1) // For all those ancient, SOC'd abilities. if (spring->info->painchance == 1) // For all those ancient, SOC'd abilities.
{ {
object->player->pflags |= P_GetJumpFlags(object->player); object->player->pflags |= P_GetJumpFlags(object->player);
P_SetPlayerMobjState(object, S_PLAY_JUMP); P_SetMobjState(object, S_PLAY_JUMP);
} }
else if ((spring->info->painchance == 2) || ((spring->info->painchance != 3) && (pflags & PF_BOUNCING))) // Adding momentum only. else if ((spring->info->painchance == 2) || ((spring->info->painchance != 3) && (pflags & PF_BOUNCING))) // Adding momentum only.
{ {
@ -456,16 +456,16 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
object->player->secondjump = secondjump; object->player->secondjump = secondjump;
} }
else if (object->player->dashmode >= DASHMODE_THRESHOLD) else if (object->player->dashmode >= DASHMODE_THRESHOLD)
P_SetPlayerMobjState(object, S_PLAY_DASH); P_SetMobjState(object, S_PLAY_DASH);
else if (P_IsObjectOnGround(object)) else if (P_IsObjectOnGround(object))
P_SetPlayerMobjState(object, (horizspeed >= FixedMul(object->player->runspeed, object->scale)) ? S_PLAY_RUN : S_PLAY_WALK); P_SetMobjState(object, (horizspeed >= FixedMul(object->player->runspeed, object->scale)) ? S_PLAY_RUN : S_PLAY_WALK);
else else
P_SetPlayerMobjState(object, (object->momz > 0) ? S_PLAY_SPRING : S_PLAY_FALL); P_SetMobjState(object, (object->momz > 0) ? S_PLAY_SPRING : S_PLAY_FALL);
} }
else if (P_MobjFlip(object)*vertispeed > 0) else if (P_MobjFlip(object)*vertispeed > 0)
P_SetPlayerMobjState(object, S_PLAY_SPRING); P_SetMobjState(object, S_PLAY_SPRING);
else else
P_SetPlayerMobjState(object, S_PLAY_FALL); P_SetMobjState(object, S_PLAY_FALL);
} }
else if (horizspeed else if (horizspeed
&& object->tracer && object->tracer
@ -547,7 +547,7 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object)
if (p && !p->powers[pw_tailsfly] && !p->powers[pw_carry]) // doesn't reset anim for Tails' flight if (p && !p->powers[pw_tailsfly] && !p->powers[pw_carry]) // doesn't reset anim for Tails' flight
{ {
P_ResetPlayer(p); P_ResetPlayer(p);
P_SetPlayerMobjState(object, S_PLAY_FALL); P_SetMobjState(object, S_PLAY_FALL);
P_SetTarget(&object->tracer, spring); P_SetTarget(&object->tracer, spring);
p->powers[pw_carry] = CR_FAN; p->powers[pw_carry] = CR_FAN;
} }
@ -565,7 +565,7 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object)
{ {
P_ResetPlayer(p); P_ResetPlayer(p);
if (p->panim != PA_FALL) if (p->panim != PA_FALL)
P_SetPlayerMobjState(object, S_PLAY_FALL); P_SetMobjState(object, S_PLAY_FALL);
} }
break; break;
default: default:
@ -1047,7 +1047,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
thing->flags2 &= ~MF2_DONTDRAW; // don't leave the rock invisible if it was flashing prior to boarding thing->flags2 &= ~MF2_DONTDRAW; // don't leave the rock invisible if it was flashing prior to boarding
P_SetTarget(&thing->tracer, tmthing); P_SetTarget(&thing->tracer, tmthing);
P_ResetPlayer(tmthing->player); P_ResetPlayer(tmthing->player);
P_SetPlayerMobjState(tmthing, S_PLAY_WALK); P_SetMobjState(tmthing, S_PLAY_WALK);
tmthing->player->powers[pw_carry] = CR_ROLLOUT; tmthing->player->powers[pw_carry] = CR_ROLLOUT;
P_SetTarget(&tmthing->tracer, thing); P_SetTarget(&tmthing->tracer, thing);
if (!P_IsObjectOnGround(thing)) if (!P_IsObjectOnGround(thing))

View file

@ -177,7 +177,7 @@ static void P_CyclePlayerMobjState(mobj_t *mobj)
// you can cycle through multiple states in a tic // you can cycle through multiple states in a tic
if (!mobj->tics && mobj->state) if (!mobj->tics && mobj->state)
if (!P_SetPlayerMobjState(mobj, mobj->state->nextstate)) if (!P_SetMobjState(mobj, mobj->state->nextstate))
return; // freed itself return; // freed itself
} }
} }
@ -188,7 +188,7 @@ static void P_CyclePlayerMobjState(mobj_t *mobj)
// //
// Separate from P_SetMobjState because of the pw_flashing check and Super states // Separate from P_SetMobjState because of the pw_flashing check and Super states
// //
boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state) static boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state)
{ {
state_t *st; state_t *st;
player_t *player = mobj->player; player_t *player = mobj->player;
@ -514,10 +514,8 @@ boolean P_SetMobjState(mobj_t *mobj, statenum_t state)
statenum_t i = state; // initial state statenum_t i = state; // initial state
statenum_t tempstate[NUMSTATES]; // for use with recursion statenum_t tempstate[NUMSTATES]; // for use with recursion
#ifdef PARANOIA
if (mobj->player != NULL) if (mobj->player != NULL)
I_Error("P_SetMobjState used for player mobj. Use P_SetPlayerMobjState instead!\n(State called: %d)", state); P_SetPlayerMobjState(mobj, state);
#endif
if (recursion++) // if recursion detected, if (recursion++) // if recursion detected,
memset(seenstate = tempstate, 0, sizeof tempstate); // clear state table memset(seenstate = tempstate, 0, sizeof tempstate); // clear state table
@ -1648,7 +1646,7 @@ static void P_XYFriction(mobj_t *mo, fixed_t oldx, fixed_t oldy)
{ {
// if in a walking frame, stop moving // if in a walking frame, stop moving
if (player->panim == PA_WALK) if (player->panim == PA_WALK)
P_SetPlayerMobjState(mo, S_PLAY_STND); P_SetMobjState(mo, S_PLAY_STND);
mo->momx = player->cmomx; mo->momx = player->cmomx;
mo->momy = player->cmomy; mo->momy = player->cmomy;
} }
@ -2974,7 +2972,7 @@ void P_PlayerZMovement(mobj_t *mo)
} }
// Get up if you fell. // Get up if you fell.
if (mo->player->panim == PA_PAIN) if (mo->player->panim == PA_PAIN)
P_SetPlayerMobjState(mo, S_PLAY_WALK); P_SetMobjState(mo, S_PLAY_WALK);
if (!mo->standingslope && (mo->eflags & MFE_VERTICALFLIP ? tmceilingslope : tmfloorslope)) { if (!mo->standingslope && (mo->eflags & MFE_VERTICALFLIP ? tmceilingslope : tmfloorslope)) {
// Handle landing on slope during Z movement // Handle landing on slope during Z movement
@ -3957,7 +3955,7 @@ static void P_PlayerMobjThinker(mobj_t *mobj)
{ {
mobj->player->secondjump = 0; mobj->player->secondjump = 0;
mobj->player->powers[pw_tailsfly] = 0; mobj->player->powers[pw_tailsfly] = 0;
P_SetPlayerMobjState(mobj, S_PLAY_WALK); P_SetMobjState(mobj, S_PLAY_WALK);
} }
#endif #endif
mobj->eflags &= ~MFE_JUSTHITFLOOR; mobj->eflags &= ~MFE_JUSTHITFLOOR;
@ -7549,7 +7547,7 @@ static void P_RosySceneryThink(mobj_t *mobj)
if (stat == S_ROSY_HUG) if (stat == S_ROSY_HUG)
{ {
if (player->panim != PA_IDLE) if (player->panim != PA_IDLE)
P_SetPlayerMobjState(mobj->target, S_PLAY_STND); P_SetMobjState(mobj->target, S_PLAY_STND);
player->pflags |= PF_STASIS; player->pflags |= PF_STASIS;
} }
@ -11771,9 +11769,9 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing)
mobj->flags2 |= MF2_OBJECTFLIP; mobj->flags2 |= MF2_OBJECTFLIP;
} }
if (mthing->args[0]) if (mthing->args[0])
P_SetPlayerMobjState(mobj, S_PLAY_FALL); P_SetMobjState(mobj, S_PLAY_FALL);
else if (metalrecording) else if (metalrecording)
P_SetPlayerMobjState(mobj, S_PLAY_WAIT); P_SetMobjState(mobj, S_PLAY_WAIT);
} }
else else
z = floor; z = floor;

View file

@ -2735,7 +2735,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
mo->player->rmomx = mo->player->rmomy = 1; mo->player->rmomx = mo->player->rmomy = 1;
mo->player->cmomx = mo->player->cmomy = 0; mo->player->cmomx = mo->player->cmomy = 0;
P_ResetPlayer(mo->player); P_ResetPlayer(mo->player);
P_SetPlayerMobjState(mo, S_PLAY_STND); P_SetMobjState(mo, S_PLAY_STND);
// Reset bot too. // Reset bot too.
if (bot) { if (bot) {
@ -2746,7 +2746,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
bot->player->rmomx = bot->player->rmomy = 1; bot->player->rmomx = bot->player->rmomy = 1;
bot->player->cmomx = bot->player->cmomy = 0; bot->player->cmomx = bot->player->cmomy = 0;
P_ResetPlayer(bot->player); P_ResetPlayer(bot->player);
P_SetPlayerMobjState(bot, S_PLAY_STND); P_SetMobjState(bot, S_PLAY_STND);
} }
} }
break; break;
@ -4566,7 +4566,7 @@ static void P_ProcessSpeedPad(player_t *player, sector_t *sector, sector_t *rove
if (!(player->pflags & PF_SPINNING)) if (!(player->pflags & PF_SPINNING))
player->pflags |= PF_SPINNING; player->pflags |= PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
} }
player->powers[pw_flashing] = TICRATE/3; player->powers[pw_flashing] = TICRATE/3;
@ -4744,7 +4744,7 @@ static void P_ProcessZoomTube(player_t *player, mtag_t sectag, boolean end)
if (player->mo->state-states != S_PLAY_ROLL) if (player->mo->state-states != S_PLAY_ROLL)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_spin); S_StartSound(player->mo, sfx_spin);
} }
} }
@ -4958,7 +4958,7 @@ static void P_ProcessRopeHang(player_t *player, mtag_t sectag)
player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_GLIDING|PF_BOUNCING|PF_SLIDING|PF_CANCARRY); player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_GLIDING|PF_BOUNCING|PF_SLIDING|PF_CANCARRY);
player->climbing = 0; player->climbing = 0;
P_SetThingPosition(player->mo); P_SetThingPosition(player->mo);
P_SetPlayerMobjState(player->mo, S_PLAY_RIDE); P_SetMobjState(player->mo, S_PLAY_RIDE);
} }
static boolean P_SectorHasSpecial(sector_t *sec) static boolean P_SectorHasSpecial(sector_t *sec)
@ -5017,7 +5017,7 @@ static void P_EvaluateSpecialFlags(player_t *player, sector_t *sector, sector_t
if (!player->powers[pw_carry]) if (!player->powers[pw_carry])
{ {
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
P_SetTarget(&player->mo->tracer, player->mo); P_SetTarget(&player->mo->tracer, player->mo);
player->powers[pw_carry] = CR_FAN; player->powers[pw_carry] = CR_FAN;
} }
@ -5032,7 +5032,7 @@ static void P_EvaluateSpecialFlags(player_t *player, sector_t *sector, sector_t
if (!(player->pflags & PF_SPINNING)) if (!(player->pflags & PF_SPINNING))
{ {
player->pflags |= PF_SPINNING; player->pflags |= PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartAttackSound(player->mo, sfx_spin); S_StartAttackSound(player->mo, sfx_spin);
if (abs(player->rmomx) < FixedMul(5*FRACUNIT, player->mo->scale) if (abs(player->rmomx) < FixedMul(5*FRACUNIT, player->mo->scale)

View file

@ -96,7 +96,7 @@ void P_MixUp(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle,
P_ClearStarPost(starpostnum); P_ClearStarPost(starpostnum);
P_ResetPlayer(thing->player); P_ResetPlayer(thing->player);
P_SetPlayerMobjState(thing, S_PLAY_STND); P_SetMobjState(thing, S_PLAY_STND);
P_FlashPal(thing->player, PAL_MIXUP, 10); P_FlashPal(thing->player, PAL_MIXUP, 10);
} }
@ -153,7 +153,7 @@ boolean P_Teleport(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle
thing->player->rmomx = thing->player->rmomy = 0; thing->player->rmomx = thing->player->rmomy = 0;
thing->player->speed = 0; thing->player->speed = 0;
P_ResetPlayer(thing->player); P_ResetPlayer(thing->player);
P_SetPlayerMobjState(thing, S_PLAY_STND); P_SetMobjState(thing, S_PLAY_STND);
thing->reactiontime = TICRATE/2; // don't move for about half a second thing->reactiontime = TICRATE/2; // don't move for about half a second
thing->player->drawangle = angle; thing->player->drawangle = angle;

View file

@ -694,7 +694,7 @@ static void P_DeNightserizePlayer(player_t *player)
else if (player == &players[secondarydisplayplayer]) else if (player == &players[secondarydisplayplayer])
localaiming2 = 0; localaiming2 = 0;
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
// If in a special stage, add some preliminary exit time. // If in a special stage, add some preliminary exit time.
if (G_IsSpecialStage(gamemap)) if (G_IsSpecialStage(gamemap))
@ -948,7 +948,7 @@ void P_NightserizePlayer(player_t *player, INT32 nighttime)
P_RunNightserizeExecutors(player->mo); P_RunNightserizeExecutors(player->mo);
player->powers[pw_carry] = CR_NIGHTSMODE; player->powers[pw_carry] = CR_NIGHTSMODE;
P_SetPlayerMobjState(player->mo, S_PLAY_NIGHTS_TRANS1); P_SetMobjState(player->mo, S_PLAY_NIGHTS_TRANS1);
} }
pflags_t P_GetJumpFlags(player_t *player) pflags_t P_GetJumpFlags(player_t *player)
@ -994,7 +994,7 @@ void P_DoPlayerPain(player_t *player, mobj_t *source, mobj_t *inflictor)
fixed_t fallbackspeed; fixed_t fallbackspeed;
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, player->mo->info->painstate); P_SetMobjState(player->mo, player->mo->info->painstate);
if (player->mo->eflags & MFE_VERTICALFLIP) if (player->mo->eflags & MFE_VERTICALFLIP)
player->mo->z--; player->mo->z--;
@ -1345,7 +1345,7 @@ void P_DoSuperTransformation(player_t *player, boolean giverings)
player->mo->momx = player->mo->momy = player->mo->momz = player->cmomx = player->cmomy = player->rmomx = player->rmomy = 0; player->mo->momx = player->mo->momy = player->mo->momz = player->cmomx = player->cmomy = player->rmomx = player->rmomy = 0;
// Transformation animation // Transformation animation
P_SetPlayerMobjState(player->mo, S_PLAY_SUPER_TRANS1); P_SetMobjState(player->mo, S_PLAY_SUPER_TRANS1);
if (giverings && player->rings < 50) if (giverings && player->rings < 50)
player->rings = 50; player->rings = 50;
@ -1398,7 +1398,7 @@ static void P_DoSuperDetransformation(player_t *player)
player->powers[pw_flashing] = flashingtics-1; player->powers[pw_flashing] = flashingtics-1;
if (player->mo->sprite2 & FF_SPR2SUPER) if (player->mo->sprite2 & FF_SPR2SUPER)
P_SetPlayerMobjState(player->mo, player->mo->state-states); P_SetMobjState(player->mo, player->mo->state-states);
// Inform the netgame that the champion has fallen in the heat of battle. // Inform the netgame that the champion has fallen in the heat of battle.
if (!G_CoopGametype()) if (!G_CoopGametype())
@ -2265,12 +2265,12 @@ void P_DoPlayerExit(player_t *player)
{ {
player->climbing = 0; player->climbing = 0;
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
else if (player->pflags & PF_STARTDASH) else if (player->pflags & PF_STARTDASH)
{ {
player->pflags &= ~PF_STARTDASH; player->pflags &= ~PF_STARTDASH;
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
player->powers[pw_underwater] = 0; player->powers[pw_underwater] = 0;
player->powers[pw_spacetime] = 0; player->powers[pw_spacetime] = 0;
@ -2359,7 +2359,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
if (!(player->pflags & PF_STARTDASH) && player->panim != PA_ROLL && player->panim != PA_ETC if (!(player->pflags & PF_STARTDASH) && player->panim != PA_ROLL && player->panim != PA_ETC
&& player->panim != PA_ABILITY && player->panim != PA_ABILITY2) && player->panim != PA_ABILITY && player->panim != PA_ABILITY2)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_spin); S_StartSound(player->mo, sfx_spin);
} }
} }
@ -2368,7 +2368,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
if (dorollstuff) if (dorollstuff)
{ {
player->skidtime = TICRATE; player->skidtime = TICRATE;
P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); P_SetMobjState(player->mo, S_PLAY_GLIDE);
P_SpawnSkidDust(player, player->mo->radius, true); // make sure the player knows they landed P_SpawnSkidDust(player, player->mo->radius, true); // make sure the player knows they landed
player->mo->tics = -1; player->mo->tics = -1;
} }
@ -2381,7 +2381,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
if (player->mo->state-states != S_PLAY_GLIDE_LANDING) if (player->mo->state-states != S_PLAY_GLIDE_LANDING)
{ {
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE_LANDING); P_SetMobjState(player->mo, S_PLAY_GLIDE_LANDING);
player->pflags |= PF_STASIS; player->pflags |= PF_STASIS;
if (player->speed > FixedMul(player->runspeed, player->mo->scale)) if (player->speed > FixedMul(player->runspeed, player->mo->scale))
player->skidtime += player->mo->tics; player->skidtime += player->mo->tics;
@ -2402,7 +2402,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
if (player->mo->state-states != S_PLAY_MELEE_LANDING) if (player->mo->state-states != S_PLAY_MELEE_LANDING)
{ {
mobjtype_t type = player->revitem; mobjtype_t type = player->revitem;
P_SetPlayerMobjState(player->mo, S_PLAY_MELEE_LANDING); P_SetMobjState(player->mo, S_PLAY_MELEE_LANDING);
player->mo->tics = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS; player->mo->tics = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS;
S_StartSound(player->mo, sfx_s3k8b); S_StartSound(player->mo, sfx_s3k8b);
player->pflags |= PF_FULLSTASIS; player->pflags |= PF_FULLSTASIS;
@ -2465,28 +2465,28 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
if (player->cmomx || player->cmomy) if (player->cmomx || player->cmomy)
{ {
if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim != PA_DASH) if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim != PA_DASH)
P_SetPlayerMobjState(player->mo, S_PLAY_DASH); P_SetMobjState(player->mo, S_PLAY_DASH);
else if (player->speed >= runspd else if (player->speed >= runspd
&& (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN))
P_SetPlayerMobjState(player->mo, S_PLAY_RUN); P_SetMobjState(player->mo, S_PLAY_RUN);
else if ((player->rmomx || player->rmomy) else if ((player->rmomx || player->rmomy)
&& (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT))
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else if (!player->rmomx && !player->rmomy && player->panim != PA_IDLE) else if (!player->rmomx && !player->rmomy && player->panim != PA_IDLE)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
else else
{ {
if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim != PA_DASH) if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim != PA_DASH)
P_SetPlayerMobjState(player->mo, S_PLAY_DASH); P_SetMobjState(player->mo, S_PLAY_DASH);
else if (player->speed >= runspd else if (player->speed >= runspd
&& (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN))
P_SetPlayerMobjState(player->mo, S_PLAY_RUN); P_SetMobjState(player->mo, S_PLAY_RUN);
else if ((player->mo->momx || player->mo->momy) else if ((player->mo->momx || player->mo->momy)
&& (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT))
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else if (!player->mo->momx && !player->mo->momy && player->panim != PA_IDLE) else if (!player->mo->momx && !player->mo->momy && player->panim != PA_IDLE)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
} }
@ -2516,7 +2516,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
? 6*FRACUNIT/5 ? 6*FRACUNIT/5
: 5*FRACUNIT/2, : 5*FRACUNIT/2,
false); false);
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
player->mo->momx = player->mo->momy = 0; player->mo->momx = player->mo->momy = 0;
clipmomz = false; clipmomz = false;
} }
@ -3648,9 +3648,9 @@ static void P_DoClimbing(player_t *player)
if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz) if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz)
&& player->mo->state-states != S_PLAY_CLIMB) && player->mo->state-states != S_PLAY_CLIMB)
P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB); P_SetMobjState(player->mo, S_PLAY_CLIMB);
else if ((!(player->mo->momx || player->mo->momy || player->mo->momz) || !climb) && player->mo->state-states != S_PLAY_CLING) else if ((!(player->mo->momx || player->mo->momy || player->mo->momz) || !climb) && player->mo->state-states != S_PLAY_CLING)
P_SetPlayerMobjState(player->mo, S_PLAY_CLING); P_SetMobjState(player->mo, S_PLAY_CLING);
if (!floorclimb) if (!floorclimb)
{ {
@ -3665,14 +3665,14 @@ static void P_DoClimbing(player_t *player)
player->climbing = 0; player->climbing = 0;
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
if (skyclimber) if (skyclimber)
{ {
player->climbing = 0; player->climbing = 0;
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
} }
@ -3683,15 +3683,15 @@ static void P_DoClimbing(player_t *player)
if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz) if (player->climbing && climb && (player->mo->momx || player->mo->momy || player->mo->momz)
&& player->mo->state-states != S_PLAY_CLIMB) && player->mo->state-states != S_PLAY_CLIMB)
P_SetPlayerMobjState(player->mo, S_PLAY_CLIMB); P_SetMobjState(player->mo, S_PLAY_CLIMB);
else if ((!(player->mo->momx || player->mo->momy || player->mo->momz) || !climb) && player->mo->state-states != S_PLAY_CLING) else if ((!(player->mo->momx || player->mo->momy || player->mo->momz) || !climb) && player->mo->state-states != S_PLAY_CLING)
P_SetPlayerMobjState(player->mo, S_PLAY_CLING); P_SetMobjState(player->mo, S_PLAY_CLING);
if (cmd->buttons & BT_SPIN && !(player->pflags & PF_JUMPSTASIS)) if (cmd->buttons & BT_SPIN && !(player->pflags & PF_JUMPSTASIS))
{ {
player->climbing = 0; player->climbing = 0;
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
P_SetObjectMomZ(player->mo, 4*FRACUNIT, false); P_SetObjectMomZ(player->mo, 4*FRACUNIT, false);
P_Thrust(player->mo, player->mo->angle, FixedMul(-4*FRACUNIT, player->mo->scale)); P_Thrust(player->mo, player->mo->angle, FixedMul(-4*FRACUNIT, player->mo->scale));
} }
@ -3707,12 +3707,12 @@ static void P_DoClimbing(player_t *player)
} }
if (player->climbing == 0) if (player->climbing == 0)
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
if (player->climbing && P_IsObjectOnGround(player->mo)) if (player->climbing && P_IsObjectOnGround(player->mo))
{ {
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
} }
@ -4074,10 +4074,10 @@ teeterdone:
if (teeter) if (teeter)
{ {
if (player->panim == PA_IDLE) if (player->panim == PA_IDLE)
P_SetPlayerMobjState(player->mo, S_PLAY_EDGE); P_SetMobjState(player->mo, S_PLAY_EDGE);
} }
else if (player->panim == PA_EDGE) else if (player->panim == PA_EDGE)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
// //
@ -4602,7 +4602,7 @@ void P_DoJump(player_t *player, boolean soundandstate)
if (!player->spectator) if (!player->spectator)
S_StartSound(player->mo, sfx_jump); // Play jump sound! S_StartSound(player->mo, sfx_jump); // Play jump sound!
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
} }
@ -4672,7 +4672,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
player->mo->momy = player->cmomy; player->mo->momy = player->cmomy;
player->pflags |= (PF_SPINDOWN|PF_STARTDASH|PF_SPINNING); player->pflags |= (PF_SPINDOWN|PF_STARTDASH|PF_SPINNING);
player->dashspeed = player->mindash; player->dashspeed = player->mindash;
P_SetPlayerMobjState(player->mo, S_PLAY_SPINDASH); P_SetMobjState(player->mo, S_PLAY_SPINDASH);
if (!player->spectator) if (!player->spectator)
S_StartSound(player->mo, sfx_spndsh); // Make the rev sound! S_StartSound(player->mo, sfx_spndsh); // Make the rev sound!
} }
@ -4682,7 +4682,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
if (player->speed > 5*player->mo->scale) if (player->speed > 5*player->mo->scale)
{ {
player->pflags &= ~PF_STARTDASH; player->pflags &= ~PF_STARTDASH;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_spin); S_StartSound(player->mo, sfx_spin);
break; break;
} }
@ -4715,7 +4715,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
|| !canstand) && !(player->pflags & (PF_SPINDOWN|PF_SPINNING))) || !canstand) && !(player->pflags & (PF_SPINDOWN|PF_SPINNING)))
{ {
player->pflags |= (PF_SPINDOWN|PF_SPINNING); player->pflags |= (PF_SPINDOWN|PF_SPINNING);
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
if (!player->spectator) if (!player->spectator)
S_StartSound(player->mo, sfx_spin); S_StartSound(player->mo, sfx_spin);
} }
@ -4731,12 +4731,12 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
{ {
if (player->dashspeed) if (player->dashspeed)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
P_InstaThrust(player->mo, player->mo->angle, (player->speed = FixedMul(player->dashspeed, player->mo->scale))); // catapult forward ho!! P_InstaThrust(player->mo, player->mo->angle, (player->speed = FixedMul(player->dashspeed, player->mo->scale))); // catapult forward ho!!
} }
else else
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
player->pflags &= ~PF_SPINNING; player->pflags &= ~PF_SPINNING;
} }
@ -4768,7 +4768,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
{ {
mobj_t *bullet; mobj_t *bullet;
P_SetPlayerMobjState(player->mo, S_PLAY_FIRE); P_SetMobjState(player->mo, S_PLAY_FIRE);
#define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem].height)/2) #define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem].height)/2)
if (lockon) if (lockon)
@ -4812,7 +4812,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
P_DoJump(player, false); P_DoJump(player, false);
player->pflags &= ~PF_STARTJUMP; player->pflags &= ~PF_STARTJUMP;
player->mo->momz = FixedMul(player->mo->momz, 3*FRACUNIT/2); // NOT 1.5 times the jump height, but 2.25 times. player->mo->momz = FixedMul(player->mo->momz, 3*FRACUNIT/2); // NOT 1.5 times the jump height, but 2.25 times.
P_SetPlayerMobjState(player->mo, S_PLAY_TWINSPIN); P_SetMobjState(player->mo, S_PLAY_TWINSPIN);
S_StartSound(player->mo, sfx_s3k8b); S_StartSound(player->mo, sfx_s3k8b);
} }
else else
@ -4838,7 +4838,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
} }
player->mo->momx += player->cmomx; player->mo->momx += player->cmomx;
player->mo->momy += player->cmomy; player->mo->momy += player->cmomy;
P_SetPlayerMobjState(player->mo, S_PLAY_MELEE); P_SetMobjState(player->mo, S_PLAY_MELEE);
player->powers[pw_strong] = STR_MELEE; player->powers[pw_strong] = STR_MELEE;
S_StartSound(player->mo, sfx_s3k42); S_StartSound(player->mo, sfx_s3k42);
} }
@ -4862,7 +4862,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
{ {
player->skidtime = 0; player->skidtime = 0;
player->pflags &= ~PF_SPINNING; player->pflags &= ~PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
player->mo->momx = player->cmomx; player->mo->momx = player->cmomx;
player->mo->momy = player->cmomy; player->mo->momy = player->cmomy;
} }
@ -4911,13 +4911,13 @@ void P_DoJumpShield(player_t *player)
#undef limitangle #undef limitangle
#undef numangles #undef numangles
player->pflags &= ~PF_NOJUMPDAMAGE; player->pflags &= ~PF_NOJUMPDAMAGE;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_s3k45); S_StartSound(player->mo, sfx_s3k45);
} }
else else
{ {
player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE); player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE);
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
S_StartSound(player->mo, sfx_wdjump); S_StartSound(player->mo, sfx_wdjump);
} }
} }
@ -4934,9 +4934,9 @@ void P_DoBubbleBounce(player_t *player)
P_MobjCheckWater(player->mo); P_MobjCheckWater(player->mo);
P_DoJump(player, false); P_DoJump(player, false);
if (player->charflags & SF_NOJUMPSPIN) if (player->charflags & SF_NOJUMPSPIN)
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
else else
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
player->pflags |= PF_THOKKED; player->pflags |= PF_THOKKED;
player->pflags &= ~PF_STARTJUMP; player->pflags &= ~PF_STARTJUMP;
player->secondjump = UINT8_MAX; player->secondjump = UINT8_MAX;
@ -4973,7 +4973,7 @@ void P_DoAbilityBounce(player_t *player, boolean changemomz)
} }
S_StartSound(player->mo, sfx_boingf); S_StartSound(player->mo, sfx_boingf);
P_SetPlayerMobjState(player->mo, S_PLAY_BOUNCE_LANDING); P_SetMobjState(player->mo, S_PLAY_BOUNCE_LANDING);
player->pflags |= PF_BOUNCING|PF_THOKKED; player->pflags |= PF_BOUNCING|PF_THOKKED;
} }
@ -5086,7 +5086,7 @@ static void P_DoTwinSpin(player_t *player)
player->pflags |= P_GetJumpFlags(player) | PF_THOKKED; player->pflags |= P_GetJumpFlags(player) | PF_THOKKED;
S_StartSound(player->mo, sfx_s3k42); S_StartSound(player->mo, sfx_s3k42);
player->mo->frame = 0; player->mo->frame = 0;
P_SetPlayerMobjState(player->mo, S_PLAY_TWINSPIN); P_SetMobjState(player->mo, S_PLAY_TWINSPIN);
player->powers[pw_strong] = STR_TWINSPIN; player->powers[pw_strong] = STR_TWINSPIN;
} }
@ -5160,7 +5160,7 @@ static boolean P_PlayerShieldThink(player_t *player, ticcmd_t *cmd, mobj_t *lock
{ {
player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockonshield->x, lockonshield->y); player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockonshield->x, lockonshield->y);
player->pflags &= ~PF_NOJUMPDAMAGE; player->pflags &= ~PF_NOJUMPDAMAGE;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_s3k40); S_StartSound(player->mo, sfx_s3k40);
player->homing = 3*TICRATE; player->homing = 3*TICRATE;
} }
@ -5184,7 +5184,7 @@ static boolean P_PlayerShieldThink(player_t *player, ticcmd_t *cmd, mobj_t *lock
player->mo->momx -= (player->mo->momx/3); player->mo->momx -= (player->mo->momx/3);
player->mo->momy -= (player->mo->momy/3); player->mo->momy -= (player->mo->momy/3);
player->pflags &= ~PF_NOJUMPDAMAGE; player->pflags &= ~PF_NOJUMPDAMAGE;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_s3k44); S_StartSound(player->mo, sfx_s3k44);
} }
player->secondjump = 0; player->secondjump = 0;
@ -5197,7 +5197,7 @@ static boolean P_PlayerShieldThink(player_t *player, ticcmd_t *cmd, mobj_t *lock
P_Thrust(player->mo, player->mo->angle, FixedMul(30*FRACUNIT - FixedSqrt(FixedDiv(player->speed, player->mo->scale)), player->mo->scale)); P_Thrust(player->mo, player->mo->angle, FixedMul(30*FRACUNIT - FixedSqrt(FixedDiv(player->speed, player->mo->scale)), player->mo->scale));
player->drawangle = player->mo->angle; player->drawangle = player->mo->angle;
player->pflags &= ~(PF_NOJUMPDAMAGE|PF_SPINNING); player->pflags &= ~(PF_NOJUMPDAMAGE|PF_SPINNING);
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
S_StartSound(player->mo, sfx_s3k43); S_StartSound(player->mo, sfx_s3k43);
default: default:
break; break;
@ -5259,9 +5259,9 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
if (player->panim != PA_RUN && player->panim != PA_WALK) if (player->panim != PA_RUN && player->panim != PA_WALK)
{ {
if (player->speed >= FixedMul(player->runspeed, player->mo->scale)) if (player->speed >= FixedMul(player->runspeed, player->mo->scale))
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT_RUN); P_SetMobjState(player->mo, S_PLAY_FLOAT_RUN);
else else
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT); P_SetMobjState(player->mo, S_PLAY_FLOAT);
} }
player->mo->momz = 0; player->mo->momz = 0;
@ -5392,13 +5392,13 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
P_SetTarget(&player->mo->target, P_SetTarget(&player->mo->tracer, lockonthok)); P_SetTarget(&player->mo->target, P_SetTarget(&player->mo->tracer, lockonthok));
if (lockonthok) if (lockonthok)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockonthok->x, lockonthok->y); player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockonthok->x, lockonthok->y);
player->homing = 3*TICRATE; player->homing = 3*TICRATE;
} }
else else
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
player->pflags &= ~PF_JUMPED; player->pflags &= ~PF_JUMPED;
player->mo->height = P_GetPlayerHeight(player); player->mo->height = P_GetPlayerHeight(player);
} }
@ -5435,7 +5435,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
; // Can't do anything if you're a fish out of water! ; // Can't do anything if you're a fish out of water!
else if (!(player->pflags & PF_THOKKED) && !(player->powers[pw_tailsfly])) else if (!(player->pflags & PF_THOKKED) && !(player->powers[pw_tailsfly]))
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_FLY); // Change to the flying animation P_SetMobjState(player->mo, S_PLAY_FLY); // Change to the flying animation
player->powers[pw_tailsfly] = tailsflytics + 1; // Set the fly timer player->powers[pw_tailsfly] = tailsflytics + 1; // Set the fly timer
@ -5468,7 +5468,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
player->pflags |= PF_GLIDING|PF_THOKKED; player->pflags |= PF_GLIDING|PF_THOKKED;
player->glidetime = 0; player->glidetime = 0;
P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); P_SetMobjState(player->mo, S_PLAY_GLIDE);
if (playerspeed < glidespeed) if (playerspeed < glidespeed)
P_Thrust(player->mo, player->mo->angle, glidespeed - playerspeed); P_Thrust(player->mo, player->mo->angle, glidespeed - playerspeed);
player->pflags &= ~(PF_JUMPED|PF_SPINNING|PF_STARTDASH); player->pflags &= ~(PF_JUMPED|PF_SPINNING|PF_STARTDASH);
@ -5489,11 +5489,11 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
if (!(player->pflags & PF_THOKKED) || player->charflags & SF_MULTIABILITY) if (!(player->pflags & PF_THOKKED) || player->charflags & SF_MULTIABILITY)
{ {
if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD) if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD)
P_SetPlayerMobjState(player->mo, S_PLAY_DASH); P_SetMobjState(player->mo, S_PLAY_DASH);
else if (player->speed >= FixedMul(player->runspeed, player->mo->scale)) else if (player->speed >= FixedMul(player->runspeed, player->mo->scale))
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT_RUN); P_SetMobjState(player->mo, S_PLAY_FLOAT_RUN);
else else
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT); P_SetMobjState(player->mo, S_PLAY_FLOAT);
player->pflags |= PF_THOKKED; player->pflags |= PF_THOKKED;
player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_SPINNING); player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_SPINNING);
player->secondjump = 1; player->secondjump = 1;
@ -5529,7 +5529,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
case CA_BOUNCE: case CA_BOUNCE:
if (!(player->pflags & PF_THOKKED) || player->charflags & SF_MULTIABILITY) if (!(player->pflags & PF_THOKKED) || player->charflags & SF_MULTIABILITY)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_BOUNCE); P_SetMobjState(player->mo, S_PLAY_BOUNCE);
player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_SPINNING); player->pflags &= ~(PF_JUMPED|PF_NOJUMPDAMAGE|PF_SPINNING);
player->pflags |= PF_THOKKED|PF_BOUNCING; player->pflags |= PF_THOKKED|PF_BOUNCING;
player->powers[pw_strong] = STR_BOUNCE; player->powers[pw_strong] = STR_BOUNCE;
@ -5619,7 +5619,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
if (!(player->mo->tracer->flags & MF_BOSS)) if (!(player->mo->tracer->flags & MF_BOSS))
player->pflags &= ~PF_THOKKED; player->pflags &= ~PF_THOKKED;
P_SetPlayerMobjState(player->mo, S_PLAY_SPRING); P_SetMobjState(player->mo, S_PLAY_SPRING);
player->pflags |= PF_NOJUMPDAMAGE; player->pflags |= PF_NOJUMPDAMAGE;
} }
} }
@ -5667,7 +5667,7 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd)
else else
player->secondjump = 2; player->secondjump = 2;
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
} }
// If letting go of the jump button while still on ascent, cut the jump height. // If letting go of the jump button while still on ascent, cut the jump height.
@ -5787,7 +5787,7 @@ static void P_2dMovement(player_t *player)
else if (player->exiting) else if (player->exiting)
{ {
player->pflags &= ~PF_GLIDING; player->pflags &= ~PF_GLIDING;
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
player->skidtime = 0; player->skidtime = 0;
} }
} }
@ -5796,7 +5796,7 @@ static void P_2dMovement(player_t *player)
if (player->pflags & PF_SPINNING && !player->exiting) if (player->pflags & PF_SPINNING && !player->exiting)
{ {
player->pflags &= ~PF_SPINNING; player->pflags &= ~PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
} }
@ -5960,7 +5960,7 @@ static void P_3dMovement(player_t *player)
else if (player->exiting) else if (player->exiting)
{ {
player->pflags &= ~PF_GLIDING; player->pflags &= ~PF_GLIDING;
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
player->skidtime = 0; player->skidtime = 0;
} }
} }
@ -5969,7 +5969,7 @@ static void P_3dMovement(player_t *player)
if (player->pflags & PF_SPINNING && !player->exiting) if (player->pflags & PF_SPINNING && !player->exiting)
{ {
player->pflags &= ~PF_SPINNING; player->pflags &= ~PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
} }
@ -6011,7 +6011,7 @@ static void P_3dMovement(player_t *player)
if (player->pflags & PF_SLIDING) if (player->pflags & PF_SLIDING)
cmd->forwardmove = 0; cmd->forwardmove = 0;
else if (onground && player->mo->state == states+S_PLAY_PAIN) else if (onground && player->mo->state == states+S_PLAY_PAIN)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
player->aiming = cmd->aiming<<FRACBITS; player->aiming = cmd->aiming<<FRACBITS;
@ -6816,12 +6816,12 @@ static void P_DoNiGHTSCapsule(player_t *player)
if (player->mo->momx || player->mo->momy || player->mo->momz) if (player->mo->momx || player->mo->momy || player->mo->momz)
{ {
if (player->mo->state != &states[S_PLAY_NIGHTS_PULL]) if (player->mo->state != &states[S_PLAY_NIGHTS_PULL])
P_SetPlayerMobjState(player->mo, S_PLAY_NIGHTS_PULL); P_SetMobjState(player->mo, S_PLAY_NIGHTS_PULL);
} }
else if (player->mo->state != &states[S_PLAY_NIGHTS_ATTACK]) else if (player->mo->state != &states[S_PLAY_NIGHTS_ATTACK])
{ {
S_StartSound(player->mo, sfx_spin); S_StartSound(player->mo, sfx_spin);
P_SetPlayerMobjState(player->mo, S_PLAY_NIGHTS_ATTACK); P_SetMobjState(player->mo, S_PLAY_NIGHTS_ATTACK);
} }
} }
else else
@ -6829,7 +6829,7 @@ static void P_DoNiGHTSCapsule(player_t *player)
if (!(player->pflags & PF_JUMPED) && !(player->pflags & PF_SPINNING)) if (!(player->pflags & PF_JUMPED) && !(player->pflags & PF_SPINNING))
player->pflags |= PF_JUMPED; player->pflags |= PF_JUMPED;
if (player->panim != PA_ROLL) if (player->panim != PA_ROLL)
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
} }
if (!(player->charflags & SF_NONIGHTSROTATION)) if (!(player->charflags & SF_NONIGHTSROTATION))
@ -7308,14 +7308,14 @@ static void P_NiGHTSMovement(player_t *player)
if (!(player->charflags & SF_NONIGHTSROTATION) && player->mo->momz) if (!(player->charflags & SF_NONIGHTSROTATION) && player->mo->momz)
{ {
if (player->mo->state != &states[S_PLAY_NIGHTS_DRILL]) if (player->mo->state != &states[S_PLAY_NIGHTS_DRILL])
P_SetPlayerMobjState(player->mo, S_PLAY_NIGHTS_DRILL); P_SetMobjState(player->mo, S_PLAY_NIGHTS_DRILL);
player->mo->spriteroll = ANGLE_90; player->mo->spriteroll = ANGLE_90;
} }
else else
#endif #endif
{ {
if (player->mo->state != &states[S_PLAY_NIGHTS_FLOAT]) if (player->mo->state != &states[S_PLAY_NIGHTS_FLOAT])
P_SetPlayerMobjState(player->mo, S_PLAY_NIGHTS_FLOAT); P_SetMobjState(player->mo, S_PLAY_NIGHTS_FLOAT);
player->drawangle += ANGLE_22h; player->drawangle += ANGLE_22h;
} }
@ -7639,7 +7639,7 @@ static void P_NiGHTSMovement(player_t *player)
} }
if (player->mo->state != &states[flystate]) if (player->mo->state != &states[flystate])
P_SetPlayerMobjState(player->mo, flystate); P_SetMobjState(player->mo, flystate);
if (player->charflags & SF_NONIGHTSROTATION) if (player->charflags & SF_NONIGHTSROTATION)
player->mo->spriteroll = 0; player->mo->spriteroll = 0;
@ -7905,13 +7905,13 @@ static void P_SkidStuff(player_t *player)
player->skidtime = 0; player->skidtime = 0;
player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE); player->pflags &= ~(PF_GLIDING|PF_JUMPED|PF_NOJUMPDAMAGE);
player->pflags |= PF_THOKKED; player->pflags |= PF_THOKKED;
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
} }
// Get up and brush yourself off, idiot. // Get up and brush yourself off, idiot.
else if (player->glidetime > 15 || !(player->cmd.buttons & BT_JUMP)) else if (player->glidetime > 15 || !(player->cmd.buttons & BT_JUMP))
{ {
P_ResetPlayer(player); P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE_LANDING); P_SetMobjState(player->mo, S_PLAY_GLIDE_LANDING);
player->pflags |= PF_STASIS; player->pflags |= PF_STASIS;
if (player->speed > FixedMul(player->runspeed, player->mo->scale)) if (player->speed > FixedMul(player->runspeed, player->mo->scale))
player->skidtime += player->mo->tics; player->skidtime += player->mo->tics;
@ -7956,7 +7956,7 @@ static void P_SkidStuff(player_t *player)
if (dang > ANGLE_157h) if (dang > ANGLE_157h)
{ {
if (player->mo->state-states != S_PLAY_SKID) if (player->mo->state-states != S_PLAY_SKID)
P_SetPlayerMobjState(player->mo, S_PLAY_SKID); P_SetMobjState(player->mo, S_PLAY_SKID);
player->mo->tics = player->skidtime = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS; player->mo->tics = player->skidtime = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS;
S_StartSound(player->mo, sfx_skid); S_StartSound(player->mo, sfx_skid);
} }
@ -8188,63 +8188,63 @@ void P_MovePlayer(player_t *player)
{ {
// If the player is in dashmode, here's their peelout. // If the player is in dashmode, here's their peelout.
if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim == PA_RUN && !player->skidtime && (onground || ((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super])) if (player->charflags & SF_DASHMODE && player->dashmode >= DASHMODE_THRESHOLD && player->panim == PA_RUN && !player->skidtime && (onground || ((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super]))
P_SetPlayerMobjState (player->mo, S_PLAY_DASH); P_SetMobjState (player->mo, S_PLAY_DASH);
// If the player is moving fast enough, // If the player is moving fast enough,
// break into a run! // break into a run!
else if (player->speed >= runspd && player->panim == PA_WALK && !player->skidtime else if (player->speed >= runspd && player->panim == PA_WALK && !player->skidtime
&& (onground || ((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super])) && (onground || ((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super]))
{ {
if (!onground) if (!onground)
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT_RUN); P_SetMobjState(player->mo, S_PLAY_FLOAT_RUN);
else else
P_SetPlayerMobjState(player->mo, S_PLAY_RUN); P_SetMobjState(player->mo, S_PLAY_RUN);
} }
// Floating at slow speeds has its own special animation. // Floating at slow speeds has its own special animation.
else if ((((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super]) && player->panim == PA_IDLE && !onground) else if ((((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super]) && player->panim == PA_IDLE && !onground)
P_SetPlayerMobjState (player->mo, S_PLAY_FLOAT); P_SetMobjState (player->mo, S_PLAY_FLOAT);
// Otherwise, just walk. // Otherwise, just walk.
else if ((player->rmomx || player->rmomy) && player->panim == PA_IDLE) else if ((player->rmomx || player->rmomy) && player->panim == PA_IDLE)
P_SetPlayerMobjState (player->mo, S_PLAY_WALK); P_SetMobjState (player->mo, S_PLAY_WALK);
} }
// If your peelout animation is playing, and you're // If your peelout animation is playing, and you're
// going too slow, switch back to the run. // going too slow, switch back to the run.
if (player->charflags & SF_DASHMODE && player->panim == PA_DASH && player->dashmode < DASHMODE_THRESHOLD) if (player->charflags & SF_DASHMODE && player->panim == PA_DASH && player->dashmode < DASHMODE_THRESHOLD)
P_SetPlayerMobjState(player->mo, S_PLAY_RUN); P_SetMobjState(player->mo, S_PLAY_RUN);
// If your running animation is playing, and you're // If your running animation is playing, and you're
// going too slow, switch back to the walking frames. // going too slow, switch back to the walking frames.
if (player->panim == PA_RUN && player->speed < runspd) if (player->panim == PA_RUN && player->speed < runspd)
{ {
if (!onground && (((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super])) if (!onground && (((player->charability == CA_FLOAT || player->charability == CA_SLOWFALL) && player->secondjump == 1) || player->powers[pw_super]))
P_SetPlayerMobjState(player->mo, S_PLAY_FLOAT); P_SetMobjState(player->mo, S_PLAY_FLOAT);
else else
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
} }
// Correct floating when ending up on the ground. // Correct floating when ending up on the ground.
if (onground) if (onground)
{ {
if (player->mo->state-states == S_PLAY_FLOAT) if (player->mo->state-states == S_PLAY_FLOAT)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else if (player->mo->state-states == S_PLAY_FLOAT_RUN) else if (player->mo->state-states == S_PLAY_FLOAT_RUN)
P_SetPlayerMobjState(player->mo, S_PLAY_RUN); P_SetMobjState(player->mo, S_PLAY_RUN);
} }
// If Springing (or nojumpspinning), but travelling DOWNWARD, change back! // If Springing (or nojumpspinning), but travelling DOWNWARD, change back!
if ((player->panim == PA_SPRING && P_MobjFlip(player->mo)*player->mo->momz < 0) if ((player->panim == PA_SPRING && P_MobjFlip(player->mo)*player->mo->momz < 0)
|| ((((player->charflags & SF_NOJUMPSPIN) && (player->pflags & PF_JUMPED) && player->panim == PA_JUMP)) || ((((player->charflags & SF_NOJUMPSPIN) && (player->pflags & PF_JUMPED) && player->panim == PA_JUMP))
&& (P_MobjFlip(player->mo)*player->mo->momz < 0))) && (P_MobjFlip(player->mo)*player->mo->momz < 0)))
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
// If doing an air animation but on the ground, change back! // If doing an air animation but on the ground, change back!
else if (onground && (player->panim == PA_SPRING || player->panim == PA_FALL || player->panim == PA_RIDE || player->panim == PA_JUMP) && !player->mo->momz) else if (onground && (player->panim == PA_SPRING || player->panim == PA_FALL || player->panim == PA_RIDE || player->panim == PA_JUMP) && !player->mo->momz)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
// If you are stopped and are still walking, stand still! // If you are stopped and are still walking, stand still!
if (!player->mo->momx && !player->mo->momy && !player->mo->momz && player->panim == PA_WALK) if (!player->mo->momx && !player->mo->momy && !player->mo->momz && player->panim == PA_WALK)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
////////////////// //////////////////
//GAMEPLAY STUFF// //GAMEPLAY STUFF//
@ -8256,18 +8256,18 @@ void P_MovePlayer(player_t *player)
{ {
player->pflags &= ~(PF_STARTJUMP|PF_JUMPED|PF_NOJUMPDAMAGE|PF_THOKKED|PF_SHIELDABILITY); player->pflags &= ~(PF_STARTJUMP|PF_JUMPED|PF_NOJUMPDAMAGE|PF_THOKKED|PF_SHIELDABILITY);
player->secondjump = 0; player->secondjump = 0;
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
} }
if ((!(player->charability == CA_GLIDEANDCLIMB) || player->gotflag) // If you can't glide, then why the heck would you be gliding? if ((!(player->charability == CA_GLIDEANDCLIMB) || player->gotflag) // If you can't glide, then why the heck would you be gliding?
&& (player->pflags & PF_GLIDING || player->climbing)) && (player->pflags & PF_GLIDING || player->climbing))
{ {
if (onground) if (onground)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else else
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
player->pflags &= ~PF_GLIDING; player->pflags &= ~PF_GLIDING;
player->glidetime = 0; player->glidetime = 0;
@ -8278,11 +8278,11 @@ void P_MovePlayer(player_t *player)
&& (player->pflags & PF_BOUNCING)) && (player->pflags & PF_BOUNCING))
{ {
if (onground) if (onground)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else else
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
player->pflags &= ~PF_BOUNCING; player->pflags &= ~PF_BOUNCING;
} }
@ -8399,18 +8399,18 @@ void P_MovePlayer(player_t *player)
{ {
P_ResetPlayer(player); // down, stop gliding. P_ResetPlayer(player); // down, stop gliding.
if (onground) if (onground)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else if (player->charflags & SF_MULTIABILITY) else if (player->charflags & SF_MULTIABILITY)
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
else else
{ {
player->pflags |= PF_THOKKED; player->pflags |= PF_THOKKED;
player->mo->momx >>= 1; player->mo->momx >>= 1;
player->mo->momy >>= 1; player->mo->momy >>= 1;
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
} }
} }
} }
@ -8427,23 +8427,23 @@ void P_MovePlayer(player_t *player)
P_ResetPlayer(player); // down, stop bouncing. P_ResetPlayer(player); // down, stop bouncing.
player->pflags |= PF_THOKKED; player->pflags |= PF_THOKKED;
if (onground) if (onground)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else if (player->charflags & SF_MULTIABILITY) else if (player->charflags & SF_MULTIABILITY)
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
else else
{ {
player->mo->momx >>= 1; player->mo->momx >>= 1;
player->mo->momy >>= 1; player->mo->momy >>= 1;
player->mo->momz >>= 1; player->mo->momz >>= 1;
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
} }
} }
} }
else if (player->mo->state-states == S_PLAY_BOUNCE) else if (player->mo->state-states == S_PLAY_BOUNCE)
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
// If you're running fast enough, you can create splashes as you run in shallow water. // If you're running fast enough, you can create splashes as you run in shallow water.
if (!player->climbing if (!player->climbing
@ -8487,11 +8487,11 @@ void P_MovePlayer(player_t *player)
|| player->mo->state-states == S_PLAY_FLY_TIRED) || player->mo->state-states == S_PLAY_FLY_TIRED)
{ {
if (onground) if (onground)
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
else else
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
} }
player->powers[pw_tailsfly] = 0; player->powers[pw_tailsfly] = 0;
@ -8525,7 +8525,7 @@ void P_MovePlayer(player_t *player)
if (P_MobjFlip(player->mo)*player->mo->momz < FixedMul(5*actionspd, player->mo->scale)) if (P_MobjFlip(player->mo)*player->mo->momz < FixedMul(5*actionspd, player->mo->scale))
P_SetObjectMomZ(player->mo, actionspd/2, true); P_SetObjectMomZ(player->mo, actionspd/2, true);
P_SetPlayerMobjState(player->mo, player->mo->state->nextstate); P_SetMobjState(player->mo, player->mo->state->nextstate);
player->fly1--; player->fly1--;
} }
@ -8553,7 +8553,7 @@ void P_MovePlayer(player_t *player)
{ {
// Tails-gets-tired Stuff // Tails-gets-tired Stuff
if (player->panim == PA_ABILITY && player->mo->state-states != S_PLAY_FLY_TIRED) if (player->panim == PA_ABILITY && player->mo->state-states != S_PLAY_FLY_TIRED)
P_SetPlayerMobjState(player->mo, S_PLAY_FLY_TIRED); P_SetMobjState(player->mo, S_PLAY_FLY_TIRED);
if (player->charability == CA_FLY && (leveltime % 10 == 0) if (player->charability == CA_FLY && (leveltime % 10 == 0)
&& player->mo->state-states == S_PLAY_FLY_TIRED && player->mo->state-states == S_PLAY_FLY_TIRED
@ -8670,7 +8670,7 @@ void P_MovePlayer(player_t *player)
// Make sure you're not teetering when you shouldn't be. // Make sure you're not teetering when you shouldn't be.
if (player->panim == PA_EDGE if (player->panim == PA_EDGE
&& (player->mo->momx || player->mo->momy || player->mo->momz)) && (player->mo->momx || player->mo->momy || player->mo->momz))
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
// Check for teeter! // Check for teeter!
if (!(player->mo->momz || player->mo->momx || player->mo->momy) && !(player->mo->eflags & MFE_GOOWATER) if (!(player->mo->momz || player->mo->momx || player->mo->momy) && !(player->mo->eflags & MFE_GOOWATER)
@ -8736,7 +8736,7 @@ void P_MovePlayer(player_t *player)
if (!atspinheight) if (!atspinheight)
{ {
player->pflags |= PF_SPINNING; player->pflags |= PF_SPINNING;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
} }
else if (player->mo->ceilingz - player->mo->floorz < player->mo->height) else if (player->mo->ceilingz - player->mo->floorz < player->mo->height)
{ {
@ -8917,7 +8917,7 @@ static void P_DoRopeHang(player_t *player)
if (player->cmd.buttons & BT_SPIN && !(player->pflags & PF_STASIS)) // Drop off of the rope if (player->cmd.buttons & BT_SPIN && !(player->pflags & PF_STASIS)) // Drop off of the rope
{ {
player->pflags |= (P_GetJumpFlags(player)|PF_SPINDOWN); player->pflags |= (P_GetJumpFlags(player)|PF_SPINDOWN);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
P_SetTarget(&player->mo->tracer, NULL); P_SetTarget(&player->mo->tracer, NULL);
player->powers[pw_carry] = CR_NONE; player->powers[pw_carry] = CR_NONE;
@ -8926,7 +8926,7 @@ static void P_DoRopeHang(player_t *player)
} }
if (player->mo->state-states != S_PLAY_RIDE) if (player->mo->state-states != S_PLAY_RIDE)
P_SetPlayerMobjState(player->mo, S_PLAY_RIDE); P_SetMobjState(player->mo, S_PLAY_RIDE);
// If not allowed to move, we're done here. // If not allowed to move, we're done here.
if (!speed) if (!speed)
@ -8982,7 +8982,7 @@ static void P_DoRopeHang(player_t *player)
if (player->mo->tracer->flags & MF_SLIDEME) if (player->mo->tracer->flags & MF_SLIDEME)
{ {
player->pflags |= P_GetJumpFlags(player); player->pflags |= P_GetJumpFlags(player);
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); P_SetMobjState(player->mo, S_PLAY_JUMP);
} }
P_SetTarget(&player->mo->tracer, NULL); P_SetTarget(&player->mo->tracer, NULL);
@ -11180,7 +11180,7 @@ static void P_MinecartThink(player_t *player)
if (player->mo->state-states != S_PLAY_STND) if (player->mo->state-states != S_PLAY_STND)
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
player->mo->tics = -1; player->mo->tics = -1;
} }
@ -11958,7 +11958,7 @@ void P_PlayerThink(player_t *player)
{ {
P_DoZoomTube(player); P_DoZoomTube(player);
if (!(player->panim == PA_ROLL)) if (!(player->panim == PA_ROLL))
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
} }
player->rmomx = player->rmomy = 0; // no actual momentum from your controls player->rmomx = player->rmomy = 0; // no actual momentum from your controls
P_ResetScore(player); P_ResetScore(player);
@ -12117,7 +12117,7 @@ void P_PlayerThink(player_t *player)
{ {
statenum_t stat = player->mo->state-states; statenum_t stat = player->mo->state-states;
if (stat == S_PLAY_WAIT) if (stat == S_PLAY_WAIT)
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
else if (stat == S_PLAY_STND && player->mo->tics != -1) else if (stat == S_PLAY_STND && player->mo->tics != -1)
player->mo->tics++; player->mo->tics++;
} }
@ -12144,7 +12144,7 @@ void P_PlayerThink(player_t *player)
else if (!player->skidtime && !(player->mo->eflags & MFE_GOOWATER) && !(player->pflags & (PF_JUMPED|PF_SPINNING|PF_SLIDING)) && !(player->charflags & SF_NOSKID) && P_AproxDistance(player->mo->momx, player->mo->momy) >= FixedMul(player->runspeed, player->mo->scale)) // modified from player->runspeed/2 'cuz the skid was just TOO frequent ngl else if (!player->skidtime && !(player->mo->eflags & MFE_GOOWATER) && !(player->pflags & (PF_JUMPED|PF_SPINNING|PF_SLIDING)) && !(player->charflags & SF_NOSKID) && P_AproxDistance(player->mo->momx, player->mo->momy) >= FixedMul(player->runspeed, player->mo->scale)) // modified from player->runspeed/2 'cuz the skid was just TOO frequent ngl
{ {
if (player->mo->state-states != S_PLAY_SKID) if (player->mo->state-states != S_PLAY_SKID)
P_SetPlayerMobjState(player->mo, S_PLAY_SKID); P_SetMobjState(player->mo, S_PLAY_SKID);
player->mo->tics = player->skidtime = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS; player->mo->tics = player->skidtime = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS;
if (P_IsLocalPlayer(player)) // the sound happens way more frequently now, so give co-op players' ears a brake... if (P_IsLocalPlayer(player)) // the sound happens way more frequently now, so give co-op players' ears a brake...
@ -12321,7 +12321,7 @@ void P_PlayerThink(player_t *player)
if (!player->powers[pw_flashing]) if (!player->powers[pw_flashing])
{ {
if (player->mo->state != &states[S_PLAY_STND]) if (player->mo->state != &states[S_PLAY_STND])
P_SetPlayerMobjState(player->mo, S_PLAY_STND); P_SetMobjState(player->mo, S_PLAY_STND);
else else
player->mo->tics = 2; player->mo->tics = 2;
} }
@ -12682,7 +12682,7 @@ void P_PlayerAfterThink(player_t *player)
S_StartSound(NULL, sfx_wepchg); S_StartSound(NULL, sfx_wepchg);
if ((player->pflags & PF_SLIDING) && ((player->pflags & (PF_JUMPED|PF_NOJUMPDAMAGE)) != PF_JUMPED)) if ((player->pflags & PF_SLIDING) && ((player->pflags & (PF_JUMPED|PF_NOJUMPDAMAGE)) != PF_JUMPED))
P_SetPlayerMobjState(player->mo, player->mo->info->painstate); P_SetMobjState(player->mo, player->mo->info->painstate);
/* if (player->powers[pw_carry] == CR_NONE && player->mo->tracer && !player->homing) /* if (player->powers[pw_carry] == CR_NONE && player->mo->tracer && !player->homing)
P_SetTarget(&player->mo->tracer, NULL); P_SetTarget(&player->mo->tracer, NULL);
@ -12743,7 +12743,7 @@ void P_PlayerAfterThink(player_t *player)
if (player->powers[pw_carry] == CR_PLAYER) if (player->powers[pw_carry] == CR_PLAYER)
{ {
if (player->mo->state-states != S_PLAY_RIDE) if (player->mo->state-states != S_PLAY_RIDE)
P_SetPlayerMobjState(player->mo, S_PLAY_RIDE); P_SetMobjState(player->mo, S_PLAY_RIDE);
if (tails->player && (tails->skin && ((skin_t *)(tails->skin))->sprites[SPR2_SWIM].numframes) && (tails->eflags & MFE_UNDERWATER)) if (tails->player && (tails->skin && ((skin_t *)(tails->skin))->sprites[SPR2_SWIM].numframes) && (tails->eflags & MFE_UNDERWATER))
tails->player->powers[pw_tailsfly] = 0; tails->player->powers[pw_tailsfly] = 0;
} }
@ -12768,7 +12768,7 @@ void P_PlayerAfterThink(player_t *player)
player->mo->momx = player->mo->momy = player->mo->momz = 0; player->mo->momx = player->mo->momy = player->mo->momz = 0;
P_SetThingPosition(player->mo); P_SetThingPosition(player->mo);
if (player->mo->state-states != S_PLAY_RIDE) if (player->mo->state-states != S_PLAY_RIDE)
P_SetPlayerMobjState(player->mo, S_PLAY_RIDE); P_SetMobjState(player->mo, S_PLAY_RIDE);
// Controllable missile // Controllable missile
if (item->type == MT_BLACKEGGMAN_MISSILE) if (item->type == MT_BLACKEGGMAN_MISSILE)
@ -12889,7 +12889,7 @@ void P_PlayerAfterThink(player_t *player)
if (player->panim == PA_IDLE && (mo->momx || mo->momy)) if (player->panim == PA_IDLE && (mo->momx || mo->momy))
{ {
P_SetPlayerMobjState(player->mo, S_PLAY_WALK); P_SetMobjState(player->mo, S_PLAY_WALK);
} }
if (player->panim == PA_WALK && mo->tics > walktics) if (player->panim == PA_WALK && mo->tics > walktics)
@ -12945,7 +12945,7 @@ void P_PlayerAfterThink(player_t *player)
P_KillMobj(ptera, player->mo, player->mo, 0); P_KillMobj(ptera, player->mo, player->mo, 0);
P_SetObjectMomZ(player->mo, 12*FRACUNIT, false); P_SetObjectMomZ(player->mo, 12*FRACUNIT, false);
player->pflags |= PF_APPLYAUTOBRAKE|PF_JUMPED|PF_THOKKED; player->pflags |= PF_APPLYAUTOBRAKE|PF_JUMPED|PF_THOKKED;
P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); P_SetMobjState(player->mo, S_PLAY_ROLL);
break; break;
} }
@ -12966,7 +12966,7 @@ void P_PlayerAfterThink(player_t *player)
ptera->cvmem >>= 1; ptera->cvmem >>= 1;
if (player->mo->state-states != S_PLAY_FALL) if (player->mo->state-states != S_PLAY_FALL)
P_SetPlayerMobjState(player->mo, S_PLAY_FALL); P_SetMobjState(player->mo, S_PLAY_FALL);
break; break;
dropoff: dropoff:

View file

@ -392,7 +392,7 @@ static void SetSkin(player_t *player, INT32 skinnum)
P_SetScale(player->mo, player->mo->scale); P_SetScale(player->mo, player->mo->scale);
player->mo->radius = radius; player->mo->radius = radius;
P_SetPlayerMobjState(player->mo, player->mo->state-states); // Prevent visual errors when switching between skins with differing number of frames P_SetMobjState(player->mo, player->mo->state-states); // Prevent visual errors when switching between skins with differing number of frames
} }
} }