mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'backdrop-in-splitscreen' into 'master'
Overlays use dispoffset instead of position hack See merge request KartKrew/Kart!763
This commit is contained in:
commit
8f16a6a040
1 changed files with 19 additions and 23 deletions
42
src/p_mobj.c
42
src/p_mobj.c
|
|
@ -5257,27 +5257,8 @@ void P_RunOverlays(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!r_splitscreen /*&& rendermode != render_soft*/)
|
destx = mo->target->x;
|
||||||
{
|
desty = mo->target->y;
|
||||||
angle_t viewingangle;
|
|
||||||
|
|
||||||
if (players[displayplayers[0]].awayviewtics)
|
|
||||||
viewingangle = R_PointToAngle2(mo->target->x, mo->target->y, players[displayplayers[0]].awayviewmobj->x, players[displayplayers[0]].awayviewmobj->y);
|
|
||||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
|
||||||
viewingangle = R_PointToAngle2(mo->target->x, mo->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
|
||||||
else
|
|
||||||
viewingangle = R_PointToAngle2(mo->target->x, mo->target->y, camera[0].x, camera[0].y);
|
|
||||||
|
|
||||||
if (!(mo->state->frame & FF_ANIMATE) && mo->state->var1)
|
|
||||||
viewingangle += ANGLE_180;
|
|
||||||
destx = mo->target->x + P_ReturnThrustX(mo->target, viewingangle, FixedMul(FRACUNIT/4, mo->scale));
|
|
||||||
desty = mo->target->y + P_ReturnThrustY(mo->target, viewingangle, FixedMul(FRACUNIT/4, mo->scale));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
destx = mo->target->x;
|
|
||||||
desty = mo->target->y;
|
|
||||||
}
|
|
||||||
|
|
||||||
mo->eflags = (mo->eflags & ~MFE_VERTICALFLIP) | (mo->target->eflags & MFE_VERTICALFLIP);
|
mo->eflags = (mo->eflags & ~MFE_VERTICALFLIP) | (mo->target->eflags & MFE_VERTICALFLIP);
|
||||||
mo->scale = mo->destscale = FixedMul(mo->target->scale, mo->movefactor);
|
mo->scale = mo->destscale = FixedMul(mo->target->scale, mo->movefactor);
|
||||||
|
|
@ -5289,12 +5270,27 @@ void P_RunOverlays(void)
|
||||||
if ((mo->flags & MF_DONTENCOREMAP) != (mo->target->flags & MF_DONTENCOREMAP))
|
if ((mo->flags & MF_DONTENCOREMAP) != (mo->target->flags & MF_DONTENCOREMAP))
|
||||||
mo->flags ^= MF_DONTENCOREMAP;
|
mo->flags ^= MF_DONTENCOREMAP;
|
||||||
|
|
||||||
|
mo->dispoffset = mo->target->dispoffset + mo->info->dispoffset;
|
||||||
|
|
||||||
if (!(mo->state->frame & FF_ANIMATE))
|
if (!(mo->state->frame & FF_ANIMATE))
|
||||||
|
{
|
||||||
zoffs = FixedMul(((signed)mo->state->var2)*FRACUNIT, mo->scale);
|
zoffs = FixedMul(((signed)mo->state->var2)*FRACUNIT, mo->scale);
|
||||||
// if you're using FF_ANIMATE on an overlay,
|
|
||||||
// then you're on your own.
|
if (mo->state->var1)
|
||||||
|
{
|
||||||
|
mo->dispoffset--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mo->dispoffset++;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// if you're using FF_ANIMATE on an overlay,
|
||||||
|
// then you're on your own.
|
||||||
zoffs = 0;
|
zoffs = 0;
|
||||||
|
}
|
||||||
|
|
||||||
P_UnsetThingPosition(mo);
|
P_UnsetThingPosition(mo);
|
||||||
mo->x = destx;
|
mo->x = destx;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue