From cb61300b61ba18d486d19edf315f05b5b494fac3 Mon Sep 17 00:00:00 2001 From: fgsfds Date: Wed, 4 Mar 2020 02:39:18 +0300 Subject: [PATCH] purge cl_interp from the code --- src/game/g_net.pas | 2 -- src/game/g_options.pas | 1 - src/game/g_player.pas | 76 +++++++++--------------------------------- 3 files changed, 15 insertions(+), 64 deletions(-) diff --git a/src/game/g_net.pas b/src/game/g_net.pas index b658c37..c06a021 100644 --- a/src/game/g_net.pas +++ b/src/game/g_net.pas @@ -166,7 +166,6 @@ var NetPlrUID1: Integer = -1; NetPlrUID2: Integer = -1; - NetInterpLevel: Integer = 1; NetUpdateRate: Cardinal = 0; // as soon as possible NetRelupdRate: Cardinal = 18; // around two times a second NetMasterRate: Cardinal = 60000; @@ -2439,7 +2438,6 @@ initialization conRegVar('cl_downloadtimeout', @g_Net_DownloadTimeout, 0.0, 1000000.0, '', 'timeout in seconds, 0 to disable it'); conRegVar('cl_predictself', @NetPredictSelf, '', 'predict local player'); conRegVar('cl_forceplayerupdate', @NetForcePlayerUpdate, '', 'update net players on NET_MSG_PLRPOS'); - conRegVar('cl_interp', @NetInterpLevel, '', 'net player interpolation steps'); conRegVar('cl_last_ip', @NetClientIP, '', 'address of the last you have connected to'); conRegVar('cl_last_port', @NetClientPort, '', 'port of the last server you have connected to'); diff --git a/src/game/g_options.pas b/src/game/g_options.pas index ecc30f9..f7830d7 100644 --- a/src/game/g_options.pas +++ b/src/game/g_options.pas @@ -291,7 +291,6 @@ begin NetForwardPorts := False; (* section Client *) - NetInterpLevel := 2; NetForcePlayerUpdate := False; NetPredictSelf := True; NetClientIP := '127.0.0.1'; diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 068c2b4..362c283 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -171,7 +171,6 @@ type FLastSpawnerUID: Word; FLastHit: Byte; FObj: TObj; - FXTo, FYTo: Integer; FSpectatePlayer: Integer; FFirePainTime: Integer; FFireAttacker: Word; @@ -335,8 +334,6 @@ type procedure LoadState (st: TStream); virtual; procedure PauseSounds(Enable: Boolean); procedure NetFire(Wpn: Byte; X, Y, AX, AY: Integer; WID: Integer = -1); - procedure DoLerp(Level: Integer = 2); - procedure SetLerp(XTo, YTo: Integer); procedure QueueWeaponSwitch(Weapon: Byte); procedure RealizeCurrentWeapon(); procedure FlamerOn; @@ -4784,8 +4781,6 @@ begin GameX := gMapInfo.Width div 2; GameY := gMapInfo.Height div 2; end; - FXTo := GameX; - FYTo := GameY; FAlive := False; FSpectator := True; @@ -4818,11 +4813,7 @@ begin Exit; FGhost := not FGhost; FPhysics := not FGhost; - if FGhost then - begin - FXTo := FObj.X; - FYTo := FObj.Y; - end else + if not FGhost then begin FObj.Accel.X := 0; FObj.Accel.Y := 0; @@ -4967,11 +4958,6 @@ begin FObj.Y := Y-PLAYER_RECT.Y; FObj.oldX := FObj.X; // don't interpolate after respawn FObj.oldY := FObj.Y; - if FAlive and FGhost then - begin - FXTo := FObj.X; - FYTo := FObj.Y; - end; if not g_Game_IsNet then begin @@ -5069,9 +5055,6 @@ begin NetServer := g_Game_IsNet and g_Game_IsServer; AnyServer := g_Game_IsServer; - if FGhost then - DoLerp(4); - if NetServer then if FClientID >= 0 then begin @@ -5234,33 +5217,33 @@ begin begin if FKeys[KEY_UP].Pressed or FKeys[KEY_JUMP].Pressed then begin - FYTo := FObj.Y - 32; + FObj.Y := FObj.Y - 32; FSpectatePlayer := -1; end; if FKeys[KEY_DOWN].Pressed then begin - FYTo := FObj.Y + 32; + FObj.Y := FObj.Y + 32; FSpectatePlayer := -1; end; if FKeys[KEY_LEFT].Pressed then begin - FXTo := FObj.X - 32; + FObj.X := FObj.X - 32; FSpectatePlayer := -1; end; if FKeys[KEY_RIGHT].Pressed then begin - FXTo := FObj.X + 32; + FObj.X := FObj.X + 32; FSpectatePlayer := -1; end; - if (FXTo < -64) then - FXTo := -64 - else if (FXTo > gMapInfo.Width + 32) then - FXTo := gMapInfo.Width + 32; - if (FYTo < -72) then - FYTo := -72 - else if (FYTo > gMapInfo.Height + 32) then - FYTo := gMapInfo.Height + 32; + if (FObj.X < -64) then + FObj.X := -64 + else if (FObj.X > gMapInfo.Width + 32) then + FObj.X := gMapInfo.Width + 32; + if (FObj.Y < -72) then + FObj.Y := -72 + else if (FObj.Y > gMapInfo.Height + 32) then + FObj.Y := gMapInfo.Height + 32; end; if FPhysics then @@ -5278,8 +5261,8 @@ begin if gPlayers[FSpectatePlayer] <> nil then if gPlayers[FSpectatePlayer].alive then begin - FXTo := gPlayers[FSpectatePlayer].GameX; - FYTo := gPlayers[FSpectatePlayer].GameY; + FObj.X := gPlayers[FSpectatePlayer].GameX; + FObj.Y := gPlayers[FSpectatePlayer].GameY; end; end; @@ -5738,35 +5721,6 @@ begin else if (FAngle = ANGLE_LEFTUP) or (FAngle = ANGLE_RIGHTUP) then SetAction(A_ATTACKUP); end; -procedure TPlayer.DoLerp(Level: Integer = 2); -begin - if FObj.X <> FXTo then FObj.X := Lerp(FObj.X, FXTo, Level); - if FObj.Y <> FYTo then FObj.Y := Lerp(FObj.Y, FYTo, Level); -end; - -procedure TPlayer.SetLerp(XTo, YTo: Integer); -var - AX, AY: Integer; -begin - if NetInterpLevel < 1 then - begin - FObj.X := XTo; - FObj.Y := YTo; - end - else - begin - FXTo := XTo; - FYTo := YTo; - - AX := Abs(FXTo - FObj.X); - AY := Abs(FYTo - FObj.Y); - if (AX > 32) or (AX <= NetInterpLevel) then - FObj.X := FXTo; - if (AY > 32) or (AY <= NetInterpLevel) then - FObj.Y := FYTo; - end; -end; - function TPlayer.FullInLift(XInc, YInc: Integer): Integer; begin if g_Map_CollidePanel(FObj.X+PLAYER_RECT.X+XInc, FObj.Y+PLAYER_RECT.Y+YInc, -- 2.29.2