Fix issues with master update and staticize default filters
This commit is contained in:
parent
3ae111912c
commit
a61290188b
@ -97,8 +97,8 @@ public:
|
||||
void updateDatagram();
|
||||
void resetData(int);
|
||||
bool isGoodTick(BacktrackData &);
|
||||
bool defaultTickFilter(CachedEntity *, BacktrackData);
|
||||
bool defaultEntFilter(CachedEntity *);
|
||||
static bool defaultTickFilter(CachedEntity *, BacktrackData);
|
||||
static bool defaultEntFilter(CachedEntity *);
|
||||
|
||||
// Various functions for getting backtrack ticks
|
||||
std::vector<BacktrackData> getGoodTicks(int);
|
||||
|
@ -275,34 +275,26 @@ bool shouldMeleeCrit()
|
||||
{
|
||||
if (!melee || g_pLocalPlayer->weapon_mode != weapon_melee)
|
||||
return false;
|
||||
namespace bt = hacks::shared::backtrack;
|
||||
if (bt::isBacktrackEnabled)
|
||||
if (hacks::tf2::backtrack::backtrack.isBacktrackEnabled)
|
||||
{
|
||||
int target = bt::iBestTarget;
|
||||
// Closest tick for melee (default filter carry)
|
||||
auto closest_tick = hacks::tf2::backtrack::backtrack.getClosestTick(LOCAL_E->m_vecOrigin(), hacks::tf2::backtrack::backtrack.defaultEntFilter, hacks::tf2::backtrack::backtrack.defaultTickFilter);
|
||||
// Valid backtrack target
|
||||
if (target > 1)
|
||||
if (closest_tick)
|
||||
{
|
||||
// Closest tick for melee
|
||||
int besttick = bt::BestTick;
|
||||
// Out of range, don't crit
|
||||
if (bt::headPositions[target][besttick].entorigin.DistTo(LOCAL_E->m_vecOrigin()) >= re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)) + 150.0f)
|
||||
{
|
||||
if ((*closest_tick).second.m_vecOrigin.DistTo(LOCAL_E->m_vecOrigin()) >= re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)) + 150.0f)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Normal check, get closest entity and check distance
|
||||
else
|
||||
{
|
||||
auto ent = getClosestEntity(LOCAL_E->m_vecOrigin());
|
||||
if (!ent || ent->m_flDistance() >= re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)) + 150.0f)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ int prevent = -1;
|
||||
static Timer previous_entity_delay{};
|
||||
|
||||
// TODO: Refactor this jank
|
||||
std::pair<CachedEntity *, Vector> FindBestEnt(bool teammate, bool Predict, bool zcheck, bool fov_check, float range)
|
||||
std::pair<CachedEntity *, Vector> FindBestEnt(bool teammate, bool Predict, bool zcheck, bool demoknight_mode, float range)
|
||||
{
|
||||
CachedEntity *bestent = nullptr;
|
||||
float bestscr = FLT_MAX;
|
||||
@ -49,19 +49,22 @@ std::pair<CachedEntity *, Vector> FindBestEnt(bool teammate, bool Predict, bool
|
||||
target = ProjectilePrediction(ent, 1, sandwich_speed, grav, PlayerGravityMod(ent));
|
||||
else
|
||||
target = ent->hitboxes.GetHitbox(1)->center;
|
||||
if (!IsEntityVectorVisible(ent, target))
|
||||
if (!hacks::tf2::backtrack::backtrack.isBacktrackEnabled && !IsEntityVectorVisible(ent, target))
|
||||
continue;
|
||||
if (zcheck && (ent->m_vecOrigin().z - LOCAL_E->m_vecOrigin().z) > 200.0f)
|
||||
continue;
|
||||
float scr = ent->m_flDistance();
|
||||
if (hacks::tf2::backtrack::backtrack.isBacktrackEnabled && demoknight_mode)
|
||||
{
|
||||
auto data = hacks::tf2::backtrack::backtrack.getClosestEntTick(ent, LOCAL_E->m_vecOrigin(), std::bind(&hacks::tf2::backtrack::Backtrack::defaultTickFilter, &hacks::tf2::backtrack::backtrack, std::placeholders::_1, std::placeholders::_2));
|
||||
auto data = hacks::tf2::backtrack::backtrack.getClosestEntTick(ent, LOCAL_E->m_vecOrigin(), hacks::tf2::backtrack::Backtrack::defaultTickFilter);
|
||||
// No entity
|
||||
if (!data)
|
||||
scr = FLT_MAX;
|
||||
else
|
||||
scr = (*data).m_vecOrigin.DistTo(LOCAL_E->m_vecOrigin());
|
||||
{
|
||||
target = (*data).m_vecOrigin;
|
||||
scr = (*data).m_vecOrigin.DistTo(LOCAL_E->m_vecOrigin());
|
||||
}
|
||||
}
|
||||
// Demoknight
|
||||
if (demoknight_mode)
|
||||
@ -104,19 +107,22 @@ std::pair<CachedEntity *, Vector> FindBestEnt(bool teammate, bool Predict, bool
|
||||
target = ProjectilePrediction(ent, 1, sandwich_speed, grav, PlayerGravityMod(ent));
|
||||
else
|
||||
target = ent->hitboxes.GetHitbox(1)->center;
|
||||
if (!IsEntityVectorVisible(ent, target))
|
||||
if (!hacks::tf2::backtrack::backtrack.isBacktrackEnabled && !IsEntityVectorVisible(ent, target))
|
||||
continue;
|
||||
if (zcheck && (ent->m_vecOrigin().z - LOCAL_E->m_vecOrigin().z) > 200.0f)
|
||||
continue;
|
||||
float scr = ent->m_flDistance();
|
||||
if (hacks::tf2::backtrack::backtrack.isBacktrackEnabled && demoknight_mode)
|
||||
{
|
||||
auto data = hacks::tf2::backtrack::backtrack.getClosestEntTick(ent, LOCAL_E->m_vecOrigin(), std::bind(&hacks::tf2::backtrack::Backtrack::defaultTickFilter, &hacks::tf2::backtrack::backtrack, std::placeholders::_1, std::placeholders::_2));
|
||||
auto data = hacks::tf2::backtrack::backtrack.getClosestEntTick(ent, LOCAL_E->m_vecOrigin(), hacks::tf2::backtrack::Backtrack::defaultTickFilter);
|
||||
// No entity
|
||||
if (!data)
|
||||
scr = FLT_MAX;
|
||||
else
|
||||
scr = (*data).m_vecOrigin.DistTo(LOCAL_E->m_vecOrigin());
|
||||
{
|
||||
target = (*data).m_vecOrigin;
|
||||
scr = (*data).m_vecOrigin.DistTo(LOCAL_E->m_vecOrigin());
|
||||
}
|
||||
}
|
||||
// Demoknight
|
||||
if (demoknight_mode)
|
||||
@ -125,7 +131,7 @@ std::pair<CachedEntity *, Vector> FindBestEnt(bool teammate, bool Predict, bool
|
||||
continue;
|
||||
scr = GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye, ent->m_vecOrigin());
|
||||
// Don't turn too harshly
|
||||
if (scr >= 140.0f)
|
||||
if (scr >= 90.0f)
|
||||
continue;
|
||||
}
|
||||
if (g_pPlayerResource->GetClass(ent) == tf_medic)
|
||||
|
@ -115,7 +115,7 @@ void CreateMove()
|
||||
forward = forward * EffectiveTargetingRange() + g_pLocalPlayer->v_Eye;
|
||||
|
||||
// Call closest tick with our Tick filter func
|
||||
auto closest_data = hacks::tf2::backtrack::backtrack.getClosestTick(g_pLocalPlayer->v_Eye, std::bind(&hacks::tf2::backtrack::Backtrack::defaultEntFilter, &hacks::tf2::backtrack::backtrack, std::placeholders::_1), tick_filter);
|
||||
auto closest_data = hacks::tf2::backtrack::backtrack.getClosestTick(g_pLocalPlayer->v_Eye, hacks::tf2::backtrack::backtrack.defaultEntFilter, tick_filter);
|
||||
|
||||
// No results, try to grab a building
|
||||
if (!closest_data)
|
||||
|
Reference in New Issue
Block a user