SW: Allow sector object interpolations to be disabled for debugging.

New code is causing some issues. Upstream allow it to be toggled, so let's do that also.
This commit is contained in:
Mitchell Richters 2020-05-23 09:26:51 +10:00 committed by Christoph Oelckers
parent 355ef884c8
commit d98813f00f
7 changed files with 10 additions and 10 deletions

View file

@ -88,6 +88,7 @@ CVARD(Bool, cl_viewvbob, true, CVAR_ARCHIVE|CVAR_FRONTEND_BLOOD, "enable/disable
CVARD(Bool, cl_interpolate, true, CVAR_ARCHIVE, "enable/disable view interpolation") // only implemented in Blood CVARD(Bool, cl_interpolate, true, CVAR_ARCHIVE, "enable/disable view interpolation") // only implemented in Blood
CVARD(Bool, cl_slopetilting, false, CVAR_ARCHIVE, "enable/disable slope tilting") // only implemented in Blood CVARD(Bool, cl_slopetilting, false, CVAR_ARCHIVE, "enable/disable slope tilting") // only implemented in Blood
CVARD(Int, cl_showweapon, 1, CVAR_ARCHIVE, "enable/disable show weapons") // only implemented in Blood CVARD(Int, cl_showweapon, 1, CVAR_ARCHIVE, "enable/disable show weapons") // only implemented in Blood
CVARD(Bool, cl_sointerpolation, true, CVAR_ARCHIVE, "enable/disable sector object interpolation") // only implemented in SW
CUSTOM_CVARD(Int, cl_crosshairscale, 50, CVAR_ARCHIVE, "changes the size of the crosshair") CUSTOM_CVARD(Int, cl_crosshairscale, 50, CVAR_ARCHIVE, "changes the size of the crosshair")
{ {
if (self < 1) self = 1; if (self < 1) self = 1;

View file

@ -23,6 +23,7 @@ EXTERN_CVAR(Bool, cl_slopetilting)
EXTERN_CVAR(Int, cl_showweapon) EXTERN_CVAR(Int, cl_showweapon)
EXTERN_CVAR(Int, cl_weaponswitch) EXTERN_CVAR(Int, cl_weaponswitch)
EXTERN_CVAR(Int, cl_crosshairscale) EXTERN_CVAR(Int, cl_crosshairscale)
EXTERN_CVAR(Bool, cl_sointerpolation)
EXTERN_CVAR(Bool, demo_playloop) EXTERN_CVAR(Bool, demo_playloop)
EXTERN_CVAR(Bool, demorec_seeds_cvar) EXTERN_CVAR(Bool, demorec_seeds_cvar)

View file

@ -2034,7 +2034,7 @@ drawscreen(PLAYERp pp)
{ {
dointerpolations(smoothratio); // Stick at beginning of drawscreen dointerpolations(smoothratio); // Stick at beginning of drawscreen
short_dointerpolations(smoothratio); // Stick at beginning of drawscreen short_dointerpolations(smoothratio); // Stick at beginning of drawscreen
if (gs.InterpolateSO) if (cl_sointerpolation)
so_dointerpolations(smoothratio); // Stick at beginning of drawscreen so_dointerpolations(smoothratio); // Stick at beginning of drawscreen
} }
@ -2053,7 +2053,7 @@ drawscreen(PLAYERp pp)
tq16ang = camerapp->oq16ang + mulscale16(NORM_Q16ANGLE(camerapp->q16ang + fix16_from_int(1024) - camerapp->oq16ang) - fix16_from_int(1024), smoothratio); tq16ang = camerapp->oq16ang + mulscale16(NORM_Q16ANGLE(camerapp->q16ang + fix16_from_int(1024) - camerapp->oq16ang) - fix16_from_int(1024), smoothratio);
tq16horiz = camerapp->oq16horiz + mulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio); tq16horiz = camerapp->oq16horiz + mulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio);
} }
else if (gs.InterpolateSO && !CommEnabled) else if (cl_sointerpolation && !CommEnabled)
{ {
tq16ang = camerapp->oq16ang + mulscale16(((pp->camq16ang + fix16_from_int(1024) - camerapp->oq16ang) & 0x7FFFFFF) - fix16_from_int(1024), smoothratio); 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); tq16horiz = camerapp->oq16horiz + mulscale16(pp->camq16horiz - camerapp->oq16horiz, smoothratio);
@ -2096,7 +2096,7 @@ drawscreen(PLAYERp pp)
if (pp->sop_riding || pp->sop_control) if (pp->sop_riding || pp->sop_control)
{ {
if (pp->sop_control && if (pp->sop_control &&
(!gs.InterpolateSO || (CommEnabled && !pp->sop_remote))) (!cl_sointerpolation || (CommEnabled && !pp->sop_remote)))
{ {
tx = pp->posx; tx = pp->posx;
ty = pp->posy; ty = pp->posy;
@ -2324,7 +2324,7 @@ drawscreen(PLAYERp pp)
restoreinterpolations(); // Stick at end of drawscreen restoreinterpolations(); // Stick at end of drawscreen
short_restoreinterpolations(); // Stick at end of drawscreen short_restoreinterpolations(); // Stick at end of drawscreen
if (gs.InterpolateSO) if (cl_sointerpolation)
so_restoreinterpolations(); // Stick at end of drawscreen so_restoreinterpolations(); // Stick at end of drawscreen
PostDraw(); PostDraw();

View file

@ -210,7 +210,6 @@ const GAME_SET gs_defaults =
{ {
2, // border 2, // border
0, // border tile 0, // border tile
TRUE, // interpolate sector objects
// Network game settings // Network game settings
0, // GameType 0, // GameType
0, // Level 0, // Level

View file

@ -183,7 +183,7 @@ void so_updateinterpolations(void) // Stick at beginning of domovethings
SECTOR_OBJECTp sop; SECTOR_OBJECTp sop;
so_interp *interp; so_interp *interp;
so_interp::interp_data *data; so_interp::interp_data *data;
SWBOOL interpolating = gs.InterpolateSO && !CommEnabled; // If changing from menu SWBOOL interpolating = cl_sointerpolation && !CommEnabled; // If changing from menu
for (sop = SectorObject, interp = so_interpdata; for (sop = SectorObject, interp = so_interpdata;
sop < &SectorObject[MAX_SECTOR_OBJECTS]; sop++, interp++) sop < &SectorObject[MAX_SECTOR_OBJECTS]; sop++, interp++)

View file

@ -33,7 +33,6 @@ typedef struct
{ {
int8_t BorderNum; int8_t BorderNum;
int8_t BorderTile; // Network only - disabled int8_t BorderTile; // Network only - disabled
SWBOOL InterpolateSO;
// Net Options from Menus // Net Options from Menus
uint8_t NetGameType; // 0=DeathMatch [spawn], 1=Cooperative 2=DeathMatch [no spawn] uint8_t NetGameType; // 0=DeathMatch [spawn], 1=Cooperative 2=DeathMatch [no spawn]
uint8_t NetLevel; // 1-28 uint8_t NetLevel; // 1-28

View file

@ -1636,7 +1636,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny)
if (TEST(sop->flags, SOBJ_DONT_ROTATE)) if (TEST(sop->flags, SOBJ_DONT_ROTATE))
{ {
if (!gs.InterpolateSO || CommEnabled) if (!cl_sointerpolation || CommEnabled)
{ {
pp->oposx = pp->posx; pp->oposx = pp->posx;
pp->oposy = pp->posy; pp->oposy = pp->posy;
@ -1686,7 +1686,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny)
pp->camq16ang = NORM_Q16ANGLE(pp->camq16ang); pp->camq16ang = NORM_Q16ANGLE(pp->camq16ang);
pp->q16ang = NORM_Q16ANGLE(pp->RevolveQ16Ang + fix16_from_int(pp->RevolveDeltaAng)); pp->q16ang = NORM_Q16ANGLE(pp->RevolveQ16Ang + fix16_from_int(pp->RevolveDeltaAng));
if (!gs.InterpolateSO || CommEnabled) if (!cl_sointerpolation || CommEnabled)
{ {
pp->oq16ang = pp->q16ang; pp->oq16ang = pp->q16ang;
pp->oposx = pp->posx; pp->oposx = pp->posx;
@ -1946,7 +1946,7 @@ PlayerPart:
pp->SpriteP->z = pp->loz; pp->SpriteP->z = pp->loz;
} }
} }
if (!gs.InterpolateSO || CommEnabled) if (!cl_sointerpolation || CommEnabled)
pp->oposz = pp->posz; pp->oposz = pp->posz;
} }
else else