Fix missing spinout animation on the fan sector in Diamond Square
Also, carry is not a bitfield lol
This commit is contained in:
parent
62fbaf19c9
commit
95a3af6a1a
3 changed files with 10 additions and 8 deletions
|
|
@ -971,7 +971,7 @@ static int player_get(lua_State *L)
|
|||
{
|
||||
UINT32 pflags = plr->pflags;
|
||||
|
||||
if (lua_compatmode && (plr->carry & CR_SLIDING) == CR_SLIDING)
|
||||
if (lua_compatmode && plr->carry == CR_SLIDING)
|
||||
pflags |= PF_SLIDING;
|
||||
|
||||
if (lua_compatmode && (plr->oldcmd.buttons & BT_ATTACK))
|
||||
|
|
@ -1303,9 +1303,9 @@ static int player_set(lua_State *L)
|
|||
if (lua_compatmode)
|
||||
{
|
||||
if (pflags & PF_SLIDING)
|
||||
plr->carry |= CR_SLIDING;
|
||||
else
|
||||
plr->carry &= ~CR_SLIDING;
|
||||
plr->carry = CR_SLIDING;
|
||||
else if (plr->carry == CR_SLIDING)
|
||||
plr->carry = CR_NONE;
|
||||
|
||||
if (pflags & PF_ATTACKDOWN)
|
||||
plr->oldcmd.buttons |= BT_ATTACK;
|
||||
|
|
|
|||
|
|
@ -11095,7 +11095,7 @@ void A_SPBChase(void *thing)
|
|||
wspeed = (3*defspeed)/2;
|
||||
if (wspeed < 20*actor->tracer->scale)
|
||||
wspeed = 20*actor->tracer->scale;
|
||||
if (actor->tracer->player->carry & CR_SLIDING)
|
||||
if (actor->tracer->player->carry == CR_SLIDING)
|
||||
wspeed = actor->tracer->player->speed/2;
|
||||
// ^^^^ current section: These are annoying, and grand metropolis in particular needs this.
|
||||
|
||||
|
|
|
|||
|
|
@ -484,7 +484,9 @@ void P_ResetPlayer(player_t *player)
|
|||
{
|
||||
//player->pflags &= ~(PF_);
|
||||
|
||||
player->carry = CR_NONE;
|
||||
// turns out PF_SLIDING is NOT reset by this function!
|
||||
if (mapnamespace != MNS_SRB2KART || player->carry != CR_SLIDING)
|
||||
player->carry = CR_NONE;
|
||||
player->onconveyor = 0;
|
||||
|
||||
player->glanceDir = 0;
|
||||
|
|
@ -1932,7 +1934,7 @@ static void P_3dMovement(player_t *player)
|
|||
}
|
||||
|
||||
// When sliding, don't allow forward/back
|
||||
if (player->carry & CR_SLIDING)
|
||||
if (player->carry == CR_SLIDING)
|
||||
cmd->forwardmove = 0;
|
||||
|
||||
// Do not let the player control movement if not onground.
|
||||
|
|
@ -4341,7 +4343,7 @@ void P_PlayerThink(player_t *player)
|
|||
// for a bit after a teleport.
|
||||
player->mo->reactiontime--;
|
||||
}
|
||||
else if (player->mo->tracer && player->mo->tracer->type == MT_TUBEWAYPOINT)
|
||||
else if (player->carry == CR_ZOOMTUBE && player->mo->tracer && player->mo->tracer->type == MT_TUBEWAYPOINT)
|
||||
{
|
||||
P_DoZoomTube(player);
|
||||
player->rmomx = player->rmomy = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue