diff --git a/include/hacks/Backtrack.hpp b/include/hacks/Backtrack.hpp index 343a69ba..fb39f395 100644 --- a/include/hacks/Backtrack.hpp +++ b/include/hacks/Backtrack.hpp @@ -40,7 +40,6 @@ void Run(); void Draw(); void AddLatencyToNetchan(INetChannel *, float); void UpdateIncomingSequences(); -bool shouldBacktrack(); extern int lastincomingsequencenumber; extern int BestTick; extern int iBestTarget; @@ -60,7 +59,7 @@ typedef boost::circular_buffer_space_optimized circular_buf; extern circular_buf sequences; extern BacktrackData headPositions[32][66]; -bool isBacktrackEnabled(); +extern bool isBacktrackEnabled; float getLatency(); int getTicks(); bool ValidTick(BacktrackData &i, CachedEntity *ent); diff --git a/src/hacks/Aimbot.cpp b/src/hacks/Aimbot.cpp index ebb0249c..4c43719e 100644 --- a/src/hacks/Aimbot.cpp +++ b/src/hacks/Aimbot.cpp @@ -96,7 +96,7 @@ AimbotCalculatedData_s calculated_data_array[2048]{}; #define IsMelee GetWeaponMode() == weapon_melee bool BacktrackAimbot() { - if (!hacks::shared::backtrack::isBacktrackEnabled() || !backtrackAimbot) + if (!hacks::shared::backtrack::isBacktrackEnabled || !*backtrackAimbot) return false; if (aimkey && !aimkey.isKeyDown()) return true; diff --git a/src/hacks/AutoBackstab.cpp b/src/hacks/AutoBackstab.cpp index c63b3b6a..7afed9ec 100644 --- a/src/hacks/AutoBackstab.cpp +++ b/src/hacks/AutoBackstab.cpp @@ -45,9 +45,9 @@ int ClosestDistanceHitbox(CachedEntity *target, { int closest = -1; float closest_dist = 0.0f, dist = 0.0f; - for (int i = spine_0; i < spine_3; i++) + for (int i = pelvis; i < lowerArm_R; i++) { - if (hacks::shared::backtrack::isBacktrackEnabled()) + if (hacks::shared::backtrack::isBacktrackEnabled) dist = g_pLocalPlayer->v_Eye.DistTo(btd.hitboxes.at(i).center); else dist = g_pLocalPlayer->v_Eye.DistTo( @@ -67,7 +67,7 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max, // Get melee range float meleeRange = re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)); if (fabsf(vecAngle.y - - NET_VECTOR(RAW_ENT(besttarget), netvar.m_angEyeAngles).y) >= 50) + NET_VECTOR(RAW_ENT(besttarget), netvar.m_angEyeAngles).y) >= 60.0f) return false; if (!min.x && !max.x) return false; @@ -122,7 +122,7 @@ void CreateMove() if (!CanShoot()) return; CachedEntity *besttarget = nullptr; - if (!backtrack::isBacktrackEnabled()) + if (!backtrack::isBacktrackEnabled) { for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { @@ -173,7 +173,7 @@ void CreateMove() { hacks::shared::anti_anti_aim::resolveEnt(besttarget->m_IDX); Vector angle = NET_VECTOR(RAW_ENT(LOCAL_E), netvar.m_angEyeAngles); - if (!backtrack::isBacktrackEnabled()) + if (!backtrack::isBacktrackEnabled) { for (angle.y = -180.0f; angle.y < 180.0f; angle.y += 10.0f) { diff --git a/src/hacks/Backtrack.cpp b/src/hacks/Backtrack.cpp index 3ad849fa..301fefc6 100644 --- a/src/hacks/Backtrack.cpp +++ b/src/hacks/Backtrack.cpp @@ -22,10 +22,12 @@ namespace hacks::shared::backtrack { void EmptyBacktrackData(BacktrackData &i); std::pair getBestEntBestTick(); +bool shouldBacktrack(); + BacktrackData headPositions[32][66]{}; int highesttick[32]{}; int lastincomingsequencenumber = 0; -static bool shouldDrawBt; +bool isBacktrackEnabled = false; circular_buf sequences{ 2048 }; void UpdateIncomingSequences() @@ -48,6 +50,8 @@ void UpdateIncomingSequences() } void AddLatencyToNetchan(INetChannel *ch, float Latency) { + if (!isBacktrackEnabled) + return; if (Latency > 200.0f) Latency -= ch->GetLatency(MAX_FLOWS); for (auto &seq : sequences) @@ -71,19 +75,16 @@ int BestTick = 0; int iBestTarget = -1; void Run() { - if (!enable) + if (!shouldBacktrack()) + { + isBacktrackEnabled = false; return; + } + isBacktrackEnabled = true; if (CE_BAD(LOCAL_E)) return; - if (!shouldBacktrack()) - { - shouldDrawBt = false; - return; - } - shouldDrawBt = true; - CUserCmd *cmd = current_user_cmd; float bestFov = 99999; @@ -151,12 +152,10 @@ void Run() void Draw() { #if ENABLE_VISUALS - if (!enable) + if (!isBacktrackEnabled) return; if (!draw_bt) return; - if (!shouldDrawBt) - return; for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { CachedEntity *ent = ENTITY(i); @@ -192,10 +191,16 @@ void Draw() #endif } +// Internal only, use isBacktrackEnabled var instead bool shouldBacktrack() { + if (!*enable) + return false; + CachedEntity *wep = g_pLocalPlayer->weapon(); + if (CE_BAD(wep)) + return false; int slot = - re::C_BaseCombatWeapon::GetSlot(RAW_ENT(g_pLocalPlayer->weapon())); + re::C_BaseCombatWeapon::GetSlot(RAW_ENT(wep)); switch ((int) slots) { case 0: @@ -229,11 +234,6 @@ bool shouldBacktrack() return false; } -bool isBacktrackEnabled() -{ - return *enable; -} - float getLatency() { return *latency; diff --git a/src/hacks/Trigger.cpp b/src/hacks/Trigger.cpp index 628e2864..656da912 100644 --- a/src/hacks/Trigger.cpp +++ b/src/hacks/Trigger.cpp @@ -113,7 +113,7 @@ void CreateMove() CachedEntity *ent = FindEntInSight(EffectiveTargetingRange()); // Check if can backtrack, shoot if we can - if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled()) + if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled) return; // Check if dormant or null to prevent crashes