L L4D2node

_GLOBAL__sub_I_TheDirector

0x003b64e0 · 11053 bytes · unknown

Decompiled

undefined (0 params)

void _GLOBAL__sub_I_TheDirector(void)

{
  undefined4 *puVar1;
  
  vec2_origin._0_4_ = 0;
  vec2_origin._4_4_ = 0;
  vec2_invalid._0_4_ = 0x7f7fffff;
  vec2_invalid._4_4_ = 0x7f7fffff;
  vec4_origin._0_4_ = 0;
  vec4_origin._4_4_ = 0;
  vec4_origin._8_4_ = 0;
  vec4_origin._12_4_ = 0;
  vec4_invalid._0_4_ = 0x7f7fffff;
  vec4_invalid._4_4_ = 0x7f7fffff;
  vec4_invalid._8_4_ = 0x7f7fffff;
  vec4_invalid._12_4_ = 0x7f7fffff;
  UNSPECIFIED_LOGGING_COLOR._0_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._1_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._2_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._3_1_ = 0;
  InterfaceReg::InterfaceReg
            ((InterfaceReg *)__g_CreateCServerGameTagsIServerGameTags_reg,
             __CreateCServerGameTagsIServerGameTags_interface,"ServerGameTags001");
  ConVar::ConVar((ConVar *)sv_hibernate_when_empty,"sv_hibernate_when_empty","1",0,
                 "Puts the server into extremely low CPU usage mode when no clients connected");
  __cxa_atexit(ConVar::~ConVar,sv_hibernate_when_empty,&__dso_handle);
  ConVar::ConVar((ConVar *)director_test_loop,"director_test_loop","0",0x4000,
                 "Allow a team of nothing but bots, advance through maps and loop back to start");
  __cxa_atexit(ConVar::~ConVar,director_test_loop,&__dso_handle);
  ConVar::ConVar((ConVar *)director_test_loop_rotate_maps,"director_test_loop_rotate_maps","1",
                 0x4000,"When looping, advance to the next map when reach end of campaign");
  __cxa_atexit(ConVar::~ConVar,0xfffe00,&__dso_handle);
  ConVar::ConVar((ConVar *)director_test_loop_restarts_before_rotate,
                 "director_test_loop_restarts_before_rotate","4",0x4000,
                 "When looping and rotating, how many times to restart before moving to next campaign"
                );
  __cxa_atexit(ConVar::~ConVar,director_test_loop_restarts_before_rotate,&__dso_handle);
  ConVar::ConVar((ConVar *)director_test_loop_time,"director_test_loop_time","3",0x4000,
                 "When looping, stay in each map for at most the amount of time, in minutes, specified"
                );
  __cxa_atexit(ConVar::~ConVar,director_test_loop_time,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieGhostFinaleSpawnInterval,"z_ghost_finale_spawn_interval","20",
                 0x4000,"Interval for spawning special zombies during the finale");
  __cxa_atexit(ConVar::~ConVar,ZombieGhostFinaleSpawnInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieGhostCheckpointSpawnInterval,"z_ghost_checkpoint_spawn_interval",
                 "30",0x4000,
                 "Interval for spawning special zombies while survivors are in the checkpoint");
  __cxa_atexit(ConVar::~ConVar,ZombieGhostCheckpointSpawnInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)AllowAllBotGame,"sb_all_bot_game","0",0x4000,
                 "Allow a server of nothing but bots",OnAllBotGameChanged);
  __cxa_atexit(ConVar::~ConVar,AllowAllBotGame,&__dso_handle);
  ConVar::ConVar((ConVar *)allow_all_bot_survivor_team,"allow_all_bot_survivor_team","0",0,
                 "Allow a survivor team of nothing but bots. Human players are still required for the game to be active."
                );
  __cxa_atexit(ConVar::~ConVar,allow_all_bot_survivor_team,&__dso_handle);
  ConVar::ConVar((ConVar *)director_allow_infected_bots,"director_allow_infected_bots","1",0,
                 "Allow bots to fill empty slots on the infected team");
  __cxa_atexit(ConVar::~ConVar,director_allow_infected_bots,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieBreakableDamage,"z_breakable_damage","4",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieBreakableDamage,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorReadyDuration,"director_ready_duration","60",0x4000,
                 "If nonzero, survivor team has this amount of time to get ready before starting out"
                );
  __cxa_atexit(ConVar::~ConVar,DirectorReadyDuration,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorReadyRadius,"director_ready_radius","300",0x4000,
                 "The distance survivors can move from the starting weapons during the ready period"
                );
  __cxa_atexit(ConVar::~ConVar,DirectorReadyRadius,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorNoDeathCheck,"director_no_death_check","0",0x4000,
                 "Disable survivor team death ending scenario");
  __cxa_atexit(ConVar::~ConVar,DirectorNoDeathCheck,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorNoMobs,"director_no_mobs","0",0x4000,"Disable mob rushes");
  __cxa_atexit(ConVar::~ConVar,DirectorNoMobs,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorNoBosses,"director_no_bosses","0",0x4000,"Disable boss spawns");
  __cxa_atexit(ConVar::~ConVar,DirectorNoBosses,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorNoSpecials,"director_no_specials","0",0x4000,"Disable PZ spawns")
  ;
  __cxa_atexit(ConVar::~ConVar,DirectorNoSpecials,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSpecialSpawnDelay,"z_director_special_spawn_delay","10",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorSpecialSpawnDelay,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorNoSurvivorBots,"director_no_survivor_bots","0",0x4000,
                 "Disable filling out the survivor team with bots");
  __cxa_atexit(ConVar::~ConVar,0xfff800,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSpectateSpecials,"director_spectate_specials","0",0x4000,
                 "Allow spectating zombies");
  __cxa_atexit(ConVar::~ConVar,DirectorSpectateSpecials,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorForceWitch,"director_force_witch","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorForceWitch,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorForceTank,"director_force_tank","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorForceTank,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankOfferDebug,"director_tank_offer_debug","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorTankOfferDebug,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankBypassMaxFlowTravel,"director_tank_bypass_max_flow_travel",
                 "1500",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorTankBypassMaxFlowTravel,&__dso_handle);
  ConVar::ConVar((ConVar *)director_always_allow_wanderers,"director_always_allow_wanderers","0",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,director_always_allow_wanderers,&__dso_handle);
  ConVar::ConVar((ConVar *)director_num_reserved_wanderers,"director_num_reserved_wanderers","0",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,director_num_reserved_wanderers,&__dso_handle);
  ConVar::ConVar((ConVar *)z_wandering_density,"z_wandering_density","0.03",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_wandering_density,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorClearedWandererRespawnChance,
                 "cleared_wanderer_respawn_chance","0",0x4000,
                 "Chance to replenish wanderers in cleared nav areas");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorClearedWandererRespawnChance,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSpecialInitialSpawnDelayMaxExtra,
                 "director_special_initial_spawn_delay_max_extra","180",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorSpecialInitialSpawnDelayMaxExtra,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieRoundStartReplacementTime,"z_round_start_replacement_time","30",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieRoundStartReplacementTime,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankMinInterval,"director_tank_min_interval","350",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorTankMinInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankMaxInterval,"director_tank_max_interval","500",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorTankMaxInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankCheckpointInterval,"director_tank_checkpoint_interval","15",
                 0x4000,"Min time after leaving a checkpoint that a tank can spawn");
  __cxa_atexit(ConVar::~ConVar,DirectorTankCheckpointInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankOffer,"director_tank_force_offer","0",0x4000,
                 "Forces the director to offer a tank");
  __cxa_atexit(ConVar::~ConVar,DirectorTankOffer,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankLotteryEntryTime,"director_tank_lottery_entry_time","0.1",
                 0x4000,"Time it takes for entry into the tank lottery");
  __cxa_atexit(ConVar::~ConVar,DirectorTankLotteryEntryTime,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTankLotterySelectionTime,"director_tank_lottery_selection_time",
                 "4",0x4000,"Time it takes for selection in the tank lottery");
  __cxa_atexit(ConVar::~ConVar,DirectorTankLotterySelectionTime,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueInterval,"rescue_interval","2.5",0x4000,
                 "Dead survivors are checked to start calling for help this often");
  __cxa_atexit(ConVar::~ConVar,RescueInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueIgnoreDistance,"rescue_ignore_distance","2000",0x4000,
                 "If living survivors are this far past a rescuable survivor, he stops calling for help"
                );
  __cxa_atexit(ConVar::~ConVar,RescueIgnoreDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueFinaleIgnoreDistance,"rescue_finale_ignore_distance","4000",0x4000,
                 "If living survivors are this far past a rescuable survivor, he stops calling for help"
                );
  __cxa_atexit(ConVar::~ConVar,RescueFinaleIgnoreDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueMinDeadTime,"rescue_min_dead_time","60",0x4000,
                 "Duration in seconds a survivor must be dead before being rescuable");
  __cxa_atexit(ConVar::~ConVar,RescueMinDeadTime,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueDistance,"rescue_distance","4500",0x4000,
                 "Living survivors must travel this far past a dead survivor\'s corpse to be able to rescue him"
                );
  __cxa_atexit(ConVar::~ConVar,RescueDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueSpawnRange,"rescue_spawn_range","2000",0x4000,
                 "info_survivor_rescue ents will be considered if they are this close to the leading survivor"
                );
  __cxa_atexit(ConVar::~ConVar,RescueSpawnRange,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueFinaleSpawnRange,"rescue_finale_spawn_range","4000",0x4000,
                 "info_survivor_rescue ents will be considered if they are this close to the leading survivor"
                );
  __cxa_atexit(ConVar::~ConVar,RescueFinaleSpawnRange,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueSpawnFlow,"rescue_spawn_flow","400",0x4000,
                 "info_survivor_rescue ents will be considered if they are no more than this far ahead in flow distance from the leading survivor"
                );
  __cxa_atexit(ConVar::~ConVar,RescueSpawnFlow,&__dso_handle);
  ConVar::ConVar((ConVar *)RescueDisabled,"sv_rescue_disabled","0",0,
                 "If set to 1, dead survivors will never be rescue-able.");
  __cxa_atexit(ConVar::~ConVar,RescueDisabled,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorDebug,"director_debug","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorDebug,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorIngressRange,"director_ingress_range","3000",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorIngressRange,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorTransitionTimeout,"director_transition_timeout","120",0x4000,
                 "Duration (in seconds) to wait for survivors to transition across changelevels");
  __cxa_atexit(ConVar::~ConVar,DirectorTransitionTimeout,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSpecialOriginalOfferLength,
                 "director_special_original_offer_length","30",0x4000,
                 "How long is given to the first player to accept the offer of a special zombie.");
  __cxa_atexit(ConVar::~ConVar,DirectorSpecialOriginalOfferLength,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSpecialFinaleOfferLength,"director_special_finale_offer_length",
                 "10",0x4000,
                 "How long is given to a player to accept the offer of a special zombie during the finale."
                );
  __cxa_atexit(ConVar::~ConVar,DirectorSpecialFinaleOfferLength,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorSurvivorMovementWindow,"director_survivor_movement_window","10.0"
                 ,0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorSurvivorMovementWindow,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorThreatClearRadius,"director_threat_clear_radius","500",0x4000,
                 "Prevent wandering zombies within this radius of threats");
  __cxa_atexit(ConVar::~ConVar,DirectorThreatClearRadius,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieCommonLimit,"z_common_limit","30",0x4000,
                 "How many common infecteds we can have at once.");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieCommonLimit,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSpecialRespawnInterval,
                 "director_special_respawn_interval","45",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSpecialRespawnInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorPanicWavePauseMin,"director_panic_wave_pause_min"
                 ,"5",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorPanicWavePauseMin,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorPanicWavePauseMax,"director_panic_wave_pause_max"
                 ,"7",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorPanicWavePauseMax,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorBuildUpMinInterval,
                 "director_build_up_min_interval","15",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorBuildUpMinInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorRelaxMinInterval,"director_relax_min_interval",
                 "30",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorRelaxMinInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorRelaxMaxInterval,"director_relax_max_interval",
                 "45",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorRelaxMaxInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorRelaxMaxFlowTravel,
                 "director_relax_max_flow_travel","3000",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorRelaxMaxFlowTravel,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSustainPeakMinTime,
                 "director_sustain_peak_min_time","3",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSustainPeakMinTime,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSustainPeakMaxTime,
                 "director_sustain_peak_max_time","5",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSustainPeakMaxTime,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMinTimeEasy,"z_mob_spawn_min_interval_easy"
                 ,"120",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMinTimeEasy,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMinTimeNormal,
                 "z_mob_spawn_min_interval_normal","90",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMinTimeNormal,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMinTimeHard,"z_mob_spawn_min_interval_hard"
                 ,"90",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMinTimeHard,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMinTimeExpert,
                 "z_mob_spawn_min_interval_expert","90",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMinTimeExpert,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMaxTimeEasy,"z_mob_spawn_max_interval_easy"
                 ,"240",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMaxTimeEasy,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMaxTimeNormal,
                 "z_mob_spawn_max_interval_normal","180",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMaxTimeNormal,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMaxTimeHard,"z_mob_spawn_max_interval_hard"
                 ,"180",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMaxTimeHard,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMobSpawnMaxTimeExpert,
                 "z_mob_spawn_max_interval_expert","180",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMobSpawnMaxTimeExpert,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSpecialInitialSpawnDelayMin,
                 "director_special_initial_spawn_delay_min","30",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSpecialInitialSpawnDelayMin,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSpecialInitialSpawnDelayMax,
                 "director_special_initial_spawn_delay_max","60",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSpecialInitialSpawnDelayMax,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorZombieGhostDelayMin,"z_ghost_delay_min","20",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorZombieGhostDelayMin,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorZombieGhostDelayMax,"z_ghost_delay_max","30",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorZombieGhostDelayMax,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorTankRunSpawnDelay,"tank_run_spawn_delay","15",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorTankRunSpawnDelay,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSpawnBehindSurvivorsDistance,
                 "spawn_behind_survivors_distance","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSpawnBehindSurvivorsDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMobMinSize,"z_mob_spawn_min_size","10",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMobMinSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMobMaxSize,"z_mob_spawn_max_size","30",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMobMaxSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMobRechargeRate,"z_mob_recharge_rate","0.0025",
                 0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMobRechargeRate,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_ZombieMegaMobSize,"z_mega_mob_size","50",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_ZombieMegaMobSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorZombieDontClear,"z_dont_clear","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorZombieDontClear,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorIntensityThreshold,"director_intensity_threshold"
                 ,"0.9",0x6000);
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorIntensityThreshold,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorIntensityRelaxThreshold,
                 "director_intensity_relax_threshold","0.9",0x4000,
                 "All survivors must be below this intensity before a Peak is allowed to switch to Relax (in addition to the normal peak timer)"
                );
  __cxa_atexit(ConVar::~ConVar,0xffe000,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorIntensityRelaxAllowWanderersThreshold,
                 "director_intensity_relax_allow_wanderers_threshold","0.3",0x4000,
                 "All survivors must be below this intensity during RELAX for wandering zombies to be spawned"
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorIntensityRelaxAllowWanderersThreshold,
               &__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorIntensityRelaxAllowWanderersThresholdHard,
                 "director_intensity_relax_allow_wanderers_threshold_hard","0.5",0x4000,
                 "All survivors must be below this intensity during RELAX for wandering zombies to be spawned"
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorIntensityRelaxAllowWanderersThresholdHard,
               &__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorIntensityRelaxAllowWanderersThresholdExpert,
                 "director_intensity_relax_allow_wanderers_threshold_expert","0.8",0x4000,
                 "All survivors must be below this intensity during RELAX for wandering zombies to be spawned"
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorIntensityRelaxAllowWanderersThresholdExpert,
               &__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorUseFogSpawning,"z_fog_spawn","0",0x4000,
                 "Set to 1 to use fogged areas as valid spawn areas");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorUseFogSpawning,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorGauntletMovementThreshold,
                 "director_gauntlet_movement_threshold","500.0",0x4000,
                 "If you move less than this in DirectorGauntletMovementTimer seconds, you will get an increasing break between mobs."
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorGauntletMovementThreshold,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorGauntletMovementTimerLength,
                 "director_gauntlet_movement_timer_length","10.0",0x4000,
                 "If you don\'t cross the movement threshold in this amount of time, you get increasing break time added between mobs."
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorGauntletMovementTimerLength,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorGauntletMovementBonus,
                 "director_gauntlet_movement_bonus","5.0",0x4000,
                 "If you don\'t cross the movement threshold in DirectorGauntletMovementTimer seconds, you will get this much bonus time added between mobs."
                );
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorGauntletMovementBonus,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorGauntletMovementBonusMax,
                 "director_gauntlet_movement_bonus_max","30.0",0x4000,
                 "Maximum amount of bonus time you can accumulate from not moving.");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorGauntletMovementBonusMax,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMusicDynamicMobSpawnSize,
                 "director_music_dynamic_mob_size","25",0x4000,
                 "Spawning a mob this large can play music");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMusicDynamicMobSpawnSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMusicDynamicMobStopSize,
                 "director_music_dynamic_mobstop_size","8",0x4000,
                 "When a mob gets to this size we think about stopping the music");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMusicDynamicMobStopSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorMusicDynamicMobScanStopSize,
                 "director_music_dynamic_scanmobstop_size","3",0x4000,
                 "When see less than this many of a mob, music stops");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorMusicDynamicMobScanStopSize,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorSurvivorMaxIncapacitatedCount,
                 "survivor_max_incapacitated_count","2",0x4000,
                 "How many times you can be incapacitated instead of killed between health kits.");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorSurvivorMaxIncapacitatedCount,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorSpeed,"survivor_speed","210",0x4000);
  __cxa_atexit(ConVar::~ConVar,SurvivorSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHealth,"z_health","50",0x4000,"Zombie max health");
  __cxa_atexit(ConVar::~ConVar,ZombieHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorPrivate_DirectorZombieDiscardRange,"z_discard_range","2500",
                 0x4000,"Discard Zombies farther away than this");
  __cxa_atexit(ConVar::~ConVar,DirectorPrivate_DirectorZombieDiscardRange,&__dso_handle);
  ConVar::ConVar((ConVar *)z_attack_incapacitated_damage,"z_attack_incapacitated_damage","10",0x4000
                );
  __cxa_atexit(ConVar::~ConVar,z_attack_incapacitated_damage,&__dso_handle);
  ConVar::ConVar((ConVar *)z_attack_pz_it_damage,"z_attack_pz_it_damage","20",0x4000,
                 "Damage done by infected on IT PZs");
  __cxa_atexit(ConVar::~ConVar,z_attack_pz_it_damage,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieChance,"z_chance","60",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieChance,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieFinaleChance,"z_finale_chance","100",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieFinaleChance,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieShotgunBonusDamageRange,"z_shotgun_bonus_damage_range","100",0x4000
                 ,
                 "A shotgun pellet hitting a common infected within this distance will get the z_shotgun_bonus_damage_multiplier bonus."
                );
  __cxa_atexit(ConVar::~ConVar,ZombieShotgunBonusDamageRange,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieShotgunBonusDamageMultiplier,"z_shotgun_bonus_damage_multiplier",
                 "5",0x4000,
                 "The multiplier to damage from a shotgun pellet within z_shotgun_bonus_damage_range range."
                );
  __cxa_atexit(ConVar::~ConVar,ZombieShotgunBonusDamageMultiplier,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieVisionRange,"z_vision_range","500",0x4000,
                 "How far a Zombie can see.");
  __cxa_atexit(ConVar::~ConVar,ZombieVisionRange,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieVisionRangeObscured,"z_vision_range_obscured","500",0x4000,
                 "How far a Zombie can see in OBSCURED areas.");
  __cxa_atexit(ConVar::~ConVar,ZombieVisionRangeObscured,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieVisionRangeObscuredAlert,"z_vision_range_obscured_alert","750",
                 0x4000,"How far a Zombie can see in OBSCURED areas when alert.");
  __cxa_atexit(ConVar::~ConVar,ZombieVisionRangeObscuredAlert,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieVisionRangeAlert,"z_vision_range_alert","1500",0x4000,
                 "How far a Zombie can see when alert.");
  __cxa_atexit(ConVar::~ConVar,ZombieVisionRangeAlert,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieVisionRangeDaylight,"z_vision_range_daylight","2400",0x4000,
                 "How far a Zombie can see in daylight");
  __cxa_atexit(ConVar::~ConVar,ZombieVisionRangeDaylight,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieTankHealth,"z_tank_health","4000",0x4000,"Tank Zombie max health");
  __cxa_atexit(ConVar::~ConVar,ZombieTankHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieTankThrowForce,"z_tank_throw_force","800",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieTankThrowForce,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieTankAttackInterval,"z_tank_attack_interval","1.5",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieTankAttackInterval,&__dso_handle);
  ConVar::ConVar((ConVar *)VersusTankDamage,"vs_tank_damage","24",0x4000,
                 "Amount of damage done by a vs tank\'s melee attack");
  __cxa_atexit(ConVar::~ConVar,VersusTankDamage,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieExplodingHealth,"z_exploding_health","50",0x4000,
                 "Exploding Zombie max health");
  __cxa_atexit(ConVar::~ConVar,ZombieExplodingHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)z_boomer_limit,"z_boomer_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_boomer_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)z_smoker_limit,"z_smoker_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_smoker_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieGasHealth,"z_gas_health","250",0x4000,"Gas Zombie max health");
  __cxa_atexit(ConVar::~ConVar,ZombieGasHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWitchHealth,"z_witch_health","1000",0x4000,"Witch max health");
  __cxa_atexit(ConVar::~ConVar,ZombieWitchHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWitchDamage,"z_witch_damage","100",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieWitchDamage,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWitchMinThreatTime,"z_witch_min_threat_time","5",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieWitchMinThreatTime,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWitchMaxThreatTime,"z_witch_max_threat_time","7",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieWitchMaxThreatTime,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWitchBerserkRange,"z_witch_berserk_range","200",0x4000);
  __cxa_atexit(ConVar::~ConVar,ZombieWitchBerserkRange,&__dso_handle);
  ConVar::ConVar((ConVar *)z_hunter_limit,"z_hunter_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_hunter_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHunterHealth,"z_hunter_health","250",0x4000,"Zombie max health");
  __cxa_atexit(ConVar::~ConVar,ZombieHunterHealth,&__dso_handle);
  ConVar::ConVar((ConVar *)z_spitter_limit,"z_spitter_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_spitter_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)z_spitter_health,"z_spitter_health","100",0x4000,
                 "Spitter zombie max health");
  __cxa_atexit(ConVar::~ConVar,z_spitter_health,&__dso_handle);
  ConVar::ConVar((ConVar *)z_jockey_limit,"z_jockey_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_jockey_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)z_jockey_health,"z_jockey_health","325",0x4000,"Zombie max health");
  __cxa_atexit(ConVar::~ConVar,z_jockey_health,&__dso_handle);
  ConVar::ConVar((ConVar *)z_charger_limit,"z_charger_limit","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,z_charger_limit,&__dso_handle);
  ConVar::ConVar((ConVar *)z_charger_health,"z_charger_health","600",0x4000,"Charger max health");
  __cxa_atexit(ConVar::~ConVar,z_charger_health,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieDoorPoundDamage,"z_door_pound_damage","60",0x2000);
  __cxa_atexit(ConVar::~ConVar,ZombieDoorPoundDamage,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieCloseTargetNoticeDistance,"z_close_target_notice_distance","60",
                 0x4000,
                 "How far an attacking zombie will look for a nearby target on their way to their chosen victim."
                );
  __cxa_atexit(ConVar::~ConVar,ZombieCloseTargetNoticeDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorShortFinale,"director_short_finale","0",0x4000,
                 "Short finale for testing escape vehicles");
  __cxa_atexit(ConVar::~ConVar,DirectorShortFinale,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorMinStartPlayers,"director_min_start_players","1",0,
                 "Freezes players until this # of players have joined, then starts mission");
  __cxa_atexit(ConVar::~ConVar,DirectorMinStartPlayers,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorForceBackground,"director_force_background","0",0x4000,
                 "Forces background map population logic for testing");
  __cxa_atexit(ConVar::~ConVar,DirectorForceBackground,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_permawipe,"sv_permawipe","0",0x4000,
                 "If set, the campaign will restart fully if the Survivors die.");
  __cxa_atexit(ConVar::~ConVar,sv_permawipe,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_stop_command,"director_stop",director_stop,
             "Shuts off all wanderers, mobs, specials, and bosses",0x4000,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_stop_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_start_command,"director_start",director_start,
             "Restores spawning of all wanderers, mobs, specials, and bosses",0x4000,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_start_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_print_player_counts_command,"director_print_player_counts",
             director_print_player_counts,
             "Prints out counts of connected players and transitioning players (for debugging)",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_print_player_counts_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)multiplayerendgame_command,"multiplayerendgame",multiplayerendgame,
             "Take all of the connected clients and take them to the end game state.",0x4000,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,multiplayerendgame_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_begin_script_command,"director_begin_script",
             director_begin_script,"Begin a director script",0x4000,(int_____char_const__char *)0x0)
  ;
  __cxa_atexit(ConCommand::~ConCommand,director_begin_script_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_end_script_command,"director_end_script",director_end_script,
             "End a director script",0x4000,(int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_end_script_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_report_scavenge_items_command,"director_report_scavenge_items",
             director_report_scavenge_items,"Dump to the log all the scavengable items",0x4000,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_report_scavenge_items_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_force_scripted_panic_event_command,
             "director_force_scripted_panic_event",director_force_scripted_panic_event,
             "Force the specified scripted panic event to happen",0x4000,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_force_scripted_panic_event_command,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorAITanks,"director_ai_tanks","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,DirectorAITanks,&__dso_handle);
  g_CDirector_ScriptDesc._0_4_ = 0;
  g_CDirector_ScriptDesc._4_4_ = 0;
  g_CDirector_ScriptDesc._8_4_ = 0;
  g_CDirector_ScriptDesc._12_4_ = 0;
  g_CDirector_ScriptDesc._16_4_ = 0;
  g_CDirector_ScriptDesc._20_4_ = 0;
  g_CDirector_ScriptDesc._24_4_ = 0;
  g_CDirector_ScriptDesc._28_4_ = 0;
  g_CDirector_ScriptDesc._32_4_ = 0;
  g_CDirector_ScriptDesc._36_4_ = 0;
  g_CDirector_ScriptDesc._40_4_ = 0;
  g_CDirector_ScriptDesc._44_4_ = 0;
  __cxa_atexit(ScriptClassDesc_t::~ScriptClassDesc_t,g_CDirector_ScriptDesc,&__dso_handle);
  DAT_0100028c = 0;
  cameraFinaleWinStr = 0;
  DAT_01000288 = "camera_finale_win";
  __cxa_atexit(CGameString::~CGameString,&cameraFinaleWinStr,&__dso_handle);
  DAT_0100027c = 0;
  cameraFinaleStr = 0;
  DAT_01000278 = "camera_finale";
  __cxa_atexit(CGameString::~CGameString,&cameraFinaleStr,&__dso_handle);
  DAT_0100026c = 0;
  cameraFinaleLossStr = 0;
  DAT_01000268 = "camera_finale_loss";
  __cxa_atexit(CGameString::~CGameString,&cameraFinaleLossStr,&__dso_handle);
  ConVar::ConVar((ConVar *)DirectorReportScreenDelay,"director_report_screen_delay","10",0);
  __cxa_atexit(ConVar::~ConVar,DirectorReportScreenDelay,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)outtro_stats_done_command,"outtro_stats_done",outtro_stats_done,
             "Fire an output when the outtro stats are finished",0x10,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,outtro_stats_done_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)director_report_command,"director_report",director_report,
             "Prints a snapshot of the director\'s state",0x4000,(int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,director_report_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)fade_crosshair,"fade_crosshair",Cmd_FadeCrosshair_f,
             "Fades the prop being looked at",0x4000,(int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,fade_crosshair,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_tankpropfade,"sv_tankpropfade","1",0x4000);
  __cxa_atexit(ConVar::~ConVar,sv_tankpropfade,&__dso_handle);
  ConVar::ConVar((ConVar *)fade_immediately,"fade_immediately","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,fade_immediately,&__dso_handle);
  (anonymous_namespace)::s_infinity = 0x7f800000;
  info_director = &PTR_Create_00ce11a0;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&info_director,"info_director");
  CInfoDirector_DataDescInit::g_DataMapHolder = DataMapInit<CInfoDirector>((CInfoDirector *)0x0);
  logic_director_query = &PTR_Create_00ce14f8;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&logic_director_query,"logic_director_query");
  CLogicDirectorQuery_DataDescInit::g_DataMapHolder =
       DataMapInit<CLogicDirectorQuery>((CLogicDirectorQuery *)0x0);
  return;
}

SourceMod gamedata

paste into addons/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.



        
        

⚠ This function has no mangled symbol — it may be internal/static. The Linux gamedata field uses @-prefix symbol resolution which requires an exported mangled name. You'll need a Linux byte signature for this one (extract via extract_signature.java).


          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)