OregonCore  revision fb2a440-git
Your Favourite TBC server
Group.h File Reference
#include "GroupReference.h"
#include "GroupRefManager.h"
#include "LootMgr.h"
#include <map>
#include <vector>

Go to the source code of this file.

Classes

class  Roll
 
struct  InstanceGroupBind
 
class  Group
 
struct  Group::MemberSlot
 

Macros

#define MAXGROUPSIZE   5
 
#define MAXRAIDSIZE   40
 
#define TARGETICONCOUNT   8
 
#define GROUP_UPDATE_FLAGS_COUNT   20
 
#define sScriptMgr   Oregon::Singleton<ScriptMgr>::Instance()
 

Enumerations

enum  RollVote {
  ROLL_PASS = 0, ROLL_NEED = 1, ROLL_GREED = 2, ROLL_NOT_EMITED_YET = 3,
  ROLL_NOT_VALID = 4
}
 
enum  GroupMemberOnlineStatus {
  MEMBER_STATUS_OFFLINE = 0x0000, MEMBER_STATUS_ONLINE = 0x0001, MEMBER_STATUS_PVP = 0x0002, MEMBER_STATUS_UNK0 = 0x0004,
  MEMBER_STATUS_UNK1 = 0x0008, MEMBER_STATUS_UNK2 = 0x0010, MEMBER_STATUS_UNK3 = 0x0020, MEMBER_STATUS_UNK4 = 0x0040,
  MEMBER_STATUS_UNK5 = 0x0080, MEMBER_STATUS_RAF_BUDDY = 0x0100
}
 
enum  GroupType { GROUPTYPE_NORMAL = 0, GROUPTYPE_RAID = 1 }
 
enum  GroupFlagMask { GROUP_ASSISTANT = 0x01, GROUP_MAIN_ASSISTANT = 0x02, GROUP_MAIN_TANK = 0x04 }
 
enum  GroupUpdateFlags {
  GROUP_UPDATE_FLAG_NONE = 0x00000000, GROUP_UPDATE_FLAG_STATUS = 0x00000001, GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, GROUP_UPDATE_FLAG_MAX_HP = 0x00000004,
  GROUP_UPDATE_FLAG_POWER_TYPE = 0x00000008, GROUP_UPDATE_FLAG_CUR_POWER = 0x00000010, GROUP_UPDATE_FLAG_MAX_POWER = 0x00000020, GROUP_UPDATE_FLAG_LEVEL = 0x00000040,
  GROUP_UPDATE_FLAG_ZONE = 0x00000080, GROUP_UPDATE_FLAG_POSITION = 0x00000100, GROUP_UPDATE_FLAG_AURAS = 0x00000200, GROUP_UPDATE_FLAG_PET_GUID = 0x00000400,
  GROUP_UPDATE_FLAG_PET_NAME = 0x00000800, GROUP_UPDATE_FLAG_PET_MODEL_ID = 0x00001000, GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00002000, GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00004000,
  GROUP_UPDATE_FLAG_PET_POWER_TYPE = 0x00008000, GROUP_UPDATE_FLAG_PET_CUR_POWER = 0x00010000, GROUP_UPDATE_FLAG_PET_MAX_POWER = 0x00020000, GROUP_UPDATE_FLAG_PET_AURAS = 0x00040000,
  GROUP_UPDATE_PET = 0x0007FC00, GROUP_UPDATE_FULL = 0x0007FFFF
}
 
enum  RemoveMethod { GROUP_REMOVEMETHOD_DEFAULT = 0, GROUP_REMOVEMETHOD_KICK = 1, GROUP_REMOVEMETHOD_LEAVE = 2 }
 

Macro Definition Documentation

#define GROUP_UPDATE_FLAGS_COUNT   20

Definition at line 106 of file Group.h.

Referenced by WorldSession::BuildPartyMemberStatsChangedPacket().

#define MAXGROUPSIZE   5
#define MAXRAIDSIZE   40
#define TARGETICONCOUNT   8

Enumeration Type Documentation

Enumerator
GROUP_ASSISTANT 
GROUP_MAIN_ASSISTANT 
GROUP_MAIN_TANK 

Definition at line 63 of file Group.h.

64 {
65  GROUP_ASSISTANT = 0x01,
66  GROUP_MAIN_ASSISTANT = 0x02,
67  GROUP_MAIN_TANK = 0x04,
68 };
Enumerator
MEMBER_STATUS_OFFLINE 
MEMBER_STATUS_ONLINE 
MEMBER_STATUS_PVP 
MEMBER_STATUS_UNK0 
MEMBER_STATUS_UNK1 
MEMBER_STATUS_UNK2 
MEMBER_STATUS_UNK3 
MEMBER_STATUS_UNK4 
MEMBER_STATUS_UNK5 
MEMBER_STATUS_RAF_BUDDY 

Definition at line 43 of file Group.h.

44 {
45  MEMBER_STATUS_OFFLINE = 0x0000,
46  MEMBER_STATUS_ONLINE = 0x0001,
47  MEMBER_STATUS_PVP = 0x0002,
48  MEMBER_STATUS_UNK0 = 0x0004, // dead? (health=0)
49  MEMBER_STATUS_UNK1 = 0x0008, // ghost? (health=1)
50  MEMBER_STATUS_UNK2 = 0x0010, // never seen
51  MEMBER_STATUS_UNK3 = 0x0020, // never seen
52  MEMBER_STATUS_UNK4 = 0x0040, // appears with dead and ghost flags
53  MEMBER_STATUS_UNK5 = 0x0080, // never seen
54  MEMBER_STATUS_RAF_BUDDY = 0x0100 // Refer-A-Friend Flag
55 };
enum GroupType
Enumerator
GROUPTYPE_NORMAL 
GROUPTYPE_RAID 

Definition at line 57 of file Group.h.

58 {
59  GROUPTYPE_NORMAL = 0,
60  GROUPTYPE_RAID = 1
61 };
Enumerator
GROUP_UPDATE_FLAG_NONE 
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 
GROUP_UPDATE_FLAG_POSITION 
GROUP_UPDATE_FLAG_AURAS 
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 
GROUP_UPDATE_PET 
GROUP_UPDATE_FULL 

Definition at line 72 of file Group.h.

73 {
74  GROUP_UPDATE_FLAG_NONE = 0x00000000, // nothing
75  GROUP_UPDATE_FLAG_STATUS = 0x00000001, // uint16, flags
76  GROUP_UPDATE_FLAG_CUR_HP = 0x00000002, // uint16
77  GROUP_UPDATE_FLAG_MAX_HP = 0x00000004, // uint16
78  GROUP_UPDATE_FLAG_POWER_TYPE = 0x00000008, // uint8
79  GROUP_UPDATE_FLAG_CUR_POWER = 0x00000010, // uint16
80  GROUP_UPDATE_FLAG_MAX_POWER = 0x00000020, // uint16
81  GROUP_UPDATE_FLAG_LEVEL = 0x00000040, // uint16
82  GROUP_UPDATE_FLAG_ZONE = 0x00000080, // uint16
83  GROUP_UPDATE_FLAG_POSITION = 0x00000100, // uint16, uint16
84  GROUP_UPDATE_FLAG_AURAS = 0x00000200, // uint64 mask, for each bit set uint16 spellid + uint8 unk
85  GROUP_UPDATE_FLAG_PET_GUID = 0x00000400, // uint64 pet guid
86  GROUP_UPDATE_FLAG_PET_NAME = 0x00000800, // pet name, NULL terminated string
87  GROUP_UPDATE_FLAG_PET_MODEL_ID = 0x00001000, // uint16, model id
88  GROUP_UPDATE_FLAG_PET_CUR_HP = 0x00002000, // uint16 pet cur health
89  GROUP_UPDATE_FLAG_PET_MAX_HP = 0x00004000, // uint16 pet max health
90  GROUP_UPDATE_FLAG_PET_POWER_TYPE = 0x00008000, // uint8 pet power type
91  GROUP_UPDATE_FLAG_PET_CUR_POWER = 0x00010000, // uint16 pet cur power
92  GROUP_UPDATE_FLAG_PET_MAX_POWER = 0x00020000, // uint16 pet max power
93  GROUP_UPDATE_FLAG_PET_AURAS = 0x00040000, // uint64 mask, for each bit set uint16 spellid + uint8 unk, pet auras...
94  GROUP_UPDATE_PET = 0x0007FC00, // all pet flags
95  GROUP_UPDATE_FULL = 0x0007FFFF, // all known flags
96 };
Enumerator
GROUP_REMOVEMETHOD_DEFAULT 
GROUP_REMOVEMETHOD_KICK 
GROUP_REMOVEMETHOD_LEAVE 

Definition at line 98 of file Group.h.

enum RollVote
Enumerator
ROLL_PASS 
ROLL_NEED 
ROLL_GREED 
ROLL_NOT_EMITED_YET 
ROLL_NOT_VALID 

Definition at line 32 of file Group.h.

33 {
34  ROLL_PASS = 0,
35  ROLL_NEED = 1,
36  ROLL_GREED = 2,
37 
38  // other not send by client
39  ROLL_NOT_EMITED_YET = 3, // send to client
40  ROLL_NOT_VALID = 4 // not send to client
41 };