LagCompensation 1.0.3: add mins and maxs, remove PVS invalidation (was never needed)
This commit is contained in:
parent
48230fb4d7
commit
4e5255b835
@ -5,7 +5,7 @@
|
|||||||
#include <dhooks>
|
#include <dhooks>
|
||||||
#include <clientprefs>
|
#include <clientprefs>
|
||||||
|
|
||||||
#define PLUGIN_VERSION "1.0.2"
|
#define PLUGIN_VERSION "1.0.3"
|
||||||
|
|
||||||
#define SetBit(%1,%2) ((%1)[(%2) >> 5] |= (1 << ((%2) & 31)))
|
#define SetBit(%1,%2) ((%1)[(%2) >> 5] |= (1 << ((%2) & 31)))
|
||||||
#define ClearBit(%1,%2) ((%1)[(%2) >> 5] &= ~(1 << ((%2) & 31)))
|
#define ClearBit(%1,%2) ((%1)[(%2) >> 5] &= ~(1 << ((%2) & 31)))
|
||||||
@ -85,6 +85,8 @@ enum struct LagRecord
|
|||||||
float vecAbsOrigin[3];
|
float vecAbsOrigin[3];
|
||||||
float angRotation[3];
|
float angRotation[3];
|
||||||
float angAbsRotation[3];
|
float angAbsRotation[3];
|
||||||
|
float vecMins[3];
|
||||||
|
float vecMaxs[3];
|
||||||
float flSimulationTime;
|
float flSimulationTime;
|
||||||
float rgflCoordinateFrame[COORDINATE_FRAME_SIZE];
|
float rgflCoordinateFrame[COORDINATE_FRAME_SIZE];
|
||||||
}
|
}
|
||||||
@ -139,6 +141,8 @@ int g_iVecOrigin;
|
|||||||
int g_iVecAbsOrigin;
|
int g_iVecAbsOrigin;
|
||||||
int g_iAngRotation;
|
int g_iAngRotation;
|
||||||
int g_iAngAbsRotation;
|
int g_iAngAbsRotation;
|
||||||
|
int g_iVecMins;
|
||||||
|
int g_iVecMaxs;
|
||||||
int g_iSimulationTime;
|
int g_iSimulationTime;
|
||||||
int g_iCoordinateFrame;
|
int g_iCoordinateFrame;
|
||||||
|
|
||||||
@ -390,6 +394,8 @@ public void OnMapStart()
|
|||||||
g_iVecAbsOrigin = FindDataMapInfo(0, "m_vecAbsOrigin");
|
g_iVecAbsOrigin = FindDataMapInfo(0, "m_vecAbsOrigin");
|
||||||
g_iAngRotation = FindDataMapInfo(0, "m_angRotation");
|
g_iAngRotation = FindDataMapInfo(0, "m_angRotation");
|
||||||
g_iAngAbsRotation = FindDataMapInfo(0, "m_angAbsRotation");
|
g_iAngAbsRotation = FindDataMapInfo(0, "m_angAbsRotation");
|
||||||
|
g_iVecMins = FindDataMapInfo(0, "m_vecMins");
|
||||||
|
g_iVecMaxs = FindDataMapInfo(0, "m_vecMaxs");
|
||||||
g_iSimulationTime = FindDataMapInfo(0, "m_flSimulationTime");
|
g_iSimulationTime = FindDataMapInfo(0, "m_flSimulationTime");
|
||||||
g_iCoordinateFrame = FindDataMapInfo(0, "m_rgflCoordinateFrame");
|
g_iCoordinateFrame = FindDataMapInfo(0, "m_rgflCoordinateFrame");
|
||||||
|
|
||||||
@ -821,7 +827,7 @@ public void OnRunThinkFunctions(bool simulating)
|
|||||||
|
|
||||||
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2])
|
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2])
|
||||||
{
|
{
|
||||||
if(!IsPlayerAlive(client))
|
if(!IsPlayerAlive(client) || IsFakeClient(client))
|
||||||
return Plugin_Continue;
|
return Plugin_Continue;
|
||||||
|
|
||||||
// -1 because the newest record in the list is one tick old
|
// -1 because the newest record in the list is one tick old
|
||||||
@ -994,6 +1000,8 @@ void RecordDataIntoRecord(int iEntity, LagRecord Record)
|
|||||||
GetEntDataVector(iEntity, g_iVecAbsOrigin, Record.vecAbsOrigin);
|
GetEntDataVector(iEntity, g_iVecAbsOrigin, Record.vecAbsOrigin);
|
||||||
GetEntDataVector(iEntity, g_iAngRotation, Record.angRotation);
|
GetEntDataVector(iEntity, g_iAngRotation, Record.angRotation);
|
||||||
GetEntDataVector(iEntity, g_iAngAbsRotation, Record.angAbsRotation);
|
GetEntDataVector(iEntity, g_iAngAbsRotation, Record.angAbsRotation);
|
||||||
|
GetEntDataVector(iEntity, g_iVecMins, Record.vecMins);
|
||||||
|
GetEntDataVector(iEntity, g_iVecMaxs, Record.vecMaxs);
|
||||||
GetEntDataArray(iEntity, g_iCoordinateFrame, view_as<int>(Record.rgflCoordinateFrame), COORDINATE_FRAME_SIZE);
|
GetEntDataArray(iEntity, g_iCoordinateFrame, view_as<int>(Record.rgflCoordinateFrame), COORDINATE_FRAME_SIZE);
|
||||||
Record.flSimulationTime = GetEntDataFloat(iEntity, g_iSimulationTime);
|
Record.flSimulationTime = GetEntDataFloat(iEntity, g_iSimulationTime);
|
||||||
}
|
}
|
||||||
@ -1038,11 +1046,6 @@ bool DoesRotationInvalidateSurroundingBox(int iEntity)
|
|||||||
|
|
||||||
void InvalidatePhysicsRecursive(int iEntity)
|
void InvalidatePhysicsRecursive(int iEntity)
|
||||||
{
|
{
|
||||||
// NetworkProp()->MarkPVSInformationDirty()
|
|
||||||
int fStateFlags = GetEdictFlags(iEntity);
|
|
||||||
fStateFlags |= FL_EDICT_DIRTY_PVS_INFORMATION;
|
|
||||||
SetEdictFlags(iEntity, fStateFlags);
|
|
||||||
|
|
||||||
// CollisionProp()->MarkPartitionHandleDirty();
|
// CollisionProp()->MarkPartitionHandleDirty();
|
||||||
Address CollisionProp = GetEntityAddress(iEntity) + view_as<Address>(g_iCollision);
|
Address CollisionProp = GetEntityAddress(iEntity) + view_as<Address>(g_iCollision);
|
||||||
SDKCall(g_hMarkPartitionHandleDirty, CollisionProp);
|
SDKCall(g_hMarkPartitionHandleDirty, CollisionProp);
|
||||||
@ -1062,6 +1065,8 @@ void RestoreEntityFromRecord(int iEntity, LagRecord Record)
|
|||||||
SetEntDataVector(iEntity, g_iVecAbsOrigin, Record.vecAbsOrigin);
|
SetEntDataVector(iEntity, g_iVecAbsOrigin, Record.vecAbsOrigin);
|
||||||
SetEntDataVector(iEntity, g_iAngRotation, Record.angRotation);
|
SetEntDataVector(iEntity, g_iAngRotation, Record.angRotation);
|
||||||
SetEntDataVector(iEntity, g_iAngAbsRotation, Record.angAbsRotation);
|
SetEntDataVector(iEntity, g_iAngAbsRotation, Record.angAbsRotation);
|
||||||
|
SetEntDataVector(iEntity, g_iVecMins, Record.vecMins);
|
||||||
|
SetEntDataVector(iEntity, g_iVecMaxs, Record.vecMaxs);
|
||||||
SetEntDataArray(iEntity, g_iCoordinateFrame, view_as<int>(Record.rgflCoordinateFrame), COORDINATE_FRAME_SIZE);
|
SetEntDataArray(iEntity, g_iCoordinateFrame, view_as<int>(Record.rgflCoordinateFrame), COORDINATE_FRAME_SIZE);
|
||||||
SetEntDataFloat(iEntity, g_iSimulationTime, Record.flSimulationTime);
|
SetEntDataFloat(iEntity, g_iSimulationTime, Record.flSimulationTime);
|
||||||
|
|
||||||
@ -1208,6 +1213,8 @@ void LagRecord_Copy(LagRecord obj, const LagRecord other)
|
|||||||
obj.vecAbsOrigin[i] = other.vecAbsOrigin[i];
|
obj.vecAbsOrigin[i] = other.vecAbsOrigin[i];
|
||||||
obj.angRotation[i] = other.angRotation[i];
|
obj.angRotation[i] = other.angRotation[i];
|
||||||
obj.angAbsRotation[i] = other.angAbsRotation[i];
|
obj.angAbsRotation[i] = other.angAbsRotation[i];
|
||||||
|
obj.vecMins[i] = other.vecMins[i];
|
||||||
|
obj.vecMaxs[i] = other.vecMaxs[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.flSimulationTime = other.flSimulationTime;
|
obj.flSimulationTime = other.flSimulationTime;
|
||||||
|
Loading…
Reference in New Issue
Block a user