This commit is contained in:
Oscar
2025-07-22 22:06:34 +03:00
parent d3c189f949
commit f892794557
780 changed files with 436498 additions and 170 deletions

View File

@@ -0,0 +1,52 @@
#include "c_csplayerpawn.hpp"
#include "../../interfaces/interfaces.hpp"
#include "../../memory/memory.hpp"
bool C_CSPlayerPawn::IsEnemyWithTeam(int team) {
static ConVar* mp_teammates_are_enemies =
interfaces::pCvar->FindVarByName("mp_teammates_are_enemies");
CCSPlayerController* pPlayerController =
m_hController().Get<CCSPlayerController>();
if (pPlayerController && pPlayerController->m_bIsLocalPlayerController())
return false;
return mp_teammates_are_enemies->GetValue<bool>() ? true
: m_iTeamNum() != team;
}
bool C_CSPlayerPawn::IsVisible(C_CSPlayerPawn* pPawn, Vector vecPoint, bool bSmokeCheck, float flMaxDensity)
{
if (!this || !pPawn)
return false;
TraceFilter_t filter(0x1C3003, this, nullptr, 4);
Ray_t ray = Ray_t();
GameTrace_t trace = GameTrace_t();
Vector vecSource = this->GetEyePosition();
interfaces::pTraceMgr->TraceShape(&ray, vecSource, vecPoint, &filter, &trace);
if ((trace.IsVisible() || (trace.m_pHitEntity && trace.m_pHitEntity->GetRefEHandle().GetEntryIndex() == pPawn->GetRefEHandle().GetEntryIndex())))// && !(bSmokeCheck && !Utilities::LineGoesThroughSmoke(vecSource, vecPoint, flMaxDensity)))
return true;
return false;
}
C_CSWeaponBase* C_CSPlayerPawn::GetWeaponActive()
{
auto service = m_pWeaponServices();
if (!service)
return nullptr;
auto handle = service->m_hActiveWeapon();
auto weapon = reinterpret_cast<C_CSWeaponBase*>(interfaces::pGameResourceService->GetGameEntitySystem()->GetByIndex<C_CSWeaponBase>(handle));
if (!weapon)
return nullptr;
return weapon;
}