Core/Calendar: Use enums

Source: WPP
This commit is contained in:
Nay
2012-02-24 18:22:31 +00:00
parent 9c3357c1de
commit a09310244f
2 changed files with 46 additions and 17 deletions

View File

@@ -21,7 +21,6 @@
#include "Common.h"
// TODO - Get correct values
enum CalendarEventType
{
CALENDARTYPE_RAID = 0,
@@ -31,8 +30,21 @@ enum CalendarEventType
CALENDARTYPE_OTHER,
};
// TODO - Get correct values
enum CalendarInviteStatus
enum CalendarSendEventType
{
CALENDARSENDEVENTTYPE_GET = 0,
CALENDARSENDEVENTTYPE_ADD,
CALENDARSENDEVENTTYPE_COPY
};
enum CalendarModerationRank
{
CALENDARMODERATIONRANK_PLAYER = 0,
CALENDARMODERATIONRANK_MODERATOR,
CALENDARMODERATIONRANK_OWNER
};
enum CalendarEventStatus
{
CALENDARSTATUS_INVITED = 0,
CALENDARSTATUS_ACCEPTED,
@@ -41,6 +53,20 @@ enum CalendarInviteStatus
CALENDARSTATUS_OUT,
CALENDARSTATUS_STANDBY,
CALENDARSTATUS_CONFIRMED,
// CALENDARSTATUS_UNK7
// CALENDARSTATUS_UNK8
// CALENDARSTATUS_UNK9
};
enum CalendarFlags
{
CALENDARFLAG_NONE = 0x000000,
CALENDARFLAG_NORMAL = 0x000001,
CALENDARFLAG_INVITES_LOCKED = 0x000010,
CALENDARFLAG_WITHOUT_INVITES = 0x000040,
CALENDARFLAG_GUILD_EVENT = 0x000400
// CALENDARFLAG_Unk10000 = 0x010000,
// CALENDARFLAG_Unk400000 = 0x400000
};
struct CalendarEvent
@@ -49,12 +75,12 @@ struct CalendarEvent
uint64 CreatorGuid;
std::string Name;
std::string Description;
uint8 Type;
CalendarEventType Type;
uint8 Unk;
uint32 DungeonId;
uint32 UnkTime;
uint32 Time;
uint32 Flags;
CalendarFlags Flags;
uint32 GuildId;
};
@@ -62,8 +88,8 @@ struct CalendarInvite
{
uint64 Id;
uint64 Event;
uint8 Status;
uint8 Rank;
CalendarEventStatus Status;
CalendarModerationRank Rank;
uint8 Unk1;
uint8 Unk2;
uint8 Unk3;

View File

@@ -155,13 +155,13 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recv_data)
std::string title;
std::string description;
uint8 type;
uint8 type; // CalendarEventType
uint8 unkbyte;
uint32 maxInvites;
uint32 dungeonId;
uint32 eventPackedTime;
uint32 unkPackedTime;
uint32 flags;
uint32 flags; // CalendarFlags
recv_data >> title;
recv_data >> description;
@@ -177,17 +177,17 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recv_data)
event.Id = sCalendarMgr->GetNextEventId();
event.Name = title;
event.Description = description;
event.Type = type;
event.Type = (CalendarEventType) type;
event.Unk = unkbyte;
event.DungeonId = dungeonId;
event.Flags = flags;
event.Flags = (CalendarFlags) flags;
event.Time = eventPackedTime;
event.UnkTime = unkPackedTime;
event.CreatorGuid = GetPlayer()->GetGUID();
sCalendarMgr->AddEvent(event);
if (((flags >> 6) & 1))
if (flags & CALENDARFLAG_WITHOUT_INVITES)
return;
uint32 inviteCount;
@@ -197,23 +197,26 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recv_data)
return;
uint64 guid;
uint8 status;
uint8 rank;
for (int32 i = 0; i < inviteCount; ++i)
uint8 status; // CalendarEventStatus
uint8 rank; // CalendarModerationRank
for (uint32 i = 0; i < inviteCount; ++i)
{
CalendarInvite invite;
invite.Id = sCalendarMgr->GetNextInviteId();
recv_data.readPackGUID(guid);
recv_data >> status;
recv_data >> rank;
invite.Event = event.Id;
invite.CreatorGuid = GetPlayer()->GetGUID();
invite.TargetGuid = guid;
invite.Status = status;
invite.Rank = rank;
invite.Status = (CalendarEventStatus) status;
invite.Rank = (CalendarModerationRank) rank;
invite.Time = event.Time;
invite.Text = ""; // hmm...
invite.Unk1 = invite.Unk2 = invite.Unk3 = 0;
sCalendarMgr->AddInvite(invite);
}
//SendCalendarEvent(eventId, true);