L L4D2node

SmokeTrail::_GLOBAL__sub_I_GetServerClass

0x003b1120 · 983 bytes · __cdecl

Decompiled

undefined (0 params)

/* SmokeTrail::GetServerClass() */

void SmokeTrail::_GLOBAL__sub_I_GetServerClass(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;
  ServerClass::ServerClass
            ((ServerClass *)g_SmokeTrail_ClassReg,"SmokeTrail",
             (SendTable *)DT_SmokeTrail::g_SendTable);
  SendTable::SendTable((SendTable *)DT_SmokeTrail::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_SmokeTrail::g_SendTable,&__dso_handle);
  DT_SmokeTrail::g_SendTableInit = ServerClassInit<DT_SmokeTrail::ignored>((ignored *)0x0);
  env_smoketrail = &PTR_Create_00ccf248;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_smoketrail,"env_smoketrail");
  SmokeTrail_DataDescInit::g_DataMapHolder = DataMapInit<SmokeTrail>((SmokeTrail *)0x0);
  ServerClass::ServerClass
            ((ServerClass *)g_RocketTrail_ClassReg,"RocketTrail",
             (SendTable *)DT_RocketTrail::g_SendTable);
  SendTable::SendTable((SendTable *)DT_RocketTrail::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_RocketTrail::g_SendTable,&__dso_handle);
  DT_RocketTrail::g_SendTableInit = ServerClassInit<DT_RocketTrail::ignored>((ignored *)0x0);
  env_rockettrail = &PTR_Create_00ccf598;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_rockettrail,"env_rockettrail");
  RocketTrail_DataDescInit::g_DataMapHolder = DataMapInit<RocketTrail>((RocketTrail *)0x0);
  ServerClass::ServerClass
            ((ServerClass *)g_SporeTrail_ClassReg,"SporeTrail",
             (SendTable *)DT_SporeTrail::g_SendTable);
  SendTable::SendTable((SendTable *)DT_SporeTrail::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_SporeTrail::g_SendTable,&__dso_handle);
  DT_SporeTrail::g_SendTableInit = ServerClassInit<DT_SporeTrail::ignored>((ignored *)0x0);
  env_sporetrail = &PTR_Create_00ccf8f8;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_sporetrail,"env_sporetrail");
  SporeTrail_DataDescInit::g_DataMapHolder = DataMapInit<SporeTrail>((SporeTrail *)0x0);
  ServerClass::ServerClass
            ((ServerClass *)g_SporeExplosion_ClassReg,"SporeExplosion",
             (SendTable *)DT_SporeExplosion::g_SendTable);
  SendTable::SendTable((SendTable *)DT_SporeExplosion::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_SporeExplosion::g_SendTable,&__dso_handle);
  DT_SporeExplosion::g_SendTableInit = ServerClassInit<DT_SporeExplosion::ignored>((ignored *)0x0);
  env_sporeexplosion = &PTR_Create_00ccfc58;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_sporeexplosion,"env_sporeexplosion");
  SporeExplosion_DataDescInit::g_DataMapHolder = DataMapInit<SporeExplosion>((SporeExplosion *)0x0);
  CFireTrail_DataDescInit::g_DataMapHolder = DataMapInit<CFireTrail>((CFireTrail *)0x0);
  ServerClass::ServerClass
            ((ServerClass *)g_CFireTrail_ClassReg,"CFireTrail",
             (SendTable *)DT_FireTrail::g_SendTable);
  SendTable::SendTable((SendTable *)DT_FireTrail::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_FireTrail::g_SendTable,&__dso_handle);
  DT_FireTrail::g_SendTableInit = ServerClassInit<DT_FireTrail::ignored>((ignored *)0x0);
  env_fire_trail = &PTR_Create_00cd02f8;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_fire_trail,"env_fire_trail");
  ServerClass::ServerClass
            ((ServerClass *)g_DustTrail_ClassReg,"DustTrail",(SendTable *)DT_DustTrail::g_SendTable)
  ;
  SendTable::SendTable((SendTable *)DT_DustTrail::g_SendTable);
  __cxa_atexit(SendTable::~SendTable,DT_DustTrail::g_SendTable,&__dso_handle);
  DT_DustTrail::g_SendTableInit = ServerClassInit<DT_DustTrail::ignored>((ignored *)0x0);
  env_dusttrail = &PTR_Create_00cd0310;
  puVar1 = (undefined4 *)EntityFactoryDictionary();
  (**(code **)*puVar1)(puVar1,&env_dusttrail,"env_dusttrail");
  DustTrail_DataDescInit::g_DataMapHolder = DataMapInit<DustTrail>((DustTrail *)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)