Fixed chain launching

In the process, the stasis flags work like you'd expect them to.
You can now set them in Lua or code and they'll actually do something.
This commit is contained in:
Inuyasha 2016-02-14 12:28:03 -08:00
parent 5d1c8d2968
commit 7c5adacc6f
2 changed files with 9 additions and 2 deletions

View File

@ -1339,6 +1339,9 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
} }
else else
player->pflags |= PF_ITEMHANG; player->pflags |= PF_ITEMHANG;
// Can't jump first frame
player->pflags |= PF_JUMPSTASIS;
return; return;
case MT_BIGMINE: case MT_BIGMINE:
case MT_BIGAIRMINE: case MT_BIGAIRMINE:

View File

@ -6340,8 +6340,7 @@ static void P_MovePlayer(player_t *player)
if (!(player->powers[pw_nocontrol] & (1<<15))) if (!(player->powers[pw_nocontrol] & (1<<15)))
player->pflags |= PF_JUMPSTASIS; player->pflags |= PF_JUMPSTASIS;
} }
else // note: don't unset stasis here
player->pflags &= ~PF_FULLSTASIS;
if (!player->spectator && G_TagGametype()) if (!player->spectator && G_TagGametype())
{ {
@ -8928,6 +8927,11 @@ void P_PlayerThink(player_t *player)
if (!player->mo) if (!player->mo)
return; // P_MovePlayer removed player->mo. return; // P_MovePlayer removed player->mo.
// Unset statis flags after moving.
// In other words, if you manually set stasis via code,
// it lasts for one tic.
player->pflags &= ~PF_FULLSTASIS;
#ifdef POLYOBJECTS #ifdef POLYOBJECTS
if (player->onconveyor == 1) if (player->onconveyor == 1)
player->cmomy = player->cmomx = 0; player->cmomy = player->cmomx = 0;