aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Groups/Group.h')
-rwxr-xr-xsrc/server/game/Groups/Group.h58
1 files changed, 30 insertions, 28 deletions
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index e6da9caea32..5d3bcdd48a3 100755
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -96,36 +96,38 @@ enum GroupType
enum GroupUpdateFlags
{
GROUP_UPDATE_FLAG_NONE = 0x00000000, // nothing
- GROUP_UPDATE_FLAG_STATUS = 0x00000001, // uint16, flags
- GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, // uint32
- GROUP_UPDATE_FLAG_MAX_HP = 0x00000004, // uint32
- GROUP_UPDATE_FLAG_POWER_TYPE = 0x00000008, // uint8
- GROUP_UPDATE_FLAG_CUR_POWER = 0x00000010, // uint16
- GROUP_UPDATE_FLAG_MAX_POWER = 0x00000020, // uint16
- GROUP_UPDATE_FLAG_LEVEL = 0x00000040, // uint16
- GROUP_UPDATE_FLAG_ZONE = 0x00000080, // uint16
- GROUP_UPDATE_FLAG_POSITION = 0x00000100, // uint16, uint16
- GROUP_UPDATE_FLAG_AURAS = 0x00000200, // uint64 mask, for each bit set uint32 spellid + uint8 unk
- GROUP_UPDATE_FLAG_PET_GUID = 0x00000400, // uint64 pet guid
- GROUP_UPDATE_FLAG_PET_NAME = 0x00000800, // pet name, NULL terminated string
- GROUP_UPDATE_FLAG_PET_MODEL_ID = 0x00001000, // uint16, model id
- GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00002000, // uint32 pet cur health
- GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00004000, // uint32 pet max health
- GROUP_UPDATE_FLAG_PET_POWER_TYPE = 0x00008000, // uint8 pet power type
- GROUP_UPDATE_FLAG_PET_CUR_POWER = 0x00010000, // uint16 pet cur power
- GROUP_UPDATE_FLAG_PET_MAX_POWER = 0x00020000, // uint16 pet max power
- GROUP_UPDATE_FLAG_PET_AURAS = 0x00040000, // uint64 mask, for each bit set uint32 spellid + uint8 unk, pet auras...
- GROUP_UPDATE_FLAG_VEHICLE_SEAT = 0x00080000, // uint8, uint64, if (uint32 != 0) { uint32, if (uint16 & 0x40) { uint32, uint32, uint32 } }
- GROUP_UPDATE_FLAG_UNKNOWN_1 = 0x00100000, // uint32
- GROUP_UPDATE_FLAG_UNKNOWN_2 = 0x00200000, // uint32, uint32, string
- GROUP_UPDATE_PET = 0x0007FC00, // all pet flags
- GROUP_UPDATE_FULL = 0x0007FFFF, // all known flags
+ GROUP_UPDATE_FLAG_STATUS = 0x00000001, // uint16 (GroupMemberStatusFlag)
+ GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, // uint32 (HP)
+ GROUP_UPDATE_FLAG_MAX_HP = 0x00000004, // uint32 (HP)
+ GROUP_UPDATE_FLAG_POWER_TYPE = 0x00000008, // uint8 (PowerType)
+ GROUP_UPDATE_FLAG_CUR_POWER = 0x00000010, // int16 (power value)
+ GROUP_UPDATE_FLAG_MAX_POWER = 0x00000020, // int16 (power value)
+ GROUP_UPDATE_FLAG_LEVEL = 0x00000040, // uint16 (level value)
+ GROUP_UPDATE_FLAG_ZONE = 0x00000080, // uint16 (zone id)
+ GROUP_UPDATE_FLAG_UNK100 = 0x00000100, // int16 (unk)
+ GROUP_UPDATE_FLAG_POSITION = 0x00000200, // uint16 (x), uint16 (y), uint16 (z)
+ GROUP_UPDATE_FLAG_AURAS = 0x00000400, // uint8 (unk), uint64 (mask), uint32 (count), for each bit set: uint32 (spell id) + uint16 (AuraFlags) (if has flags Scalable -> 3x int32 (bps))
+ GROUP_UPDATE_FLAG_PET_GUID = 0x00000800, // uint64 (pet guid)
+ GROUP_UPDATE_FLAG_PET_NAME = 0x00001000, // cstring (name, NULL terminated string)
+ GROUP_UPDATE_FLAG_PET_MODEL_ID = 0x00002000, // uint16 (model id)
+ GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00004000, // uint32 (HP)
+ GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00008000, // uint32 (HP)
+ GROUP_UPDATE_FLAG_PET_POWER_TYPE = 0x00010000, // uint8 (PowerType)
+ GROUP_UPDATE_FLAG_PET_CUR_POWER = 0x00020000, // uint16 (power value)
+ GROUP_UPDATE_FLAG_PET_MAX_POWER = 0x00040000, // uint16 (power value)
+ GROUP_UPDATE_FLAG_PET_AURAS = 0x00080000, // [see GROUP_UPDATE_FLAG_AURAS]
+ GROUP_UPDATE_FLAG_VEHICLE_SEAT = 0x00100000, // int32 (vehicle seat id)
+ GROUP_UPDATE_FLAG_PHASE = 0x00200000, // int32 (unk), uint32 (length), if length > 0, string (size 2*length), else cstring
+
+ GROUP_UPDATE_PET = GROUP_UPDATE_FLAG_PET_GUID | GROUP_UPDATE_FLAG_PET_NAME | GROUP_UPDATE_FLAG_PET_MODEL_ID |
+ GROUP_UPDATE_FLAG_PET_CUR_HP | GROUP_UPDATE_FLAG_PET_MAX_HP | GROUP_UPDATE_FLAG_PET_POWER_TYPE |
+ GROUP_UPDATE_FLAG_PET_CUR_POWER | GROUP_UPDATE_FLAG_PET_MAX_POWER | GROUP_UPDATE_FLAG_PET_AURAS, // all pet flags
+ GROUP_UPDATE_FULL = GROUP_UPDATE_FLAG_STATUS | GROUP_UPDATE_FLAG_CUR_HP | GROUP_UPDATE_FLAG_MAX_HP |
+ GROUP_UPDATE_FLAG_POWER_TYPE | GROUP_UPDATE_FLAG_CUR_POWER | GROUP_UPDATE_FLAG_MAX_POWER |
+ GROUP_UPDATE_FLAG_LEVEL | GROUP_UPDATE_FLAG_ZONE | /* unk100 */ GROUP_UPDATE_FLAG_POSITION |
+ GROUP_UPDATE_FLAG_AURAS | GROUP_UPDATE_PET | GROUP_UPDATE_FLAG_VEHICLE_SEAT | GROUP_UPDATE_FLAG_PHASE, // all known flags
};
-#define GROUP_UPDATE_FLAGS_COUNT 20
- // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
-static const uint8 GroupUpdateLength[GROUP_UPDATE_FLAGS_COUNT] = { 0, 2, 2, 2, 1, 2, 2, 2, 2, 4, 8, 8, 1, 2, 2, 2, 1, 2, 2, 8};
-
class Roll : public LootValidatorRef
{
public: