#include "PseuWoW.h"
#include "Object.h"
#include "WorldSession.h"

void WorldSession::_SetupObjectFields()
{
    switch(_instance->GetConf()->client)//TODO: Add TBC/WOTLK cases
    {
        case CLIENT_CLASSIC_WOW:
        {
            uint32 mv[]={
                OBJECT_END,
                ITEM_END_6005,
                CONTAINER_END_6005,
                UNIT_END_6005,
                PLAYER_END_6005,
                GAMEOBJECT_END_6005,
                DYNAMICOBJECT_END,
                CORPSE_END
            };
            memcpy(Object::maxvalues,mv,sizeof(mv));
            
            Object::updatefields[ OBJECT_FIELD_GUID                         ] = UpdateField(                      0x0000 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ OBJECT_FIELD_GUID_LOW                     ] = UpdateField(                      0x0000 ,  UF_UINT32 ); 
            Object::updatefields[ OBJECT_FIELD_GUID_HIGH                    ] = UpdateField(                      0x0001 ,  UF_UINT32 ); 
            Object::updatefields[ OBJECT_FIELD_TYPE                         ] = UpdateField(                      0x0002 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ OBJECT_FIELD_ENTRY                        ] = UpdateField(                      0x0003 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ OBJECT_FIELD_SCALE_X                      ] = UpdateField(                      0x0004 ,   UF_FLOAT );  // Size:1
            Object::updatefields[ OBJECT_FIELD_PADDING                      ] = UpdateField(                      0x0005 ,  UF_UINT32 );  // Size:1

            Object::updatefields[ ITEM_FIELD_OWNER                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ ITEM_FIELD_CONTAINED                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ ITEM_FIELD_CREATOR                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ ITEM_FIELD_GIFTCREATOR                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ ITEM_FIELD_STACK_COUNT                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_DURATION                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT32 );  // Size:5
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES_01               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000B ,  UF_UINT32 ); 
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES_02               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT32 ); 
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES_03               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000D ,  UF_UINT32 ); 
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES_04               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT32 ); 
            Object::updatefields[ ITEM_FIELD_FLAGS                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32 );  // Count=21
            Object::updatefields[ ITEM_FIELD_PROPERTY_SEED                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0025 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_RANDOM_PROPERTIES_ID           ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0026 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_ITEM_TEXT_ID                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0027 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_DURABILITY                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0028 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ ITEM_FIELD_MAXDURABILITY                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0029 ,  UF_UINT32 );  // Size:1

            Object::updatefields[ CONTAINER_FIELD_NUM_SLOTS                 ] = UpdateField(    mv[TYPEID_UNIT] + 0x0000 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ CONTAINER_ALIGN_PAD                       ] = UpdateField(    mv[TYPEID_UNIT] + 0x0001 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ CONTAINER_FIELD_SLOT_1                    ] = UpdateField(    mv[TYPEID_UNIT] + 0x0002 ,  UF_UINT32 );  // Count=56
            Object::updatefields[ CONTAINER_FIELD_SLOT_LAST                 ] = UpdateField(    mv[TYPEID_UNIT] + 0x0038 ,  UF_UINT32 ); 

            Object::updatefields[ UNIT_FIELD_CHARM                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_SUMMON                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CHARMEDBY                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_SUMMONEDBY                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CREATEDBY                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_TARGET                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_PERSUADED                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CHANNEL_OBJECT                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_HEALTH                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER1                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0011 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER2                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER3                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER4                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0014 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER5                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0015 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXHEALTH                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0016 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER1                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0017 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER2                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0018 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER3                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0019 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER4                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER5                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_LEVEL                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_FACTIONTEMPLATE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_0                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32 );  // Size:3
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0020 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_02         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0021 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0022 ,  UF_UINT32 );  // Size:6
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_01                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0023 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_02                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0024 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_03                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0025 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_04                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0026 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_05                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0027 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_FLAGS                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0028 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_AURA                           ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0029 ,  UF_UINT32 );  // Size:48
            Object::updatefields[ UNIT_FIELD_AURA_LAST                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0058 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAFLAGS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0059 ,  UF_UINT32 );  // Size:6
            Object::updatefields[ UNIT_FIELD_AURAFLAGS_01                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005A ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAFLAGS_02                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005B ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAFLAGS_03                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005C ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAFLAGS_04                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005D ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAFLAGS_05                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005E ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURALEVELS                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x005F ,  UF_UINT32 );  // Size:12
            Object::updatefields[ UNIT_FIELD_AURALEVELS_LAST                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x006A ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURAAPPLICATIONS               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x006B ,  UF_UINT32 );  // Size:12
            Object::updatefields[ UNIT_FIELD_AURAAPPLICATIONS_LAST          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0076 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_AURASTATE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0077 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BASEATTACKTIME                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0078 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_OFFHANDATTACKTIME              ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0079 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_RANGEDATTACKTIME               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BOUNDINGRADIUS                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_COMBATREACH                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_DISPLAYID                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NATIVEDISPLAYID                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MOUNTDISPLAYID                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINDAMAGE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0080 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXDAMAGE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0081 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINOFFHANDDAMAGE               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0082 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXOFFHANDDAMAGE               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0083 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_1                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0084 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETNUMBER                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0085 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PET_NAME_TIMESTAMP             ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0086 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETEXPERIENCE                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0087 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETNEXTLEVELEXP                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0088 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_DYNAMIC_FLAGS                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0089 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_CHANNEL_SPELL                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_MOD_CAST_SPEED                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_CREATED_BY_SPELL                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_NPC_FLAGS                            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_NPC_EMOTESTATE                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_TRAINING_POINTS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT0                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0090 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT1                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0091 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT2                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0092 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT3                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0093 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT4                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0094 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RESISTANCES                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0095 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_RESISTANCES_01                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0096 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_RESISTANCES_02                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0097 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_RESISTANCES_03                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0098 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_RESISTANCES_04                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0099 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_RESISTANCES_05                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009A ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_RESISTANCES_06                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009B ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_BASE_MANA                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BASE_HEALTH                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_2                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MODS              ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A0 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MULTIPLIER        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A1 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A2 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MODS       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A3 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A4 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINRANGEDDAMAGE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A5 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXRANGEDDAMAGE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A6 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A7 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_01         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A8 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_02         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A9 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_03         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AA ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_04         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AB ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_05         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AC ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER_06         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AD ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AE ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_01       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AF ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_02       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B0 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_03       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B1 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_04       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B2 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_05       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B3 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER_06       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B4 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_PADDING                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B5 ,  UF_UINT32 ); 

            Object::updatefields[ PLAYER_DUEL_ARBITER                       ] = UpdateField(    mv[TYPEID_UNIT] + 0x0000 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ PLAYER_FLAGS                              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0002 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_GUILDID                            ] = UpdateField(    mv[TYPEID_UNIT] + 0x0003 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_GUILDRANK                          ] = UpdateField(    mv[TYPEID_UNIT] + 0x0004 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_BYTES                              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0005 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_BYTES_2                            ] = UpdateField(    mv[TYPEID_UNIT] + 0x0006 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_BYTES_3                            ] = UpdateField(    mv[TYPEID_UNIT] + 0x0007 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_DUEL_TEAM                          ] = UpdateField(    mv[TYPEID_UNIT] + 0x0008 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_GUILD_TIMESTAMP                    ] = UpdateField(    mv[TYPEID_UNIT] + 0x0009 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_QUEST_LOG_1_1                      ] = UpdateField(    mv[TYPEID_UNIT] + 0x000A ,  UF_UINT32 );  // Count = 20
            Object::updatefields[ PLAYER_QUEST_LOG_1_2                      ] = UpdateField(    mv[TYPEID_UNIT] + 0x000B ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_QUEST_LOG_1_3                      ] = UpdateField(    mv[TYPEID_UNIT] + 0x000C ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_QUEST_LOG_LAST_1                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0043 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_QUEST_LOG_LAST_2                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0044 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_QUEST_LOG_LAST_3                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0045 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_CREATOR             ] = UpdateField(    mv[TYPEID_UNIT] + 0x0046 ,  UF_UINT64 );  // Size:2, Count = 19
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_0                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0048 ,  UF_UINT64 );  // Size:8
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_PROPERTIES          ] = UpdateField(    mv[TYPEID_UNIT] + 0x0050 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_PAD                 ] = UpdateField(    mv[TYPEID_UNIT] + 0x0051 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_VISIBLE_ITEM_LAST_CREATOR          ] = UpdateField(    mv[TYPEID_UNIT] + 0x011E ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_VISIBLE_ITEM_LAST_0                ] = UpdateField(    mv[TYPEID_UNIT] + 0x0120 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_VISIBLE_ITEM_LAST_PROPERTIES       ] = UpdateField(    mv[TYPEID_UNIT] + 0x0128 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_VISIBLE_ITEM_LAST_PAD              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0129 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_INV_SLOT_HEAD                ] = UpdateField(    mv[TYPEID_UNIT] + 0x012A ,  UF_UINT32 );  // Size:46
            Object::updatefields[ PLAYER_FIELD_PACK_SLOT_1                  ] = UpdateField(    mv[TYPEID_UNIT] + 0x0158 ,  UF_UINT32 );  // Size:32
            Object::updatefields[ PLAYER_FIELD_PACK_SLOT_LAST               ] = UpdateField(    mv[TYPEID_UNIT] + 0x0176 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_BANK_SLOT_1                  ] = UpdateField(    mv[TYPEID_UNIT] + 0x0178 ,  UF_UINT32 );  // Size:48
            Object::updatefields[ PLAYER_FIELD_BANK_SLOT_LAST               ] = UpdateField(    mv[TYPEID_UNIT] + 0x01A6 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_BANKBAG_SLOT_1               ] = UpdateField(    mv[TYPEID_UNIT] + 0x01A8 ,  UF_UINT32 );  // Size:12
            Object::updatefields[ PLAYER_FIELD_BANKBAG_SLOT_LAST            ] = UpdateField(    mv[TYPEID_UNIT] + 0x0AB2 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_VENDORBUYBACK_SLOT_1         ] = UpdateField(    mv[TYPEID_UNIT] + 0x01B4 ,  UF_UINT32 );  // Size:24
            Object::updatefields[ PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST      ] = UpdateField(    mv[TYPEID_UNIT] + 0x01CA ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_KEYRING_SLOT_1               ] = UpdateField(    mv[TYPEID_UNIT] + 0x01CC ,  UF_UINT32 );  // Size:64
            Object::updatefields[ PLAYER_FIELD_KEYRING_SLOT_LAST            ] = UpdateField(    mv[TYPEID_UNIT] + 0x020A ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FARSIGHT                           ] = UpdateField(    mv[TYPEID_UNIT] + 0x020C ,  UF_UINT64 );  // Size:2
            Object::updatefields[ PLAYER_FIELD_COMBO_TARGET                 ] = UpdateField(    mv[TYPEID_UNIT] + 0x020E ,  UF_UINT64 );  // Size:2
            Object::updatefields[ PLAYER_XP                                 ] = UpdateField(    mv[TYPEID_UNIT] + 0x0210 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_NEXT_LEVEL_XP                      ] = UpdateField(    mv[TYPEID_UNIT] + 0x0211 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_SKILL_INFO_1_1                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x0212 ,  UF_UINT32 );  // Size:384
            Object::updatefields[ PLAYER_CHARACTER_POINTS1                  ] = UpdateField(    mv[TYPEID_UNIT] + 0x0392 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_CHARACTER_POINTS2                  ] = UpdateField(    mv[TYPEID_UNIT] + 0x0393 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_TRACK_CREATURES                    ] = UpdateField(    mv[TYPEID_UNIT] + 0x0394 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_TRACK_RESOURCES                    ] = UpdateField(    mv[TYPEID_UNIT] + 0x0395 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_BLOCK_PERCENTAGE                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0396 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_DODGE_PERCENTAGE                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0397 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_PARRY_PERCENTAGE                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x0398 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_CRIT_PERCENTAGE                    ] = UpdateField(    mv[TYPEID_UNIT] + 0x0399 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_RANGED_CRIT_PERCENTAGE             ] = UpdateField(    mv[TYPEID_UNIT] + 0x039A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_EXPLORED_ZONES_1                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x039B ,  UF_UINT32 );  // Size:64
            Object::updatefields[ PLAYER_REST_STATE_EXPERIENCE              ] = UpdateField(    mv[TYPEID_UNIT] + 0x03DB ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_COINAGE                      ] = UpdateField(    mv[TYPEID_UNIT] + 0x03DC ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_POSSTAT0                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03DD ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_POSSTAT1                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03DE ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_POSSTAT2                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03DF ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_POSSTAT3                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E0 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_POSSTAT4                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E1 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_NEGSTAT0                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E2 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_NEGSTAT1                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E3 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_NEGSTAT2                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E4 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_NEGSTAT3                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E5 ,  UF_UINT32 );  // Size:1,
            Object::updatefields[ PLAYER_FIELD_NEGSTAT4                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E6 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE   ] = UpdateField(    mv[TYPEID_UNIT] + 0x03E7 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE   ] = UpdateField(    mv[TYPEID_UNIT] + 0x03EE ,  UF_UINT32 );  // Size:7
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_POS          ] = UpdateField(    mv[TYPEID_UNIT] + 0x03F5 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_NEG          ] = UpdateField(    mv[TYPEID_UNIT] + 0x03FC ,  UF_UINT32 );  // Size:7
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_PCT          ] = UpdateField(    mv[TYPEID_UNIT] + 0x0403 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ PLAYER_FIELD_BYTES                        ] = UpdateField(    mv[TYPEID_UNIT] + 0x040A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_AMMO_ID                            ] = UpdateField(    mv[TYPEID_UNIT] + 0x040B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_SELF_RES_SPELL                     ] = UpdateField(    mv[TYPEID_UNIT] + 0x040C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_PVP_MEDALS                   ] = UpdateField(    mv[TYPEID_UNIT] + 0x040D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_BUYBACK_PRICE_1              ] = UpdateField(    mv[TYPEID_UNIT] + 0x040E ,  UF_UINT32 );  // Count=12
            Object::updatefields[ PLAYER_FIELD_BUYBACK_PRICE_LAST           ] = UpdateField(    mv[TYPEID_UNIT] + 0x0419 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_BUYBACK_TIMESTAMP_1          ] = UpdateField(    mv[TYPEID_UNIT] + 0x041A ,  UF_UINT32 );  // Count=12
            Object::updatefields[ PLAYER_FIELD_BUYBACK_TIMESTAMP_LAST       ] = UpdateField(    mv[TYPEID_UNIT] + 0x0425 ,  UF_UINT32 ); 
            Object::updatefields[ PLAYER_FIELD_SESSION_KILLS                ] = UpdateField(    mv[TYPEID_UNIT] + 0x0426 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_YESTERDAY_KILLS              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0427 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_LAST_WEEK_KILLS              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0428 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_THIS_WEEK_KILLS              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0429 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_THIS_WEEK_CONTRIBUTION       ] = UpdateField(    mv[TYPEID_UNIT] + 0x042A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_LIFETIME_HONORABLE_KILLS     ] = UpdateField(    mv[TYPEID_UNIT] + 0x042B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_LIFETIME_DISHONORABLE_KILLS  ] = UpdateField(    mv[TYPEID_UNIT] + 0x042C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_YESTERDAY_CONTRIBUTION       ] = UpdateField(    mv[TYPEID_UNIT] + 0x042D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_LAST_WEEK_CONTRIBUTION       ] = UpdateField(    mv[TYPEID_UNIT] + 0x042E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_LAST_WEEK_RANK               ] = UpdateField(    mv[TYPEID_UNIT] + 0x042F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_BYTES2                       ] = UpdateField(    mv[TYPEID_UNIT] + 0x0430 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_WATCHED_FACTION_INDEX        ] = UpdateField(    mv[TYPEID_UNIT] + 0x0431 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ PLAYER_FIELD_COMBAT_RATING_1              ] = UpdateField(    mv[TYPEID_UNIT] + 0x0432 ,  UF_UINT32 );  // Size:20

            Object::updatefields[ OBJECT_FIELD_CREATED_BY                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 ); 
            Object::updatefields[ GAMEOBJECT_DISPLAYID                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_FLAGS                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_ROTATION                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_STATE                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_POS_X                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,   UF_FLOAT ); 
            Object::updatefields[ GAMEOBJECT_POS_Y                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000A ,   UF_FLOAT ); 
            Object::updatefields[ GAMEOBJECT_POS_Z                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000B ,   UF_FLOAT ); 
            Object::updatefields[ GAMEOBJECT_FACING                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_DYN_FLAGS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000D ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_FACTION                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_TYPE_ID                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000F ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_LEVEL                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_ARTKIT                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0011 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_ANIMPROGRESS                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32 ); 
            Object::updatefields[ GAMEOBJECT_PADDING                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32 ); 

            Object::updatefields[ DYNAMICOBJECT_CASTER                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 ); 
            Object::updatefields[ DYNAMICOBJECT_BYTES                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_SPELLID                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_RADIUS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_POS_X                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_POS_Y                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_POS_Z                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0007 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_FACING                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 ); 
            Object::updatefields[ DYNAMICOBJECT_PAD                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32 ); 

            Object::updatefields[ CORPSE_FIELD_OWNER                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 ); 
            Object::updatefields[ CORPSE_FIELD_FACING                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_POS_X                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_POS_Y                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_POS_Z                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_DISPLAY_ID                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_ITEM                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0007 ,  UF_UINT32 );  // 19
            Object::updatefields[ CORPSE_FIELD_BYTES_1                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001A ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_BYTES_2                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_GUILD                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_FLAGS                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_DYNAMIC_FLAGS                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32 ); 
            Object::updatefields[ CORPSE_FIELD_PAD                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32 ); 
  
            break;
        }
        case CLIENT_TBC: //2.4.3
        {
            uint32 mv[]={
                OBJECT_END,
                ITEM_END_8606,
                CONTAINER_END,
                UNIT_END_8606,
                PLAYER_END_8606,
                GAMEOBJECT_END_8606,
                DYNAMICOBJECT_END_8606,
                CORPSE_END_8606
            };
            memcpy(Object::maxvalues,mv,sizeof(mv));

            Object::updatefields[ OBJECT_FIELD_GUID                       ] = UpdateField(                     0x0000 ,  UF_UINT64);
            Object::updatefields[ OBJECT_FIELD_GUID_LOW                   ] = UpdateField(                     0x0000 ,  UF_UINT32); 
            Object::updatefields[ OBJECT_FIELD_GUID_HIGH                  ] = UpdateField(                     0x0001 ,  UF_UINT32); 
            Object::updatefields[ OBJECT_FIELD_TYPE                       ] = UpdateField(                     0x0002 ,  UF_UINT32);
            Object::updatefields[ OBJECT_FIELD_ENTRY                      ] = UpdateField(                     0x0003 ,  UF_UINT32);
            Object::updatefields[ OBJECT_FIELD_SCALE_X                    ] = UpdateField(                     0x0004 ,   UF_FLOAT);
            Object::updatefields[ OBJECT_FIELD_PADDING                    ] = UpdateField(                     0x0005 ,  UF_UINT32);
            
            Object::updatefields[ ITEM_FIELD_OWNER                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_CONTAINED                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_CREATOR                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_GIFTCREATOR                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_STACK_COUNT                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_DURATION                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES                ] = UpdateField( mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_FLAGS                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x000F ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_1_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_PROPERTY_SEED                ] = UpdateField( mv[TYPEID_OBJECT] + 0x0031 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ITEM_TEXT_ID                 ] = UpdateField( mv[TYPEID_OBJECT] + 0x0032 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_PAD                          ] = UpdateField( mv[TYPEID_OBJECT] + 0x0039 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_DURABILITY                   ] = UpdateField( mv[TYPEID_OBJECT] + 0x0034 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_MAXDURABILITY                ] = UpdateField( mv[TYPEID_OBJECT] + 0x0035 ,  UF_UINT32);

            Object::updatefields[ CONTAINER_FIELD_NUM_SLOTS               ] = UpdateField(   mv[TYPEID_ITEM] + 0x0000 ,  UF_UINT32);
            Object::updatefields[ CONTAINER_ALIGN_PAD                     ] = UpdateField(   mv[TYPEID_ITEM] + 0x0001 ,  UF_UINT32);
            Object::updatefields[ CONTAINER_FIELD_SLOT_1                  ] = UpdateField(   mv[TYPEID_ITEM] + 0x0002 ,  UF_UINT64);

            Object::updatefields[ UNIT_FIELD_CHARM                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_SUMMON                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CHARMEDBY                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_SUMMONEDBY                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CREATEDBY                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_TARGET                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_PERSUADED                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_CHANNEL_OBJECT                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_HEALTH                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER1                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0011 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER2                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER3                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER4                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0014 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER5                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0015 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXHEALTH                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0016 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER1                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0017 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER2                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0018 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER3                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0019 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER4                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXPOWER5                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_LEVEL                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_FACTIONTEMPLATE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_0                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32 );  // Size:3
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0020 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_02         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0021 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0022 ,  UF_UINT32 );  // Size:6
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_01                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0023 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_02                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0024 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_03                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0025 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_04                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0026 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_VIRTUAL_ITEM_INFO_05                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0027 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_FLAGS                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0028 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_FLAGS_2                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0029 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_AURA                           ] = UpdateField(  mv[TYPEID_OBJECT] + 0x002A ,  UF_UINT32 );  // Size:56
            Object::updatefields[ UNIT_FIELD_AURAFLAGS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0062 ,  UF_UINT32 );  // Size:14
            Object::updatefields[ UNIT_FIELD_AURALEVELS                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0070 ,  UF_UINT32 );  // Size:14
            Object::updatefields[ UNIT_FIELD_AURAAPPLICATIONS               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x007E ,  UF_UINT32 );  // Size:14
            Object::updatefields[ UNIT_FIELD_AURASTATE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BASEATTACKTIME                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008D ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_OFFHANDATTACKTIME              ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008E ,  UF_UINT64 );  // Size:2
            Object::updatefields[ UNIT_FIELD_RANGEDATTACKTIME               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x008F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BOUNDINGRADIUS                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0090 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_COMBATREACH                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0091 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_DISPLAYID                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0092 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NATIVEDISPLAYID                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0093 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MOUNTDISPLAYID                 ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0094 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINDAMAGE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0095 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXDAMAGE                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0096 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINOFFHANDDAMAGE               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0097 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXOFFHANDDAMAGE               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0098 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_1                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0099 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETNUMBER                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009A ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PET_NAME_TIMESTAMP             ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009B ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETEXPERIENCE                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009C ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_PETNEXTLEVELEXP                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009D ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_DYNAMIC_FLAGS                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009E ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_CHANNEL_SPELL                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x009F ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_MOD_CAST_SPEED                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A0 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_CREATED_BY_SPELL                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A1 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_NPC_FLAGS                            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A2 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_NPC_EMOTESTATE                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A3 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_TRAINING_POINTS                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A4 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT0                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A5 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT1                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A6 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT2                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A7 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT3                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A8 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_STAT4                          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00A9 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POSSTAT0                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AA ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POSSTAT1                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AB ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POSSTAT2                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AC ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POSSTAT3                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AD ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POSSTAT4                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AE ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NEGSTAT0                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00AF ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NEGSTAT1                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B0 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NEGSTAT2                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B1 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NEGSTAT3                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B2 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_NEGSTAT4                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B3 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RESISTANCES                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00B4 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00BB ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00C2 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_BASE_MANA                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00C9 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BASE_HEALTH                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CA ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_BYTES_2                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CB ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CC ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MODS              ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CD ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MULTIPLIER        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CE ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00CF ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MODS       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00D0 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00D1 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MINRANGEDDAMAGE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00D2 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_MAXRANGEDDAMAGE                ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00D3 ,  UF_UINT32 );  // Size:1
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER            ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00D4 ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER          ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00DB ,  UF_UINT32 );  // Size:7
            Object::updatefields[ UNIT_FIELD_MAXHEALTHMODIFIER              ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00E2 ,  UF_UINT32 ); 
            Object::updatefields[ UNIT_FIELD_PADDING                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x00E3 ,  UF_UINT32 ); 

            Object::updatefields[ PLAYER_DUEL_ARBITER                      ] = UpdateField(  mv[TYPEID_UNIT] + 0x0000 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_FLAGS                             ] = UpdateField(  mv[TYPEID_UNIT] + 0x0002 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_GUILDID                           ] = UpdateField(  mv[TYPEID_UNIT] + 0x0003 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_GUILDRANK                         ] = UpdateField(  mv[TYPEID_UNIT] + 0x0004 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_BYTES                             ] = UpdateField(  mv[TYPEID_UNIT] + 0x0005 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ PLAYER_BYTES_2                           ] = UpdateField(  mv[TYPEID_UNIT] + 0x0006 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ PLAYER_BYTES_3                           ] = UpdateField(  mv[TYPEID_UNIT] + 0x0007 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ PLAYER_DUEL_TEAM                         ] = UpdateField(  mv[TYPEID_UNIT] + 0x0008 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_GUILD_TIMESTAMP                   ] = UpdateField(  mv[TYPEID_UNIT] + 0x0009 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_QUEST_LOG_1_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_1_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_1_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_1_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_2_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_2_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x000F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_2_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0010 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_2_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0011 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_3_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0012 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_3_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0013 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_3_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0014 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_3_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0015 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_4_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0016 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_4_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0017 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_4_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0018 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_4_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0019 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_5_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_5_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_5_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_5_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_6_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_6_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x001F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_6_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0020 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_6_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0021 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_7_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0022 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_7_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0023 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_7_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0024 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_7_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0025 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_8_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0026 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_8_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0027 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_8_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0028 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_8_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x0029 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_9_1                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x002A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_9_2                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x002B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_9_3                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x002C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_9_4                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x002D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_10_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x002E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_10_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x002F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_10_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0030 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_10_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0031 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_11_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0032 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_11_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0033 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_11_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0034 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_11_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0035 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_12_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0036 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_12_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0037 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_12_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0038 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_12_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0039 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_13_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_13_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_13_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_13_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_14_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_14_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x003F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_14_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0040 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_14_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0041 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_15_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0042 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_15_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0043 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_15_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0044 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_15_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0045 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_16_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0046 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_16_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0047 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_16_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0048 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_16_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0049 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_17_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_17_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_17_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_17_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_18_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_18_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x004F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_18_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0050 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_18_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0051 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_19_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0052 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_19_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0053 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_19_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0054 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_19_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0055 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_20_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0056 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_20_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0057 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_20_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0058 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_20_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0059 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_21_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_21_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_21_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_21_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_22_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_22_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x005F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_22_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0060 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_22_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0061 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_23_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0062 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_23_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0063 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_23_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0064 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_23_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0065 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_24_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0066 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_24_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0067 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_24_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0068 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_24_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0069 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_25_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x006A ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: GROUP_ONLY
            Object::updatefields[ PLAYER_QUEST_LOG_25_2                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x006B ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_25_3                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x006C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_QUEST_LOG_25_4                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x006D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x006E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x0070 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x007C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x007D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x007E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x0080 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x008C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x008D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x008E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x0090 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x009C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x009D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x009E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00A0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00AC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00AD ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x00AE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00B0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00BC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00BD ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x00BE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00C0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00CC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00CD ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x00CE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00D0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00DC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00DD ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x00DE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00E0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00EC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00ED ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_CREATOR            ] = UpdateField(  mv[TYPEID_UNIT] + 0x00EE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_0                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x00F0 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_PROPERTIES         ] = UpdateField(  mv[TYPEID_UNIT] + 0x00FC ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_PAD                ] = UpdateField(  mv[TYPEID_UNIT] + 0x00FD ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x00FE ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0100 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x010C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x010D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x010E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0110 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x011C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x011D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x011E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0120 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x012C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x012D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x012E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0130 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x013C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x013D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x013E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0140 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x014C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x014D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x014E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0150 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x015C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x015D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x015E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0160 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x016C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x016D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x016E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0170 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x017C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x017D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x017E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0180 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x018C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x018D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_CREATOR           ] = UpdateField(  mv[TYPEID_UNIT] + 0x018E ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_0                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0190 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_PROPERTIES        ] = UpdateField(  mv[TYPEID_UNIT] + 0x019C ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_PAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x019D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_CHOSEN_TITLE                      ] = UpdateField(  mv[TYPEID_UNIT] + 0x019E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ PLAYER_FIELD_PAD_0                       ] = UpdateField(  mv[TYPEID_UNIT] + 0x019F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: NONE
            Object::updatefields[ PLAYER_FIELD_INV_SLOT_HEAD               ] = UpdateField(  mv[TYPEID_UNIT] + 0x01A0 ,  UF_UINT32 );  // Size: 46, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_PACK_SLOT_1                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x01CE ,  UF_UINT32 );  // Size: 32, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BANK_SLOT_1                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x01EE ,  UF_UINT32 );  // Size: 56, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BANKBAG_SLOT_1              ] = UpdateField(  mv[TYPEID_UNIT] + 0x0226 ,  UF_UINT32 );  // Size: 14, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_VENDORBUYBACK_SLOT_1        ] = UpdateField(  mv[TYPEID_UNIT] + 0x0234 ,  UF_UINT32 );  // Size: 24, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_KEYRING_SLOT_1              ] = UpdateField(  mv[TYPEID_UNIT] + 0x024C ,  UF_UINT32 );  // Size: 64, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_VANITYPET_SLOT_1            ] = UpdateField(  mv[TYPEID_UNIT] + 0x028C ,  UF_UINT32 );  // Size: 36, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_FARSIGHT                          ] = UpdateField(  mv[TYPEID_UNIT] + 0x02B0 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER__FIELD_KNOWN_TITLES               ] = UpdateField(  mv[TYPEID_UNIT] + 0x02B2 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PRIVATE
            Object::updatefields[ PLAYER_XP                                ] = UpdateField(  mv[TYPEID_UNIT] + 0x02B4 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_NEXT_LEVEL_XP                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x02B5 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_SKILL_INFO_1_1                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x02B6 ,  UF_UINT32 );  // Size: 384, Type: TWO_SHORT, Flags: PRIVATE
            Object::updatefields[ PLAYER_CHARACTER_POINTS1                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0436 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_CHARACTER_POINTS2                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x0437 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_TRACK_CREATURES                   ] = UpdateField(  mv[TYPEID_UNIT] + 0x0438 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_TRACK_RESOURCES                   ] = UpdateField(  mv[TYPEID_UNIT] + 0x0439 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_BLOCK_PERCENTAGE                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x043A ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_DODGE_PERCENTAGE                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x043B ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_PARRY_PERCENTAGE                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x043C ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_EXPERTISE                         ] = UpdateField(  mv[TYPEID_UNIT] + 0x043D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_OFFHAND_EXPERTISE                 ] = UpdateField(  mv[TYPEID_UNIT] + 0x043E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_CRIT_PERCENTAGE                   ] = UpdateField(  mv[TYPEID_UNIT] + 0x043F ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_RANGED_CRIT_PERCENTAGE            ] = UpdateField(  mv[TYPEID_UNIT] + 0x0440 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_OFFHAND_CRIT_PERCENTAGE           ] = UpdateField(  mv[TYPEID_UNIT] + 0x0441 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_SPELL_CRIT_PERCENTAGE1            ] = UpdateField(  mv[TYPEID_UNIT] + 0x0442 ,  UF_UINT32 );  // Size: 7, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_SHIELD_BLOCK                      ] = UpdateField(  mv[TYPEID_UNIT] + 0x0449 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_EXPLORED_ZONES_1                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x044A ,  UF_UINT32 );  // Size: 128, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_REST_STATE_EXPERIENCE             ] = UpdateField(  mv[TYPEID_UNIT] + 0x04CA ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_COINAGE                     ] = UpdateField(  mv[TYPEID_UNIT] + 0x04CB ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_POS         ] = UpdateField(  mv[TYPEID_UNIT] + 0x04CC ,  UF_UINT32 );  // Size: 7, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_NEG         ] = UpdateField(  mv[TYPEID_UNIT] + 0x04D3 ,  UF_UINT32 );  // Size: 7, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_PCT         ] = UpdateField(  mv[TYPEID_UNIT] + 0x04DA ,  UF_UINT32 );  // Size: 7, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_HEALING_DONE_POS        ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E1 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_TARGET_RESISTANCE       ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E2 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E3 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BYTES                       ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E4 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_AMMO_ID                           ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E5 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_SELF_RES_SPELL                    ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E6 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_PVP_MEDALS                  ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E7 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BUYBACK_PRICE_1             ] = UpdateField(  mv[TYPEID_UNIT] + 0x04E8 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BUYBACK_TIMESTAMP_1         ] = UpdateField(  mv[TYPEID_UNIT] + 0x04F4 ,  UF_UINT32 );  // Size: 12, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_KILLS                       ] = UpdateField(  mv[TYPEID_UNIT] + 0x0500 ,  UF_UINT32 );  // Size: 1, Type: TWO_SHORT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_TODAY_CONTRIBUTION          ] = UpdateField(  mv[TYPEID_UNIT] + 0x0501 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_YESTERDAY_CONTRIBUTION      ] = UpdateField(  mv[TYPEID_UNIT] + 0x0502 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_LIFETIME_HONORBALE_KILLS    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0503 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_BYTES2                      ] = UpdateField(  mv[TYPEID_UNIT] + 0x0504 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_WATCHED_FACTION_INDEX       ] = UpdateField(  mv[TYPEID_UNIT] + 0x0505 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_COMBAT_RATING_1             ] = UpdateField(  mv[TYPEID_UNIT] + 0x0506 ,  UF_UINT32 );  // Size: 24, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_ARENA_TEAM_INFO_1_1         ] = UpdateField(  mv[TYPEID_UNIT] + 0x051E ,  UF_UINT32 );  // Size: 18, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_HONOR_CURRENCY              ] = UpdateField(  mv[TYPEID_UNIT] + 0x0530 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_ARENA_CURRENCY              ] = UpdateField(  mv[TYPEID_UNIT] + 0x0531 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_MANA_REGEN              ] = UpdateField(  mv[TYPEID_UNIT] + 0x0532 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT    ] = UpdateField(  mv[TYPEID_UNIT] + 0x0533 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_MAX_LEVEL                   ] = UpdateField(  mv[TYPEID_UNIT] + 0x0534 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PRIVATE
            Object::updatefields[ PLAYER_FIELD_DAILY_QUESTS_1              ] = UpdateField(  mv[TYPEID_UNIT] + 0x0535 ,  UF_UINT32 );  // Size: 25, Type: INT, Flags: PRIVATE

            Object::updatefields[ OBJECT_FIELD_CREATED_BY                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_DISPLAYID                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_FLAGS                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_ROTATION                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 );  // Size: 4, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_STATE                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_POS_X                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_POS_Y                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_POS_Z                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000B ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_FACING                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_DYN_FLAGS                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000D ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: DYNAMIC
            Object::updatefields[ GAMEOBJECT_FACTION                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_TYPE_ID                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x000F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_LEVEL                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_ARTKIT                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0011 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ GAMEOBJECT_ANIMPROGRESS                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: DYNAMIC
            Object::updatefields[ GAMEOBJECT_PADDING                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: NONE

            Object::updatefields[ DYNAMICOBJECT_CASTER                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_BYTES                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_SPELLID                    ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_RADIUS                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_POS_X                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_POS_Y                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_POS_Z                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0007 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_FACING                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ DYNAMICOBJECT_CASTTIME                   ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC

            Object::updatefields[ CORPSE_FIELD_OWNER                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_PARTY                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32 );  // Size: 2, Type: LONG, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_FACING                      ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_POS_X                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_POS_Y                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_POS_Z                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0007 ,  UF_UINT32 );  // Size: 1, Type: FLOAT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_DISPLAY_ID                  ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_ITEM                        ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32 );  // Size: 19, Type: INT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_BYTES_1                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_BYTES_2                     ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32 );  // Size: 1, Type: BYTES, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_GUILD                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_FLAGS                       ] = UpdateField(  mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: PUBLIC
            Object::updatefields[ CORPSE_FIELD_DYNAMIC_FLAGS               ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0020 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: DYNAMIC
            Object::updatefields[ CORPSE_FIELD_PAD                         ] = UpdateField(  mv[TYPEID_OBJECT] + 0x0021 ,  UF_UINT32 );  // Size: 1, Type: INT, Flags: NONE

            break;
        }
        case CLIENT_WOTLK://3.3.5
        {
            uint32 mv[]={
                OBJECT_END,
                ITEM_END,
                CONTAINER_END,
                UNIT_END,
                PLAYER_END,
                GAMEOBJECT_END,
                DYNAMICOBJECT_END,
                CORPSE_END
            };
            memcpy(Object::maxvalues,mv,sizeof(mv));
          
            Object::updatefields[ OBJECT_FIELD_GUID                       ] = UpdateField(                     0x0000 ,  UF_UINT64);
            Object::updatefields[ OBJECT_FIELD_GUID_LOW                   ] = UpdateField(                     0x0000 ,  UF_UINT32); 
            Object::updatefields[ OBJECT_FIELD_GUID_HIGH                  ] = UpdateField(                     0x0001 ,  UF_UINT32); 
            Object::updatefields[ OBJECT_FIELD_TYPE                       ] = UpdateField(                     0x0002 ,  UF_UINT32);
            Object::updatefields[ OBJECT_FIELD_ENTRY                      ] = UpdateField(                     0x0003 ,  UF_UINT32);
            Object::updatefields[ OBJECT_FIELD_SCALE_X                    ] = UpdateField(                     0x0004 ,   UF_FLOAT);
            Object::updatefields[ OBJECT_FIELD_PADDING                    ] = UpdateField(                     0x0005 ,  UF_UINT32);

            Object::updatefields[ ITEM_FIELD_OWNER                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_CONTAINED                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_CREATOR                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_GIFTCREATOR                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64);
            Object::updatefields[ ITEM_FIELD_STACK_COUNT                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_DURATION                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_SPELL_CHARGES                ] = UpdateField( mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_FLAGS                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x000F ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_1_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_1_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_2_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_2_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0015 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_3_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0016 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_3_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0018 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_4_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0019 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_4_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_5_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_5_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_6_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_6_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0021 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_7_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0022 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_7_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0024 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_8_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0025 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_8_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0027 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_9_1              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0028 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_9_3              ] = UpdateField( mv[TYPEID_OBJECT] + 0x002A ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_10_1             ] = UpdateField( mv[TYPEID_OBJECT] + 0x002B ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_10_3             ] = UpdateField( mv[TYPEID_OBJECT] + 0x002D ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_11_1             ] = UpdateField( mv[TYPEID_OBJECT] + 0x002E ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_11_3             ] = UpdateField( mv[TYPEID_OBJECT] + 0x0030 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_12_1             ] = UpdateField( mv[TYPEID_OBJECT] + 0x0031 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_ENCHANTMENT_12_3             ] = UpdateField( mv[TYPEID_OBJECT] + 0x0033 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_PROPERTY_SEED                ] = UpdateField( mv[TYPEID_OBJECT] + 0x0034 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_RANDOM_PROPERTIES_ID         ] = UpdateField( mv[TYPEID_OBJECT] + 0x0035 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_DURABILITY                   ] = UpdateField( mv[TYPEID_OBJECT] + 0x0036 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_MAXDURABILITY                ] = UpdateField( mv[TYPEID_OBJECT] + 0x0037 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_CREATE_PLAYED_TIME           ] = UpdateField( mv[TYPEID_OBJECT] + 0x0038 ,  UF_UINT32);
            Object::updatefields[ ITEM_FIELD_PAD                          ] = UpdateField( mv[TYPEID_OBJECT] + 0x0039 ,  UF_UINT32);

            Object::updatefields[ CONTAINER_FIELD_NUM_SLOTS               ] = UpdateField(   mv[TYPEID_ITEM] + 0x0000 ,  UF_UINT32);
            Object::updatefields[ CONTAINER_ALIGN_PAD                     ] = UpdateField(   mv[TYPEID_ITEM] + 0x0001 ,  UF_UINT32);
            Object::updatefields[ CONTAINER_FIELD_SLOT_1                  ] = UpdateField(   mv[TYPEID_ITEM] + 0x0002 ,  UF_UINT64);

            Object::updatefields[ UNIT_FIELD_CHARM                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_SUMMON                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_CRITTER                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_CHARMEDBY                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0006 ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_SUMMONEDBY                   ] = UpdateField( mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_CREATEDBY                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_TARGET                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x000C ,  UF_UINT64);
            Object::updatefields[ UNIT_FIELD_CHANNEL_OBJECT               ] = UpdateField( mv[TYPEID_OBJECT] + 0x000E ,  UF_UINT64);
            Object::updatefields[ UNIT_CHANNEL_SPELL                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0010 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BYTES_0                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0011 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_HEALTH                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0012 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER1                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0013 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER2                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0014 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER3                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0015 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER4                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0016 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER5                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0017 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER6                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0018 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER7                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0019 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXHEALTH                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001A ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER1                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER2                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER3                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER4                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001E ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER5                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x001F ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER6                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0020 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MAXPOWER7                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0021 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0022 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER] = UpdateField( mv[TYPEID_OBJECT] + 0x0029 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_LEVEL                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0030 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_FACTIONTEMPLATE              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0031 ,  UF_UINT32);
            Object::updatefields[ UNIT_VIRTUAL_ITEM_SLOT_ID               ] = UpdateField( mv[TYPEID_OBJECT] + 0x0032 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_FLAGS                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0035 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_FLAGS_2                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0036 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_AURASTATE                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0037 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BASEATTACKTIME               ] = UpdateField( mv[TYPEID_OBJECT] + 0x0038 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RANGEDATTACKTIME             ] = UpdateField( mv[TYPEID_OBJECT] + 0x003A ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BOUNDINGRADIUS               ] = UpdateField( mv[TYPEID_OBJECT] + 0x003B ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_COMBATREACH                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x003C ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_DISPLAYID                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x003D ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NATIVEDISPLAYID              ] = UpdateField( mv[TYPEID_OBJECT] + 0x003E ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MOUNTDISPLAYID               ] = UpdateField( mv[TYPEID_OBJECT] + 0x003F ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_MINDAMAGE                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0040 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MAXDAMAGE                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0041 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MINOFFHANDDAMAGE             ] = UpdateField( mv[TYPEID_OBJECT] + 0x0042 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MAXOFFHANDDAMAGE             ] = UpdateField( mv[TYPEID_OBJECT] + 0x0043 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_BYTES_1                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0044 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_PETNUMBER                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0045 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_PET_NAME_TIMESTAMP           ] = UpdateField( mv[TYPEID_OBJECT] + 0x0046 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_PETEXPERIENCE                ] = UpdateField( mv[TYPEID_OBJECT] + 0x0047 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_PETNEXTLEVELEXP              ] = UpdateField( mv[TYPEID_OBJECT] + 0x0048 ,  UF_UINT32);
            Object::updatefields[ UNIT_DYNAMIC_FLAGS                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0049 ,  UF_UINT32);
            Object::updatefields[ UNIT_MOD_CAST_SPEED                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x004A ,   UF_FLOAT);
            Object::updatefields[ UNIT_CREATED_BY_SPELL                   ] = UpdateField( mv[TYPEID_OBJECT] + 0x004B ,  UF_UINT32);
            Object::updatefields[ UNIT_NPC_FLAGS                          ] = UpdateField( mv[TYPEID_OBJECT] + 0x004C ,  UF_UINT32);
            Object::updatefields[ UNIT_NPC_EMOTESTATE                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x004D ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_STAT0                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x004E ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_STAT1                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x004F ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_STAT2                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0050 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_STAT3                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0051 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_STAT4                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0052 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POSSTAT0                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0053 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POSSTAT1                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0054 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POSSTAT2                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0055 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POSSTAT3                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0056 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POSSTAT4                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0057 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NEGSTAT0                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0058 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NEGSTAT1                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0059 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NEGSTAT2                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x005A ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NEGSTAT3                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x005B ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_NEGSTAT4                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x005C ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RESISTANCES                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x005D ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE   ] = UpdateField( mv[TYPEID_OBJECT] + 0x0064 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE   ] = UpdateField( mv[TYPEID_OBJECT] + 0x006B ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BASE_MANA                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0072 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BASE_HEALTH                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0073 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_BYTES_2                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0074 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER                 ] = UpdateField( mv[TYPEID_OBJECT] + 0x0075 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MODS            ] = UpdateField( mv[TYPEID_OBJECT] + 0x0076 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_ATTACK_POWER_MULTIPLIER      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0077 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER          ] = UpdateField( mv[TYPEID_OBJECT] + 0x0078 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MODS     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0079 ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER] = UpdateField( mv[TYPEID_OBJECT] + 0x007A ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MINRANGEDDAMAGE              ] = UpdateField( mv[TYPEID_OBJECT] + 0x007B ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MAXRANGEDDAMAGE              ] = UpdateField( mv[TYPEID_OBJECT] + 0x007C ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_POWER_COST_MODIFIER          ] = UpdateField( mv[TYPEID_OBJECT] + 0x007D ,  UF_UINT32);
            Object::updatefields[ UNIT_FIELD_POWER_COST_MULTIPLIER        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0084 ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_MAXHEALTHMODIFIER            ] = UpdateField( mv[TYPEID_OBJECT] + 0x008B ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_HOVERHEIGHT                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x008C ,   UF_FLOAT);
            Object::updatefields[ UNIT_FIELD_PADDING                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x008D ,  UF_UINT32);

            Object::updatefields[ PLAYER_DUEL_ARBITER                     ] = UpdateField(   mv[TYPEID_UNIT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ PLAYER_FLAGS                            ] = UpdateField(   mv[TYPEID_UNIT] + 0x0002 ,  UF_UINT32);
            Object::updatefields[ PLAYER_GUILDID                          ] = UpdateField(   mv[TYPEID_UNIT] + 0x0003 ,  UF_UINT32);
            Object::updatefields[ PLAYER_GUILDRANK                        ] = UpdateField(   mv[TYPEID_UNIT] + 0x0004 ,  UF_UINT32);
            Object::updatefields[ PLAYER_BYTES                            ] = UpdateField(   mv[TYPEID_UNIT] + 0x0005 ,  UF_UINT32);
            Object::updatefields[ PLAYER_BYTES_2                          ] = UpdateField(   mv[TYPEID_UNIT] + 0x0006 ,  UF_UINT32);
            Object::updatefields[ PLAYER_BYTES_3                          ] = UpdateField(   mv[TYPEID_UNIT] + 0x0007 ,  UF_UINT32);
            Object::updatefields[ PLAYER_DUEL_TEAM                        ] = UpdateField(   mv[TYPEID_UNIT] + 0x0008 ,  UF_UINT32);
            Object::updatefields[ PLAYER_GUILD_TIMESTAMP                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x0009 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_1_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x000A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_1_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x000B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_1_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x000C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_1_4                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x000E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_2_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x000F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_2_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0010 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_2_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0011 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_2_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0013 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_3_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0014 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_3_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0015 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_3_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0016 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_3_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0018 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_4_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0019 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_4_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x001A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_4_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x001B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_4_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x001D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_5_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x001E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_5_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x001F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_5_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0020 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_5_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0022 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_6_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0023 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_6_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0024 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_6_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0025 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_6_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0027 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_7_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0028 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_7_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0029 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_7_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x002A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_7_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x002C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_8_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x002D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_8_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x002E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_8_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x002F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_8_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0031 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_9_1                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0032 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_9_2                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0033 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_9_3                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0034 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_9_5                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x0036 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_10_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0037 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_10_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0038 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_10_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0039 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_10_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x003B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_11_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x003C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_11_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x003D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_11_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x003E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_11_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0040 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_12_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0041 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_12_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0042 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_12_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0043 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_12_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0045 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_13_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0046 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_13_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0047 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_13_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0048 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_13_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x004A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_14_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x004B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_14_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x004C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_14_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x004D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_14_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x004F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_15_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0050 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_15_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0051 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_15_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0052 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_15_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0054 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_16_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0055 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_16_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0056 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_16_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0057 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_16_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0059 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_17_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x005A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_17_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x005B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_17_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x005C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_17_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x005E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_18_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x005F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_18_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0060 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_18_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0061 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_18_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0063 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_19_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0064 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_19_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0065 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_19_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0066 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_19_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0068 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_20_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0069 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_20_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x006A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_20_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x006B ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_20_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x006D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_21_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x006E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_21_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x006F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_21_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0070 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_21_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0072 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_22_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0073 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_22_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0074 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_22_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0075 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_22_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0077 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_23_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0078 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_23_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0079 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_23_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x007A ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_23_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x007C ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_24_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x007D ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_24_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x007E ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_24_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x007F ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_24_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0081 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_25_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0082 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_25_2                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0083 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_25_3                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0084 ,  UF_UINT32);
            Object::updatefields[ PLAYER_QUEST_LOG_25_5                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0086 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0087 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_1_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0088 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0089 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_2_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x008A ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x008B ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_3_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x008C ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x008D ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_4_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x008E ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x008F ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_5_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0090 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0091 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_6_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0092 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0093 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_7_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0094 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0095 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_8_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0096 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_ENTRYID           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0097 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_9_ENCHANTMENT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0098 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x0099 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_10_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x009A ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x009B ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_11_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x009C ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x009D ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_12_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x009E ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x009F ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_13_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A0 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A1 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_14_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A2 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A3 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_15_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A4 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A5 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_16_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A6 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A7 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_17_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A8 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00A9 ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_18_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AA ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_ENTRYID          ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AB ,  UF_UINT32);
            Object::updatefields[ PLAYER_VISIBLE_ITEM_19_ENCHANTMENT      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AC ,  UF_UINT32);
            Object::updatefields[ PLAYER_CHOSEN_TITLE                     ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AD ,  UF_UINT32);
            Object::updatefields[ PLAYER_FAKE_INEBRIATION                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AE ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_PAD_0                      ] = UpdateField(   mv[TYPEID_UNIT] + 0x00AF ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_INV_SLOT_HEAD              ] = UpdateField(   mv[TYPEID_UNIT] + 0x00B0 ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_PACK_SLOT_1                ] = UpdateField(   mv[TYPEID_UNIT] + 0x00DE ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_BANK_SLOT_1                ] = UpdateField(   mv[TYPEID_UNIT] + 0x00FE ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_BANKBAG_SLOT_1             ] = UpdateField(   mv[TYPEID_UNIT] + 0x0136 ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_VENDORBUYBACK_SLOT_1       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0144 ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_KEYRING_SLOT_1             ] = UpdateField(   mv[TYPEID_UNIT] + 0x015C ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_CURRENCYTOKEN_SLOT_1       ] = UpdateField(   mv[TYPEID_UNIT] + 0x019C ,  UF_UINT64);
            Object::updatefields[ PLAYER_FARSIGHT                         ] = UpdateField(   mv[TYPEID_UNIT] + 0x01DC ,  UF_UINT64);
            Object::updatefields[ PLAYER__FIELD_KNOWN_TITLES              ] = UpdateField(   mv[TYPEID_UNIT] + 0x01DE ,  UF_UINT64);
            Object::updatefields[ PLAYER__FIELD_KNOWN_TITLES1             ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E0 ,  UF_UINT64);
            Object::updatefields[ PLAYER__FIELD_KNOWN_TITLES2             ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E2 ,  UF_UINT64);
            Object::updatefields[ PLAYER_FIELD_KNOWN_CURRENCIES           ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E4 ,  UF_UINT64);
            Object::updatefields[ PLAYER_XP                               ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E6 ,  UF_UINT32);
            Object::updatefields[ PLAYER_NEXT_LEVEL_XP                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E7 ,  UF_UINT32);
            Object::updatefields[ PLAYER_SKILL_INFO_1_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x01E8 ,  UF_UINT32);
            Object::updatefields[ PLAYER_CHARACTER_POINTS1                ] = UpdateField(   mv[TYPEID_UNIT] + 0x0368 ,  UF_UINT32);
            Object::updatefields[ PLAYER_CHARACTER_POINTS2                ] = UpdateField(   mv[TYPEID_UNIT] + 0x0369 ,  UF_UINT32);
            Object::updatefields[ PLAYER_TRACK_CREATURES                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x036A ,  UF_UINT32);
            Object::updatefields[ PLAYER_TRACK_RESOURCES                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x036B ,  UF_UINT32);
            Object::updatefields[ PLAYER_BLOCK_PERCENTAGE                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x036C ,   UF_FLOAT);
            Object::updatefields[ PLAYER_DODGE_PERCENTAGE                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x036D ,   UF_FLOAT);
            Object::updatefields[ PLAYER_PARRY_PERCENTAGE                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x036E ,   UF_FLOAT);
            Object::updatefields[ PLAYER_EXPERTISE                        ] = UpdateField(   mv[TYPEID_UNIT] + 0x036F ,  UF_UINT32);
            Object::updatefields[ PLAYER_OFFHAND_EXPERTISE                ] = UpdateField(   mv[TYPEID_UNIT] + 0x0370 ,  UF_UINT32);
            Object::updatefields[ PLAYER_CRIT_PERCENTAGE                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x0371 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_RANGED_CRIT_PERCENTAGE           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0372 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_OFFHAND_CRIT_PERCENTAGE          ] = UpdateField(   mv[TYPEID_UNIT] + 0x0373 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_SPELL_CRIT_PERCENTAGE1           ] = UpdateField(   mv[TYPEID_UNIT] + 0x0374 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_SHIELD_BLOCK                     ] = UpdateField(   mv[TYPEID_UNIT] + 0x037B ,  UF_UINT32);
            Object::updatefields[ PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE     ] = UpdateField(   mv[TYPEID_UNIT] + 0x037C ,   UF_FLOAT);
            Object::updatefields[ PLAYER_EXPLORED_ZONES_1                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x037D ,  UF_UINT32);
            Object::updatefields[ PLAYER_REST_STATE_EXPERIENCE            ] = UpdateField(   mv[TYPEID_UNIT] + 0x03FD ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_COINAGE                    ] = UpdateField(   mv[TYPEID_UNIT] + 0x03FE ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_POS        ] = UpdateField(   mv[TYPEID_UNIT] + 0x03FF ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_NEG        ] = UpdateField(   mv[TYPEID_UNIT] + 0x0406 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_DAMAGE_DONE_PCT        ] = UpdateField(   mv[TYPEID_UNIT] + 0x040D ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_HEALING_DONE_POS       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0414 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_HEALING_PCT            ] = UpdateField(   mv[TYPEID_UNIT] + 0x0415 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_FIELD_MOD_HEALING_DONE_PCT       ] = UpdateField(   mv[TYPEID_UNIT] + 0x0416 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_FIELD_MOD_TARGET_RESISTANCE      ] = UpdateField(   mv[TYPEID_UNIT] + 0x0417 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE] = UpdateField(mv[TYPEID_UNIT] + 0x0418 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_BYTES                      ] = UpdateField(   mv[TYPEID_UNIT] + 0x0419 ,  UF_UINT32);
            Object::updatefields[ PLAYER_AMMO_ID                          ] = UpdateField(   mv[TYPEID_UNIT] + 0x041A ,  UF_UINT32);
            Object::updatefields[ PLAYER_SELF_RES_SPELL                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x041B ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_PVP_MEDALS                 ] = UpdateField(   mv[TYPEID_UNIT] + 0x041C ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_BUYBACK_PRICE_1            ] = UpdateField(   mv[TYPEID_UNIT] + 0x041D ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_BUYBACK_TIMESTAMP_1        ] = UpdateField(   mv[TYPEID_UNIT] + 0x0429 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_KILLS                      ] = UpdateField(   mv[TYPEID_UNIT] + 0x0435 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_TODAY_CONTRIBUTION         ] = UpdateField(   mv[TYPEID_UNIT] + 0x0436 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_YESTERDAY_CONTRIBUTION     ] = UpdateField(   mv[TYPEID_UNIT] + 0x0437 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_LIFETIME_HONORBALE_KILLS   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0438 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_BYTES2                     ] = UpdateField(   mv[TYPEID_UNIT] + 0x0439 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_WATCHED_FACTION_INDEX      ] = UpdateField(   mv[TYPEID_UNIT] + 0x043A ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_COMBAT_RATING_1            ] = UpdateField(   mv[TYPEID_UNIT] + 0x043B ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_ARENA_TEAM_INFO_1_1        ] = UpdateField(   mv[TYPEID_UNIT] + 0x0454 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_HONOR_CURRENCY             ] = UpdateField(   mv[TYPEID_UNIT] + 0x0469 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_ARENA_CURRENCY             ] = UpdateField(   mv[TYPEID_UNIT] + 0x046A ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_MAX_LEVEL                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x046B ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_DAILY_QUESTS_1             ] = UpdateField(   mv[TYPEID_UNIT] + 0x046C ,  UF_UINT32);
            Object::updatefields[ PLAYER_RUNE_REGEN_1                     ] = UpdateField(   mv[TYPEID_UNIT] + 0x0485 ,   UF_FLOAT);
            Object::updatefields[ PLAYER_NO_REAGENT_COST_1                ] = UpdateField(   mv[TYPEID_UNIT] + 0x0489 ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_GLYPH_SLOTS_1              ] = UpdateField(   mv[TYPEID_UNIT] + 0x048C ,  UF_UINT32);
            Object::updatefields[ PLAYER_FIELD_GLYPHS_1                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0492 ,  UF_UINT32);
            Object::updatefields[ PLAYER_GLYPHS_ENABLED                   ] = UpdateField(   mv[TYPEID_UNIT] + 0x0498 ,  UF_UINT32);
            Object::updatefields[ PLAYER_PET_SPELL_POWER                  ] = UpdateField(   mv[TYPEID_UNIT] + 0x0499 ,  UF_UINT32);
            Object::updatefields[ OBJECT_FIELD_CREATED_BY                 ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ GAMEOBJECT_DISPLAYID                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32);
            Object::updatefields[ GAMEOBJECT_FLAGS                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32);
            Object::updatefields[ GAMEOBJECT_PARENTROTATION               ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,   UF_FLOAT);
            Object::updatefields[ GAMEOBJECT_DYNAMIC                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0008 ,  UF_UINT32);
            Object::updatefields[ GAMEOBJECT_FACTION                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0009 ,  UF_UINT32);
            Object::updatefields[ GAMEOBJECT_LEVEL                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x000A ,  UF_UINT32);
            Object::updatefields[ GAMEOBJECT_BYTES_1                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x000B ,  UF_UINT32);
            Object::updatefields[ DYNAMICOBJECT_CASTER                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ DYNAMICOBJECT_BYTES                     ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT32);
            Object::updatefields[ DYNAMICOBJECT_SPELLID                   ] = UpdateField( mv[TYPEID_OBJECT] + 0x0003 ,  UF_UINT32);
            Object::updatefields[ DYNAMICOBJECT_RADIUS                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,   UF_FLOAT);
            Object::updatefields[ DYNAMICOBJECT_CASTTIME                  ] = UpdateField( mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_OWNER                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0000 ,  UF_UINT64);
            Object::updatefields[ CORPSE_FIELD_PARTY                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x0002 ,  UF_UINT64);
            Object::updatefields[ CORPSE_FIELD_DISPLAY_ID                 ] = UpdateField( mv[TYPEID_OBJECT] + 0x0004 ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_ITEM                       ] = UpdateField( mv[TYPEID_OBJECT] + 0x0005 ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_BYTES_1                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0018 ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_BYTES_2                    ] = UpdateField( mv[TYPEID_OBJECT] + 0x0019 ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_GUILD                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x001A ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_FLAGS                      ] = UpdateField( mv[TYPEID_OBJECT] + 0x001B ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_DYNAMIC_FLAGS              ] = UpdateField( mv[TYPEID_OBJECT] + 0x001C ,  UF_UINT32);
            Object::updatefields[ CORPSE_FIELD_PAD                        ] = UpdateField( mv[TYPEID_OBJECT] + 0x001D ,  UF_UINT32);
          
          
            break;
        }
    }
}
