PlayerSaveData::Restore
0x008faf60 · 9663 bytes · __thiscall
_ZN14PlayerSaveData7RestoreEP13CTerrorPlayer
Decompiled
undefined (2 params)
/* PlayerSaveData::Restore(CTerrorPlayer*) */
void __thiscall PlayerSaveData::Restore(PlayerSaveData *this,CTerrorPlayer *param_1)
{
code *pcVar1;
CBaseEdict *pCVar2;
uint *puVar3;
uint uVar4;
code *pcVar5;
CDirector *pCVar6;
char cVar7;
int *piVar8;
undefined4 uVar9;
int iVar10;
char *pcVar11;
int iVar12;
int iVar13;
float fVar14;
float fVar15;
undefined **ppuVar16;
char *pcVar17;
float fVar18;
int *piVar19;
Checkpoint *pCVar20;
KeyValues *pKVar21;
undefined *puVar22;
CTerrorPlayer *pCVar23;
float *pfVar24;
longdouble lVar25;
longdouble lVar26;
undefined ***local_74;
float local_60;
float local_5c;
float local_58;
undefined **local_54;
float local_50;
float local_4c;
undefined4 local_48;
undefined4 local_44;
undefined4 local_40;
undefined **local_3c;
float local_38;
float local_34 [9];
pfVar24 = (float *)&stack0xffffff54;
(**(code **)(*engine + 0x40))();
(**(code **)(*(int *)param_1 + 0xb8))();
UTIL_LogPrintf("Restoring player %s(%d) after changelevel\n");
cVar7 = CTerrorPlayer::TakeOverBot(param_1,true);
if (cVar7 != '\0') {
PlayerReporter::CreateAwardTemplatesForPlayer(ThePlayerReporter,param_1);
piVar8 = (int *)(**(code **)(*gameeventmanager + 0x1c))();
if (piVar8 != (int *)0x0) {
pcVar1 = *(code **)(*piVar8 + 0x30);
(**(code **)(*engine + 0x40))();
(*pcVar1)();
(**(code **)(*gameeventmanager + 0x20))();
}
uVar9 = KeyValues::GetInt(*(KeyValues **)this,"missionIDSpawnedOn",0);
*(undefined4 *)(param_1 + 0x3a88) = uVar9;
uVar9 = KeyValues::GetInt(*(KeyValues **)this,"teamSpawnedOn",0);
*(undefined4 *)(param_1 + 0x3a8c) = uVar9;
KeyValues::SetInt(*(KeyValues **)this,"tookOverBot",1);
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"idle",0);
if (iVar10 != 0) {
lVar25 = (longdouble)CountdownTimer::Now();
if ((float)lVar25 + 5.0 != *(float *)(param_1 + 0x3fd8)) {
(**(code **)(*(int *)(param_1 + 0x3fd0) + 4))();
*(float *)(param_1 + 0x3fd8) = (float)lVar25 + 5.0;
}
if (*(float *)(param_1 + 0x3fd4) != 5.0) {
(**(code **)(*(int *)(param_1 + 0x3fd0) + 4))();
*(undefined4 *)(param_1 + 0x3fd4) = 0x40a00000;
}
}
return;
}
cVar7 = CDirector::IsInTransition(TheDirector);
if (cVar7 == '\0') {
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"teamNumber",0);
if (iVar10 == 2) {
iVar10 = UTIL_HumansOnTeam(2,false);
if (*(int *)(ZombieSurvivorLimit._28_4_ + 0x30) <= iVar10) {
iVar10 = UTIL_HumansOnTeam(3,false);
if (iVar10 < *(int *)(ZombieMaxPlayerZombies._28_4_ + 0x30)) {
KeyValues::SetInt(*(KeyValues **)this,"teamNumber",3);
KeyValues::SetInt(*(KeyValues **)this,"state",6);
KeyValues::SetInt(*(KeyValues **)this,"health",0);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
KeyValues::SetInt(*(KeyValues **)this,"fumes",0);
KeyValues::SetInt(*(KeyValues **)this,"incapacitated",0);
while (pKVar21 = (KeyValues *)KeyValues::FindKey(*(KeyValues **)this,"weapon",false),
pKVar21 != (KeyValues *)0x0) {
KeyValues::RemoveSubKey(*(KeyValues **)this,pKVar21);
KeyValues::deleteThis();
}
}
else {
KeyValues::SetInt(*(KeyValues **)this,"teamNumber",1);
KeyValues::SetInt(*(KeyValues **)this,"state",6);
KeyValues::SetInt(*(KeyValues **)this,"health",0);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
KeyValues::SetInt(*(KeyValues **)this,"fumes",0);
KeyValues::SetInt(*(KeyValues **)this,"incapacitated",0);
while (pKVar21 = (KeyValues *)KeyValues::FindKey(*(KeyValues **)this,"weapon",false),
pKVar21 != (KeyValues *)0x0) {
KeyValues::RemoveSubKey(*(KeyValues **)this,pKVar21);
KeyValues::deleteThis();
}
}
}
}
else {
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"teamNumber",0);
if ((iVar10 == 3) &&
(iVar10 = UTIL_HumansOnTeam(3,false),
*(int *)(ZombieMaxPlayerZombies._28_4_ + 0x30) <= iVar10)) {
iVar10 = UTIL_HumansOnTeam(2,false);
if (iVar10 < *(int *)(ZombieSurvivorLimit._28_4_ + 0x30)) {
KeyValues::SetInt(*(KeyValues **)this,"teamNumber",2);
KeyValues::SetInt(*(KeyValues **)this,"state",6);
KeyValues::SetInt(*(KeyValues **)this,"health",0);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
KeyValues::SetInt(*(KeyValues **)this,"fumes",0);
KeyValues::SetInt(*(KeyValues **)this,"incapacitated",0);
while (pKVar21 = (KeyValues *)KeyValues::FindKey(*(KeyValues **)this,"weapon",false),
pKVar21 != (KeyValues *)0x0) {
KeyValues::RemoveSubKey(*(KeyValues **)this,pKVar21);
KeyValues::deleteThis();
}
}
else {
KeyValues::SetInt(*(KeyValues **)this,"teamNumber",1);
KeyValues::SetInt(*(KeyValues **)this,"state",6);
KeyValues::SetInt(*(KeyValues **)this,"health",0);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
KeyValues::SetInt(*(KeyValues **)this,"fumes",0);
KeyValues::SetInt(*(KeyValues **)this,"incapacitated",0);
while (pKVar21 = (KeyValues *)KeyValues::FindKey(*(KeyValues **)this,"weapon",false),
pKVar21 != (KeyValues *)0x0) {
KeyValues::RemoveSubKey(*(KeyValues **)this,pKVar21);
KeyValues::deleteThis();
}
}
}
}
}
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"teamNumber",0);
if (iVar10 == 3) {
KeyValues::SetInt(*(KeyValues **)this,"teamNumber",3);
KeyValues::SetInt(*(KeyValues **)this,"state",6);
KeyValues::SetInt(*(KeyValues **)this,"health",0);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
KeyValues::SetInt(*(KeyValues **)this,"fumes",0);
KeyValues::SetInt(*(KeyValues **)this,"incapacitated",0);
while (pKVar21 = (KeyValues *)KeyValues::FindKey(*(KeyValues **)this,"weapon",false),
pKVar21 != (KeyValues *)0x0) {
KeyValues::RemoveSubKey(*(KeyValues **)this,pKVar21);
KeyValues::deleteThis();
}
}
pcVar11 = (char *)KeyValues::GetString(*(KeyValues **)this,"ModelName","");
iVar10 = GetCharacterFromModel(pcVar11);
iVar12 = CTerrorGameRules::GetSurvivorSet();
iVar13 = KeyValues::GetInt(*(KeyValues **)this,"SurvivorSet",iVar12);
if (iVar12 != iVar13) {
switch(iVar10) {
case 0:
iVar10 = 0x10;
break;
case 1:
iVar10 = 0x14;
break;
case 2:
iVar10 = 0x1c;
break;
case 3:
iVar10 = 0x18;
break;
case 4:
iVar10 = 0;
break;
case 5:
iVar10 = 4;
break;
case 6:
iVar10 = 0xc;
break;
case 7:
iVar10 = 8;
break;
default:
iVar10 = iVar10 << 2;
}
KeyValues::SetString(*(KeyValues **)this,"ModelName",*(char **)((int)SurvivorModels + iVar10));
}
pcVar1 = *(code **)(*(int *)param_1 + 0x194);
KeyValues::GetInt(*(KeyValues **)this,"teamNumber",0);
(*pcVar1)();
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"playerClass",0);
if (iVar10 != *(int *)(param_1 + 0x290c)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
pCVar2 = *(CBaseEdict **)(param_1 + 0x30);
if (pCVar2 != (CBaseEdict *)0x0) {
*(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
iVar12 = CBaseEdict::GetChangeAccessor(pCVar2);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x290c) = iVar10;
}
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"wantsToPlay",0);
CTerrorPlayer::SetWantsToPlay(param_1,iVar10 != 0);
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"wantsToPlay",0);
if (iVar10 != 0) {
KeyValues::GetString(*(KeyValues **)this,"idealName","");
UTIL_LogPrintf("%s is waiting to play\n");
}
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"teamNumber",0);
if ((iVar10 == 2) && (iVar10 = KeyValues::GetInt(*(KeyValues **)this,"state",0), iVar10 != 0)) {
cVar7 = CDirector::IsInTransition(TheDirector);
if (cVar7 == '\0') {
KeyValues::GetString(*(KeyValues **)this,"idealName","");
UTIL_LogPrintf("Respawning dead survivor %s\n");
pCVar20 = (Checkpoint *)TerrorNavMesh::GetInitialCheckpoint(TheNavMesh);
CTerrorPlayer::CheckpointRespawn(param_1,pCVar20);
}
else {
CCSPlayer::State_Transition();
if (param_1[0x104] != (CTerrorPlayer)0x2) {
(**(code **)(*(int *)param_1 + 0x21c))();
param_1[0x104] = (CTerrorPlayer)0x2;
}
}
}
else {
KeyValues::GetString(*(KeyValues **)this,"idealName","");
UTIL_LogPrintf("Respawning %s\n");
iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)param_1);
if ((iVar10 == 3) ||
((iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)param_1), iVar10 != 2 ||
(iVar10 = KeyValues::GetInt(*(KeyValues **)this,"state",0), iVar10 != 0)))) {
CCSPlayer::State_Transition();
if (param_1[0x104] != (CTerrorPlayer)0x2) {
(**(code **)(*(int *)param_1 + 0x21c))();
param_1[0x104] = (CTerrorPlayer)0x2;
}
}
else {
CCSPlayer::State_Transition();
(**(code **)(*(int *)param_1 + 100))();
}
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"after_finale",0);
if (iVar10 != 0) {
KeyValues::SetInt(*(KeyValues **)this,"health",100);
KeyValues::SetFloat(*(KeyValues **)this,"healthBuffer",0.0);
}
cVar7 = (**(code **)(*(int *)param_1 + 0x558))();
if (cVar7 == '\0') {
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"health",0);
if (iVar10 != *(int *)(param_1 + 0x100)) {
(**(code **)(*(int *)param_1 + 0x214))();
*(int *)(param_1 + 0x100) = iVar10;
}
lVar25 = (longdouble)KeyValues::GetFloat(*(KeyValues **)this,"healthBuffer",0.0);
CTerrorPlayer::SetHealthBuffer(param_1,(float)lVar25);
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"incapacitated",0);
if ((CTerrorPlayer)(iVar10 != 0) != param_1[0x2d94]) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
pCVar2 = *(CBaseEdict **)(param_1 + 0x30);
if (pCVar2 != (CBaseEdict *)0x0) {
*(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
iVar12 = CBaseEdict::GetChangeAccessor(pCVar2);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
param_1[0x2d94] = (CTerrorPlayer)(iVar10 != 0);
}
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"fumes",0);
if ((CTerrorPlayer)(iVar10 != 0) != param_1[0x32fc]) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
pCVar2 = *(CBaseEdict **)(param_1 + 0x30);
if (pCVar2 != (CBaseEdict *)0x0) {
*(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
iVar12 = CBaseEdict::GetChangeAccessor(pCVar2);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
param_1[0x32fc] = (CTerrorPlayer)(iVar10 != 0);
}
}
}
iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)param_1);
cVar7 = IsASurvivorTeam(iVar10);
if (((cVar7 != '\0') &&
(pcVar11 = (char *)KeyValues::GetString(*(KeyValues **)this,"modelName",""), *pcVar11 != '\0')
) && (0 < DAT_01017434)) {
pcVar17 = (char *)*SurvivorModels;
if (pcVar11 != pcVar17) {
iVar10 = 0;
do {
iVar12 = _V_stricmp(pcVar17,pcVar11);
if (iVar12 == 0) break;
iVar10 = iVar10 + 1;
if (DAT_01017434 <= iVar10) goto LAB_008fb345;
pcVar17 = (char *)SurvivorModels[iVar10];
} while (pcVar11 != pcVar17);
}
(**(code **)(*(int *)param_1 + 0x70))();
}
LAB_008fb345:
iVar10 = KeyValues::GetInt(*(KeyValues **)this,"playerClass",0);
if (iVar10 != *(int *)(param_1 + 0x290c)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
pCVar2 = *(CBaseEdict **)(param_1 + 0x30);
if (pCVar2 != (CBaseEdict *)0x0) {
*(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
iVar12 = CBaseEdict::GetChangeAccessor(pCVar2);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x290c) = iVar10;
}
(**(code **)(*(int *)param_1 + 0x8a8))();
iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)param_1);
piVar8 = (int *)&SurvivorModels;
if (iVar10 == 3) {
iVar12 = (**(code **)(*(int *)param_1 + 0x544))();
iVar10 = 0;
if (iVar12 != 9) {
iVar10 = iVar12;
}
piVar8 = &InfectedModels + iVar10 * 5;
if ((&DAT_0101736c)[iVar10 * 5] == 0) {
piVar8 = &DAT_0101739c;
}
}
pcVar11 = (char *)KeyValues::GetString(*(KeyValues **)this,"modelName","");
if ((*pcVar11 != '\0') && (0 < piVar8[3])) {
pcVar17 = *(char **)*piVar8;
if (pcVar11 != pcVar17) {
iVar10 = 0;
do {
iVar12 = _V_stricmp(pcVar17,pcVar11);
if (iVar12 == 0) break;
iVar10 = iVar10 + 1;
if (piVar8[3] <= iVar10) goto LAB_008fb3e0;
pcVar17 = *(char **)(*piVar8 + iVar10 * 4);
} while (pcVar11 != pcVar17);
}
(**(code **)(*(int *)param_1 + 0x70))();
}
LAB_008fb3e0:
pcVar1 = *(code **)(*(int *)param_1 + 0x920);
KeyValues::GetInt(*(KeyValues **)this,"character",0);
(*pcVar1)();
iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)param_1);
cVar7 = IsASurvivorTeam(iVar10);
if (cVar7 != '\0') {
KeyValues::GetString(*(KeyValues **)this,"modelName","");
(**(code **)(*(int *)param_1 + 0x20))();
pfVar24 = (float *)&stack0xffffff50;
(**(code **)(*(int *)param_1 + 0xb8))();
UTIL_LogPrintf("(SKIN) Survivor %s changed model to %s (wanted %s) via RestoreModelData\n");
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"skin";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197133e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != *(int *)(param_1 + 0x458)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3197191e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x458) = iVar10;
}
*pfVar24 = (float)TheDirector;
pfVar24[-1] = 1.3197226e-38;
cVar7 = CDirector::IsTransitionScenarioRestart();
if (cVar7 == '\0') {
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 300);
pfVar24[-1] = 1.3202488e-38;
cVar7 = (*pcVar1)();
if (cVar7 != '\0') {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"ducked";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3202535e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if ((CTerrorPlayer)(iVar10 != 0) != param_1[0x1a90]) {
iVar12 = *(int *)(param_1 + 0x1a40);
pfVar24[1] = (float)(param_1 + 0x1a90);
*pfVar24 = (float)(param_1 + 0x1a40);
pcVar1 = *(code **)(iVar12 + 4);
pfVar24[-1] = 1.3202593e-38;
(*pcVar1)();
param_1[0x1a90] = (CTerrorPlayer)(iVar10 != 0);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"ducking";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3202638e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if ((CTerrorPlayer)(iVar10 != 0) != param_1[0x1a91]) {
iVar12 = *(int *)(param_1 + 0x1a40);
*pfVar24 = (float)(param_1 + 0x1a40);
pfVar24[1] = (float)(param_1 + 0x1a91);
pcVar1 = *(code **)(iVar12 + 4);
pfVar24[-1] = 1.3202695e-38;
(*pcVar1)();
param_1[0x1a91] = (CTerrorPlayer)(iVar10 != 0);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"duckedFlag";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.320274e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 == 0) {
iVar10 = *g_pGameRules;
*pfVar24 = (float)g_pGameRules;
pcVar1 = *(code **)(iVar10 + 0x7c);
pfVar24[-1] = 1.3205639e-38;
iVar12 = (*pcVar1)();
iVar10 = *g_pGameRules;
*pfVar24 = (float)g_pGameRules;
pcVar1 = *(code **)(iVar10 + 0x7c);
pfVar24[-1] = 1.3205664e-38;
iVar10 = (*pcVar1)();
pfVar24[2] = (float)(iVar12 + 0x18);
*pfVar24 = (float)param_1;
pfVar24[1] = (float)(iVar10 + 0xc);
pfVar24[-1] = 1.3205691e-38;
CBaseEntity::SetCollisionBounds
((CBaseEntity *)*pfVar24,(Vector *)pfVar24[1],(Vector *)pfVar24[2]);
}
else {
pfVar24[1] = 2.8026e-45;
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3202773e-38;
CBaseEntity::AddFlag((CBaseEntity *)*pfVar24,(int)pfVar24[1]);
iVar10 = *g_pGameRules;
*pfVar24 = (float)g_pGameRules;
pcVar1 = *(code **)(iVar10 + 0x7c);
pfVar24[-1] = 1.3202792e-38;
iVar12 = (*pcVar1)();
iVar10 = *g_pGameRules;
*pfVar24 = (float)g_pGameRules;
pcVar1 = *(code **)(iVar10 + 0x7c);
pfVar24[-1] = 1.3202817e-38;
iVar10 = (*pcVar1)();
pfVar24[2] = (float)(iVar12 + 0x30);
*pfVar24 = (float)param_1;
pfVar24[1] = (float)(iVar10 + 0x24);
pfVar24[-1] = 1.3202844e-38;
CBaseEntity::SetCollisionBounds
((CBaseEntity *)*pfVar24,(Vector *)pfVar24[1],(Vector *)pfVar24[2]);
}
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x558);
pfVar24[-1] = 1.3202859e-38;
cVar7 = (*pcVar1)();
if (cVar7 == '\0') {
*pfVar24 = (float)&local_60;
pfVar24[-1] = 1.3202898e-38;
GetTransitionedLandmarkOffset();
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"pos";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3202939e-38;
uVar9 = KeyValues::GetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
pfVar24[4] = (float)&local_4c;
pfVar24[3] = (float)&local_50;
pfVar24[1] = (float)"%f %f %f";
local_54 = vec3_origin;
*pfVar24 = (float)uVar9;
local_50 = DAT_01053d4c;
local_4c = DAT_01053d50;
pfVar24[2] = (float)&local_54;
pfVar24[-1] = 1.3203029e-38;
sscanf((char *)*pfVar24,(char *)pfVar24[1]);
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"angles";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203065e-38;
uVar9 = KeyValues::GetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
pfVar24[2] = (float)&local_48;
pfVar24[1] = (float)"%f %f %f";
*pfVar24 = (float)uVar9;
local_48 = vec3_angle;
local_44 = DAT_01053d40;
local_40 = DAT_01053d44;
pfVar24[4] = (float)&local_40;
pfVar24[3] = (float)&local_44;
pfVar24[-1] = 1.320315e-38;
sscanf((char *)*pfVar24,(char *)pfVar24[1]);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"positionFixedUp";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203187e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 == 0) {
pfVar24[1] = (float)&local_48;
*pfVar24 = (float)&local_54;
local_54 = (undefined **)((float)local_54 + local_60);
local_50 = local_50 + local_5c;
local_4c = local_4c + local_58;
pfVar24[-1] = 1.3207871e-38;
HackRotateAroundLandmark((Vector *)*pfVar24,(QAngle *)pfVar24[1]);
*(double *)(pfVar24 + 5) = (double)local_4c;
*(double *)(pfVar24 + 3) = (double)local_50;
*(double *)(pfVar24 + 1) = (double)(float)local_54;
*pfVar24 = (float)"%f %f %f";
pfVar24[-1] = 1.3207947e-38;
fVar14 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[1] = (float)"pos";
pfVar24[2] = fVar14;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3207978e-38;
KeyValues::SetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
pfVar24[2] = 1.4013e-45;
pfVar24[1] = (float)"positionFixedUp";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3208014e-38;
KeyValues::SetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"after_finale";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203235e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
ppuVar16 = local_54;
fVar14 = local_50;
fVar15 = local_4c;
if (iVar10 != 0) {
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3207705e-38;
iVar10 = CBaseEntity::GetTeamNumber((CBaseEntity *)*pfVar24);
ppuVar16 = vec3_origin;
fVar14 = DAT_01053d4c;
fVar15 = DAT_01053d50;
if (iVar10 == 2) {
pfVar24[3] = 0.0;
pfVar24[2] = 0.0;
local_3c = vec3_origin;
local_38 = DAT_01053d4c;
local_34[0] = DAT_01053d50;
pfVar24[1] = (float)&local_3c;
*pfVar24 = (float)*(undefined4 *)(param_1 + 0x2ba0);
pfVar24[-1] = 1.3209036e-38;
GetPlayerSpawnPosition();
ppuVar16 = local_3c;
fVar14 = local_38;
fVar15 = local_34[0];
}
}
local_4c = fVar15;
local_50 = fVar14;
local_54 = ppuVar16;
fVar15 = local_4c;
fVar14 = local_50;
ppuVar16 = local_54;
local_74 = &local_3c;
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"idealName";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203333e-38;
fVar18 = (float)KeyValues::GetString
((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
*pfVar24 = (float)"%s wants to respawn at %f %f %f\n";
pfVar24[1] = fVar18;
*(double *)(pfVar24 + 6) = (double)fVar15;
*(double *)(pfVar24 + 4) = (double)fVar14;
*(double *)(pfVar24 + 2) = (double)(float)ppuVar16;
pfVar24[-1] = 1.3203426e-38;
UTIL_LogPrintf((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"teamNumber";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203463e-38;
fVar14 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"duckedFlag";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203504e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pfVar24[5] = (float)&local_48;
pfVar24[3] = (float)(uint)(iVar10 != 0);
pfVar24[4] = fVar14;
*pfVar24 = (float)local_54;
pfVar24[1] = local_50;
pfVar24[2] = local_4c;
pfVar24[-1] = 1.3203578e-38;
GetSafeSpawnPos(local_74,param_1);
fVar15 = local_34[0];
fVar14 = local_38;
ppuVar16 = local_3c;
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"idealName";
local_54 = local_3c;
local_50 = local_38;
*pfVar24 = (float)*(undefined4 *)this;
local_4c = local_34[0];
pfVar24[-1] = 1.3203677e-38;
fVar18 = (float)KeyValues::GetString
((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
*pfVar24 = (float)"%s gets respawn pos %f %f %f\n";
pfVar24[1] = fVar18;
*(double *)(pfVar24 + 6) = (double)fVar15;
*(double *)(pfVar24 + 4) = (double)fVar14;
*(double *)(pfVar24 + 2) = (double)(float)ppuVar16;
pfVar24[-1] = 1.3203771e-38;
UTIL_LogPrintf((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"teamNumber";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203808e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3203819e-38;
cVar7 = IsASurvivorTeam(iVar10);
if (cVar7 != '\0') {
*pfVar24 = (float)"%f %f %f";
*(double *)(pfVar24 + 5) = (double)DAT_01053d50;
*(double *)(pfVar24 + 3) = (double)DAT_01053d4c;
*(double *)(pfVar24 + 1) = (double)(float)vec3_origin;
pfVar24[-1] = 1.3208121e-38;
fVar14 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[1] = (float)"vel";
pfVar24[2] = fVar14;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3208152e-38;
KeyValues::SetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
}
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"vel";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3203867e-38;
uVar9 = KeyValues::GetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
pfVar24[4] = (float)local_34;
pfVar24[3] = (float)&local_38;
pfVar24[1] = (float)"%f %f %f";
local_3c = vec3_origin;
*pfVar24 = (float)uVar9;
local_38 = DAT_01053d4c;
local_34[0] = DAT_01053d50;
pfVar24[2] = (float)local_74;
pfVar24[-1] = 1.3203956e-38;
sscanf((char *)*pfVar24,(char *)pfVar24[1]);
iVar10 = *(int *)param_1;
pfVar24[2] = (float)&local_48;
*pfVar24 = (float)param_1;
pfVar24[3] = (float)local_74;
pfVar24[1] = (float)&local_54;
pcVar1 = *(code **)(iVar10 + 0x1dc);
pfVar24[-1] = 1.3203997e-38;
(*pcVar1)();
pfVar24[1] = (float)&local_48;
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3204014e-38;
CBaseEntity::SetAbsAngles((CBaseEntity *)*pfVar24,(QAngle *)pfVar24[1]);
}
}
}
local_74 = &local_3c;
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 300);
pfVar24[-1] = 1.3197261e-38;
cVar7 = (*pcVar1)();
if (cVar7 == '\0') {
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"idealName";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.320239e-38;
fVar14 = (float)KeyValues::GetString
((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
*pfVar24 = (float)"Creating viewmodels for %s (transitioned dead)\n";
pfVar24[1] = fVar14;
pfVar24[-1] = 1.3202412e-38;
DevMsg((char *)*pfVar24);
iVar10 = *(int *)param_1;
pfVar24[1] = 1.4013e-45;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x564);
pfVar24[-1] = 1.3202439e-38;
(*pcVar1)();
iVar10 = *(int *)param_1;
pfVar24[1] = 0.0;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x564);
pfVar24[-1] = 1.3202465e-38;
(*pcVar1)();
}
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3197283e-38;
CBasePlayer::ResetFragCount((CBasePlayer *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"kills";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.319732e-38;
fVar14 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*pfVar24 = (float)param_1;
pfVar24[1] = fVar14;
pfVar24[-1] = 1.3197336e-38;
CBasePlayer::IncrementFragCount((CBasePlayer *)*pfVar24,(int)pfVar24[1]);
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3197348e-38;
CBasePlayer::ResetDeathCount((CBasePlayer *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"deaths";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197384e-38;
fVar14 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*pfVar24 = (float)param_1;
pfVar24[1] = fVar14;
pfVar24[-1] = 1.3197401e-38;
CBasePlayer::IncrementDeathCount((CBasePlayer *)*pfVar24,(int)pfVar24[1]);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"survivorKills";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197437e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x307c) = uVar9;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"currentReviveCount";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197482e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != *(int *)(param_1 + 0x2e54)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.319754e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x2e54) = iVar10;
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"missionReviveCount";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197593e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x2e5c) = uVar9;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"thirdStrike";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197638e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if ((CTerrorPlayer)(iVar10 != 0) != param_1[0x2e58]) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.31977e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
param_1[0x2e58] = (CTerrorPlayer)(iVar10 != 0);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"restoreState";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197753e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 == 1) {
pfVar24[2] = 2.8026e-45;
pfVar24[1] = (float)"restoreState";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3205978e-38;
KeyValues::SetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"lastPrimaryWeaponId";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197802e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x3f90) = uVar9;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"lastPrimaryWeaponAmmo";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197847e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x3f94) = uVar9;
pfVar24[2] = 1.4013e-45;
pfVar24[1] = (float)"lastSecondaryWeaponId";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197891e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x3f98) = uVar9;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"lastHadElites";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3197936e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pCVar6 = TheDirector;
param_1[0x3f9c] = (CTerrorPlayer)(iVar10 != 0);
*pfVar24 = (float)pCVar6;
pfVar24[-1] = 1.3197967e-38;
cVar7 = CDirector::IsTransitionScenarioRestart();
if (cVar7 == '\0') {
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 300);
pfVar24[-1] = 1.3204228e-38;
cVar7 = (*pcVar1)();
if (cVar7 != '\0') {
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x558);
pfVar24[-1] = 1.3204255e-38;
cVar7 = (*pcVar1)();
if (cVar7 == '\0') {
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3204277e-38;
CBaseCombatCharacter::RemoveAllWeapons((CBaseCombatCharacter *)*pfVar24);
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3204291e-38;
iVar10 = KeyValues::GetFirstSubKey((KeyValues *)*pfVar24);
while (iVar10 != 0) {
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.320436e-38;
uVar9 = KeyValues::GetName((KeyValues *)*pfVar24);
pfVar24[1] = (float)"weapon";
*pfVar24 = (float)uVar9;
pfVar24[-1] = 1.3204382e-38;
iVar12 = _V_stricmp((char *)*pfVar24,(char *)pfVar24[1]);
if (iVar12 == 0) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"weaponID";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204421e-38;
fVar14 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (fVar14 != 0.0) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"meleeWeapon";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204463e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar12 == 0) {
*pfVar24 = fVar14;
pfVar24[-1] = 1.3207636e-38;
fVar15 = (float)WeaponIDToAlias((int)*pfVar24);
*pfVar24 = (float)"weapon_%s";
pfVar24[1] = fVar15;
pfVar24[-1] = 1.3207658e-38;
fVar15 = (float)UTIL_VarArgs((char *)*pfVar24);
}
else {
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"meleeWeaponName";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204508e-38;
fVar15 = (float)KeyValues::GetString
((KeyValues *)*pfVar24,(char *)pfVar24[1],
(char *)pfVar24[2]);
}
pcVar1 = *(code **)(*(int *)param_1 + 0x6c0);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"reloaded";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204564e-38;
fVar18 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
pfVar24[4] = 0.0;
pfVar24[2] = fVar18;
pfVar24[3] = 1.4013e-45;
pfVar24[1] = fVar15;
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3204613e-38;
iVar12 = (*pcVar1)();
if (iVar12 != 0) {
pfVar24[3] = 0.0;
pfVar24[2] = (float)&CWeaponCSBase::typeinfo;
pfVar24[1] = (float)&CBaseEntity::typeinfo;
*pfVar24 = (float)iVar12;
pfVar24[-1] = 1.320467e-38;
piVar8 = (int *)__dynamic_cast();
if (piVar8 != (int *)0x0) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"weaponskin";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204717e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (iVar12 != piVar8[0x116]) {
if ((char)piVar8[0x1b] == '\0') {
puVar3 = (uint *)piVar8[0xc];
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3204775e-38;
iVar13 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar13 + 2) = 0;
}
}
else {
*(byte *)(piVar8 + 0x1c) = *(byte *)(piVar8 + 0x1c) | 1;
}
piVar8[0x116] = iVar12;
}
iVar12 = *piVar8;
*pfVar24 = (float)piVar8;
pcVar1 = *(code **)(iVar12 + 0x500);
pfVar24[-1] = 1.3204807e-38;
piVar19 = (int *)(*pcVar1)();
if (piVar19 != (int *)0x0) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"dual";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204854e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (iVar12 != 0) {
iVar12 = *piVar19;
*pfVar24 = (float)piVar19;
pcVar1 = *(code **)(iVar12 + 0x71c);
pfVar24[-1] = 1.32082e-38;
(*pcVar1)();
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"reloaded";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204899e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if ((iVar12 != 0) && (*(char *)((int)piVar19 + 0x17e2) != '\0')) {
if ((char)piVar19[0x1b] == '\0') {
puVar3 = (uint *)piVar19[0xc];
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3208575e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
*(byte *)(piVar19 + 0x1c) = *(byte *)(piVar19 + 0x1c) | 1;
}
*(undefined1 *)((int)piVar19 + 0x17e2) = 0;
}
fVar14 = 0.0;
do {
*pfVar24 = fVar14;
pfVar24[-1] = 1.3204944e-38;
fVar15 = (float)UpgradeToString();
*pfVar24 = (float)"UPGRADE_%s";
pfVar24[1] = fVar15;
pfVar24[-1] = 1.3204967e-38;
fVar15 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = fVar15;
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204995e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (iVar12 != 0) {
iVar12 = *piVar19;
pfVar24[1] = fVar14;
*pfVar24 = (float)piVar19;
pcVar1 = *(code **)(iVar12 + 0x6a8);
pfVar24[-1] = 1.3207618e-38;
(*pcVar1)();
}
fVar14 = (float)((int)fVar14 + 1);
} while (fVar14 != 4.2039e-45);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"upgradedAmmoCount";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3205055e-38;
cVar7 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (cVar7 != (char)piVar19[0x5e4]) {
if ((char)piVar19[0x1b] == '\0') {
puVar3 = (uint *)piVar19[0xc];
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3205116e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
*(byte *)(piVar19 + 0x1c) = *(byte *)(piVar19 + 0x1c) | 1;
}
*(char *)(piVar19 + 0x5e4) = cVar7;
}
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"currentMagazine";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3205171e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
if (iVar12 != piVar8[0x508]) {
if ((char)piVar8[0x1b] == '\0') {
puVar3 = (uint *)piVar8[0xc];
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3205229e-38;
iVar13 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar13 + 2) = 0;
}
}
else {
*(byte *)(piVar8 + 0x1c) = *(byte *)(piVar8 + 0x1c) | 1;
}
piVar8[0x508] = iVar12;
}
iVar12 = *piVar8;
*pfVar24 = (float)piVar8;
pcVar1 = *(code **)(iVar12 + 0x55c);
pfVar24[-1] = 1.3205261e-38;
fVar14 = (float)(*pcVar1)();
if (fVar14 != -NAN) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"extraAmmo";
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.320531e-38;
fVar15 = (float)KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],
(int)pfVar24[2]);
pfVar24[2] = fVar14;
pfVar24[1] = fVar15;
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.3205336e-38;
CBaseCombatCharacter::SetAmmoCount
((CBaseCombatCharacter *)*pfVar24,(int)pfVar24[1],(int)pfVar24[2]);
}
goto LAB_008fc848;
}
}
pfVar24[1] = fVar14;
*pfVar24 = (float)"Couldn\'t give unknown weapon %d\n";
pfVar24[-1] = 1.3208623e-38;
Warning();
}
}
LAB_008fc848:
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3204335e-38;
iVar10 = KeyValues::GetNextKey((KeyValues *)*pfVar24);
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"restoreSecondaryWeaponName";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3206599e-38;
fVar14 = (float)KeyValues::GetString
((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
if (fVar14 != 0.0) {
iVar10 = *(int *)param_1;
pfVar24[1] = 1.4013e-45;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x484);
pfVar24[-1] = 1.3206634e-38;
fVar15 = (float)(*pcVar1)();
if (fVar15 != 0.0) {
pfVar24[1] = fVar15;
*pfVar24 = (float)param_1;
pfVar24[-1] = 1.320666e-38;
CBaseCombatCharacter::Weapon_Detach
((CBaseCombatCharacter *)*pfVar24,(CBaseCombatWeapon *)pfVar24[1]);
*pfVar24 = fVar15;
pfVar24[-1] = 1.3206676e-38;
UTIL_Remove((CBaseEntity *)*pfVar24);
}
iVar10 = *(int *)param_1;
pfVar24[4] = 0.0;
pfVar24[3] = 1.4013e-45;
pfVar24[2] = 0.0;
pfVar24[1] = fVar14;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x6c0);
pfVar24[-1] = 1.3206731e-38;
(*pcVar1)();
}
pfVar24[2] = (float)&DAT_00d539c2;
pfVar24[1] = (float)"activeWeapon";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3206767e-38;
uVar9 = KeyValues::GetString((KeyValues *)*pfVar24,(char *)pfVar24[1],(char *)pfVar24[2]);
*pfVar24 = (float)uVar9;
pfVar24[-1] = 1.3206778e-38;
fVar14 = (float)AliasToWeaponID((char *)*pfVar24);
*pfVar24 = (float)param_1;
pfVar24[1] = fVar14;
pfVar24[-1] = 1.3206795e-38;
piVar8 = (int *)CCSPlayer::GetCSWeapon((CCSPlayer *)*pfVar24,(int)pfVar24[1]);
if (piVar8 != (int *)0x0) {
iVar10 = *(int *)param_1;
pfVar24[2] = 0.0;
pfVar24[1] = (float)piVar8;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x474);
pfVar24[-1] = 1.3206836e-38;
(*pcVar1)();
pfVar24[2] = 0.0;
pfVar24[1] = (float)"incapacitated";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3206872e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != 0) {
iVar10 = *piVar8;
pfVar24[1] = 0.0;
*pfVar24 = (float)piVar8;
pcVar1 = *(code **)(iVar10 + 0x428);
pfVar24[-1] = 1.320759e-38;
(*pcVar1)();
}
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"flashlight";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.320692e-38;
iVar12 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
iVar10 = *(int *)param_1;
pfVar24[1] = 0.0;
*pfVar24 = (float)param_1;
if (iVar12 == 0) {
pcVar1 = *(code **)(iVar10 + 0x5fc);
pfVar24[-1] = 1.3207054e-38;
(*pcVar1)();
}
else {
pcVar1 = *(code **)(iVar10 + 0x5f8);
pfVar24[-1] = 1.3206952e-38;
(*pcVar1)();
}
}
}
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"hasUsedFlashlight";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198015e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
param_1[0x3377] = (CTerrorPlayer)(iVar10 != 0);
iVar10 = 0;
pCVar23 = param_1 + 0x2d14;
do {
while( true ) {
fVar14 = *(float *)(gpGlobals + 0xc);
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.319811e-38;
fVar15 = (float)ZombieClassName();
pfVar24[2] = (float)"timestamp";
pfVar24[1] = fVar15;
*pfVar24 = (float)"%s_%s";
pfVar24[-1] = 1.3198144e-38;
fVar15 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = fVar15;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198174e-38;
lVar25 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
*(float *)(pCVar23 + -0x24) = fVar14 - (float)lVar25;
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3198216e-38;
fVar14 = (float)ZombieClassName();
pfVar24[2] = (float)"spawns";
pfVar24[1] = fVar14;
*pfVar24 = (float)"%s_%s";
pfVar24[-1] = 1.319825e-38;
fVar14 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = fVar14;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198281e-38;
ppuVar16 = (undefined **)
KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pfVar24[2] = 5.60519e-45;
*pfVar24 = (float)pCVar23;
pfVar24[1] = (float)local_74;
pfVar24[-1] = 1.3198322e-38;
local_3c = ppuVar16;
iVar12 = memcmp((void *)*pfVar24,(void *)pfVar24[1],(size_t)pfVar24[2]);
if (iVar12 == 0) break;
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3198393e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
iVar10 = iVar10 + 1;
*(undefined ***)pCVar23 = ppuVar16;
pCVar23 = pCVar23 + 4;
if (iVar10 == 9) goto LAB_008fb7e7;
}
iVar10 = iVar10 + 1;
pCVar23 = pCVar23 + 4;
} while (iVar10 != 9);
LAB_008fb7e7:
*(undefined4 *)(param_1 + 0x2d48) = 0;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"minDeadDuration";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198502e-38;
lVar25 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
*(float *)(param_1 + 0x2d4c) = (float)lVar25;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"maxDeadDuration";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198561e-38;
lVar25 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
if ((float)lVar25 != *(float *)(param_1 + 0x2d50)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3204182e-38;
iVar10 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar10 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(float *)(param_1 + 0x2d50) = (float)lVar25;
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"totalDeadDuration";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198627e-38;
lVar25 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
if ((float)lVar25 != *(float *)(param_1 + 0x2d54)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3204095e-38;
iVar10 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar10 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(float *)(param_1 + 0x2d54) = (float)lVar25;
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"deadCount";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3198693e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
puVar22 = g_pEntityList;
*(undefined4 *)(param_1 + 0x2d58) = uVar9;
uVar4 = *(uint *)(param_1 + 0x30bc);
if ((((uVar4 != 0xffffffff) &&
(puVar22 = puVar22 + (uVar4 & 0xfff) * 0x10, puVar22 != (undefined *)0xfffffffc)) &&
(*(uint *)(puVar22 + 8) == uVar4 >> 0xc)) && (*(int *)(puVar22 + 4) != 0)) {
pfVar24[2] = 0.0;
uVar9 = 0;
pfVar24[1] = (float)"abilityTimerDuration";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3205444e-38;
lVar25 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
pfVar24[2] = 0.0;
pfVar24[1] = (float)"abilityTimerTime";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3205499e-38;
lVar26 = (longdouble)KeyValues::GetFloat((KeyValues *)*pfVar24,(char *)pfVar24[1],pfVar24[2]);
uVar4 = *(uint *)(param_1 + 0x30bc);
if (((uVar4 != 0xffffffff) &&
(puVar22 = g_pEntityList + (uVar4 & 0xfff) * 0x10, puVar22 != (undefined *)0xfffffffc)) &&
(*(uint *)(puVar22 + 8) == uVar4 >> 0xc)) {
uVar9 = *(undefined4 *)(puVar22 + 4);
}
pfVar24[2] = (float)lVar25;
pfVar24[1] = (float)lVar26;
*pfVar24 = (float)uVar9;
pfVar24[-1] = 1.3205614e-38;
CBaseAbility::StartActivationTimer((CBaseAbility *)*pfVar24,pfVar24[1],pfVar24[2]);
}
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x288);
pfVar24[-1] = 1.3198785e-38;
fVar14 = (float)(*pcVar1)();
pfVar24[6] = 0.0;
pfVar24[1] = fVar14;
pfVar24[5] = 1.4013e-45;
pfVar24[4] = 1.4013e-45;
pfVar24[3] = 1000.0;
pfVar24[2] = 0.0;
*pfVar24 = (float)TheNavMesh;
pfVar24[-1] = 1.3198865e-38;
iVar10 = CNavMesh::GetNearestNavArea
((CNavMesh *)*pfVar24,(Vector *)pfVar24[1],*(bool *)(pfVar24 + 2),pfVar24[3],
*(bool *)(pfVar24 + 4),*(bool *)(pfVar24 + 5),*(bool *)(pfVar24 + 6));
if (iVar10 != 0) {
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x288);
pfVar24[-1] = 1.3198892e-38;
fVar14 = (float)(*pcVar1)();
pfVar24[6] = 0.0;
pfVar24[1] = fVar14;
pfVar24[5] = 1.4013e-45;
pfVar24[4] = 1.4013e-45;
pfVar24[3] = 1000.0;
pfVar24[2] = 0.0;
*pfVar24 = (float)TheNavMesh;
pfVar24[-1] = 1.3198972e-38;
iVar10 = CNavMesh::GetNearestNavArea
((CNavMesh *)*pfVar24,(Vector *)pfVar24[1],*(bool *)(pfVar24 + 2),pfVar24[3],
*(bool *)(pfVar24 + 4),*(bool *)(pfVar24 + 5),*(bool *)(pfVar24 + 6));
if ((*(byte *)(iVar10 + 300) & 0x80) != 0) goto LAB_008fb96a;
}
iVar10 = 0;
pCVar23 = param_1 + 0x38dc;
do {
while( true ) {
*pfVar24 = (float)iVar10;
pfVar24[-1] = 1.3199905e-38;
fVar14 = (float)ZombieClassName();
pfVar24[2] = (float)"missionZombieKills";
pfVar24[1] = fVar14;
*pfVar24 = (float)"%s_%s";
pfVar24[-1] = 1.3199939e-38;
fVar14 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = fVar14;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3199974e-38;
ppuVar16 = (undefined **)
KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pfVar24[2] = 5.60519e-45;
*pfVar24 = (float)pCVar23;
pfVar24[1] = (float)local_74;
pfVar24[-1] = 1.3200013e-38;
local_3c = ppuVar16;
iVar12 = memcmp((void *)*pfVar24,(void *)pfVar24[1],(size_t)pfVar24[2]);
if (iVar12 == 0) break;
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.320007e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
iVar10 = iVar10 + 1;
*(undefined ***)pCVar23 = ppuVar16;
pCVar23 = pCVar23 + 4;
if (iVar10 == 9) goto LAB_008fbc91;
}
iVar10 = iVar10 + 1;
pCVar23 = pCVar23 + 4;
} while (iVar10 != 9);
LAB_008fbc91:
fVar14 = 0.0;
pCVar23 = param_1 + 0x3664;
do {
while( true ) {
pfVar24[1] = fVar14;
*pfVar24 = (float)"award_%d";
pfVar24[-1] = 1.3200201e-38;
fVar15 = (float)UTIL_VarArgs((char *)*pfVar24);
pfVar24[2] = 0.0;
pfVar24[1] = fVar15;
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3200236e-38;
ppuVar16 = (undefined **)
KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
pfVar24[2] = 5.60519e-45;
*pfVar24 = (float)pCVar23;
pfVar24[1] = (float)local_74;
pfVar24[-1] = 1.3200275e-38;
local_3c = ppuVar16;
iVar10 = memcmp((void *)*pfVar24,(void *)pfVar24[1],(size_t)pfVar24[2]);
if (iVar10 == 0) break;
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3200332e-38;
iVar10 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar10 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
pCVar23 = pCVar23 + 4;
*(undefined ***)(param_1 + 0x3664 + (int)fVar14 * 4) = ppuVar16;
fVar14 = (float)((int)fVar14 + 1);
if (fVar14 == 2.08793e-43) goto LAB_008fbd46;
}
fVar14 = (float)((int)fVar14 + 1);
pCVar23 = pCVar23 + 4;
} while (fVar14 != 2.08793e-43);
LAB_008fbd46:
pfVar24[2] = 0.0;
pfVar24[1] = (float)"tankTickets";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.320042e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != *(int *)(param_1 + 0x3088)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3200477e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x3088) = iVar10;
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"missionSurvivorDamage";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.320053e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != *(int *)(param_1 + 0x3084)) {
if (param_1[0x6c] == (CTerrorPlayer)0x0) {
puVar3 = *(uint **)(param_1 + 0x30);
if (puVar3 != (uint *)0x0) {
*puVar3 = *puVar3 | 0x101;
*pfVar24 = (float)puVar3;
pfVar24[-1] = 1.3200593e-38;
iVar12 = CBaseEdict::GetChangeAccessor((CBaseEdict *)*pfVar24);
*(undefined2 *)(iVar12 + 2) = 0;
}
}
else {
param_1[0x70] = (CTerrorPlayer)((byte)param_1[0x70] | 1);
}
*(int *)(param_1 + 0x3084) = iVar10;
}
LAB_008fb96a:
if (*(int *)(param_1 + 0x3110) != 0) {
pfVar24[2] = 0.0;
pfVar24[1] = (float)"hasSaidScenarioJoin";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.319904e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(bool *)(*(int *)(param_1 + 0x3110) + 0x120) = iVar10 != 0;
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"missionIDSpawnedOn";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3199098e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x3a88) = uVar9;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"teamSpawnedOn";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3199143e-38;
uVar9 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
*(undefined4 *)(param_1 + 0x3a8c) = uVar9;
if (param_1[0x2d94] != (CTerrorPlayer)0x0) {
iVar10 = *(int *)param_1;
*pfVar24 = (float)param_1;
pcVar1 = *(code **)(iVar10 + 0x924);
pfVar24[-1] = 1.3204036e-38;
(*pcVar1)();
}
*pfVar24 = (float)local_74;
pfVar24[-1] = 1.3199185e-38;
CRecipientFilter::CRecipientFilter((CRecipientFilter *)*pfVar24);
pfVar24[1] = (float)param_1;
*pfVar24 = (float)local_74;
local_3c = &PTR__CSingleUserRecipientFilter_00c08ea8;
/* try { // try from 008fba03 to 008fba07 has its CatchHandler @ 008fd59b */
pfVar24[-1] = 1.3199211e-38;
CRecipientFilter::AddRecipient((CRecipientFilter *)*pfVar24,(CBasePlayer *)pfVar24[1]);
*pfVar24 = (float)local_74;
/* try { // try from 008fba0e to 008fbac7 has its CatchHandler @ 008fd57f */
pfVar24[-1] = 1.3199227e-38;
CRecipientFilter::MakeReliable((CRecipientFilter *)*pfVar24);
pfVar24[1] = (float)"TransitionRestore";
*pfVar24 = (float)local_74;
pfVar24[-1] = 1.3199249e-38;
UserMessageBegin((IRecipientFilter *)*pfVar24,(char *)pfVar24[1]);
pfVar24[-1] = 1.3199256e-38;
MessageEnd();
iVar10 = *gameeventmanager;
pfVar24[3] = 0.0;
pfVar24[2] = 0.0;
pfVar24[1] = (float)"player_transitioned";
*pfVar24 = (float)gameeventmanager;
pcVar1 = *(code **)(iVar10 + 0x1c);
pfVar24[-1] = 1.3199308e-38;
piVar8 = (int *)(*pcVar1)();
if (piVar8 != (int *)0x0) {
pcVar1 = *(code **)(*piVar8 + 0x30);
iVar10 = *engine;
pfVar24[1] = *(float *)(param_1 + 0x30);
*pfVar24 = (float)engine;
pcVar5 = *(code **)(iVar10 + 0x40);
pfVar24[-1] = 1.3199356e-38;
fVar14 = (float)(*pcVar5)();
pfVar24[2] = fVar14;
pfVar24[1] = (float)"userid";
*pfVar24 = (float)piVar8;
pfVar24[-1] = 1.3199384e-38;
(*pcVar1)();
iVar10 = *gameeventmanager;
pfVar24[2] = 0.0;
pfVar24[1] = (float)piVar8;
*pfVar24 = (float)gameeventmanager;
pcVar1 = *(code **)(iVar10 + 0x20);
pfVar24[-1] = 1.3199419e-38;
(*pcVar1)();
}
pfVar24[2] = 0.0;
pfVar24[1] = (float)"idle";
*pfVar24 = (float)*(undefined4 *)this;
pfVar24[-1] = 1.3199455e-38;
iVar10 = KeyValues::GetInt((KeyValues *)*pfVar24,(char *)pfVar24[1],(int)pfVar24[2]);
if (iVar10 != 0) {
pCVar23 = param_1 + 0x3fd0;
*pfVar24 = (float)pCVar23;
pfVar24[-1] = 1.319948e-38;
lVar25 = (longdouble)CountdownTimer::Now();
if ((float)lVar25 + 5.0 != *(float *)(param_1 + 0x3fd8)) {
iVar10 = *(int *)(param_1 + 0x3fd0);
*pfVar24 = (float)pCVar23;
pfVar24[1] = (float)(param_1 + 0x3fd8);
/* try { // try from 008fcb33 to 008fcb35 has its CatchHandler @ 008fd57f */
pcVar1 = *(code **)(iVar10 + 4);
pfVar24[-1] = 1.3205374e-38;
(*pcVar1)();
*(float *)(param_1 + 0x3fd8) = (float)lVar25 + 5.0;
}
if (*(float *)(param_1 + 0x3fd4) != 5.0) {
iVar10 = *(int *)(param_1 + 0x3fd0);
*pfVar24 = (float)pCVar23;
pfVar24[1] = (float)(param_1 + 0x3fd4);
/* try { // try from 008fbffc to 008fbffe has its CatchHandler @ 008fd57f */
pcVar1 = *(code **)(iVar10 + 4);
pfVar24[-1] = 1.3201351e-38;
(*pcVar1)();
*(undefined4 *)(param_1 + 0x3fd4) = 0x40a00000;
}
}
local_3c = &PTR__CSingleUserRecipientFilter_00c08ea8;
*pfVar24 = (float)local_74;
pfVar24[-1] = 1.3199584e-38;
CRecipientFilter::~CRecipientFilter((CRecipientFilter *)*pfVar24);
return;
}
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.