From f56822984852337d9003e9c2cbd6504afc05c99f Mon Sep 17 00:00:00 2001 From: nullifiedcat Date: Fri, 21 Jul 2017 17:02:20 +0300 Subject: [PATCH] cat_nolerp 1 does something now --- src/globals.cpp | 10 ++++++++++ src/globals.h | 5 +++++ src/hooks/CreateMove.cpp | 16 ++++++++++------ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/globals.cpp b/src/globals.cpp index 4900541c..f4ad12e3 100644 --- a/src/globals.cpp +++ b/src/globals.cpp @@ -19,6 +19,11 @@ void ThirdpersonCallback(IConVar* var, const char* pOldValue, float flOldValue) } } +ConVar* sv_client_min_interp_ratio; +ConVar* cl_interp_ratio; +ConVar* cl_interp; +ConVar* cl_interpolate; + unsigned long tickcount = 0; char* force_name_newlined = new char[32] { 0 }; bool need_name_change = true; @@ -38,6 +43,11 @@ CatVar disconnect_reason(CV_STRING, "disconnect_reason", "", "Disconnect reason" CatVar event_log(CV_SWITCH, "events", "1", "Advanced Events"); void GlobalSettings::Init() { + sv_client_min_interp_ratio = g_ICvar->FindVar("sv_client_min_interp_ratio"); + cl_interp_ratio = g_ICvar->FindVar("cl_interp_ratio"); + cl_interp = g_ICvar->FindVar("cl_interp"); + cl_interpolate = g_ICvar->FindVar("cl_interpolate"); + bSendPackets = new bool; *bSendPackets = true; force_thirdperson.OnRegister([](CatVar* var) { diff --git a/src/globals.h b/src/globals.h index f56591e1..1615a516 100644 --- a/src/globals.h +++ b/src/globals.h @@ -15,6 +15,11 @@ class CatVar; extern int g_AppID; extern unsigned long tickcount; +extern ConVar* sv_client_min_interp_ratio; +extern ConVar* cl_interp_ratio; +extern ConVar* cl_interp; +extern ConVar* cl_interpolate; + extern CatVar event_log; extern CatVar cathook; // Master switch extern CatVar ignore_taunting; diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 94d94b1e..2d922652 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -163,15 +163,19 @@ bool CreateMove_hook(void* thisptr, float inputSample, CUserCmd* cmd) { time_replaced = false; curtime_old = g_GlobalVars->curtime; - static ConVar* sv_client_min_interp_ratio = g_ICvar->FindVar("sv_client_min_interp_ratio"); - static ConVar* cl_interp = g_ICvar->FindVar("cl_interp"); - static ConVar* cl_interp_ratio = g_ICvar->FindVar("cl_interp_ratio"); - if (nolerp) { g_pUserCmd->tick_count += 1; - if (sv_client_min_interp_ratio->GetInt() != -1) sv_client_min_interp_ratio->SetValue(-1); - if (cl_interp->GetInt() != 0) cl_interp->SetValue(0); + if (sv_client_min_interp_ratio->GetInt() != -1) { + //sv_client_min_interp_ratio->m_nFlags = 0; + sv_client_min_interp_ratio->SetValue(-1); + } + if (cl_interp->m_fValue != 0) { + cl_interp->SetValue(0); + cl_interp->m_fValue = 0.0f; + cl_interp->m_nValue = 0; + } if (cl_interp_ratio->GetInt() != 0) cl_interp_ratio->SetValue(0); + if (cl_interpolate->GetInt() != 0) cl_interpolate->SetValue(0); } if (!g_Settings.bInvalid && CE_GOOD(g_pLocalPlayer->entity)) {