* Fix UpdateData for 2.4.3

This commit is contained in:
shlainn 2011-09-25 22:59:36 +02:00
parent 5aa9505a23
commit 8ca9e8949f
3 changed files with 541 additions and 7 deletions

View File

@ -40,7 +40,7 @@ void WorldSession::_HandleUpdateObjectOpcode(WorldPacket& recvPacket)
uint32 usize, ublocks, readblocks=0; uint32 usize, ublocks, readblocks=0;
uint64 uguid; uint64 uguid;
recvPacket >> ublocks; // >> hasTransport; recvPacket >> ublocks; // >> hasTransport;
if(GetInstance()->GetConf()->client == CLIENT_CLASSIC_WOW) if(GetInstance()->GetConf()->client <= CLIENT_TBC)
recvPacket >> hasTransport; recvPacket >> hasTransport;
logdev("UpdateObject: blocks = %u", ublocks); logdev("UpdateObject: blocks = %u", ublocks);
@ -266,7 +266,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
logerror("MovementUpdate for unknown object "I64FMT" typeid=%u",uguid,objtypeid); logerror("MovementUpdate for unknown object "I64FMT" typeid=%u",uguid,objtypeid);
} }
if(client > CLIENT_CLASSIC_WOW) if(client > CLIENT_TBC)
recvPacket >> flags; recvPacket >> flags;
else else
{ {
@ -277,11 +277,17 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
if(flags & UPDATEFLAG_LIVING) if(flags & UPDATEFLAG_LIVING)
{ {
recvPacket >> mi.flags; recvPacket >> mi.flags;
if(client > CLIENT_CLASSIC_WOW) if(client == CLIENT_TBC)
{
uint8 tempUnkFlags;
recvPacket >> tempUnkFlags;
mi.unkFlags = tempUnkFlags;
}
if(client == CLIENT_WOTLK)
recvPacket >> mi.unkFlags; recvPacket >> mi.unkFlags;
recvPacket>> mi.time; recvPacket>> mi.time;
logdev("MovementUpdate: TypeID=%u GUID="I64FMT" pObj=%X flags=%u mi.flags=%u",objtypeid,uguid,obj,flags,mi.flags); logdev("MovementUpdate: TypeID=%u GUID="I64FMT" pObj=%X flags=%x mi.flags=%x",objtypeid,uguid,obj,flags,mi.flags);
recvPacket >> mi.x >> mi.y >> mi.z >> mi.o; recvPacket >> mi.x >> mi.y >> mi.z >> mi.o;
logdev("FLOATS: x=%f y=%f z=%f o=%f",mi.x, mi.y, mi.z ,mi.o); logdev("FLOATS: x=%f y=%f z=%f o=%f",mi.x, mi.y, mi.z ,mi.o);
@ -322,7 +328,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
if(client > CLIENT_CLASSIC_WOW) if(client > CLIENT_CLASSIC_WOW)
recvPacket >> speedFly >> speedFlyBack; // fly added in 2.0.x recvPacket >> speedFly >> speedFlyBack; // fly added in 2.0.x
recvPacket >> speedTurn; recvPacket >> speedTurn;
if(client > CLIENT_CLASSIC_WOW) if(client > CLIENT_TBC)
recvPacket >> speedPitchRate; recvPacket >> speedPitchRate;
logdev("MovementUpdate: Got speeds, walk=%f run=%f turn=%f", speedWalk, speedRun, speedTurn); logdev("MovementUpdate: Got speeds, walk=%f run=%f turn=%f", speedWalk, speedRun, speedTurn);
if(u) if(u)

View File

@ -294,7 +294,428 @@ void WorldSession::_SetupObjectFields()
} }
case CLIENT_TBC: //2.4.3 case CLIENT_TBC: //2.4.3
{ {
break; //TODO: ADD DATA 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 case CLIENT_WOTLK://3.3.5
{ {

View File

@ -20,11 +20,18 @@ enum UpdateFieldLimits
DYNAMICOBJECT_END = OBJECT_END + 0x0006, DYNAMICOBJECT_END = OBJECT_END + 0x0006,
CORPSE_END = OBJECT_END + 0x001E, CORPSE_END = OBJECT_END + 0x001E,
ITEM_END_8606 = OBJECT_END + 0x0036,
UNIT_END_8606 = OBJECT_END + 0x00E4,
PLAYER_END_8606 = UNIT_END_8606 + 0x054E,
GAMEOBJECT_END_8606 = OBJECT_END + 0x0014,
DYNAMICOBJECT_END_8606 = OBJECT_END + 0x000A,
CORPSE_END_8606 = OBJECT_END + 0x0022,
ITEM_END_6005 = OBJECT_END + 0x002A, ITEM_END_6005 = OBJECT_END + 0x002A,
CONTAINER_END_6005 = ITEM_END_6005 + 0x003A, CONTAINER_END_6005 = ITEM_END_6005 + 0x003A,
UNIT_END_6005 = OBJECT_END + 0x00B6, UNIT_END_6005 = OBJECT_END + 0x00B6,
PLAYER_END_6005 = UNIT_END_6005 + 0x0446, PLAYER_END_6005 = UNIT_END_6005 + 0x0446,
GAMEOBJECT_END_6005 = OBJECT_END + 0x0014, GAMEOBJECT_END_6005 = OBJECT_END + 0x0014
}; };
@ -280,6 +287,8 @@ enum UpdateFieldName
PLAYER_FIELD_MOD_HEALING_DONE_PCT, PLAYER_FIELD_MOD_HEALING_DONE_PCT,
PLAYER_FIELD_MOD_HEALING_DONE_POS, PLAYER_FIELD_MOD_HEALING_DONE_POS,
PLAYER_FIELD_MOD_HEALING_PCT, PLAYER_FIELD_MOD_HEALING_PCT,
PLAYER_FIELD_MOD_MANA_REGEN,
PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT,
PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE, PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE,
PLAYER_FIELD_MOD_TARGET_RESISTANCE, PLAYER_FIELD_MOD_TARGET_RESISTANCE,
PLAYER_FIELD_NEGSTAT0, PLAYER_FIELD_NEGSTAT0,
@ -302,6 +311,7 @@ enum UpdateFieldName
PLAYER_FIELD_THIS_WEEK_CONTRIBUTION, PLAYER_FIELD_THIS_WEEK_CONTRIBUTION,
PLAYER_FIELD_THIS_WEEK_KILLS, PLAYER_FIELD_THIS_WEEK_KILLS,
PLAYER_FIELD_TODAY_CONTRIBUTION, PLAYER_FIELD_TODAY_CONTRIBUTION,
PLAYER_FIELD_VANITYPET_SLOT_1,
PLAYER_FIELD_VENDORBUYBACK_SLOT_1, PLAYER_FIELD_VENDORBUYBACK_SLOT_1,
PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST, PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST,
PLAYER_FIELD_WATCHED_FACTION_INDEX, PLAYER_FIELD_WATCHED_FACTION_INDEX,
@ -421,6 +431,30 @@ enum UpdateFieldName
PLAYER_QUEST_LOG_LAST_1, PLAYER_QUEST_LOG_LAST_1,
PLAYER_QUEST_LOG_LAST_2, PLAYER_QUEST_LOG_LAST_2,
PLAYER_QUEST_LOG_LAST_3, PLAYER_QUEST_LOG_LAST_3,
PLAYER_QUEST_LOG_2_4,
PLAYER_QUEST_LOG_3_4,
PLAYER_QUEST_LOG_4_4,
PLAYER_QUEST_LOG_5_4,
PLAYER_QUEST_LOG_6_4,
PLAYER_QUEST_LOG_7_4,
PLAYER_QUEST_LOG_8_4,
PLAYER_QUEST_LOG_9_4,
PLAYER_QUEST_LOG_10_4,
PLAYER_QUEST_LOG_11_4,
PLAYER_QUEST_LOG_12_4,
PLAYER_QUEST_LOG_13_4,
PLAYER_QUEST_LOG_14_4,
PLAYER_QUEST_LOG_15_4,
PLAYER_QUEST_LOG_16_4,
PLAYER_QUEST_LOG_17_4,
PLAYER_QUEST_LOG_18_4,
PLAYER_QUEST_LOG_19_4,
PLAYER_QUEST_LOG_20_4,
PLAYER_QUEST_LOG_21_4,
PLAYER_QUEST_LOG_22_4,
PLAYER_QUEST_LOG_23_4,
PLAYER_QUEST_LOG_24_4,
PLAYER_QUEST_LOG_25_4,
PLAYER_RANGED_CRIT_PERCENTAGE, PLAYER_RANGED_CRIT_PERCENTAGE,
PLAYER_REST_STATE_EXPERIENCE, PLAYER_REST_STATE_EXPERIENCE,
PLAYER_RUNE_REGEN_1, PLAYER_RUNE_REGEN_1,
@ -476,6 +510,79 @@ enum UpdateFieldName
PLAYER_VISIBLE_ITEM_LAST_0, PLAYER_VISIBLE_ITEM_LAST_0,
PLAYER_VISIBLE_ITEM_LAST_CREATOR, PLAYER_VISIBLE_ITEM_LAST_CREATOR,
PLAYER_VISIBLE_ITEM_LAST_PAD, PLAYER_VISIBLE_ITEM_LAST_PAD,
PLAYER_VISIBLE_ITEM_2_CREATOR,
PLAYER_VISIBLE_ITEM_2_0,
PLAYER_VISIBLE_ITEM_2_PROPERTIES,
PLAYER_VISIBLE_ITEM_2_PAD,
PLAYER_VISIBLE_ITEM_3_CREATOR,
PLAYER_VISIBLE_ITEM_3_0,
PLAYER_VISIBLE_ITEM_3_PROPERTIES,
PLAYER_VISIBLE_ITEM_3_PAD,
PLAYER_VISIBLE_ITEM_4_CREATOR,
PLAYER_VISIBLE_ITEM_4_0,
PLAYER_VISIBLE_ITEM_4_PROPERTIES,
PLAYER_VISIBLE_ITEM_4_PAD,
PLAYER_VISIBLE_ITEM_5_CREATOR,
PLAYER_VISIBLE_ITEM_5_0,
PLAYER_VISIBLE_ITEM_5_PROPERTIES,
PLAYER_VISIBLE_ITEM_5_PAD,
PLAYER_VISIBLE_ITEM_6_CREATOR,
PLAYER_VISIBLE_ITEM_6_0,
PLAYER_VISIBLE_ITEM_6_PROPERTIES,
PLAYER_VISIBLE_ITEM_6_PAD,
PLAYER_VISIBLE_ITEM_7_CREATOR,
PLAYER_VISIBLE_ITEM_7_0,
PLAYER_VISIBLE_ITEM_7_PROPERTIES,
PLAYER_VISIBLE_ITEM_7_PAD,
PLAYER_VISIBLE_ITEM_8_CREATOR,
PLAYER_VISIBLE_ITEM_8_0,
PLAYER_VISIBLE_ITEM_8_PROPERTIES,
PLAYER_VISIBLE_ITEM_8_PAD,
PLAYER_VISIBLE_ITEM_9_CREATOR,
PLAYER_VISIBLE_ITEM_9_0,
PLAYER_VISIBLE_ITEM_9_PROPERTIES,
PLAYER_VISIBLE_ITEM_9_PAD,
PLAYER_VISIBLE_ITEM_10_CREATOR,
PLAYER_VISIBLE_ITEM_10_0,
PLAYER_VISIBLE_ITEM_10_PROPERTIES,
PLAYER_VISIBLE_ITEM_10_PAD,
PLAYER_VISIBLE_ITEM_11_CREATOR,
PLAYER_VISIBLE_ITEM_11_0,
PLAYER_VISIBLE_ITEM_11_PROPERTIES,
PLAYER_VISIBLE_ITEM_11_PAD,
PLAYER_VISIBLE_ITEM_12_CREATOR,
PLAYER_VISIBLE_ITEM_12_0,
PLAYER_VISIBLE_ITEM_12_PROPERTIES,
PLAYER_VISIBLE_ITEM_12_PAD,
PLAYER_VISIBLE_ITEM_13_CREATOR,
PLAYER_VISIBLE_ITEM_13_0,
PLAYER_VISIBLE_ITEM_13_PROPERTIES,
PLAYER_VISIBLE_ITEM_13_PAD,
PLAYER_VISIBLE_ITEM_14_CREATOR,
PLAYER_VISIBLE_ITEM_14_0,
PLAYER_VISIBLE_ITEM_14_PROPERTIES,
PLAYER_VISIBLE_ITEM_14_PAD,
PLAYER_VISIBLE_ITEM_15_CREATOR,
PLAYER_VISIBLE_ITEM_15_0,
PLAYER_VISIBLE_ITEM_15_PROPERTIES,
PLAYER_VISIBLE_ITEM_15_PAD,
PLAYER_VISIBLE_ITEM_16_CREATOR,
PLAYER_VISIBLE_ITEM_16_0,
PLAYER_VISIBLE_ITEM_16_PROPERTIES,
PLAYER_VISIBLE_ITEM_16_PAD,
PLAYER_VISIBLE_ITEM_17_CREATOR,
PLAYER_VISIBLE_ITEM_17_0,
PLAYER_VISIBLE_ITEM_17_PROPERTIES,
PLAYER_VISIBLE_ITEM_17_PAD,
PLAYER_VISIBLE_ITEM_18_CREATOR,
PLAYER_VISIBLE_ITEM_18_0,
PLAYER_VISIBLE_ITEM_18_PROPERTIES,
PLAYER_VISIBLE_ITEM_18_PAD,
PLAYER_VISIBLE_ITEM_19_CREATOR,
PLAYER_VISIBLE_ITEM_19_0,
PLAYER_VISIBLE_ITEM_19_PROPERTIES,
PLAYER_VISIBLE_ITEM_19_PAD,
PLAYER_VISIBLE_ITEM_LAST_PROPERTIES, PLAYER_VISIBLE_ITEM_LAST_PROPERTIES,
PLAYER_XP, PLAYER_XP,