diff options
Diffstat (limited to 'src/server')
-rwxr-xr-x | src/server/game/Entities/Object/ObjectDefines.h | 4 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildMgr.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Guilds/GuildMgr.h | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/ObjectDefines.h b/src/server/game/Entities/Object/ObjectDefines.h index 4108063bfb3..58b2455c2e6 100755 --- a/src/server/game/Entities/Object/ObjectDefines.h +++ b/src/server/game/Entities/Object/ObjectDefines.h @@ -45,6 +45,7 @@ enum HighGuid HIGHGUID_CORPSE = 0xF101, // blizz F100 HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT) HIGHGUID_GROUP = 0x1F50, + HIGHGUID_GUILD = 0x1FF // new 4.x }; #define IS_EMPTY_GUID(Guid) (Guid == 0) @@ -64,6 +65,7 @@ enum HighGuid #define IS_TRANSPORT(Guid) (GUID_HIPART(Guid) == HIGHGUID_TRANSPORT) #define IS_MO_TRANSPORT(Guid) (GUID_HIPART(Guid) == HIGHGUID_MO_TRANSPORT) #define IS_GROUP(Guid) (GUID_HIPART(Guid) == HIGHGUID_GROUP) +#define IS_GUILD(Guid) (GUID_HIPART(Guid) == HIGHGUID_GUILD) // l - OBJECT_FIELD_GUID // e - OBJECT_FIELD_ENTRY for GO (except GAMEOBJECT_TYPE_MO_TRANSPORT) and creatures or UNIT_FIELD_PETNUMBER for pets @@ -87,6 +89,7 @@ inline bool IsGuidHaveEnPart(uint64 guid) case HIGHGUID_DYNAMICOBJECT: case HIGHGUID_CORPSE: case HIGHGUID_GROUP: + case HIGHGUID_GUILD: return false; case HIGHGUID_GAMEOBJECT: case HIGHGUID_TRANSPORT: @@ -117,6 +120,7 @@ inline char const* GetLogNameForGuid(uint64 guid) case HIGHGUID_CORPSE: return "corpse"; case HIGHGUID_MO_TRANSPORT: return "mo_transport"; case HIGHGUID_GROUP: return "group"; + case HIGHGUID_GUILD: return "guild"; default: return "<unknown>"; } diff --git a/src/server/game/Guilds/GuildMgr.cpp b/src/server/game/Guilds/GuildMgr.cpp index dd1ae020a51..1a6e125512b 100644 --- a/src/server/game/Guilds/GuildMgr.cpp +++ b/src/server/game/Guilds/GuildMgr.cpp @@ -59,6 +59,17 @@ Guild* GuildMgr::GetGuildById(uint32 guildId) const return NULL; } +Guild* GuildMgr::GetGuildByGuid(uint64 guid) const +{ + // Full guids are only used when receiving/sending data to client + // everywhere else guild id is used + if (IS_GUILD(guid)) + if (uint32 guildId = GUID_LOPART(guid)) + return GetGuildById(guildId); + + return NULL; +} + Guild* GuildMgr::GetGuildByName(const std::string& guildName) const { std::string search = guildName; diff --git a/src/server/game/Guilds/GuildMgr.h b/src/server/game/Guilds/GuildMgr.h index e53c46cb6be..d5aea8d13cb 100644 --- a/src/server/game/Guilds/GuildMgr.h +++ b/src/server/game/Guilds/GuildMgr.h @@ -32,6 +32,7 @@ public: Guild* GetGuildByLeader(uint64 guid) const; Guild* GetGuildById(uint32 guildId) const; + Guild* GetGuildByGuid(uint64 guid) const; Guild* GetGuildByName(const std::string& guildName) const; std::string GetGuildNameById(uint32 guildId) const; |