Allow K_MomentumToFacing to work when you just hit the floor
(also prevent a crash when Ballhog balls die)
This commit is contained in:
parent
ffa9143eff
commit
d6c1d67662
|
@ -6415,6 +6415,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_BALLHOG6",
|
"S_BALLHOG6",
|
||||||
"S_BALLHOG7",
|
"S_BALLHOG7",
|
||||||
"S_BALLHOG8",
|
"S_BALLHOG8",
|
||||||
|
"S_BALLHOG_DEAD",
|
||||||
|
|
||||||
// Self-Propelled Bomb - just an explosion for now...
|
// Self-Propelled Bomb - just an explosion for now...
|
||||||
"S_BLUELIGHTNING1",
|
"S_BLUELIGHTNING1",
|
||||||
|
|
|
@ -2735,6 +2735,7 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6
|
{SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6
|
||||||
{SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7
|
{SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7
|
||||||
{SPR_BHOG, 7, 1, {NULL}, 0, 0, S_BALLHOG1}, // S_BALLHOG8
|
{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, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
|
||||||
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
||||||
|
@ -14907,7 +14908,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
sfx_None, // painsound
|
sfx_None, // painsound
|
||||||
S_NULL, // meleestate
|
S_NULL, // meleestate
|
||||||
S_NULL, // missilestate
|
S_NULL, // missilestate
|
||||||
S_NULL, // deathstate
|
S_BALLHOG_DEAD, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_mario1, // deathsound
|
sfx_mario1, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
|
|
|
@ -3253,6 +3253,7 @@ typedef enum state
|
||||||
S_BALLHOG6,
|
S_BALLHOG6,
|
||||||
S_BALLHOG7,
|
S_BALLHOG7,
|
||||||
S_BALLHOG8,
|
S_BALLHOG8,
|
||||||
|
S_BALLHOG_DEAD,
|
||||||
|
|
||||||
// Self-Propelled Bomb - just an explosion for now...
|
// Self-Propelled Bomb - just an explosion for now...
|
||||||
S_BLUELIGHTNING1,
|
S_BLUELIGHTNING1,
|
||||||
|
|
|
@ -1300,7 +1300,8 @@ void K_MomentumToFacing(player_t *player)
|
||||||
dangle = InvAngle(dangle);
|
dangle = InvAngle(dangle);
|
||||||
|
|
||||||
// If you aren't on the ground or are moving in too different of a direction don't do this
|
// 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;
|
return;
|
||||||
|
|
||||||
P_Thrust(player->mo, player->mo->angle, player->speed - FixedMul(player->speed, player->mo->friction));
|
P_Thrust(player->mo, player->mo->angle, player->speed - FixedMul(player->speed, player->mo->friction));
|
||||||
|
|
Loading…
Reference in a new issue