L L4D2node

_GLOBAL__sub_I_sv_hibernate_when_empty

0x000a1630 · 3370 bytes · unknown

Decompiled

undefined (0 params)

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void _GLOBAL__sub_I_sv_hibernate_when_empty(void)

{
  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;
  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",
                 OnHibernateWhenEmptyChanged);
  __cxa_atexit(ConVar::~ConVar,sv_hibernate_when_empty,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_hibernate_ms,"sv_hibernate_ms","20",0,
                 "# of milliseconds to sleep per frame while hibernating");
  __cxa_atexit(ConVar::~ConVar,sv_hibernate_ms,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_hibernate_ms_vgui,"sv_hibernate_ms_vgui","20",0,
                 "# of milliseconds to sleep per frame while hibernating but running the vgui dedicated server frontend"
                );
  __cxa_atexit(ConVar::~ConVar,sv_hibernate_ms_vgui,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_hibernate_postgame_delay,"sv_hibernate_postgame_delay","5",0,
                 "# of seconds to wait after final client leaves before hibernating.");
  __cxa_atexit(ConVar::~ConVar,sv_hibernate_postgame_delay,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_sync_client_updates,"sv_sync_client_updates","0",0,
                 "(Only used when hosting xbox games). Send clients updates at the same time. This saves CPU because the server will encode and calc deltas on less frames."
                );
  __cxa_atexit(ConVar::~ConVar,sv_sync_client_updates,&__dso_handle);
  ConVar::ConVar((ConVar *)host_flush_threshold,"host_flush_threshold","14",0x80000,
                 "Memory threshold below which the host should flush caches between server instances"
                );
  __cxa_atexit(ConVar::~ConVar,host_flush_threshold,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_pausable_dev,"sv_pausable_dev","1",2,
                 "Whether listen server is pausable when running -dev and playing solo against bots"
                );
  __cxa_atexit(ConVar::~ConVar,sv_pausable_dev,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_pausable_dev_ds,"sv_pausable_dev_ds","0",2,
                 "Whether dedicated server is pausable when running -dev and playing solo against bots"
                );
  __cxa_atexit(ConVar::~ConVar,sv_pausable_dev_ds,&__dso_handle);
  CGameServer::CGameServer((CGameServer *)&sv);
  __cxa_atexit(CGameServer::~CGameServer,&sv,&__dso_handle);
  g_ServerGlobalVariables[0x30] = 0;
  g_ServerGlobalVariables._52_4_ = 100;
  g_ServerGlobalVariables._56_4_ = 0x20;
  g_ServerGlobalVariables._84_4_ = 0;
  ConCommand::ConCommand
            ((ConCommand *)sv_pure,"sv_pure",SV_Pure_f,"Show user data.",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,sv_pure,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_pure_kick_clients,"sv_pure_kick_clients","1",0x80000,
                 "If set to 1, the server will kick clients with mismatching files. Otherwise, it will issue a warning to the client."
                );
  __cxa_atexit(ConVar::~ConVar,sv_pure_kick_clients,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_pure_trace,"sv_pure_trace","0",0x80000,
                 "If set to 1, the server will print a message whenever a client is verifying a CRC for a file."
                );
  __cxa_atexit(ConVar::~ConVar,sv_pure_trace,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_cheats,"sv_cheats","0",0x82100,"Allow cheats on server",
                 SV_CheatsChanged_f);
  __cxa_atexit(ConVar::~ConVar,sv_cheats,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_lan,"sv_lan","0",0x80000,
                 "Server is a lan server ( no heartbeat, no authentication, no non-class C addresses )"
                );
  __cxa_atexit(ConVar::~ConVar,sv_lan,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_pausable,"sv_pausable","0",0x80000,"Is the server pausable.");
  __cxa_atexit(ConVar::~ConVar,sv_pausable,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_contact,"sv_contact","",0x80100,"Contact email for server sysop");
  __cxa_atexit(ConVar::~ConVar,sv_contact,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_cacheencodedents,"sv_cacheencodedents","1",0,
                 "If set to 1, does an optimization to prevent extra SendTable_Encode calls.");
  __cxa_atexit(ConVar::~ConVar,sv_cacheencodedents,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_voicecodec,"sv_voicecodec","vaudio_speex",0,
                 "Specifies which voice codec DLL to use in a game. Set to the name of the DLL without the extension."
                );
  __cxa_atexit(ConVar::~ConVar,sv_voicecodec,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_voiceenable,"sv_voiceenable","1",0x80180);
  __cxa_atexit(ConVar::~ConVar,sv_voiceenable,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_downloadurl,"sv_downloadurl","",0x82000,
                 "Location from which clients can download missing files");
  __cxa_atexit(ConVar::~ConVar,sv_downloadurl,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_consistency,"sv_consistency","1",0x82000,
                 "Whether the server enforces file consistency for critical files");
  __cxa_atexit(ConVar::~ConVar,sv_consistency,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_maxreplay,"sv_maxreplay","0",0,"Maximum replay time in seconds",true,
                 0.0,true,15.0);
  __cxa_atexit(ConVar::~ConVar,sv_maxreplay,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_mincmdrate,"sv_mincmdrate","0",0x82000,
                 "This sets the minimum value for cl_cmdrate. 0 == unlimited.");
  __cxa_atexit(ConVar::~ConVar,sv_mincmdrate,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_maxcmdrate,"sv_maxcmdrate","40",0x82000,
                 "(If sv_mincmdrate is > 0), this sets the maximum value for cl_cmdrate.");
  __cxa_atexit(ConVar::~ConVar,sv_maxcmdrate,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_client_cmdrate_difference,"sv_client_cmdrate_difference","20",0x2000,
                 "cl_cmdrate is moved to within sv_client_cmdrate_difference units of cl_updaterate before it is clamped between sv_mincmdrate and sv_maxcmdrate."
                );
  __cxa_atexit(ConVar::~ConVar,sv_client_cmdrate_difference,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_client_min_interp_ratio,"sv_client_min_interp_ratio","1",0x2000,
                 "This can be used to limit the value of cl_interp_ratio for connected clients (only while they are connected).\n              -1 = let clients set cl_interp_ratio to anything\n any other value = set minimum value for cl_interp_ratio"
                );
  __cxa_atexit(ConVar::~ConVar,sv_client_min_interp_ratio,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_client_max_interp_ratio,"sv_client_max_interp_ratio","5",0x2000,
                 "This can be used to limit the value of cl_interp_ratio for connected clients (only while they are connected). If sv_client_min_interp_ratio is -1, then this cvar has no effect."
                );
  __cxa_atexit(ConVar::~ConVar,sv_client_max_interp_ratio,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_client_predict,"sv_client_predict","-1",0x2000,
                 "This can be used to force the value of cl_predict for connected clients (only while they are connected).\n   -1 = let clients set cl_predict to anything\n    0 = force cl_predict to 0\n    1 = force cl_predict to 1"
                );
  __cxa_atexit(ConVar::~ConVar,sv_client_predict,&__dso_handle);
  ConVar::ConVar((ConVar *)tv_enable,"tv_enable","0",0x100,"Activates SourceTV on server.",
                 OnTVEnablehanged);
  __cxa_atexit(ConVar::~ConVar,tv_enable,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_always_full_flush,"sv_always_full_flush","0",0x4000);
  __cxa_atexit(ConVar::~ConVar,sv_always_full_flush,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)user_command,"user",user,"Show user data.",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,user_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)users_command,"users",users,"Show user info for players on server.",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,users_command,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)maxplayers_command,"maxplayers",maxplayers,
             "Change the maximum number of players allowed on this server.",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,maxplayers_command,&__dso_handle);
  g_ModDirPermissions._0_4_ = GetAppSteamAppId(2);
  g_ModDirPermissions._4_4_ = GetAppModName(2);
  g_ModDirPermissions._8_4_ = GetAppSteamAppId(3);
  g_ModDirPermissions._12_4_ = GetAppModName(3);
  g_ModDirPermissions._16_4_ = GetAppSteamAppId(4);
  g_ModDirPermissions._20_4_ = GetAppModName(4);
  g_ModDirPermissions._24_4_ = GetAppSteamAppId(5);
  g_ModDirPermissions._28_4_ = GetAppModName(5);
  g_ModDirPermissions._32_4_ = GetAppSteamAppId(6);
  g_ModDirPermissions._36_4_ = GetAppModName(6);
  g_ModDirPermissions._40_4_ = GetAppSteamAppId(8);
  g_ModDirPermissions._44_4_ = GetAppModName(8);
  g_ModDirPermissions._48_4_ = GetAppSteamAppId(1);
  g_ModDirPermissions._52_4_ = GetAppModName(1);
  g_ModDirPermissions._56_4_ = GetAppSteamAppId(7);
  g_ModDirPermissions._60_4_ = GetAppModName(7);
  g_ModDirPermissions._64_4_ = GetAppSteamAppId(9);
  g_ModDirPermissions._68_4_ = GetAppModName(9);
  g_ModDirPermissions._72_4_ = GetAppSteamAppId(10);
  g_ModDirPermissions._76_4_ = GetAppModName(10);
  g_ModDirPermissions._80_4_ = GetAppSteamAppId(0xb);
  g_ModDirPermissions._84_4_ = GetAppModName(0xb);
  g_ModDirPermissions._88_4_ = GetAppSteamAppId(0xc);
  g_ModDirPermissions._92_4_ = GetAppModName(0xc);
  g_AreasNetworked = 0;
  _DAT_003b788c = 0;
  _DAT_003b7890 = 0;
  DAT_003b7894 = 0;
  _DAT_003b7898 = 0;
  __cxa_atexit(CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector,&g_AreasNetworked,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_memlimit,"sv_memlimit","0",0x4000,
                 "If set, whenever a game ends, if the total memory used by the server is greater than this # of megabytes, the server will exit."
                );
  __cxa_atexit(ConVar::~ConVar,sv_memlimit,&__dso_handle);
  ConCommand::ConCommand
            ((ConCommand *)sv_shutdown,"sv_shutdown",sv_ShutDown,
             "Sets the server to shutdown when all games have completed",0,
             (int_____char_const__char *)0x0);
  __cxa_atexit(ConCommand::~ConCommand,sv_shutdown,&__dso_handle);
  ConVar::ConVar((ConVar *)sv_parallel_sendsnapshot,"sv_parallel_sendsnapshot","1",0);
  __cxa_atexit(ConVar::~ConVar,sv_parallel_sendsnapshot,&__dso_handle);
  ConVar::ConVar((ConVar *)voice_debugfeedbackfrom,"voice_debugfeedbackfrom","0",0);
  __cxa_atexit(ConVar::~ConVar,voice_debugfeedbackfrom,&__dso_handle);
  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)