mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Merge branch 'shield-overlay-no-splitscreen' into 'master'
S3K Shields: remove splitscreen-dependent mobj position behaviour See merge request KartKrew/Kart!1058
This commit is contained in:
commit
cb0b4df186
1 changed files with 7 additions and 75 deletions
82
src/p_mobj.c
82
src/p_mobj.c
|
|
@ -8085,7 +8085,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
case MT_LIGHTNINGSHIELD:
|
case MT_LIGHTNINGSHIELD:
|
||||||
{
|
{
|
||||||
fixed_t destx, desty;
|
|
||||||
if (!mobj->target || !mobj->target->health || !mobj->target->player
|
if (!mobj->target || !mobj->target->health || !mobj->target->player
|
||||||
|| mobj->target->player->curshield != KSHIELD_LIGHTNING)
|
|| mobj->target->player->curshield != KSHIELD_LIGHTNING)
|
||||||
{
|
{
|
||||||
|
|
@ -8094,36 +8093,11 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
P_SetScale(mobj, (mobj->destscale = (5*mobj->target->scale)>>2));
|
P_SetScale(mobj, (mobj->destscale = (5*mobj->target->scale)>>2));
|
||||||
|
|
||||||
if (!r_splitscreen /*&& rendermode != render_soft*/)
|
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z);
|
||||||
{
|
|
||||||
angle_t viewingangle;
|
|
||||||
statenum_t curstate = ((mobj->tics == 1) ? (mobj->state->nextstate) : ((statenum_t)(mobj->state-states)));
|
|
||||||
|
|
||||||
if (players[displayplayers[0]].awayview.tics)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
|
||||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
|
||||||
else
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, camera[0].x, camera[0].y);
|
|
||||||
|
|
||||||
if (curstate > S_LIGHTNINGSHIELD15 && curstate <= S_LIGHTNINGSHIELD24)
|
|
||||||
viewingangle += ANGLE_180;
|
|
||||||
|
|
||||||
destx = mobj->target->x + P_ReturnThrustX(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
desty = mobj->target->y + P_ReturnThrustY(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
destx = mobj->target->x;
|
|
||||||
desty = mobj->target->y;
|
|
||||||
}
|
|
||||||
|
|
||||||
P_MoveOrigin(mobj, destx, desty, mobj->target->z);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MT_BUBBLESHIELD:
|
case MT_BUBBLESHIELD:
|
||||||
{
|
{
|
||||||
fixed_t destx, desty;
|
|
||||||
fixed_t scale;
|
fixed_t scale;
|
||||||
statenum_t curstate;
|
statenum_t curstate;
|
||||||
|
|
||||||
|
|
@ -8226,34 +8200,13 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
mobj->extravalue2 = mobj->target->player->bubbleblowup;
|
mobj->extravalue2 = mobj->target->player->bubbleblowup;
|
||||||
P_SetScale(mobj, (mobj->destscale = scale));
|
P_SetScale(mobj, (mobj->destscale = scale));
|
||||||
|
|
||||||
if (!splitscreen /*&& rendermode != render_soft*/)
|
|
||||||
{
|
|
||||||
angle_t viewingangle;
|
|
||||||
|
|
||||||
if (players[displayplayers[0]].awayview.tics)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
|
||||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
|
||||||
else
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, camera[0].x, camera[0].y);
|
|
||||||
|
|
||||||
destx = mobj->target->x + P_ReturnThrustX(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
desty = mobj->target->y + P_ReturnThrustY(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
destx = mobj->target->x;
|
|
||||||
desty = mobj->target->y;
|
|
||||||
}
|
|
||||||
|
|
||||||
mobj->flags &= ~(MF_NOCLIPTHING);
|
mobj->flags &= ~(MF_NOCLIPTHING);
|
||||||
P_MoveOrigin(mobj, destx, desty, mobj->target->z);
|
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z);
|
||||||
mobj->flags |= MF_NOCLIPTHING;
|
mobj->flags |= MF_NOCLIPTHING;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MT_FLAMESHIELD:
|
case MT_FLAMESHIELD:
|
||||||
{
|
{
|
||||||
fixed_t destx, desty;
|
|
||||||
statenum_t curstate;
|
statenum_t curstate;
|
||||||
statenum_t underlayst = S_NULL;
|
statenum_t underlayst = S_NULL;
|
||||||
INT32 flamemax = 0;
|
INT32 flamemax = 0;
|
||||||
|
|
@ -8273,6 +8226,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
|
|
||||||
if (mobj->target->player->flamedash)
|
if (mobj->target->player->flamedash)
|
||||||
{
|
{
|
||||||
|
mobj->dispoffset = 1;
|
||||||
|
|
||||||
if (!(curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12))
|
if (!(curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12))
|
||||||
P_SetMobjState(mobj, S_FLAMESHIELDDASH1);
|
P_SetMobjState(mobj, S_FLAMESHIELDDASH1);
|
||||||
|
|
||||||
|
|
@ -8314,6 +8269,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
if (curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12)
|
if (curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12)
|
||||||
P_SetMobjState(mobj, S_FLAMESHIELD1);
|
P_SetMobjState(mobj, S_FLAMESHIELD1);
|
||||||
|
mobj->dispoffset = ((curstate - S_FLAMESHIELD1) & 1) ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mobj->extravalue1 = mobj->target->player->flamedash;
|
mobj->extravalue1 = mobj->target->player->flamedash;
|
||||||
|
|
@ -8333,36 +8289,12 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!splitscreen /*&& rendermode != render_soft*/)
|
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z);
|
||||||
{
|
|
||||||
angle_t viewingangle;
|
|
||||||
|
|
||||||
if (players[displayplayers[0]].awayview.tics)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
|
||||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
|
||||||
else
|
|
||||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, camera[0].x, camera[0].y);
|
|
||||||
|
|
||||||
if (curstate >= S_FLAMESHIELD1 && curstate < S_FLAMESHIELDDASH1 && ((curstate-S_FLAMESHIELD1) & 1))
|
|
||||||
viewingangle += ANGLE_180;
|
|
||||||
|
|
||||||
destx = mobj->target->x + P_ReturnThrustX(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
desty = mobj->target->y + P_ReturnThrustY(mobj->target, viewingangle, mobj->scale>>4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
destx = mobj->target->x;
|
|
||||||
desty = mobj->target->y;
|
|
||||||
}
|
|
||||||
|
|
||||||
P_MoveOrigin(mobj, destx, desty, mobj->target->z);
|
|
||||||
mobj->angle = K_MomentumAngle(mobj->target);
|
mobj->angle = K_MomentumAngle(mobj->target);
|
||||||
|
|
||||||
if (underlayst != S_NULL)
|
if (underlayst != S_NULL)
|
||||||
{
|
{
|
||||||
mobj_t *underlay = P_SpawnMobj(mobj->target->x, mobj->target->y, mobj->target->z, MT_FLAMESHIELDUNDERLAY);
|
mobj_t *underlay = P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_FLAMESHIELDUNDERLAY);
|
||||||
underlay->angle = mobj->angle;
|
|
||||||
P_SetMobjState(underlay, underlayst);
|
P_SetMobjState(underlay, underlayst);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue