mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-25 19:43:22 +00:00
Merge branch 'fix-spectator-noclip' into 'master'
Let noclip cheat remove floor/ceiling clipping while in spectator mode See merge request KartKrew/Kart!1134
This commit is contained in:
commit
d84ee59887
3 changed files with 30 additions and 8 deletions
|
|
@ -5593,12 +5593,22 @@ static void Got_Cheat(UINT8 **cp, INT32 playernum)
|
|||
|
||||
if (!P_MobjWasRemoved(player->mo))
|
||||
{
|
||||
player->mo->flags ^= MF_NOCLIP;
|
||||
UINT32 noclipFlags = MF_NOCLIP;
|
||||
|
||||
if (!(player->mo->flags & MF_NOCLIP))
|
||||
if (player->spectator)
|
||||
{
|
||||
noclipFlags |= MF_NOCLIPHEIGHT;
|
||||
}
|
||||
|
||||
if (player->mo->flags & MF_NOCLIP)
|
||||
{
|
||||
player->mo->flags &= ~(noclipFlags);
|
||||
status = "off";
|
||||
}
|
||||
else
|
||||
{
|
||||
player->mo->flags |= noclipFlags;
|
||||
}
|
||||
}
|
||||
|
||||
CV_CheaterWarning(targetPlayer, va("noclip %s", status));
|
||||
|
|
|
|||
|
|
@ -2839,8 +2839,9 @@ void P_PlayerZMovement(mobj_t *mo)
|
|||
P_AdjustMobjFloorZ_PolyObjs(mo, mo->subsector);
|
||||
|
||||
// check for smooth step up
|
||||
if ((mo->eflags & MFE_VERTICALFLIP && mo->z + mo->height > mo->ceilingz)
|
||||
|| (!(mo->eflags & MFE_VERTICALFLIP) && mo->z < mo->floorz))
|
||||
if (!(mo->flags & MF_NOCLIPHEIGHT)
|
||||
&& ((mo->eflags & MFE_VERTICALFLIP && mo->z + mo->height > mo->ceilingz)
|
||||
|| (!(mo->eflags & MFE_VERTICALFLIP) && mo->z < mo->floorz)))
|
||||
{
|
||||
if (mo->eflags & MFE_VERTICALFLIP)
|
||||
mo->player->viewheight -= (mo->z+mo->height) - mo->ceilingz;
|
||||
|
|
|
|||
19
src/p_user.c
19
src/p_user.c
|
|
@ -221,12 +221,20 @@ void P_CalcHeight(player_t *player)
|
|||
if (mo->eflags & MFE_VERTICALFLIP)
|
||||
{
|
||||
player->viewz = mo->z + mo->height - player->viewheight;
|
||||
|
||||
if (mo->flags & MF_NOCLIPHEIGHT)
|
||||
return;
|
||||
|
||||
if (player->viewz < mo->floorz + FixedMul(FRACUNIT, mo->scale))
|
||||
player->viewz = mo->floorz + FixedMul(FRACUNIT, mo->scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
player->viewz = mo->z + player->viewheight;
|
||||
|
||||
if (mo->flags & MF_NOCLIPHEIGHT)
|
||||
return;
|
||||
|
||||
if (player->viewz > mo->ceilingz - FixedMul(FRACUNIT, mo->scale))
|
||||
player->viewz = mo->ceilingz - FixedMul(FRACUNIT, mo->scale);
|
||||
}
|
||||
|
|
@ -2289,10 +2297,13 @@ static void P_SpectatorMovement(player_t *player)
|
|||
else if (cmd->buttons & BT_BRAKE)
|
||||
player->mo->z -= 32*mapobjectscale;
|
||||
|
||||
if (player->mo->z > player->mo->ceilingz - player->mo->height)
|
||||
player->mo->z = player->mo->ceilingz - player->mo->height;
|
||||
if (player->mo->z < player->mo->floorz)
|
||||
player->mo->z = player->mo->floorz;
|
||||
if (!(player->mo->flags & MF_NOCLIPHEIGHT))
|
||||
{
|
||||
if (player->mo->z > player->mo->ceilingz - player->mo->height)
|
||||
player->mo->z = player->mo->ceilingz - player->mo->height;
|
||||
if (player->mo->z < player->mo->floorz)
|
||||
player->mo->z = player->mo->floorz;
|
||||
}
|
||||
|
||||
player->mo->momx = player->mo->momy = player->mo->momz = 0;
|
||||
if (cmd->forwardmove != 0)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue