Commit 07df0ebb authored by NY00123's avatar NY00123 Committed by Evan Ramos
Browse files

SW: Afraid that we should disable almost all kinds of SOs in multiplayer

for now, due to possible jitters. Currently leaving remote-controlled SOs.
parent bb3ead12
......@@ -2353,7 +2353,7 @@ drawscreen(PLAYERp pp)
tq16ang = camerapp->oq16ang + mulscale16(((camerapp->q16ang + fix16_from_int(1024) - camerapp->oq16ang) & 0x7FFFFFF) - fix16_from_int(1024), smoothratio);
tq16horiz = camerapp->oq16horiz + mulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio);
}
else if (gs.InterpolateSO && (!CommEnabled || !pp->sop_control))
else if (gs.InterpolateSO && !CommEnabled)
{
tq16ang = camerapp->oq16ang + mulscale16(((pp->camq16ang + fix16_from_int(1024) - camerapp->oq16ang) & 0x7FFFFFF) - fix16_from_int(1024), smoothratio);
tq16horiz = camerapp->oq16horiz + mulscale16(pp->camq16horiz - camerapp->oq16horiz, smoothratio);
......
......@@ -251,10 +251,12 @@ void so_dointerpolations(int32_t smoothratio) // Stick at b
if (sop->xmid == INT32_MAX /*|| sop->xmid == MAXSO*/)
continue;
// Unfortunately, interpolating over less samples doesn't work well in
// multiplayer. Same with sector objects controlled and carrying the player.
// Unfortunately, interpolating over less samples doesn't work well
// in multiplayer. We also skip any sector object not
// remotely controlled by some player.
if (CommEnabled &&
((interp->lasttic != synctics) ||
!(sop->controller) ||
((Player[screenpeek].sop_control == sop) &&
!Player[screenpeek].sop_remote)))
continue;
......
......@@ -1631,7 +1631,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny)
if (TEST(sop->flags, SOBJ_DONT_ROTATE))
{
if (!gs.InterpolateSO)
if (!gs.InterpolateSO || CommEnabled)
{
pp->oposx = pp->posx;
pp->oposy = pp->posy;
......@@ -1681,7 +1681,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny)
pp->camq16ang = NORM_Q16ANGLE(pp->camq16ang);
pp->q16ang = NORM_Q16ANGLE(pp->RevolveQ16Ang + fix16_from_int(pp->RevolveDeltaAng));
if (!gs.InterpolateSO)
if (!gs.InterpolateSO || CommEnabled)
{
pp->oq16ang = pp->q16ang;
pp->oposx = pp->posx;
......@@ -1941,7 +1941,7 @@ PlayerPart:
pp->SpriteP->z = pp->loz;
}
}
if (!gs.InterpolateSO)
if (!gs.InterpolateSO || CommEnabled)
pp->oposz = pp->posz;
}
else
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment