mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 15:40:45 +01:00
Core/Misc: Replaced some macro definitions with inline functions
This commit is contained in:
@@ -51,7 +51,7 @@ void LFGMgr::_LoadFromDB(Field* fields, uint64 guid)
|
||||
if (!fields)
|
||||
return;
|
||||
|
||||
if (!IS_GROUP(guid))
|
||||
if (!IS_GROUP_GUID(guid))
|
||||
return;
|
||||
|
||||
SetLeader(guid, MAKE_NEW_GUID(fields[0].GetUInt32(), 0, HIGHGUID_PLAYER));
|
||||
@@ -77,7 +77,7 @@ void LFGMgr::_LoadFromDB(Field* fields, uint64 guid)
|
||||
|
||||
void LFGMgr::_SaveToDB(uint64 guid, uint32 db_guid)
|
||||
{
|
||||
if (!IS_GROUP(guid))
|
||||
if (!IS_GROUP_GUID(guid))
|
||||
return;
|
||||
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_LFG_DATA);
|
||||
@@ -758,7 +758,7 @@ void LFGMgr::LeaveLfg(uint64 guid)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_LFG, "LFGMgr::LeaveLfg: [" UI64FMTD "]", guid);
|
||||
|
||||
uint64 gguid = IS_GROUP(guid) ? guid : GetGroup(guid);
|
||||
uint64 gguid = IS_GROUP_GUID(guid) ? guid : GetGroup(guid);
|
||||
LfgState state = GetState(guid);
|
||||
switch (state)
|
||||
{
|
||||
@@ -1624,7 +1624,7 @@ LfgType LFGMgr::GetDungeonType(uint32 dungeonId)
|
||||
LfgState LFGMgr::GetState(uint64 guid)
|
||||
{
|
||||
LfgState state;
|
||||
if (IS_GROUP(guid))
|
||||
if (IS_GROUP_GUID(guid))
|
||||
state = GroupsStore[guid].GetState();
|
||||
else
|
||||
state = PlayersStore[guid].GetState();
|
||||
@@ -1696,7 +1696,7 @@ uint8 LFGMgr::GetKicksLeft(uint64 guid)
|
||||
|
||||
void LFGMgr::RestoreState(uint64 guid, char const *debugMsg)
|
||||
{
|
||||
if (IS_GROUP(guid))
|
||||
if (IS_GROUP_GUID(guid))
|
||||
{
|
||||
LfgGroupData& data = GroupsStore[guid];
|
||||
if (sLog->ShouldLog(LOG_FILTER_LFG, LOG_LEVEL_DEBUG))
|
||||
@@ -1725,7 +1725,7 @@ void LFGMgr::RestoreState(uint64 guid, char const *debugMsg)
|
||||
|
||||
void LFGMgr::SetState(uint64 guid, LfgState state)
|
||||
{
|
||||
if (IS_GROUP(guid))
|
||||
if (IS_GROUP_GUID(guid))
|
||||
{
|
||||
LfgGroupData& data = GroupsStore[guid];
|
||||
if (sLog->ShouldLog(LOG_FILTER_LFG, LOG_LEVEL_DEBUG))
|
||||
@@ -1932,13 +1932,13 @@ void LFGMgr::SendLfgQueueStatus(uint64 guid, LfgQueueStatusData const& data)
|
||||
|
||||
bool LFGMgr::IsLfgGroup(uint64 guid)
|
||||
{
|
||||
return guid && IS_GROUP(guid) && GroupsStore[guid].IsLfgGroup();
|
||||
return guid && IS_GROUP_GUID(guid) && GroupsStore[guid].IsLfgGroup();
|
||||
}
|
||||
|
||||
LFGQueue& LFGMgr::GetQueue(uint64 guid)
|
||||
{
|
||||
uint8 queueId = 0;
|
||||
if (IS_GROUP(guid))
|
||||
if (IS_GROUP_GUID(guid))
|
||||
{
|
||||
const LfgGuidSet& players = GetPlayers(guid);
|
||||
uint64 pguid = players.empty() ? 0 : (*players.begin());
|
||||
|
||||
@@ -358,7 +358,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check)
|
||||
|
||||
// Store group so we don't need to call Mgr to get it later (if it's player group will be 0 otherwise would have joined as group)
|
||||
for (LfgRolesMap::const_iterator it2 = itQueue->second.roles.begin(); it2 != itQueue->second.roles.end(); ++it2)
|
||||
proposalGroups[it2->first] = IS_GROUP(itQueue->first) ? itQueue->first : 0;
|
||||
proposalGroups[it2->first] = IS_GROUP_GUID(itQueue->first) ? itQueue->first : 0;
|
||||
|
||||
numPlayers += itQueue->second.roles.size();
|
||||
|
||||
@@ -601,7 +601,7 @@ std::string LFGQueue::DumpQueueInfo() const
|
||||
for (LfgGuidList::const_iterator it = queue.begin(); it != queue.end(); ++it)
|
||||
{
|
||||
uint64 guid = *it;
|
||||
if (IS_GROUP(guid))
|
||||
if (IS_GROUP_GUID(guid))
|
||||
{
|
||||
groups++;
|
||||
playersInGroup += sLFGMgr->GetPlayerCount(guid);
|
||||
|
||||
@@ -270,7 +270,7 @@ void GameObject::Update(uint32 diff)
|
||||
} else
|
||||
AI()->UpdateAI(diff);
|
||||
|
||||
if (IS_MO_TRANSPORT(GetGUID()))
|
||||
if (IS_MO_TRANSPORT_GUID(GetGUID()))
|
||||
{
|
||||
//((Transport*)this)->Update(p_time);
|
||||
return;
|
||||
|
||||
@@ -21,64 +21,195 @@
|
||||
|
||||
#include "Define.h"
|
||||
|
||||
// used for creating values for respawn for example
|
||||
#define MAKE_PAIR64(l, h) uint64(uint32(l) | (uint64(h) << 32))
|
||||
#define PAIR64_HIPART(x) (uint32)((uint64(x) >> 32) & UI64LIT(0x00000000FFFFFFFF))
|
||||
#define PAIR64_LOPART(x) (uint32)(uint64(x) & UI64LIT(0x00000000FFFFFFFF))
|
||||
|
||||
#define MAKE_PAIR16(l, h) uint16(uint8(l) | (uint16(h) << 8))
|
||||
#define MAKE_PAIR32(l, h) uint32(uint16(l) | (uint32(h) << 16))
|
||||
#define PAIR32_HIPART(x) (uint16)((uint32(x) >> 16) & 0x0000FFFF)
|
||||
#define PAIR32_LOPART(x) (uint16)(uint32(x) & 0x0000FFFF)
|
||||
|
||||
enum HighGuid
|
||||
{
|
||||
HIGHGUID_ITEM = 0x4000, // blizz 4000
|
||||
HIGHGUID_CONTAINER = 0x4000, // blizz 4000
|
||||
HIGHGUID_PLAYER = 0x0000, // blizz 0000
|
||||
HIGHGUID_GAMEOBJECT = 0xF110, // blizz F110
|
||||
HIGHGUID_TRANSPORT = 0xF120, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT)
|
||||
HIGHGUID_UNIT = 0xF130, // blizz F130
|
||||
HIGHGUID_PET = 0xF140, // blizz F140
|
||||
HIGHGUID_VEHICLE = 0xF150, // blizz F550
|
||||
HIGHGUID_DYNAMICOBJECT = 0xF100, // blizz F100
|
||||
HIGHGUID_CORPSE = 0xF101, // blizz F100
|
||||
HIGHGUID_MO_TRANSPORT = 0x1FC0, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
||||
HIGHGUID_GROUP = 0x1F50
|
||||
HIGHGUID_ITEM = 0x400, // blizz 4000
|
||||
HIGHGUID_CONTAINER = 0x400, // blizz 4000
|
||||
HIGHGUID_PLAYER = 0x000, // blizz 0000
|
||||
HIGHGUID_GAMEOBJECT = 0xF11, // blizz F110
|
||||
HIGHGUID_TRANSPORT = 0xF12, // blizz F120 (for GAMEOBJECT_TYPE_TRANSPORT)
|
||||
HIGHGUID_UNIT = 0xF13, // blizz F130
|
||||
HIGHGUID_PET = 0xF14, // blizz F140
|
||||
HIGHGUID_VEHICLE = 0xF15, // blizz F550
|
||||
HIGHGUID_DYNAMICOBJECT = 0xF10, // blizz F100
|
||||
HIGHGUID_CORPSE = 0xF101, // blizz F100
|
||||
HIGHGUID_MO_TRANSPORT = 0x1FC, // blizz 1FC0 (for GAMEOBJECT_TYPE_MO_TRANSPORT)
|
||||
HIGHGUID_GROUP = 0x1F5
|
||||
};
|
||||
|
||||
#define IS_EMPTY_GUID(Guid) (Guid == 0)
|
||||
// used for creating values for respawn for example
|
||||
inline uint64 MAKE_PAIR64(uint32 l, uint32 h);
|
||||
inline uint32 PAIR64_HIPART(uint64 x);
|
||||
inline uint32 PAIR64_LOPART(uint64 x);
|
||||
inline uint16 MAKE_PAIR16(uint8 l, uint8 h);
|
||||
inline uint32 MAKE_PAIR32(uint16 l, uint16 h);
|
||||
inline uint16 PAIR32_HIPART(uint32 x);
|
||||
inline uint16 PAIR32_LOPART(uint32 x);
|
||||
|
||||
#define IS_CREATURE_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_UNIT)
|
||||
#define IS_PET_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_PET)
|
||||
#define IS_VEHICLE_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_VEHICLE)
|
||||
#define IS_CRE_OR_VEH_GUID(Guid) (IS_CREATURE_GUID(Guid) || IS_VEHICLE_GUID(Guid))
|
||||
#define IS_CRE_OR_VEH_OR_PET_GUID(Guid)(IS_CRE_OR_VEH_GUID(Guid) || IS_PET_GUID(Guid))
|
||||
#define IS_PLAYER_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_PLAYER && Guid != 0)
|
||||
#define IS_UNIT_GUID(Guid) (IS_CRE_OR_VEH_OR_PET_GUID(Guid) || IS_PLAYER_GUID(Guid))
|
||||
// special case for empty guid need check
|
||||
#define IS_ITEM_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_ITEM)
|
||||
#define IS_GAMEOBJECT_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_GAMEOBJECT)
|
||||
#define IS_DYNAMICOBJECT_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_DYNAMICOBJECT)
|
||||
#define IS_CORPSE_GUID(Guid) (GUID_HIPART(Guid) == HIGHGUID_CORPSE)
|
||||
#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)
|
||||
inline bool IS_EMPTY_GUID(uint64 guid);
|
||||
inline bool IS_CREATURE_GUID(uint64 guid);
|
||||
inline bool IS_PET_GUID(uint64 guid);
|
||||
inline bool IS_VEHICLE_GUID(uint64 guid);
|
||||
inline bool IS_CRE_OR_VEH_GUID(uint64 guid);
|
||||
inline bool IS_CRE_OR_VEH_OR_PET_GUID(uint64 guid);
|
||||
inline bool IS_PLAYER_GUID(uint64 guid);
|
||||
inline bool IS_UNIT_GUID(uint64 guid);
|
||||
inline bool IS_ITEM_GUID(uint64 guid);
|
||||
inline bool IS_GAMEOBJECT_GUID(uint64 guid);
|
||||
inline bool IS_DYNAMICOBJECT_GUID(uint64 guid);
|
||||
inline bool IS_CORPSE_GUID(uint64 guid);
|
||||
inline bool IS_TRANSPORT_GUID(uint64 guid);
|
||||
inline bool IS_MO_TRANSPORT_GUID(uint64 guid);
|
||||
inline bool IS_GROUP_GUID(uint64 guid);
|
||||
|
||||
// l - OBJECT_FIELD_GUID
|
||||
// e - OBJECT_FIELD_ENTRY for GO (except GAMEOBJECT_TYPE_MO_TRANSPORT) and creatures or UNIT_FIELD_PETNUMBER for pets
|
||||
// h - OBJECT_FIELD_GUID + 1
|
||||
#define MAKE_NEW_GUID(l, e, h) uint64(uint64(l) | (uint64(e) << 24) | (uint64(h) << 48))
|
||||
inline uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h);
|
||||
|
||||
#define GUID_HIPART(x) (uint32)((uint64(x) >> 48) & 0x0000FFFF)
|
||||
//#define GUID_HIPART(x) (uint32)((uint64(x) >> 52)) & 0x0000FFFF)
|
||||
inline uint32 GUID_HIPART(uint64 guid);
|
||||
inline uint32 GUID_ENPART(uint64 x);
|
||||
inline uint32 GUID_LOPART(uint64 x);
|
||||
|
||||
// We have different low and middle part size for different guid types
|
||||
#define _GUID_ENPART_2(x) 0
|
||||
#define _GUID_ENPART_3(x) (uint32)((uint64(x) >> 24) & UI64LIT(0x0000000000FFFFFF))
|
||||
#define _GUID_LOPART_2(x) (uint32)(uint64(x) & UI64LIT(0x00000000FFFFFFFF))
|
||||
#define _GUID_LOPART_3(x) (uint32)(uint64(x) & UI64LIT(0x0000000000FFFFFF))
|
||||
inline bool IsGuidHaveEnPart(uint64 guid);
|
||||
inline char const* GetLogNameForGuid(uint64 guid);
|
||||
|
||||
inline bool IsGuidHaveEnPart(uint64 guid)
|
||||
uint64 MAKE_PAIR64(uint32 l, uint32 h)
|
||||
{
|
||||
return uint64(l | (uint64(h) << 32));
|
||||
}
|
||||
|
||||
uint32 PAIR64_HIPART(uint64 x)
|
||||
{
|
||||
return (uint32)((x >> 32) & UI64LIT(0x00000000FFFFFFFF));
|
||||
}
|
||||
|
||||
uint32 PAIR64_LOPART(uint64 x)
|
||||
{
|
||||
return (uint32)(x & UI64LIT(0x00000000FFFFFFFF));
|
||||
}
|
||||
|
||||
uint16 MAKE_PAIR16(uint8 l, uint8 h)
|
||||
{
|
||||
return uint16(l | (uint16(h) << 8));
|
||||
}
|
||||
|
||||
uint32 MAKE_PAIR32(uint16 l, uint16 h)
|
||||
{
|
||||
return uint32(l | (uint32(h) << 16));
|
||||
}
|
||||
|
||||
uint16 PAIR32_HIPART(uint32 x)
|
||||
{
|
||||
return (uint16)((x >> 16) & 0x0000FFFF);
|
||||
}
|
||||
|
||||
uint16 PAIR32_LOPART(uint32 x)
|
||||
{
|
||||
return (uint16)(x & 0x0000FFFF);
|
||||
}
|
||||
|
||||
bool IS_EMPTY_GUID(uint64 guid)
|
||||
{
|
||||
return guid == 0;
|
||||
}
|
||||
|
||||
bool IS_CREATURE_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_UNIT;
|
||||
}
|
||||
|
||||
bool IS_PET_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_PET;
|
||||
}
|
||||
|
||||
bool IS_VEHICLE_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_VEHICLE;
|
||||
}
|
||||
|
||||
bool IS_CRE_OR_VEH_GUID(uint64 guid)
|
||||
{
|
||||
return IS_CREATURE_GUID(guid) || IS_VEHICLE_GUID(guid);
|
||||
}
|
||||
|
||||
bool IS_CRE_OR_VEH_OR_PET_GUID(uint64 guid)
|
||||
{
|
||||
return IS_CRE_OR_VEH_GUID(guid) || IS_PET_GUID(guid);
|
||||
}
|
||||
|
||||
bool IS_PLAYER_GUID(uint64 guid)
|
||||
{
|
||||
return guid != 0 && GUID_HIPART(guid) == HIGHGUID_PLAYER;
|
||||
}
|
||||
|
||||
bool IS_UNIT_GUID(uint64 guid)
|
||||
{
|
||||
return IS_CRE_OR_VEH_OR_PET_GUID(guid) || IS_PLAYER_GUID(guid);
|
||||
}
|
||||
|
||||
bool IS_ITEM_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_ITEM;
|
||||
}
|
||||
|
||||
bool IS_GAMEOBJECT_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_GAMEOBJECT;
|
||||
}
|
||||
|
||||
bool IS_DYNAMICOBJECT_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_DYNAMICOBJECT;
|
||||
}
|
||||
|
||||
bool IS_CORPSE_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_CORPSE;
|
||||
}
|
||||
|
||||
bool IS_TRANSPORT_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_TRANSPORT;
|
||||
}
|
||||
|
||||
bool IS_MO_TRANSPORT_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_MO_TRANSPORT;
|
||||
}
|
||||
|
||||
bool IS_GROUP_GUID(uint64 guid)
|
||||
{
|
||||
return GUID_HIPART(guid) == HIGHGUID_GROUP;
|
||||
}
|
||||
|
||||
uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h)
|
||||
{
|
||||
return uint64(uint64(l) | (uint64(e) << 32) | (uint64(h) << (h == HIGHGUID_CORPSE) ? 48 : 52));
|
||||
}
|
||||
|
||||
uint32 GUID_HIPART(uint64 guid)
|
||||
{
|
||||
uint32 t = ((uint64(guid) >> 48) & 0x0000FFFF);
|
||||
return (t == HIGHGUID_CORPSE) ? t : ((t >> 4) & 0x00000FFF);
|
||||
}
|
||||
|
||||
uint32 GUID_ENPART(uint64 x)
|
||||
{
|
||||
return IsGuidHaveEnPart(x)
|
||||
? ((uint32)((x >> 32) & UI64LIT(0x00000000000FFFFF)))
|
||||
: 0;
|
||||
}
|
||||
|
||||
uint32 GUID_LOPART(uint64 x)
|
||||
{
|
||||
// _GUID_LOPART_3 and _GUID_LOPART_2 were both equal to PAIR64_LOPART
|
||||
return PAIR64_LOPART(x);
|
||||
}
|
||||
|
||||
bool IsGuidHaveEnPart(uint64 guid)
|
||||
{
|
||||
switch (GUID_HIPART(guid))
|
||||
{
|
||||
@@ -99,10 +230,7 @@ inline bool IsGuidHaveEnPart(uint64 guid)
|
||||
}
|
||||
}
|
||||
|
||||
#define GUID_ENPART(x) (IsGuidHaveEnPart(x) ? _GUID_ENPART_3(x) : _GUID_ENPART_2(x))
|
||||
#define GUID_LOPART(x) (IsGuidHaveEnPart(x) ? _GUID_LOPART_3(x) : _GUID_LOPART_2(x))
|
||||
|
||||
inline char const* GetLogNameForGuid(uint64 guid)
|
||||
char const* GetLogNameForGuid(uint64 guid)
|
||||
{
|
||||
switch (GUID_HIPART(guid))
|
||||
{
|
||||
@@ -121,4 +249,5 @@ inline char const* GetLogNameForGuid(uint64 guid)
|
||||
return "<unknown>";
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -771,7 +771,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
void UpdateAI(uint32 const /*diff*/)
|
||||
{
|
||||
// When duration of oppened riff visual ends,
|
||||
// closed one should be cast
|
||||
|
||||
@@ -352,11 +352,6 @@ std::string ByteArrayToHexStr(uint8 const* bytes, uint32 length, bool reverse =
|
||||
#ifndef _FLAG96
|
||||
#define _FLAG96
|
||||
|
||||
#ifndef PAIR64_HIPART
|
||||
#define PAIR64_HIPART(x) (uint32)((uint64(x) >> 32) & UI64LIT(0x00000000FFFFFFFF))
|
||||
#define PAIR64_LOPART(x) (uint32)(uint64(x) & UI64LIT(0x00000000FFFFFFFF))
|
||||
#endif
|
||||
|
||||
// simple class for not-modifyable list
|
||||
template <typename T>
|
||||
class HookList
|
||||
@@ -404,8 +399,8 @@ public:
|
||||
|
||||
flag96(uint64 p1, uint32 p2)
|
||||
{
|
||||
part[0] = PAIR64_LOPART(p1);
|
||||
part[1] = PAIR64_HIPART(p1);
|
||||
part[0] = (uint32)(p1 & UI64LIT(0x00000000FFFFFFFF));
|
||||
part[1] = (uint32)((p1 >> 32) & UI64LIT(0x00000000FFFFFFFF));
|
||||
part[2] = p2;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user