Allow K_MomentumToFacing to work when you just hit the floor

(also prevent a crash when Ballhog balls die)
This commit is contained in:
TehRealSalt 2018-07-10 19:34:45 -04:00
parent ffa9143eff
commit d6c1d67662
4 changed files with 6 additions and 2 deletions

View File

@ -6415,6 +6415,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_BALLHOG6",
"S_BALLHOG7",
"S_BALLHOG8",
"S_BALLHOG_DEAD",
// Self-Propelled Bomb - just an explosion for now...
"S_BLUELIGHTNING1",

View File

@ -2735,6 +2735,7 @@ state_t states[NUMSTATES] =
{SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6
{SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7
{SPR_BHOG, 7, 1, {NULL}, 0, 0, S_BALLHOG1}, // S_BALLHOG8
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_BALLHOG_DEAD
{SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
@ -14907,7 +14908,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_BALLHOG_DEAD, // deathstate
S_NULL, // xdeathstate
sfx_mario1, // deathsound
0, // speed

View File

@ -3253,6 +3253,7 @@ typedef enum state
S_BALLHOG6,
S_BALLHOG7,
S_BALLHOG8,
S_BALLHOG_DEAD,
// Self-Propelled Bomb - just an explosion for now...
S_BLUELIGHTNING1,

View File

@ -1300,7 +1300,8 @@ void K_MomentumToFacing(player_t *player)
dangle = InvAngle(dangle);
// If you aren't on the ground or are moving in too different of a direction don't do this
if (!P_IsObjectOnGround(player->mo) || dangle > ANGLE_90)
if ((!P_IsObjectOnGround(player->mo))
|| (dangle > ANGLE_90 && !(player->mo->eflags & MFE_JUSTHITFLOOR)))
return;
P_Thrust(player->mo, player->mo->angle, player->speed - FixedMul(player->speed, player->mo->friction));