Тема: creaturecache.wdb
Показать сообщение отдельно
Старый 12.12.2013, 12:31   #16
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
это что получается сюда они запихнули все обработчики?
Код:
char __thiscall sub_78D225(void *this, int a2, int a3, int a4)
{
    int v4; // esi@1
    int v5; // ebx@1
    unsigned int v6; // edi@1
    char result; // al@2
    unsigned int v8; // eax@11
    int v9; // ecx@12
    unsigned int dwOpcode; // [sp+Ch] [bp-4h]@1

    ++dword_108D6D4;
    v4 = (int)this;
    CDataStore__GetInt32(a3, (int)&dwOpcode);   // opcode
    v5 = dwOpcode & 0x244;
    v6 = dwOpcode;
    if ( (dwOpcode & 0x244) == 4 )
    {
        result = sub_65261C(v4, v4, 0, a2, dwOpcode, a3);
    }
    else
    {
        if ( (dwOpcode & 0x276) == 80 )
        {
            result = sub_687488(v4, v4, 0, a2, dwOpcode, a3);
        }
        else
        {
            if ( (dwOpcode & 0x1240) == 512 )
            {
                result = sub_C68651(v4, 0, a2, dwOpcode, a3);
            }
            else
            {
                if ( (dwOpcode & 0x1244) == 580 )
                {
                    result = sub_6880A4(v4, 0, a2, dwOpcode, a3);
                }
                else
                {
                    if ( (dwOpcode & 0x252) == 64 )
                    {
                        result = sub_C4B8A2(v4, 0, a2, dwOpcode, a3);
                    }
                    else
                    {
                        (*(void (__thiscall **)(int, unsigned int))(*(_DWORD *)v4 + 68))(v4, dwOpcode);
                        v8 = v6 & 3 | ((v6 & 0x38 | ((v6 & 0x180 | (v6 >> 1) & 0x7E00) >> 1)) >> 1);
                        if ( v5 || (v9 = *(_DWORD *)(v4 + 4 * v8 + 1360)) == 0 )
                            result = (*(int (**)(void))(*(_DWORD *)a3 + 24))();
                        else
                            result = ((int (__cdecl *)(_DWORD, unsigned int, int, int))(v9
                                                                                      - ((v6 | (v6 << 16)) ^ 0x62A3A31D)))(
                                         *(_DWORD *)(v4 + 4 * v8 + 9552),
                                         v6,
                                         a2,
                                         a3);
                    }
                }
            }
        }
    }
    return result;
}
да, это они, родимые
Amaru вне форума   Ответить с цитированием