aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/bnetserver/Packets/AuthenticationPackets.h8
-rw-r--r--src/server/bnetserver/Packets/CachePackets.h6
-rw-r--r--src/server/bnetserver/Packets/ConnectionPackets.h4
-rw-r--r--src/server/bnetserver/Packets/FriendsPackets.cpp4
-rw-r--r--src/server/bnetserver/Packets/FriendsPackets.h2
-rw-r--r--src/server/bnetserver/Packets/WoWRealmPackets.h2
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.cpp40
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.h6
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp3
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp2
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp15
-rw-r--r--src/server/game/Chat/Channels/ChannelMgr.cpp2
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp7
-rw-r--r--src/server/game/Entities/Object/Object.cpp12
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp26
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp148
-rw-r--r--src/server/game/Entities/Unit/Unit.h1
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp3
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.cpp28
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.h4
-rw-r--r--src/server/game/Handlers/BattlefieldHandler.cpp10
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp2
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.h6
-rw-r--r--src/server/game/Server/Packets/ChannelPackets.cpp22
-rw-r--r--src/server/game/Server/Packets/ChannelPackets.h14
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h1
-rw-r--r--src/server/game/Server/WorldSocket.cpp4
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp33
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.h1
-rw-r--r--src/server/ipc/Commands.cpp8
-rw-r--r--src/server/ipc/Commands.h8
-rw-r--r--src/server/ipc/ZMQTask.h4
-rw-r--r--src/server/ipc/ZmqMux.cpp10
-rw-r--r--src/server/ipc/ZmqMux.h2
-rw-r--r--src/server/ipc/ZmqWorker.cpp5
-rw-r--r--src/server/ipc/ZmqWorker.h6
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp53
-rw-r--r--src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp3
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp2
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp16
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp1
-rw-r--r--src/server/scripts/Kalimdor/zone_felwood.cpp8
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp2
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp10
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/stonecore.cpp2
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp12
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp12
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp20
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp31
55 files changed, 250 insertions, 413 deletions
diff --git a/src/server/bnetserver/Packets/AuthenticationPackets.h b/src/server/bnetserver/Packets/AuthenticationPackets.h
index bcaa0e72011..fd5838720ab 100644
--- a/src/server/bnetserver/Packets/AuthenticationPackets.h
+++ b/src/server/bnetserver/Packets/AuthenticationPackets.h
@@ -60,7 +60,7 @@ namespace Battlenet
std::string Locale;
std::vector<Component> Components;
std::string Login;
- uint8 Region;
+ uint8 Region = 0;
std::string GameAccountName;
};
@@ -98,7 +98,7 @@ namespace Battlenet
std::string Locale;
std::vector<Component> Components;
std::string Login;
- uint64 Compatibility;
+ uint64 Compatibility = 0;
};
class ResponseFailure
@@ -138,8 +138,8 @@ namespace Battlenet
{
public:
LogonResponse() : ServerPacket(PacketHeader(SMSG_LOGON_RESPONSE, AUTHENTICATION)),
- PingTimeout(120000), FirstName(""), LastName(""), AccountId(0), Region(2), Flags(0),
- GameAccountRegion(2), GameAccountName(""), FailedLogins(0)
+ PingTimeout(120000), AccountId(0), Region(2), Flags(0),
+ GameAccountRegion(2), GameAccountFlags(0), FailedLogins(0)
{
}
diff --git a/src/server/bnetserver/Packets/CachePackets.h b/src/server/bnetserver/Packets/CachePackets.h
index a65ab2651c8..57ccd448081 100644
--- a/src/server/bnetserver/Packets/CachePackets.h
+++ b/src/server/bnetserver/Packets/CachePackets.h
@@ -54,8 +54,8 @@ namespace Battlenet
std::string Channel;
std::string ItemName;
std::string Locale;
- uint32 Index;
- int32 ReferenceTime;
+ uint32 Index = 0;
+ int32 ReferenceTime = 0;
};
class GetStreamItemsResponse final : public ServerPacket
@@ -70,7 +70,7 @@ namespace Battlenet
void Write() override;
std::string ToString() const override;
- uint32 Index;
+ uint32 Index = 0;
std::vector<ModuleInfo*> Modules;
};
}
diff --git a/src/server/bnetserver/Packets/ConnectionPackets.h b/src/server/bnetserver/Packets/ConnectionPackets.h
index 8572cd5d854..1c4619c6df3 100644
--- a/src/server/bnetserver/Packets/ConnectionPackets.h
+++ b/src/server/bnetserver/Packets/ConnectionPackets.h
@@ -89,8 +89,8 @@ namespace Battlenet
void Read() override;
std::string ToString() const override;
- uint16 Timeout;
- uint32 Tick;
+ uint16 Timeout = 0;
+ uint32 Tick = 0;
};
class ConnectionClosing final : public ClientPacket
diff --git a/src/server/bnetserver/Packets/FriendsPackets.cpp b/src/server/bnetserver/Packets/FriendsPackets.cpp
index 2659ec6204f..8b5d92389af 100644
--- a/src/server/bnetserver/Packets/FriendsPackets.cpp
+++ b/src/server/bnetserver/Packets/FriendsPackets.cpp
@@ -20,8 +20,8 @@
void Battlenet::Friends::GetFriendsOfFriend::Read()
{
- uint8 unk = _stream.Read<uint8>(2);
- uint32 unk1 = _stream.Read<uint32>(32);
+ _stream.Read<uint8>(2);
+ _stream.Read<uint32>(32);
}
std::string Battlenet::Friends::GetFriendsOfFriend::ToString() const
diff --git a/src/server/bnetserver/Packets/FriendsPackets.h b/src/server/bnetserver/Packets/FriendsPackets.h
index ea4d6d2ea92..12935ddc4da 100644
--- a/src/server/bnetserver/Packets/FriendsPackets.h
+++ b/src/server/bnetserver/Packets/FriendsPackets.h
@@ -78,7 +78,7 @@ namespace Battlenet
std::string ToString() const override;
void CallHandler(Session* session) override;
- uint32 SocialNetworkId;
+ uint32 SocialNetworkId = 0;
};
class RealIdFriendInvite final : public ClientPacket
diff --git a/src/server/bnetserver/Packets/WoWRealmPackets.h b/src/server/bnetserver/Packets/WoWRealmPackets.h
index b411c63100a..dc958db501b 100644
--- a/src/server/bnetserver/Packets/WoWRealmPackets.h
+++ b/src/server/bnetserver/Packets/WoWRealmPackets.h
@@ -78,7 +78,7 @@ namespace Battlenet
std::string ToString() const override;
void CallHandler(Session* session) override;
- uint32 ClientSeed;
+ uint32 ClientSeed = 0;
RealmId Realm;
};
diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp
index 33772c2c165..69336869c73 100644
--- a/src/server/game/AI/CoreAI/UnitAI.cpp
+++ b/src/server/game/AI/CoreAI/UnitAI.cpp
@@ -62,16 +62,16 @@ void UnitAI::DoMeleeAttackIfReady()
}
}
-bool UnitAI::DoSpellAttackIfReady(uint32 spell)
+bool UnitAI::DoSpellAttackIfReady(uint32 spellId)
{
if (me->HasUnitState(UNIT_STATE_CASTING) || !me->isAttackReady())
return true;
- if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell))
+ if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
{
if (me->IsWithinCombatRange(me->GetVictim(), spellInfo->GetMaxRange(false)))
{
- me->CastSpell(me->GetVictim(), spell, false);
+ me->CastSpell(me->GetVictim(), spellInfo, TRIGGERED_NONE);
me->resetAttackTimer();
return true;
}
@@ -90,40 +90,6 @@ void UnitAI::SelectTargetList(std::list<Unit*>& targetList, uint32 num, SelectAg
SelectTargetList(targetList, DefaultTargetSelector(me, dist, playerOnly, aura), num, targetType);
}
-float UnitAI::DoGetSpellMaxRange(uint32 spellId, bool positive)
-{
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
- return spellInfo ? spellInfo->GetMaxRange(positive) : 0;
-}
-
-void UnitAI::DoAddAuraToAllHostilePlayers(uint32 spellid)
-{
- if (me->IsInCombat())
- {
- ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
- for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
- {
- if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))
- if (unit->GetTypeId() == TYPEID_PLAYER)
- me->AddAura(spellid, unit);
- }
- }
-}
-
-void UnitAI::DoCastToAllHostilePlayers(uint32 spellid, bool triggered)
-{
- if (me->IsInCombat())
- {
- ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();
- for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
- {
- if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))
- if (unit->GetTypeId() == TYPEID_PLAYER)
- me->CastSpell(unit, spellid, triggered);
- }
- }
-}
-
void UnitAI::DoCast(uint32 spellId)
{
Unit* target = NULL;
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h
index 5d67c9546aa..79ba8cbdbbc 100644
--- a/src/server/game/AI/CoreAI/UnitAI.h
+++ b/src/server/game/AI/CoreAI/UnitAI.h
@@ -238,17 +238,13 @@ class UnitAI
void AttackStartCaster(Unit* victim, float dist);
- void DoAddAuraToAllHostilePlayers(uint32 spellid);
void DoCast(uint32 spellId);
void DoCast(Unit* victim, uint32 spellId, bool triggered = false);
- void DoCastToAllHostilePlayers(uint32 spellid, bool triggered = false);
void DoCastVictim(uint32 spellId, bool triggered = false);
void DoCastAOE(uint32 spellId, bool triggered = false);
- float DoGetSpellMaxRange(uint32 spellId, bool positive = false);
-
void DoMeleeAttackIfReady();
- bool DoSpellAttackIfReady(uint32 spell);
+ bool DoSpellAttackIfReady(uint32 spellId);
static AISpellInfoType* AISpellInfo;
static void FillAISpellInfo();
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 8fe96be26fb..fc360587e58 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -2882,6 +2882,7 @@ bool AchievementMgr<T>::AdditionalRequirementsSatisfied(AchievementCriteriaEntry
case ACHIEVEMENT_CRITERIA_ADDITIONAL_CONDITION_TARGET_ZONE: // 41
if (!unit || unit->GetZoneId() != reqValue)
return false;
+ break;
case ACHIEVEMENT_CRITERIA_ADDITIONAL_CONDITION_TARGET_HEALTH_PERCENT_BELOW: // 46
if (!unit || unit->GetHealthPct() >= reqValue)
return false;
@@ -3227,7 +3228,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
uint32 dataType = fields[1].GetUInt8();
std::string scriptName = fields[4].GetString();
uint32 scriptId = 0;
- if (scriptName.length()) // not empty
+ if (!scriptName.empty())
{
if (dataType != ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT)
TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` has ScriptName set for non-scripted data type (Entry: %u, type %u), useless data.", criteria_id, dataType);
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 2f99bc0a6cc..332d635448b 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -1712,7 +1712,7 @@ void Battleground::SendWarningToAll(uint32 entry, ...)
vsnprintf(str, 1024, format, ap);
va_end(ap);
- ChatHandler::BuildChatPacket(&packetItr->second, CHAT_MSG_RAID_BOSS_EMOTE, LANG_UNIVERSAL, NULL, NULL, str);
+ ChatHandler::BuildChatPacket(&localizedPackets[player->GetSession()->GetSessionDbLocaleIndex()], CHAT_MSG_RAID_BOSS_EMOTE, LANG_UNIVERSAL, NULL, NULL, str);
}
player->SendDirectMessage(packetItr->second.Write());
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index e2b6b16c9f2..a316c8630dc 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -209,8 +209,8 @@ void Channel::JoinChannel(Player* player, std::string const& pass)
//notify.ChannelWelcomeMsg = "";
notify.ChatChannelID = _channelId;
//notify.InstanceID = 0;
- notify.ChannelFlags = _flags;
- notify.Channel = _name;
+ notify._ChannelFlags = _flags;
+ notify._Channel = _name;
player->SendDirectMessage(notify.Write());
JoinNotify(player);
@@ -541,12 +541,13 @@ void Channel::List(Player const* player)
player->GetSession()->GetPlayerInfo().c_str(), GetName().c_str());
WorldPackets::Channel::ChannelListResponse list;
- list.Display = true; /// always true?
- list.Channel = GetName();
- list.ChannelFlags = GetFlags();
+ list._Display = true; /// always true?
+ list._Channel = GetName();
+ list._ChannelFlags = GetFlags();
uint32 gmLevelInWhoList = sWorld->getIntConfig(CONFIG_GM_LEVEL_IN_WHO_LIST);
+ list._Members.reserve(_playersStore.size());
for (PlayerContainer::value_type const& i : _playersStore)
{
Player* member = ObjectAccessor::FindConnectedPlayer(i.first);
@@ -558,7 +559,7 @@ void Channel::List(Player const* player)
member->GetSession()->GetSecurity() <= AccountTypes(gmLevelInWhoList)) &&
member->IsVisibleGloballyFor(player))
{
- list.Members.emplace_back(i.second.PlayerGuid, GetVirtualRealmAddress(), i.second.GetFlags());
+ list._Members.emplace_back(i.second.PlayerGuid, GetVirtualRealmAddress(), i.second.GetFlags());
}
}
@@ -760,7 +761,7 @@ void Channel::DeVoice(ObjectGuid const& /*guid1*/, ObjectGuid const& /*guid2*/)
void Channel::MakeNotifyPacket(WorldPackets::Channel::ChannelNotify& data, uint8 notifyType)
{
data.Type = notifyType;
- data.Channel = _name;
+ data._Channel = _name;
}
void Channel::MakeJoined(WorldPackets::Channel::ChannelNotify& data, ObjectGuid const& guid)
diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp
index ca664abffd9..097eea5bb09 100644
--- a/src/server/game/Chat/Channels/ChannelMgr.cpp
+++ b/src/server/game/Chat/Channels/ChannelMgr.cpp
@@ -107,6 +107,6 @@ void ChannelMgr::SendNotOnChannelNotify(Player const* player, std::string const&
{
WorldPackets::Channel::ChannelNotify notify;
notify.Type = CHAT_NOT_MEMBER_NOTICE;
- notify.Channel = name;
+ notify._Channel = name;
player->SendDirectMessage(notify.Write());
}
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 491b1864dda..8af2e64cc1f 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -2213,12 +2213,7 @@ void Creature::ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs
continue;
uint32 unSpellId = m_spells[i];
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(unSpellId);
- if (!spellInfo)
- {
- ASSERT(spellInfo);
- continue;
- }
+ SpellInfo const* spellInfo = sSpellMgr->EnsureSpellInfo(unSpellId);
// Not send cooldown for this spells
if (spellInfo->IsCooldownStartedOnEvent())
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index c2a8dcd3538..40a8ed046fb 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -943,9 +943,14 @@ uint32 Object::GetUpdateFieldData(Player const* target, uint32*& flags) const
case TYPEID_AREATRIGGER:
flags = AreaTriggerUpdateFieldFlags;
break;
- case TYPEID_OBJECT:
+ case TYPEID_SCENEOBJECT:
+ flags = SceneObjectUpdateFieldFlags;
break;
- default:
+ case TYPEID_CONVERSATION:
+ flags = ConversationUpdateFieldFlags;
+ break;
+ case TYPEID_OBJECT:
+ ASSERT(false);
break;
}
@@ -983,6 +988,9 @@ uint32 Object::GetDynamicUpdateFieldData(Player const* target, uint32*& flags) c
visibleFlag |= UF_FLAG_PARTY_MEMBER;
break;
}
+ case TYPEID_CONVERSATION:
+ flags = ConversationDynamicUpdateFieldFlags;
+ break;
default:
flags = nullptr;
break;
diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp
index f59c82d44f5..327b83ba6d4 100644
--- a/src/server/game/Entities/Object/ObjectGuid.cpp
+++ b/src/server/game/Entities/Object/ObjectGuid.cpp
@@ -231,13 +231,13 @@ ObjectGuid const ObjectGuid::Empty = ObjectGuid();
ObjectGuid const ObjectGuid::TradeItem = ObjectGuid::Create<HighGuid::Uniq>(uint64(10));
template<HighGuid type>
-ObjectGuid ObjectGuid::Create(LowType counter)
+ObjectGuid ObjectGuid::Create(LowType /*counter*/)
{
static_assert(type == HighGuid::Count, "This guid type cannot be constructed using Create(LowType counter).");
}
template<HighGuid type>
-ObjectGuid ObjectGuid::Create(uint16 mapId, uint32 entry, LowType counter)
+ObjectGuid ObjectGuid::Create(uint16 /*mapId*/, uint32 /*entry*/, LowType /*counter*/)
{
static_assert(type == HighGuid::Count, "This guid type cannot be constructed using Create(uint16 mapId, uint32 entry, LowType counter).");
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 479faad1ede..4b2ca3f0f23 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -3849,18 +3849,11 @@ void Player::RemoveSpell(uint32 spell_id, bool disabled, bool learn_low_rank)
if (spell_id == 46917 && m_canTitanGrip)
SetCanTitanGrip(false);
+
if (m_canDualWield)
{
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell_id);
- if (spellInfo->IsPassive())
- {
- for (int i = 0; i < MAX_SPELL_EFFECTS; i++)
- if (spellInfo->Effects[i].Effect == SPELL_EFFECT_DUAL_WIELD)
- {
- SetCanDualWield(false);
- break;
- }
- }
+ if (spellInfo && spellInfo->IsPassive() && spellInfo->HasEffect(SPELL_EFFECT_DUAL_WIELD))
+ SetCanDualWield(false);
}
if (sWorld->getBoolConfig(CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN))
@@ -16751,7 +16744,7 @@ void Player::_LoadEquipmentSets(PreparedQueryResult result)
eqSet.State = EQUIPMENT_SET_UNCHANGED;
for (uint32 i = 0; i < EQUIPMENT_SLOT_END; ++i)
- if (uint64 guid = fields[5 + i].GetUInt64())
+ if (ObjectGuid::LowType guid = fields[5 + i].GetUInt64())
eqSet.Data.Pieces[i] = ObjectGuid::Create<HighGuid::Item>(guid);
if (eqSet.Data.SetID >= MAX_EQUIPMENT_SET_INDEX) // client limit
@@ -17810,12 +17803,12 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
Field* fields = result->Fetch();
if (Item* item = _LoadItem(trans, zoneId, timeDiff, fields))
{
- ObjectGuid bagGuid = ObjectGuid::Create<HighGuid::Item>(fields[11].GetUInt64());
+ ObjectGuid bagGuid = fields[11].GetUInt64() ? ObjectGuid::Create<HighGuid::Item>(fields[11].GetUInt64()) : ObjectGuid::Empty;
uint8 slot = fields[12].GetUInt8();
uint8 err = EQUIP_ERR_OK;
// Item is not in bag
- if (!bagGuid.GetCounter())
+ if (bagGuid.IsEmpty())
{
item->SetContainer(NULL);
item->SetSlot(slot);
@@ -21372,12 +21365,7 @@ void Player::ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs)
if (itr->second->state == PLAYERSPELL_REMOVED)
continue;
uint32 unSpellId = itr->first;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(unSpellId);
- if (!spellInfo)
- {
- ASSERT(spellInfo);
- continue;
- }
+ SpellInfo const* spellInfo = sSpellMgr->EnsureSpellInfo(unSpellId);
// Not send cooldown for this spells
if (spellInfo->IsCooldownStartedOnEvent())
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 6a41a304639..9235a652850 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -4888,133 +4888,6 @@ void Unit::SendAttackStateUpdate(uint32 HitInfo, Unit* target, uint8 /*SwingType
SendAttackStateUpdate(&dmgInfo);
}
-bool Unit::HandleAuraProcOnPowerAmount(Unit* victim, uint32 /*damage*/, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 /*procEx*/, uint32 cooldown)
-{
- // Get triggered aura spell info
- SpellInfo const* auraSpellInfo = triggeredByAura->GetSpellInfo();
-
- // Get effect index used for the proc
- uint32 effIndex = triggeredByAura->GetEffIndex();
-
- // Power amount required to proc the spell
- int32 powerAmountRequired = triggeredByAura->GetAmount();
- // Power type required to proc
- Powers powerRequired = Powers(auraSpellInfo->Effects[triggeredByAura->GetEffIndex()].MiscValue);
-
- // Set trigger spell id, target, custom basepoints
- uint32 trigger_spell_id = auraSpellInfo->Effects[triggeredByAura->GetEffIndex()].TriggerSpell;
-
- Unit* target = NULL;
- int32 basepoints0 = 0;
-
- Item* castItem = !triggeredByAura->GetBase()->GetCastItemGUID().IsEmpty() && GetTypeId() == TYPEID_PLAYER
- ? ToPlayer()->GetItemByGuid(triggeredByAura->GetBase()->GetCastItemGUID()) : NULL;
-
- /* Try handle unknown trigger spells or with invalid power amount or misc value
- if (sSpellMgr->GetSpellInfo(trigger_spell_id) == NULL || powerAmountRequired == NULL || powerRequired >= MAX_POWER)
- {
- switch (auraSpellInfo->SpellFamilyName)
- {
- case SPELLFAMILY_GENERIC:
- {
- break;
- }
- }
- }*/
-
- // All ok. Check current trigger spell
- SpellInfo const* triggerEntry = sSpellMgr->GetSpellInfo(trigger_spell_id);
- if (triggerEntry == NULL)
- {
- // Not cast unknown spell
- // TC_LOG_ERROR("Unit::HandleAuraProcOnPowerAmount: Spell %u have 0 in EffectTriggered[%d], not handled custom case?", auraSpellInfo->Id, triggeredByAura->GetEffIndex());
- return false;
- }
-
- // not allow proc extra attack spell at extra attack
- if (m_extraAttacks && triggerEntry->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS))
- return false;
-
- if (!powerRequired || !powerAmountRequired)
- {
- TC_LOG_ERROR("spells", "Unit::HandleAuraProcOnPowerAmount: Spell %u have 0 powerAmountRequired in EffectAmount[%d] or 0 powerRequired in EffectMiscValue, not handled custom case?", auraSpellInfo->Id, triggeredByAura->GetEffIndex());
- return false;
- }
-
- if (GetPower(powerRequired) != powerAmountRequired)
- return false;
-
- // Custom requirements (not listed in procEx) Warning! damage dealing after this
- // Custom triggered spells
- switch (auraSpellInfo->SpellFamilyName)
- {
- case SPELLFAMILY_DRUID:
- {
- // Eclipse Mastery Driver Passive
- if (auraSpellInfo->Id == 79577)
- {
- uint32 solarEclipseMarker = 67483;
- uint32 lunarEclipseMarker = 67484;
-
- switch (effIndex)
- {
- case 0:
- {
- if (HasAura(trigger_spell_id))
- return false;
-
- // Do not proc if proc spell isnt starfire and starsurge
- if (procSpell->Id != 2912 && procSpell->Id != 78674)
- return false;
-
- if (HasAura(solarEclipseMarker))
- {
- RemoveAurasDueToSpell(solarEclipseMarker);
- CastSpell(this, lunarEclipseMarker, true);
- }
- break;
- }
- case 1:
- {
- if (HasAura(trigger_spell_id))
- return false;
-
- // Do not proc if proc spell isnt wrath and starsurge
- if (procSpell->Id != 5176 && procSpell->Id != 78674)
- return false;
-
- if (HasAura(lunarEclipseMarker))
- {
- RemoveAurasDueToSpell(lunarEclipseMarker);
- CastSpell(this, solarEclipseMarker, true);
- }
-
- break;
- }
- }
- }
- break;
- }
- }
-
- if (cooldown && GetTypeId() == TYPEID_PLAYER && ToPlayer()->HasSpellCooldown(trigger_spell_id))
- return false;
-
- // try detect target manually if not set
- if (target == NULL)
- target = !(procFlag & (PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS | PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS)) && triggerEntry && triggerEntry->IsPositive() ? this : victim;
-
- if (basepoints0)
- CastCustomSpell(target, trigger_spell_id, &basepoints0, NULL, NULL, true, castItem, triggeredByAura);
- else
- CastSpell(target, trigger_spell_id, true, castItem, triggeredByAura);
-
- if (cooldown && GetTypeId() == TYPEID_PLAYER)
- ToPlayer()->AddSpellCooldown(trigger_spell_id, 0, time(NULL) + cooldown);
-
- return true;
-}
-
//victim may be NULL
bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown)
{
@@ -6367,10 +6240,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
return true;
}
- /*
- */
-
-
// Used in case when access to whole aura is needed
// All procs should be handled like this...
bool Unit::HandleAuraProc(Unit* victim, uint32 /*damage*/, Aura* triggeredByAura, SpellInfo const* procSpell, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown, bool * handled)
@@ -8589,6 +8458,7 @@ float Unit::SpellDamagePctDone(Unit* victim, SpellInfo const* spellProto, Damage
// Health at 25% or less (25% stored at effect 2 of the spell)
if (victim->HealthBelowPct(CalculateSpellDamage(this, (*i)->GetSpellInfo(), EFFECT_2)))
AddPct(DoneTotalMod, (*i)->GetAmount());
+ break;
}
case 6916: // Death's Embrace heal effect
case 6925:
@@ -12591,9 +12461,8 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u
}
case SPELL_AURA_PROC_ON_POWER_AMOUNT:
{
- TC_LOG_DEBUG("spells", "ProcDamageAndSpell: casting spell id %u (triggered by %s aura of spell %u)", spellInfo->Id, (isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
- if (HandleAuraProcOnPowerAmount(target, damage, triggeredByAura, procSpell, procFlag, procExtra, cooldown))
- takeCharges = true;
+ triggeredByAura->HandleProcTriggerSpellOnPowerAmountAuraProc(aurApp, eventInfo);
+ takeCharges = true;
break;
}
case SPELL_AURA_OBS_MOD_POWER:
@@ -15802,9 +15671,6 @@ void Unit::SendTeleportPacket(Position& pos)
if (GetTypeId() == TYPEID_UNIT)
Relocate(&pos); // Relocate the unit to its new position in order to build the packets correctly.
- ObjectGuid guid = GetGUID();
- ObjectGuid transGuid = GetTransGUID();
-
WorldPackets::Movement::MoveUpdateTeleport packet;
packet.movementInfo = &m_movementInfo;
@@ -15812,13 +15678,11 @@ void Unit::SendTeleportPacket(Position& pos)
{
WorldPackets::Movement::MoveTeleport selfPacket;
- selfPacket.MoverGUID = guid;
+ selfPacket.MoverGUID = GetGUID();
+ ObjectGuid transGuid = GetTransGUID();
if (!transGuid.IsEmpty())
- {
- selfPacket.TransportGUID.Value = transGuid;
- selfPacket.TransportGUID.HasValue = true;
- }
+ selfPacket.TransportGUID.Set(transGuid);
selfPacket.Pos.Relocate(GetPositionX(), GetPositionY(), GetPositionZMinusOffset());
selfPacket.Facing = GetOrientation();
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index de18ffeddab..1fa2ba6b1c3 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -2272,7 +2272,6 @@ class Unit : public WorldObject
void DisableSpline();
private:
bool IsTriggeredAtSpellProcEvent(Unit* victim, Aura* aura, SpellInfo const* procSpell, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, bool isVictim, bool active, SpellProcEventEntry const* & spellProcEvent);
- bool HandleAuraProcOnPowerAmount(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown);
bool HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown);
bool HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, bool * handled);
bool HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index fb696a13352..793614930b7 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2326,8 +2326,7 @@ void FillItemDamageFields(float* minDamage, float* maxDamage, float* dps, uint32
return;
}
- if (!store)
- return;
+ ASSERT(store);
ItemDamageEntry const* damageInfo = store->LookupEntry(itemLevel);
if (!damageInfo)
diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp
index 67a00d3dff8..40e2bc1613e 100644
--- a/src/server/game/Guilds/GuildFinderMgr.cpp
+++ b/src/server/game/Guilds/GuildFinderMgr.cpp
@@ -129,11 +129,11 @@ void GuildFinderMgr::AddMembershipRequest(ObjectGuid const& guildGuid, Membershi
// Notify the applicant his submittion has been added
if (Player* player = ObjectAccessor::FindPlayer(request.GetPlayerGUID()))
- SendMembershipRequestListUpdate(*player);
+ SendMembershipRequestListUpdate(player);
// Notify the guild master and officers the list changed
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
- SendApplicantListUpdate(*guild);
+ SendApplicantListUpdate(guild);
}
void GuildFinderMgr::RemoveAllMembershipRequestsFromPlayer(ObjectGuid const& playerId)
@@ -159,7 +159,7 @@ void GuildFinderMgr::RemoveAllMembershipRequestsFromPlayer(ObjectGuid const& pla
// Notify the guild master and officers the list changed
if (Guild* guild = sGuildMgr->GetGuildByGuid(itr->first))
- SendApplicantListUpdate(*guild);
+ SendApplicantListUpdate(guild);
}
}
@@ -182,15 +182,15 @@ void GuildFinderMgr::RemoveMembershipRequest(ObjectGuid const& playerId, ObjectG
CharacterDatabase.CommitTransaction(trans);
- _membershipRequests[guildId].erase(itr);
-
// Notify the applicant his submittion has been removed
if (Player* player = ObjectAccessor::FindPlayer(itr->GetPlayerGUID()))
- SendMembershipRequestListUpdate(*player);
+ SendMembershipRequestListUpdate(player);
// Notify the guild master and officers the list changed
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildId))
- SendApplicantListUpdate(*guild);
+ SendApplicantListUpdate(guild);
+
+ _membershipRequests[guildId].erase(itr);
}
std::list<MembershipRequest> GuildFinderMgr::GetAllMembershipRequestsForPlayer(ObjectGuid const& playerGuid)
@@ -302,7 +302,7 @@ void GuildFinderMgr::DeleteGuild(ObjectGuid const& guildId)
// Notify the applicant his submition has been removed
if (Player* player = ObjectAccessor::FindPlayer(itr->GetPlayerGUID()))
- SendMembershipRequestListUpdate(*player);
+ SendMembershipRequestListUpdate(player);
++itr;
}
@@ -312,19 +312,19 @@ void GuildFinderMgr::DeleteGuild(ObjectGuid const& guildId)
// Notify the guild master the list changed (even if he's not a GM any more, not sure if needed)
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildId))
- SendApplicantListUpdate(*guild);
+ SendApplicantListUpdate(guild);
}
-void GuildFinderMgr::SendApplicantListUpdate(Guild& guild)
+void GuildFinderMgr::SendApplicantListUpdate(Guild* guild)
{
WorldPacket data(SMSG_LF_GUILD_APPLICANT_LIST_UPDATED, 0);
- if (Player* player = ObjectAccessor::FindPlayer(guild.GetLeaderGUID()))
+ if (Player* player = ObjectAccessor::FindPlayer(guild->GetLeaderGUID()))
player->SendDirectMessage(&data);
- guild.BroadcastPacketToRank(&data, GR_OFFICER);
+ guild->BroadcastPacketToRank(&data, GR_OFFICER);
}
-void GuildFinderMgr::SendMembershipRequestListUpdate(Player& player)
+void GuildFinderMgr::SendMembershipRequestListUpdate(Player* player)
{
WorldPacket data(SMSG_LF_GUILD_APPLICATIONS_LIST_CHANGED, 0);
- player.SendDirectMessage(&data);
+ player->SendDirectMessage(&data);
}
diff --git a/src/server/game/Guilds/GuildFinderMgr.h b/src/server/game/Guilds/GuildFinderMgr.h
index 45228957b55..763d9285b31 100644
--- a/src/server/game/Guilds/GuildFinderMgr.h
+++ b/src/server/game/Guilds/GuildFinderMgr.h
@@ -262,8 +262,8 @@ class GuildFinderMgr
/// Counts the amount of pending membership requests, given the player's db guid.
uint8 CountRequestsFromPlayer(ObjectGuid const& playerId);
- void SendApplicantListUpdate(Guild& guild);
- void SendMembershipRequestListUpdate(Player& player);
+ static void SendApplicantListUpdate(Guild* guild);
+ static void SendMembershipRequestListUpdate(Player* player);
static GuildFinderMgr* instance()
{
diff --git a/src/server/game/Handlers/BattlefieldHandler.cpp b/src/server/game/Handlers/BattlefieldHandler.cpp
index 649e5ff171f..14928e1efdc 100644
--- a/src/server/game/Handlers/BattlefieldHandler.cpp
+++ b/src/server/game/Handlers/BattlefieldHandler.cpp
@@ -27,7 +27,7 @@
#include "BattlefieldMgr.h"
/**
- * @fn void WorldSession::SendBfInvitePlayerToWar(uint64 guid, uint32 zoneId, uint32 acceptTime)
+ * @fn void WorldSession::SendBfInvitePlayerToWar(ObjectGuid guid, uint32 zoneId, uint32 acceptTime)
*
* @brief This send to player windows for invite player to join the war.
*
@@ -62,7 +62,7 @@ void WorldSession::SendBfInvitePlayerToWar(ObjectGuid guid, uint32 zoneId, uint3
}
/**
- * @fn void WorldSession::SendBfInvitePlayerToQueue(uint64 guid)
+ * @fn void WorldSession::SendBfInvitePlayerToQueue(ObjectGuid guid)
*
* @brief This send invitation to player to join the queue.
*
@@ -103,7 +103,7 @@ void WorldSession::SendBfInvitePlayerToQueue(ObjectGuid guid)
}
/**
- * @fn void WorldSession::SendBfQueueInviteResponse(uint64 guid, uint32 zoneId, bool canQueue, bool full)
+ * @fn void WorldSession::SendBfQueueInviteResponse(ObjectGuid guid, uint32 zoneId, bool canQueue, bool full)
*
* @brief This send packet for inform player that he join queue.
*
@@ -157,7 +157,7 @@ void WorldSession::SendBfQueueInviteResponse(ObjectGuid guid, uint32 zoneId, boo
}
/**
- * @fn void WorldSession::SendBfEntered(uint64 guid)
+ * @fn void WorldSession::SendBfEntered(ObjectGuid guid)
*
* @brief This is call when player accept to join war.
*
@@ -196,7 +196,7 @@ void WorldSession::SendBfEntered(ObjectGuid guid)
}
/**
- * @fn void WorldSession::SendBfLeaveMessage(uint64 guid, BFLeaveReason reason)
+ * @fn void WorldSession::SendBfLeaveMessage(ObjectGuid guid, BFLeaveReason reason)
*
* @brief This is call when player leave battlefield zone.
*
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 81dc9e6cec0..fb8e45f5f42 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -456,7 +456,7 @@ void WorldSession::HandleDBQueryBulk(WorldPackets::Query::DBQueryBulk& packet)
else
{
TC_LOG_ERROR("network", "CMSG_DB_QUERY_BULK: Entry %u does not exist in datastore: %u", rec.RecordID, packet.TableHash);
- response.RecordID = -rec.RecordID;
+ response.RecordID = -int32(rec.RecordID);
response.Timestamp = time(NULL);
}
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 7b6ca00416c..eab91b44e49 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -4620,7 +4620,7 @@ enum GroupJoinBattlegroundResult
ERR_BATTLEGROUND_NOT_IN_BATTLEGROUND = 8, // You can't do that in a battleground.
ERR_BATTLEGROUND_JOIN_XP_GAIN = 9, // wtf, doesn't exist in client...
ERR_BATTLEGROUND_JOIN_RANGE_INDEX = 10, // Cannot join the queue unless all members of your party are in the same battleground level range.
- ERR_BATTLEGROUND_JOIN_TIMED_OUT = 11, // %s was unavailable to join the queue. (uint64 guid exist in client cache)
+ ERR_BATTLEGROUND_JOIN_TIMED_OUT = 11, // %s was unavailable to join the queue. (ObjectGuid exist in client cache)
//ERR_BATTLEGROUND_JOIN_TIMED_OUT = 12, // same as 11
//ERR_BATTLEGROUND_TEAM_LEFT_QUEUE = 13, // same as 7
ERR_LFG_CANT_USE_BATTLEGROUND = 14, // You cannot queue for a battleground or arena while using the dungeon system.
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h
index eb44064750a..dcc9a908539 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.h
+++ b/src/server/game/Server/Packets/AuthenticationPackets.h
@@ -34,13 +34,13 @@ namespace WorldPackets
class AuthChallenge final : public ServerPacket
{
public:
- AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 4 + 32 + 1), Challenge(0) { }
+ AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 4 + 32 + 1) { }
WorldPacket const* Write() override;
- uint32 Challenge;
+ uint32 Challenge = 0;
uint32 DosChallenge[8]; ///< Encryption seeds
- uint8 DosZeroBits;
+ uint8 DosZeroBits = 0;
};
class AuthSession final : public ClientPacket
diff --git a/src/server/game/Server/Packets/ChannelPackets.cpp b/src/server/game/Server/Packets/ChannelPackets.cpp
index 2ece521b42b..bd1e62eadd6 100644
--- a/src/server/game/Server/Packets/ChannelPackets.cpp
+++ b/src/server/game/Server/Packets/ChannelPackets.cpp
@@ -25,13 +25,13 @@ void WorldPackets::Channel::ChannelListRequest::Read()
WorldPacket const* WorldPackets::Channel::ChannelListResponse::Write()
{
- _worldPacket.WriteBit(Display);
- _worldPacket.WriteBits(Channel.length(), 7);
- _worldPacket << uint8(ChannelFlags);
- _worldPacket << uint32(Members.size());
- _worldPacket.WriteString(Channel);
+ _worldPacket.WriteBit(_Display);
+ _worldPacket.WriteBits(_Channel.length(), 7);
+ _worldPacket << uint8(_ChannelFlags);
+ _worldPacket << uint32(_Members.size());
+ _worldPacket.WriteString(_Channel);
- for (ChannelPlayer const& player : Members)
+ for (ChannelPlayer const& player : _Members)
{
_worldPacket << player.Guid;
_worldPacket << uint32(player.VirtualRealmAddress);
@@ -44,7 +44,7 @@ WorldPacket const* WorldPackets::Channel::ChannelListResponse::Write()
WorldPacket const* WorldPackets::Channel::ChannelNotify::Write()
{
_worldPacket.WriteBits(Type, 6);
- _worldPacket.WriteBits(Channel.length(), 7);
+ _worldPacket.WriteBits(_Channel.length(), 7);
_worldPacket.WriteBits(Sender.length(), 6);
_worldPacket << SenderGuid;
@@ -60,7 +60,7 @@ WorldPacket const* WorldPackets::Channel::ChannelNotify::Write()
_worldPacket << uint8(NewFlags);
}
- _worldPacket.WriteString(Channel);
+ _worldPacket.WriteString(_Channel);
_worldPacket.WriteString(Sender);
return &_worldPacket;
@@ -68,12 +68,12 @@ WorldPacket const* WorldPackets::Channel::ChannelNotify::Write()
WorldPacket const* WorldPackets::Channel::ChannelNotifyJoined::Write()
{
- _worldPacket.WriteBits(Channel.length(), 7);
+ _worldPacket.WriteBits(_Channel.length(), 7);
_worldPacket.WriteBits(ChannelWelcomeMsg.length(), 10);
- _worldPacket << uint8(ChannelFlags);
+ _worldPacket << uint8(_ChannelFlags);
_worldPacket << int32(ChatChannelID);
_worldPacket << uint64(InstanceID);
- _worldPacket.WriteString(Channel);
+ _worldPacket.WriteString(_Channel);
_worldPacket.WriteString(ChannelWelcomeMsg);
return &_worldPacket;
diff --git a/src/server/game/Server/Packets/ChannelPackets.h b/src/server/game/Server/Packets/ChannelPackets.h
index 36a0a516928..e3d96c5c453 100644
--- a/src/server/game/Server/Packets/ChannelPackets.h
+++ b/src/server/game/Server/Packets/ChannelPackets.h
@@ -55,10 +55,10 @@ namespace WorldPackets
WorldPacket const* Write() override;
- std::vector<ChannelPlayer> Members;
- std::string Channel; ///< Channel Name
- uint8 ChannelFlags = 0; ///< @see enum ChannelFlags
- bool Display = false;
+ std::vector<ChannelPlayer> _Members;
+ std::string _Channel; ///< Channel Name
+ uint8 _ChannelFlags = 0; ///< @see enum ChannelFlags
+ bool _Display = false;
};
class ChannelNotify final : public ServerPacket
@@ -74,7 +74,7 @@ namespace WorldPackets
uint8 Type = 0; ///< @see enum ChatNotify
uint8 OldFlags = 0; ///< @see enum ChannelMemberFlags
uint8 NewFlags = 0; ///< @see enum ChannelMemberFlags
- std::string Channel; ///< Channel Name
+ std::string _Channel; ///< Channel Name
uint32 SenderVirtualRealm = 0;
ObjectGuid TargetGuid;
uint32 TargetVirtualRealm = 0;
@@ -91,8 +91,8 @@ namespace WorldPackets
std::string ChannelWelcomeMsg;
int32 ChatChannelID = 0;
int32 InstanceID = 0;
- uint8 ChannelFlags = 0; ///< @see enum ChannelFlags
- std::string Channel; ///< Channel Name
+ uint8 _ChannelFlags = 0; ///< @see enum ChannelFlags
+ std::string _Channel; ///< Channel Name
};
class ChannelNotifyLeft final : public ServerPacket
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index a4080371003..bb22cac1740 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -660,7 +660,6 @@ enum OpcodeClient : uint32
MSG_PARTY_ASSIGNMENT = 0xBADD,
MSG_PETITION_DECLINE = 0xBADD,
MSG_PETITION_RENAME = 0xBADD,
- MSG_PVP_LOG_DATA = 0xBADD,
MSG_QUERY_NEXT_MAIL_TIME = 0xBADD,
MSG_QUEST_PUSH_RESULT = 0xBADD,
MSG_RAID_READY_CHECK = 0xBADD,
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index aa1426d5fd2..7f4b2cc906e 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -55,8 +55,8 @@ uint32 const SizeOfClientHeader[2][2] =
uint32 const SizeOfServerHeader[2] = { sizeof(uint16) + sizeof(uint32), sizeof(uint32) };
WorldSocket::WorldSocket(tcp::socket&& socket) : Socket(std::move(socket)),
- _type(CONNECTION_TYPE_REALM), _authSeed(rand32()),
- _OverSpeedPings(0), _worldSession(nullptr), _initialized(false)
+ _type(CONNECTION_TYPE_REALM), _authSeed(rand32()), _OverSpeedPings(0),
+ _worldSession(nullptr), _compressionStream(nullptr), _initialized(false)
{
_headerBuffer.Resize(SizeOfClientHeader[0][0]);
}
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index c55c92d296e..fe2e8998a26 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -1091,6 +1091,7 @@ void AuraEffect::HandleProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
switch (GetAuraType())
{
case SPELL_AURA_PROC_TRIGGER_SPELL:
+ case SPELL_AURA_PROC_TRIGGER_SPELL_2:
HandleProcTriggerSpellAuraProc(aurApp, eventInfo);
break;
case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE:
@@ -1105,6 +1106,9 @@ void AuraEffect::HandleProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
case SPELL_AURA_RAID_PROC_FROM_CHARGE_WITH_VALUE:
HandleRaidProcFromChargeWithValueAuraProc(aurApp, eventInfo);
break;
+ case SPELL_AURA_PROC_ON_POWER_AMOUNT:
+ HandleProcTriggerSpellOnPowerAmountAuraProc(aurApp, eventInfo);
+ break;
default:
break;
}
@@ -6494,6 +6498,35 @@ void AuraEffect::HandleRaidProcFromChargeWithValueAuraProc(AuraApplication* aurA
target->CastCustomSpell(target, triggerSpellId, &value, NULL, NULL, true, NULL, this, GetCasterGUID());
}
+void AuraEffect::HandleProcTriggerSpellOnPowerAmountAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
+{
+ // Power amount required to proc the spell
+ int32 powerAmountRequired = GetAmount();
+ // Power type required to proc
+ Powers powerRequired = Powers(GetSpellInfo()->Effects[GetEffIndex()].MiscValue);
+
+ if (!powerRequired || !powerAmountRequired)
+ {
+ TC_LOG_ERROR("spells", "AuraEffect::HandleProcTriggerSpellOnPowerAmountAuraProc: Spell %u have 0 PowerAmountRequired in EffectAmount[%d] or 0 PowerRequired in EffectMiscValue", GetId(), GetEffIndex());
+ return /*false*/;
+ }
+
+ Unit* triggerCaster = aurApp->GetTarget();
+ Unit* triggerTarget = eventInfo.GetProcTarget();
+
+ if (triggerCaster->GetPower(powerRequired) != powerAmountRequired)
+ return /*false*/;
+
+ uint32 triggerSpellId = GetSpellInfo()->Effects[GetEffIndex()].TriggerSpell;
+ if (SpellInfo const* triggeredSpellInfo = sSpellMgr->GetSpellInfo(triggerSpellId))
+ {
+ TC_LOG_DEBUG("spells", "AuraEffect::HandleProcTriggerSpellOnPowerAmountAuraProc: Triggering spell %u from aura %u proc", triggeredSpellInfo->Id, GetId());
+ triggerCaster->CastSpell(triggerTarget, triggeredSpellInfo, true, nullptr, this);
+ }
+ else
+ TC_LOG_DEBUG("spells", "AuraEffect::HandleProcTriggerSpellOnPowerAmountAuraProc: Could not trigger spell %u from aura %u proc, because the spell does not have an entry in Spell.dbc.", triggerSpellId, GetId());
+}
+
void AuraEffect::HandleAuraForceWeather(AuraApplication const* aurApp, uint8 mode, bool apply) const
{
if (!(mode & AURA_EFFECT_HANDLE_REAL))
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.h b/src/server/game/Spells/Auras/SpellAuraEffects.h
index 22571f4851e..11cf55b6584 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.h
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.h
@@ -312,6 +312,7 @@ class AuraEffect
void HandleProcTriggerDamageAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
void HandleRaidProcFromChargeAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
void HandleRaidProcFromChargeWithValueAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
+ void HandleProcTriggerSpellOnPowerAmountAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
};
namespace Trinity
diff --git a/src/server/ipc/Commands.cpp b/src/server/ipc/Commands.cpp
index 8e494fc34b9..61b448d3d01 100644
--- a/src/server/ipc/Commands.cpp
+++ b/src/server/ipc/Commands.cpp
@@ -49,14 +49,14 @@ zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::ToonHandle& toonHandl
return msg;
}
-zmqpp::message& operator<<(zmqpp::message& msg, IPCHeader& header)
+zmqpp::message& operator<<(zmqpp::message& msg, IPCHeader const& header)
{
msg << header.Channel;
msg << header.Command;
return msg;
}
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle& realm)
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle const& realm)
{
msg << realm.Region;
msg << realm.Battlegroup;
@@ -64,14 +64,14 @@ zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle& realm)
return msg;
}
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::Header& header)
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::Header const& header)
{
msg << header.Ipc;
msg << header.Realm;
return msg;
}
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::ToonHandle& toonHandle)
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::ToonHandle const& toonHandle)
{
msg << toonHandle.AccountId;
msg << toonHandle.GameAccountId;
diff --git a/src/server/ipc/Commands.h b/src/server/ipc/Commands.h
index 05309a45022..e34f939bae4 100644
--- a/src/server/ipc/Commands.h
+++ b/src/server/ipc/Commands.h
@@ -75,9 +75,9 @@ zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::RealmHandle& realm);
zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::Header& header);
zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::ToonHandle& toonHandle);
-zmqpp::message& operator<<(zmqpp::message& msg, IPCHeader& header);
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle& realm);
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::Header& header);
-zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::ToonHandle& toonHandle);
+zmqpp::message& operator<<(zmqpp::message& msg, IPCHeader const& header);
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle const& realm);
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::Header const& header);
+zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::ToonHandle const& toonHandle);
#endif // _COMMANDS_H
diff --git a/src/server/ipc/ZMQTask.h b/src/server/ipc/ZMQTask.h
index 24251893aaa..1141f740f76 100644
--- a/src/server/ipc/ZMQTask.h
+++ b/src/server/ipc/ZMQTask.h
@@ -45,8 +45,8 @@ protected:
zmqpp::poller* _poller;
- zmqpp::socket* _inproc;
- std::thread* _thread;
+ zmqpp::socket* _inproc = nullptr;
+ std::thread* _thread = nullptr;
};
#endif // __ZMQTASK_H
diff --git a/src/server/ipc/ZmqMux.cpp b/src/server/ipc/ZmqMux.cpp
index 2b62eaaf1eb..0f87106a948 100644
--- a/src/server/ipc/ZmqMux.cpp
+++ b/src/server/ipc/ZmqMux.cpp
@@ -18,15 +18,15 @@
#include "ZmqMux.h"
#include "ZmqContext.h"
-ZmqMux::ZmqMux(std::string from_uri, std::string to_uri):
- _fromAddress(from_uri)
+ZmqMux::ZmqMux(std::string const& fromUri, std::string const& toUri):
+ _fromAddress(fromUri)
{
- printf("Opening muxer thread from %s to %s\n", from_uri.c_str(), to_uri.c_str());
+ printf("Opening muxer thread from %s to %s\n", fromUri.c_str(), toUri.c_str());
_from = sIpcContext->CreateNewSocket(zmqpp::socket_type::pull);
_to = sIpcContext->CreateNewSocket(zmqpp::socket_type::push);
- _from->bind(from_uri);
- _to->connect(to_uri);
+ _from->bind(fromUri);
+ _to->connect(toUri);
}
ZmqMux::~ZmqMux()
diff --git a/src/server/ipc/ZmqMux.h b/src/server/ipc/ZmqMux.h
index 07336330253..c6ec26596c1 100644
--- a/src/server/ipc/ZmqMux.h
+++ b/src/server/ipc/ZmqMux.h
@@ -29,7 +29,7 @@
class ZmqMux : public ZMQTask
{
public:
- ZmqMux(std::string from, std::string to);
+ ZmqMux(std::string const& from, std::string const& to);
~ZmqMux();
bool Send(zmqpp::message*, bool dont_block = false);
void Run() override;
diff --git a/src/server/ipc/ZmqWorker.cpp b/src/server/ipc/ZmqWorker.cpp
index f205ea831b5..a3db41efe18 100644
--- a/src/server/ipc/ZmqWorker.cpp
+++ b/src/server/ipc/ZmqWorker.cpp
@@ -18,8 +18,8 @@
#include "ZmqWorker.h"
#include "ZmqContext.h"
-ZmqWorker::ZmqWorker(std::string task_uri, std::string res_uri) :
- _taskUri(task_uri), _resultsUri(res_uri)
+ZmqWorker::ZmqWorker(std::string const& taskUri, std::string const& resUri) :
+ _taskUri(taskUri), _resultsUri(resUri)
{
}
@@ -27,7 +27,6 @@ ZmqWorker::~ZmqWorker()
{
delete _taskQueue;
delete _results;
- delete _inproc;
}
void ZmqWorker::HandleOpen()
diff --git a/src/server/ipc/ZmqWorker.h b/src/server/ipc/ZmqWorker.h
index b3e221e9129..7f9b0cd1382 100644
--- a/src/server/ipc/ZmqWorker.h
+++ b/src/server/ipc/ZmqWorker.h
@@ -24,19 +24,19 @@
class ZmqWorker : public ZMQTask
{
public:
- ZmqWorker(std::string task_uri, std::string res_uri);
+ ZmqWorker(std::string const& taskUri, std::string const& resUri);
~ZmqWorker();
void Run() override;
protected:
void HandleOpen() override;
void HandleClose() override;
- zmqpp::socket* _results;
+ zmqpp::socket* _results = nullptr;
private:
void PerformWork();
virtual void Dispatch(zmqpp::message const&) = 0;
- zmqpp::socket* _taskQueue;
+ zmqpp::socket* _taskQueue = nullptr;
std::string _taskUri;
std::string _resultsUri;
};
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 39644e5c08f..bc7e5ccaac5 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -1065,39 +1065,44 @@ public:
// Search in CharTitles.dbc
for (uint32 id = 0; id < sCharTitlesStore.GetNumRows(); id++)
{
- CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(id);
- if (titleInfo)
+ if (CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(id))
{
- std::string name = target->getGender() == GENDER_MALE ? titleInfo->NameMale_lang : titleInfo->NameFemale_lang;
+ for (uint8 gender = GENDER_MALE; gender <= GENDER_FEMALE; ++gender)
+ {
+ if (target && target->getGender() != gender)
+ continue;
- if (name.empty())
- continue;
+ std::string name = gender == GENDER_MALE ? titleInfo->NameMale_lang : titleInfo->NameFemale_lang;
- if (!Utf8FitTo(name, wNamePart))
- continue;
+ if (name.empty())
+ continue;
- if (maxResults && counter == maxResults)
- {
- handler->PSendSysMessage(LANG_COMMAND_LOOKUP_MAX_RESULTS, maxResults);
- return true;
- }
+ if (!Utf8FitTo(name, wNamePart))
+ continue;
- char const* knownStr = target && target->HasTitle(titleInfo) ? handler->GetTrinityString(LANG_KNOWN) : "";
+ if (maxResults && counter == maxResults)
+ {
+ handler->PSendSysMessage(LANG_COMMAND_LOOKUP_MAX_RESULTS, maxResults);
+ return true;
+ }
- char const* activeStr = target && target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
- ? handler->GetTrinityString(LANG_ACTIVE)
- : "";
+ char const* knownStr = target && target->HasTitle(titleInfo) ? handler->GetTrinityString(LANG_KNOWN) : "";
- char titleNameStr[80];
- snprintf(titleNameStr, 80, name.c_str(), targetName);
+ char const* activeStr = target && target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
+ ? handler->GetTrinityString(LANG_ACTIVE)
+ : "";
- // send title in "id (idx:idx) - [namedlink locale]" format
- if (handler->GetSession())
- handler->PSendSysMessage(LANG_TITLE_LIST_CHAT, id, titleInfo->MaskID, id, titleNameStr, "", knownStr, activeStr);
- else
- handler->PSendSysMessage(LANG_TITLE_LIST_CONSOLE, id, titleInfo->MaskID, titleNameStr, "", knownStr, activeStr);
+ char titleNameStr[80];
+ snprintf(titleNameStr, 80, name.c_str(), targetName);
+
+ // send title in "id (idx:idx) - [namedlink locale]" format
+ if (handler->GetSession())
+ handler->PSendSysMessage(LANG_TITLE_LIST_CHAT, id, titleInfo->MaskID, id, titleNameStr, "", knownStr, activeStr);
+ else
+ handler->PSendSysMessage(LANG_TITLE_LIST_CONSOLE, id, titleInfo->MaskID, titleNameStr, "", knownStr, activeStr);
- ++counter;
+ ++counter;
+ }
}
}
if (counter == 0) // if counter == 0 then we found nth
diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
index 62d12a94c54..80ddecf8914 100644
--- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
+++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
@@ -81,10 +81,7 @@ class boss_alizabal : public CreatureScript
struct boss_alizabalAI : public BossAI
{
- boss_alizabalAI(Creature* creature) : BossAI(creature, DATA_ALIZABAL)
- {
- _intro = false;
- }
+ boss_alizabalAI(Creature* creature) : BossAI(creature, DATA_ALIZABAL) { }
void Reset() override
{
@@ -251,10 +248,9 @@ class boss_alizabal : public CreatureScript
}
private:
- bool _intro;
- bool _hate;
- bool _skewer;
-
+ bool _intro = false;
+ bool _hate = false;
+ bool _skewer = false;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
index 008803f9a52..26a6b89dee9 100644
--- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
+++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
@@ -157,12 +157,6 @@ class spell_argaloth_meteor_slash : public SpellScriptLoader
{
PrepareSpellScript(spell_argaloth_meteor_slash_SpellScript);
- bool Load() override
- {
- _targetCount = 0;
- return true;
- }
-
void CountTargets(std::list<WorldObject*>& targets)
{
_targetCount = targets.size();
@@ -183,7 +177,7 @@ class spell_argaloth_meteor_slash : public SpellScriptLoader
}
private:
- uint32 _targetCount;
+ uint32 _targetCount = 0;
};
SpellScript* GetSpellScript() const override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
index f736aa6ffbc..97d43ab163c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
@@ -357,7 +357,7 @@ class npc_twilight_sadist : public CreatureScript
void Reset() override
{
_combatPhase = false;
- if(!me->GetWaypointPath())
+ if (!me->GetWaypointPath())
_events.ScheduleEvent(EVENT_INFLICT_PAIN_TS, urand(6000, 18000));
}
@@ -422,7 +422,7 @@ class npc_twilight_sadist : public CreatureScript
private:
EventMap _events;
InstanceScript* _instance;
- bool _combatPhase;
+ bool _combatPhase = false;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
index 3f2e8f8b243..e97583c3575 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
@@ -114,7 +114,7 @@ class boss_corla : public CreatureScript
}
private:
- bool combatPhase;
+ bool combatPhase = false;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
index dd1152a02a5..ac557bcad97 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
@@ -141,6 +141,7 @@ class npc_voljin_zulaman : public CreatureScript
case EVENT_INTRO_MOVEPOINT_3:
Talk(SAY_INTRO_2);
_events.ScheduleEvent(EVENT_BANGING_THE_GONG, 3000);
+ break;
case EVENT_BANGING_THE_GONG:
DoCast(me, SPELL_BANGING_THE_GONG);
if (GameObject* strangeGong = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_STRANGE_GONG)))
@@ -208,7 +209,7 @@ class npc_voljin_zulaman : public CreatureScript
private:
InstanceScript* _instance;
EventMap _events;
- uint8 _gongCount;
+ uint8 _gongCount = 0;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
index 9b8b435e93c..386f80c0c64 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
@@ -484,7 +484,7 @@ class npc_egg_pile : public CreatureScript
private:
EventMap _events;
- uint32 _callHatchlingSpell;
+ uint32 _callHatchlingSpell = 0;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
index 47a40dd56ef..74a932a376e 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
@@ -80,7 +80,17 @@ public:
struct boss_temple_guardian_anhuurAI : public BossAI
{
- boss_temple_guardian_anhuurAI(Creature* creature) : BossAI(creature, DATA_TEMPLE_GUARDIAN_ANHUUR) { }
+ boss_temple_guardian_anhuurAI(Creature* creature) : BossAI(creature, DATA_TEMPLE_GUARDIAN_ANHUUR)
+ {
+ Initialize();
+ }
+
+ void Initialize()
+ {
+ _phase = PHASE_FIRST_SHIELD;
+ _oldPhase = PHASE_FIRST_SHIELD;
+ _beacons = 0;
+ }
void CleanStalkers()
{
@@ -95,9 +105,7 @@ public:
void Reset() override
{
- _phase = PHASE_FIRST_SHIELD;
- _oldPhase = PHASE_FIRST_SHIELD;
- _beacons = 0;
+ Initialize();
_Reset();
CleanStalkers();
me->RemoveAurasDueToSpell(SPELL_SHIELD_OF_LIGHT);
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
index 4377344fb26..30a0e2441fb 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
@@ -65,6 +65,7 @@ class instance_halls_of_origination : public InstanceMapScript
{
case GO_ANHUURS_BRIDGE:
AnhuursBridgeGUID = go->GetGUID();
+ // no break
case GO_DOODAD_ULDUM_ELEVATOR_COL01:
case GO_VAULT_OF_LIGHTS_DOOR:
case GO_DOODAD_ULDUM_LIGHTMACHINE_01:
diff --git a/src/server/scripts/Kalimdor/zone_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp
index e4d5925c950..9f02e14220e 100644
--- a/src/server/scripts/Kalimdor/zone_felwood.cpp
+++ b/src/server/scripts/Kalimdor/zone_felwood.cpp
@@ -51,7 +51,7 @@ public:
void Reset() override
{
- lasher_clicked = false;
+ lasherClicked = false;
}
void OnSpellClick(Unit* clicker, bool& result) override
@@ -74,7 +74,7 @@ public:
me->CastSpell(me, SPELL_STAND);
me->GetMotionMaster()->MoveRandom(8.0f);
events.ScheduleEvent(EVENT_CHECK_OOC, 20000);
- lasher_clicked = true;
+ lasherClicked = true;
if (Player* player = clicker->ToPlayer())
player->KilledMonsterCredit(NPC_WHISPERWIND_LASHER);
@@ -82,7 +82,7 @@ public:
void UpdateAI(uint32 diff) override
{
- if (!lasher_clicked)
+ if (!lasherClicked)
return;
events.Update(diff);
@@ -104,7 +104,7 @@ public:
private:
EventMap events;
- bool lasher_clicked;
+ bool lasherClicked = false;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
index 01baf54eef7..1cf0cc56242 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
@@ -241,7 +241,7 @@ class boss_corborus : public CreatureScript
private:
EncounterState stateIntro;
- uint32 countTrashingCharge;
+ uint32 countTrashingCharge = 0;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
index 0535ac64a9f..08d56f2fa50 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
@@ -132,13 +132,11 @@ class boss_high_priestess_azil : public CreatureScript
struct boss_high_priestess_azilAI : public BossAI
{
- boss_high_priestess_azilAI(Creature* creature) : BossAI(creature, DATA_HIGH_PRIESTESS_AZIL), vehicle(creature->GetVehicleKit())
+ boss_high_priestess_azilAI(Creature* creature) : BossAI(creature, DATA_HIGH_PRIESTESS_AZIL)
{
- ASSERT(vehicle);
+ ASSERT(creature->GetVehicleKit());
}
- Vehicle* vehicle;
-
void Reset() override
{
_Reset();
@@ -276,7 +274,7 @@ class boss_high_priestess_azil : public CreatureScript
me->GetMotionMaster()->MovePoint(POINT_ABOVE_PLATFORM, AbovePlatformPos);
break;
case EVENT_EARTH_FURY_CHECK_SEAT0:
- if (!vehicle->GetPassenger(0))
+ if (!me->GetVehicleKit()->GetPassenger(0))
DoCast(SPELL_SEISMIC_SHARD_PREPARE);
events.ScheduleEvent(EVENT_EARTH_FURY_LAUNCH_SHARD, 1800);
break;
@@ -318,7 +316,7 @@ class boss_high_priestess_azil : public CreatureScript
}
private:
- uint8 countSeismicShard;
+ uint8 countSeismicShard = 3;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp b/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
index dc2fdb62d19..abfb82284d3 100644
--- a/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
@@ -213,7 +213,7 @@ class npc_sc_millhouse_manastorm : public CreatureScript
events.Update(diff);
// Impending Doom is exception because it needs to be interrupted.
- if (me->HasUnitState(UNIT_STATE_CASTING) && !me->GetCurrentSpell(SPELL_IMPENDING_DOOM))
+ if (me->HasUnitState(UNIT_STATE_CASTING) && me->GetCurrentSpell(CURRENT_GENERIC_SPELL)->GetSpellInfo()->Id != SPELL_IMPENDING_DOOM_CHANNEL)
return;
while (uint32 eventId = events.ExecuteEvent())
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 184e12cdccb..e668b74c993 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -148,8 +148,6 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
{
PrepareSpellScript(spell_dru_eclipse_energize_SpellScript);
- int32 energizeAmount;
-
bool Load() override
{
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
@@ -158,8 +156,6 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
if (GetCaster()->ToPlayer()->getClass() != CLASS_DRUID)
return false;
- energizeAmount = 0;
-
return true;
}
@@ -175,7 +171,7 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
{
case SPELL_DRUID_WRATH:
{
- energizeAmount = -GetSpellInfo()->Effects[effIndex].BasePoints; // -13
+ int32 energizeAmount = -GetEffectValue(); // -13
// If we are set to fill the lunar side or we've just logged in with 0 power..
if ((!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER))
|| caster->GetPower(POWER_ECLIPSE) == 0)
@@ -192,7 +188,7 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
}
case SPELL_DRUID_STARFIRE:
{
- energizeAmount = GetSpellInfo()->Effects[effIndex].BasePoints; // 20
+ int32 energizeAmount = GetEffectValue(); // 20
// If we are set to fill the solar side or we've just logged in with 0 power..
if ((!caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER))
|| caster->GetPower(POWER_ECLIPSE) == 0)
@@ -213,7 +209,7 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
if ((!caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER))
|| caster->GetPower(POWER_ECLIPSE) == 0)
{
- energizeAmount = GetSpellInfo()->Effects[effIndex].BasePoints; // 15
+ int32 energizeAmount = GetEffectValue(); // 15
caster->CastCustomSpell(caster, SPELL_DRUID_STARSURGE_ENERGIZE, &energizeAmount, 0, 0, true);
// If the energize was due to 0 power, cast the eclipse marker aura
@@ -222,7 +218,7 @@ class spell_dru_eclipse_energize : public SpellScriptLoader
}
else if (!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER))
{
- energizeAmount = -GetSpellInfo()->Effects[effIndex].BasePoints; // -15
+ int32 energizeAmount = -GetEffectValue(); // -15
caster->CastCustomSpell(caster, SPELL_DRUID_STARSURGE_ENERGIZE, &energizeAmount, 0, 0, true);
}
// The energizing effect brought us out of the lunar eclipse, remove the aura
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index 17c72ba5561..8f7a776126a 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -221,7 +221,7 @@ class spell_mage_blast_wave : public SpellScriptLoader
}
private:
- uint32 _targetCount;
+ uint32 _targetCount = 0;
};
SpellScript* GetSpellScript() const override
@@ -1078,12 +1078,6 @@ class spell_mage_polymorph : public SpellScriptLoader
return true;
}
- bool Load() override
- {
- _caster = NULL;
- return true;
- }
-
bool DoCheck(ProcEventInfo& eventInfo)
{
_caster = GetCaster();
@@ -1111,7 +1105,7 @@ class spell_mage_polymorph : public SpellScriptLoader
}
private:
- Unit* _caster;
+ Unit* _caster = nullptr;
};
AuraScript* GetAuraScript() const override
@@ -1456,7 +1450,7 @@ class spell_mage_water_elemental_freeze : public SpellScriptLoader
}
private:
- bool _didHit;
+ bool _didHit = false;
};
SpellScript* GetSpellScript() const
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index 5e8e3a1070f..3ca94e56c09 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -664,21 +664,21 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
int32 damage = GetEffectValue();
SpellInfo const* triggeringSpell = GetTriggeringSpell();
if (Unit* target = GetHitUnit())
- if (Unit* caster = GetCaster())
+ {
+ if (Unit* owner = GetCaster()->GetOwner())
{
- if (Unit* owner = caster->GetOwner())
- {
- if (triggeringSpell)
- damage = int32(owner->SpellHealingBonusDone(target, triggeringSpell, damage, HEAL));
+ if (triggeringSpell)
+ damage = int32(owner->SpellHealingBonusDone(target, triggeringSpell, damage, HEAL));
- // Soothing Rains
- if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_SOOTHING_RAIN, EFFECT_0))
- AddPct(damage, dummy->GetAmount());
+ // Soothing Rains
+ if (AuraEffect* dummy = owner->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_SOOTHING_RAIN, EFFECT_0))
+ AddPct(damage, dummy->GetAmount());
+ if (triggeringSpell)
damage = int32(target->SpellHealingBonusTaken(owner, triggeringSpell, damage, HEAL));
- }
- caster->CastCustomSpell(target, SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
}
+ GetCaster()->CastCustomSpell(target, SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL, &damage, 0, 0, true, 0, 0, GetOriginalCaster()->GetGUID());
+ }
}
void Register() override
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index 128cddef1c1..8811f152ea9 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -426,7 +426,7 @@ class spell_warl_demon_soul : public SpellScriptLoader
{
if (targetCreature->IsPet())
{
- CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(targetCreature->GetEntry());
+ CreatureTemplate const* ci = targetCreature->GetCreatureTemplate();
switch (ci->family)
{
case CREATURE_FAMILY_SUCCUBUS:
@@ -485,8 +485,7 @@ class spell_warl_demonic_empowerment : public SpellScriptLoader
{
if (targetCreature->IsPet())
{
- CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(targetCreature->GetEntry());
- ASSERT(ci);
+ CreatureTemplate const* ci = targetCreature->GetCreatureTemplate();
switch (ci->family)
{
case CREATURE_FAMILY_SUCCUBUS:
@@ -1194,22 +1193,18 @@ class spell_warl_soul_swap : public SpellScriptLoader
}
};
+#define SoulSwapOverrideScriptName "spell_warl_soul_swap_override"
+
// 86211 - Soul Swap Override - Also acts as a dot container
class spell_warl_soul_swap_override : public SpellScriptLoader
{
public:
- spell_warl_soul_swap_override() : SpellScriptLoader("spell_warl_soul_swap_override") { }
+ spell_warl_soul_swap_override() : SpellScriptLoader(SoulSwapOverrideScriptName) { }
class spell_warl_soul_swap_override_AuraScript : public AuraScript
{
PrepareAuraScript(spell_warl_soul_swap_override_AuraScript);
- bool Load() override
- {
- _swapCaster = NULL;
- return true;
- }
-
//! Forced to, pure virtual functions must have a body when linking
void Register() override { }
@@ -1221,7 +1216,7 @@ class spell_warl_soul_swap_override : public SpellScriptLoader
private:
std::list<uint32> _dotList;
- Unit* _swapCaster;
+ Unit* _swapCaster = nullptr;
};
AuraScript* GetAuraScript() const override
@@ -1252,11 +1247,11 @@ class spell_warl_soul_swap_dot_marker : public SpellScriptLoader
flag128 classMask = GetSpellInfo()->Effects[effIndex].SpellClassMask;
Unit::AuraApplicationMap const& appliedAuras = swapVictim->GetAppliedAuras();
- SoulSwapOverrideAuraScript* swapSpellScript = NULL;
+ SoulSwapOverrideAuraScript* swapSpellScript = nullptr;
if (Aura* swapOverrideAura = warlock->GetAura(SPELL_WARLOCK_SOUL_SWAP_OVERRIDE))
- swapSpellScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverrideAura->GetScriptByName("spell_warl_soul_swap_override"));
+ swapSpellScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverrideAura->GetScriptByName(SoulSwapOverrideScriptName));
- if (swapSpellScript == NULL)
+ if (!swapSpellScript)
return;
for (Unit::AuraApplicationMap::const_iterator itr = appliedAuras.begin(); itr != appliedAuras.end(); ++itr)
@@ -1303,9 +1298,9 @@ public:
SpellCastResult CheckCast()
{
Unit* currentTarget = GetExplTargetUnit();
- Unit* swapTarget = NULL;
+ Unit* swapTarget = nullptr;
if (Aura const* swapOverride = GetCaster()->GetAura(SPELL_WARLOCK_SOUL_SWAP_OVERRIDE))
- if (SoulSwapOverrideAuraScript* swapScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverride->GetScriptByName("spell_warl_soul_swap_override")))
+ if (SoulSwapOverrideAuraScript* swapScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverride->GetScriptByName(SoulSwapOverrideScriptName)))
swapTarget = swapScript->GetOriginalSwapSource();
// Soul Swap Exhale can't be cast on the same target than Soul Swap
@@ -1321,10 +1316,10 @@ public:
bool hasGlyph = GetCaster()->HasAura(SPELL_WARLOCK_GLYPH_OF_SOUL_SWAP);
std::list<uint32> dotList;
- Unit* swapSource = NULL;
+ Unit* swapSource = nullptr;
if (Aura const* swapOverride = GetCaster()->GetAura(SPELL_WARLOCK_SOUL_SWAP_OVERRIDE))
{
- SoulSwapOverrideAuraScript* swapScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverride->GetScriptByName("spell_warl_soul_swap_override"));
+ SoulSwapOverrideAuraScript* swapScript = dynamic_cast<SoulSwapOverrideAuraScript*>(swapOverride->GetScriptByName(SoulSwapOverrideScriptName));
if (!swapScript)
return;
dotList = swapScript->GetDotList();