CTerrorPlayer::CheckEnemySightings
0x00a00ca0 · 9715 bytes · __thiscall
_ZN13CTerrorPlayer19CheckEnemySightingsEv
Decompiled
undefined (1 param)
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* CTerrorPlayer::CheckEnemySightings() */
void __thiscall CTerrorPlayer::CheckEnemySightings(CTerrorPlayer *this)
{
float fVar1;
float fVar2;
float fVar3;
float fVar4;
float fVar5;
undefined **ppuVar6;
code *pcVar7;
uint *puVar8;
char cVar9;
bool bVar10;
int iVar11;
uint uVar12;
int *piVar13;
int iVar14;
int *piVar15;
undefined4 uVar16;
CTerrorPlayer *pCVar17;
int iVar18;
int iVar19;
int *piVar20;
float *pfVar21;
float *pfVar22;
undefined4 *puVar23;
CTerrorPlayer CVar24;
float *pfVar25;
CTerrorPlayer **ppCVar26;
CTerrorPlayer **ppCVar27;
longdouble lVar28;
float fVar29;
int local_1f8 [2];
CTerrorPlayer *local_1f0;
int *local_1b4;
int local_1b0;
int *local_198;
CTerrorPlayer *local_194;
CTerrorPlayer *local_190;
int local_18c;
int local_188;
int local_184;
int local_180;
int local_17c;
int local_178;
CTerrorPlayer *local_170;
int local_16c;
int local_168;
int local_164;
int local_160;
float local_15c;
float local_158;
float local_154;
float local_150;
float local_14c;
float local_148;
float local_144;
float local_140;
float local_13c;
float local_138;
float local_134;
float local_130;
float local_12c;
float local_128;
float local_124;
float local_120;
float local_11c;
float local_118;
int local_114;
int local_110;
int local_10c;
int local_108;
int local_104;
int local_100;
float local_fc;
float local_f8;
float local_f4;
float local_f0;
float local_ec;
float local_e8;
float local_e4;
float local_e0;
float local_dc;
float local_d8;
float local_d4;
float local_d0;
float local_cc;
float local_c8;
float local_c4;
undefined **local_c0;
CTerrorPlayer *local_bc;
float local_b8;
undefined **local_b4;
CTerrorPlayer *local_b0;
float local_ac;
float local_a8;
float local_a4;
int local_a0;
float local_9c;
float local_98;
float local_94;
float local_90;
char local_8c;
CTerrorPlayer *local_88;
int local_84;
undefined4 local_80;
undefined4 local_7c;
float local_78;
int local_74;
CTerrorPlayer *local_70;
CTerrorPlayer *local_6c;
float local_68;
int local_64;
CTerrorPlayer *local_60;
int local_5c;
undefined4 local_58;
undefined4 local_54;
int local_50;
int local_4c;
CTerrorPlayer *local_48;
int *local_44;
float local_40;
undefined4 local_3c;
float local_38;
float local_34;
float local_30;
int local_2c;
int local_28;
int local_24;
float local_20;
local_18c = 0;
local_188 = 0;
if (_towlower == 0) {
local_160 = 0;
}
else {
local_1f0 = (CTerrorPlayer *)0xa00d30;
(**(code **)(_towlower + 0x50))();
local_160 = _towlower;
}
iVar11 = _DAT_0105db00;
local_168 = local_18c;
local_164 = local_188;
if ((_DAT_0105d154 != 0) || (DAT_0105d158 == '\0')) {
/* try { // try from 00a01476 to 00a014d6 has its CatchHandler @ 00a033e9 */
local_1f0 = (CTerrorPlayer *)0xa0147b;
iVar14 = ThreadGetCurrentId();
if (iVar11 == iVar14) {
if ((char *)*_DAT_0105d15c != "CTerrorPlayer::CheckEnemySightings") {
local_1f0 = (CTerrorPlayer *)0xa014b8;
_DAT_0105d15c =
(int *)CVProfNode::GetSubNode((char *)_DAT_0105d15c,0xd1c77c,(char *)0x0,0xd0e8d1);
}
puVar8 = (uint *)(_DAT_0105d1e8 + 4 + _DAT_0105d15c[0x1c] * 8);
*puVar8 = *puVar8 | 4;
local_1f0 = (CTerrorPlayer *)0xa014d7;
CVProfNode::EnterScope();
DAT_0105d158 = '\0';
}
}
/* try { // try from 00a00d78 to 00a0112a has its CatchHandler @ 00a033e2 */
local_1f0 = (CTerrorPlayer *)0xa00d7d;
lVar28 = (longdouble)CountdownTimer::Now();
pfVar25 = (float *)&stack0xfffffe14;
if (*(float *)(this + 0x2eb8) <= (float)lVar28) {
/* try { // try from 00a01cdb to 00a01dc0 has its CatchHandler @ 00a033e2 */
local_1f0 = (CTerrorPlayer *)0xa01ce0;
iVar11 = CBaseEntity::GetTeamNumber((CBaseEntity *)this);
local_1f0 = (CTerrorPlayer *)0xa01ce8;
cVar9 = IsASurvivorTeam(iVar11);
pfVar25 = (float *)&stack0xfffffe14;
if (cVar9 != '\0') {
local_1f0 = (CTerrorPlayer *)0xa01cf8;
lVar28 = (longdouble)CountdownTimer::Now();
if ((float)lVar28 + 0.1 != *(float *)(this + 0x2eb8)) {
/* try { // try from 00a02274 to 00a022de has its CatchHandler @ 00a033e2 */
local_1f0 = (CTerrorPlayer *)0xa02277;
(**(code **)(*(int *)(this + 0x2eb0) + 4))();
*(float *)(this + 0x2eb8) = (float)lVar28 + 0.1;
}
if (*(float *)(this + 0x2eb4) != 0.1) {
/* try { // try from 00a021d5 to 00a021d7 has its CatchHandler @ 00a033e2 */
local_1f0 = (CTerrorPlayer *)0xa021d8;
(**(code **)(*(int *)(this + 0x2eb0) + 4))();
*(undefined4 *)(this + 0x2eb4) = 0x3dcccccd;
}
if (*(float *)(this + 0x3bbc) <= 0.0) {
local_1f0 = (CTerrorPlayer *)0xa022bc;
iVar11 = CDirectorTacticalServices::GetCommonInfectedCount();
local_1f0 = (CTerrorPlayer *)0xa022df;
iVar14 = CDirector::GetScriptValue
(TheDirector,"MusicDynamicMobSpawnSize",
*(int *)(DirectorPrivate_DirectorMusicDynamicMobSpawnSize._28_4_ + 0x30)
);
pfVar25 = (float *)&stack0xfffffe14;
if (iVar11 <= iVar14) goto LAB_00a00d98;
iVar11 = *(int *)(ZombieMobMusicSize._28_4_ + 0x30);
local_70 = (CTerrorPlayer *)0x0;
local_6c = (CTerrorPlayer *)0x0;
local_68 = 0.0;
local_64 = 0;
local_60 = (CTerrorPlayer *)0x0;
local_5c = 0;
local_58 = 0;
local_54 = 0;
local_50 = 0;
local_4c = 0;
local_48 = this;
/* try { // try from 00a02352 to 00a023a6 has its CatchHandler @ 00a033bc */
local_1f0 = (CTerrorPlayer *)0xa02357;
CBasePlayer::EyeVectors((CBasePlayer *)this,(Vector *)&local_44,(Vector *)0x0,(Vector *)0x0)
;
local_1f0 = (CTerrorPlayer *)0xa0236f;
(**(code **)(*(int *)local_48 + 0x234))();
ppCVar27 = &local_1f0;
local_38 = local_fc;
local_34 = local_f8;
local_30 = local_f4;
local_1f0 = local_48;
local_2c = (**(code **)(*(int *)local_48 + 0x52c))();
local_28 = 0;
local_20 = 99999.0;
local_24 = iVar11;
/* try { // try from 00a023c7 to 00a024b3 has its CatchHandler @ 00a03324 */
iVar11 = TheNextBots();
uVar12 = (uint)*(ushort *)(iVar11 + 0x10);
if (uVar12 != 0xffff) {
iVar14 = *(int *)(iVar11 + 4);
ppCVar26 = &local_1f0;
do {
local_1b4 = &local_5c;
piVar20 = *(int **)(iVar14 + uVar12 * 8);
iVar14 = *piVar20;
*ppCVar26 = (CTerrorPlayer *)piVar20;
pcVar7 = *(code **)(iVar14 + 0xb4);
ppCVar26[-1] = (CTerrorPlayer *)0xa0243a;
piVar13 = (int *)(*pcVar7)();
iVar14 = *piVar13;
*ppCVar26 = (CTerrorPlayer *)piVar13;
pcVar7 = *(code **)(iVar14 + 300);
ppCVar26[-1] = (CTerrorPlayer *)0xa02447;
cVar9 = (*pcVar7)();
piVar20 = (int *)ppCVar26;
if (cVar9 != '\0') {
*ppCVar26 = (CTerrorPlayer *)piVar13;
ppCVar26[-1] = (CTerrorPlayer *)0xa02453;
iVar14 = CBaseEntity::GetTeamNumber((CBaseEntity *)*ppCVar26);
if (iVar14 == 3) {
iVar14 = *piVar13;
*ppCVar26 = (CTerrorPlayer *)piVar13;
pcVar7 = *(code **)(iVar14 + 0x14c);
ppCVar26[-1] = (CTerrorPlayer *)0xa02463;
local_198 = (int *)(*pcVar7)();
if (local_198 != (int *)0x0) {
iVar14 = *local_198;
*ppCVar26 = (CTerrorPlayer *)local_198;
pcVar7 = *(code **)(iVar14 + 0x594);
ppCVar26[-1] = (CTerrorPlayer *)0xa02478;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
ppCVar26[1] = (CTerrorPlayer *)0x0;
*ppCVar26 = (CTerrorPlayer *)piVar15;
pcVar7 = *(code **)(iVar14 + 0x114);
ppCVar26[-1] = (CTerrorPlayer *)0xa02493;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') {
*ppCVar26 = (CTerrorPlayer *)&local_70;
ppCVar26[2] = (CTerrorPlayer *)&local_198;
ppCVar26[1] = (CTerrorPlayer *)local_64;
ppCVar26[-1] = (CTerrorPlayer *)0xa024b4;
CUtlVector<Infected*,CUtlMemory<Infected*,int>>::InsertBefore
((CUtlVector<Infected*,CUtlMemory<Infected*,int>> *)*ppCVar26,
(int)ppCVar26[1],(Infected **)ppCVar26[2]);
goto LAB_00a02400;
}
}
iVar14 = *local_198;
*ppCVar26 = (CTerrorPlayer *)local_198;
/* try { // try from 00a026e9 to 00a02ab6 has its CatchHandler @ 00a03324 */
pcVar7 = *(code **)(iVar14 + 0x52c);
ppCVar26[-1] = (CTerrorPlayer *)0xa026ef;
iVar14 = (*pcVar7)();
if ((iVar14 != 0) && (local_2c != 0)) {
ppCVar26[1] = (CTerrorPlayer *)iVar14;
*ppCVar26 = (CTerrorPlayer *)local_2c;
ppCVar26[-1] = (CTerrorPlayer *)0xa0270e;
cVar9 = TerrorNavArea::IsCompletelyVisible
((TerrorNavArea *)*ppCVar26,(TerrorNavArea *)ppCVar26[1]);
if (cVar9 != '\0') {
iVar14 = *piVar13;
ppCVar26[1] = (CTerrorPlayer *)piVar13;
*ppCVar26 = (CTerrorPlayer *)&local_15c;
pcVar7 = *(code **)(iVar14 + 0x234);
ppCVar26[-1] = (CTerrorPlayer *)0xa0272b;
(*pcVar7)();
ppCVar27 = ppCVar26 + -1;
local_f0 = local_15c - local_38;
local_ec = local_158 - local_34;
local_e8 = local_154 - local_30;
iVar14 = *(int *)local_48;
ppCVar26[1] = (CTerrorPlayer *)0x0;
*ppCVar26 = (CTerrorPlayer *)&local_f0;
ppCVar26[-1] = local_48;
pcVar7 = *(code **)(iVar14 + 0x420);
ppCVar26[-2] = (CTerrorPlayer *)0xa0278d;
cVar9 = (*pcVar7)();
piVar20 = (int *)(ppCVar26 + -1);
if ((cVar9 != '\0') &&
(fVar29 = SQRT(local_ec * local_ec + local_e8 * local_e8 +
local_f0 * local_f0), piVar20 = (int *)(ppCVar26 + -1),
fVar29 < *(float *)(MusicDynamicAttackCIRangeMax._28_4_ + 0x2c) ||
fVar29 == *(float *)(MusicDynamicAttackCIRangeMax._28_4_ + 0x2c))) {
ppCVar26[1] = (CTerrorPlayer *)&local_198;
*ppCVar26 = (CTerrorPlayer *)local_50;
ppCVar26[-1] = (CTerrorPlayer *)local_1b4;
ppCVar26[-2] = (CTerrorPlayer *)0xa0280a;
CUtlVector<Infected*,CUtlMemory<Infected*,int>>::InsertBefore
((CUtlVector<Infected*,CUtlMemory<Infected*,int>> *)ppCVar26[-1],
(int)*ppCVar26,(Infected **)ppCVar26[1]);
if (local_20 <= fVar29) {
fVar29 = local_20;
}
local_28 = local_28 + 1;
local_20 = fVar29;
piVar20 = (int *)(ppCVar26 + -1);
if (local_24 <= local_28) break;
}
}
}
}
}
}
LAB_00a02400:
ppCVar27 = (CTerrorPlayer **)piVar20;
iVar14 = *(int *)(iVar11 + 4);
uVar12 = (uint)*(ushort *)(iVar14 + 6 + uVar12 * 8);
ppCVar26 = ppCVar27;
} while (uVar12 != 0xffff);
}
iVar11 = local_50;
if (0 < *(int *)(ShowInfected._28_4_ + 0x30)) {
*ppCVar27 = (CTerrorPlayer *)"***ATTACKING: %i\n";
ppCVar27[1] = (CTerrorPlayer *)iVar11;
ppCVar27[-1] = (CTerrorPlayer *)0xa0284d;
DevMsg((char *)*ppCVar27);
if (0 < local_50) {
local_1b0 = 0;
do {
iVar11 = *(int *)(local_5c + local_1b0 * 4);
if ((*(byte *)(iVar11 + 0x14d) & 8) != 0) {
*ppCVar27 = (CTerrorPlayer *)iVar11;
ppCVar27[-1] = (CTerrorPlayer *)0xa02885;
CBaseEntity::CalcAbsolutePosition((CBaseEntity *)*ppCVar27);
}
pCVar17 = *(CTerrorPlayer **)(iVar11 + 0x2e4);
fVar29 = *(float *)(iVar11 + 0x2e8);
ppuVar6 = *(undefined ***)(iVar11 + 0x2e0);
ppCVar27[1] = (CTerrorPlayer *)&local_b4;
ppCVar27[6] = (CTerrorPlayer *)0x40000000;
ppCVar27[5] = (CTerrorPlayer *)0x1;
ppCVar27[4] = (CTerrorPlayer *)0x0;
local_ac = fVar29 + 5.0;
ppCVar27[3] = (CTerrorPlayer *)0x0;
ppCVar27[2] = (CTerrorPlayer *)0xff;
*ppCVar27 = (CTerrorPlayer *)&local_c0;
local_b4 = ppuVar6;
local_b0 = pCVar17;
local_c0 = ppuVar6;
local_bc = pCVar17;
local_b8 = fVar29 - 5.0;
ppCVar27[-1] = (CTerrorPlayer *)0xa02945;
NDebugOverlay::Line((Vector *)*ppCVar27,(Vector *)ppCVar27[1],(int)ppCVar27[2],
(int)ppCVar27[3],(int)ppCVar27[4],SUB41(ppCVar27[5],0),
(float)ppCVar27[6]);
ppCVar27[6] = (CTerrorPlayer *)0x40000000;
ppCVar27[5] = (CTerrorPlayer *)0x1;
ppCVar27[4] = (CTerrorPlayer *)0x0;
ppCVar27[1] = (CTerrorPlayer *)&local_b4;
ppCVar27[3] = (CTerrorPlayer *)0x0;
ppCVar27[2] = (CTerrorPlayer *)0xff;
local_b0 = (CTerrorPlayer *)((float)pCVar17 + 5.0);
*ppCVar27 = (CTerrorPlayer *)&local_c0;
local_b4 = ppuVar6;
local_ac = fVar29;
local_c0 = ppuVar6;
local_bc = (CTerrorPlayer *)((float)pCVar17 - 5.0);
local_b8 = fVar29;
ppCVar27[-1] = (CTerrorPlayer *)0xa029e4;
NDebugOverlay::Line((Vector *)*ppCVar27,(Vector *)ppCVar27[1],(int)ppCVar27[2],
(int)ppCVar27[3],(int)ppCVar27[4],SUB41(ppCVar27[5],0),
(float)ppCVar27[6]);
ppCVar27[6] = (CTerrorPlayer *)0x40000000;
ppCVar27[5] = (CTerrorPlayer *)0x1;
ppCVar27[1] = (CTerrorPlayer *)&local_b4;
*ppCVar27 = (CTerrorPlayer *)&local_c0;
ppCVar27[4] = (CTerrorPlayer *)0x0;
ppCVar27[3] = (CTerrorPlayer *)0x0;
ppCVar27[2] = (CTerrorPlayer *)0xff;
local_b4 = (undefined **)((float)ppuVar6 + 5.0);
local_b0 = pCVar17;
local_ac = fVar29;
local_c0 = (undefined **)((float)ppuVar6 - 5.0);
local_bc = pCVar17;
local_b8 = fVar29;
ppCVar27[-1] = (CTerrorPlayer *)0xa02a7d;
NDebugOverlay::Line((Vector *)*ppCVar27,(Vector *)ppCVar27[1],(int)ppCVar27[2],
(int)ppCVar27[3],(int)ppCVar27[4],SUB41(ppCVar27[5],0),
(float)ppCVar27[6]);
local_1b0 = local_1b0 + 1;
} while (local_1b0 < local_50);
}
}
if (*(int *)(ZombieMobMusicSize._28_4_ + 0x30) <= local_28) {
ppCVar27[1] = (CTerrorPlayer *)local_28;
*ppCVar27 = this + 0x3ab4;
ppCVar27[-1] = (CTerrorPlayer *)0xa02ab7;
Music::OnMobApproachingNear((Music *)*ppCVar27,(int)ppCVar27[1]);
}
}
else {
local_1f0 = (CTerrorPlayer *)0xa01d60;
lVar28 = (longdouble)CountdownTimer::Now();
if ((float)lVar28 + 1.0 != *(float *)(this + 0x2eb8)) {
/* try { // try from 00a024cc to 00a024ce has its CatchHandler @ 00a033e2 */
local_1f0 = (CTerrorPlayer *)0xa024cf;
(**(code **)(*(int *)(this + 0x2eb0) + 4))();
*(float *)(this + 0x2eb8) = (float)lVar28 + 1.0;
}
if (*(float *)(this + 0x2eb4) != 1.0) {
local_1f0 = (CTerrorPlayer *)0xa02292;
(**(code **)(*(int *)(this + 0x2eb0) + 4))();
*(undefined4 *)(this + 0x2eb4) = 0x3f800000;
}
local_1f0 = (CTerrorPlayer *)0xa01dc1;
iVar11 = CDirector::GetScriptValue
(TheDirector,"MusicDynamicMobScanStopSize",
*(int *)(DirectorPrivate_DirectorMusicDynamicMobScanStopSize._28_4_ +
0x30));
local_70 = (CTerrorPlayer *)0x0;
local_6c = (CTerrorPlayer *)0x0;
local_68 = 0.0;
local_64 = 0;
local_60 = (CTerrorPlayer *)0x0;
local_5c = 0;
local_58 = 0;
local_54 = 0;
local_50 = 0;
local_4c = 0;
local_48 = this;
/* try { // try from 00a01e26 to 00a01e7a has its CatchHandler @ 00a033dd */
local_1f0 = (CTerrorPlayer *)0xa01e2b;
CBasePlayer::EyeVectors((CBasePlayer *)this,(Vector *)&local_44,(Vector *)0x0,(Vector *)0x0)
;
local_1f0 = (CTerrorPlayer *)0xa01e43;
(**(code **)(*(int *)local_48 + 0x234))();
ppCVar27 = &local_1f0;
local_38 = local_e4;
local_34 = local_e0;
local_30 = local_dc;
local_1f0 = local_48;
local_2c = (**(code **)(*(int *)local_48 + 0x52c))();
local_28 = 0;
local_20 = 99999.0;
local_24 = iVar11;
/* try { // try from 00a01e9b to 00a01f83 has its CatchHandler @ 00a033b7 */
iVar11 = TheNextBots();
uVar12 = (uint)*(ushort *)(iVar11 + 0x10);
if (uVar12 != 0xffff) {
iVar14 = *(int *)(iVar11 + 4);
ppCVar26 = &local_1f0;
do {
piVar20 = *(int **)(iVar14 + uVar12 * 8);
iVar14 = *piVar20;
*ppCVar26 = (CTerrorPlayer *)piVar20;
pcVar7 = *(code **)(iVar14 + 0xb4);
ppCVar26[-1] = (CTerrorPlayer *)0xa01f0a;
piVar13 = (int *)(*pcVar7)();
iVar14 = *piVar13;
*ppCVar26 = (CTerrorPlayer *)piVar13;
pcVar7 = *(code **)(iVar14 + 300);
ppCVar26[-1] = (CTerrorPlayer *)0xa01f17;
cVar9 = (*pcVar7)();
piVar20 = (int *)ppCVar26;
if (cVar9 != '\0') {
*ppCVar26 = (CTerrorPlayer *)piVar13;
ppCVar26[-1] = (CTerrorPlayer *)0xa01f23;
iVar14 = CBaseEntity::GetTeamNumber((CBaseEntity *)*ppCVar26);
if (iVar14 == 3) {
iVar14 = *piVar13;
*ppCVar26 = (CTerrorPlayer *)piVar13;
pcVar7 = *(code **)(iVar14 + 0x14c);
ppCVar26[-1] = (CTerrorPlayer *)0xa01f33;
local_170 = (CTerrorPlayer *)(*pcVar7)();
if (local_170 != (CTerrorPlayer *)0x0) {
iVar14 = *(int *)local_170;
*ppCVar26 = local_170;
pcVar7 = *(code **)(iVar14 + 0x594);
ppCVar26[-1] = (CTerrorPlayer *)0xa01f48;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
ppCVar26[1] = (CTerrorPlayer *)0x0;
*ppCVar26 = (CTerrorPlayer *)piVar15;
pcVar7 = *(code **)(iVar14 + 0x114);
ppCVar26[-1] = (CTerrorPlayer *)0xa01f63;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') {
*ppCVar26 = (CTerrorPlayer *)&local_70;
ppCVar26[2] = (CTerrorPlayer *)&local_170;
ppCVar26[1] = (CTerrorPlayer *)local_64;
ppCVar26[-1] = (CTerrorPlayer *)0xa01f84;
CUtlVector<Infected*,CUtlMemory<Infected*,int>>::InsertBefore
((CUtlVector<Infected*,CUtlMemory<Infected*,int>> *)*ppCVar26,
(int)ppCVar26[1],(Infected **)ppCVar26[2]);
goto LAB_00a01ed0;
}
}
iVar14 = *(int *)local_170;
*ppCVar26 = local_170;
/* try { // try from 00a0205b to 00a0217b has its CatchHandler @ 00a033b7 */
pcVar7 = *(code **)(iVar14 + 0x52c);
ppCVar26[-1] = (CTerrorPlayer *)0xa02061;
iVar14 = (*pcVar7)();
if ((iVar14 != 0) && (local_2c != 0)) {
ppCVar26[1] = (CTerrorPlayer *)iVar14;
*ppCVar26 = (CTerrorPlayer *)local_2c;
ppCVar26[-1] = (CTerrorPlayer *)0xa02080;
cVar9 = TerrorNavArea::IsCompletelyVisible
((TerrorNavArea *)*ppCVar26,(TerrorNavArea *)ppCVar26[1]);
if (cVar9 != '\0') {
iVar14 = *piVar13;
ppCVar26[1] = (CTerrorPlayer *)piVar13;
*ppCVar26 = (CTerrorPlayer *)&local_150;
pcVar7 = *(code **)(iVar14 + 0x234);
ppCVar26[-1] = (CTerrorPlayer *)0xa0209d;
(*pcVar7)();
ppCVar27 = ppCVar26 + -1;
local_d8 = local_150 - local_38;
local_d4 = local_14c - local_34;
local_d0 = local_148 - local_30;
iVar14 = *(int *)local_48;
ppCVar26[1] = (CTerrorPlayer *)0x0;
*ppCVar26 = (CTerrorPlayer *)&local_d8;
ppCVar26[-1] = local_48;
pcVar7 = *(code **)(iVar14 + 0x420);
ppCVar26[-2] = (CTerrorPlayer *)0xa020ff;
cVar9 = (*pcVar7)();
piVar20 = (int *)(ppCVar26 + -1);
if ((cVar9 != '\0') &&
(fVar29 = SQRT(local_d0 * local_d0 + local_d4 * local_d4 +
local_d8 * local_d8), piVar20 = (int *)(ppCVar26 + -1),
fVar29 < *(float *)(MusicDynamicAttackCIRangeMax._28_4_ + 0x2c) ||
fVar29 == *(float *)(MusicDynamicAttackCIRangeMax._28_4_ + 0x2c))) {
ppCVar26[1] = (CTerrorPlayer *)&local_170;
*ppCVar26 = (CTerrorPlayer *)local_50;
ppCVar26[-1] = (CTerrorPlayer *)&local_5c;
ppCVar26[-2] = (CTerrorPlayer *)0xa0217c;
CUtlVector<Infected*,CUtlMemory<Infected*,int>>::InsertBefore
((CUtlVector<Infected*,CUtlMemory<Infected*,int>> *)ppCVar26[-1],
(int)*ppCVar26,(Infected **)ppCVar26[1]);
if (local_20 <= fVar29) {
fVar29 = local_20;
}
local_28 = local_28 + 1;
local_20 = fVar29;
piVar20 = (int *)(ppCVar26 + -1);
if (local_24 <= local_28) break;
}
}
}
}
}
}
LAB_00a01ed0:
ppCVar27 = (CTerrorPlayer **)piVar20;
iVar14 = *(int *)(iVar11 + 4);
uVar12 = (uint)*(ushort *)(iVar14 + 6 + uVar12 * 8);
ppCVar26 = ppCVar27;
} while (uVar12 != 0xffff);
}
ppCVar27[1] = (CTerrorPlayer *)local_28;
*ppCVar27 = this + 0x3ab4;
/* try { // try from 00a021f7 to 00a021fb has its CatchHandler @ 00a033b7 */
ppCVar27[-1] = (CTerrorPlayer *)0xa021fc;
Music::OnMobApproachingNear((Music *)*ppCVar27,(int)ppCVar27[1]);
}
local_1b4 = &local_5c;
local_50 = 0;
*ppCVar27 = (CTerrorPlayer *)local_1b4;
ppCVar27[-1] = (CTerrorPlayer *)0xa02211;
CUtlMemory<Infected*,int>::Purge((CUtlMemory<Infected*,int> *)*ppCVar27);
iVar11 = local_5c;
*ppCVar27 = (CTerrorPlayer *)local_1b4;
local_4c = iVar11;
ppCVar27[-1] = (CTerrorPlayer *)0xa0221f;
CUtlMemory<Infected*,int>::Purge((CUtlMemory<Infected*,int> *)*ppCVar27);
*ppCVar27 = (CTerrorPlayer *)&local_70;
local_64 = 0;
ppCVar27[-1] = (CTerrorPlayer *)0xa0222e;
CUtlMemory<Infected*,int>::Purge((CUtlMemory<Infected*,int> *)*ppCVar27);
pCVar17 = local_70;
*ppCVar27 = (CTerrorPlayer *)&local_70;
local_60 = pCVar17;
ppCVar27[-1] = (CTerrorPlayer *)0xa0223c;
CUtlMemory<Infected*,int>::Purge((CUtlMemory<Infected*,int> *)*ppCVar27);
pfVar25 = (float *)ppCVar27;
}
}
LAB_00a00d98:
if (*(int *)(gpGlobals + 4) == CheckEnemySightings()::iRecentFrame) goto LAB_00a01778;
pCVar17 = this + 0x2ebc;
*pfVar25 = (float)pCVar17;
pfVar25[-1] = 1.4698604e-38;
lVar28 = (longdouble)CountdownTimer::Now();
if ((float)lVar28 < *(float *)(this + 0x2ec4)) goto LAB_00a01778;
CheckEnemySightings()::iRecentFrame = *(int *)(gpGlobals + 4);
*pfVar25 = (float)pCVar17;
pfVar25[-1] = 1.4698671e-38;
lVar28 = (longdouble)CountdownTimer::Now();
if ((float)lVar28 + 0.5 != *(float *)(this + 0x2ec4)) {
iVar11 = *(int *)(this + 0x2ebc);
*pfVar25 = (float)pCVar17;
pfVar25[1] = (float)(this + 0x2ec4);
pcVar7 = *(code **)(iVar11 + 4);
pfVar25[-1] = 1.470525e-38;
(*pcVar7)();
*(float *)(this + 0x2ec4) = (float)lVar28 + 0.5;
}
if (*(float *)(this + 0x2ec0) != 0.5) {
iVar11 = *(int *)(this + 0x2ebc);
*pfVar25 = (float)pCVar17;
pfVar25[1] = (float)(this + 0x2ec0);
/* try { // try from 00a01fa3 to 00a01fa5 has its CatchHandler @ 00a033e2 */
pcVar7 = *(code **)(iVar11 + 4);
pfVar25[-1] = 1.4705033e-38;
(*pcVar7)();
*(undefined4 *)(this + 0x2ec0) = 0x3f000000;
}
*pfVar25 = (float)this;
pfVar25[-1] = 1.4698769e-38;
iVar11 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar25);
*pfVar25 = (float)iVar11;
pfVar25[-1] = 1.469878e-38;
cVar9 = IsASurvivorTeam(iVar11);
if (cVar9 != '\0') {
pfVar25[3] = 0.0;
pfVar25[2] = 0.0;
pfVar25[1] = (float)&local_6c;
*pfVar25 = (float)this;
local_70 = this;
pfVar25[-1] = 1.4698839e-38;
CBasePlayer::EyeVectors
((CBasePlayer *)*pfVar25,(Vector *)pfVar25[1],(Vector *)pfVar25[2],
(Vector *)pfVar25[3]);
iVar11 = 1;
piVar20 = (int *)pfVar25;
if (0 < *(int *)(gpGlobals + 0x14)) {
LAB_00a00eb5:
*piVar20 = iVar11;
piVar20[-1] = 0xa00ebd;
piVar13 = (int *)UTIL_PlayerByIndex(*piVar20);
pfVar25 = (float *)piVar20;
if ((piVar13 != (int *)0x0) && (piVar13[0xc] != 0)) {
if (piVar13[0xc] - *(int *)(gpGlobals + 0x58) >> 4 == 0) {
iVar11 = iVar11 + 1;
if (*(int *)(gpGlobals + 0x14) < iVar11) goto LAB_00a00ee4;
goto LAB_00a00eb5;
}
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 0x16c);
piVar20[-1] = 0xa00e83;
cVar9 = (*pcVar7)();
if ((cVar9 != '\0') && (piVar13[0x7db] != 2)) {
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 0x148);
piVar20[-1] = 0xa00e9b;
iVar14 = (*pcVar7)();
if (iVar14 == 0) {
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
/* try { // try from 00a02ac1 to 00a02c15 has its CatchHandler @ 00a033e2 */
pcVar7 = *(code **)(iVar14 + 300);
piVar20[-1] = 0xa02ac7;
cVar9 = (*pcVar7)();
if (cVar9 == '\0') goto LAB_00a00ea8;
*piVar20 = (int)piVar13;
piVar20[-1] = 0xa02ad7;
iVar14 = CBaseEntity::GetTeamNumber((CBaseEntity *)*piVar20);
if (iVar14 == 3) {
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 0x148);
piVar20[-1] = 0xa02aeb;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
*piVar20 = (int)piVar15;
pcVar7 = *(code **)(iVar14 + 0xc4);
piVar20[-1] = 0xa02afa;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
piVar20[1] = 0;
*piVar20 = (int)piVar15;
pcVar7 = *(code **)(iVar14 + 0x114);
piVar20[-1] = 0xa02b11;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') goto LAB_00a00ea8;
}
}
iVar14 = *(int *)local_70;
piVar20[1] = (int)local_70;
*piVar20 = (int)&local_138;
pcVar7 = *(code **)(iVar14 + 0x234);
piVar20[-1] = 0xa02b31;
(*pcVar7)();
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
piVar20[-1] = (int)&local_144;
pcVar7 = *(code **)(iVar14 + 0x234);
piVar20[-2] = 0xa02b49;
(*pcVar7)();
local_cc = local_144 - local_138;
local_c8 = local_140 - local_134;
local_c4 = local_13c - local_130;
iVar14 = *(int *)local_70;
*piVar20 = 0;
piVar20[-1] = (int)&local_cc;
piVar20[-2] = (int)local_70;
pcVar7 = *(code **)(iVar14 + 0x420);
piVar20[-3] = 0xa02bb4;
cVar9 = (*pcVar7)();
pfVar25 = (float *)(piVar20 + -2);
if ((cVar9 != '\0') &&
(pfVar25 = (float *)(piVar20 + -2),
local_c4 * local_c4 + local_c8 * local_c8 + local_cc * local_cc <=
*(float *)(SurvivorIntensityDecayThreatRange._28_4_ + 0x2c) *
*(float *)(SurvivorIntensityDecayThreatRange._28_4_ + 0x2c))) {
*piVar20 = 1;
piVar20[-1] = (int)piVar13;
piVar20[-2] = (int)local_70;
piVar20[-3] = 0xa02c16;
cVar9 = CBaseCombatCharacter::IsAbleToSee();
pfVar25 = (float *)(piVar20 + -2);
if (cVar9 != '\0') goto LAB_00a0109a;
}
}
}
}
}
LAB_00a00ea8:
iVar11 = iVar11 + 1;
piVar20 = (int *)pfVar25;
if (*(int *)(gpGlobals + 0x14) < iVar11) goto LAB_00a00ee4;
goto LAB_00a00eb5;
}
LAB_00a00ee4:
*(undefined4 *)((int)pfVar25 + -4) = 0xa00ee9;
iVar11 = TheNextBots();
uVar12 = (uint)*(ushort *)(iVar11 + 0x10);
if (uVar12 != 0xffff) {
iVar14 = *(int *)(iVar11 + 4);
piVar20 = (int *)pfVar25;
do {
piVar13 = *(int **)(iVar14 + uVar12 * 8);
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 0xb4);
piVar20[-1] = 0xa00f3e;
piVar13 = (int *)(*pcVar7)();
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 300);
piVar20[-1] = 0xa00f4b;
cVar9 = (*pcVar7)();
pfVar25 = (float *)piVar20;
if (cVar9 != '\0') {
*piVar20 = (int)piVar13;
piVar20[-1] = 0xa00f57;
iVar14 = CBaseEntity::GetTeamNumber((CBaseEntity *)*piVar20);
if (iVar14 == 3) {
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
pcVar7 = *(code **)(iVar14 + 0x148);
piVar20[-1] = 0xa00f67;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
*piVar20 = (int)piVar15;
pcVar7 = *(code **)(iVar14 + 0xc4);
piVar20[-1] = 0xa00f76;
piVar15 = (int *)(*pcVar7)();
if (piVar15 != (int *)0x0) {
iVar14 = *piVar15;
piVar20[1] = 0;
*piVar20 = (int)piVar15;
pcVar7 = *(code **)(iVar14 + 0x114);
piVar20[-1] = 0xa00f8d;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') goto LAB_00a00f10;
}
}
iVar14 = *(int *)local_70;
piVar20[1] = (int)local_70;
*piVar20 = (int)&local_120;
pcVar7 = *(code **)(iVar14 + 0x234);
piVar20[-1] = 0xa00fad;
(*pcVar7)();
iVar14 = *piVar13;
*piVar20 = (int)piVar13;
piVar20[-1] = (int)&local_12c;
pcVar7 = *(code **)(iVar14 + 0x234);
piVar20[-2] = 0xa00fc5;
(*pcVar7)();
local_b4 = (undefined **)(local_12c - local_120);
local_b0 = (CTerrorPlayer *)(local_128 - local_11c);
local_ac = local_124 - local_118;
iVar14 = *(int *)local_70;
*piVar20 = 0;
piVar20[-1] = (int)&local_b4;
piVar20[-2] = (int)local_70;
pcVar7 = *(code **)(iVar14 + 0x420);
piVar20[-3] = 0xa01030;
cVar9 = (*pcVar7)();
pfVar25 = (float *)(piVar20 + -2);
if ((cVar9 != '\0') &&
(pfVar25 = (float *)(piVar20 + -2),
(float)local_b0 * (float)local_b0 + (float)local_b4 * (float)local_b4 +
local_ac * local_ac <=
*(float *)(SurvivorIntensityDecayThreatRange._28_4_ + 0x2c) *
*(float *)(SurvivorIntensityDecayThreatRange._28_4_ + 0x2c))) {
*piVar20 = 1;
piVar20[-1] = (int)piVar13;
piVar20[-2] = (int)local_70;
piVar20[-3] = 0xa01092;
cVar9 = CBaseCombatCharacter::IsAbleToSee();
pfVar25 = (float *)(piVar20 + -2);
if (cVar9 != '\0') goto LAB_00a0109a;
}
}
}
LAB_00a00f10:
iVar14 = *(int *)(iVar11 + 4);
uVar12 = (uint)*(ushort *)(iVar14 + 6 + uVar12 * 8);
piVar20 = (int *)pfVar25;
} while (uVar12 != 0xffff);
}
}
LAB_00a010d8:
*pfVar25 = (float)this;
pfVar25[-1] = 1.4699733e-38;
iVar11 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar25);
*pfVar25 = (float)iVar11;
pfVar25[-1] = 1.4699744e-38;
cVar9 = IsASurvivorTeam(iVar11);
local_170 = this;
iVar11 = 3 - (uint)(cVar9 == '\0');
local_16c = iVar11;
*pfVar25 = (float)&local_170;
pfVar25[-1] = 1.4699813e-38;
bVar10 = ForEachPlayer<VisibleToTeamScan>((VisibleToTeamScan *)*pfVar25);
if (!bVar10) {
*pfVar25 = (float)(this + 0x3114);
pfVar25[-1] = 1.4699838e-38;
lVar28 = (longdouble)IntervalTimer::Now();
if ((float)lVar28 != *(float *)(this + 0x3118)) {
iVar14 = *(int *)(this + 0x3114);
*pfVar25 = (float)(this + 0x3114);
pfVar25[1] = (float)(this + 0x3118);
/* try { // try from 00a0201d to 00a02040 has its CatchHandler @ 00a033e2 */
pcVar7 = *(code **)(iVar14 + 4);
pfVar25[-1] = 1.4705204e-38;
(*pcVar7)();
*(float *)(this + 0x3118) = (float)lVar28;
}
}
fVar29 = *(float *)(ZombieAlertDot._28_4_ + 0x2c);
local_84 = 0;
iVar14 = *(int *)this;
local_80 = 0;
local_b4 = &PTR_operator___00c53020;
local_7c = 0;
local_78 = 0.0;
local_74 = 0;
local_b0 = this;
*pfVar25 = (float)this;
/* try { // try from 00a01192 to 00a011a9 has its CatchHandler @ 00a03384 */
pcVar7 = *(code **)(iVar14 + 0x238);
pfVar25[-1] = 1.4699991e-38;
uVar16 = (*pcVar7)();
*pfVar25 = (float)uVar16;
pfVar25[1] = (float)&local_ac;
pfVar25[-1] = 1.4700016e-38;
AngleVectors((QAngle *)*pfVar25,(Vector *)pfVar25[1]);
iVar14 = 1;
local_94 = 2000.0;
local_88 = (CTerrorPlayer *)0x0;
local_90 = 50.0;
local_9c = 1.0 - fVar29;
local_8c = '\0';
local_a0 = iVar11;
local_98 = local_9c;
if (0 < *(int *)(gpGlobals + 0x14)) {
do {
while( true ) {
*pfVar25 = (float)iVar14;
pfVar25[-1] = 1.4700256e-38;
pCVar17 = (CTerrorPlayer *)UTIL_PlayerByIndex((int)*pfVar25);
if ((pCVar17 != (CTerrorPlayer *)0x0) && (*(int *)(pCVar17 + 0x30) != 0)) break;
LAB_00a01240:
iVar14 = iVar14 + 1;
if (*(int *)(gpGlobals + 0x14) < iVar14) goto LAB_00a0127c;
}
if (*(int *)(pCVar17 + 0x30) - *(int *)(gpGlobals + 0x58) >> 4 != 0) {
iVar19 = *(int *)pCVar17;
*pfVar25 = (float)pCVar17;
/* try { // try from 00a01215 to 00a01307 has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar19 + 0x16c);
pfVar25[-1] = 1.4700174e-38;
cVar9 = (*pcVar7)();
if ((cVar9 != '\0') && (*(int *)(pCVar17 + 0x1f6c) != 2)) {
iVar19 = *(int *)pCVar17;
*pfVar25 = (float)pCVar17;
pcVar7 = *(code **)(iVar19 + 0x148);
pfVar25[-1] = 1.4700208e-38;
iVar19 = (*pcVar7)();
if (iVar19 == 0) {
local_194 = pCVar17;
local_184 = 0;
local_180 = 0;
if (___atan2f_finite == 0) {
local_10c = 0;
}
else {
pfVar25[0xb] = (float)"TargetScan()";
pfVar25[10] = (float)"Unaccounted";
pfVar25[9] = (float)"(%s)%s";
pfVar25[8] = (float)&TargetScan<CBaseCombatCharacter>::
operator()(CBaseCombatCharacter*)::tm_fmt;
pfVar25[7] = 6.5861e-44;
pfVar25[6] = (float)"/data/src/game/shared/sharedfunctorutils.h";
pfVar25[5] = 0.0;
pfVar25[3] = 0.0;
pfVar25[4] = 0.0;
pfVar25[2] = 0.0;
pfVar25[1] = (float)&local_184;
*pfVar25 = (float)___atan2f_finite;
/* try { // try from 00a02568 to 00a0256a has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(___atan2f_finite + 0x50);
pfVar25[-1] = 1.4707102e-38;
(*pcVar7)();
local_10c = ___atan2f_finite;
}
iVar19 = _DAT_0105db00;
local_114 = local_184;
local_110 = local_180;
if ((_DAT_0105d154 != 0) || (DAT_0105d158 == '\0')) {
/* try { // try from 00a025a7 to 00a025ab has its CatchHandler @ 00a033d9 */
pfVar25[-1] = 1.4707194e-38;
iVar18 = ThreadGetCurrentId();
if (iVar19 == iVar18) {
if ((char *)*_DAT_0105d15c != "TargetScan()") {
pfVar25[4] = 0.0;
pfVar25[3] = (float)"Unaccounted";
pfVar25[2] = 1.4013e-45;
pfVar25[1] = (float)"TargetScan()";
*pfVar25 = (float)_DAT_0105d15c;
/* try { // try from 00a02e8e to 00a02e9f has its CatchHandler @ 00a033d9 */
pfVar25[-1] = 1.4710387e-38;
_DAT_0105d15c =
(int *)CVProfNode::GetSubNode
((char *)*pfVar25,(int)pfVar25[1],(char *)pfVar25[2],
(int)pfVar25[3]);
}
*pfVar25 = (float)_DAT_0105d15c;
pfVar25[-1] = 1.4710405e-38;
CVProfNode::EnterScope();
DAT_0105d158 = '\0';
}
}
pfVar21 = pfVar25;
if (local_b0 != local_194) {
iVar19 = *(int *)local_194;
*pfVar25 = (float)local_194;
/* try { // try from 00a025c7 to 00a025eb has its CatchHandler @ 00a03396 */
pcVar7 = *(code **)(iVar19 + 300);
pfVar25[-1] = 1.470724e-38;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') {
if (local_a0 != -1) {
*pfVar25 = (float)local_194;
pfVar25[-1] = 1.4707283e-38;
iVar19 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar25);
if (iVar19 != local_a0) goto LAB_00a025f8;
}
iVar19 = *(int *)local_194;
*pfVar25 = (float)local_194;
/* try { // try from 00a02eb7 to 00a0329b has its CatchHandler @ 00a03396 */
pcVar7 = *(code **)(iVar19 + 0x558);
pfVar25[-1] = 1.4710446e-38;
cVar9 = (*pcVar7)();
if (cVar9 == '\0') {
iVar19 = *(int *)local_b0;
pfVar25[1] = (float)local_b0;
*pfVar25 = (float)&local_f0;
pcVar7 = *(code **)(iVar19 + 0x234);
pfVar25[-1] = 1.4710495e-38;
(*pcVar7)();
local_e0 = local_a8 * local_90 + local_ec;
local_dc = local_a4 * local_90 + local_e8;
local_e4 = local_90 * local_ac + local_f0;
iVar19 = *(int *)local_194;
pfVar25[-1] = (float)local_194;
pcVar7 = *(code **)(iVar19 + 0x288);
pfVar25[-2] = 1.4710646e-38;
uVar16 = (*pcVar7)();
pfVar25[3] = 0.0;
pfVar25[2] = (float)&local_d8;
pfVar25[1] = (float)&local_e4;
*pfVar25 = (float)&local_f0;
pfVar25[-1] = (float)uVar16;
pfVar25[-2] = 1.4710719e-38;
CalcClosestPointOnLineSegment
((Vector *)pfVar25[-1],(Vector *)*pfVar25,(Vector *)pfVar25[1],
(Vector *)pfVar25[2],(float *)pfVar25[3]);
pCVar17 = local_194;
if (((byte)local_194[0x14d] & 8) != 0) {
pfVar25[-1] = (float)local_194;
pfVar25[-2] = 1.4710757e-38;
CBaseEntity::CalcAbsolutePosition((CBaseEntity *)pfVar25[-1]);
}
local_f0 = *(float *)(pCVar17 + 0x2e0);
local_ec = *(float *)(pCVar17 + 0x2e4);
local_e8 = *(float *)(pCVar17 + 0x2e8);
iVar19 = *(int *)(local_194 + 0x194);
pfVar25[-1] = (float)(local_194 + 0x194);
pcVar7 = *(code **)(iVar19 + 8);
pfVar25[-2] = 1.4710892e-38;
local_e4 = local_f0;
local_e0 = local_ec;
local_dc = local_e8;
iVar19 = (*pcVar7)();
fVar29 = *(float *)(iVar19 + 8);
pfVar25[3] = 0.0;
pfVar25[2] = (float)&local_fc;
local_dc = local_dc + fVar29;
pfVar25[1] = (float)&local_e4;
*pfVar25 = (float)&local_f0;
pfVar25[-1] = (float)&local_d8;
pfVar25[-2] = 1.4710994e-38;
CalcClosestPointOnLineSegment
((Vector *)pfVar25[-1],(Vector *)*pfVar25,(Vector *)pfVar25[1],
(Vector *)pfVar25[2],(float *)pfVar25[3]);
if (local_8c != '\0') {
pfVar25[5] = -1.0;
pfVar25[4] = 1.4013e-45;
pfVar25[3] = 3.57331e-43;
pfVar25[2] = 3.57331e-43;
pfVar25[1] = 3.57331e-43;
*pfVar25 = 1.0;
pfVar25[-1] = (float)&local_fc;
pfVar25[-2] = 1.4711085e-38;
NDebugOverlay::Cross3D
((Vector *)pfVar25[-1],*pfVar25,(int)pfVar25[1],(int)pfVar25[2],
(int)pfVar25[3],*(bool *)(pfVar25 + 4),pfVar25[5]);
pfVar25[5] = -1.0;
*pfVar25 = (float)&local_f0;
pfVar25[4] = 1.4013e-45;
pfVar25[3] = 0.0;
pfVar25[2] = 0.0;
pfVar25[1] = 3.57331e-43;
pfVar25[-1] = (float)&local_e4;
pfVar25[-2] = 1.4711175e-38;
NDebugOverlay::Line((Vector *)pfVar25[-1],(Vector *)*pfVar25,(int)pfVar25[1],
(int)pfVar25[2],(int)pfVar25[3],*(bool *)(pfVar25 + 4),
pfVar25[5]);
}
iVar19 = *(int *)local_b0;
*pfVar25 = (float)local_b0;
pfVar25[-1] = (float)&local_c0;
pcVar7 = *(code **)(iVar19 + 0x234);
pfVar25[-2] = 1.4711221e-38;
(*pcVar7)();
pfVar25[-2] = (float)&local_cc;
local_cc = local_fc - (float)local_c0;
local_c8 = local_f8 - (float)local_bc;
local_c4 = local_f4 - local_b8;
pfVar25[-3] = 1.4711346e-38;
VectorNormalize((Vector *)pfVar25[-2]);
pfVar25[-1] = (float)&local_fc;
*pfVar25 = (float)&local_c0;
pfVar25[-2] = (float)(local_b0 + 0x194);
pfVar25[-3] = 1.4711396e-38;
CCollisionProperty::CalcNearestPoint
((CCollisionProperty *)pfVar25[-2],(Vector *)pfVar25[-1],
(Vector *)*pfVar25);
*pfVar25 = (float)&local_70;
pfVar25[-1] = (float)&local_c0;
pfVar25[-2] = (float)(local_194 + 0x194);
pfVar25[-3] = 1.4711446e-38;
CCollisionProperty::CalcNearestPoint
((CCollisionProperty *)pfVar25[-2],(Vector *)pfVar25[-1],
(Vector *)*pfVar25);
pfVar21 = pfVar25 + -2;
if ((SQRT((local_b8 - local_68) * (local_b8 - local_68) +
((float)local_bc - (float)local_6c) *
((float)local_bc - (float)local_6c) +
((float)local_c0 - (float)local_70) *
((float)local_c0 - (float)local_70)) <= local_94) &&
(fVar29 = local_c4 * local_a4 + local_cc * local_ac + local_c8 * local_a8,
pfVar21 = pfVar25 + -2, local_9c < fVar29)) {
*pfVar25 = 1.4013e-45;
pfVar25[-1] = (float)local_194;
pfVar25[-2] = (float)local_b0;
pfVar25[-3] = 1.4711732e-38;
cVar9 = CBaseCombatCharacter::IsAbleToSee();
pfVar21 = pfVar25 + -2;
if (cVar9 != '\0') {
if (local_98 <= fVar29) {
local_98 = fVar29;
local_88 = local_194;
}
*pfVar25 = (float)&local_194;
pfVar25[-1] = local_78;
pfVar25[-2] = (float)&local_84;
pfVar25[-3] = 1.4711835e-38;
CUtlVector<CBaseCombatCharacter*,CUtlMemory<CBaseCombatCharacter*,int>>::
InsertBefore((CUtlVector<CBaseCombatCharacter*,CUtlMemory<CBaseCombatCharacter*,int>>
*)pfVar25[-2],(int)pfVar25[-1],(CBaseCombatCharacter **)*pfVar25
);
pfVar21 = pfVar25 + -2;
}
}
}
}
}
LAB_00a025f8:
iVar19 = _DAT_0105db00;
if ((DAT_0105d158 == '\0') || (_DAT_0105d154 != 0)) {
pfVar21[-1] = 1.470734e-38;
iVar18 = ThreadGetCurrentId();
if (iVar19 == iVar18) {
*pfVar21 = (float)_DAT_0105d15c;
pfVar21[-1] = 1.4710265e-38;
cVar9 = CVProfNode::ExitScope();
if (cVar9 != '\0') {
_DAT_0105d15c = (int *)_DAT_0105d15c[0x19];
}
DAT_0105d158 = _DAT_0105d15c == (int *)0x105d160;
}
}
pfVar25 = pfVar21;
if (local_10c != 0) {
pfVar21[5] = 0.0;
pfVar21[4] = 0.0;
pfVar21[3] = 0.0;
*pfVar21 = (float)local_10c;
pfVar21[1] = (float)local_114;
pfVar21[2] = (float)local_110;
pcVar7 = *(code **)(local_10c + 0x54);
pfVar21[-1] = 1.4707442e-38;
(*pcVar7)();
}
}
}
goto LAB_00a01240;
}
iVar14 = iVar14 + 1;
} while (iVar14 <= *(int *)(gpGlobals + 0x14));
}
LAB_00a0127c:
*(undefined4 *)((int)pfVar25 + -4) = 0xa01281;
iVar14 = TheNextBots();
uVar12 = (uint)*(ushort *)(iVar14 + 0x10);
if (uVar12 != 0xffff) {
iVar19 = *(int *)(iVar14 + 4);
pfVar21 = pfVar25;
do {
piVar20 = *(int **)(iVar19 + uVar12 * 8);
iVar19 = *piVar20;
*pfVar21 = (float)piVar20;
/* try { // try from 00a01436 to 00a0143b has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar19 + 0xb4);
pfVar21[-1] = 1.4700938e-38;
local_190 = (CTerrorPlayer *)(*pcVar7)();
local_17c = 0;
local_178 = 0;
if (___atan2f_finite == 0) {
local_100 = 0;
}
else {
pfVar21[0xb] = (float)"TargetScan()";
pfVar21[10] = (float)"Unaccounted";
pfVar21[9] = (float)"(%s)%s";
pfVar21[8] = (float)&TargetScan<CBaseCombatCharacter>::operator()(CBaseCombatCharacter*)::
tm_fmt;
pfVar21[7] = 6.5861e-44;
pfVar21[6] = (float)"/data/src/game/shared/sharedfunctorutils.h";
pfVar21[5] = 0.0;
pfVar21[3] = 0.0;
pfVar21[4] = 0.0;
pfVar21[2] = 0.0;
pfVar21[1] = (float)&local_17c;
*pfVar21 = (float)___atan2f_finite;
pcVar7 = *(code **)(___atan2f_finite + 0x50);
pfVar21[-1] = 1.4700507e-38;
(*pcVar7)();
local_100 = ___atan2f_finite;
}
iVar19 = _DAT_0105db00;
local_108 = local_17c;
local_104 = local_178;
if ((_DAT_0105d154 != 0) || (DAT_0105d158 == '\0')) {
/* try { // try from 00a01345 to 00a01349 has its CatchHandler @ 00a0336f */
pfVar21[-1] = 1.4700599e-38;
iVar18 = ThreadGetCurrentId();
if (iVar19 == iVar18) {
if ((char *)*_DAT_0105d15c != "TargetScan()") {
pfVar21[4] = 0.0;
pfVar21[3] = (float)"Unaccounted";
pfVar21[2] = 1.4013e-45;
pfVar21[1] = (float)"TargetScan()";
*pfVar21 = (float)_DAT_0105d15c;
/* try { // try from 00a01870 to 00a01881 has its CatchHandler @ 00a0336f */
pfVar21[-1] = 1.4702453e-38;
_DAT_0105d15c =
(int *)CVProfNode::GetSubNode
((char *)*pfVar21,(int)pfVar21[1],(char *)pfVar21[2],
(int)pfVar21[3]);
}
*pfVar21 = (float)_DAT_0105d15c;
pfVar21[-1] = 1.4702471e-38;
CVProfNode::EnterScope();
DAT_0105d158 = '\0';
}
}
pfVar25 = pfVar21;
if (local_b0 != local_190) {
iVar19 = *(int *)local_190;
*pfVar21 = (float)local_190;
/* try { // try from 00a01365 to 00a01389 has its CatchHandler @ 00a033f5 */
pcVar7 = *(code **)(iVar19 + 300);
pfVar21[-1] = 1.4700645e-38;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') {
if (local_a0 != -1) {
*pfVar21 = (float)local_190;
pfVar21[-1] = 1.4700689e-38;
iVar19 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar21);
if (iVar19 != local_a0) goto LAB_00a013a0;
}
iVar19 = *(int *)local_190;
*pfVar21 = (float)local_190;
/* try { // try from 00a0189b to 00a01c6a has its CatchHandler @ 00a033f5 */
pcVar7 = *(code **)(iVar19 + 0x558);
pfVar21[-1] = 1.4702515e-38;
cVar9 = (*pcVar7)();
if (cVar9 == '\0') {
iVar19 = *(int *)local_b0;
pfVar21[1] = (float)local_b0;
*pfVar21 = (float)&local_f0;
pcVar7 = *(code **)(iVar19 + 0x234);
pfVar21[-1] = 1.4702564e-38;
(*pcVar7)();
local_e0 = local_a8 * local_90 + local_ec;
local_dc = local_a4 * local_90 + local_e8;
local_e4 = local_90 * local_ac + local_f0;
iVar19 = *(int *)local_190;
pfVar21[-1] = (float)local_190;
pcVar7 = *(code **)(iVar19 + 0x288);
pfVar21[-2] = 1.4702715e-38;
uVar16 = (*pcVar7)();
pfVar21[3] = 0.0;
pfVar21[1] = (float)&local_e4;
pfVar21[2] = (float)&local_d8;
*pfVar21 = (float)&local_f0;
pfVar21[-1] = (float)uVar16;
pfVar21[-2] = 1.4702788e-38;
CalcClosestPointOnLineSegment
((Vector *)pfVar21[-1],(Vector *)*pfVar21,(Vector *)pfVar21[1],
(Vector *)pfVar21[2],(float *)pfVar21[3]);
pCVar17 = local_190;
if (((byte)local_190[0x14d] & 8) != 0) {
pfVar21[-1] = (float)local_190;
pfVar21[-2] = 1.4702826e-38;
CBaseEntity::CalcAbsolutePosition((CBaseEntity *)pfVar21[-1]);
}
local_f0 = *(float *)(pCVar17 + 0x2e0);
local_ec = *(float *)(pCVar17 + 0x2e4);
local_e8 = *(float *)(pCVar17 + 0x2e8);
iVar19 = *(int *)(local_190 + 0x194);
pfVar21[-1] = (float)(local_190 + 0x194);
pcVar7 = *(code **)(iVar19 + 8);
pfVar21[-2] = 1.470296e-38;
local_e4 = local_f0;
local_e0 = local_ec;
local_dc = local_e8;
iVar19 = (*pcVar7)();
fVar29 = *(float *)(iVar19 + 8);
pfVar21[3] = 0.0;
pfVar21[2] = (float)&local_fc;
pfVar21[-1] = (float)&local_d8;
local_dc = local_dc + fVar29;
pfVar21[1] = (float)&local_e4;
*pfVar21 = (float)&local_f0;
pfVar21[-2] = 1.4703054e-38;
CalcClosestPointOnLineSegment
((Vector *)pfVar21[-1],(Vector *)*pfVar21,(Vector *)pfVar21[1],
(Vector *)pfVar21[2],(float *)pfVar21[3]);
if (local_8c != '\0') {
pfVar21[5] = -1.0;
pfVar21[4] = 1.4013e-45;
pfVar21[3] = 3.57331e-43;
pfVar21[2] = 3.57331e-43;
pfVar21[1] = 3.57331e-43;
*pfVar21 = 1.0;
pfVar21[-1] = (float)&local_fc;
pfVar21[-2] = 1.4703145e-38;
NDebugOverlay::Cross3D
((Vector *)pfVar21[-1],*pfVar21,(int)pfVar21[1],(int)pfVar21[2],
(int)pfVar21[3],*(bool *)(pfVar21 + 4),pfVar21[5]);
pfVar21[5] = -1.0;
*pfVar21 = (float)&local_f0;
pfVar21[4] = 1.4013e-45;
pfVar21[3] = 0.0;
pfVar21[2] = 0.0;
pfVar21[1] = 3.57331e-43;
pfVar21[-1] = (float)&local_e4;
pfVar21[-2] = 1.4703235e-38;
NDebugOverlay::Line((Vector *)pfVar21[-1],(Vector *)*pfVar21,(int)pfVar21[1],
(int)pfVar21[2],(int)pfVar21[3],*(bool *)(pfVar21 + 4),pfVar21[5])
;
}
iVar19 = *(int *)local_b0;
*pfVar21 = (float)local_b0;
pfVar21[-1] = (float)&local_70;
pcVar7 = *(code **)(iVar19 + 0x234);
pfVar21[-2] = 1.4703268e-38;
(*pcVar7)();
pfVar21[-2] = (float)&local_cc;
local_cc = local_fc - (float)local_70;
local_c8 = local_f8 - (float)local_6c;
local_c4 = local_f4 - local_68;
pfVar21[-3] = 1.470338e-38;
VectorNormalize((Vector *)pfVar21[-2]);
pfVar21[-1] = (float)&local_fc;
*pfVar21 = (float)&local_c0;
pfVar21[-2] = (float)(local_b0 + 0x194);
pfVar21[-3] = 1.470344e-38;
CCollisionProperty::CalcNearestPoint
((CCollisionProperty *)pfVar21[-2],(Vector *)pfVar21[-1],(Vector *)*pfVar21);
*pfVar21 = (float)&local_70;
pfVar21[-1] = (float)&local_c0;
pfVar21[-2] = (float)(local_190 + 0x194);
pfVar21[-3] = 1.4703486e-38;
CCollisionProperty::CalcNearestPoint
((CCollisionProperty *)pfVar21[-2],(Vector *)pfVar21[-1],(Vector *)*pfVar21);
pfVar25 = pfVar21 + -2;
if ((SQRT(((float)local_c0 - (float)local_70) * ((float)local_c0 - (float)local_70) +
(local_b8 - local_68) * (local_b8 - local_68) +
((float)local_bc - (float)local_6c) * ((float)local_bc - (float)local_6c)) <=
local_94) &&
(fVar29 = local_c4 * local_a4 + local_cc * local_ac + local_c8 * local_a8,
pfVar25 = pfVar21 + -2, local_9c < fVar29)) {
*pfVar21 = 1.4013e-45;
pfVar21[-1] = (float)local_190;
pfVar21[-2] = (float)local_b0;
pfVar21[-3] = 1.4703772e-38;
cVar9 = CBaseCombatCharacter::IsAbleToSee();
pfVar25 = pfVar21 + -2;
if (cVar9 != '\0') {
if (local_98 <= fVar29) {
local_98 = fVar29;
local_88 = local_190;
}
*pfVar21 = (float)&local_190;
pfVar21[-1] = local_78;
pfVar21[-2] = (float)&local_84;
pfVar21[-3] = 1.4703874e-38;
CUtlVector<CBaseCombatCharacter*,CUtlMemory<CBaseCombatCharacter*,int>>::
InsertBefore((CUtlVector<CBaseCombatCharacter*,CUtlMemory<CBaseCombatCharacter*,int>>
*)pfVar21[-2],(int)pfVar21[-1],(CBaseCombatCharacter **)*pfVar21);
pfVar25 = pfVar21 + -2;
}
}
}
}
}
LAB_00a013a0:
iVar19 = _DAT_0105db00;
if ((DAT_0105d158 == '\0') || (_DAT_0105d154 != 0)) {
pfVar25[-1] = 1.4700762e-38;
iVar18 = ThreadGetCurrentId();
if (iVar19 == iVar18) {
*pfVar25 = (float)_DAT_0105d15c;
pfVar25[-1] = 1.470233e-38;
cVar9 = CVProfNode::ExitScope();
if (cVar9 != '\0') {
_DAT_0105d15c = (int *)_DAT_0105d15c[0x19];
}
DAT_0105d158 = _DAT_0105d15c == (int *)0x105d160;
}
}
if (local_100 != 0) {
pfVar25[5] = 0.0;
pfVar25[4] = 0.0;
pfVar25[3] = 0.0;
*pfVar25 = (float)local_100;
pfVar25[1] = (float)local_108;
pfVar25[2] = (float)local_104;
pcVar7 = *(code **)(local_100 + 0x54);
pfVar25[-1] = 1.4700857e-38;
(*pcVar7)();
}
iVar19 = *(int *)(iVar14 + 4);
uVar12 = (uint)*(ushort *)(iVar19 + 6 + uVar12 * 8);
pfVar21 = pfVar25;
} while (uVar12 != 0xffff);
}
if (0 < (int)local_78) {
iVar14 = 0;
do {
piVar20 = *(int **)(local_84 + iVar14 * 4);
iVar19 = *piVar20;
*pfVar25 = (float)piVar20;
/* try { // try from 00a01503 to 00a0174a has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar19 + 0x16c);
pfVar25[-1] = 1.4701225e-38;
cVar9 = (*pcVar7)();
if (cVar9 != '\0') {
LAB_00a01533:
CVar24 = (CTerrorPlayer)0x1;
goto LAB_00a01538;
}
iVar19 = *piVar20;
*pfVar25 = (float)piVar20;
pcVar7 = *(code **)(iVar19 + 0x14c);
pfVar25[-1] = 1.4701246e-38;
piVar20 = (int *)(*pcVar7)();
if (piVar20 != (int *)0x0) {
*pfVar25 = (float)piVar20;
pfVar25[-1] = 1.4701272e-38;
iVar19 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar25);
if (iVar19 == 3) {
iVar19 = *piVar20;
*pfVar25 = (float)piVar20;
/* try { // try from 00a01c85 to 00a01ca9 has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar19 + 0x544);
pfVar25[-1] = 1.4703919e-38;
iVar19 = (*pcVar7)();
if (iVar19 != 7) {
iVar19 = *piVar20;
*pfVar25 = (float)piVar20;
pcVar7 = *(code **)(iVar19 + 0x594);
pfVar25[-1] = 1.4703947e-38;
piVar20 = (int *)(*pcVar7)();
iVar19 = *piVar20;
*pfVar25 = (float)piVar20;
pcVar7 = *(code **)(iVar19 + 0x110);
pfVar25[-1] = 1.4703962e-38;
iVar19 = (*pcVar7)();
if (iVar19 == 0) goto LAB_00a01cb2;
}
}
goto LAB_00a01533;
}
LAB_00a01cb2:
iVar14 = iVar14 + 1;
} while (iVar14 < (int)local_78);
}
CVar24 = (CTerrorPlayer)0x0;
LAB_00a01538:
if (CVar24 != this[0x3148]) {
if (this[0x6c] == (CTerrorPlayer)0x0) {
puVar8 = *(uint **)(this + 0x30);
if (puVar8 != (uint *)0x0) {
*puVar8 = *puVar8 | 0x101;
*pfVar25 = (float)puVar8;
pfVar25[-1] = 1.4701346e-38;
iVar14 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar25);
*(undefined2 *)(iVar14 + 2) = 0;
}
}
else {
this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
}
this[0x3148] = CVar24;
}
if (local_88 == (CTerrorPlayer *)0x0) {
*pfVar25 = (float)this;
/* try { // try from 00a02244 to 00a02248 has its CatchHandler @ 00a032eb */
pfVar25[-1] = 1.4705979e-38;
iVar14 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar25);
if (iVar14 == 3) {
iVar14 = *(int *)this;
*pfVar25 = (float)this;
/* try { // try from 00a02c2d to 00a02c32 has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar14 + 0x544);
pfVar25[-1] = 1.4709535e-38;
iVar14 = (*pcVar7)();
if (iVar14 == 8) {
iVar14 = *(int *)this;
local_70 = (CTerrorPlayer *)&PTR_operator___00c22340;
local_40 = 0.0;
local_3c = 0;
local_38 = 0.0;
local_34 = 0.0;
local_30 = 0.0;
local_6c = this;
*pfVar25 = (float)this;
/* try { // try from 00a02c6e to 00a02c82 has its CatchHandler @ 00a0336b */
pcVar7 = *(code **)(iVar14 + 0x238);
pfVar25[-1] = 1.4709626e-38;
uVar16 = (*pcVar7)();
*pfVar25 = (float)uVar16;
pfVar25[1] = (float)&local_68;
pfVar25[-1] = 1.4709647e-38;
AngleVectors((QAngle *)*pfVar25,(Vector *)pfVar25[1]);
local_58 = 0xbf800000;
local_54 = 0xbf800000;
local_50 = 0x461c4000;
local_44 = (int *)0x0;
local_5c = iVar11;
*pfVar25 = (float)&local_70;
local_4c = 0x42480000;
local_48 = (CTerrorPlayer *)((uint)local_48 & 0xffffff00);
/* try { // try from 00a02cb9 to 00a02dcf has its CatchHandler @ 00a03340 */
pfVar25[-1] = 1.470973e-38;
ForEachTerrorPlayer<TargetScan<CTerrorPlayer>>((TargetScan *)*pfVar25);
if (local_44 != (int *)0x0) {
*pfVar25 = (float)(this + 0x3124);
pfVar25[-1] = 1.4709765e-38;
lVar28 = (longdouble)IntervalTimer::Now();
if ((float)lVar28 != *(float *)(this + 0x3128)) {
iVar11 = *(int *)(this + 0x3124);
*pfVar25 = (float)(this + 0x3124);
pfVar25[1] = (float)(this + 0x3128);
/* try { // try from 00a032cf to 00a032d1 has its CatchHandler @ 00a03340 */
pcVar7 = *(code **)(iVar11 + 4);
pfVar25[-1] = 1.471191e-38;
(*pcVar7)();
*(float *)(this + 0x3128) = (float)lVar28;
}
iVar11 = *(int *)this;
*(undefined4 *)(this + 0x312c) = local_54;
*pfVar25 = (float)this;
pcVar7 = *(code **)(iVar11 + 0x288);
pfVar25[-1] = 1.4709839e-38;
pfVar21 = (float *)(*pcVar7)();
iVar11 = *local_44;
*pfVar25 = (float)local_44;
pcVar7 = *(code **)(iVar11 + 0x288);
pfVar25[-1] = 1.4709862e-38;
pfVar22 = (float *)(*pcVar7)();
fVar29 = *pfVar22;
fVar1 = pfVar22[2];
fVar2 = *pfVar21;
fVar3 = pfVar21[2];
fVar4 = pfVar22[1];
fVar5 = pfVar21[1];
*(undefined4 *)(this + 0x3140) = 0;
*(float *)(this + 0x3130) =
SQRT((fVar29 - fVar2) * (fVar29 - fVar2) + (fVar1 - fVar3) * (fVar1 - fVar3) +
(fVar4 - fVar5) * (fVar4 - fVar5));
if (0 < (int)local_34) {
iVar11 = 0;
do {
piVar20 = *(int **)((int)local_40 + iVar11 * 4);
local_c0 = (undefined **)0xffffffff;
if (piVar20 != (int *)0x0) {
iVar14 = *piVar20;
*pfVar25 = (float)piVar20;
pcVar7 = *(code **)(iVar14 + 0xc);
pfVar25[-1] = 1.4710063e-38;
pfVar21 = (float *)(*pcVar7)();
local_c0 = (undefined **)*pfVar21;
}
pfVar25[2] = (float)&local_c0;
pfVar25[1] = *(float *)(this + 0x3140);
*pfVar25 = (float)(this + 0x3134);
pfVar25[-1] = 1.4710114e-38;
CUtlVector<CHandle<CBaseCombatCharacter>,CUtlMemory<CHandle<CBaseCombatCharacter>,int>>
::InsertBefore((CUtlVector<CHandle<CBaseCombatCharacter>,CUtlMemory<CHandle<CBaseCombatCharacter>,int>>
*)*pfVar25,(int)pfVar25[1],(CHandle *)pfVar25[2]);
iVar11 = iVar11 + 1;
} while (iVar11 < (int)local_34);
}
}
local_70 = (CTerrorPlayer *)&PTR_operator___00c22340;
*pfVar25 = (float)&local_40;
local_34 = 0.0;
pfVar25[-1] = 1.471016e-38;
CUtlMemory<CTerrorPlayer*,int>::Purge((CUtlMemory<CTerrorPlayer*,int> *)*pfVar25);
fVar29 = local_40;
*pfVar25 = (float)&local_40;
local_30 = fVar29;
pfVar25[-1] = 1.471018e-38;
CUtlMemory<CTerrorPlayer*,int>::Purge((CUtlMemory<CTerrorPlayer*,int> *)*pfVar25);
goto LAB_00a0174b;
}
}
*(undefined4 *)(this + 0x3140) = 0;
}
else {
*pfVar25 = (float)(this + 0x311c);
pfVar25[-1] = 1.4701402e-38;
lVar28 = (longdouble)IntervalTimer::Now();
if ((float)lVar28 != *(float *)(this + 0x3120)) {
iVar11 = *(int *)(this + 0x311c);
*pfVar25 = (float)(this + 0x311c);
pfVar25[1] = (float)(this + 0x3120);
pcVar7 = *(code **)(iVar11 + 4);
pfVar25[-1] = 1.4705145e-38;
(*pcVar7)();
*(float *)(this + 0x3120) = (float)lVar28;
}
*pfVar25 = (float)(this + 0x3124);
pfVar25[-1] = 1.4701462e-38;
lVar28 = (longdouble)IntervalTimer::Now();
if ((float)lVar28 != *(float *)(this + 0x3128)) {
iVar11 = *(int *)(this + 0x3124);
*pfVar25 = (float)(this + 0x3124);
pfVar25[1] = (float)(this + 0x3128);
/* try { // try from 00a01fcb to 00a01ff5 has its CatchHandler @ 00a032eb */
pcVar7 = *(code **)(iVar11 + 4);
pfVar25[-1] = 1.4705089e-38;
(*pcVar7)();
*(float *)(this + 0x3128) = (float)lVar28;
}
iVar11 = *(int *)this;
*(float *)(this + 0x312c) = local_98;
*pfVar25 = (float)this;
pcVar7 = *(code **)(iVar11 + 0x288);
pfVar25[-1] = 1.470154e-38;
pfVar21 = (float *)(*pcVar7)();
iVar11 = *(int *)local_88;
*pfVar25 = (float)local_88;
pcVar7 = *(code **)(iVar11 + 0x288);
pfVar25[-1] = 1.4701567e-38;
pfVar22 = (float *)(*pcVar7)();
fVar29 = *pfVar22;
fVar1 = pfVar22[2];
fVar2 = *pfVar21;
fVar3 = pfVar21[2];
fVar4 = pfVar22[1];
fVar5 = pfVar21[1];
iVar11 = 0;
*(undefined4 *)(this + 0x3140) = 0;
*(float *)(this + 0x3130) =
SQRT((fVar29 - fVar2) * (fVar29 - fVar2) + (fVar1 - fVar3) * (fVar1 - fVar3) +
(fVar4 - fVar5) * (fVar4 - fVar5));
if (0 < (int)local_78) {
do {
piVar20 = *(int **)(local_84 + iVar11 * 4);
local_70 = (CTerrorPlayer *)&DAT_ffffffff;
if (piVar20 != (int *)0x0) {
iVar14 = *piVar20;
*pfVar25 = (float)piVar20;
pcVar7 = *(code **)(iVar14 + 0xc);
pfVar25[-1] = 1.4701763e-38;
puVar23 = (undefined4 *)(*pcVar7)();
local_70 = (CTerrorPlayer *)*puVar23;
}
pfVar25[2] = (float)&local_70;
pfVar25[1] = *(float *)(this + 0x3140);
*pfVar25 = (float)(this + 0x3134);
pfVar25[-1] = 1.470181e-38;
CUtlVector<CHandle<CBaseCombatCharacter>,CUtlMemory<CHandle<CBaseCombatCharacter>,int>>::
InsertBefore((CUtlVector<CHandle<CBaseCombatCharacter>,CUtlMemory<CHandle<CBaseCombatCharacter>,int>>
*)*pfVar25,(int)pfVar25[1],(CHandle *)pfVar25[2]);
iVar11 = iVar11 + 1;
} while (iVar11 < (int)local_78);
}
*pfVar25 = (float)this;
pfVar25[-1] = 1.4701832e-38;
iVar11 = GetActiveTerrorWeapon((CTerrorPlayer *)*pfVar25);
if (iVar11 != 0) {
if (((byte)this[0x14d] & 8) == 0) {
CVar24 = local_88[0x14d];
pCVar17 = local_88;
}
else {
*pfVar25 = (float)this;
/* try { // try from 00a021a3 to 00a021c2 has its CatchHandler @ 00a032eb */
pfVar25[-1] = 1.4705753e-38;
CBaseEntity::CalcAbsolutePosition((CBaseEntity *)*pfVar25);
CVar24 = local_88[0x14d];
pCVar17 = local_88;
}
local_88 = pCVar17;
if (((byte)CVar24 & 8) != 0) {
*pfVar25 = (float)pCVar17;
pfVar25[-1] = 1.4705791e-38;
CBaseEntity::CalcAbsolutePosition((CBaseEntity *)*pfVar25);
}
if ((*(float *)(pCVar17 + 0x2e4) - *(float *)(this + 0x2e4)) *
(*(float *)(pCVar17 + 0x2e4) - *(float *)(this + 0x2e4)) +
(*(float *)(pCVar17 + 0x2e0) - *(float *)(this + 0x2e0)) *
(*(float *)(pCVar17 + 0x2e0) - *(float *)(this + 0x2e0)) +
(*(float *)(pCVar17 + 0x2e8) - *(float *)(this + 0x2e8)) *
(*(float *)(pCVar17 + 0x2e8) - *(float *)(this + 0x2e8)) < 1048576.0) {
*pfVar25 = (float)this;
pfVar25[-1] = 1.4702013e-38;
uVar16 = GetActiveTerrorWeapon((CTerrorPlayer *)*pfVar25);
pfVar25[1] = 0.0;
*pfVar25 = (float)uVar16;
pfVar25[-1] = 1.4702035e-38;
CTerrorWeapon::SuppressHelpingHands((CTerrorWeapon *)*pfVar25,pfVar25[1]);
}
}
}
LAB_00a0174b:
local_78 = 0.0;
*pfVar25 = (float)&local_84;
local_b4 = &PTR_operator___00c53020;
pfVar25[-1] = 1.4702075e-38;
CUtlMemory<CBaseCombatCharacter*,int>::Purge((CUtlMemory<CBaseCombatCharacter*,int> *)*pfVar25);
local_74 = local_84;
*pfVar25 = (float)&local_84;
pfVar25[-1] = 1.4702098e-38;
CUtlMemory<CBaseCombatCharacter*,int>::Purge((CUtlMemory<CBaseCombatCharacter*,int> *)*pfVar25);
LAB_00a01778:
iVar11 = _DAT_0105db00;
if ((DAT_0105d158 == '\0') || (_DAT_0105d154 != 0)) {
pfVar25[-1] = 1.4702237e-38;
iVar14 = ThreadGetCurrentId();
if (iVar11 == iVar14) {
*pfVar25 = (float)_DAT_0105d15c;
pfVar25[-1] = 1.4702261e-38;
cVar9 = CVProfNode::ExitScope();
if (cVar9 != '\0') {
_DAT_0105d15c = (int *)_DAT_0105d15c[0x19];
}
DAT_0105d158 = _DAT_0105d15c == (int *)0x105d160;
}
}
iVar14 = local_160;
iVar11 = local_168;
if (local_160 != 0) {
pfVar25[5] = 0.0;
iVar19 = local_164;
pfVar25[4] = 0.0;
pfVar25[3] = 0.0;
*pfVar25 = (float)iVar14;
pfVar25[1] = (float)iVar11;
pfVar25[2] = (float)iVar19;
pcVar7 = *(code **)(iVar14 + 0x54);
pfVar25[-1] = 1.4702208e-38;
(*pcVar7)();
}
return;
LAB_00a0109a:
pfVar25 = (float *)((int)piVar20 + -8);
pCVar17 = this + 0x2ef0;
fVar29 = *(float *)(this + 0x2ef8);
*(CTerrorPlayer **)((int)piVar20 + -8) = pCVar17;
*(undefined4 *)((int)piVar20 + -0xc) = 0xa010ae;
lVar28 = (longdouble)CountdownTimer::Now();
if (fVar29 - (float)lVar28 < 0.5) {
*(CTerrorPlayer **)((int)piVar20 + -8) = pCVar17;
/* try { // try from 00a02665 to 00a026c3 has its CatchHandler @ 00a033e2 */
*(undefined4 *)((int)piVar20 + -0xc) = 0xa0266a;
lVar28 = (longdouble)CountdownTimer::Now();
if ((float)lVar28 + 0.5 != *(float *)(this + 0x2ef8)) {
iVar11 = *(int *)(this + 0x2ef0);
*(CTerrorPlayer **)((int)piVar20 + -8) = pCVar17;
*(CTerrorPlayer **)((int)piVar20 + -4) = this + 0x2ef8;
/* try { // try from 00a02e17 to 00a02e19 has its CatchHandler @ 00a033e2 */
pcVar7 = *(code **)(iVar11 + 4);
*(undefined4 *)((int)piVar20 + -0xc) = 0xa02e1a;
(*pcVar7)();
*(float *)(this + 0x2ef8) = (float)lVar28 + 0.5;
}
pfVar25 = (float *)((int)piVar20 + -8);
if (*(float *)(this + 0x2ef4) != 0.5) {
iVar11 = *(int *)(this + 0x2ef0);
*(CTerrorPlayer **)((int)piVar20 + -8) = pCVar17;
*(CTerrorPlayer **)((int)piVar20 + -4) = this + 0x2ef4;
pcVar7 = *(code **)(iVar11 + 4);
*(undefined4 *)((int)piVar20 + -0xc) = 0xa026c4;
(*pcVar7)();
*(undefined4 *)(this + 0x2ef4) = 0x3f000000;
pfVar25 = (float *)((int)piVar20 + -8);
}
}
goto LAB_00a010d8;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)
Just a Signatures{} block, ready to drop into a gamedata
file. Wire it up in your plugin however you like - SDKCall, DHooks,
raw memory ops, or anything else.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.