public void LoadValuesFromUpdateFields() { Size = UpdateFields.GetValue <ObjectField, float?>(ObjectField.OBJECT_FIELD_SCALE_X); Bytes0 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_0); MaxHealth = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MAXHEALTH); Level = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_LEVEL); Faction = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_FACTIONTEMPLATE); Equipment = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID1, 3); UnitFlags = UpdateFields.GetEnum <UnitField, UnitFlags?>(UnitField.UNIT_FIELD_FLAGS); UnitFlags2 = UpdateFields.GetEnum <UnitField, UnitFlags2?>(UnitField.UNIT_FIELD_FLAGS_2); MeleeTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASEATTACKTIME); RangedTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_RANGEDATTACKTIME); Model = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_DISPLAYID); Mount = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MOUNTDISPLAYID); Bytes1 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_1); DynamicFlags = UpdateFields.GetEnum <UnitField, UnitDynamicFlags?>(UnitField.UNIT_DYNAMIC_FLAGS); NpcFlags = UpdateFields.GetEnum <UnitField, NPCFlags?>(UnitField.UNIT_NPC_FLAGS); EmoteState = UpdateFields.GetEnum <UnitField, EmoteType?>(UnitField.UNIT_NPC_EMOTESTATE); Resistances = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_FIELD_RESISTANCES_ARMOR, 7); ManaMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_MANA); HealthMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_HEALTH); Bytes2 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_2); BoundingRadius = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_BOUNDINGRADIUS); CombatReach = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_COMBATREACH); HoverHeight = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_HOVERHEIGHT); ComputeBytes0(); }
public override void LoadValuesFromUpdateFields() { Bytes0 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_0); Bytes1 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_1); Bytes2 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_2); Size = UpdateFields.GetValue <ObjectField, float?>(ObjectField.OBJECT_FIELD_SCALE_X); MaxHealth = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MAXHEALTH); Level = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_LEVEL); Faction = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_FACTIONTEMPLATE); if (ClientVersion.AddedInVersion(ClientType.Legion)) { ScalingMinLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MIN); ScalingMaxLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MAX); if (ScalingMinLevel != null && ScalingMaxLevel != null) { CreatureTemplateScaling creatureTemplateScaling = new CreatureTemplateScaling(); creatureTemplateScaling.Entry = UpdateFields.GetValue <ObjectField, uint>(ObjectField.OBJECT_FIELD_ENTRY); creatureTemplateScaling.LevelScalingDelta = UpdateFields.GetValue <UnitField, uint>(UnitField.UNIT_FIELD_SCALING_LEVEL_DELTA); Storage.CreatureTemplateScalings.Add(creatureTemplateScaling); } EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 6); } else { EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 3); } UnitFlags = UpdateFields.GetEnum <UnitField, UnitFlags?>(UnitField.UNIT_FIELD_FLAGS); UnitFlags2 = UpdateFields.GetEnum <UnitField, UnitFlags2?>(UnitField.UNIT_FIELD_FLAGS_2); MeleeTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASEATTACKTIME); RangedTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_RANGEDATTACKTIME); Model = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_DISPLAYID); Mount = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MOUNTDISPLAYID); if (ClientVersion.AddedInVersion(ClientType.WarlordsOfDraenor)) { DynamicFlagsWod = UpdateFields.GetEnum <ObjectField, UnitDynamicFlagsWOD?>(ObjectField.OBJECT_DYNAMIC_FLAGS); } else { DynamicFlags = UpdateFields.GetEnum <UnitField, UnitDynamicFlags?>(UnitField.UNIT_DYNAMIC_FLAGS); } NpcFlags = UpdateFields.GetEnum <UnitField, NPCFlags?>(UnitField.UNIT_NPC_FLAGS); EmoteState = UpdateFields.GetEnum <UnitField, EmoteType?>(UnitField.UNIT_NPC_EMOTESTATE); Resistances = UpdateFields.GetArray <UnitField, short>(UnitField.UNIT_FIELD_RESISTANCES, 7); ManaMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_MANA); HealthMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_HEALTH); BoundingRadius = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_BOUNDINGRADIUS); CombatReach = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_COMBATREACH); HoverHeight = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_HOVERHEIGHT); if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_4_0_17359)) { PowerType = UpdateFields.GetEnum <UnitField, PowerType?>(UnitField.UNIT_FIELD_DISPLAY_POWER); InteractSpellID = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_INTERACT_SPELLID); } ComputeBytes0(); ComputeEquipment(); }
public override void LoadValuesFromUpdateFields() { Bytes1 = BitConverter.ToUInt32(new byte[] { UnitData.StandState, UnitData.PetTalentPoints, UnitData.VisFlags, UnitData.AnimTier }, 0); Bytes2 = BitConverter.ToUInt32(new byte[] { UnitData.SheatheState, UnitData.PvpFlags, UnitData.PetFlags, UnitData.ShapeshiftForm }, 0); if (ClientVersion.AddedInVersion(ClientType.WarlordsOfDraenor)) { DynamicFlagsWod = (UnitDynamicFlagsWOD)ObjectData.DynamicFlags; } else { DynamicFlags = UpdateFields.GetEnum <UnitField, UnitDynamicFlags?>(UnitField.UNIT_DYNAMIC_FLAGS); } }
public override void LoadValuesFromUpdateFields() { Size = UpdateFields.GetValue <ObjectField, float?>(ObjectField.OBJECT_FIELD_SCALE_X); Faction = UpdateFields.GetValue <GameObjectField, uint?>(GameObjectField.GAMEOBJECT_FACTION); Flags = UpdateFields.GetEnum <GameObjectField, GameObjectFlag?>(GameObjectField.GAMEOBJECT_FLAGS); }
public override void LoadValuesFromUpdateFields() { Bytes0 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_0); Bytes1 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_1); Bytes2 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_2); Size = UpdateFields.GetValue <ObjectField, float?>(ObjectField.OBJECT_FIELD_SCALE_X); MaxHealth = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MAXHEALTH); Level = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_LEVEL); Faction = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_FACTIONTEMPLATE); if (ClientVersion.AddedInVersion(ClientType.Legion)) { ScalingMinLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MIN); ScalingMaxLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MAX); ScalingDelta = UpdateFields.GetValue <UnitField, int>(UnitField.UNIT_FIELD_SCALING_LEVEL_DELTA);; EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 6); } else { EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 3); } UnitFlags = UpdateFields.GetEnum <UnitField, UnitFlags?>(UnitField.UNIT_FIELD_FLAGS); UnitFlags2 = UpdateFields.GetEnum <UnitField, UnitFlags2?>(UnitField.UNIT_FIELD_FLAGS_2); if (ClientVersion.AddedInVersion(ClientType.Legion)) { UnitFlags3 = UpdateFields.GetEnum <UnitField, UnitFlags3?>(UnitField.UNIT_FIELD_FLAGS_3); } MeleeTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASEATTACKTIME); RangedTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_RANGEDATTACKTIME); Model = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_DISPLAYID); Mount = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MOUNTDISPLAYID); if (ClientVersion.AddedInVersion(ClientType.WarlordsOfDraenor)) { DynamicFlagsWod = UpdateFields.GetEnum <ObjectField, UnitDynamicFlagsWOD?>(ObjectField.OBJECT_DYNAMIC_FLAGS); } else { DynamicFlags = UpdateFields.GetEnum <UnitField, UnitDynamicFlags?>(UnitField.UNIT_DYNAMIC_FLAGS); } if (ClientVersion.AddedInVersion(ClientType.Legion)) { // @TODO TEMPORARY HACK // For read NpcFlags as ulong uint[] tempNpcFlags = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_NPC_FLAGS, 2); NpcFlags = (NPCFlags)Utilities.MAKE_PAIR64(tempNpcFlags[0], tempNpcFlags[1]); } else { NpcFlags = UpdateFields.GetEnum <UnitField, NPCFlags?>(UnitField.UNIT_NPC_FLAGS); } EmoteState = UpdateFields.GetEnum <UnitField, EmoteType?>(UnitField.UNIT_NPC_EMOTESTATE); Resistances = UpdateFields.GetArray <UnitField, short>(UnitField.UNIT_FIELD_RESISTANCES, 7); ManaMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_MANA); HealthMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_HEALTH); BoundingRadius = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_BOUNDINGRADIUS); CombatReach = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_COMBATREACH); HoverHeight = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_HOVERHEIGHT); if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_4_0_17359)) { PowerType = UpdateFields.GetEnum <UnitField, PowerType?>(UnitField.UNIT_FIELD_DISPLAY_POWER); InteractSpellID = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_INTERACT_SPELLID); } ComputeBytes0(); ComputeEquipment(); }