LagCompensation: Fix everything???
This commit is contained in:
parent
074c926896
commit
02f992aedb
@ -22,6 +22,12 @@
|
|||||||
"linux" "@_ZN21CLogicMeasureMovement9SetTargetEPKc"
|
"linux" "@_ZN21CLogicMeasureMovement9SetTargetEPKc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"CEntityTouchManager::FrameUpdatePostEntityThink"
|
||||||
|
{
|
||||||
|
"library" "server"
|
||||||
|
"linux" "@_ZN19CEntityTouchManager26FrameUpdatePostEntityThinkEv"
|
||||||
|
}
|
||||||
|
|
||||||
"CalcAbsolutePosition"
|
"CalcAbsolutePosition"
|
||||||
{
|
{
|
||||||
"library" "server"
|
"library" "server"
|
||||||
@ -59,6 +65,14 @@
|
|||||||
"this" "ignore"
|
"this" "ignore"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"CEntityTouchManager__FrameUpdatePostEntityThink"
|
||||||
|
{
|
||||||
|
"signature" "CEntityTouchManager::FrameUpdatePostEntityThink"
|
||||||
|
"callconv" "thiscall"
|
||||||
|
"return" "void"
|
||||||
|
"this" "ignore"
|
||||||
|
}
|
||||||
|
|
||||||
"CLogicMeasureMovement__SetTarget"
|
"CLogicMeasureMovement__SetTarget"
|
||||||
{
|
{
|
||||||
"signature" "CLogicMeasureMovement::SetTarget"
|
"signature" "CLogicMeasureMovement::SetTarget"
|
||||||
|
@ -90,6 +90,7 @@ Handle g_hUTIL_Remove;
|
|||||||
Handle g_hRestartRound;
|
Handle g_hRestartRound;
|
||||||
Handle g_hSetTarget;
|
Handle g_hSetTarget;
|
||||||
Handle g_hSetTargetPost;
|
Handle g_hSetTargetPost;
|
||||||
|
Handle g_hFrameUpdatePostEntityThink;
|
||||||
|
|
||||||
int g_iTouchStamp;
|
int g_iTouchStamp;
|
||||||
int g_iCollision;
|
int g_iCollision;
|
||||||
@ -188,6 +189,20 @@ public void OnPluginStart()
|
|||||||
SetFailState("Failed to detour CLogicMeasureMovement__SetTarget_post.");
|
SetFailState("Failed to detour CLogicMeasureMovement__SetTarget_post.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CEntityTouchManager::FrameUpdatePostEntityThink
|
||||||
|
g_hFrameUpdatePostEntityThink = DHookCreateFromConf(hGameData, "CEntityTouchManager__FrameUpdatePostEntityThink");
|
||||||
|
if(!g_hFrameUpdatePostEntityThink)
|
||||||
|
{
|
||||||
|
delete hGameData;
|
||||||
|
SetFailState("Failed to setup detour for CEntityTouchManager__FrameUpdatePostEntityThink");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!DHookEnableDetour(g_hFrameUpdatePostEntityThink, false, Detour_OnFrameUpdatePostEntityThink))
|
||||||
|
{
|
||||||
|
delete hGameData;
|
||||||
|
SetFailState("Failed to detour CEntityTouchManager__FrameUpdatePostEntityThink.");
|
||||||
|
}
|
||||||
|
|
||||||
delete hGameData;
|
delete hGameData;
|
||||||
|
|
||||||
RegAdminCmd("sm_unlag", Command_AddLagCompensation, ADMFLAG_RCON, "sm_unlag <entidx>");
|
RegAdminCmd("sm_unlag", Command_AddLagCompensation, ADMFLAG_RCON, "sm_unlag <entidx>");
|
||||||
@ -437,6 +452,8 @@ public void OnMapStart()
|
|||||||
|
|
||||||
public void OnRunThinkFunctions(bool simulating)
|
public void OnRunThinkFunctions(bool simulating)
|
||||||
{
|
{
|
||||||
|
FilterTriggerTouchPlayers(g_aBlockTriggerTouch, false);
|
||||||
|
|
||||||
for(int i = 0; i < g_iNumEntities; i++)
|
for(int i = 0; i < g_iNumEntities; i++)
|
||||||
{
|
{
|
||||||
if(!IsValidEntity(g_aEntityLagData[i].iEntity))
|
if(!IsValidEntity(g_aEntityLagData[i].iEntity))
|
||||||
@ -684,8 +701,17 @@ public void OnRunThinkFunctionsPost(bool simulating)
|
|||||||
);
|
);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FilterTriggerTouchPlayers(g_aBlockTriggerTouch, false);
|
public MRESReturn Detour_OnFrameUpdatePostEntityThink()
|
||||||
|
{
|
||||||
|
// VPhysics runs stuff again after QPhysics entity simulation so do this again...
|
||||||
|
for(int i = 0; i < g_iNumEntities; i++)
|
||||||
|
{
|
||||||
|
int EFlags = GetEntData(g_aEntityLagData[i].iEntity, g_iEFlags);
|
||||||
|
EFlags &= ~EFL_CHECK_UNTOUCH;
|
||||||
|
SetEntData(g_aEntityLagData[i].iEntity, g_iEFlags, EFlags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecordDataIntoRecord(int iEntity, LagRecord Record)
|
void RecordDataIntoRecord(int iEntity, LagRecord Record)
|
||||||
|
Loading…
Reference in New Issue
Block a user