Zwip Zwap Zapony's suggestions

This commit is contained in:
SSNTails 2024-03-16 10:28:49 -04:00
parent 2181dadb4c
commit b4ad054422
4 changed files with 10 additions and 34 deletions

View file

@ -14799,12 +14799,18 @@ void A_RolloutRock(mobj_t *actor)
if (!actor->tracer || P_MobjWasRemoved(actor->tracer) || !actor->tracer->health)
actor->flags |= MF_PUSHABLE;
else if (actor->tracer->eflags & MFE_VERTICALFLIP)
{
actor->flags2 |= MF2_OBJECTFLIP;
actor->eflags |= MFE_VERTICALFLIP;
}
else
{
actor->flags2 = (actor->flags2 & ~MF2_OBJECTFLIP) | (actor->tracer->flags2 & MF2_OBJECTFLIP);
actor->eflags = (actor->eflags & ~MFE_VERTICALFLIP) | (actor->tracer->eflags & MFE_VERTICALFLIP);
actor->flags2 &= ~MF2_OBJECTFLIP;
actor->eflags &= ~MFE_VERTICALFLIP;
}
actor->friction = FRACUNIT; // turns out riding on solids sucks, so let's just make it easier on ourselves
if (actor->eflags & MFE_JUSTHITFLOOR)

View file

@ -1057,9 +1057,6 @@ static unsigned PIT_DoCheckThing(mobj_t *thing)
if (!P_IsObjectOnGround(thing))
thing->momz += tmthing->momz;
thing->extravalue1 = thing->flags2;
thing->extravalue2 = thing->eflags;
return CHECKTHING_COLLIDE;
}
}

View file

@ -1526,11 +1526,6 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
case MT_CYBRAKDEMON:
gravityadd >>= 1;
break;
case MT_ROLLOUTROCK:
// If a player has gravity boots and its riding a rollout rock, the rock should copy the player's gravity
if (mo->tracer && mo->tracer->player && mo->tracer->player->powers[pw_gravityboots])
gravityadd = -gravityadd;
break;
default:
break;
}

View file

@ -1084,22 +1084,11 @@ void P_ResetPlayer(player_t *player)
player->mo->tracer->flags |= MF_PUSHABLE;
// goose the mom a little bit to trigger gravity to process for a tic
if (player->mo->eflags & MFE_VERTICALFLIP)
if (player->mo->tracer->eflags & MFE_VERTICALFLIP)
player->mo->tracer->momz -= 1;
else
player->mo->tracer->momz += 1;
// Restore MF2_OBJECTFLIP / MFE_VERTICALFLIP
if (player->mo->tracer->extravalue1 & MF2_OBJECTFLIP)
player->mo->tracer->flags2 |= MF2_OBJECTFLIP;
else
player->mo->tracer->flags2 &= ~MF2_OBJECTFLIP;
if (player->mo->tracer->extravalue2 & MFE_VERTICALFLIP)
player->mo->tracer->eflags |= MFE_VERTICALFLIP;
else
player->mo->tracer->eflags &= ~MFE_VERTICALFLIP;
P_SetTarget(&player->mo->tracer->tracer, NULL);
}
P_SetTarget(&player->mo->tracer, NULL);
@ -4580,22 +4569,11 @@ void P_DoJump(player_t *player, boolean soundandstate, boolean allowflip)
P_SetObjectMomZ(player->mo->tracer, -9*FRACUNIT, true);
// goose the mom a little bit to trigger gravity to process for a tic
if (player->mo->eflags & MFE_VERTICALFLIP)
if (player->mo->tracer->eflags & MFE_VERTICALFLIP)
player->mo->tracer->momz -= 1;
else
player->mo->tracer->momz += 1;
// Restore MF2_OBJECTFLIP / MFE_VERTICALFLIP
if (player->mo->tracer->extravalue1 & MF2_OBJECTFLIP)
player->mo->tracer->flags2 |= MF2_OBJECTFLIP;
else
player->mo->tracer->flags2 &= ~MF2_OBJECTFLIP;
if (player->mo->tracer->extravalue2 & MFE_VERTICALFLIP)
player->mo->tracer->eflags |= MFE_VERTICALFLIP;
else
player->mo->tracer->eflags &= ~MFE_VERTICALFLIP;
player->mo->tracer->flags |= MF_PUSHABLE;
P_SetTarget(&player->mo->tracer->tracer, NULL);
}