LagCompensation: fix off-by-one error
and iPlayerSimTick being calculated wrong
This commit is contained in:
parent
a36d3293c9
commit
85445b4591
@ -465,7 +465,7 @@ public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3
|
|||||||
if(iDelta > MAX_RECORDS)
|
if(iDelta > MAX_RECORDS)
|
||||||
iDelta = MAX_RECORDS;
|
iDelta = MAX_RECORDS;
|
||||||
|
|
||||||
int iPlayerSimTick = iGameTick + iDelta;
|
int iPlayerSimTick = iGameTick - iDelta;
|
||||||
|
|
||||||
for(int i = 0; i < g_iNumEntities; i++)
|
for(int i = 0; i < g_iNumEntities; i++)
|
||||||
{
|
{
|
||||||
@ -497,7 +497,10 @@ public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3
|
|||||||
if(iDelta >= g_aEntityLagData[i].iNumRecords)
|
if(iDelta >= g_aEntityLagData[i].iNumRecords)
|
||||||
iDelta = g_aEntityLagData[i].iNumRecords - 1;
|
iDelta = g_aEntityLagData[i].iNumRecords - 1;
|
||||||
|
|
||||||
int iRecordIndex = g_aEntityLagData[i].iRecordIndex - iDelta;
|
// +1 because the newest record in the list is one tick old
|
||||||
|
// this is because we simulate players first
|
||||||
|
// hence no new entity record was inserted on the current tick
|
||||||
|
int iRecordIndex = g_aEntityLagData[i].iRecordIndex - iDelta + 1;
|
||||||
if(iRecordIndex < 0)
|
if(iRecordIndex < 0)
|
||||||
iRecordIndex += MAX_RECORDS;
|
iRecordIndex += MAX_RECORDS;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user