aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2025_10_01_00_world.sql3
-rw-r--r--src/server/database/Database/Implementation/CharacterDatabase.cpp2
-rw-r--r--src/server/database/Database/Implementation/CharacterDatabase.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp14
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp3
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.h2
-rw-r--r--src/server/game/Entities/Item/Container/Bag.cpp6
-rw-r--r--src/server/game/Entities/Item/Item.cpp2
-rw-r--r--src/server/game/Entities/Object/Object.cpp10
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp176
-rw-r--r--src/server/game/Entities/Player/Player.h47
-rw-r--r--src/server/game/Entities/Vehicle/VehicleDefines.h3
-rw-r--r--src/server/game/Events/GameEventMgr.cpp2
-rw-r--r--src/server/game/Globals/ObjectAccessor.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp6
-rw-r--r--src/server/game/Globals/ObjectMgr.h2
-rw-r--r--src/server/game/Groups/Group.cpp8
-rw-r--r--src/server/game/Groups/Group.h1
-rw-r--r--src/server/game/Groups/GroupMgr.cpp4
-rw-r--r--src/server/game/Guilds/Guild.cpp9
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp2
-rw-r--r--src/server/game/Handlers/MailHandler.cpp2
-rw-r--r--src/server/game/Maps/TransportMgr.cpp3
-rw-r--r--src/server/scripts/Commands/cs_list.cpp10
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp4
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp12
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp33
-rw-r--r--src/server/scripts/World/action_ip_logger.cpp5
-rw-r--r--src/server/shared/SharedDefines.h41
31 files changed, 214 insertions, 208 deletions
diff --git a/sql/updates/world/3.3.5/2025_10_01_00_world.sql b/sql/updates/world/3.3.5/2025_10_01_00_world.sql
new file mode 100644
index 00000000000..9f2186f73ea
--- /dev/null
+++ b/sql/updates/world/3.3.5/2025_10_01_00_world.sql
@@ -0,0 +1,3 @@
+-- Fix Illidan Stormrage health and unit_class
+UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=22917;
+UPDATE `creature` SET `curhealth`=4249280 WHERE `guid`=52484;
diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp
index a20984fe09d..729840647a8 100644
--- a/src/server/database/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp
@@ -211,7 +211,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_UPD_GUILD_BANK_TAB_INFO, "UPDATE guild_bank_tab SET TabName = ?, TabIcon = ? WHERE guildid = ? AND TabId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_GUILD_BANK_MONEY, "UPDATE guild SET BankMoney = ? WHERE guildid = ?", CONNECTION_ASYNC); // 0: uint64, 1: uint32
// 0: uint8, 1: uint32, 2: uint8, 3: uint32
- PrepareStatement(CHAR_UPD_GUILD_BANK_EVENTLOG_TAB, "UPDATE guild_bank_eventlog SET TabId = ? WHERE guildid = ? AND TabId = ? AND LogGuid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_GUILD_RANK_BANK_MONEY, "UPDATE guild_rank SET BankMoneyPerDay = ? WHERE rid = ? AND guildid = ?", CONNECTION_ASYNC); // 0: uint32, 1: uint8, 2: uint32
PrepareStatement(CHAR_UPD_GUILD_BANK_TAB_TEXT, "UPDATE guild_bank_tab SET TabText = ? WHERE guildid = ? AND TabId = ?", CONNECTION_ASYNC); // 0: string, 1: uint32, 2: uint8
@@ -418,7 +417,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_SEL_CHAR_HOMEBIND, "SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_GUID_NAME_BY_ACC, "SELECT guid, name, online FROM characters WHERE account = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHARACTER_AT_LOGIN, "SELECT at_login FROM characters WHERE guid = ?", CONNECTION_SYNCH);
- PrepareStatement(CHAR_SEL_CHAR_CLASS_LVL_AT_LOGIN, "SELECT class, level, at_login, knownTitles FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_CUSTOMIZE_INFO, "SELECT name, race, class, gender, at_login FROM characters WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHAR_RACE_OR_FACTION_CHANGE_INFOS, "SELECT c.at_login, c.knownTitles, gm.guid, c.map FROM characters c LEFT JOIN group_member gm ON c.guid = gm.memberGuid WHERE c.guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_INSTANCE, "SELECT data, completedEncounters FROM instance WHERE map = ? AND id = ?", CONNECTION_SYNCH);
diff --git a/src/server/database/Database/Implementation/CharacterDatabase.h b/src/server/database/Database/Implementation/CharacterDatabase.h
index 4258d1b5788..2ac4b706bd1 100644
--- a/src/server/database/Database/Implementation/CharacterDatabase.h
+++ b/src/server/database/Database/Implementation/CharacterDatabase.h
@@ -182,7 +182,6 @@ enum CharacterDatabaseStatements : uint32
CHAR_UPD_GUILD_EMBLEM_INFO,
CHAR_UPD_GUILD_BANK_TAB_INFO,
CHAR_UPD_GUILD_BANK_MONEY,
- CHAR_UPD_GUILD_BANK_EVENTLOG_TAB,
CHAR_UPD_GUILD_RANK_BANK_MONEY,
CHAR_UPD_GUILD_BANK_TAB_TEXT,
CHAR_INS_GUILD_MEMBER_WITHDRAW,
@@ -347,7 +346,6 @@ enum CharacterDatabaseStatements : uint32
CHAR_SEL_CHAR_HOMEBIND,
CHAR_SEL_CHAR_GUID_NAME_BY_ACC,
CHAR_SEL_CHARACTER_AT_LOGIN,
- CHAR_SEL_CHAR_CLASS_LVL_AT_LOGIN,
CHAR_SEL_CHAR_CUSTOMIZE_INFO,
CHAR_SEL_CHAR_RACE_OR_FACTION_CHANGE_INFOS,
CHAR_SEL_INSTANCE,
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index f7e93b85a6b..2a685a6be04 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -216,23 +216,23 @@ void SmartAIMgr::LoadSmartAIFromDB()
{
case SMART_SCRIPT_TYPE_CREATURE:
{
- CreatureData const* creature = sObjectMgr->GetCreatureData(uint32(std::abs(temp.entryOrGuid)));
+ CreatureData const* creature = sObjectMgr->GetCreatureData(uint32(-temp.entryOrGuid));
if (!creature)
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature guid ({}) does not exist, skipped loading.", uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature guid ({}) does not exist, skipped loading.", -temp.entryOrGuid);
continue;
}
CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(creature->id);
if (!creatureInfo)
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature entry ({}) guid ({}) does not exist, skipped loading.", creature->id, uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature entry ({}) guid ({}) does not exist, skipped loading.", creature->id, -temp.entryOrGuid);
continue;
}
if (creatureInfo->AIName != "SmartAI")
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature entry ({}) guid ({}) is not using SmartAI, skipped loading.", creature->id, uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature entry ({}) guid ({}) is not using SmartAI, skipped loading.", creature->id, -temp.entryOrGuid);
continue;
}
break;
@@ -242,20 +242,20 @@ void SmartAIMgr::LoadSmartAIFromDB()
GameObjectData const* gameObject = sObjectMgr->GetGameObjectData(uint32(std::abs(temp.entryOrGuid)));
if (!gameObject)
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject guid ({}) does not exist, skipped loading.", uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject guid ({}) does not exist, skipped loading.", -temp.entryOrGuid);
continue;
}
GameObjectTemplate const* gameObjectInfo = sObjectMgr->GetGameObjectTemplate(gameObject->id);
if (!gameObjectInfo)
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject entry ({}) guid ({}) does not exist, skipped loading.", gameObject->id, uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject entry ({}) guid ({}) does not exist, skipped loading.", gameObject->id, -temp.entryOrGuid);
continue;
}
if (gameObjectInfo->AIName != "SmartGameObjectAI")
{
- TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject entry ({}) guid ({}) is not using SmartGameObjectAI, skipped loading.", gameObject->id, uint32(std::abs(temp.entryOrGuid)));
+ TC_LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject entry ({}) guid ({}) is not using SmartGameObjectAI, skipped loading.", gameObject->id, -temp.entryOrGuid);
continue;
}
break;
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index 588e69302ec..8fe0383633c 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -153,7 +153,6 @@ bool Corpse::LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields)
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// SELECT posX, posY, posZ, orientation, mapId, displayId, itemCache, bytes1, bytes2, guildId, flags, dynFlags, time, corpseType, instanceId, phaseMask, guid FROM corpse WHERE mapId = ? AND instanceId = ?
- ObjectGuid::LowType ownerGuid = fields[16].GetUInt32();
float posX = fields[0].GetFloat();
float posY = fields[1].GetFloat();
float posZ = fields[2].GetFloat();
@@ -174,7 +173,7 @@ bool Corpse::LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields)
SetUInt32Value(CORPSE_FIELD_GUILD, fields[9].GetUInt32());
SetUInt32Value(CORPSE_FIELD_FLAGS, fields[10].GetUInt8());
SetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS, fields[11].GetUInt8());
- SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid(HighGuid::Player, ownerGuid));
+ SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid::Create<HighGuid::Player>(fields[16].GetUInt32()));
m_time = time_t(fields[12].GetUInt32());
diff --git a/src/server/game/Entities/Creature/CreatureGroups.h b/src/server/game/Entities/Creature/CreatureGroups.h
index 9889baf13d8..748df579251 100644
--- a/src/server/game/Entities/Creature/CreatureGroups.h
+++ b/src/server/game/Entities/Creature/CreatureGroups.h
@@ -52,7 +52,7 @@ class TC_GAME_API FormationMgr
FormationMgr();
~FormationMgr();
- std::unordered_map<uint32 /*spawnID*/, FormationInfo> _creatureGroupMap;
+ std::unordered_map<ObjectGuid::LowType /*spawnID*/, FormationInfo> _creatureGroupMap;
public:
static FormationMgr* instance();
diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp
index 267ee1f691a..814cc01ec89 100644
--- a/src/server/game/Entities/Item/Container/Bag.cpp
+++ b/src/server/game/Entities/Item/Container/Bag.cpp
@@ -82,7 +82,7 @@ bool Bag::Create(ObjectGuid::LowType guidlow, uint32 itemid, Player const* owner
if (owner)
{
- SetGuidValue(ITEM_FIELD_OWNER, owner->GetGUID());
+ SetOwnerGUID(owner->GetGUID());
SetGuidValue(ITEM_FIELD_CONTAINED, owner->GetGUID());
}
@@ -96,7 +96,7 @@ bool Bag::Create(ObjectGuid::LowType guidlow, uint32 itemid, Player const* owner
// Cleaning 20 slots
for (uint8 i = 0; i < MAX_BAG_SIZE; ++i)
{
- SetGuidValue(CONTAINER_FIELD_SLOT_1 + (i*2), ObjectGuid::Empty);
+ SetGuidValue(CONTAINER_FIELD_SLOT_1 + (i * 2), ObjectGuid::Empty);
m_bagslot[i] = nullptr;
}
@@ -165,7 +165,7 @@ void Bag::StoreItem(uint8 slot, Item* pItem, bool /*update*/)
m_bagslot[slot] = pItem;
SetGuidValue(CONTAINER_FIELD_SLOT_1 + (slot * 2), pItem->GetGUID());
pItem->SetGuidValue(ITEM_FIELD_CONTAINED, GetGUID());
- pItem->SetGuidValue(ITEM_FIELD_OWNER, GetOwnerGUID());
+ pItem->SetOwnerGUID(GetOwnerGUID());
pItem->SetContainer(this);
pItem->SetSlot(slot);
}
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 0d9648ca7e4..23fd96789b2 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -273,7 +273,7 @@ bool Item::Create(ObjectGuid::LowType guidlow, uint32 itemId, Player const* owne
if (owner)
{
- SetGuidValue(ITEM_FIELD_OWNER, owner->GetGUID());
+ SetOwnerGUID(owner->GetGUID());
SetGuidValue(ITEM_FIELD_CONTAINED, owner->GetGUID());
}
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index e825af8c4dd..f5d7ae63f4d 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -3458,11 +3458,13 @@ void WorldObject::DestroyForNearbyPlayers()
if (!player->HaveAtClient(this))
continue;
- if (Unit const* unit = ToUnit(); unit && unit->GetCharmerGUID() == player->GetGUID()) /// @todo this is for puppet
- continue;
+ if (Unit const* unit = ToUnit())
+ {
+ if (unit->GetCharmerGUID() == player->GetGUID()) /// @todo this is for puppet
+ continue;
- if (GetTypeId() == TYPEID_UNIT)
- DestroyForPlayer(player, ToUnit()->IsDuringRemoveFromWorld() && ToCreature()->isDead()); // at remove from world (destroy) show kill animation
+ DestroyForPlayer(player, unit->IsDuringRemoveFromWorld() && unit->isDead()); // at remove from world (destroy) show kill animation
+ }
else
DestroyForPlayer(player);
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 3ede7366b9b..e2855e6fdce 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -838,9 +838,7 @@ bool Pet::CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner)
bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phaseMask)
{
TC_LOG_DEBUG("entities.pet", "Pet::CreateBaseForTamed");
- ObjectGuid::LowType guid = map->GenerateLowGuid<HighGuid::Pet>();
- uint32 petId = sObjectMgr->GeneratePetNumber();
- if (!Create(guid, map, phaseMask, cinfo->Entry, petId))
+ if (!Create(map->GenerateLowGuid<HighGuid::Pet>(), map, phaseMask, cinfo->Entry, sObjectMgr->GeneratePetNumber()))
return false;
SetMaxPower(POWER_HAPPINESS, GetCreatePowerValue(POWER_HAPPINESS));
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 348b6c9d487..05b3ffa9d06 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -109,18 +109,6 @@
#define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS)
-#define PLAYER_SKILL_INDEX(x) (PLAYER_SKILL_INFO_1_1 + ((x)*3))
-#define PLAYER_SKILL_VALUE_INDEX(x) (PLAYER_SKILL_INDEX(x)+1)
-#define PLAYER_SKILL_BONUS_INDEX(x) (PLAYER_SKILL_INDEX(x)+2)
-
-#define SKILL_VALUE(x) PAIR32_LOPART(x)
-#define SKILL_MAX(x) PAIR32_HIPART(x)
-#define MAKE_SKILL_VALUE(v, m) MAKE_PAIR32(v, m)
-
-#define SKILL_TEMP_BONUS(x) int16(PAIR32_LOPART(x))
-#define SKILL_PERM_BONUS(x) int16(PAIR32_HIPART(x))
-#define MAKE_SKILL_BONUS(t, p) MAKE_PAIR32(t, p)
-
enum CharacterFlags
{
CHARACTER_FLAG_NONE = 0x00000000,
@@ -4038,7 +4026,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
uint32 mail_id = mailFields[0].GetUInt32();
uint8 mailType = mailFields[1].GetUInt8();
uint16 mailTemplateId= mailFields[2].GetUInt16();
- uint32 sender = mailFields[3].GetUInt32();
+ ObjectGuid::LowType sender = mailFields[3].GetUInt32();
std::string subject = mailFields[4].GetString();
std::string body = mailFields[5].GetString();
uint32 money = mailFields[6].GetUInt32();
@@ -5481,21 +5469,17 @@ bool Player::UpdateSkill(uint32 skill_id, uint32 step)
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return false;
- uint32 valueIndex = PLAYER_SKILL_VALUE_INDEX(itr->second.pos);
- uint32 data = GetUInt32Value(valueIndex);
- uint32 value = SKILL_VALUE(data);
- uint32 max = SKILL_MAX(data);
+ uint16 value = GetSkillRankByPos(itr->second.pos);
+ uint16 max = GetSkillMaxRankByPos(itr->second.pos);
- if ((!max) || (!value) || (value >= max))
+ if (!max || !value || value >= max)
return false;
if (value < max)
{
- uint32 new_value = value + step;
- if (new_value > max)
- new_value = max;
+ uint16 new_value = std::min(uint16(value + step), max);
- SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(new_value, max));
+ SetSkillRank(itr->second.pos, new_value);
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
@@ -5638,11 +5622,8 @@ bool Player::UpdateSkillPro(uint16 skillId, int32 chance, uint32 step)
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return false;
- uint32 valueIndex = PLAYER_SKILL_VALUE_INDEX(itr->second.pos);
-
- uint32 data = GetUInt32Value(valueIndex);
- uint16 value = SKILL_VALUE(data);
- uint16 max = SKILL_MAX(data);
+ uint16 value = GetSkillRankByPos(itr->second.pos);
+ uint16 max = GetSkillMaxRankByPos(itr->second.pos);
if (!max || !value || value >= max)
return false;
@@ -5659,7 +5640,7 @@ bool Player::UpdateSkillPro(uint16 skillId, int32 chance, uint32 step)
if (new_value > max)
new_value = max;
- SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(new_value, max));
+ SetSkillRank(itr->second.pos, new_value);
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
@@ -5756,16 +5737,10 @@ void Player::ModifySkillBonus(uint32 skillid, int32 val, bool talent)
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return;
- uint32 bonusIndex = PLAYER_SKILL_BONUS_INDEX(itr->second.pos);
-
- uint32 bonus_val = GetUInt32Value(bonusIndex);
- int16 temp_bonus = SKILL_TEMP_BONUS(bonus_val);
- int16 perm_bonus = SKILL_PERM_BONUS(bonus_val);
-
if (talent) // permanent bonus stored in high part
- SetUInt32Value(bonusIndex, MAKE_SKILL_BONUS(temp_bonus, perm_bonus+val));
+ SetSkillPermBonus(itr->second.pos, GetSkillPermBonusByPos(itr->second.pos) + val);
else // temporary/item bonus stored in low part
- SetUInt32Value(bonusIndex, MAKE_SKILL_BONUS(temp_bonus+val, perm_bonus));
+ SetSkillTempBonus(itr->second.pos, GetSkillTempBonusByPos(itr->second.pos) + val);
}
void Player::UpdateSkillsForLevel()
@@ -5788,10 +5763,7 @@ void Player::UpdateSkillsForLevel()
if (GetSkillRangeType(rcEntry) != SKILL_RANGE_LEVEL)
continue;
- uint32 valueIndex = PLAYER_SKILL_VALUE_INDEX(itr->second.pos);
- uint32 data = GetUInt32Value(valueIndex);
- uint32 max = SKILL_MAX(data);
- uint32 val = SKILL_VALUE(data);
+ uint16 max = GetSkillMaxRankByPos(itr->second.pos);
/// update only level dependent max skill values
if (max != 1)
@@ -5799,13 +5771,14 @@ void Player::UpdateSkillsForLevel()
/// maximize skill always
if (alwaysMaxSkill || (rcEntry->Flags & SKILL_FLAG_ALWAYS_MAX_VALUE))
{
- SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(maxSkill, maxSkill));
+ SetSkillRank(itr->second.pos, maxSkill);
+ SetSkillMaxRank(itr->second.pos, maxSkill);
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
}
else if (max != maxconfskill) /// update max skill value if current max skill not maximized
{
- SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(val, maxSkill));
+ SetSkillMaxRank(itr->second.pos, maxSkill);
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
}
@@ -5823,13 +5796,12 @@ void Player::UpdateWeaponsSkillsToMaxSkillsForLevel()
uint32 pskill = itr->first;
if (IsProfessionOrRidingSkill(pskill))
continue;
- uint32 valueIndex = PLAYER_SKILL_VALUE_INDEX(itr->second.pos);
- uint32 data = GetUInt32Value(valueIndex);
- uint32 max = SKILL_MAX(data);
+
+ uint16 max = GetSkillMaxRankByPos(itr->second.pos);
if (max > 1)
{
- SetUInt32Value(valueIndex, MAKE_SKILL_VALUE(max, max));
+ SetSkillRank(itr->second.pos, max);
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
}
@@ -5851,16 +5823,18 @@ void Player::SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
//has skill
if (itr != mSkillStatus.end() && itr->second.uState != SKILL_DELETED)
{
- currVal = SKILL_VALUE(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos)));
+ currVal = GetSkillRankByPos(itr->second.pos);
if (newVal)
{
// if skill value is going down, update enchantments before setting the new value
if (newVal < currVal)
UpdateSkillEnchantments(id, currVal, newVal);
// update step
- SetUInt32Value(PLAYER_SKILL_INDEX(itr->second.pos), MAKE_PAIR32(id, step));
+ SetSkillStep(itr->second.pos, step);
// update value
- SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos), MAKE_SKILL_VALUE(newVal, maxVal));
+ SetSkillRank(itr->second.pos, newVal);
+ SetSkillMaxRank(itr->second.pos, maxVal);
+
if (itr->second.uState != SKILL_NEW)
itr->second.uState = SKILL_CHANGED;
LearnSkillRewardedSpells(id, newVal);
@@ -5875,9 +5849,12 @@ void Player::SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
//remove enchantments needing this skill
UpdateSkillEnchantments(id, currVal, 0);
// clear skill fields
- SetUInt32Value(PLAYER_SKILL_INDEX(itr->second.pos), 0);
- SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos), 0);
- SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos), 0);
+ SetSkillLineId(itr->second.pos, 0);
+ SetSkillStep(itr->second.pos, 0);
+ SetSkillRank(itr->second.pos, 0);
+ SetSkillMaxRank(itr->second.pos, 0);
+ SetSkillTempBonus(itr->second.pos, 0);
+ SetSkillPermBonus(itr->second.pos, 0);
// mark as deleted or simply remove from map if not saved yet
if (itr->second.uState != SKILL_NEW)
@@ -5894,9 +5871,9 @@ void Player::SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
else if (newVal) //add
{
currVal = 0;
- for (int i=0; i < PLAYER_MAX_SKILLS; ++i)
+ for (uint32 i = 0; i < PLAYER_MAX_SKILLS; ++i)
{
- if (!GetUInt32Value(PLAYER_SKILL_INDEX(i)))
+ if (!GetSkillLineIdByPos(i))
{
SkillLineEntry const* pSkill = sSkillLineStore.LookupEntry(id);
if (!pSkill)
@@ -5906,8 +5883,10 @@ void Player::SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
return;
}
- SetUInt32Value(PLAYER_SKILL_INDEX(i), MAKE_PAIR32(id, step));
- SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(i), MAKE_SKILL_VALUE(newVal, maxVal));
+ SetSkillLineId(i, id);
+ SetSkillStep(i, step);
+ SetSkillRank(i, newVal);
+ SetSkillMaxRank(i, maxVal);
UpdateSkillEnchantments(id, currVal, newVal);
// insert new entry or update if not deleted old entry yet
@@ -5920,7 +5899,8 @@ void Player::SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
mSkillStatus.insert(SkillStatusMap::value_type(id, SkillStatusData(i, SKILL_NEW)));
// apply skill bonuses
- SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(i), 0);
+ SetSkillTempBonus(i, 0);
+ SetSkillPermBonus(i, 0);
// temporary bonuses
AuraEffectList const& mModSkill = GetAuraEffectsByType(SPELL_AURA_MOD_SKILL);
@@ -5962,7 +5942,7 @@ uint16 Player::GetSkillStep(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- return PAIR32_HIPART(GetUInt32Value(PLAYER_SKILL_INDEX(itr->second.pos)));
+ return GetSkillStepByPos(itr->second.pos);
}
uint16 Player::GetSkillValue(uint32 skill) const
@@ -5974,11 +5954,9 @@ uint16 Player::GetSkillValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- uint32 bonus = GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos));
-
- int32 result = int32(SKILL_VALUE(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos))));
- result += SKILL_TEMP_BONUS(bonus);
- result += SKILL_PERM_BONUS(bonus);
+ int32 result = int32(GetSkillRankByPos(itr->second.pos));
+ result += int32(GetSkillTempBonusByPos(itr->second.pos));
+ result += int32(GetSkillPermBonusByPos(itr->second.pos));
return result < 0 ? 0 : result;
}
@@ -5991,11 +5969,9 @@ uint16 Player::GetMaxSkillValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- uint32 bonus = GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos));
-
- int32 result = int32(SKILL_MAX(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos))));
- result += SKILL_TEMP_BONUS(bonus);
- result += SKILL_PERM_BONUS(bonus);
+ int32 result = int32(GetSkillMaxRankByPos(itr->second.pos));
+ result += int32(GetSkillTempBonusByPos(itr->second.pos));
+ result += int32(GetSkillPermBonusByPos(itr->second.pos));
return result < 0 ? 0 : result;
}
@@ -6008,7 +5984,7 @@ uint16 Player::GetPureMaxSkillValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- return SKILL_MAX(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos)));
+ return GetSkillMaxRankByPos(itr->second.pos);
}
uint16 Player::GetBaseSkillValue(uint32 skill) const
@@ -6020,8 +5996,8 @@ uint16 Player::GetBaseSkillValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- int32 result = int32(SKILL_VALUE(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos))));
- result += SKILL_PERM_BONUS(GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos)));
+ int32 result = int32(GetSkillRankByPos(itr->second.pos));
+ result += int32(GetSkillPermBonusByPos(itr->second.pos));
return result < 0 ? 0 : result;
}
@@ -6034,7 +6010,7 @@ uint16 Player::GetPureSkillValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- return SKILL_VALUE(GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos)));
+ return GetSkillRankByPos(itr->second.pos);
}
int16 Player::GetSkillPermBonusValue(uint32 skill) const
@@ -6046,7 +6022,7 @@ int16 Player::GetSkillPermBonusValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- return SKILL_PERM_BONUS(GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos)));
+ return GetSkillPermBonusByPos(itr->second.pos);
}
int16 Player::GetSkillTempBonusValue(uint32 skill) const
@@ -6058,7 +6034,7 @@ int16 Player::GetSkillTempBonusValue(uint32 skill) const
if (itr == mSkillStatus.end() || itr->second.uState == SKILL_DELETED)
return 0;
- return SKILL_TEMP_BONUS(GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos)));
+ return GetSkillTempBonusByPos(itr->second.pos);
}
void Player::SendActionButtons(uint32 state) const
@@ -11848,7 +11824,7 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool
m_items[slot] = pItem;
SetGuidValue(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID());
pItem->SetGuidValue(ITEM_FIELD_CONTAINED, GetGUID());
- pItem->SetGuidValue(ITEM_FIELD_OWNER, GetGUID());
+ pItem->SetOwnerGUID(GetGUID());
pItem->SetSlot(slot);
pItem->SetContainer(nullptr);
@@ -12096,7 +12072,7 @@ void Player::VisualizeItem(uint8 slot, Item* pItem)
m_items[slot] = pItem;
SetGuidValue(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID());
pItem->SetGuidValue(ITEM_FIELD_CONTAINED, GetGUID());
- pItem->SetGuidValue(ITEM_FIELD_OWNER, GetGUID());
+ pItem->SetOwnerGUID(GetGUID());
pItem->SetSlot(slot);
pItem->SetContainer(nullptr);
@@ -13152,6 +13128,7 @@ void Player::AddItemToBuyBackSlot(Item* pItem)
SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, proto->SellPrice * pItem->GetCount());
else
SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0);
+
SetUInt32Value(PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, (uint32)etime);
// move to next (for non filled list is move most optimized choice)
@@ -16845,11 +16822,6 @@ bool Player::HasPvPForcingQuest() const
/*** LOAD SYSTEM ***/
/*********************************************************/
-void Player::Initialize(ObjectGuid::LowType guid)
-{
- Object::_Create(guid, 0, HighGuid::Player);
-}
-
void Player::_LoadDeclinedNames(PreparedQueryResult result)
{
if (!result)
@@ -18134,7 +18106,7 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint3
{
item->SetRefundRecipient(GetGUID());
item->SetPaidMoney((*result)[0].GetUInt32());
- item->SetPaidExtendedCost((*result)[2].GetUInt16());
+ item->SetPaidExtendedCost((*result)[1].GetUInt16());
AddRefundReference(item->GetGUID());
}
else
@@ -18458,9 +18430,6 @@ void Player::_LoadQuestStatusRewarded(PreparedQueryResult result)
void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
{
- for (uint32 quest_daily_idx = 0; quest_daily_idx < PLAYER_MAX_DAILY_QUESTS; ++quest_daily_idx)
- SetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_daily_idx, 0);
-
m_DFQuests.clear();
//QueryResult* result = CharacterDatabase.PQuery("SELECT quest, time FROM character_queststatus_daily WHERE guid = '{}'", GetGUID().GetCounter());
@@ -18472,7 +18441,8 @@ void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
do
{
Field* fields = result->Fetch();
- if (Quest const* qQuest = sObjectMgr->GetQuestTemplate(fields[0].GetUInt32()))
+ uint32 quest_id = fields[0].GetUInt32();
+ if (Quest const* qQuest = sObjectMgr->GetQuestTemplate(quest_id))
{
if (qQuest->IsDFQuest())
{
@@ -18488,8 +18458,6 @@ void Player::_LoadDailyQuestStatus(PreparedQueryResult result)
break;
}
- uint32 quest_id = fields[0].GetUInt32();
-
// save _any_ from daily quest times (it must be after last reset anyway)
m_lastDailyQuestTime = time_t(fields[1].GetUInt32());
@@ -19727,7 +19695,7 @@ void Player::_SaveMail(CharacterDatabaseTransaction trans)
if (!m->removedItems.empty())
{
- for (std::vector<uint32>::iterator itr2 = m->removedItems.begin(); itr2 != m->removedItems.end(); ++itr2)
+ for (std::vector<ObjectGuid::LowType>::iterator itr2 = m->removedItems.begin(); itr2 != m->removedItems.end(); ++itr2)
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_MAIL_ITEM);
stmt->setUInt32(0, *itr2);
@@ -19991,9 +19959,8 @@ void Player::_SaveSkills(CharacterDatabaseTransaction trans)
continue;
}
- uint32 valueData = GetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos));
- uint16 value = SKILL_VALUE(valueData);
- uint16 max = SKILL_MAX(valueData);
+ uint16 value = GetSkillRankByPos(itr->second.pos);
+ uint16 max = GetSkillMaxRankByPos(itr->second.pos);
switch (itr->second.uState)
{
@@ -20723,7 +20690,7 @@ void Player::Whisper(uint32 textId, Player* target, bool /*isBossWhisper = false
target->SendDirectMessage(&data);
}
-Item* Player::GetMItem(uint32 id)
+Item* Player::GetMItem(ObjectGuid::LowType id)
{
ItemMap::const_iterator itr = mMitems.find(id);
return itr != mMitems.end() ? itr->second : nullptr;
@@ -20736,7 +20703,7 @@ void Player::AddMItem(Item* it)
mMitems[it->GetGUID().GetCounter()] = it;
}
-bool Player::RemoveMItem(uint32 id)
+bool Player::RemoveMItem(ObjectGuid::LowType id)
{
return mMitems.erase(id) ? true : false;
}
@@ -24900,10 +24867,12 @@ void Player::_LoadSkills(PreparedQueryResult result)
}
}
- SetUInt32Value(PLAYER_SKILL_INDEX(count), MAKE_PAIR32(skill, skillStep));
-
- SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(count), MAKE_SKILL_VALUE(value, max));
- SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(count), 0);
+ SetSkillLineId(count, skill);
+ SetSkillStep(count, skillStep);
+ SetSkillRank(count, value);
+ SetSkillMaxRank(count, max);
+ SetSkillTempBonus(count, 0);
+ SetSkillPermBonus(count, 0);
mSkillStatus.insert(SkillStatusMap::value_type(skill, SkillStatusData(count, SKILL_UNCHANGED)));
loadedSkillValues[skill] = value;
@@ -24924,13 +24893,6 @@ void Player::_LoadSkills(PreparedQueryResult result)
for (auto& skill : loadedSkillValues)
LearnSkillRewardedSpells(skill.first, skill.second);
- for (; count < PLAYER_MAX_SKILLS; ++count)
- {
- SetUInt32Value(PLAYER_SKILL_INDEX(count), 0);
- SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(count), 0);
- SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(count), 0);
- }
-
if (HasSkill(SKILL_FIST_WEAPONS))
SetSkill(SKILL_FIST_WEAPONS, 0, GetSkillValue(SKILL_UNARMED), GetMaxSkillValueForLevel());
}
@@ -26580,7 +26542,7 @@ std::string Player::GetCoordsMapAreaAndZoneString() const
return str.str();
}
-void Player::SetInGuild(uint32 guildId)
+void Player::SetInGuild(ObjectGuid::LowType guildId)
{
SetUInt32Value(PLAYER_GUILDID, guildId);
sCharacterCache->UpdateCharacterGuildId(GetGUID(), guildId);
@@ -26588,7 +26550,7 @@ void Player::SetInGuild(uint32 guildId)
Guild* Player::GetGuild()
{
- uint32 guildId = GetGuildId();
+ ObjectGuid::LowType guildId = GetGuildId();
return guildId ? sGuildMgr->GetGuildById(guildId) : nullptr;
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 9ace0cab7bf..dd7d0cf12d3 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -84,7 +84,23 @@ enum LootType : uint8;
typedef std::deque<Mail*> PlayerMails;
-#define PLAYER_MAX_SKILLS 128
+#define PLAYER_MAX_SKILLS 128
+enum SkillFieldOffset
+{
+ SKILL_ID_FIELD_OFFSET = 0,
+ SKILL_ID_SHORT_OFFSET = 0,
+ SKILL_STEP_FIELD_OFFSET = 0,
+ SKILL_STEP_SHORT_OFFSET = 1,
+ SKILL_RANK_FIELD_OFFSET = 1,
+ SKILL_RANK_SHORT_OFFSET = 0,
+ SKILL_MAX_RANK_FIELD_OFFSET = 1,
+ SKILL_MAX_RANK_SHORT_OFFSET = 1,
+ SKILL_TEMP_BONUS_FIELD_OFFSET = 2,
+ SKILL_TEMP_BONUS_SHORT_OFFSET = 0,
+ SKILL_PERM_BONUS_FIELD_OFFSET = 2,
+ SKILL_PERM_BONUS_SHORT_OFFSET = 1
+};
+
#define PLAYER_MAX_DAILY_QUESTS 25
#define PLAYER_EXPLORED_ZONES_SIZE 128
@@ -1363,7 +1379,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& holder);
bool IsLoading() const override;
- void Initialize(ObjectGuid::LowType guid);
static uint32 GetZoneIdFromDB(ObjectGuid guid);
static bool LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, float& o, bool& in_flight, ObjectGuid guid);
@@ -1437,13 +1452,13 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint8 unReadMails;
time_t m_nextMailDelivereTime;
- typedef std::unordered_map<uint32, Item*> ItemMap;
+ typedef std::unordered_map<ObjectGuid::LowType, Item*> ItemMap;
ItemMap mMitems; //template defined in objectmgr.cpp
- Item* GetMItem(uint32 id);
+ Item* GetMItem(ObjectGuid::LowType id);
void AddMItem(Item* it);
- bool RemoveMItem(uint32 id);
+ bool RemoveMItem(ObjectGuid::LowType id);
void SendOnCancelExpectedVehicleRideAura() const;
void PetSpellInitialize();
@@ -1605,13 +1620,13 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void RemoveFromGroup(RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT) { RemoveFromGroup(GetGroup(), GetGUID(), method); }
void SendUpdateToOutOfRangeGroupMembers();
- void SetInGuild(uint32 guildId);
+ void SetInGuild(ObjectGuid::LowType guildId);
void SetGuildRank(uint8 rankId) { SetUInt32Value(PLAYER_GUILDRANK, rankId); }
uint8 GetGuildRank() const { return uint8(GetUInt32Value(PLAYER_GUILDRANK)); }
- void SetGuildIdInvited(uint32 GuildId) { m_GuildIdInvited = GuildId; }
- uint32 GetGuildId() const { return GetUInt32Value(PLAYER_GUILDID); }
+ void SetGuildIdInvited(ObjectGuid::LowType GuildId) { m_GuildIdInvited = GuildId; }
+ ObjectGuid::LowType GetGuildId() const { return GetUInt32Value(PLAYER_GUILDID); }
Guild* GetGuild();
- int GetGuildIdInvited() const { return m_GuildIdInvited; }
+ ObjectGuid::LowType GetGuildIdInvited() const { return m_GuildIdInvited; }
static void RemovePetitionsAndSigns(ObjectGuid guid, CharterTypes type);
// Arena Team
@@ -1794,6 +1809,18 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint16 GetSkillStep(uint32 skill) const; // 0...6
bool HasSkill(uint32 skill) const;
void LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue);
+ uint16 GetSkillLineIdByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_ID_FIELD_OFFSET, SKILL_ID_SHORT_OFFSET); }
+ void SetSkillLineId(uint32 pos, uint16 skillLineId) { SetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_ID_FIELD_OFFSET, SKILL_ID_SHORT_OFFSET, skillLineId); }
+ uint16 GetSkillStepByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_STEP_FIELD_OFFSET, SKILL_STEP_SHORT_OFFSET); };
+ void SetSkillStep(uint32 pos, uint16 step) { SetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_STEP_FIELD_OFFSET, SKILL_STEP_SHORT_OFFSET, step); };
+ uint16 GetSkillRankByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_RANK_FIELD_OFFSET, SKILL_RANK_SHORT_OFFSET); }
+ void SetSkillRank(uint32 pos, uint16 rank) { SetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_RANK_FIELD_OFFSET, SKILL_RANK_SHORT_OFFSET, rank); }
+ uint16 GetSkillMaxRankByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_MAX_RANK_FIELD_OFFSET, SKILL_MAX_RANK_SHORT_OFFSET); }
+ void SetSkillMaxRank(uint32 pos, uint16 max) { SetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_MAX_RANK_FIELD_OFFSET, SKILL_MAX_RANK_SHORT_OFFSET, max); }
+ int16 GetSkillTempBonusByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_TEMP_BONUS_FIELD_OFFSET, SKILL_TEMP_BONUS_SHORT_OFFSET); }
+ void SetSkillTempBonus(uint32 pos, int16 bonus) { SetInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_TEMP_BONUS_FIELD_OFFSET, SKILL_TEMP_BONUS_SHORT_OFFSET, bonus); }
+ uint16 GetSkillPermBonusByPos(uint32 pos) const { return GetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_PERM_BONUS_FIELD_OFFSET, SKILL_PERM_BONUS_SHORT_OFFSET); }
+ void SetSkillPermBonus(uint32 pos, uint16 bonus) { SetUInt16Value(PLAYER_SKILL_INFO_1_1 + pos * 3 + SKILL_PERM_BONUS_FIELD_OFFSET, SKILL_PERM_BONUS_SHORT_OFFSET, bonus); }
WorldLocation& GetTeleportDest() { return m_teleport_dest; }
uint32 GetTeleportOptions() const { return m_teleport_options; }
@@ -2379,7 +2406,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
SkillStatusMap mSkillStatus;
- uint32 m_GuildIdInvited;
+ ObjectGuid::LowType m_GuildIdInvited;
uint32 m_ArenaTeamIdInvited;
PlayerMails m_mail;
diff --git a/src/server/game/Entities/Vehicle/VehicleDefines.h b/src/server/game/Entities/Vehicle/VehicleDefines.h
index ba9d4a20076..9b565744b94 100644
--- a/src/server/game/Entities/Vehicle/VehicleDefines.h
+++ b/src/server/game/Entities/Vehicle/VehicleDefines.h
@@ -120,7 +120,8 @@ struct VehicleTemplate
};
typedef std::vector<VehicleAccessory> VehicleAccessoryList;
-typedef std::map<uint32, VehicleAccessoryList> VehicleAccessoryContainer;
+typedef std::map<ObjectGuid::LowType, VehicleAccessoryList> VehicleAccessoryContainer;
+typedef std::map<uint32, VehicleAccessoryList> VehicleAccessoryTemplateContainer;
typedef std::map<int8, VehicleSeat> SeatMap;
class TransportBase
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index 53b16101b08..49c0f9f9805 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -516,7 +516,7 @@ void GameEventMgr::LoadFromDB()
}
}
- equiplist.push_back(std::pair<uint32, ModelEquip>(guid, newModelEquipSet));
+ equiplist.push_back(std::pair<ObjectGuid::LowType, ModelEquip>(guid, newModelEquipSet));
++count;
}
diff --git a/src/server/game/Globals/ObjectAccessor.cpp b/src/server/game/Globals/ObjectAccessor.cpp
index 49003603cff..3de4d0e22a5 100644
--- a/src/server/game/Globals/ObjectAccessor.cpp
+++ b/src/server/game/Globals/ObjectAccessor.cpp
@@ -120,7 +120,7 @@ WorldObject* ObjectAccessor::GetWorldObject(WorldObject const& p, ObjectGuid con
case HighGuid::Pet: return GetPet(p, guid);
case HighGuid::DynamicObject: return GetDynamicObject(p, guid);
case HighGuid::Corpse: return GetCorpse(p, guid);
- default: return nullptr;
+ default: return nullptr;
}
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 9afe36d596b..6fa4f1788d9 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1479,7 +1479,7 @@ CreatureAddon const* ObjectMgr::GetCreatureAddon(ObjectGuid::LowType lowguid) co
CreatureAddon const* ObjectMgr::GetCreatureTemplateAddon(uint32 entry) const
{
- CreatureAddonContainer::const_iterator itr = _creatureTemplateAddonStore.find(entry);
+ CreatureTemplateAddonContainer::const_iterator itr = _creatureTemplateAddonStore.find(entry);
if (itr != _creatureTemplateAddonStore.end())
return &(itr->second);
@@ -3751,7 +3751,7 @@ void ObjectMgr::LoadVehicleAccessories()
{
Field* fields = result->Fetch();
- uint32 uiGUID = fields[0].GetUInt32();
+ ObjectGuid::LowType uiGUID = fields[0].GetUInt32();
uint32 uiAccessory = fields[1].GetUInt32();
int8 uiSeat = int8(fields[2].GetInt16());
bool bMinion = fields[3].GetBool();
@@ -10334,7 +10334,7 @@ VehicleAccessoryList const* ObjectMgr::GetVehicleAccessoryList(Vehicle* veh) con
}
// Otherwise return entry-based
- VehicleAccessoryContainer::const_iterator itr = _vehicleTemplateAccessoryStore.find(veh->GetCreatureEntry());
+ VehicleAccessoryTemplateContainer::const_iterator itr = _vehicleTemplateAccessoryStore.find(veh->GetCreatureEntry());
if (itr != _vehicleTemplateAccessoryStore.end())
return &itr->second;
return nullptr;
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 3869bca4a18..ca43d66d9c8 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -1623,7 +1623,7 @@ class TC_GAME_API ObjectMgr
SpellScriptsContainer _spellScriptsStore;
std::unordered_map<uint32, VehicleTemplate> _vehicleTemplateStore;
- VehicleAccessoryContainer _vehicleTemplateAccessoryStore;
+ VehicleAccessoryTemplateContainer _vehicleTemplateAccessoryStore;
VehicleAccessoryContainer _vehicleAccessoryStore;
LocaleConstant DBCLocaleIndex;
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 6dad196c884..ca11a2fe24e 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -151,9 +151,8 @@ void Group::SelectNewPartyOrRaidLeader()
bool Group::Create(Player* leader)
{
ObjectGuid leaderGuid = leader->GetGUID();
- ObjectGuid::LowType lowguid = sGroupMgr->GenerateGroupId();
- m_guid = ObjectGuid(HighGuid::Group, lowguid);
+ m_guid = ObjectGuid(HighGuid::Group, sGroupMgr->GenerateGroupId());
m_leaderGuid = leaderGuid;
m_leaderName = leader->GetName();
leader->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GROUP_LEADER);
@@ -2480,11 +2479,6 @@ ObjectGuid Group::GetGUID() const
return m_guid;
}
-ObjectGuid::LowType Group::GetLowGUID() const
-{
- return m_guid.GetCounter();
-}
-
char const* Group::GetLeaderName() const
{
return m_leaderName.c_str();
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index 0ec3abe0b42..ac00ffeab2a 100644
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -217,7 +217,6 @@ class TC_GAME_API Group
bool IsCreated() const;
ObjectGuid GetLeaderGUID() const;
ObjectGuid GetGUID() const;
- ObjectGuid::LowType GetLowGUID() const;
const char * GetLeaderName() const;
LootMethod GetLootMethod() const;
ObjectGuid GetLooterGuid() const;
diff --git a/src/server/game/Groups/GroupMgr.cpp b/src/server/game/Groups/GroupMgr.cpp
index ebcaa0b9485..9ed564537b3 100644
--- a/src/server/game/Groups/GroupMgr.cpp
+++ b/src/server/game/Groups/GroupMgr.cpp
@@ -117,12 +117,12 @@ void GroupMgr::Update(uint32 diff)
void GroupMgr::AddGroup(Group* group)
{
- GroupStore[group->GetLowGUID()] = group;
+ GroupStore[group->GetGUID().GetCounter()] = group;
}
void GroupMgr::RemoveGroup(Group* group)
{
- GroupStore.erase(group->GetLowGUID());
+ GroupStore.erase(group->GetGUID().GetCounter());
}
void GroupMgr::LoadGroups()
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index f26b4fc75a8..5598ec01707 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -488,7 +488,7 @@ bool Guild::BankTab::SetItem(CharacterDatabaseTransaction trans, uint8 slotId, I
trans->Append(stmt);
item->SetGuidValue(ITEM_FIELD_CONTAINED, ObjectGuid::Empty);
- item->SetGuidValue(ITEM_FIELD_OWNER, ObjectGuid::Empty);
+ item->SetOwnerGUID(ObjectGuid::Empty);
item->FSetState(ITEM_NEW);
item->SaveToDB(trans); // Not in inventory and can be saved standalone
}
@@ -2190,10 +2190,10 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, uint8
// Player cannot be in guild
if (player)
{
- if (player->GetGuildId() != 0)
+ if (player->GetGuildId())
return false;
}
- else if (sCharacterCache->GetCharacterGuildIdByGuid(guid) != 0)
+ else if (sCharacterCache->GetCharacterGuildIdByGuid(guid))
return false;
// Remove all player signs from another petitions
@@ -2268,7 +2268,6 @@ bool Guild::AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, uint8
bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bool isDisbanding, bool isKicked)
{
- ObjectGuid::LowType lowguid = guid.GetCounter();
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
// Guild master can be deleted when loading guild and guid doesn't exist in characters table
@@ -2318,7 +2317,7 @@ bool Guild::DeleteMember(CharacterDatabaseTransaction trans, ObjectGuid guid, bo
else
sCharacterCache->UpdateCharacterGuildId(guid, 0);
- _DeleteMemberFromDB(trans, lowguid);
+ _DeleteMemberFromDB(trans, guid.GetCounter());
if (!isDisbanding)
_UpdateAccountsNumber();
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index cca9216a4af..98adad41a51 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -785,7 +785,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder)
pCurrChar->SetGuildRank(0);
}
- if (pCurrChar->GetGuildId() != 0)
+ if (pCurrChar->GetGuildId())
{
if (Guild* guild = sGuildMgr->GetGuildById(pCurrChar->GetGuildId()))
guild->SendLoginInfo(this);
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index b6cb6a510aa..951a5cfe808 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -621,7 +621,7 @@ void WorldSession::HandleQueryNextMailTime(WorldPackets::Mail::MailQueryNextMail
result.NextMailTime = 0.0f;
time_t now = GameTime::GetGameTime();
- std::set<uint32> sentSenders;
+ std::set<ObjectGuid::LowType> sentSenders;
for (Mail* m : _player->GetMails())
{
// must be not checked yet
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index bd5b12e3e7e..e93a7864fe2 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -76,6 +76,9 @@ void TransportMgr::LoadTransportTemplates()
continue;
}
+ if (!goInfo->moTransport.taxiPathId)
+ continue;
+
// paths are generated per template, saves us from generating it again in case of instanced transports
TransportTemplate& transport = _transportTemplates[entry];
transport.entry = entry;
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index 56e5dd52642..1f10ced34e1 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -242,9 +242,9 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid::LowType itemGuid = fields[0].GetUInt32();
- ObjectGuid::LowType itemSender = fields[1].GetUInt32();
- uint32 itemReceiver = fields[2].GetUInt32();
+ ObjectGuid::LowType itemGuid = fields[0].GetUInt32();
+ ObjectGuid::LowType itemSender = fields[1].GetUInt32();
+ ObjectGuid::LowType itemReceiver = fields[2].GetUInt32();
uint32 itemSenderAccountId = fields[3].GetUInt32();
std::string itemSenderName = fields[4].GetString();
uint32 itemReceiverAccount = fields[5].GetUInt32();
@@ -559,9 +559,9 @@ public:
{
Field* queryFields = queryResult->Fetch();
uint32 messageId = queryFields[0].GetUInt32();
- uint32 senderId = queryFields[1].GetUInt32();
+ ObjectGuid::LowType senderId = queryFields[1].GetUInt32();
std::string sender = queryFields[2].GetString();
- uint32 receiverId = queryFields[3].GetUInt32();
+ ObjectGuid::LowType receiverId = queryFields[3].GetUInt32();
std::string receiver = queryFields[4].GetString();
std::string subject = queryFields[5].GetString();
uint64 deliverTime = queryFields[6].GetUInt32();
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index e1192f71159..474296a6a2f 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1675,7 +1675,7 @@ public:
char const* zoneName = nullptr;
// Guild data print variables defined so that they exist, but are not necessarily used
- uint32 guildId = 0;
+ ObjectGuid::LowType guildId = 0;
uint8 guildRankId = 0;
std::string guildName;
std::string guildRank;
@@ -1819,7 +1819,7 @@ public:
ObjectGuid::LowType gguid = fields[1].GetUInt32(); // We check if have a guild for the person, so we might not require to query it at all
xptotal = sObjectMgr->GetXPForLevel(level);
- if (gguid != 0)
+ if (gguid)
{
// Guild Data - an own query, because it may not happen.
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUILD_MEMBER_EXTENDED);
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 2945c116ab7..047d87b889c 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -847,7 +847,7 @@ public:
do
{
Field* fields = result2->Fetch();
- uint32 wpguid = fields[0].GetUInt32();
+ ObjectGuid::LowType wpguid = fields[0].GetUInt32();
if (!Creature::DeleteFromDB(wpguid))
{
handler->PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, wpguid);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 16e85d6804a..530b9d39a1c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -656,7 +656,7 @@ struct npc_spinestalker : public ScriptedAI
// Increase add count
if (!me->isDead())
{
- _instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -678,7 +678,7 @@ struct npc_spinestalker : public ScriptedAI
void JustAppeared() override
{
ScriptedAI::JustAppeared();
- _instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -784,7 +784,7 @@ struct npc_rimefang_icc : public ScriptedAI
// Increase add count
if (!me->isDead())
{
- _instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -806,7 +806,7 @@ struct npc_rimefang_icc : public ScriptedAI
void JustAppeared() override
{
ScriptedAI::JustAppeared();
- _instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(DATA_SINDRAGOSA_FROSTWYRMS, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -944,7 +944,7 @@ struct npc_sindragosa_trash : public ScriptedAI
if (!me->isDead())
{
if (me->GetEntry() == NPC_FROSTWING_WHELP)
- _instance->SetData(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -967,7 +967,7 @@ struct npc_sindragosa_trash : public ScriptedAI
// Increase add count
if (me->GetEntry() == NPC_FROSTWING_WHELP)
- _instance->SetData(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
+ _instance->SetData64(_frostwyrmId, me->GetSpawnId()); // this cannot be in Reset because reset also happens on evade
}
void SetData(uint32 type, uint32 data) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 339406ae897..8cbd1263d76 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -1060,15 +1060,6 @@ class instance_icecrown_citadel : public InstanceMapScript
case DATA_ORB_WHISPERER_ACHIEVEMENT:
IsOrbWhispererEligible = data ? true : false;
break;
- case DATA_SINDRAGOSA_FROSTWYRMS:
- FrostwyrmGUIDs.insert(data);
- break;
- case DATA_SPINESTALKER:
- SpinestalkerTrash.insert(data);
- break;
- case DATA_RIMEFANG:
- RimefangTrash.insert(data);
- break;
case DATA_COLDFLAME_JETS:
ColdflameJetsState = data;
if (ColdflameJetsState == DONE)
@@ -1138,6 +1129,24 @@ class instance_icecrown_citadel : public InstanceMapScript
}
}
+ void SetData64(uint32 type, uint64 data) override
+ {
+ switch (type)
+ {
+ case DATA_SINDRAGOSA_FROSTWYRMS:
+ FrostwyrmGUIDs.insert(data);
+ break;
+ case DATA_SPINESTALKER:
+ SpinestalkerTrash.insert(data);
+ break;
+ case DATA_RIMEFANG:
+ RimefangTrash.insert(data);
+ break;
+ default:
+ break;
+ }
+ }
+
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
{
switch (criteria_id)
@@ -1540,9 +1549,9 @@ class instance_icecrown_citadel : public InstanceMapScript
Team TeamInInstance;
uint32 ColdflameJetsState;
uint32 UpperSpireTeleporterActiveState;
- std::unordered_set<uint32> FrostwyrmGUIDs;
- std::unordered_set<uint32> SpinestalkerTrash;
- std::unordered_set<uint32> RimefangTrash;
+ std::unordered_set<ObjectGuid::LowType> FrostwyrmGUIDs;
+ std::unordered_set<ObjectGuid::LowType> SpinestalkerTrash;
+ std::unordered_set<ObjectGuid::LowType> RimefangTrash;
uint32 BloodQuickeningState;
uint32 HeroicAttempts;
uint16 BloodQuickeningMinutes;
diff --git a/src/server/scripts/World/action_ip_logger.cpp b/src/server/scripts/World/action_ip_logger.cpp
index 71550d2a800..c13e1720034 100644
--- a/src/server/scripts/World/action_ip_logger.cpp
+++ b/src/server/scripts/World/action_ip_logger.cpp
@@ -98,7 +98,6 @@ class AccountActionIpLogger : public AccountScript
// We declare all the required variables
uint32 playerGuid = accountId;
- ObjectGuid::LowType characterGuid = 0;
uint32 realmId = realm.Id.Realm;
std::string systemNote = "ERROR"; // "ERROR" is a placeholder here. We change it later.
@@ -144,7 +143,7 @@ class AccountActionIpLogger : public AccountScript
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ALDL_IP_LOGGING);
stmt->setUInt32(0, playerGuid);
- stmt->setUInt64(1, characterGuid);
+ stmt->setUInt64(1, 0);
stmt->setUInt32(2, realmId);
stmt->setUInt8(3, aType);
stmt->setUInt32(4, playerGuid);
@@ -156,7 +155,7 @@ class AccountActionIpLogger : public AccountScript
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_FACL_IP_LOGGING);
stmt->setUInt32(0, playerGuid);
- stmt->setUInt64(1, characterGuid);
+ stmt->setUInt64(1, 0);
stmt->setUInt32(2, realmId);
stmt->setUInt8(3, aType);
stmt->setUInt32(4, playerGuid);
diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h
index 8da68af81c1..db3200c0ee1 100644
--- a/src/server/shared/SharedDefines.h
+++ b/src/server/shared/SharedDefines.h
@@ -110,15 +110,24 @@ enum Races
// max+1 for player race
#define MAX_RACES 12
-#define RACEMASK_ALL_PLAYABLE \
- ((1<<(RACE_HUMAN-1)) |(1<<(RACE_ORC-1)) |(1<<(RACE_DWARF-1)) | \
- (1<<(RACE_NIGHTELF-1))|(1<<(RACE_UNDEAD_PLAYER-1))|(1<<(RACE_TAUREN-1)) | \
- (1<<(RACE_GNOME-1)) |(1<<(RACE_TROLL-1)) |(1<<(RACE_BLOODELF-1))| \
+#define RACEMASK_ALL_PLAYABLE \
+ ((1<<(RACE_HUMAN-1)) | \
+ (1<<(RACE_ORC-1)) | \
+ (1<<(RACE_DWARF-1)) | \
+ (1<<(RACE_NIGHTELF-1)) | \
+ (1<<(RACE_UNDEAD_PLAYER-1)) | \
+ (1<<(RACE_TAUREN-1)) | \
+ (1<<(RACE_GNOME-1)) | \
+ (1<<(RACE_TROLL-1)) | \
+ (1<<(RACE_BLOODELF-1)) | \
(1<<(RACE_DRAENEI-1)))
-#define RACEMASK_ALLIANCE \
- ((1<<(RACE_HUMAN-1)) | (1<<(RACE_DWARF-1)) | (1<<(RACE_NIGHTELF-1)) | \
- (1<<(RACE_GNOME-1)) | (1<<(RACE_DRAENEI-1)))
+#define RACEMASK_ALLIANCE \
+ ((1<<(RACE_HUMAN-1)) | \
+ (1<<(RACE_DWARF-1)) | \
+ (1<<(RACE_NIGHTELF-1)) | \
+ (1<<(RACE_GNOME-1)) | \
+ (1<<(RACE_DRAENEI-1)))
#define RACEMASK_HORDE RACEMASK_ALL_PLAYABLE & ~RACEMASK_ALLIANCE
@@ -143,11 +152,17 @@ enum Classes
// max+1 for player class
#define MAX_CLASSES 12
-#define CLASSMASK_ALL_PLAYABLE \
- ((1<<(CLASS_WARRIOR-1))|(1<<(CLASS_PALADIN-1))|(1<<(CLASS_HUNTER-1))| \
- (1<<(CLASS_ROGUE-1)) |(1<<(CLASS_PRIEST-1)) |(1<<(CLASS_SHAMAN-1))| \
- (1<<(CLASS_MAGE-1)) |(1<<(CLASS_WARLOCK-1))|(1<<(CLASS_DRUID-1)) | \
- (1<<(CLASS_DEATH_KNIGHT-1)))
+#define CLASSMASK_ALL_PLAYABLE \
+ ((1<<(CLASS_WARRIOR-1)) | \
+ (1<<(CLASS_PALADIN-1)) | \
+ (1<<(CLASS_HUNTER-1)) | \
+ (1<<(CLASS_ROGUE-1)) | \
+ (1<<(CLASS_PRIEST-1)) | \
+ (1<<(CLASS_DEATH_KNIGHT-1)) | \
+ (1<<(CLASS_SHAMAN-1)) | \
+ (1<<(CLASS_MAGE-1)) | \
+ (1<<(CLASS_WARLOCK-1)) | \
+ (1<<(CLASS_DRUID-1)))
#define MAX_TALENT_TREES 3
@@ -196,7 +211,7 @@ enum UnitClass
#define CLASSMASK_ALL_CREATURES ((1<<(UNIT_CLASS_WARRIOR-1)) | (1<<(UNIT_CLASS_PALADIN-1)) | (1<<(UNIT_CLASS_ROGUE-1)) | (1<<(UNIT_CLASS_MAGE-1)))
-#define CLASSMASK_WAND_USERS ((1<<(CLASS_PRIEST-1))|(1<<(CLASS_MAGE-1))|(1<<(CLASS_WARLOCK-1)))
+#define CLASSMASK_WAND_USERS ((1<<(CLASS_PRIEST-1)) | (1<<(CLASS_MAGE-1)) | (1<<(CLASS_WARLOCK-1)))
#define PLAYER_MAX_BATTLEGROUND_QUEUES 2