Skip to content

Instantly share code, notes, and snippets.

@rsa
Created March 7, 2012 19:46
Show Gist options
  • Save rsa/1995535 to your computer and use it in GitHub Desktop.
Save rsa/1995535 to your computer and use it in GitHub Desktop.
diff --git a/src/game/ObjectGuid.cpp b/src/game/ObjectGuid.cpp
index 8688013..a6383ea 100644
--- a/src/game/ObjectGuid.cpp
+++ b/src/game/ObjectGuid.cpp
@@ -109,3 +109,4 @@ template uint32 ObjectGuidGenerator<HIGHGUID_DYNAMICOBJECT>::Generate();
template uint32 ObjectGuidGenerator<HIGHGUID_CORPSE>::Generate();
template uint32 ObjectGuidGenerator<HIGHGUID_INSTANCE>::Generate();
template uint32 ObjectGuidGenerator<HIGHGUID_GROUP>::Generate();
+template uint32 ObjectGuidGenerator<HIGHGUID_EVENT>::Generate();
diff --git a/src/game/ObjectGuid.h b/src/game/ObjectGuid.h
index 99198ae..1bf4370 100644
--- a/src/game/ObjectGuid.h
+++ b/src/game/ObjectGuid.h
@@ -74,6 +74,7 @@ enum HighGuid
HIGHGUID_MO_TRANSPORT = 0x1FC, // blizz 1FC (for GAMEOBJECT_TYPE_MO_TRANSPORT)
HIGHGUID_INSTANCE = 0x1F4, // blizz 1F4
HIGHGUID_GROUP = 0x1F5, // blizz 1F5
+ HIGHGUID_EVENT = 0x7FF, // blizz unknown, need correct
};
class ObjectGuid;
@@ -145,6 +146,7 @@ class MANGOS_DLL_SPEC ObjectGuid
bool IsInstance() const { return GetHigh() == HIGHGUID_INSTANCE; }
bool IsGroup() const { return GetHigh() == HIGHGUID_GROUP; }
bool IsPlayerOrPet() const { return !IsEmpty() && (GetHigh() == HIGHGUID_PLAYER || GetHigh() == HIGHGUID_PET); }
+ bool IsEvent() const { return !IsEmpty() && (GetHigh() == HIGHGUID_EVENT); }
static TypeID GetTypeId(HighGuid high)
{
@@ -191,6 +193,7 @@ class MANGOS_DLL_SPEC ObjectGuid
case HIGHGUID_MO_TRANSPORT:
case HIGHGUID_INSTANCE:
case HIGHGUID_GROUP:
+ case HIGHGUID_EVENT:
return false;
case HIGHGUID_GAMEOBJECT:
case HIGHGUID_TRANSPORT:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index ea4355d..800560b 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -6078,6 +6078,13 @@ void ObjectMgr::SetHighestGuids()
delete result;
}
+ result = CharacterDatabase.Query( "SELECT MAX(id) FROM calendar_events" );
+ if (result)
+ {
+ m_EventGuids.Set((*result)[0].GetUInt32()+1);
+ delete result;
+ }
+
// setup reserved ranges for static guids spawn
m_StaticCreatureGuids.Set(m_FirstTemporaryCreatureGuid);
m_FirstTemporaryCreatureGuid += sWorld.getConfig(CONFIG_UINT32_GUID_RESERVE_SIZE_CREATURE);
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index 817996a..0e63d28 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -848,6 +848,7 @@ class ObjectMgr
uint32 GenerateCorpseLowGuid() { return m_CorpseGuids.Generate(); }
uint32 GenerateInstanceLowGuid() { return m_InstanceGuids.Generate(); }
uint32 GenerateGroupLowGuid() { return m_GroupGuids.Generate(); }
+ uint32 GenerateEventLowGuid() { return m_EventGuids.Generate(); }
uint32 GenerateArenaTeamId() { return m_ArenaTeamIds.Generate(); }
uint32 GenerateAuctionID() { return m_AuctionIds.Generate(); }
@@ -1208,6 +1209,7 @@ class ObjectMgr
ObjectGuidGenerator<HIGHGUID_CORPSE> m_CorpseGuids;
ObjectGuidGenerator<HIGHGUID_INSTANCE> m_InstanceGuids;
ObjectGuidGenerator<HIGHGUID_GROUP> m_GroupGuids;
+ ObjectGuidGenerator<HIGHGUID_EVENT> m_EventGuids;
QuestMap mQuestTemplates;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment