L L4D2node

CDmxElement::GetName

0x00be77a0 · 299 bytes · __thiscall

_ZNK11CDmxElement7GetNameEv

Decompiled

undefined (1 param)

/* CDmxElement::GetName() const */

void __thiscall CDmxElement::GetName(CDmxElement *this)

{
  int *piVar1;
  int iVar2;
  
  piVar1 = (int *)GetAttribute(this,"name");
  if (piVar1 == (int *)0x0) {
    if (GetValue<CUtlString>(char_const*)::defaultValue == '\0') {
      iVar2 = __cxa_guard_acquire(&GetValue<CUtlString>(char_const*)::defaultValue);
      if (iVar2 != 0) {
                    /* try { // try from 00be78a7 to 00be78ab has its CatchHandler @ 00be78ef */
        CUtlString::CUtlString((CUtlString *)GetValue<CUtlString>(char_const*)::defaultValue);
        __cxa_guard_release(&GetValue<CUtlString>(char_const*)::defaultValue);
        __cxa_atexit(CUtlString::~CUtlString,GetValue<CUtlString>(char_const*)::defaultValue,
                     &__dso_handle);
      }
    }
    CUtlString::Set((CUtlString *)GetValue<CUtlString>(char_const*)::defaultValue,(char *)0x0);
    CUtlString::operator_cast_to_char_
              ((CUtlString *)GetValue<CUtlString>(char_const*)::defaultValue);
    return;
  }
  if (*piVar1 != 5) {
    if (CDmxAttribute::GetValue<CUtlString>()::defaultValue == '\0') {
      iVar2 = __cxa_guard_acquire(&CDmxAttribute::GetValue<CUtlString>()::defaultValue);
      if (iVar2 != 0) {
                    /* try { // try from 00be7867 to 00be786b has its CatchHandler @ 00be78d9 */
        CUtlString::CUtlString((CUtlString *)CDmxAttribute::GetValue<CUtlString>()::defaultValue);
        __cxa_guard_release(&CDmxAttribute::GetValue<CUtlString>()::defaultValue);
        __cxa_atexit(CUtlString::~CUtlString,CDmxAttribute::GetValue<CUtlString>()::defaultValue,
                     &__dso_handle);
      }
    }
    CUtlString::Set((CUtlString *)CDmxAttribute::GetValue<CUtlString>()::defaultValue,(char *)0x0);
    CUtlString::operator_cast_to_char_
              ((CUtlString *)CDmxAttribute::GetValue<CUtlString>()::defaultValue);
    return;
  }
  CUtlString::operator_cast_to_char_((CUtlString *)piVar1[2]);
  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.



        

        

          

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

Return-type handling cheatsheet (DHookReturn)