/******************************************************************************* * Copyright (C) 2013 JMaNGOS <http://jmangos.org/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ package org.jmangos.commons.update; import static org.jmangos.commons.network.model.UpdateFieldType.BYTES; import static org.jmangos.commons.network.model.UpdateFieldType.FLOAT; import static org.jmangos.commons.network.model.UpdateFieldType.INT; import static org.jmangos.commons.network.model.UpdateFieldType.LONG; import static org.jmangos.commons.network.model.UpdateFieldType.TWO; import static org.jmangos.commons.update.ObjectFields.OBJECT_END; import org.jmangos.commons.network.model.UpdateField; import org.jmangos.commons.network.model.UpdateFieldType; /** * The Class UnitField. */ public enum UnitField implements UpdateField { /** * The UNIT_FIELD_CHARM Flags: PUBLIC */ UNIT_FIELD_CHARM(OBJECT_END + 0x0000, 2, LONG), /** * The UNIT_FIELD_SUMMON Flags: PUBLIC */ UNIT_FIELD_SUMMON(OBJECT_END + 0x0002, 2, LONG), /** * The UNIT_FIELD_CRITTER Flags: PRIVATE */ UNIT_FIELD_CRITTER(OBJECT_END + 0x0004, 2, LONG), /** * The UNIT_FIELD_CHARMEDBY Flags: PUBLIC */ UNIT_FIELD_CHARMEDBY(OBJECT_END + 0x0006, 2, LONG), /** * The UNIT_FIELD_SUMMONEDBY Flags: PUBLIC */ UNIT_FIELD_SUMMONEDBY(OBJECT_END + 0x0008, 2, LONG), /** * The UNIT_FIELD_CREATEDBY Flags: PUBLIC */ UNIT_FIELD_CREATEDBY(OBJECT_END + 0x000A, 2, LONG), /** * The UNIT_FIELD_TARGET Flags: PUBLIC */ UNIT_FIELD_TARGET(OBJECT_END + 0x000C, 2, LONG), /** * The UNIT_FIELD_CHANNEL_OBJECT Flags: PUBLIC */ UNIT_FIELD_CHANNEL_OBJECT(OBJECT_END + 0x000E, 2, LONG), /** * The UNIT_CHANNEL_SPELL Flags: PUBLIC */ UNIT_CHANNEL_SPELL(OBJECT_END + 0x0010, 1, INT), /** * The UNIT_FIELD_BYTES_0 Flags: PUBLIC */ UNIT_FIELD_BYTES_0(OBJECT_END + 0x0011, 1, BYTES), /** * The UNIT_FIELD_HEALTH Flags: PUBLIC */ UNIT_FIELD_HEALTH(OBJECT_END + 0x0012, 1, INT), /** * The UNIT_FIELD_POWER1 Flags: PUBLIC */ UNIT_FIELD_POWER1(OBJECT_END + 0x0013, 1, INT), /** * The UNIT_FIELD_POWER2 Flags: PUBLIC */ UNIT_FIELD_POWER2(OBJECT_END + 0x0014, 1, INT), /** * The UNIT_FIELD_POWER3 Flags: PUBLIC */ UNIT_FIELD_POWER3(OBJECT_END + 0x0015, 1, INT), // ; /** * The UNIT_FIELD_POWER4 Flags: PUBLIC */ UNIT_FIELD_POWER4(OBJECT_END + 0x0016, 1, INT), // ; /** * The UNIT_FIELD_POWER5 Flags: PUBLIC */ UNIT_FIELD_POWER5(OBJECT_END + 0x0017, 1, INT), /** * The UNIT_FIELD_POWER6 Flags: PUBLIC */ UNIT_FIELD_POWER6(OBJECT_END + 0x0018, 1, INT), /** * The UNIT_FIELD_POWER7 Flags: PUBLIC */ UNIT_FIELD_POWER7(OBJECT_END + 0x0019, 1, INT), /** * The UNIT_FIELD_MAXHEALTH Flags: PUBLIC */ UNIT_FIELD_MAXHEALTH(OBJECT_END + 0x001A, 1, INT), /** * The UNIT_FIELD_MAXPOWER1 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER1(OBJECT_END + 0x001B, 1, INT), /** * The UNIT_FIELD_MAXPOWER2 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER2(OBJECT_END + 0x001C, 1, INT), /** * The UNIT_FIELD_MAXPOWER3 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER3(OBJECT_END + 0x001D, 1, INT), /** * The UNIT_FIELD_MAXPOWER4 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER4(OBJECT_END + 0x001E, 1, INT), /** * The UNIT_FIELD_MAXPOWER5 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER5(OBJECT_END + 0x001F, 1, INT), /** * The UNIT_FIELD_MAXPOWER6 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER6(OBJECT_END + 0x0020, 1, INT), /** * The UNIT_FIELD_MAXPOWER7 Flags: PUBLIC */ UNIT_FIELD_MAXPOWER7(OBJECT_END + 0x0021, 1, INT), /** The UNI t_ fiel d_ powe r_ rege n_ fla t_ modifier. */ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0022, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_1_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0023, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_2_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0024, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_3_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0025, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_4_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0026, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_5_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0027, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_6_REGEN_FLAT_MODIFIER(OBJECT_END + 0x0028, 1, FLOAT), // ; // Flags: // PRIVATE; // OWNER /** The UNI t_ fiel d_ powe r_ rege n_ interrupte d_ fla t_ modifier. */ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x0029, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_1_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002A, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_2_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002B, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_3_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002C, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_4_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002D, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_5_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002E, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER UNIT_FIELD_POWER_6_REGEN_INTERRUPTED_FLAT_MODIFIER(OBJECT_END + 0x002F, 7, FLOAT), // ; // Flags: // PRIVATE; // OWNER /** The UNI t_ fiel d_ level. */ UNIT_FIELD_LEVEL(OBJECT_END + 0x0030, 1, INT), // ; Flags: PUBLIC /** * The UNIT_FIELD_FACTIONTEMPLATE Flags: PUBLIC */ UNIT_FIELD_FACTIONTEMPLATE(OBJECT_END + 0x0031, 1, INT), /** * The UNIT_VIRTUAL_ITEM_SLOT_ID Flags: PUBLIC */ UNIT_VIRTUAL_ITEM_SLOT_ID(OBJECT_END + 0x0032, 3, INT), /** * The UNIT_FIELD_FLAGS Flags: PUBLIC */ UNIT_FIELD_FLAGS(OBJECT_END + 0x0035, 1, INT), /** * The UNIT_FIELD_FLAGS_2 Flags: PUBLIC */ UNIT_FIELD_FLAGS_2(OBJECT_END + 0x0036, 1, INT), /** * The UNIT_FIELD_AURASTATE Flags: PUBLIC */ UNIT_FIELD_AURASTATE(OBJECT_END + 0x0037, 1, INT), /** * The UNIT_FIELD_BASEATTACKTIME Flags: PUBLIC */ UNIT_FIELD_BASEATTACKTIME(OBJECT_END + 0x0038, 2, INT), /** * The UNIT_FIELD_RANGEDATTACKTIME Flags: PRIVATE */ UNIT_FIELD_RANGEDATTACKTIME(OBJECT_END + 0x003A, 1, INT), /** * The UNIT_FIELD_BOUNDINGRADIUS Flags: PUBLIC */ UNIT_FIELD_BOUNDINGRADIUS(OBJECT_END + 0x003B, 1, FLOAT), /** * The UNIT_FIELD_COMBATREACH Flags: PUBLIC */ UNIT_FIELD_COMBATREACH(OBJECT_END + 0x003C, 1, FLOAT), /** * The UNIT_FIELD_DISPLAYID Flags: PUBLIC */ UNIT_FIELD_DISPLAYID(OBJECT_END + 0x003D, 1, INT), /** * The UNIT_FIELD_NATIVEDISPLAYID Flags: PUBLIC */ UNIT_FIELD_NATIVEDISPLAYID(OBJECT_END + 0x003E, 1, INT), /** * The UNIT_FIELD_MOUNTDISPLAYID Flags: PUBLIC */ UNIT_FIELD_MOUNTDISPLAYID(OBJECT_END + 0x003F, 1, INT), /** * The UNIT_FIELD_MINDAMAGE Flags: PRIVATE; OWNER; PARTY_LEADER */ UNIT_FIELD_MINDAMAGE(OBJECT_END + 0x0040, 1, FLOAT), /** * The UNIT_FIELD_MAXDAMAGE Flags: PRIVATE; OWNER; PARTY_LEADER */ UNIT_FIELD_MAXDAMAGE(OBJECT_END + 0x0041, 1, FLOAT), /** * The UNIT_FIELD_MINOFFHANDDAMAGE Flags: PRIVATE; OWNER; PARTY_LEADER */ UNIT_FIELD_MINOFFHANDDAMAGE(OBJECT_END + 0x0042, 1, FLOAT), /** * The UNIT_FIELD_MAXOFFHANDDAMAGE Flags: PRIVATE; OWNER; PARTY_LEADER */ UNIT_FIELD_MAXOFFHANDDAMAGE(OBJECT_END + 0x0043, 1, FLOAT), /** * The UNIT_FIELD_BYTES_1 Flags: PUBLIC */ UNIT_FIELD_BYTES_1(OBJECT_END + 0x0044, 1, BYTES), /** * The UNIT_FIELD_PETNUMBER Flags: PUBLIC */ UNIT_FIELD_PETNUMBER(OBJECT_END + 0x0045, 1, INT), /** * The UNIT_FIELD_PET_NAME_TIMESTAMP Flags: PUBLIC */ UNIT_FIELD_PET_NAME_TIMESTAMP(OBJECT_END + 0x0046, 1, INT), /** * The UNIT_FIELD_PETEXPERIENCE Flags: OWNER */ UNIT_FIELD_PETEXPERIENCE(OBJECT_END + 0x0047, 1, INT), /** * The UNIT_FIELD_PETNEXTLEVELEXP Flags: OWNER */ UNIT_FIELD_PETNEXTLEVELEXP(OBJECT_END + 0x0048, 1, INT), /** * The UNIT_DYNAMIC_FLAGS Flags: DYNAMIC */ UNIT_DYNAMIC_FLAGS(OBJECT_END + 0x0049, 1, INT), /** * The UNIT_MOD_CAST_SPEED Flags: PUBLIC */ UNIT_MOD_CAST_SPEED(OBJECT_END + 0x004A, 1, FLOAT), /** * The UNIT_CREATED_BY_SPELL Flags: PUBLIC */ UNIT_CREATED_BY_SPELL(OBJECT_END + 0x004B, 1, INT), /** * The UNIT_NPC_FLAGS Flags: DYNAMIC */ UNIT_NPC_FLAGS(OBJECT_END + 0x004C, 1, INT), /** * The UNIT_NPC_EMOTESTATE Flags: PUBLIC */ UNIT_NPC_EMOTESTATE(OBJECT_END + 0x004D, 1, INT), /** * The UNIT_FIELD_STAT0 Flags: PRIVATE; OWNER */ UNIT_FIELD_STAT0(OBJECT_END + 0x004E, 1, INT), /** * The UNIT_FIELD_STAT1 Flags: PRIVATE; OWNER */ UNIT_FIELD_STAT1(OBJECT_END + 0x004F, 1, INT), /** * The UNIT_FIELD_STAT2 Flags: PRIVATE; OWNER */ UNIT_FIELD_STAT2(OBJECT_END + 0x0050, 1, INT), /** * The UNIT_FIELD_STAT3 Flags: PRIVATE; OWNER */ UNIT_FIELD_STAT3(OBJECT_END + 0x0051, 1, INT), /** * The UNIT_FIELD_STAT4 Flags: PRIVATE; OWNER */ UNIT_FIELD_STAT4(OBJECT_END + 0x0052, 1, INT), /** * The UNIT_FIELD_POSSTAT0 Flags: PRIVATE; OWNER */ UNIT_FIELD_POSSTAT0(OBJECT_END + 0x0053, 1, INT), /** * The UNIT_FIELD_POSSTAT1 Flags: PRIVATE; OWNER */ UNIT_FIELD_POSSTAT1(OBJECT_END + 0x0054, 1, INT), /** * The UNIT_FIELD_POSSTAT2 Flags: PRIVATE; OWNER */ UNIT_FIELD_POSSTAT2(OBJECT_END + 0x0055, 1, INT), /** * The UNIT_FIELD_POSSTAT3 Flags: PRIVATE; OWNER */ UNIT_FIELD_POSSTAT3(OBJECT_END + 0x0056, 1, INT), /** * The UNIT_FIELD_POSSTAT4 Flags: PRIVATE; OWNER */ UNIT_FIELD_POSSTAT4(OBJECT_END + 0x0057, 1, INT), /** * The UNIT_FIELD_NEGSTAT0 Flags: PRIVATE; OWNER */ UNIT_FIELD_NEGSTAT0(OBJECT_END + 0x0058, 1, INT), /** * The UNIT_FIELD_NEGSTAT1 Flags: PRIVATE; OWNER */ UNIT_FIELD_NEGSTAT1(OBJECT_END + 0x0059, 1, INT), /** * The UNIT_FIELD_NEGSTAT2 Flags: PRIVATE; OWNER */ UNIT_FIELD_NEGSTAT2(OBJECT_END + 0x005A, 1, INT), /** * The UNIT_FIELD_NEGSTAT3 Flags: PRIVATE; OWNER */ UNIT_FIELD_NEGSTAT3(OBJECT_END + 0x005B, 1, INT), /** * The UNIT_FIELD_NEGSTAT4 Flags: PRIVATE; OWNER */ UNIT_FIELD_NEGSTAT4(OBJECT_END + 0x005C, 1, INT), /** * The UNIT_FIELD_RESISTANCES Flags: PRIVATE; OWNER; PARTY_LEADER */ UNIT_FIELD_RESISTANCES(OBJECT_END + 0x005D, 7, INT), /** * The UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE Flags: PRIVATE; OWNER */ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE(OBJECT_END + 0x0064, 7, INT), /** * The UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE Flags: PRIVATE; OWNER */ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE(OBJECT_END + 0x006B, 7, INT), /** * The UNIT_FIELD_BASE_MANA Flags: PUBLIC */ UNIT_FIELD_BASE_MANA(OBJECT_END + 0x0072, 1, INT), /** * The UNIT_FIELD_BASE_HEALTH Flags: PRIVATE; OWNER */ UNIT_FIELD_BASE_HEALTH(OBJECT_END + 0x0073, 1, INT), /** * The UNIT_FIELD_BYTES_2 Flags: PUBLIC */ UNIT_FIELD_BYTES_2(OBJECT_END + 0x0074, 1, BYTES), /** * The UNIT_FIELD_ATTACK_POWER Flags: PRIVATE; OWNER */ UNIT_FIELD_ATTACK_POWER(OBJECT_END + 0x0075, 1, INT), /** * The UNIT_FIELD_ATTACK_POWER_MODS _SHORT; Flags: PRIVATE; OWNER */ UNIT_FIELD_ATTACK_POWER_MODS(OBJECT_END + 0x0076, 1, TWO), /** * The UNIT_FIELD_ATTACK_POWER_MULTIPLIER Flags: PRIVATE; OWNER */ UNIT_FIELD_ATTACK_POWER_MULTIPLIER(OBJECT_END + 0x0077, 1, FLOAT), /** * The UNIT_FIELD_RANGED_ATTACK_POWER Flags: PRIVATE; OWNER */ UNIT_FIELD_RANGED_ATTACK_POWER(OBJECT_END + 0x0078, 1, INT), /** * The UNIT_FIELD_RANGED_ATTACK_POWER_MODS _SHORT; Flags: PRIVATE; OWNER */ UNIT_FIELD_RANGED_ATTACK_POWER_MODS(OBJECT_END + 0x0079, 1, TWO), /** * The UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER Flags: PRIVATE; OWNER */ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER(OBJECT_END + 0x007A, 1, FLOAT), /** * The UNIT_FIELD_MINRANGEDDAMAGE Flags: PRIVATE; OWNER */ UNIT_FIELD_MINRANGEDDAMAGE(OBJECT_END + 0x007B, 1, FLOAT), /** * The UNIT_FIELD_MAXRANGEDDAMAGE Flags: PRIVATE; OWNER */ UNIT_FIELD_MAXRANGEDDAMAGE(OBJECT_END + 0x007C, 1, FLOAT), /** * The UNIT_FIELD_POWER_COST_MODIFIER Flags: PRIVATE; OWNER */ UNIT_FIELD_POWER_COST_MODIFIER(OBJECT_END + 0x007D, 7, INT), /** * The UNIT_FIELD_POWER_COST_MULTIPLIER Flags: PRIVATE; OWNER */ UNIT_FIELD_POWER_COST_MULTIPLIER(OBJECT_END + 0x0084, 7, FLOAT), /** * The UNIT_FIELD_MAXHEALTHMODIFIER Flags: PRIVATE; OWNER */ UNIT_FIELD_MAXHEALTHMODIFIER(OBJECT_END + 0x008B, 1, FLOAT), /** * The UNIT_FIELD_HOVERHEIGHT Flags: PUBLIC */ UNIT_FIELD_HOVERHEIGHT(OBJECT_END + 0x008C, 1, FLOAT), /** * The UNIT_FIELD_PADDING Flags: NONE */ UNIT_FIELD_PADDING(OBJECT_END + 0x008D, 1, INT); /** * The UNIT_END 0x94 - 148 dec */ public static final int UNIT_END = OBJECT_END + 0x008E; int value; int size; UpdateFieldType type; UnitField(final int value, final int size, final UpdateFieldType type) { this.value = value; this.size = size; this.type = type; } public static UnitField get(final int value) { for (final UnitField val : values()) { if (val.getValue() == value) { return val; } } return null; } @Override public UpdateFieldType getType() { return this.type; } @Override public int getSize() { return this.size; } @Override public int getValue() { return this.value; } }