Core/Guilds: Preliminary implementation of guild guids

This commit is contained in:
Nay
2011-12-22 03:39:27 +00:00
parent 770ff57101
commit f9d398c6ad
3 changed files with 16 additions and 0 deletions

View File

@@ -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>";
}

View File

@@ -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;

View File

@@ -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;