diff options
Diffstat (limited to 'src')
53 files changed, 590 insertions, 530 deletions
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp index d35710aa40f..67e75633b05 100755 --- a/src/server/game/AI/CoreAI/CombatAI.cpp +++ b/src/server/game/AI/CoreAI/CombatAI.cpp @@ -22,7 +22,7 @@ #include "Vehicle.h" #include "ObjectAccessor.h" -int AggressorAI::Permissible(const Creature *creature) +int AggressorAI::Permissible(const Creature* creature) { // have some hostile factions, it will be selected by IsHostileTo check at MoveInLineOfSight if (!creature->isCivilian() && !creature->IsNeutralToAll()) @@ -81,7 +81,7 @@ void CombatAI::JustDied(Unit* killer) me->CastSpell(killer, *i, true); } -void CombatAI::EnterCombat(Unit *who) +void CombatAI::EnterCombat(Unit* who) { for (SpellVct::iterator i = spells.begin(); i != spells.end(); ++i) { @@ -127,7 +127,7 @@ void CasterAI::InitializeAI() m_attackDist = MELEE_RANGE; } -void CasterAI::EnterCombat(Unit *who) +void CasterAI::EnterCombat(Unit* who) { if (spells.empty()) return; @@ -173,7 +173,7 @@ void CasterAI::UpdateAI(const uint32 diff) //ArcherAI ////////////// -ArcherAI::ArcherAI(Creature *c) : CreatureAI(c) +ArcherAI::ArcherAI(Creature* c) : CreatureAI(c) { if (!me->m_spells[0]) sLog->outError("ArcherAI set for creature (entry = %u) with spell1=0. AI will do nothing", me->GetEntry()); @@ -187,7 +187,7 @@ ArcherAI::ArcherAI(Creature *c) : CreatureAI(c) me->m_SightDistance = me->m_CombatDistance; } -void ArcherAI::AttackStart(Unit *who) +void ArcherAI::AttackStart(Unit* who) { if (!who) return; @@ -222,7 +222,7 @@ void ArcherAI::UpdateAI(const uint32 /*diff*/) //TurretAI ////////////// -TurretAI::TurretAI(Creature *c) : CreatureAI(c) +TurretAI::TurretAI(Creature* c) : CreatureAI(c) { if (!me->m_spells[0]) sLog->outError("TurretAI set for creature (entry = %u) with spell1=0. AI will do nothing", me->GetEntry()); @@ -242,7 +242,7 @@ bool TurretAI::CanAIAttack(const Unit* /*who*/) const return true; } -void TurretAI::AttackStart(Unit *who) +void TurretAI::AttackStart(Unit* who) { if (who) me->Attack(who, false); @@ -260,7 +260,7 @@ void TurretAI::UpdateAI(const uint32 /*diff*/) //VehicleAI ////////////// -VehicleAI::VehicleAI(Creature *c) : CreatureAI(c), m_vehicle(c->GetVehicleKit()), m_IsVehicleInUse(false), m_ConditionsTimer(VEHICLE_CONDITION_CHECK_TIME) +VehicleAI::VehicleAI(Creature* c) : CreatureAI(c), m_vehicle(c->GetVehicleKit()), m_IsVehicleInUse(false), m_ConditionsTimer(VEHICLE_CONDITION_CHECK_TIME) { LoadConditions(); m_DoDismiss = false; @@ -318,11 +318,11 @@ void VehicleAI::CheckConditions(const uint32 diff) for (SeatMap::iterator itr = m_vehicle->Seats.begin(); itr != m_vehicle->Seats.end(); ++itr) if (Unit* passenger = ObjectAccessor::GetUnit(*m_vehicle->GetBase(), itr->second.Passenger)) { - if (Player* plr = passenger->ToPlayer()) + if (Player* player = passenger->ToPlayer()) { - if (!sConditionMgr->IsPlayerMeetToConditions(plr, conditions)) + if (!sConditionMgr->IsPlayerMeetToConditions(player, conditions)) { - plr->ExitVehicle(); + player->ExitVehicle(); return;//check other pessanger in next tick } } diff --git a/src/server/game/AI/CoreAI/CombatAI.h b/src/server/game/AI/CoreAI/CombatAI.h index 94f11ba8431..fca964826d3 100755 --- a/src/server/game/AI/CoreAI/CombatAI.h +++ b/src/server/game/AI/CoreAI/CombatAI.h @@ -28,10 +28,10 @@ class Creature; class AggressorAI : public CreatureAI { public: - explicit AggressorAI(Creature *c) : CreatureAI(c) {} + explicit AggressorAI(Creature* c) : CreatureAI(c) {} void UpdateAI(const uint32); - static int Permissible(const Creature *); + static int Permissible(const Creature*); }; typedef std::vector<uint32> SpellVct; @@ -39,14 +39,14 @@ typedef std::vector<uint32> SpellVct; class CombatAI : public CreatureAI { public: - explicit CombatAI(Creature *c) : CreatureAI(c) {} + explicit CombatAI(Creature* c) : CreatureAI(c) {} void InitializeAI(); void Reset(); void EnterCombat(Unit* who); void JustDied(Unit* killer); void UpdateAI(const uint32 diff); - static int Permissible(const Creature *); + static int Permissible(const Creature*); protected: EventMap events; SpellVct spells; @@ -55,7 +55,7 @@ class CombatAI : public CreatureAI class CasterAI : public CombatAI { public: - explicit CasterAI(Creature *c) : CombatAI(c) { m_attackDist = MELEE_RANGE; } + explicit CasterAI(Creature* c) : CombatAI(c) { m_attackDist = MELEE_RANGE; } void InitializeAI(); void AttackStart(Unit* victim) { AttackStartCaster(victim, m_attackDist); } void UpdateAI(const uint32 diff); @@ -67,11 +67,11 @@ class CasterAI : public CombatAI struct ArcherAI : public CreatureAI { public: - explicit ArcherAI(Creature *c); - void AttackStart(Unit *who); + explicit ArcherAI(Creature* c); + void AttackStart(Unit* who); void UpdateAI(const uint32 diff); - static int Permissible(const Creature *); + static int Permissible(const Creature*); protected: float m_minRange; }; @@ -79,12 +79,12 @@ struct ArcherAI : public CreatureAI struct TurretAI : public CreatureAI { public: - explicit TurretAI(Creature *c); - bool CanAIAttack(const Unit *who) const; - void AttackStart(Unit *who); + explicit TurretAI(Creature* c); + bool CanAIAttack(const Unit* who) const; + void AttackStart(Unit* who); void UpdateAI(const uint32 diff); - static int Permissible(const Creature *); + static int Permissible(const Creature*); protected: float m_minRange; }; @@ -94,13 +94,13 @@ struct TurretAI : public CreatureAI struct VehicleAI : public CreatureAI { public: - explicit VehicleAI(Creature *c); + explicit VehicleAI(Creature* c); void UpdateAI(const uint32 diff); - static int Permissible(const Creature *); + static int Permissible(const Creature*); void Reset(); - void MoveInLineOfSight(Unit *) {} - void AttackStart(Unit *) {} + void MoveInLineOfSight(Unit*) {} + void AttackStart(Unit*) {} void OnCharmed(bool apply); private: diff --git a/src/server/game/AI/CoreAI/GameObjectAI.cpp b/src/server/game/AI/CoreAI/GameObjectAI.cpp index 7262530d7ac..28c42a8ccdb 100644 --- a/src/server/game/AI/CoreAI/GameObjectAI.cpp +++ b/src/server/game/AI/CoreAI/GameObjectAI.cpp @@ -26,4 +26,4 @@ int GameObjectAI::Permissible(const GameObject* go) return PERMIT_BASE_NO; } -NullGameObjectAI::NullGameObjectAI(GameObject *g) : GameObjectAI(g) {}
\ No newline at end of file +NullGameObjectAI::NullGameObjectAI(GameObject* g) : GameObjectAI(g) {}
\ No newline at end of file diff --git a/src/server/game/AI/CoreAI/GameObjectAI.h b/src/server/game/AI/CoreAI/GameObjectAI.h index ed3a5b47e76..8d0e0508113 100644 --- a/src/server/game/AI/CoreAI/GameObjectAI.h +++ b/src/server/game/AI/CoreAI/GameObjectAI.h @@ -30,7 +30,7 @@ class GameObjectAI protected: GameObject* const go; public: - explicit GameObjectAI(GameObject *g) : go(g) {} + explicit GameObjectAI(GameObject* g) : go(g) {} virtual ~GameObjectAI() {} virtual void UpdateAI(const uint32 /*diff*/) {} @@ -54,7 +54,7 @@ class GameObjectAI class NullGameObjectAI : public GameObjectAI { public: - explicit NullGameObjectAI(GameObject *g); + explicit NullGameObjectAI(GameObject* g); void UpdateAI(const uint32 /*diff*/) {} diff --git a/src/server/game/AI/CoreAI/GuardAI.cpp b/src/server/game/AI/CoreAI/GuardAI.cpp index 1ebc9e69078..228996e5d2d 100755 --- a/src/server/game/AI/CoreAI/GuardAI.cpp +++ b/src/server/game/AI/CoreAI/GuardAI.cpp @@ -40,8 +40,8 @@ bool GuardAI::CanSeeAlways(WorldObject const* obj) if (!obj->isType(TYPEMASK_UNIT)) return false; - std::list<HostileReference *> t_list = me->getThreatManager().getThreatList(); - for (std::list<HostileReference *>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) + std::list<HostileReference*> t_list = me->getThreatManager().getThreatList(); + for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) if (unit == obj) diff --git a/src/server/game/AI/CoreAI/GuardAI.h b/src/server/game/AI/CoreAI/GuardAI.h index 7b9c8d6808c..c0b80ac5174 100755 --- a/src/server/game/AI/CoreAI/GuardAI.h +++ b/src/server/game/AI/CoreAI/GuardAI.h @@ -34,15 +34,15 @@ class GuardAI : public ScriptedAI public: - explicit GuardAI(Creature *c); + explicit GuardAI(Creature* c); - void MoveInLineOfSight(Unit *); + void MoveInLineOfSight(Unit*); void EnterEvadeMode(); - void JustDied(Unit *); + void JustDied(Unit*); bool CanSeeAlways(WorldObject const* obj); void UpdateAI(const uint32); - static int Permissible(const Creature *); + static int Permissible(const Creature*); private: uint64 i_victimGuid; diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp index 1b449f44fbd..4107179f6f7 100755 --- a/src/server/game/AI/CoreAI/PassiveAI.cpp +++ b/src/server/game/AI/CoreAI/PassiveAI.cpp @@ -20,9 +20,9 @@ #include "Creature.h" #include "TemporarySummon.h" -PassiveAI::PassiveAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } -PossessedAI::PossessedAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } -NullCreatureAI::NullCreatureAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } +PassiveAI::PassiveAI(Creature* c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } +PossessedAI::PossessedAI(Creature* c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } +NullCreatureAI::NullCreatureAI(Creature* c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); } void PassiveAI::UpdateAI(const uint32) { @@ -59,7 +59,7 @@ void PossessedAI::KilledUnit(Unit* victim) victim->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); } -void CritterAI::DamageTaken(Unit* /*done_by*/, uint32 &) +void CritterAI::DamageTaken(Unit* /*done_by*/, uint32&) { if (!me->HasUnitState(UNIT_STAT_FLEEING)) me->SetControlled(true, UNIT_STAT_FLEEING); @@ -72,7 +72,7 @@ void CritterAI::EnterEvadeMode() CreatureAI::EnterEvadeMode(); } -void TriggerAI::IsSummonedBy(Unit *summoner) +void TriggerAI::IsSummonedBy(Unit* summoner) { if (me->m_spells[0]) me->CastSpell(me, me->m_spells[0], false, 0, 0, summoner->GetGUID()); diff --git a/src/server/game/AI/CoreAI/PassiveAI.h b/src/server/game/AI/CoreAI/PassiveAI.h index be78918c608..e23fb41d608 100755 --- a/src/server/game/AI/CoreAI/PassiveAI.h +++ b/src/server/game/AI/CoreAI/PassiveAI.h @@ -25,21 +25,21 @@ class PassiveAI : public CreatureAI { public: - explicit PassiveAI(Creature *c); + explicit PassiveAI(Creature* c); - void MoveInLineOfSight(Unit *) {} - void AttackStart(Unit *) {} + void MoveInLineOfSight(Unit*) {} + void AttackStart(Unit*) {} void UpdateAI(const uint32); - static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; } + static int Permissible(const Creature*) { return PERMIT_BASE_IDLE; } }; class PossessedAI : public CreatureAI { public: - explicit PossessedAI(Creature *c); + explicit PossessedAI(Creature* c); - void MoveInLineOfSight(Unit *) {} + void MoveInLineOfSight(Unit*) {} void AttackStart(Unit* target); void UpdateAI(const uint32); void EnterEvadeMode() {} @@ -47,37 +47,37 @@ class PossessedAI : public CreatureAI void JustDied(Unit*); void KilledUnit(Unit* victim); - static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; } + static int Permissible(const Creature*) { return PERMIT_BASE_IDLE; } }; class NullCreatureAI : public CreatureAI { public: - explicit NullCreatureAI(Creature *c); + explicit NullCreatureAI(Creature* c); - void MoveInLineOfSight(Unit *) {} - void AttackStart(Unit *) {} + void MoveInLineOfSight(Unit*) {} + void AttackStart(Unit*) {} void UpdateAI(const uint32) {} void EnterEvadeMode() {} void OnCharmed(bool /*apply*/) {} - static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; } + static int Permissible(const Creature*) { return PERMIT_BASE_IDLE; } }; class CritterAI : public PassiveAI { public: - explicit CritterAI(Creature *c) : PassiveAI(c) {} + explicit CritterAI(Creature* c) : PassiveAI(c) {} - void DamageTaken(Unit *done_by, uint32 & /*damage*/); + void DamageTaken(Unit* done_by, uint32& /*damage*/); void EnterEvadeMode(); }; class TriggerAI : public NullCreatureAI { public: - explicit TriggerAI(Creature *c) : NullCreatureAI(c) {} - void IsSummonedBy(Unit *summoner); + explicit TriggerAI(Creature* c) : NullCreatureAI(c) {} + void IsSummonedBy(Unit* summoner); }; #endif diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp index ff67e3b344b..21cc19d5831 100755 --- a/src/server/game/AI/CoreAI/PetAI.cpp +++ b/src/server/game/AI/CoreAI/PetAI.cpp @@ -30,7 +30,7 @@ #include "Group.h" #include "SpellInfo.h" -int PetAI::Permissible(const Creature *creature) +int PetAI::Permissible(const Creature* creature) { if (creature->isPet()) return PERMIT_BASE_SPECIAL; @@ -38,7 +38,7 @@ int PetAI::Permissible(const Creature *creature) return PERMIT_BASE_NO; } -PetAI::PetAI(Creature *c) : CreatureAI(c), i_tracker(TIME_INTERVAL_LOOK) +PetAI::PetAI(Creature* c) : CreatureAI(c), i_tracker(TIME_INTERVAL_LOOK) { m_AllySet.clear(); UpdateAllies(); @@ -107,7 +107,7 @@ void PetAI::UpdateAI(const uint32 diff) } else if (owner && me->GetCharmInfo()) //no victim { - Unit *nextTarget = SelectNextTarget(); + Unit* nextTarget = SelectNextTarget(); if (me->HasReactState(REACT_PASSIVE)) _stopAttack(); @@ -134,7 +134,7 @@ void PetAI::UpdateAI(const uint32 diff) if (!spellID) continue; - SpellInfo const *spellInfo = sSpellMgr->GetSpellInfo(spellID); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellID); if (!spellInfo) continue; @@ -239,30 +239,30 @@ void PetAI::UpdateAI(const uint32 diff) void PetAI::UpdateAllies() { Unit* owner = me->GetCharmerOrOwner(); - Group *pGroup = NULL; + Group* group = NULL; m_updateAlliesTimer = 10*IN_MILLISECONDS; //update friendly targets every 10 seconds, lesser checks increase performance if (!owner) return; else if (owner->GetTypeId() == TYPEID_PLAYER) - pGroup = owner->ToPlayer()->GetGroup(); + group = owner->ToPlayer()->GetGroup(); //only pet and owner/not in group->ok - if (m_AllySet.size() == 2 && !pGroup) + if (m_AllySet.size() == 2 && !group) return; //owner is in group; group members filled in already (no raid -> subgroupcount = whole count) - if (pGroup && !pGroup->isRaidGroup() && m_AllySet.size() == (pGroup->GetMembersCount() + 2)) + if (group && !group->isRaidGroup() && m_AllySet.size() == (group->GetMembersCount() + 2)) return; m_AllySet.clear(); m_AllySet.insert(me->GetGUID()); - if (pGroup) //add group + if (group) //add group { - for (GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) + for (GroupReference *itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) { Player* Target = itr->getSource(); - if (!Target || !pGroup->SameSubGroup((Player*)owner, Target)) + if (!Target || !group->SameSubGroup((Player*)owner, Target)) continue; if (Target->GetGUID() == owner->GetGUID()) @@ -289,7 +289,7 @@ void PetAI::KilledUnit(Unit* victim) me->AttackStop(); me->GetCharmInfo()->SetIsCommandAttack(false); - Unit *nextTarget = SelectNextTarget(); + Unit* nextTarget = SelectNextTarget(); if (nextTarget) AttackStart(nextTarget); @@ -310,7 +310,7 @@ void PetAI::AttackStart(Unit* target) DoAttack(target, true); } -Unit *PetAI::SelectNextTarget() +Unit* PetAI::SelectNextTarget() { // Provides next target selection after current target death diff --git a/src/server/game/AI/CoreAI/PetAI.h b/src/server/game/AI/CoreAI/PetAI.h index 2e0e451ef28..9f0472cfe4d 100755 --- a/src/server/game/AI/CoreAI/PetAI.h +++ b/src/server/game/AI/CoreAI/PetAI.h @@ -29,20 +29,20 @@ class PetAI : public CreatureAI { public: - explicit PetAI(Creature *c); + explicit PetAI(Creature* c); void EnterEvadeMode(); void JustDied(Unit* /*who*/) { _stopAttack(); } void UpdateAI(const uint32); - static int Permissible(const Creature *); + static int Permissible(const Creature*); void KilledUnit(Unit* /*victim*/); void AttackStart(Unit* target); void MovementInform(uint32 moveType, uint32 data); private: - bool _isVisible(Unit *) const; + bool _isVisible(Unit*) const; bool _needToStop(void); void _stopAttack(void); @@ -54,7 +54,7 @@ class PetAI : public CreatureAI std::set<uint64> m_AllySet; uint32 m_updateAlliesTimer; - Unit *SelectNextTarget(); + Unit* SelectNextTarget(); void HandleReturnMovement(); void DoAttack(Unit* target, bool chase); bool _CanAttack(Unit* target); diff --git a/src/server/game/AI/CoreAI/ReactorAI.cpp b/src/server/game/AI/CoreAI/ReactorAI.cpp index e2d1c8f601c..df914fbf500 100755 --- a/src/server/game/AI/CoreAI/ReactorAI.cpp +++ b/src/server/game/AI/CoreAI/ReactorAI.cpp @@ -26,7 +26,7 @@ #define REACTOR_VISIBLE_RANGE (26.46f) int -ReactorAI::Permissible(const Creature *creature) +ReactorAI::Permissible(const Creature* creature) { if (creature->isCivilian() || creature->IsNeutralToAll()) return PERMIT_BASE_REACTIVE; @@ -35,7 +35,7 @@ ReactorAI::Permissible(const Creature *creature) } void -ReactorAI::MoveInLineOfSight(Unit *) +ReactorAI::MoveInLineOfSight(Unit*) { } diff --git a/src/server/game/AI/CoreAI/ReactorAI.h b/src/server/game/AI/CoreAI/ReactorAI.h index 5328634c231..e66b382ef68 100755 --- a/src/server/game/AI/CoreAI/ReactorAI.h +++ b/src/server/game/AI/CoreAI/ReactorAI.h @@ -27,12 +27,12 @@ class ReactorAI : public CreatureAI { public: - explicit ReactorAI(Creature *c) : CreatureAI(c) {} + explicit ReactorAI(Creature* c) : CreatureAI(c) {} - void MoveInLineOfSight(Unit *); + void MoveInLineOfSight(Unit*); void UpdateAI(const uint32); - static int Permissible(const Creature *); + static int Permissible(const Creature*); }; #endif diff --git a/src/server/game/AI/CoreAI/TotemAI.cpp b/src/server/game/AI/CoreAI/TotemAI.cpp index f1106f2dc28..96da4c4f4e2 100755 --- a/src/server/game/AI/CoreAI/TotemAI.cpp +++ b/src/server/game/AI/CoreAI/TotemAI.cpp @@ -28,7 +28,7 @@ #include "CellImpl.h" int -TotemAI::Permissible(const Creature *creature) +TotemAI::Permissible(const Creature* creature) { if (creature->isTotem()) return PERMIT_BASE_PROACTIVE; @@ -36,13 +36,13 @@ TotemAI::Permissible(const Creature *creature) return PERMIT_BASE_NO; } -TotemAI::TotemAI(Creature *c) : CreatureAI(c), i_victimGuid(0) +TotemAI::TotemAI(Creature* c) : CreatureAI(c), i_victimGuid(0) { ASSERT(c->isTotem()); } void -TotemAI::MoveInLineOfSight(Unit *) +TotemAI::MoveInLineOfSight(Unit*) { } @@ -61,7 +61,7 @@ TotemAI::UpdateAI(const uint32 /*diff*/) return; // Search spell - SpellInfo const *spellInfo = sSpellMgr->GetSpellInfo(me->ToTotem()->GetSpell()); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(me->ToTotem()->GetSpell()); if (!spellInfo) return; @@ -99,7 +99,7 @@ TotemAI::UpdateAI(const uint32 /*diff*/) } void -TotemAI::AttackStart(Unit *) +TotemAI::AttackStart(Unit*) { // Sentry totem sends ping on attack if (me->GetEntry() == SENTRY_TOTEM_ENTRY && me->GetOwner()->GetTypeId() == TYPEID_PLAYER) diff --git a/src/server/game/AI/CoreAI/TotemAI.h b/src/server/game/AI/CoreAI/TotemAI.h index f99e345450d..4791c3af92a 100755 --- a/src/server/game/AI/CoreAI/TotemAI.h +++ b/src/server/game/AI/CoreAI/TotemAI.h @@ -29,14 +29,14 @@ class TotemAI : public CreatureAI { public: - explicit TotemAI(Creature *c); + explicit TotemAI(Creature* c); - void MoveInLineOfSight(Unit *); - void AttackStart(Unit *); + void MoveInLineOfSight(Unit*); + void AttackStart(Unit*); void EnterEvadeMode(); void UpdateAI(const uint32); - static int Permissible(const Creature *); + static int Permissible(const Creature*); private: uint64 i_victimGuid; diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp index 92b81e7967b..91de52db9f8 100755 --- a/src/server/game/AI/CoreAI/UnitAI.cpp +++ b/src/server/game/AI/CoreAI/UnitAI.cpp @@ -91,7 +91,7 @@ Unit* UnitAI::SelectTarget(SelectAggroTarget targetType, uint32 position, float return SelectTarget(targetType, position, DefaultTargetSelector(me, dist, playerOnly, aura)); } -void UnitAI::SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAggroTarget targetType, float dist, bool playerOnly, int32 aura) +void UnitAI::SelectTargetList(std::list<Unit*>& targetList, uint32 num, SelectAggroTarget targetType, float dist, bool playerOnly, int32 aura) { SelectTargetList(targetList, DefaultTargetSelector(me, dist, playerOnly, aura), num, targetType); } @@ -109,9 +109,9 @@ void UnitAI::DoAddAuraToAllHostilePlayers(uint32 spellid) std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { - if (Unit *pTemp = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - if (pTemp->GetTypeId() == TYPEID_PLAYER) - me->AddAura(spellid, pTemp); + if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) + if (unit->GetTypeId() == TYPEID_PLAYER) + me->AddAura(spellid, unit); } }else return; @@ -124,9 +124,9 @@ void UnitAI::DoCastToAllHostilePlayers(uint32 spellid, bool triggered) std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { - if (Unit *pTemp = Unit::GetUnit(*me, (*itr)->getUnitGuid())) - if (pTemp->GetTypeId() == TYPEID_PLAYER) - me->CastSpell(pTemp, spellid, triggered); + if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) + if (unit->GetTypeId() == TYPEID_PLAYER) + me->CastSpell(unit, spellid, triggered); } }else return; @@ -143,7 +143,7 @@ void UnitAI::DoCast(uint32 spellId) case AITARGET_VICTIM: target = me->getVictim(); break; case AITARGET_ENEMY: { - const SpellInfo * spellInfo = sSpellMgr->GetSpellInfo(spellId); + const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId); bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS; //float range = GetSpellMaxRange(spellInfo, false); target = SelectTarget(SELECT_TARGET_RANDOM, 0, spellInfo->GetMaxRange(false), playerOnly); @@ -153,7 +153,7 @@ void UnitAI::DoCast(uint32 spellId) case AITARGET_BUFF: target = me; break; case AITARGET_DEBUFF: { - const SpellInfo * spellInfo = sSpellMgr->GetSpellInfo(spellId); + const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(spellId); bool playerOnly = spellInfo->AttributesEx3 & SPELL_ATTR3_ONLY_TARGET_PLAYERS; float range = spellInfo->GetMaxRange(false); @@ -178,8 +178,8 @@ void UnitAI::FillAISpellInfo() { AISpellInfo = new AISpellInfoType[sSpellMgr->GetSpellInfoStoreSize()]; - AISpellInfoType *AIInfo = AISpellInfo; - const SpellInfo * spellInfo; + AISpellInfoType* AIInfo = AISpellInfo; + const SpellInfo* spellInfo; for (uint32 i = 0; i < sSpellMgr->GetSpellInfoStoreSize(); ++i, ++AIInfo) { @@ -230,7 +230,7 @@ void PlayerAI::OnCharmed(bool apply) { me->IsAIEnabled = apply; } void SimpleCharmedAI::UpdateAI(const uint32 /*diff*/) { - Creature *charmer = me->GetCharmer()->ToCreature(); + Creature* charmer = me->GetCharmer()->ToCreature(); //kill self if charm aura has infinite duration if (charmer->IsInEvadeMode()) diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index f17c74fe7cf..ec00b53b5ca 100755 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -60,7 +60,7 @@ struct DefaultTargetSelector : public std::unary_function<Unit* , bool> // dist: if 0: ignored, if > 0: maximum distance to the reference unit, if < 0: minimum distance to the reference unit // playerOnly: self explaining // aura: if 0: ignored, if > 0: the target shall have the aura, if < 0, the target shall NOT have the aura - DefaultTargetSelector(Unit const* pUnit, float dist, bool playerOnly, int32 aura) : me(pUnit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) {} + DefaultTargetSelector(Unit const* unit, float dist, bool playerOnly, int32 aura) : me(unit), m_dist(dist), m_playerOnly(playerOnly), m_aura(aura) {} bool operator()(Unit const* target) const { @@ -128,7 +128,7 @@ class UnitAI // predicate shall extend std::unary_function<Unit* , bool> template <class PREDICATE> Unit* SelectTarget(SelectAggroTarget targetType, uint32 position, PREDICATE const& predicate) { - const std::list<HostileReference* > &threatlist = me->getThreatManager().getThreatList(); + const std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList(); if (position >= threatlist.size()) return NULL; @@ -172,11 +172,11 @@ class UnitAI return NULL; } - void SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAggroTarget targetType, float dist = 0.0f, bool playerOnly = false, int32 aura = 0); + void SelectTargetList(std::list<Unit*>& targetList, uint32 num, SelectAggroTarget targetType, float dist = 0.0f, bool playerOnly = false, int32 aura = 0); // Select the targets satifying the predicate. // predicate shall extend std::unary_function<Unit* , bool> - template <class PREDICATE> void SelectTargetList(std::list<Unit*> &targetList, PREDICATE const& predicate, uint32 maxTargets, SelectAggroTarget targetType) + template <class PREDICATE> void SelectTargetList(std::list<Unit*>& targetList, PREDICATE const& predicate, uint32 maxTargets, SelectAggroTarget targetType) { std::list<HostileReference*> const& threatlist = me->getThreatManager().getThreatList(); if (threatlist.empty()) @@ -247,7 +247,7 @@ class PlayerAI : public UnitAI protected: Player* const me; public: - explicit PlayerAI(Player* p) : UnitAI((Unit*)p), me(p) {} + explicit PlayerAI(Player* player) : UnitAI((Unit*)player), me(player) {} void OnCharmed(bool apply); }; diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index ee822d9df40..b72556dbab1 100755 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -34,8 +34,8 @@ void CreatureAI::OnCharmed(bool /*apply*/) me->IsAIEnabled = false; } -AISpellInfoType * UnitAI::AISpellInfo; - AISpellInfoType * GetAISpellInfo(uint32 i) { return &CreatureAI::AISpellInfo[i]; } +AISpellInfoType* UnitAI::AISpellInfo; +AISpellInfoType* GetAISpellInfo(uint32 i) { return &CreatureAI::AISpellInfo[i]; } void CreatureAI::Talk(uint8 id, uint64 WhisperGuid) { @@ -50,7 +50,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/) if (!creature->CanHaveThreatList()) return; - Map *map = creature->GetMap(); + Map* map = creature->GetMap(); if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated { sLog->outError("DoZoneInCombat call for map that isn't an instance (creature entry = %d)", creature->GetTypeId() == TYPEID_UNIT ? creature->ToCreature()->GetEntry() : 0); @@ -63,7 +63,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/) creature->AI()->AttackStart(target); else if (creature->isSummon()) { - if (Unit *summoner = creature->ToTempSummon()->GetSummoner()) + if (Unit* summoner = creature->ToTempSummon()->GetSummoner()) { Unit* target = summoner->getAttackerForHelper(); if (!target && summoner->CanHaveThreatList() && !summoner->getThreatManager().isThreatListEmpty()) @@ -80,23 +80,23 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/) return; } - Map::PlayerList const &PlList = map->GetPlayers(); + Map::PlayerList const& playerList = map->GetPlayers(); - if (PlList.isEmpty()) + if (playerList.isEmpty()) return; - for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i) + for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) { - if (Player* pPlayer = i->getSource()) + if (Player* player = itr->getSource()) { - if (pPlayer->isGameMaster()) + if (player->isGameMaster()) continue; - if (pPlayer->isAlive()) + if (player->isAlive()) { - creature->SetInCombatWith(pPlayer); - pPlayer->SetInCombatWith(creature); - creature->AddThreat(pPlayer, 0.0f); + creature->SetInCombatWith(player); + player->SetInCombatWith(creature); + creature->AddThreat(player, 0.0f); } /* Causes certain things to never leave the threat list (Priest Lightwell, etc): @@ -112,7 +112,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/) // scripts does not take care about MoveInLineOfSight loops // MoveInLineOfSight can be called inside another MoveInLineOfSight and cause stack overflow -void CreatureAI::MoveInLineOfSight_Safe(Unit *who) +void CreatureAI::MoveInLineOfSight_Safe(Unit* who) { if (m_MoveInLineOfSight_locked == true) return; @@ -121,7 +121,7 @@ void CreatureAI::MoveInLineOfSight_Safe(Unit *who) m_MoveInLineOfSight_locked = false; } -void CreatureAI::MoveInLineOfSight(Unit *who) +void CreatureAI::MoveInLineOfSight(Unit* who) { if (me->getVictim()) return; @@ -146,7 +146,7 @@ void CreatureAI::EnterEvadeMode() if (!me->GetVehicle()) // otherwise me will be in evade mode forever { - if (Unit *owner = me->GetCharmerOrOwner()) + if (Unit* owner = me->GetCharmerOrOwner()) { me->GetMotionMaster()->Clear(false); me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle(), MOTION_SLOT_ACTIVE); diff --git a/src/server/game/AI/CreatureAIFactory.h b/src/server/game/AI/CreatureAIFactory.h index ba0de3a4ddd..4cedb3d9545 100755 --- a/src/server/game/AI/CreatureAIFactory.h +++ b/src/server/game/AI/CreatureAIFactory.h @@ -25,24 +25,24 @@ struct SelectableAI : public FactoryHolder<CreatureAI>, public Permissible<Creature> { - SelectableAI(const char *id) : FactoryHolder<CreatureAI>(id) {} + SelectableAI(const char* id) : FactoryHolder<CreatureAI>(id) {} }; template<class REAL_AI> struct CreatureAIFactory : public SelectableAI { - CreatureAIFactory(const char *name) : SelectableAI(name) {} + CreatureAIFactory(const char* name) : SelectableAI(name) {} - CreatureAI* Create(void *) const; + CreatureAI* Create(void*) const; - int Permit(const Creature *c) const { return REAL_AI::Permissible(c); } + int Permit(const Creature* c) const { return REAL_AI::Permissible(c); } }; template<class REAL_AI> inline CreatureAI* -CreatureAIFactory<REAL_AI>::Create(void *data) const +CreatureAIFactory<REAL_AI>::Create(void* data) const { - Creature* creature = reinterpret_cast<Creature *>(data); + Creature* creature = reinterpret_cast<Creature*>(data); return (new REAL_AI(creature)); } @@ -53,24 +53,24 @@ typedef FactoryHolder<CreatureAI>::FactoryHolderRepository CreatureAIRepository; //GO struct SelectableGameObjectAI : public FactoryHolder<GameObjectAI>, public Permissible<GameObject> { - SelectableGameObjectAI(const char *id) : FactoryHolder<GameObjectAI>(id) {} + SelectableGameObjectAI(const char* id) : FactoryHolder<GameObjectAI>(id) {} }; template<class REAL_GO_AI> struct GameObjectAIFactory : public SelectableGameObjectAI { - GameObjectAIFactory(const char *name) : SelectableGameObjectAI(name) {} + GameObjectAIFactory(const char* name) : SelectableGameObjectAI(name) {} - GameObjectAI* Create(void *) const; + GameObjectAI* Create(void*) const; - int Permit(const GameObject *g) const { return REAL_GO_AI::Permissible(g); } + int Permit(const GameObject* g) const { return REAL_GO_AI::Permissible(g); } }; template<class REAL_GO_AI> inline GameObjectAI* -GameObjectAIFactory<REAL_GO_AI>::Create(void *data) const +GameObjectAIFactory<REAL_GO_AI>::Create(void* data) const { - GameObject* go = reinterpret_cast<GameObject *>(data); + GameObject* go = reinterpret_cast<GameObject*>(data); return (new REAL_GO_AI(go)); } diff --git a/src/server/game/AI/CreatureAIImpl.h b/src/server/game/AI/CreatureAIImpl.h index 5bb0580ae7c..7e57082827c 100755 --- a/src/server/game/AI/CreatureAIImpl.h +++ b/src/server/game/AI/CreatureAIImpl.h @@ -524,7 +524,7 @@ struct AISpellInfoType float maxRange; }; - AISpellInfoType * GetAISpellInfo(uint32 i); +AISpellInfoType* GetAISpellInfo(uint32 i); inline void CreatureAI::SetGazeOn(Unit* target) { @@ -615,7 +615,7 @@ inline void UnitAI::DoCastAOE(uint32 spellId, bool triggered) me->CastSpell((Unit*)NULL, spellId, triggered); } -inline Creature* CreatureAI::DoSummon(uint32 entry, const Position &pos, uint32 despawnTime, TempSummonType summonType) +inline Creature* CreatureAI::DoSummon(uint32 entry, const Position& pos, uint32 despawnTime, TempSummonType summonType) { return me->SummonCreature(entry, pos, summonType, despawnTime); } diff --git a/src/server/game/AI/CreatureAISelector.cpp b/src/server/game/AI/CreatureAISelector.cpp index f7e760c7b79..5b7ee7750bc 100755 --- a/src/server/game/AI/CreatureAISelector.cpp +++ b/src/server/game/AI/CreatureAISelector.cpp @@ -28,9 +28,9 @@ namespace FactorySelector { - CreatureAI* selectAI(Creature *creature) + CreatureAI* selectAI(Creature* creature) { - const CreatureAICreator *ai_factory = NULL; + const CreatureAICreator* ai_factory = NULL; CreatureAIRegistry& ai_registry(*CreatureAIRepository::instance()); if (creature->isPet()) @@ -77,11 +77,11 @@ namespace FactorySelector { int best_val = -1; typedef CreatureAIRegistry::RegistryMapType RMT; - RMT const &l = ai_registry.GetRegisteredItems(); + RMT const& l = ai_registry.GetRegisteredItems(); for (RMT::const_iterator iter = l.begin(); iter != l.end(); ++iter) { - const CreatureAICreator *factory = iter->second; - const SelectableAI *p = dynamic_cast<const SelectableAI *>(factory); + const CreatureAICreator* factory = iter->second; + const SelectableAI* p = dynamic_cast<const SelectableAI*>(factory); ASSERT(p != NULL); int val = p->Permit(creature); if (val > best_val) @@ -99,11 +99,11 @@ namespace FactorySelector return (ai_factory == NULL ? new NullCreatureAI(creature) : ai_factory->Create(creature)); } - MovementGenerator* selectMovementGenerator(Creature *creature) + MovementGenerator* selectMovementGenerator(Creature* creature) { MovementGeneratorRegistry& mv_registry(*MovementGeneratorRepository::instance()); ASSERT(creature->GetCreatureInfo() != NULL); - const MovementGeneratorCreator *mv_factory = mv_registry.GetRegistryItem(creature->GetDefaultMovementType()); + const MovementGeneratorCreator* mv_factory = mv_registry.GetRegistryItem(creature->GetDefaultMovementType()); /* if (mv_factory == NULL) { @@ -128,9 +128,9 @@ namespace FactorySelector } - GameObjectAI* SelectGameObjectAI(GameObject *go) + GameObjectAI* SelectGameObjectAI(GameObject* go) { - const GameObjectAICreator *ai_factory = NULL; + const GameObjectAICreator* ai_factory = NULL; GameObjectAIRegistry& ai_registry(*GameObjectAIRepository::instance()); ai_factory = ai_registry.GetRegistryItem(go->GetAIName()); diff --git a/src/server/game/AI/CreatureAISelector.h b/src/server/game/AI/CreatureAISelector.h index 4b45a73c64d..64bf96c01af 100755 --- a/src/server/game/AI/CreatureAISelector.h +++ b/src/server/game/AI/CreatureAISelector.h @@ -27,9 +27,9 @@ class GameObject; namespace FactorySelector { - CreatureAI* selectAI(Creature *); - MovementGenerator* selectMovementGenerator(Creature *); - GameObjectAI* SelectGameObjectAI(GameObject *); + CreatureAI* selectAI(Creature*); + MovementGenerator* selectMovementGenerator(Creature*); + GameObjectAI* SelectGameObjectAI(GameObject*); } #endif diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp index a1a3cc6c48a..d09939c3243 100755 --- a/src/server/game/AI/EventAI/CreatureEventAI.cpp +++ b/src/server/game/AI/EventAI/CreatureEventAI.cpp @@ -48,14 +48,14 @@ bool CreatureEventAIHolder::UpdateRepeatTimer(Creature* creature, uint32 repeatM return true; } -int CreatureEventAI::Permissible(const Creature *creature) +int CreatureEventAI::Permissible(const Creature* creature) { if (creature->GetAIName() == "EventAI") return PERMIT_BASE_SPECIAL; return PERMIT_BASE_NO; } -CreatureEventAI::CreatureEventAI(Creature *c) : CreatureAI(c) +CreatureEventAI::CreatureEventAI(Creature* c) : CreatureAI(c) { // Need make copy for filter unneeded steps and safe in case table reload CreatureEventAI_Event_Map::const_iterator CreatureEvents = sEventAIMgr->GetCreatureEventAIMap().find(me->GetEntry()); @@ -106,16 +106,16 @@ CreatureEventAI::CreatureEventAI(Creature *c) : CreatureAI(c) } } -bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pActionInvoker /*=NULL*/) +bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker /*=NULL*/) { - if (!pHolder.Enabled || pHolder.Time) + if (!holder.Enabled || holder.Time) return false; //Check the inverse phase mask (event doesn't trigger if current phase bit is set in mask) - if (pHolder.Event.event_inverse_phase_mask & (1 << m_Phase)) + if (holder.Event.event_inverse_phase_mask & (1 << m_Phase)) return false; - CreatureEventAI_Event const& event = pHolder.Event; + CreatureEventAI_Event const& event = holder.Event; //Check event conditions based on the event type, also reset events switch (event.event_type) @@ -125,14 +125,14 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); + holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); break; case EVENT_T_TIMER_OOC: if (me->isInCombat()) return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); + holder.UpdateRepeatTimer(me, event.timer.repeatMin, event.timer.repeatMax); break; case EVENT_T_HP: { @@ -145,7 +145,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); + holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); break; } case EVENT_T_MANA: @@ -159,14 +159,14 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); + holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); break; } case EVENT_T_AGGRO: break; case EVENT_T_KILL: //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.kill.repeatMin, event.kill.repeatMax); + holder.UpdateRepeatTimer(me, event.kill.repeatMin, event.kill.repeatMax); break; case EVENT_T_DEATH: case EVENT_T_EVADE: @@ -175,15 +175,15 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction //Spell hit is special case, param1 and param2 handled within CreatureEventAI::SpellHit //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.spell_hit.repeatMin, event.spell_hit.repeatMax); + holder.UpdateRepeatTimer(me, event.spell_hit.repeatMin, event.spell_hit.repeatMax); break; case EVENT_T_RANGE: //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.range.repeatMin, event.range.repeatMax); + holder.UpdateRepeatTimer(me, event.range.repeatMin, event.range.repeatMax); break; case EVENT_T_OOC_LOS: //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.ooc_los.repeatMin, event.ooc_los.repeatMax); + holder.UpdateRepeatTimer(me, event.ooc_los.repeatMin, event.ooc_los.repeatMax); break; case EVENT_T_RESET: case EVENT_T_SPAWNED: @@ -199,7 +199,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); + holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); break; } case EVENT_T_TARGET_CASTING: @@ -207,21 +207,21 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.target_casting.repeatMin, event.target_casting.repeatMax); + holder.UpdateRepeatTimer(me, event.target_casting.repeatMin, event.target_casting.repeatMax); break; case EVENT_T_FRIENDLY_HP: { if (!me->isInCombat()) return false; - Unit* pUnit = DoSelectLowestHpFriendly((float)event.friendly_hp.radius, event.friendly_hp.hpDeficit); - if (!pUnit) + Unit* unit = DoSelectLowestHpFriendly((float)event.friendly_hp.radius, event.friendly_hp.hpDeficit); + if (!unit) return false; - pActionInvoker = pUnit; + actionInvoker = unit; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.friendly_hp.repeatMin, event.friendly_hp.repeatMax); + holder.UpdateRepeatTimer(me, event.friendly_hp.repeatMin, event.friendly_hp.repeatMax); break; } case EVENT_T_FRIENDLY_IS_CC: @@ -237,10 +237,10 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //We don't really care about the whole list, just return first available - pActionInvoker = *(pList.begin()); + actionInvoker = *(pList.begin()); //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.friendly_is_cc.repeatMin, event.friendly_is_cc.repeatMax); + holder.UpdateRepeatTimer(me, event.friendly_is_cc.repeatMin, event.friendly_is_cc.repeatMax); break; } case EVENT_T_FRIENDLY_MISSING_BUFF: @@ -253,24 +253,24 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //We don't really care about the whole list, just return first available - pActionInvoker = *(pList.begin()); + actionInvoker = *(pList.begin()); //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.friendly_buff.repeatMin, event.friendly_buff.repeatMax); + holder.UpdateRepeatTimer(me, event.friendly_buff.repeatMin, event.friendly_buff.repeatMax); break; } case EVENT_T_SUMMONED_UNIT: { //Prevent event from occuring on no unit or non creatures - if (!pActionInvoker || pActionInvoker->GetTypeId() != TYPEID_UNIT) + if (!actionInvoker || actionInvoker->GetTypeId() != TYPEID_UNIT) return false; //Creature id doesn't match up - if (pActionInvoker->ToCreature()->GetEntry() != event.summon_unit.creatureId) + if (actionInvoker->ToCreature()->GetEntry() != event.summon_unit.creatureId) return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.summon_unit.repeatMin, event.summon_unit.repeatMax); + holder.UpdateRepeatTimer(me, event.summon_unit.repeatMin, event.summon_unit.repeatMax); break; } case EVENT_T_TARGET_MANA: @@ -284,7 +284,7 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); + holder.UpdateRepeatTimer(me, event.percent_range.repeatMin, event.percent_range.repeatMax); break; } case EVENT_T_REACHED_HOME: @@ -299,49 +299,49 @@ bool CreatureEventAI::ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pAction return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); + holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); break; } case EVENT_T_TARGET_BUFFED: { //Prevent event from occuring on no unit - if (!pActionInvoker) + if (!actionInvoker) return false; //Note: checked only aura for effect 0, if need check aura for effect 1/2 then // possible way: pack in event.buffed.amount 2 uint16 (ammount+effectIdx) - Aura const* aura = pActionInvoker->GetAura(event.buffed.spellId); + Aura const* aura = actionInvoker->GetAura(event.buffed.spellId); if (!aura || aura->GetStackAmount() < event.buffed.amount) return false; //Repeat Timers - pHolder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); + holder.UpdateRepeatTimer(me, event.buffed.repeatMin, event.buffed.repeatMax); break; } default: - sLog->outErrorDb("CreatureEventAI: Creature %u using Event %u has invalid Event Type(%u), missing from ProcessEvent() Switch.", me->GetEntry(), pHolder.Event.event_id, pHolder.Event.event_type); + sLog->outErrorDb("CreatureEventAI: Creature %u using Event %u has invalid Event Type(%u), missing from ProcessEvent() Switch.", me->GetEntry(), holder.Event.event_id, holder.Event.event_type); break; } //Disable non-repeatable events - if (!(pHolder.Event.event_flags & EFLAG_REPEATABLE)) - pHolder.Enabled = false; + if (!(holder.Event.event_flags & EFLAG_REPEATABLE)) + holder.Enabled = false; //Store random here so that all random actions match up uint32 rnd = rand(); //Return if chance for event is not met - if (pHolder.Event.event_chance <= rnd % 100) + if (holder.Event.event_chance <= rnd % 100) return false; //Process actions for (uint8 j = 0; j < MAX_ACTIONS; ++j) - ProcessAction(pHolder.Event.action[j], rnd, pHolder.Event.event_id, pActionInvoker); + ProcessAction(holder.Event.action[j], rnd, holder.Event.event_id, actionInvoker); return true; } -void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 EventId, Unit* pActionInvoker) +void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker) { switch (action.type) { @@ -361,11 +361,11 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 { Unit* target = NULL; - if (pActionInvoker) + if (actionInvoker) { - if (pActionInvoker->GetTypeId() == TYPEID_PLAYER) - target = pActionInvoker; - else if (Unit* owner = pActionInvoker->GetOwner()) + if (actionInvoker->GetTypeId() == TYPEID_PLAYER) + target = actionInvoker; + else if (Unit* owner = actionInvoker->GetOwner()) { if (owner->GetTypeId() == TYPEID_PLAYER) target = owner; @@ -442,7 +442,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 } case ACTION_T_CAST: { - Unit* target = GetTargetByType(action.cast.target, pActionInvoker); + Unit* target = GetTargetByType(action.cast.target, actionInvoker); Unit* caster = me; if (!target) @@ -496,29 +496,29 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 } else - sLog->outErrorDb("CreatureEventAI: event %d creature %d attempt to cast spell that doesn't exist %d", EventId, me->GetEntry(), action.cast.spellId); + sLog->outErrorDb("CreatureEventAI: event %d creature %d attempt to cast spell that doesn't exist %d", eventId, me->GetEntry(), action.cast.spellId); } break; } case ACTION_T_SUMMON: { - Unit* target = GetTargetByType(action.summon.target, pActionInvoker); + Unit* target = GetTargetByType(action.summon.target, actionInvoker); - Creature* pCreature = NULL; + Creature* creature = NULL; if (action.summon.duration) - pCreature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, action.summon.duration); + creature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, action.summon.duration); else - pCreature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0); + creature = me->SummonCreature(action.summon.creatureId, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0); - if (!pCreature) - sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. Spawn event %d is on creature %d", action.summon.creatureId, EventId, me->GetEntry()); + if (!creature) + sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. Spawn event %d is on creature %d", action.summon.creatureId, eventId, me->GetEntry()); else if (action.summon.target != TARGET_T_SELF && target) - pCreature->AI()->AttackStart(target); + creature->AI()->AttackStart(target); break; } case ACTION_T_THREAT_SINGLE_PCT: - if (Unit* target = GetTargetByType(action.threat_single_pct.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.threat_single_pct.target, actionInvoker)) me->getThreatManager().modifyThreatPercent(target, action.threat_single_pct.percent); break; case ACTION_T_THREAT_ALL_PCT: @@ -530,18 +530,18 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; } case ACTION_T_QUEST_EVENT: - if (Unit* target = GetTargetByType(action.quest_event.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.quest_event.target, actionInvoker)) if (target->GetTypeId() == TYPEID_PLAYER) target->ToPlayer()->AreaExploredOrEventHappens(action.quest_event.questId); break; case ACTION_T_CAST_EVENT: - if (Unit* target = GetTargetByType(action.cast_event.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.cast_event.target, actionInvoker)) if (target->GetTypeId() == TYPEID_PLAYER) target->ToPlayer()->CastedCreatureOrGO(action.cast_event.creatureId, me->GetGUID(), action.cast_event.spellId); break; case ACTION_T_SET_UNIT_FIELD: { - Unit* target = GetTargetByType(action.set_unit_field.target, pActionInvoker); + Unit* target = GetTargetByType(action.set_unit_field.target, actionInvoker); // not allow modify important for integrity object fields if (action.set_unit_field.field < OBJECT_END || action.set_unit_field.field >= UNIT_END) @@ -553,11 +553,11 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; } case ACTION_T_SET_UNIT_FLAG: - if (Unit* target = GetTargetByType(action.unit_flag.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker)) target->SetFlag(UNIT_FIELD_FLAGS, action.unit_flag.value); break; case ACTION_T_REMOVE_UNIT_FLAG: - if (Unit* target = GetTargetByType(action.unit_flag.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.unit_flag.target, actionInvoker)) target->RemoveFlag(UNIT_FIELD_FLAGS, action.unit_flag.value); break; case ACTION_T_AUTO_ATTACK: @@ -608,12 +608,12 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 int32 new_phase = int32(m_Phase)+action.set_inc_phase.step; if (new_phase < 0) { - sLog->outErrorDb("CreatureEventAI: Event %d decrease m_Phase under 0. CreatureEntry = %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d decrease m_Phase under 0. CreatureEntry = %d", eventId, me->GetEntry()); m_Phase = 0; } else if (new_phase >= MAX_PHASE) { - sLog->outErrorDb("CreatureEventAI: Event %d incremented m_Phase above %u. m_Phase mask cannot be used with phases past %u. CreatureEntry = %d", EventId, MAX_PHASE-1, MAX_PHASE-1, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d incremented m_Phase above %u. m_Phase mask cannot be used with phases past %u. CreatureEntry = %d", eventId, MAX_PHASE-1, MAX_PHASE-1, me->GetEntry()); m_Phase = MAX_PHASE-1; } else @@ -628,9 +628,9 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 me->DoFleeToGetAssistance(); break; case ACTION_T_QUEST_EVENT_ALL: - if (pActionInvoker && pActionInvoker->GetTypeId() == TYPEID_PLAYER) + if (actionInvoker && actionInvoker->GetTypeId() == TYPEID_PLAYER) { - if (Unit* Temp = Unit::GetUnit(*me, pActionInvoker->GetGUID())) + if (Unit* Temp = Unit::GetUnit(*me, actionInvoker->GetGUID())) if (Temp->GetTypeId() == TYPEID_PLAYER) Temp->ToPlayer()->GroupEventHappens(action.quest_event_all.questId, me); } @@ -645,7 +645,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; } case ACTION_T_REMOVEAURASFROMSPELL: - if (Unit* target = GetTargetByType(action.remove_aura.target, pActionInvoker)) + if (Unit* target = GetTargetByType(action.remove_aura.target, actionInvoker)) target->RemoveAurasDueToSpell(action.remove_aura.spellId); break; case ACTION_T_RANGED_MOVEMENT: @@ -664,80 +664,80 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 if (action.random_phase_range.phaseMin <= action.random_phase_range.phaseMax) m_Phase = urand(action.random_phase_range.phaseMin, action.random_phase_range.phaseMax); else - sLog->outErrorDb("CreatureEventAI: ACTION_T_RANDOM_PHASE_RANGE cannot have Param2 < Param1. Event = %d. CreatureEntry = %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: ACTION_T_RANDOM_PHASE_RANGE cannot have Param2 < Param1. Event = %d. CreatureEntry = %d", eventId, me->GetEntry()); break; case ACTION_T_SUMMON_ID: { - Unit* target = GetTargetByType(action.summon_id.target, pActionInvoker); + Unit* target = GetTargetByType(action.summon_id.target, actionInvoker); CreatureEventAI_Summon_Map::const_iterator i = sEventAIMgr->GetCreatureEventAISummonMap().find(action.summon_id.spawnId); if (i == sEventAIMgr->GetCreatureEventAISummonMap().end()) { - sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. Summon map index %u does not exist. EventID %d. CreatureID %d", action.summon_id.creatureId, action.summon_id.spawnId, EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. Summon map index %u does not exist. EventID %d. CreatureID %d", action.summon_id.creatureId, action.summon_id.spawnId, eventId, me->GetEntry()); return; } - Creature* pCreature = NULL; + Creature* creature = NULL; if ((*i).second.SpawnTimeSecs) - pCreature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, (*i).second.SpawnTimeSecs); + creature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, (*i).second.SpawnTimeSecs); else - pCreature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0); + creature = me->SummonCreature(action.summon_id.creatureId, (*i).second.position_x, (*i).second.position_y, (*i).second.position_z, (*i).second.orientation, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0); - if (!pCreature) - sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. EventId %d.Creature %d", action.summon_id.creatureId, EventId, me->GetEntry()); + if (!creature) + sLog->outErrorDb("CreatureEventAI: failed to spawn creature %u. EventId %d.Creature %d", action.summon_id.creatureId, eventId, me->GetEntry()); else if (action.summon_id.target != TARGET_T_SELF && target) - pCreature->AI()->AttackStart(target); + creature->AI()->AttackStart(target); break; } case ACTION_T_KILLED_MONSTER: //first attempt player who tapped creature - if (Player* pPlayer = me->GetLootRecipient()) - pPlayer->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, pPlayer); // pPlayer as param is a hacky solution not to use GUID + if (Player* player = me->GetLootRecipient()) + player->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player); // player as param is a hacky solution not to use GUID else { - //if not available, use pActionInvoker - if (Unit* pTarget = GetTargetByType(action.killed_monster.target, pActionInvoker)) - if (Player* pPlayer2 = pTarget->GetCharmerOrOwnerPlayerOrPlayerItself()) - pPlayer2->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, pPlayer2); + //if not available, use actionInvoker + if (Unit* target = GetTargetByType(action.killed_monster.target, actionInvoker)) + if (Player* player2 = target->GetCharmerOrOwnerPlayerOrPlayerItself()) + player2->RewardPlayerAndGroupAtEvent(action.killed_monster.creatureId, player2); } break; case ACTION_T_SET_INST_DATA: { - InstanceScript* pInst = (InstanceScript*)me->GetInstanceScript(); - if (!pInst) + InstanceScript* instance = (InstanceScript*)me->GetInstanceScript(); + if (!instance) { - sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data without instance script. Creature %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data without instance script. Creature %d", eventId, me->GetEntry()); return; } - pInst->SetData(action.set_inst_data.field, action.set_inst_data.value); + instance->SetData(action.set_inst_data.field, action.set_inst_data.value); break; } case ACTION_T_SET_INST_DATA64: { - Unit* target = GetTargetByType(action.set_inst_data64.target, pActionInvoker); + Unit* target = GetTargetByType(action.set_inst_data64.target, actionInvoker); if (!target) { - sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data64 but Target == NULL. Creature %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data64 but Target == NULL. Creature %d", eventId, me->GetEntry()); return; } - InstanceScript* pInst = (InstanceScript*)me->GetInstanceScript(); - if (!pInst) + InstanceScript* instance = (InstanceScript*)me->GetInstanceScript(); + if (!instance) { - sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data64 without instance script. Creature %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d attempt to set instance data64 without instance script. Creature %d", eventId, me->GetEntry()); return; } - pInst->SetData64(action.set_inst_data64.field, target->GetGUID()); + instance->SetData64(action.set_inst_data64.field, target->GetGUID()); break; } case ACTION_T_UPDATE_TEMPLATE: if (me->GetEntry() == action.update_template.creatureId) { - sLog->outErrorDb("CreatureEventAI: Event %d ACTION_T_UPDATE_TEMPLATE call with param1 == current entry. Creature %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d ACTION_T_UPDATE_TEMPLATE call with param1 == current entry. Creature %d", eventId, me->GetEntry()); return; } @@ -747,7 +747,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 if (me->isDead()) { - sLog->outErrorDb("CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", EventId, me->GetEntry()); + sLog->outErrorDb("CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", eventId, me->GetEntry()); return; } me->Kill(me); @@ -792,14 +792,14 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; case ACTION_T_SUMMON_GO: { - GameObject* pObject = NULL; + GameObject* object = NULL; float x, y, z; me->GetPosition(x, y, z); - pObject = me->SummonGameObject(action.raw.param1, x, y, z, 0, 0, 0, 0, 0, action.raw.param2); - if (!pObject) + object = me->SummonGameObject(action.raw.param1, x, y, z, 0, 0, 0, 0, 0, action.raw.param2); + if (!object) { - sLog->outErrorDb("TSCR: EventAI failed to spawn object %u. Spawn event %d is on creature %d", action.raw.param1, EventId, me->GetEntry()); + sLog->outErrorDb("TSCR: EventAI failed to spawn object %u. Spawn event %d is on creature %d", action.raw.param1, eventId, me->GetEntry()); } break; } @@ -955,19 +955,19 @@ void CreatureEventAI::KilledUnit(Unit* victim) } } -void CreatureEventAI::JustSummoned(Creature* pUnit) +void CreatureEventAI::JustSummoned(Creature* unit) { - if (m_bEmptyList || !pUnit) + if (m_bEmptyList || !unit) return; for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) { if ((*i).Event.event_type == EVENT_T_SUMMONED_UNIT) - ProcessEvent(*i, pUnit); + ProcessEvent(*i, unit); } } -void CreatureEventAI::EnterCombat(Unit *enemy) +void CreatureEventAI::EnterCombat(Unit* enemy) { //Check for on combat start events if (!m_bEmptyList) @@ -999,7 +999,7 @@ void CreatureEventAI::EnterCombat(Unit *enemy) m_EventDiff = 0; } -void CreatureEventAI::AttackStart(Unit *who) +void CreatureEventAI::AttackStart(Unit* who) { if (!who) return; @@ -1047,7 +1047,7 @@ void CreatureEventAI::MoveInLineOfSight(Unit *who) CreatureAI::MoveInLineOfSight(who); } -void CreatureEventAI::SpellHit(Unit* pUnit, const SpellInfo* pSpell) +void CreatureEventAI::SpellHit(Unit* unit, const SpellInfo* spell) { if (m_bEmptyList) @@ -1056,9 +1056,9 @@ void CreatureEventAI::SpellHit(Unit* pUnit, const SpellInfo* pSpell) for (CreatureEventAIList::iterator i = m_CreatureEventAIList.begin(); i != m_CreatureEventAIList.end(); ++i) if ((*i).Event.event_type == EVENT_T_SPELLHIT) //If spell id matches (or no spell id) & if spell school matches (or no spell school) - if (!(*i).Event.spell_hit.spellId || pSpell->Id == (*i).Event.spell_hit.spellId) - if (pSpell->SchoolMask & (*i).Event.spell_hit.schoolMask) - ProcessEvent(*i, pUnit); + if (!(*i).Event.spell_hit.spellId || spell->Id == (*i).Event.spell_hit.spellId) + if (spell->SchoolMask & (*i).Event.spell_hit.schoolMask) + ProcessEvent(*i, unit); } void CreatureEventAI::UpdateAI(const uint32 diff) @@ -1152,9 +1152,9 @@ inline int32 CreatureEventAI::GetRandActionParam(uint32 rnd, int32 param1, int32 return 0; } -inline Unit* CreatureEventAI::GetTargetByType(uint32 Target, Unit* pActionInvoker) +inline Unit* CreatureEventAI::GetTargetByType(uint32 target, Unit* actionInvoker) { - switch (Target) + switch (target) { case TARGET_T_SELF: return me; @@ -1169,23 +1169,23 @@ inline Unit* CreatureEventAI::GetTargetByType(uint32 Target, Unit* pActionInvoke case TARGET_T_HOSTILE_RANDOM_NOT_TOP: return SelectTarget(SELECT_TARGET_RANDOM, 1); case TARGET_T_ACTION_INVOKER: - return pActionInvoker; + return actionInvoker; default: return NULL; }; } -Unit* CreatureEventAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff) +Unit* CreatureEventAI::DoSelectLowestHpFriendly(float range, uint32 minHPDiff) { CellPair p(Trinity::ComputeCellPair(me->GetPositionX(), me->GetPositionY())); Cell cell(p); cell.data.Part.reserved = ALL_DISTRICT; cell.SetNoCreate(); - Unit* pUnit = NULL; + Unit* unit = NULL; - Trinity::MostHPMissingInRange u_check(me, range, MinHPDiff); - Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, pUnit, u_check); + Trinity::MostHPMissingInRange u_check(me, range, minHPDiff); + Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, unit, u_check); /* typedef TYPELIST_4(GameObject, Creature*except pets*, DynamicObject, Corpse*Bones*) AllGridObjectTypes; @@ -1194,7 +1194,7 @@ Unit* CreatureEventAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff) TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange>, GridTypeMapContainer > grid_unit_searcher(searcher); cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, range); - return pUnit; + return unit; } void CreatureEventAI::DoFindFriendlyCC(std::list<Creature*>& _list, float range) @@ -1230,9 +1230,9 @@ void CreatureEventAI::DoFindFriendlyMissingBuff(std::list<Creature*>& _list, flo // ********************************* // *** Functions used globally *** -void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target) +void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* source, Unit* target) { - if (!pSource) + if (!source) { sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i, invalid Source pointer.", textEntry); return; @@ -1240,7 +1240,7 @@ void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* pSource, Unit* if (textEntry >= 0) { - sLog->outErrorDb("CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) attempts to process text entry %i, but text entry must be negative.", pSource->GetEntry(), pSource->GetTypeId(), pSource->GetGUIDLow(), textEntry); + sLog->outErrorDb("CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) attempts to process text entry %i, but text entry must be negative.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry); return; } @@ -1248,7 +1248,7 @@ void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* pSource, Unit* if (i == sEventAIMgr->GetCreatureEventAITextMap().end()) { - sLog->outErrorDb("CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) could not find text entry %i.", pSource->GetEntry(), pSource->GetTypeId(), pSource->GetGUIDLow(), textEntry); + sLog->outErrorDb("CreatureEventAI: DoScriptText with source entry %u (TypeId=%u, guid=%u) could not find text entry %i.", source->GetEntry(), source->GetTypeId(), source->GetGUIDLow(), textEntry); return; } @@ -1257,75 +1257,75 @@ void CreatureEventAI::DoScriptText(int32 textEntry, WorldObject* pSource, Unit* if ((*i).second.SoundId) { if (GetSoundEntriesStore()->LookupEntry((*i).second.SoundId)) - pSource->PlayDirectSound((*i).second.SoundId); + source->PlayDirectSound((*i).second.SoundId); else sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i tried to process invalid sound id %u.", textEntry, (*i).second.SoundId); } if ((*i).second.Emote) { - if (pSource->GetTypeId() == TYPEID_UNIT || pSource->GetTypeId() == TYPEID_PLAYER) + if (source->GetTypeId() == TYPEID_UNIT || source->GetTypeId() == TYPEID_PLAYER) { - ((Unit*)pSource)->HandleEmoteCommand((*i).second.Emote); + ((Unit*)source)->HandleEmoteCommand((*i).second.Emote); } else - sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i tried to process emote for invalid TypeId (%u).", textEntry, pSource->GetTypeId()); + sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i tried to process emote for invalid TypeId (%u).", textEntry, source->GetTypeId()); } switch((*i).second.Type) { case CHAT_TYPE_SAY: - pSource->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); + source->MonsterSay(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); break; case CHAT_TYPE_YELL: - pSource->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); + source->MonsterYell(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); break; case CHAT_TYPE_TEXT_EMOTE: - pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0); + source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0); break; case CHAT_TYPE_BOSS_EMOTE: - pSource->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true); + source->MonsterTextEmote(textEntry, target ? target->GetGUID() : 0, true); break; case CHAT_TYPE_WHISPER: { if (target && target->GetTypeId() == TYPEID_PLAYER) - pSource->MonsterWhisper(textEntry, target->GetGUID()); + source->MonsterWhisper(textEntry, target->GetGUID()); else sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry); }break; case CHAT_TYPE_BOSS_WHISPER: { if (target && target->GetTypeId() == TYPEID_PLAYER) - pSource->MonsterWhisper(textEntry, target->GetGUID(), true); + source->MonsterWhisper(textEntry, target->GetGUID(), true); else sLog->outErrorDb("CreatureEventAI: DoScriptText entry %i cannot whisper without target unit (TYPEID_PLAYER).", textEntry); }break; case CHAT_TYPE_ZONE_YELL: - pSource->MonsterYellToZone(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); + source->MonsterYellToZone(textEntry, (*i).second.Language, target ? target->GetGUID() : 0); break; } } -bool CreatureEventAI::CanCast(Unit* Target, SpellInfo const *Spell, bool Triggered) +bool CreatureEventAI::CanCast(Unit* target, SpellInfo const* spell, bool triggered) { //No target so we can't cast - if (!Target || !Spell) + if (!target || !spell) return false; //Silenced so we can't cast - if (!Triggered && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)) + if (!triggered && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)) return false; //Check for power - if (!Triggered && me->GetPower((Powers)Spell->PowerType) < Spell->CalcPowerCost(me, Spell->GetSchoolMask())) + if (!triggered && me->GetPower((Powers)spell->PowerType) < spell->CalcPowerCost(me, spell->GetSchoolMask())) return false; //Unit is out of range of this spell - if (!me->IsInRange(Target, Spell->GetMinRange(false), Spell->GetMaxRange(false))) + if (!me->IsInRange(target, spell->GetMinRange(false), spell->GetMaxRange(false))) return false; return true; } -void CreatureEventAI::ReceiveEmote(Player* pPlayer, uint32 text_emote) +void CreatureEventAI::ReceiveEmote(Player* player, uint32 textEmote) { if (m_bEmptyList) return; @@ -1334,7 +1334,7 @@ void CreatureEventAI::ReceiveEmote(Player* pPlayer, uint32 text_emote) { if ((*itr).Event.event_type == EVENT_T_RECEIVE_EMOTE) { - if ((*itr).Event.receive_emote.emoteId != text_emote) + if ((*itr).Event.receive_emote.emoteId != textEmote) return; Condition cond; @@ -1342,10 +1342,10 @@ void CreatureEventAI::ReceiveEmote(Player* pPlayer, uint32 text_emote) cond.mConditionValue1 = (*itr).Event.receive_emote.conditionValue1; cond.mConditionValue2 = (*itr).Event.receive_emote.conditionValue2; - if (cond.Meets(pPlayer)) + if (cond.Meets(player)) { sLog->outDebug(LOG_FILTER_DATABASE_AI, "CreatureEventAI: ReceiveEmote CreatureEventAI: Condition ok, processing"); - ProcessEvent(*itr, pPlayer); + ProcessEvent(*itr, player); } } } diff --git a/src/server/game/AI/EventAI/CreatureEventAI.h b/src/server/game/AI/EventAI/CreatureEventAI.h index 7df0dc2d30d..2fc26bcbd3e 100755 --- a/src/server/game/AI/EventAI/CreatureEventAI.h +++ b/src/server/game/AI/EventAI/CreatureEventAI.h @@ -591,7 +591,7 @@ class CreatureEventAI : public CreatureAI { public: - explicit CreatureEventAI(Creature *c); + explicit CreatureEventAI(Creature* c); ~CreatureEventAI() { m_CreatureEventAIList.clear(); @@ -599,32 +599,32 @@ class CreatureEventAI : public CreatureAI void JustRespawned(); void Reset(); void JustReachedHome(); - void EnterCombat(Unit *enemy); + void EnterCombat(Unit* enemy); void EnterEvadeMode(); void JustDied(Unit* /*killer*/); void KilledUnit(Unit* victim); - void JustSummoned(Creature* pUnit); - void AttackStart(Unit *who); - void MoveInLineOfSight(Unit *who); - void SpellHit(Unit* pUnit, const SpellInfo* pSpell); + void JustSummoned(Creature* unit); + void AttackStart(Unit* who); + void MoveInLineOfSight(Unit* who); + void SpellHit(Unit* unit, const SpellInfo* spell); void DamageTaken(Unit* done_by, uint32& damage); void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) {} void UpdateAI(const uint32 diff); - void ReceiveEmote(Player* pPlayer, uint32 text_emote); - static int Permissible(const Creature *); + void ReceiveEmote(Player* player, uint32 textEmote); + static int Permissible(const Creature*); - bool ProcessEvent(CreatureEventAIHolder& pHolder, Unit* pActionInvoker = NULL); - void ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 EventId, Unit* pActionInvoker); + bool ProcessEvent(CreatureEventAIHolder& holder, Unit* actionInvoker = NULL); + void ProcessAction(CreatureEventAI_Action const& action, uint32 rnd, uint32 eventId, Unit* actionInvoker); inline uint32 GetRandActionParam(uint32 rnd, uint32 param1, uint32 param2, uint32 param3); inline int32 GetRandActionParam(uint32 rnd, int32 param1, int32 param2, int32 param3); - inline Unit* GetTargetByType(uint32 Target, Unit* pActionInvoker); + inline Unit* GetTargetByType(uint32 target, Unit* actionInvoker); - void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target); - bool CanCast(Unit* Target, SpellInfo const *Spell, bool Triggered); + void DoScriptText(int32 textEntry, WorldObject* source, Unit* target); + bool CanCast(Unit* target, SpellInfo const* spell, bool triggered); bool SpawnedEventConditionsCheck(CreatureEventAI_Event const& event); - Unit* DoSelectLowestHpFriendly(float range, uint32 MinHPDiff); + Unit* DoSelectLowestHpFriendly(float range, uint32 minHPDiff); void DoFindFriendlyMissingBuff(std::list<Creature*>& _list, float range, uint32 spellid); void DoFindFriendlyCC(std::list<Creature*>& _list, float range); diff --git a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp index 6c3765252f0..72828ad01d6 100755 --- a/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp +++ b/src/server/game/AI/EventAI/CreatureEventAIMgr.cpp @@ -124,7 +124,7 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Summons() do { - Field *fields = result->Fetch(); + Field* fields = result->Fetch(); CreatureEventAI_Summon temp; @@ -178,7 +178,7 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() do { - Field *fields = result->Fetch(); + Field* fields = result->Fetch(); CreatureEventAI_Event temp; temp.event_id = EventAI_Type(fields[0].GetUInt32()); @@ -250,14 +250,14 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() case EVENT_T_SPELLHIT: if (temp.spell_hit.spellId) { - SpellInfo const* pSpell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); - if (!pSpell) + SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); + if (!spell) { sLog->outErrorDb("CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); continue; } - if ((temp.spell_hit.schoolMask & pSpell->SchoolMask) != pSpell->SchoolMask) + if ((temp.spell_hit.schoolMask & spell->SchoolMask) != spell->SchoolMask) sLog->outErrorDb("CreatureEventAI: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", temp.creature_id, temp.spell_hit.schoolMask, i); } @@ -304,8 +304,8 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() break; case EVENT_T_FRIENDLY_MISSING_BUFF: { - SpellInfo const* pSpell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); - if (!pSpell) + SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.spell_hit.spellId); + if (!spell) { sLog->outErrorDb("CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); continue; @@ -381,8 +381,8 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() case EVENT_T_BUFFED: case EVENT_T_TARGET_BUFFED: { - SpellInfo const* pSpell = sSpellMgr->GetSpellInfo(temp.buffed.spellId); - if (!pSpell) + SpellInfo const* spell = sSpellMgr->GetSpellInfo(temp.buffed.spellId); + if (!spell) { sLog->outErrorDb("CreatureEventAI: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.spell_hit.spellId, i); continue; @@ -501,7 +501,7 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts() break; case ACTION_T_CAST: { - const SpellInfo *spell = sSpellMgr->GetSpellInfo(action.cast.spellId); + const SpellInfo* spell = sSpellMgr->GetSpellInfo(action.cast.spellId); if (!spell) sLog->outErrorDb("CreatureEventAI: Event %u Action %u uses non-existent SpellID %u.", i, j+1, action.cast.spellId); /* FIXME: temp.raw.param3 not have event tipes with recovery time in it.... diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 001296e5c45..ebca71df079 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -16,13 +16,13 @@ struct TSpellSummary { uint8 Targets; // set of enum SelectTarget uint8 Effects; // set of enum SelectEffect -} extern *SpellSummary; +} extern* SpellSummary; void SummonList::DoZoneInCombat(uint32 entry) { for (iterator i = begin(); i != end();) { - Creature *summon = Unit::GetCreature(*me, *i); + Creature* summon = Unit::GetCreature(*me, *i); ++i; if (summon && summon->IsAIEnabled && (!entry || summon->GetEntry() == entry)) @@ -34,7 +34,7 @@ void SummonList::DoAction(uint32 entry, int32 info) { for (iterator i = begin(); i != end();) { - Creature *summon = Unit::GetCreature(*me, *i); + Creature* summon = Unit::GetCreature(*me, *i); ++i; if (summon && summon->IsAIEnabled && (!entry || summon->GetEntry() == entry)) @@ -46,7 +46,7 @@ void SummonList::DespawnEntry(uint32 entry) { for (iterator i = begin(); i != end();) { - Creature *summon = Unit::GetCreature(*me, *i); + Creature* summon = Unit::GetCreature(*me, *i); if (!summon) erase(i++); else if (summon->GetEntry() == entry) @@ -64,7 +64,7 @@ void SummonList::DespawnAll() { while (!empty()) { - Creature *summon = Unit::GetCreature(*me, *begin()); + Creature* summon = Unit::GetCreature(*me, *begin()); if (!summon) erase(begin()); else @@ -108,8 +108,8 @@ bool SummonList::HasEntry(uint32 entry) return false; } -ScriptedAI::ScriptedAI(Creature* pCreature) : CreatureAI(pCreature), - me(pCreature), +ScriptedAI::ScriptedAI(Creature* creature) : CreatureAI(creature), + me(creature), IsFleeing(false), _evadeCheckCooldown(2500), _isCombatMovementAllowed(true) @@ -118,13 +118,13 @@ ScriptedAI::ScriptedAI(Creature* pCreature) : CreatureAI(pCreature), _difficulty = Difficulty(me->GetMap()->GetSpawnMode()); } -void ScriptedAI::AttackStartNoMove(Unit* pWho) +void ScriptedAI::AttackStartNoMove(Unit* who) { - if (!pWho) + if (!who) return; - if (me->Attack(pWho, false)) - DoStartNoMovement(pWho); + if (me->Attack(who, false)) + DoStartNoMovement(who); } void ScriptedAI::UpdateAI(uint32 const /*diff*/) @@ -144,15 +144,15 @@ void ScriptedAI::UpdateAI(uint32 const /*diff*/) } } -void ScriptedAI::DoStartMovement(Unit* pVictim, float fDistance, float fAngle) +void ScriptedAI::DoStartMovement(Unit* victim, float distance, float angle) { - if (pVictim) - me->GetMotionMaster()->MoveChase(pVictim, fDistance, fAngle); + if (victim) + me->GetMotionMaster()->MoveChase(victim, distance, angle); } -void ScriptedAI::DoStartNoMovement(Unit* pVictim) +void ScriptedAI::DoStartNoMovement(Unit* victim) { - if (!pVictim) + if (!victim) return; me->GetMotionMaster()->MoveIdle(); @@ -164,27 +164,27 @@ void ScriptedAI::DoStopAttack() me->AttackStop(); } -void ScriptedAI::DoCastSpell(Unit* pTarget, SpellInfo const* pSpellInfo, bool bTriggered) +void ScriptedAI::DoCastSpell(Unit* target, SpellInfo const* spellInfo, bool triggered) { - if (!pTarget || me->IsNonMeleeSpellCasted(false)) + if (!target || me->IsNonMeleeSpellCasted(false)) return; me->StopMoving(); - me->CastSpell(pTarget, pSpellInfo, bTriggered ? TRIGGERED_FULL_MASK : TRIGGERED_NONE); + me->CastSpell(target, spellInfo, triggered ? TRIGGERED_FULL_MASK : TRIGGERED_NONE); } -void ScriptedAI::DoPlaySoundToSet(WorldObject* pSource, uint32 uiSoundId) +void ScriptedAI::DoPlaySoundToSet(WorldObject* source, uint32 soundId) { - if (!pSource) + if (!source) return; - if (!GetSoundEntriesStore()->LookupEntry(uiSoundId)) + if (!GetSoundEntriesStore()->LookupEntry(soundId)) { - sLog->outError("TSCR: Invalid soundId %u used in DoPlaySoundToSet (Source: TypeId %u, GUID %u)", uiSoundId, pSource->GetTypeId(), pSource->GetGUIDLow()); + sLog->outError("TSCR: Invalid soundId %u used in DoPlaySoundToSet (Source: TypeId %u, GUID %u)", soundId, source->GetTypeId(), source->GetGUIDLow()); return; } - pSource->PlayDirectSound(uiSoundId); + source->PlayDirectSound(soundId); } Creature* ScriptedAI::DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime) @@ -302,105 +302,107 @@ void ScriptedAI::DoResetThreat() for (std::list<HostileReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { - Unit* pUnit = Unit::GetUnit((*me), (*itr)->getUnitGuid()); + Unit* unit = Unit::GetUnit((*me), (*itr)->getUnitGuid()); - if (pUnit && DoGetThreat(pUnit)) - DoModifyThreatPercent(pUnit, -100); + if (unit && DoGetThreat(unit)) + DoModifyThreatPercent(unit, -100); } } -float ScriptedAI::DoGetThreat(Unit* pUnit) +float ScriptedAI::DoGetThreat(Unit* unit) { - if (!pUnit) return 0.0f; - return me->getThreatManager().getThreat(pUnit); + if (!unit) + return 0.0f; + return me->getThreatManager().getThreat(unit); } -void ScriptedAI::DoModifyThreatPercent(Unit* pUnit, int32 pct) +void ScriptedAI::DoModifyThreatPercent(Unit* unit, int32 pct) { - if (!pUnit) return; - me->getThreatManager().modifyThreatPercent(pUnit, pct); + if (!unit) + return; + me->getThreatManager().modifyThreatPercent(unit, pct); } -void ScriptedAI::DoTeleportTo(float fX, float fY, float fZ, uint32 uiTime) +void ScriptedAI::DoTeleportTo(float x, float y, float z, uint32 time) { - me->Relocate(fX, fY, fZ); - me->SendMonsterMove(fX, fY, fZ, uiTime); + me->Relocate(x, y, z); + me->SendMonsterMove(x, y, z, time); } -void ScriptedAI::DoTeleportTo(const float fPos[4]) +void ScriptedAI::DoTeleportTo(const float position[4]) { - me->NearTeleportTo(fPos[0], fPos[1], fPos[2], fPos[3]); + me->NearTeleportTo(position[0], position[1], position[2], position[3]); } -void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float fX, float fY, float fZ, float fO) +void ScriptedAI::DoTeleportPlayer(Unit* unit, float x, float y, float z, float o) { - if (!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER) + if (!unit || unit->GetTypeId() != TYPEID_PLAYER) { - if (pUnit) - sLog->outError("TSCR: Creature " UI64FMTD " (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: " UI64FMTD ") to x: %f y:%f z: %f o: %f. Aborted.", me->GetGUID(), me->GetEntry(), pUnit->GetTypeId(), pUnit->GetGUID(), fX, fY, fZ, fO); + if (unit) + sLog->outError("TSCR: Creature " UI64FMTD " (Entry: %u) Tried to teleport non-player unit (Type: %u GUID: " UI64FMTD ") to x: %f y:%f z: %f o: %f. Aborted.", me->GetGUID(), me->GetEntry(), unit->GetTypeId(), unit->GetGUID(), x, y, z, o); return; } - CAST_PLR(pUnit)->TeleportTo(pUnit->GetMapId(), fX, fY, fZ, fO, TELE_TO_NOT_LEAVE_COMBAT); + CAST_PLR(unit)->TeleportTo(unit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); } -void ScriptedAI::DoTeleportAll(float fX, float fY, float fZ, float fO) +void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) { - Map *map = me->GetMap(); + Map* map = me->GetMap(); if (!map->IsDungeon()) return; - Map::PlayerList const &PlayerList = map->GetPlayers(); - for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) - if (Player* i_pl = i->getSource()) - if (i_pl->isAlive()) - i_pl->TeleportTo(me->GetMapId(), fX, fY, fZ, fO, TELE_TO_NOT_LEAVE_COMBAT); + Map::PlayerList const& PlayerList = map->GetPlayers(); + for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr) + if (Player* player = itr->getSource()) + if (player->isAlive()) + player->TeleportTo(me->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); } -Unit* ScriptedAI::DoSelectLowestHpFriendly(float fRange, uint32 uiMinHPDiff) +Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 minHPDiff) { - Unit* pUnit = NULL; - Trinity::MostHPMissingInRange u_check(me, fRange, uiMinHPDiff); - Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, pUnit, u_check); - me->VisitNearbyObject(fRange, searcher); + Unit* unit = NULL; + Trinity::MostHPMissingInRange u_check(me, range, minHPDiff); + Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, unit, u_check); + me->VisitNearbyObject(range, searcher); - return pUnit; + return unit; } -std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float fRange) +std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float range) { - std::list<Creature*> pList; - Trinity::FriendlyCCedInRange u_check(me, fRange); - Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, pList, u_check); - me->VisitNearbyObject(fRange, searcher); - return pList; + std::list<Creature*> list; + Trinity::FriendlyCCedInRange u_check(me, range); + Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, list, u_check); + me->VisitNearbyObject(range, searcher); + return list; } -std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float fRange, uint32 uiSpellid) +std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float range, uint32 uiSpellid) { - std::list<Creature*> pList; - Trinity::FriendlyMissingBuffInRange u_check(me, fRange, uiSpellid); - Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, pList, u_check); - me->VisitNearbyObject(fRange, searcher); - return pList; + std::list<Creature*> list; + Trinity::FriendlyMissingBuffInRange u_check(me, range, uiSpellid); + Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, list, u_check); + me->VisitNearbyObject(range, searcher); + return list; } -Player* ScriptedAI::GetPlayerAtMinimumRange(float fMinimumRange) +Player* ScriptedAI::GetPlayerAtMinimumRange(float minimumRange) { - Player* pPlayer = NULL; + Player* player = NULL; CellPair pair(Trinity::ComputeCellPair(me->GetPositionX(), me->GetPositionY())); Cell cell(pair); cell.data.Part.reserved = ALL_DISTRICT; cell.SetNoCreate(); - Trinity::PlayerAtMinimumRangeAway check(me, fMinimumRange); - Trinity::PlayerSearcher<Trinity::PlayerAtMinimumRangeAway> searcher(me, pPlayer, check); + Trinity::PlayerAtMinimumRangeAway check(me, minimumRange); + Trinity::PlayerSearcher<Trinity::PlayerAtMinimumRangeAway> searcher(me, player, check); TypeContainerVisitor<Trinity::PlayerSearcher<Trinity::PlayerAtMinimumRangeAway>, GridTypeMapContainer> visitor(searcher); cell.Visit(pair, visitor, *(me->GetMap())); - return pPlayer; + return player; } void ScriptedAI::SetEquipmentSlots(bool loadDefault, int32 mainHand /*= EQUIP_NO_CHANGE*/, int32 offHand /*= EQUIP_NO_CHANGE*/, int32 ranged /*= EQUIP_NO_CHANGE*/) @@ -451,14 +453,14 @@ bool ScriptedAI::EnterEvadeIfOutOfCombatArea(uint32 const diff) if (me->IsInEvadeMode() || !me->getVictim()) return false; - float fX = me->GetPositionX(); - float fY = me->GetPositionY(); - float fZ = me->GetPositionZ(); + float x = me->GetPositionX(); + float y = me->GetPositionY(); + float z = me->GetPositionZ(); switch(me->GetEntry()) { case NPC_BROODLORD: // broodlord (not move down stairs) - if (fZ > 448.60f) + if (z > 448.60f) return false; break; case NPC_VOID_REAVER: // void reaver (calculate from center of room) @@ -466,11 +468,11 @@ bool ScriptedAI::EnterEvadeIfOutOfCombatArea(uint32 const diff) return false; break; case NPC_JAN_ALAI: // jan'alai (calculate by Z) - if (fZ > 12.0f) + if (z > 12.0f) return false; break; case NPC_SARTHARION: // sartharion (calculate box) - if (fX > 3218.86f && fX < 3275.69f && fY < 572.40f && fY > 484.68f) + if (x > 3218.86f && x < 3275.69f && y < 572.40f && y > 484.68f) return false; break; default: diff --git a/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.cpp index a3bbd65aff0..c4142ba2b1b 100755 --- a/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.cpp @@ -26,7 +26,7 @@ EndScriptData */ #include "ScriptPCH.h" #include "ScriptedSimpleAI.h" -SimpleAI::SimpleAI(Creature *c) : ScriptedAI(c) +SimpleAI::SimpleAI(Creature* c) : ScriptedAI(c) { //Clear all data Aggro_TextId[0] = 0; @@ -63,7 +63,7 @@ void SimpleAI::Reset() { } -void SimpleAI::EnterCombat(Unit *who) +void SimpleAI::EnterCombat(Unit* who) { //Reset cast timers if (Spell[0].First_Cast >= 0) @@ -123,36 +123,36 @@ void SimpleAI::KilledUnit(Unit* victim) if (!Kill_Spell) return; - Unit *pTarget = NULL; + Unit* target = NULL; switch (Kill_Target_Type) { case CAST_SELF: - pTarget = me; + target = me; break; case CAST_HOSTILE_TARGET: - pTarget = me->getVictim(); + target = me->getVictim(); break; case CAST_HOSTILE_SECOND_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); + target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); break; case CAST_HOSTILE_LAST_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); + target = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); break; case CAST_HOSTILE_RANDOM: - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0); + target = SelectTarget(SELECT_TARGET_RANDOM, 0); break; case CAST_KILLEDUNIT_VICTIM: - pTarget = victim; + target = victim; break; } //Target is ok, cast a spell on it - if (pTarget) - DoCast(pTarget, Kill_Spell); + if (target) + DoCast(target, Kill_Spell); } -void SimpleAI::DamageTaken(Unit* killer, uint32 &damage) +void SimpleAI::DamageTaken(Unit* killer, uint32& damage) { //Return if damage taken won't kill us if (me->GetHealth() > damage) @@ -171,33 +171,33 @@ void SimpleAI::DamageTaken(Unit* killer, uint32 &damage) if (!Death_Spell) return; - Unit *pTarget = NULL; + Unit* target = NULL; switch (Death_Target_Type) { case CAST_SELF: - pTarget = me; + target = me; break; case CAST_HOSTILE_TARGET: - pTarget = me->getVictim(); + target = me->getVictim(); break; case CAST_HOSTILE_SECOND_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); + target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); break; case CAST_HOSTILE_LAST_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); + target = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); break; case CAST_HOSTILE_RANDOM: - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0); + target = SelectTarget(SELECT_TARGET_RANDOM, 0); break; case CAST_JUSTDIED_KILLER: - pTarget = killer; + target = killer; break; } //Target is ok, cast a spell on it - if (pTarget) - DoCast(pTarget, Death_Spell); + if (target) + DoCast(target, Death_Spell); } void SimpleAI::UpdateAI(const uint32 diff) @@ -222,34 +222,34 @@ void SimpleAI::UpdateAI(const uint32 diff) //Check Current spell if (!(Spell[i].InterruptPreviousCast && me->IsNonMeleeSpellCasted(false))) { - Unit *pTarget = NULL; + Unit* target = NULL; switch (Spell[i].Cast_Target_Type) { case CAST_SELF: - pTarget = me; + target = me; break; case CAST_HOSTILE_TARGET: - pTarget = me->getVictim(); + target = me->getVictim(); break; case CAST_HOSTILE_SECOND_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); + target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); break; case CAST_HOSTILE_LAST_AGGRO: - pTarget = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); + target = SelectTarget(SELECT_TARGET_BOTTOMAGGRO, 0); break; case CAST_HOSTILE_RANDOM: - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0); + target = SelectTarget(SELECT_TARGET_RANDOM, 0); break; } //Target is ok, cast a spell on it and then do our random yell - if (pTarget) + if (target) { if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(false); - DoCast(pTarget, Spell[i].Spell_Id); + DoCast(target, Spell[i].Spell_Id); //Yell and sound use the same number so that you can make //the Creature yell with the correct sound effect attached @@ -257,7 +257,7 @@ void SimpleAI::UpdateAI(const uint32 diff) //Random yell if (Spell[i].TextId[random_text]) - DoScriptText(Spell[i].TextId[random_text], me, pTarget); + DoScriptText(Spell[i].TextId[random_text], me, target); //Random sound if (Spell[i].Text_Sound[random_text]) diff --git a/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.h b/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.h index 246f1b9df3e..a38bdf85e14 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.h +++ b/src/server/game/AI/ScriptedAI/ScriptedSimpleAI.h @@ -23,7 +23,7 @@ enum CastTarget struct SimpleAI : public ScriptedAI { - SimpleAI(Creature *c);// : ScriptedAI(c); + SimpleAI(Creature* c);// : ScriptedAI(c); void Reset(); @@ -31,7 +31,7 @@ struct SimpleAI : public ScriptedAI void KilledUnit(Unit* /*victim*/); - void DamageTaken(Unit* killer, uint32 &damage); + void DamageTaken(Unit* killer, uint32& damage); void UpdateAI(const uint32 diff); diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index db8d2ffc2cb..7817465c55e 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -787,7 +787,7 @@ void SmartAI::SetFollow(Unit* target, float dist, float angle, uint32 credit, ui mFollowCreditType = creditType; } -void SmartAI::SetScript9(SmartScriptHolder &e, uint32 entry, Unit* invoker) +void SmartAI::SetScript9(SmartScriptHolder& e, uint32 entry, Unit* invoker) { if (invoker) GetScript()->mLastInvoker = invoker->GetGUID(); @@ -888,7 +888,7 @@ void SmartGameObjectAI::SetData(uint32 id, uint32 value) GetScript()->ProcessEventsFor(SMART_EVENT_DATA_SET, NULL, id, value); } -void SmartGameObjectAI::SetScript9(SmartScriptHolder &e, uint32 entry, Unit* invoker) +void SmartGameObjectAI::SetScript9(SmartScriptHolder& e, uint32 entry, Unit* invoker) { if (invoker) GetScript()->mLastInvoker = invoker->GetGUID(); diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index e26d125b442..834a34bf17b 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -48,7 +48,7 @@ class SmartAI : public CreatureAI { public: ~SmartAI(){}; - explicit SmartAI(Creature *c); + explicit SmartAI(Creature* c); // Start moving to the desired MovePoint void StartPath(bool run = false, uint32 path = 0, bool repeat = false, Unit* invoker = NULL); @@ -65,7 +65,7 @@ class SmartAI : public CreatureAI void SetCombatMove(bool on); void SetFollow(Unit* target, float dist = 0.0f, float angle = 0.0f, uint32 credit = 0, uint32 end = 0, uint32 creditType = 0); - void SetScript9(SmartScriptHolder &e, uint32 entry, Unit* invoker); + void SetScript9(SmartScriptHolder& e, uint32 entry, Unit* invoker); SmartScript* GetScript() { return &mScript; } bool IsEscortInvokerInRange(); @@ -79,7 +79,7 @@ class SmartAI : public CreatureAI void JustReachedHome(); // Called for reaction at enter to combat if not in combat yet (enemy can be NULL) - void EnterCombat(Unit *enemy); + void EnterCombat(Unit* enemy); // Called for reaction at stopping attack at no attackers or targets void EnterEvadeMode(); @@ -97,7 +97,7 @@ class SmartAI : public CreatureAI void AttackStart(Unit* who); // Called if IsVisible(Unit *who) is true at each *who move, reaction at visibility zone enter - void MoveInLineOfSight(Unit *who); + void MoveInLineOfSight(Unit* who); // Called when hit by a spell void SpellHit(Unit* pUnit, const SpellInfo* pSpell); @@ -124,13 +124,13 @@ class SmartAI : public CreatureAI void IsSummonedBy(Unit* summoner); // Called at any Damage to any victim (before damage apply) - void DamageDealt(Unit* done_to, uint32 & damage, DamageEffectType /*damagetype*/); + void DamageDealt(Unit* done_to, uint32& damage, DamageEffectType /*damagetype*/); // Called when a summoned creature dissapears (UnSommoned) void SummonedCreatureDespawn(Creature* unit); // called when the corpse of this creature gets removed - void CorpseRemoved(uint32 & respawnDelay); + void CorpseRemoved(uint32& respawnDelay); // Called at World update tick if creature is charmed void UpdateAIWhileCharmed(const uint32 diff); @@ -163,7 +163,7 @@ class SmartAI : public CreatureAI uint64 GetGUID(int32 id = 0); //core related - static int Permissible(const Creature *); + static int Permissible(const Creature*); // Called at movepoint reached void MovepointReached(uint32 id); @@ -231,7 +231,7 @@ class SmartAI : public CreatureAI class SmartGameObjectAI : public GameObjectAI { public: - SmartGameObjectAI(GameObject *g) : GameObjectAI(g), go(g) {} + SmartGameObjectAI(GameObject* g) : GameObjectAI(g), go(g) {} ~SmartGameObjectAI() {} void UpdateAI(const uint32 diff); @@ -248,7 +248,7 @@ public: uint32 GetDialogStatus(Player* /*player*/); void Destroyed(Player* player, uint32 eventId); void SetData(uint32 id, uint32 value); - void SetScript9(SmartScriptHolder &e, uint32 entry, Unit* invoker); + void SetScript9(SmartScriptHolder& e, uint32 entry, Unit* invoker); protected: GameObject* const go; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 99c804d3d2c..cc244f77dc2 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -282,7 +282,7 @@ bool SmartAIMgr::IsTargetValid(SmartScriptHolder const& e) return true; } -bool SmartAIMgr::IsEventValid(SmartScriptHolder &e) +bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) { if (e.event.type >= SMART_EVENT_END) { diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 4ab9a738707..2292a343c21 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1236,7 +1236,7 @@ class SmartAIMgr //event stores SmartAIEventMap mEventMap[SMART_SCRIPT_TYPE_MAX]; - bool IsEventValid(SmartScriptHolder &e); + bool IsEventValid(SmartScriptHolder& e); bool IsTargetValid(SmartScriptHolder const& e); /*inline bool IsTargetValid(SmartScriptHolder e, int32 target) diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index aaceb1d7645..001f22815b5 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2541,8 +2541,8 @@ void InstanceMap::SetResetSchedule(bool on) if (InstanceSave *save = sInstanceSaveMgr->GetInstanceSave(GetInstanceId())) sInstanceSaveMgr->ScheduleReset(on, save->GetResetTime(), InstanceSaveManager::InstResetEvent(0, GetId(), Difficulty(GetSpawnMode()), GetInstanceId())); else - sLog->outError("InstanceMap::SetResetSchedule: cannot turn schedule %s, there is no save information for instance (map [id: %u, name: %s], instance id: %u)", - on ? "on" : "off", GetId(), GetMapName(), GetInstanceId()); + sLog->outError("InstanceMap::SetResetSchedule: cannot turn schedule %s, there is no save information for instance (map [id: %u, name: %s], instance id: %u, difficulty: %u)", + on ? "on" : "off", GetId(), GetMapName(), GetInstanceId(), Difficulty(GetSpawnMode())); } } diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index bcf3ebf5a7c..0ffae2ac9dc 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -497,7 +497,7 @@ enum SpellAttr6 SPELL_ATTR6_UNK15 = 0x00008000, // 15 not set in 3.0.3 SPELL_ATTR6_UNK16 = 0x00010000, // 16 SPELL_ATTR6_UNK17 = 0x00020000, // 17 - SPELL_ATTR6_ONLY_CAST_WHILE_POSSESSED = 0x00040000, // 18 (NYI) client won't allow to cast these spells when unit does not have possessor + SPELL_ATTR6_CAST_BY_CHARMER = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster SPELL_ATTR6_UNK19 = 0x00080000, // 19 SPELL_ATTR6_UNK20 = 0x00100000, // 20 SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // 21 it's only client-side attribute @@ -1474,13 +1474,13 @@ enum GameobjectTypes enum GameObjectFlags { - GO_FLAG_IN_USE = 0x00000001, //disables interaction while animated - GO_FLAG_LOCKED = 0x00000002, //require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip - GO_FLAG_INTERACT_COND = 0x00000004, //cannot interact (condition to interact) - GO_FLAG_TRANSPORT = 0x00000008, //any kind of transport? Object can transport (elevator, boat, car) - GO_FLAG_UNK1 = 0x00000010, // - GO_FLAG_NODESPAWN = 0x00000020, //never despawn, typically for doors, they just change state - GO_FLAG_TRIGGERED = 0x00000040, //typically, summoned objects. Triggered by spell or other events + GO_FLAG_IN_USE = 0x00000001, // disables interaction while animated + GO_FLAG_LOCKED = 0x00000002, // require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip + GO_FLAG_INTERACT_COND = 0x00000004, // cannot interact (condition to interact) + GO_FLAG_TRANSPORT = 0x00000008, // any kind of transport? Object can transport (elevator, boat, car) + GO_FLAG_NOT_SELECTABLE = 0x00000010, // not selectable even in GM mode + GO_FLAG_NODESPAWN = 0x00000020, // never despawn, typically for doors, they just change state + GO_FLAG_TRIGGERED = 0x00000040, // typically, summoned objects. Triggered by spell or other events GO_FLAG_DAMAGED = 0x00000200, GO_FLAG_DESTROYED = 0x00000400, }; @@ -2763,7 +2763,7 @@ enum PetDiet #define MAX_PET_DIET 9 -#define CHAIN_SPELL_JUMP_RADIUS 10 +#define CHAIN_SPELL_JUMP_RADIUS 8 #define GUILD_BANKLOG_MAX_RECORDS 25 #define GUILD_EVENTLOG_MAX_RECORDS 100 diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index d6a3ef5ff50..158a4d8c2eb 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5609,20 +5609,17 @@ void AuraEffect::HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const { case 54798: // FLAMING Arrow Triggered Effect { - if (!caster || !target || !target->ToCreature() || !caster->IsVehicle() || target->HasAura(54683)) + if (!caster || !target || !target->ToCreature() || !caster->GetVehicle() || target->HasAura(54683)) break; - if (Unit* rider = caster->GetVehicleKit()->GetPassenger(0)) - { - target->CastSpell(target, 54683, true); - - // Credit Frostworgs - if (target->GetEntry() == 29358) - rider->CastSpell(rider, 54896, true); - // Credit Frost Giants - else if (target->GetEntry() == 29351) - rider->CastSpell(rider, 54893, true); - } + target->CastSpell(target, 54683, true); + + // Credit Frostworgs + if (target->GetEntry() == 29358) + caster->CastSpell(caster, 54896, true); + // Credit Frost Giants + else if (target->GetEntry() == 29351) + caster->CastSpell(caster, 54893, true); break; } case 62292: // Blaze (Pool of Tar) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 4b3f0ed73df..e86b3851b11 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -496,6 +496,9 @@ m_caster(caster), m_spellValue(new SpellValue(m_spellInfo)) if (Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK)) m_spellSchoolMask = SpellSchoolMask(1 << pItem->GetTemplate()->Damage[0].DamageType); + if (info->AttributesEx6 & SPELL_ATTR6_CAST_BY_CHARMER) + const_cast<Unit*>(m_caster) = caster->GetCharmerOrOwner(); + if (originalCasterGUID) m_originalCasterGUID = originalCasterGUID; else @@ -506,7 +509,8 @@ m_caster(caster), m_spellValue(new SpellValue(m_spellInfo)) else { m_originalCaster = ObjectAccessor::GetUnit(*m_caster, m_originalCasterGUID); - if (m_originalCaster && !m_originalCaster->IsInWorld()) m_originalCaster = NULL; + if (m_originalCaster && !m_originalCaster->IsInWorld()) + m_originalCaster = NULL; } m_spellState = SPELL_STATE_NULL; @@ -4743,6 +4747,10 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_DONT_REPORT; } + //! Client checks this already + if (m_spellInfo->AttributesEx6 & SPELL_ATTR6_CAST_BY_CHARMER && !m_caster->GetCharmerOrOwnerGUID()) + return SPELL_FAILED_DONT_REPORT; + Unit* target = m_targets.GetUnitTarget(); // In pure self-cast spells, the client won't send any unit target if (!target && (m_targets.GetTargetMask() == TARGET_FLAG_SELF || m_targets.GetTargetMask() & TARGET_FLAG_UNIT_ALLY)) // TARGET_FLAG_SELF == 0, remember! diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 36244257d28..5b8e23697df 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5062,27 +5062,18 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) m_caster->ToPlayer()->learnSpell(discoveredSpell, false); return; } - case 62428: // Load into Catapult - { - if (Vehicle* seat = m_caster->GetVehicleKit()) - if (Unit* passenger = seat->GetPassenger(0)) - if (Unit* demolisher = m_caster->GetVehicleBase()) - passenger->CastSpell(demolisher, damage, true); - return; - } case 62482: // Grab Crate { if (unitTarget) { - if (Vehicle* seat = m_caster->GetVehicleKit()) + if (Unit* seat = m_caster->GetVehicleBase()) { - if (Unit* passenger = seat->GetPassenger(1)) - if (Creature* oldContainer = passenger->ToCreature()) - oldContainer->DisappearAndDie(); - - // TODO: a hack, range = 11, should after some time cast, otherwise too far - m_caster->CastSpell(seat->GetBase(), 62496, true); - unitTarget->EnterVehicle(m_caster, 1); + if (Unit* parent = seat->GetVehicleBase()) + { + // TODO: a hack, range = 11, should after some time cast, otherwise too far + m_caster->CastSpell(parent, 62496, true); + unitTarget->CastSpell(parent, m_spellInfo->Effects[EFFECT_0].CalcValue()); + } } } return; diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index ffea5fc8dc5..f18fc5ee243 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -357,7 +357,7 @@ public: if (GameObject* pGo = me->SummonGameObject(183410, -533.140f, -105.322f, -156.016f, 0, 0, 0, 0, 0, 1000)) { GoSummonList.push_back(pGo->GetGUID()); - pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); //We can't use it! + pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! } Summon(3); break; @@ -372,7 +372,7 @@ public: if (GameObject* pGo = me->SummonGameObject(183410, -542.199f, -96.854f, -155.790f, 0, 0, 0, 0, 0, 1000)) { GoSummonList.push_back(pGo->GetGUID()); - pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } break; case 5: @@ -392,7 +392,7 @@ public: if (GameObject* pGo = me->SummonGameObject(183410, -507.820f, -103.333f, -151.353f, 0, 0, 0, 0, 0, 1000)) { GoSummonList.push_back(pGo->GetGUID()); - pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); //We can't use it! + pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! Summon(6); } break; @@ -400,7 +400,7 @@ public: if (GameObject* pGo = me->SummonGameObject(183410, -511.829f, -86.249f, -151.431f, 0, 0, 0, 0, 0, 1000)) { GoSummonList.push_back(pGo->GetGUID()); - pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); //We can't use it! + pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! } break; case 9: diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index afd39b9b8d0..303a307d2b9 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -58,7 +58,7 @@ public: if (pInstance) { pGo->SetGoState(GO_STATE_ACTIVE); - pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pInstance->SetData(DATA_FIRE, pInstance->GetData(DATA_FIRE) + 1); return true; } diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp index 0b0e9076fc1..07c7fcf6f27 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp @@ -126,12 +126,12 @@ public: case GO_SHRINE_OF_GELIHAST: m_uiShrineOfGelihastGUID = go->GetGUID(); if (m_auiEncounter[0] != DONE) - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case GO_ALTAR_OF_THE_DEEPS: m_uiAltarOfTheDeepsGUID = go->GetGUID(); if (m_auiEncounter[3] != DONE) - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case GO_AKU_MAI_DOOR: if (m_auiEncounter[2] == DONE) @@ -149,14 +149,14 @@ public: m_auiEncounter[0] = uiData; if (uiData == DONE) if (GameObject* go = instance->GetGameObject(m_uiShrineOfGelihastGUID)) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case TYPE_AKU_MAI: m_auiEncounter[3] = uiData; if (uiData == DONE) if (GameObject* go = instance->GetGameObject(m_uiAltarOfTheDeepsGUID)) { - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); go->SummonCreature(NPC_MORRIDUNE, SpawnsLocation[4], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000); } break; diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp index 60cd1b5f82a..19287d656a8 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp @@ -105,7 +105,7 @@ public: case GO_GONG: uiGongGUID = go->GetGUID(); if (m_auiEncounter[0] == DONE) - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; default: break; @@ -123,7 +123,7 @@ public: case 9: case 14: if (GameObject* go = instance->GetGameObject(uiGongGUID)) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case 1: case 10: @@ -134,7 +134,7 @@ public: if (!go) return; - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); uint32 uiCreature = 0; uint8 uiSummonTimes = 0; diff --git a/src/server/scripts/Kalimdor/ashenvale.cpp b/src/server/scripts/Kalimdor/ashenvale.cpp index da38e26fd22..527d6b3d3e4 100644 --- a/src/server/scripts/Kalimdor/ashenvale.cpp +++ b/src/server/scripts/Kalimdor/ashenvale.cpp @@ -331,7 +331,7 @@ class npc_muglash : public CreatureScript if (GameObject* pGo = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2)) { - pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); SetEscortPaused(true); } break; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp index ba34591b84c..a4ded3f65b0 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp @@ -394,7 +394,7 @@ public: if (pPrinceTaldaram && pPrinceTaldaram->isAlive()) { // maybe these are hacks :( - pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGO->SetGoState(GO_STATE_ACTIVE); switch(pGO->GetEntry()) diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/instance_ahnkahet.cpp index f9922009b1f..7472efcdc42 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/instance_ahnkahet.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/instance_ahnkahet.cpp @@ -115,17 +115,17 @@ public: if (spheres[0] == IN_PROGRESS) { go->SetGoState(GO_STATE_ACTIVE); - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } - else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case 193094: Prince_TaldaramSpheres[1] = go->GetGUID(); if (spheres[1] == IN_PROGRESS) { go->SetGoState(GO_STATE_ACTIVE); - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } - else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; case 192236: Prince_TaldaramGate = go->GetGUID(); // Web gate past Prince Taldaram if (m_auiEncounter[1] == DONE)HandleGameObject(0, true, go);break; diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp index 8eca03a2075..f9ba820d54d 100644 --- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp +++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp @@ -159,11 +159,11 @@ public: case 192518: uiSladRanAltar = go->GetGUID(); // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (m_auiEncounter[0] == DONE) { if (uiSladRanStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); else { ++phase; @@ -174,11 +174,11 @@ public: case 192519: uiMoorabiAltar = go->GetGUID(); // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (m_auiEncounter[0] == DONE) { if (uiMoorabiStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); else { ++phase; @@ -189,11 +189,11 @@ public: case 192520: uiDrakkariColossusAltar = go->GetGUID(); // Make sure that they start out as unusuable - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (m_auiEncounter[0] == DONE) { if (uiDrakkariColossusStatueState == GO_STATE_ACTIVE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); else { ++phase; @@ -261,7 +261,7 @@ public: { GameObject* go = instance->GetGameObject(uiSladRanAltar); if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } break; case DATA_MOORABI_EVENT: @@ -270,7 +270,7 @@ public: { GameObject* go = instance->GetGameObject(uiMoorabiAltar); if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (bHeroicMode) HandleGameObject(uiEckTheFerociousDoor, true); } @@ -281,7 +281,7 @@ public: { GameObject* go = instance->GetGameObject(uiDrakkariColossusAltar); if (go) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } break; case DATA_GAL_DARAH_EVENT: @@ -524,7 +524,7 @@ public: InstanceScript *pInstance = pGO->GetInstanceScript(); uint64 uiStatue = 0; - pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGO->SetGoState(GO_STATE_ACTIVE); if (pInstance) @@ -545,7 +545,7 @@ public: if (!pInstance->GetData64(DATA_STATUE_ACTIVATE)) { pInstance->SetData64(DATA_STATUE_ACTIVATE, uiStatue); - pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGO->SetGoState(GO_STATE_ACTIVE); } return true; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp index 6d3f32a0cae..cd742b11d58 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp @@ -216,7 +216,7 @@ public: if (pKeristrasza && pKeristrasza->isAlive()) { // maybe these are hacks :( - pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGO->SetGoState(GO_STATE_ACTIVE); CAST_AI(boss_keristrasza::boss_keristraszaAI, pKeristrasza->AI())->CheckContainmentSpheres(true); diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp index 5ab6a96dff3..a4676dee852 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp @@ -129,21 +129,21 @@ public: { AnomalusContainmentSphere = go->GetGUID(); if (m_auiEncounter[1] == DONE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; } case 188528: { OrmoroksContainmentSphere = go->GetGUID(); if (m_auiEncounter[2] == DONE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; } case 188526: { TelestrasContainmentSphere = go->GetGUID(); if (m_auiEncounter[0] == DONE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); break; } } @@ -171,7 +171,7 @@ public: { GameObject* Sphere = instance->GetGameObject(TelestrasContainmentSphere); if (Sphere) - Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } m_auiEncounter[0] = data; break; @@ -181,7 +181,7 @@ public: if (data == DONE) { if (GameObject* Sphere = instance->GetGameObject(AnomalusContainmentSphere)) - Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } m_auiEncounter[1] = data; break; @@ -191,7 +191,7 @@ public: if (data == DONE) { if (GameObject* Sphere = instance->GetGameObject(OrmoroksContainmentSphere)) - Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + Sphere->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } m_auiEncounter[2] = data; break; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp index 779abd6ddf8..776b69d599b 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_flame_leviathan.cpp @@ -49,6 +49,7 @@ enum Spells SPELL_SMOKE_TRAIL = 63575, SPELL_ELECTROSHOCK = 62522, SPELL_NAPALM = 63666, + SPELL_INVIS_AND_STEALTH_DETECT = 18950, // Passive //TOWER Additional SPELLS SPELL_THORIM_S_HAMMER = 62911, // Tower of Storms SPELL_MIMIRON_S_INFERNO = 62909, // Tower of Flames @@ -243,6 +244,8 @@ class boss_flame_leviathan : public CreatureScript Shutout = true; Unbroken = true; + DoCast(SPELL_INVIS_AND_STEALTH_DETECT); + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_STUNNED); me->SetReactState(REACT_PASSIVE); } @@ -327,6 +330,9 @@ class boss_flame_leviathan : public CreatureScript void JustDied(Unit* /*victim*/) { _JustDied(); + // Set Field Flags 67108928 = 64 | 67108864 = UNIT_FLAG_UNK_6 | UNIT_FLAG_SKINNABLE + // Set DynFlags 12 + // Set NPCFlags 0 DoScriptText(SAY_DEATH, me); } @@ -1466,6 +1472,51 @@ class achievement_orbit_uary : public AchievementCriteriaScript } }; +class spell_load_into_catapult : public SpellScriptLoader +{ + enum Spells + { + SPELL_PASSENGER_LOADED = 62340, + }; + + public: + spell_load_into_catapult() : SpellScriptLoader("spell_load_into_catapult") { } + + class spell_load_into_catapult_AuraScript : public AuraScript + { + PrepareAuraScript(spell_load_into_catapult_AuraScript); + + void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* owner = GetOwner()->ToUnit(); + if (!owner) + return; + + owner->CastSpell(owner, SPELL_PASSENGER_LOADED, true); + } + + void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* owner = GetOwner()->ToUnit(); + if (!owner) + return; + + owner->RemoveAurasDueToSpell(SPELL_PASSENGER_LOADED); + } + + void Register() + { + OnEffectApply += AuraEffectApplyFn(spell_load_into_catapult_AuraScript::OnApply, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectRemoveFn(spell_load_into_catapult_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_load_into_catapult_AuraScript(); + } +}; + void AddSC_boss_flame_leviathan() { new boss_flame_leviathan(); @@ -1495,4 +1546,6 @@ void AddSC_boss_flame_leviathan() new achievement_orbital_devastation(); new achievement_nuked_from_orbit(); new achievement_orbit_uary(); + + new spell_load_into_catapult(); } diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp index 5ba0d1da53c..b3f77e893c3 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp @@ -301,7 +301,7 @@ class go_razorscale_harpoon : public GameObjectScript { InstanceScript* instance = go->GetInstanceScript(); if (ObjectAccessor::GetCreature(*go, instance ? instance->GetData64(BOSS_RAZORSCALE) : 0)) - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); return false; } }; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp index cb250adc01a..e7dffae5c9d 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp @@ -446,7 +446,7 @@ class instance_ulduar : public InstanceMapScript { if (GameObject* HodirRareCache = instance->GetGameObject(HodirRareCacheGUID)) if (GetData(DATA_HODIR_RARE_CACHE)) - HodirRareCache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + HodirRareCache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); if (GameObject* HodirChest = instance->GetGameObject(HodirChestGUID)) HodirChest->SetRespawnTime(HodirChest->GetRespawnDelay()); HandleGameObject(HodirDoorGUID, true); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index 137492c16ca..9727ce3cbec 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -147,7 +147,7 @@ public: if (pGo) { pGo->SetGoState(GO_STATE_READY); - pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } } } @@ -841,7 +841,7 @@ public: Creature* pPalehoof = Unit::GetCreature(*pGO, pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0); if (pPalehoof && pPalehoof->isAlive()) { - pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); pGO->SetGoState(GO_STATE_ACTIVE); CAST_AI(boss_palehoof::boss_palehoofAI, pPalehoof->AI())->NextPhase(); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp index e2c5dc5d341..2eff50c1f8e 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_pinnacle.cpp @@ -136,7 +136,7 @@ public: if (m_auiEncounter[1] == DONE) { HandleGameObject(0, true, go); - go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } break; } diff --git a/src/server/scripts/Northrend/storm_peaks.cpp b/src/server/scripts/Northrend/storm_peaks.cpp index 690b8015ca6..0fedf101a9c 100644 --- a/src/server/scripts/Northrend/storm_peaks.cpp +++ b/src/server/scripts/Northrend/storm_peaks.cpp @@ -727,31 +727,40 @@ class npc_hyldsmeet_protodrake : public CreatureScript class npc_hyldsmeet_protodrakeAI : public CreatureAI { - npc_hyldsmeet_protodrakeAI(Creature* c) : CreatureAI(c), _accessoryRespawnTimer(0), _vehicleKit(NULL) {} + public: + npc_hyldsmeet_protodrakeAI(Creature* c) : CreatureAI(c), _accessoryRespawnTimer(0), _vehicleKit(c->GetVehicleKit()) {} - void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply) - { - if (apply) - return; + void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply) + { + if (apply) + return; - if (who->GetEntry() == NPC_HYLDSMEET_DRAKERIDER) - _accessoryRespawnTimer = who->ToCreature()->GetRespawnDelay(); - } + if (who->GetEntry() == NPC_HYLDSMEET_DRAKERIDER) + _accessoryRespawnTimer = 5 * MINUTE * IN_MILLISECONDS; + } - void UpdateAI(uint32 const diff) - { - //! We need to manually reinstall accessories because the vehicle itself is friendly to players, - //! so EnterEvadeMode is never triggered. The accessory on the other hand is hostile and killable. - if (_accessoryRespawnTimer && _accessoryRespawnTimer <= diff && _vehicleKit) - _vehicleKit->InstallAllAccessories(false); - else - _accessoryRespawnTimer -= diff; - } + void UpdateAI(uint32 const diff) + { + //! We need to manually reinstall accessories because the vehicle itself is friendly to players, + //! so EnterEvadeMode is never triggered. The accessory on the other hand is hostile and killable. + if (_accessoryRespawnTimer && _accessoryRespawnTimer <= diff && _vehicleKit) + { + _vehicleKit->InstallAllAccessories(true); + _accessoryRespawnTimer = 0; + } + else + _accessoryRespawnTimer -= diff; + } - uint32 _accessoryRespawnTimer; - Vehicle* _vehicleKit; + private: + uint32 _accessoryRespawnTimer; + Vehicle* _vehicleKit; }; + CreatureAI* GetAI(Creature* creature) const + { + return new npc_hyldsmeet_protodrakeAI (creature); + } }; void AddSC_storm_peaks() diff --git a/src/server/shared/Database/QueryResult.h b/src/server/shared/Database/QueryResult.h index 53290a5735b..399779fb66f 100755 --- a/src/server/shared/Database/QueryResult.h +++ b/src/server/shared/Database/QueryResult.h @@ -58,7 +58,7 @@ class ResultSet MYSQL_FIELD *m_fields; }; -typedef ACE_Refcounted_Auto_Ptr<ResultSet, ACE_Thread_Mutex> QueryResult; +typedef ACE_Refcounted_Auto_Ptr<ResultSet, ACE_Null_Mutex> QueryResult; class PreparedResultSet { @@ -103,7 +103,7 @@ class PreparedResultSet }; -typedef ACE_Refcounted_Auto_Ptr<PreparedResultSet, ACE_Thread_Mutex> PreparedQueryResult; +typedef ACE_Refcounted_Auto_Ptr<PreparedResultSet, ACE_Null_Mutex> PreparedQueryResult; #endif |