View Single Post
  #20  
Old 12-02-2016, 10:05 AM
Secrets Secrets is offline
VIP / Contributor

Secrets's Avatar

Join Date: Oct 2009
Posts: 1,354
Default

Quote:
Originally Posted by paulgiamatti [You must be logged in to view images. Log in or Register.]
Ah, that's an official Daybreak thing? That certainly works as evidence.
Nope, it's an emulator for EQMac, which has a client stuck at early PoP.

Also see the client disassembly from the binary:

Code:
int __cdecl do_hidecorpses(EQPlayer *a1, char *a2)
{
  const char *v2; // eax@2
  const char *v3; // eax@2
  const char *v4; // eax@2
  int result; // eax@2
  EQPlayer *v6; // ebx@4
  char *v7; // eax@4
  const char *v8; // eax@5
  const char *v9; // eax@9
  char *v10; // eax@13
  const char *v11; // eax@14
  const char *v12; // eax@18
  int v13; // esi@19
  const char *v14; // eax@26
  char v15; // [sp+10h] [bp-58h]@9

  if ( *a2 )
  {
    v6 = EQPlayer::top;
    v7 = (char *)StringTable::getString(g_stringTable, 0x3395u, 0);
    if ( UTF8_stricmp(a2, v7) )
    {
      v10 = (char *)StringTable::getString(g_stringTable, 0x3397u, 0);
      if ( UTF8_stricmp(a2, v10) )
      {
        v14 = (const char *)StringTable::getString(g_stringTable, 0x3399u, 0);
        for ( result = CEverQuest::dsp_chat(EverQuestObject, v14, 15, 1); v6; v6 = (EQPlayer *)*((_DWORD *)v6 + 31) )
        {
          result = *((_BYTE *)v6 + 168) - 2;
          if ( (unsigned __int8)result <= 1u )
          {
            result = *((_DWORD *)v6 + 33);
            if ( result )
            {
              if ( *(_DWORD *)result )
              {
                *(_DWORD *)(result + 440) = 0;
                result = t3dSetActorInvisible(**((_DWORD **)v6 + 33), 0);
              }
            }
          }
        }
      }
      else
      {
        v11 = (const char *)StringTable::getString(g_stringTable, 0x3398u, 0);
        for ( result = CEverQuest::dsp_chat(EverQuestObject, v11, 15, 1); v6; v6 = (EQPlayer *)*((_DWORD *)v6 + 31) )
        {
          result = *((_BYTE *)v6 + 168) - 2;
          if ( (unsigned __int8)result <= 1u )
          {
            v12 = (const char *)CEverQuest::stripName(EverQuestObject, (char *)v6 + 1);
            strcpy(&v15, v12);
            result = stricmp(&v15, (const char *)LocalPlayer + 1);
            if ( result )
            {
              v13 = 0;
              do
              {
                result = stricmp(&v15, (const char *)LocalPlayer + 1);
                if ( result )
                {
                  if ( EQ_PC::IsAGroupMember(LocalPC, &v15) )
                  {
                    result = *((_DWORD *)v6 + 33);
                    if ( result && *(_DWORD *)result )
                    {
                      *(_DWORD *)(result + 440) = 0;
                      result = t3dSetActorInvisible(**((_DWORD **)v6 + 33), 0);
                    }
                  }
                  else
                  {
                    result = *((_DWORD *)v6 + 33);
                    if ( result && *(_DWORD *)result )
                    {
                      *(_DWORD *)(result + 440) = 1;
                      result = t3dSetActorInvisible(**((_DWORD **)v6 + 33), 1);
                    }
                  }
                }
                ++v13;
              }
              while ( v13 != 6 );
            }
          }
        }
      }
    }
    else
    {
      v8 = (const char *)StringTable::getString(g_stringTable, 0x3396u, 0);
      for ( result = CEverQuest::dsp_chat(EverQuestObject, v8, 15, 1); v6; v6 = (EQPlayer *)*((_DWORD *)v6 + 31) )
      {
        result = *((_BYTE *)v6 + 168) - 2;
        if ( (unsigned __int8)result <= 1u )
        {
          v9 = (const char *)CEverQuest::stripName(EverQuestObject, (char *)v6 + 1);
          strcpy(&v15, v9);
          result = stricmp(&v15, (const char *)LocalPlayer + 1);
          if ( result )
          {
            result = *((_DWORD *)v6 + 33);
            if ( result )
            {
              if ( *(_DWORD *)result )
              {
                *(_DWORD *)(result + 440) = 1;
                result = t3dSetActorInvisible(**((_DWORD **)v6 + 33), 1);
              }
            }
          }
        }
      }
    }
  }
  else
  {
    v2 = (const char *)StringTable::getString(g_stringTable, 0x3392u, 0);
    CEverQuest::dsp_chat(EverQuestObject, v2);
    v3 = (const char *)StringTable::getString(g_stringTable, 0x3393u, 0);
    CEverQuest::dsp_chat(EverQuestObject, v3);
    v4 = (const char *)StringTable::getString(g_stringTable, 0x3394u, 0);
    result = CEverQuest::dsp_chat(EverQuestObject, v4);
  }
  return result;
}
__________________
Engineer of Things and Stuff, Wearer of Many Hats

“Knowing yourself is the beginning of all wisdom.” — Aristotle