diff options
Diffstat (limited to 'src')
293 files changed, 2040 insertions, 1589 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index b0ff9d48584..a1736689522 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -70,7 +70,7 @@ void SummonList::DespawnAll() { erase(begin()); summon->SetVisibility(VISIBILITY_OFF); - if(summon->HasSummonMask(SUMMON_MASK_SUMMON) && !summon->isPet()) + if(summon->isSummon() && !summon->isPet()) ((TempSummon*)summon)->UnSummon(); else summon->setDeathState(JUST_DIED); @@ -491,7 +491,7 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float return; } - ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); + CAST_PLR(pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); } void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) @@ -712,7 +712,7 @@ void LoadOverridenDBCData() SpellEntry *spellInfo; for(uint32 i = 0; i < GetSpellStore()->GetNumRows(); ++i) { - spellInfo = (SpellEntry*)GetSpellStore()->LookupEntry(i); + spellInfo = GET_SPELL(i); if(!spellInfo) continue; diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index 3eef1db1947..6e6a16a9f13 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -13,6 +13,19 @@ #include "CreatureAIImpl.h" #include "InstanceData.h" +#define USE_DYNAMIC_CAST +#ifdef USE_DYNAMIC_CAST +#define CAST_PLR(a) (dynamic_cast<Player*>(a)) +#define CAST_CRE(a) (dynamic_cast<Creature*>(a)) +#define CAST_AI(a,b) (dynamic_cast<a*>(b)) +#else +#define CAST_PLR(a) (static_cast<Player*>(a)) +#define CAST_CRE(a) (static_cast<Creature*>(a)) +#define CAST_AI(a,b) (static_cast<a*>(b)) +#endif + +#define GET_SPELL(a) (const_cast<SpellEntry*>(GetSpellStore()->LookupEntry(a))) + class ScriptedInstance; class SummonList : private std::list<uint64> @@ -57,10 +70,10 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI void UpdateAI(const uint32); //Called at creature death - void JustDied(Unit*){} + void JustDied(Unit* who){} //Called at creature killing another unit - void KilledUnit(Unit*){} + void KilledUnit(Unit* who){} // Called when the creature summon successfully other creature void JustSummoned(Creature* ) {} @@ -100,7 +113,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI void Reset() {} //Called at creature aggro either by MoveInLOS or Attack Start - void EnterCombat(Unit*) {} + void EnterCombat(Unit* who) {} //************* //AI Helper Functions @@ -188,10 +201,10 @@ struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI Scripted_NoMovementAI(Creature* creature) : ScriptedAI(creature) {} //Called if IsVisible(Unit *who) is true at each *who move - //void MoveInLineOfSight(Unit *); + //void MoveInLineOfSight(Unit* who); //Called at each attack of m_creature by any victim - void AttackStart(Unit *); + void AttackStart(Unit* who); }; struct TRINITY_DLL_DECL BossAI : public ScriptedAI diff --git a/src/bindings/scripts/include/sc_instance.h b/src/bindings/scripts/include/sc_instance.h index 0620e89af07..25593e05300 100644 --- a/src/bindings/scripts/include/sc_instance.h +++ b/src/bindings/scripts/include/sc_instance.h @@ -14,11 +14,7 @@ #define OUT_LOAD_INST_DATA_COMPLETE debug_log("TSCR: Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.",instance->GetMapName(), instance->GetId(), instance->GetInstanceId()) #define OUT_LOAD_INST_DATA_FAIL error_log("TSCR: Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).",instance->GetMapName(), instance->GetId(), instance->GetInstanceId()) -class TRINITY_DLL_DECL ScriptedInstance : public InstanceData -{ - public: - ScriptedInstance(Map *map) : InstanceData(map) {} -}; +#define ScriptedInstance InstanceData #endif diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/boss/boss_taerar.cpp index 73ca89fbcc8..d402a274cb6 100644 --- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp +++ b/src/bindings/scripts/scripts/boss/boss_taerar.cpp @@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_taerarAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(15302, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp index 0ec6d31ca05..baa31bb6a25 100644 --- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp +++ b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp @@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_ysondreAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(15260, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/examples/example_escort.cpp b/src/bindings/scripts/scripts/examples/example_escort.cpp index 4d701ed0fdf..334a85be954 100644 --- a/src/bindings/scripts/scripts/examples/example_escort.cpp +++ b/src/bindings/scripts/scripts/examples/example_escort.cpp @@ -165,7 +165,7 @@ CreatureAI* GetAI_example_escort(Creature *_Creature) testAI->AddWaypoint(3, 1231, -4419, 23, 5000); testAI->AddWaypoint(4, 1208, -4392, 23, 5000); - return (CreatureAI*)testAI; + return testAI; } bool GossipHello_example_escort(Player *player, Creature *_Creature) @@ -186,7 +186,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID()); return true; // prevent mangos core handling } @@ -194,7 +194,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+2) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false, player->GetGUID()); return true; // prevent mangos core handling } @@ -202,7 +202,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen if (action == GOSSIP_ACTION_INFO_DEF+3) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, true, false, player->GetGUID()); return true; // prevent mangos core handling } diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/item/item_scripts.cpp index 4e1b1096ab8..f577d0fed9c 100644 --- a/src/bindings/scripts/scripts/item/item_scripts.cpp +++ b/src/bindings/scripts/scripts/item/item_scripts.cpp @@ -107,7 +107,7 @@ bool ItemUse_item_attuned_crystal_cores(Player *player, Item* _Item, SpellCastTa targets.getUnitTarget()->GetEntry() == 24972 && targets.getUnitTarget()->isDead() && (player->GetQuestStatus(11524) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11525) == QUEST_STATUS_INCOMPLETE) ) { - ((Creature*)targets.getUnitTarget())->RemoveCorpse(); + CAST_CRE(targets.getUnitTarget())->RemoveCorpse(); return false; } @@ -191,7 +191,7 @@ bool ItemUse_item_nether_wraith_beacon(Player *player, Item* _Item, SpellCastTar Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()+20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000); Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()-20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000); if (Nether) - ((CreatureAI*)Nether->AI())->AttackStart(player); + (Nether->AI())->AttackStart(player); } return false; } @@ -276,7 +276,7 @@ bool ItemUse_item_muiseks_vessel(Player *player, Item* _Item, SpellCastTargets c if( uTarget && uTarget->GetTypeId()==TYPEID_UNIT && uTarget->isDead() && (uTarget->GetEntry()==cEntry || uTarget->GetEntry()==cEntry2 || uTarget->GetEntry()==cEntry3 || uTarget->GetEntry()==cEntry4) ) { - ((Creature*)uTarget)->RemoveCorpse(); + CAST_CRE(uTarget)->RemoveCorpse(); return false; } } @@ -463,7 +463,7 @@ bool ItemUse_item_yehkinyas_bramble(Player *player, Item* _Item, SpellCastTarget // cast only on corpse 5307 or 5308 (unit_target->GetEntry()==5307 || unit_target->GetEntry()==5308) ) { - ((Creature*)unit_target)->RemoveCorpse(); // remove corpse for cancelling second use + CAST_CRE(unit_target)->RemoveCorpse(); // remove corpse for cancelling second use return false; // all ok } } diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.h b/src/bindings/scripts/scripts/npc/npc_escortAI.h index 6defa4413e1..3431e84c6f8 100644 --- a/src/bindings/scripts/scripts/npc/npc_escortAI.h +++ b/src/bindings/scripts/scripts/npc/npc_escortAI.h @@ -38,9 +38,9 @@ struct TRINITY_DLL_DECL npc_escortAI : public ScriptedAI npc_escortAI(Creature *c) : ScriptedAI(c), IsBeingEscorted(false), PlayerTimer(1000), MaxPlayerDistance(DEFAULT_MAX_PLAYER_DISTANCE), CanMelee(true), DespawnAtEnd(true), DespawnAtFar(true) {} - void AttackStart(Unit*); + void AttackStart(Unit* who); - void MoveInLineOfSight(Unit*); + void MoveInLineOfSight(Unit* who); void JustRespawned(); diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp index 3a5b4d67bdf..3c0429ee4f3 100644 --- a/src/bindings/scripts/scripts/npc/npcs_special.cpp +++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp @@ -118,7 +118,7 @@ CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature) bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest ) { if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); + CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset(); return true; } @@ -126,7 +126,7 @@ bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Qu bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest) { if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); + CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset(); return true; } @@ -361,12 +361,12 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804) { - if((((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) + if((CAST_PLR(caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (CAST_PLR(caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) { if (Doctorguid) { if(Creature* Doctor = Unit::GetCreature(*m_creature, Doctorguid)) - ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord); + CAST_AI(npc_doctorAI, Doctor->AI())->PatientSaved(m_creature, CAST_PLR(caster), Coord); } } @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI if (Doctorguid) { if(Creature* Doctor = Unit::GetCreature((*m_creature), Doctorguid)) - ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord); + CAST_AI(npc_doctorAI, Doctor->AI())->PatientDied(Coord); } } } @@ -561,10 +561,10 @@ void npc_doctorAI::UpdateAI(const uint32 diff) Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); Patients.push_back(Patient->GetGUID()); - ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID(); + CAST_AI(npc_injured_patientAI, Patient->AI())->Doctorguid = m_creature->GetGUID(); if (Point) - ((npc_injured_patientAI*)Patient->AI())->Coord = Point; + CAST_AI(npc_injured_patientAI, Patient->AI())->Coord = Point; Coordinates.erase(itr); } @@ -577,7 +577,7 @@ void npc_doctorAI::UpdateAI(const uint32 diff) bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest ) { if ((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622)) - ((npc_doctorAI*)creature->AI())->BeginEvent(player); + CAST_AI(npc_doctorAI, creature->AI())->BeginEvent(player); return true; } @@ -667,7 +667,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI switch(m_creature->GetEntry()) { case ENTRY_SHAYA: - if (((Player*)pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -684,7 +684,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_ROBERTS: - if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -701,7 +701,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_DOLF: - if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -718,7 +718,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_KORJA: - if (((Player*)pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -735,7 +735,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI } break; case ENTRY_DG_KEL: - if (((Player*)pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) + if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) { if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1) { @@ -755,7 +755,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI //give quest credit, not expect any special quest objectives if (bCanRun) - ((Player*)pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID()); + CAST_PLR(pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID()); } } } @@ -800,7 +800,7 @@ CreatureAI* GetAI_npc_garments_of_quests(Creature* pCreature) tempAI->FillPointMovementListForCreature(); - return (CreatureAI*)tempAI; + return tempAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp index c404f0b7fd0..128583163ae 100644 --- a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp @@ -40,8 +40,8 @@ struct TRINITY_DLL_DECL npc_ravenholdtAI : public ScriptedAI void MoveInLineOfSight(Unit *who) { if( who->GetTypeId() == TYPEID_PLAYER ) - if( ((Player*)who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE ) - ((Player*)who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() ); + if( CAST_PLR(who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() ); } void EnterCombat(Unit* who) { } diff --git a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp index ba3b6aa8e9a..2e80e6e4c6e 100644 --- a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp +++ b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI DoScriptText(SAY_PROGRESS_9, m_creature, player); Completed = true; if(player) - ((Player*)player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature); break; } } @@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_SUNKEN_TREASURE); + CAST_PLR(player)->FailQuest(QUEST_SUNKEN_TREASURE); } } @@ -117,7 +117,7 @@ bool QuestAccept_npc_professor_phizzlethorpe(Player* player, Creature* creature, if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE) { DoScriptText(SAY_PROGRESS_1, creature, player); - ((npc_escortAI*)(creature->AI()))->Start(false, false, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(false, false, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -129,7 +129,7 @@ CreatureAI* GetAI_npc_professor_phizzlethorpeAI(Creature *_Creature) professor_phizzlethorpeAI->FillPointMovementListForCreature(); - return (CreatureAI*)professor_phizzlethorpeAI; + return professor_phizzlethorpeAI; } void AddSC_arathi_highlands() diff --git a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp index 76fdba757d2..73e89f8c7ca 100644 --- a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp +++ b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp @@ -82,7 +82,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI DoScriptText(SAY_WIN, m_creature, player); Completed = true; if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature); break; case 21: DoScriptText(SAY_END, m_creature, player); @@ -114,7 +114,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI if (PlayerGUID && !Completed) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_TOREK_ASSULT); + CAST_PLR(player)->FailQuest(QUEST_TOREK_ASSULT); } } @@ -144,7 +144,7 @@ bool QuestAccept_npc_torek(Player* player, Creature* creature, Quest const* ques if (quest->GetQuestId() == QUEST_TOREK_ASSULT) { //TODO: find companions, make them follow Torek, at any time (possibly done by mangos/database in future?) - ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -158,7 +158,7 @@ CreatureAI* GetAI_npc_torek(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } /*#### @@ -200,7 +200,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI case 21:{ if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature); break; } } @@ -229,7 +229,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_FREEDOM_TO_RUUL); + CAST_PLR(player)->FailQuest(QUEST_FREEDOM_TO_RUUL); } } @@ -244,7 +244,7 @@ bool QuestAccept_npc_ruul_snowhoof(Player* player, Creature* creature, Quest con if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -255,7 +255,7 @@ CreatureAI* GetAI_npc_ruul_snowhoofAI(Creature *_Creature) ruul_snowhoofAI->FillPointMovementListForCreature(); - return (CreatureAI*)ruul_snowhoofAI; + return ruul_snowhoofAI; } void AddSC_ashenvale() diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp index fb81cde9f6b..68a3f60a197 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_exarch_maladaarAI : public ScriptedAI if (Unit *target = Unit::GetUnit(*m_creature,soulholder)) { - ((mob_stolen_soulAI*)summoned->AI())->SetMyClass(soulclass); + CAST_AI(mob_stolen_soulAI, summoned->AI())->SetMyClass(soulclass); summoned->AI()->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp index d85dd7a5887..0869a6e72cd 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp @@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI return; } if(!Shaffar->isInCombat()) - ((Creature*)Shaffar)->AI()->AttackStart(who); + CAST_CRE(Shaffar)->AI()->AttackStart(who); } void JustSummoned(Creature *summoned) @@ -291,7 +291,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI { Unit *Shaffar = me->FindNearestCreature(ENTRY_SHAFFAR, 100); if(Shaffar) - ((boss_nexusprince_shaffarAI*)(((Creature*)Shaffar)->AI()))->RemoveBeaconFromList(m_creature); + CAST_AI(boss_nexusprince_shaffarAI, (CAST_CRE(Shaffar)->AI()))->RemoveBeaconFromList(m_creature); } void UpdateAI(const uint32 diff) @@ -322,8 +322,6 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI m_creature->InterruptNonMeleeSpells(true); m_creature->CastSpell(m_creature,SPELL_ETHEREAL_APPRENTICE,true); - if( m_creature->isPet() ) - ((Pet*)m_creature)->SetDuration(0); KillSelf(); return; }else Apprentice_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp index 28079c7a604..61758b12e6e 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI { boss_talon_king_ikissAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp index 06a78c423da..324524c0b71 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public ScriptedAI { boss_ambassador_hellmawAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp index 6d683c09764..ebabd317940 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_blackheart_the_inciterAI : public ScriptedAI { boss_blackheart_the_inciterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp index 52e5a3e8915..f99f9a130aa 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp @@ -92,7 +92,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI { if(sacrificed) { - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS); + SpellEntry *spell = GET_SPELL(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS); if( spell ) Vorpil->AddAura(new Aura(spell, 1, NULL, Vorpil, m_creature)); Vorpil->SetHealth(Vorpil->GetHealth()+Vorpil->GetMaxHealth()/25); @@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI { boss_grandmaster_vorpilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); Intro = false; } @@ -203,7 +203,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI void JustSummoned(Creature *summoned) { if (summoned && summoned->GetEntry() == MOB_VOID_TRAVELER) - ((mob_voidtravelerAI*)summoned->AI())->Vorpil = m_creature; + CAST_AI(mob_voidtravelerAI, summoned->AI())->Vorpil = m_creature; } void KilledUnit(Unit *victim) diff --git a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp index f2c21be08c5..5f0d4bf03ff 100644 --- a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI { boss_elder_nadoxAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } @@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL mob_ahnkahar_nerubianAI : public ScriptedAI { mob_ahnkahar_nerubianAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Reset(); } diff --git a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp index f6e0b263043..5223b6d93c3 100644 --- a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp +++ b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL mobs_spitelashesAI : public ScriptedAI { if( !spellhit && Hitter->GetTypeId() == TYPEID_PLAYER && - ((Player*)Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE && + CAST_PLR(Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE && (Spellkind->Id==118 || Spellkind->Id== 12824 || Spellkind->Id== 12825 || Spellkind->Id== 12826) ) { spellhit=true; @@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if(Grenade_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player) { DoScriptText(SAY_RIZZLE_GRENADE, m_creature, player); @@ -339,7 +339,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if(Check_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(!player) { Despawn(); @@ -374,7 +374,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI if (!who || PlayerGUID) return; - if(who->GetTypeId() == TYPEID_PLAYER && ((Player *)who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE) + if(who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE) { PlayerGUID = who->GetGUID(); DoScriptText(SAY_RIZZLE_START, m_creature); @@ -417,8 +417,8 @@ bool GossipSelect_mob_rizzle_sprysprocket(Player *player, Creature *_Creature, u { player->CLOSE_GOSSIP_MENU(); _Creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true); - ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die_Timer = 3000; - ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die = true; + CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die_Timer = 3000; + CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die = true; } return true; } diff --git a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp index 5df22182c1f..320a1610827 100644 --- a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp @@ -280,7 +280,7 @@ bool GossipSelect_npc_engineer_spark_overgrind(Player *player, Creature *_Creatu { player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE); - ((npc_engineer_spark_overgrindAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_engineer_spark_overgrindAI, _Creature->AI())->AttackStart(player); } return true; } @@ -401,7 +401,7 @@ bool QuestAccept_npc_magwin(Player* player, Creature* creature, Quest const* que if (quest->GetQuestId() == QUEST_A_CRY_FOR_SAY_HELP) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -412,7 +412,7 @@ CreatureAI* GetAI_npc_magwinAI(Creature* pCreature) magwinAI->FillPointMovementListForCreature(); - return (CreatureAI*)magwinAI; + return magwinAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp index 4ae561d483c..f8b92d4f077 100644 --- a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp +++ b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp @@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI { if(!who || (!who->isAlive())) return; - if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && ((Player*)who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress) + if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && CAST_PLR(who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress) { PlayerGUID = who->GetGUID(); EventInProgress = true; @@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); pCreature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); pCreature->setFaction(14); - ((CreatureAI*)pCreature->AI())->AttackStart(pWarrior); + (pCreature->AI())->AttackStart(pWarrior); ++Wave; Wave_Timer = 20000; } @@ -447,7 +447,7 @@ struct TRINITY_DLL_DECL npc_wizzlecrank_shredderAI : public npc_escortAI if(Mercenary) { DoScriptText(SAY_MERCENARY_4, Mercenary); - ((Creature*)Mercenary)->AI()->AttackStart(m_creature); + CAST_CRE(Mercenary)->AI()->AttackStart(m_creature); AttackStart(Mercenary); } }break; @@ -499,7 +499,7 @@ bool QuestAccept_npc_wizzlecrank_shredder(Player* player, Creature* creature, Qu if (quest->GetQuestId() == QUEST_ESCAPE) { creature->setFaction(FACTION_RATCHET); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -541,7 +541,7 @@ CreatureAI* GetAI_npc_wizzlecrank_shredderAI(Creature *_Creature) thisAI->AddWaypoint(30, 1091.28, -2985.82, 91.74, 7000); thisAI->AddWaypoint(31, 1091.28, -2985.82, 91.74, 3000); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_the_barrens() diff --git a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp index 738c58eab2e..aa390a229b1 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp @@ -37,7 +37,7 @@ EndContentData */ bool GossipHello_npc_spirit_of_olum(Player* player, Creature* _Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance && (pInstance->GetData(DATA_SUPREMUSEVENT) >= DONE) && (pInstance->GetData(DATA_HIGHWARLORDNAJENTUSEVENT) >= DONE)) player->ADD_GOSSIP_ITEM(0, GOSSIP_OLUM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp index e70f144d460..48405c1190c 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp @@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI { boss_gurtogg_bloodboilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index 97410c2b38e..e8b57f78e9c 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -366,10 +366,10 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI { boss_illidan_stormrageAI(Creature* c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHADOWFIEND_PASSIVE); + SpellEntry *TempSpell = GET_SPELL(SPELL_SHADOWFIEND_PASSIVE); if(TempSpell) TempSpell->EffectApplyAuraName[0] = 4; // proc debuff, and summon infinite fiends } @@ -973,7 +973,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI { npc_akama_illidanAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1045,7 +1045,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI } void EnterCombat(Unit *who) {} - void MoveInLineOfSight(Unit *) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32 MovementType, uint32 Data) {Timer = 1;} @@ -1086,8 +1086,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI Illidan->SetInFront(m_creature); m_creature->GetMotionMaster()->MoveIdle(); Illidan->GetMotionMaster()->MoveIdle(); - ((boss_illidan_stormrageAI*)Illidan->AI())->AkamaGUID = m_creature->GetGUID(); - ((boss_illidan_stormrageAI*)Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->AkamaGUID = m_creature->GetGUID(); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE); } } @@ -1138,7 +1138,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI else if(Phase == PHASE_TALK) { if(GETCRE(Illidan, IllidanGUID)) - ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); EnterEvadeMode(); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); WalkCount++; @@ -1191,7 +1191,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI case 0: if(GETCRE(Illidan, IllidanGUID)) { - ((boss_illidan_stormrageAI*)Illidan->AI())->Timer[EVENT_TAUNT] += 30000; + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->Timer[EVENT_TAUNT] += 30000; Illidan->MonsterYell(SAY_AKAMA_MINION, LANG_UNIVERSAL, 0); DoPlaySoundToSet(Illidan, SOUND_AKAMA_MINION); } @@ -1481,7 +1481,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI { if(GETCRE(Illidan, IllidanGUID)) { - Unit* target = ((boss_illidan_stormrageAI*)Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0); + Unit* target = CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0); if(!target || !m_creature->IsWithinDistInMap(target, 80) || Illidan->IsWithinDistInMap(target, 20)) { @@ -1560,7 +1560,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI m_creature->SetVisibility(VISIBILITY_OFF); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); if(GETCRE(Illidan, IllidanGUID)) - ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); + CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID()); m_creature->AttackStop(); Timer[EVENT_MAIEV_STEALTH] = 60000; //reappear after 1 minute MaxTimer = 1; @@ -1577,7 +1577,7 @@ bool GossipSelect_npc_akama_at_illidan(Player *player, Creature *_Creature, uint if(action == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event { player->CLOSE_GOSSIP_MENU(); - ((npc_akama_illidanAI*)_Creature->AI())->EnterPhase(PHASE_CHANNEL); + CAST_AI(npc_akama_illidanAI, _Creature->AI())->EnterPhase(PHASE_CHANNEL); } return true; } @@ -1676,7 +1676,7 @@ bool GOHello_cage_trap(Player* plr, GameObject* go) cell_lock->Visit(cell_lock, cSearcher, *(plr->GetMap())); if(trigger) - ((cage_trap_triggerAI*)trigger->AI())->Active = true; + CAST_AI(cage_trap_triggerAI, trigger->AI())->Active = true; go->SetGoState(GO_STATE_ACTIVE); return true; } @@ -1725,7 +1725,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI { mob_parasitic_shadowfiendAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1776,7 +1776,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI if(CheckTimer < diff) { GETUNIT(Illidan, IllidanGUID); - if(!Illidan || ((Creature*)Illidan)->IsInEvadeMode()) + if(!Illidan || CAST_CRE(Illidan)->IsInEvadeMode()) { m_creature->SetVisibility(VISIBILITY_OFF); m_creature->setDeathState(JUST_DIED); @@ -1812,9 +1812,9 @@ void boss_illidan_stormrageAI::Reset() Akama->Respawn(); else { - ((npc_akama_illidanAI*)Akama->AI())->EnterEvadeMode(); + CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterEvadeMode(); Akama->GetMotionMaster()->MoveTargetedHome(); - ((npc_akama_illidanAI*)Akama->AI())->Reset(); + CAST_AI(npc_akama_illidanAI, Akama->AI())->Reset(); } } AkamaGUID = 0; @@ -1877,7 +1877,7 @@ void boss_illidan_stormrageAI::JustSummoned(Creature* summon) summon->SetVisibility(VISIBILITY_OFF); // Leave her invisible until she has to talk summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); MaievGUID = summon->GetGUID(); - ((boss_maievAI*)summon->AI())->GetIllidanGUID(m_creature->GetGUID()); + CAST_AI(boss_maievAI, summon->AI())->GetIllidanGUID(m_creature->GetGUID()); summon->AI()->DoAction(PHASE_TALK_SEQUENCE); }break; case FLAME_OF_AZZINOTH: @@ -1907,7 +1907,7 @@ void boss_illidan_stormrageAI::HandleTalkSequence() { m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); m_creature->AddThreat(Akama, 100.0f); - ((npc_akama_illidanAI*)Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN); + CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN); EnterPhase(PHASE_NORMAL); } break; @@ -2026,7 +2026,7 @@ void boss_illidan_stormrageAI::SummonFlamesOfAzzinoth() Flame->setFaction(m_creature->getFaction()); // Just in case the database has it as a different faction Flame->SetMeleeDamageSchool(SPELL_SCHOOL_FIRE); FlameGUID[i] = Flame->GetGUID(); // Record GUID in order to check if they're dead later on to move to the next phase - ((flame_of_azzinothAI*)Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]); + CAST_AI(flame_of_azzinothAI, Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]); Glaive->CastSpell(Flame, SPELL_AZZINOTH_CHANNEL, false); // Glaives do some random Beam type channel on it. } } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp index 0321ea6d9ad..ba3d5316e76 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp @@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_shahrazAI : public ScriptedAI { boss_shahrazAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp index 6bd777405ea..0c11e2a4106 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp @@ -120,7 +120,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI { boss_reliquary_of_soulsAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EssenceGUID = 0; } @@ -178,7 +178,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI if(!Soul) return false; if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) { - ((npc_enslaved_soulAI*)Soul->AI())->ReliquaryGUID = m_creature->GetGUID(); + CAST_AI(npc_enslaved_soulAI, Soul->AI())->ReliquaryGUID = m_creature->GetGUID(); Soul->AI()->AttackStart(target); }else EnterEvadeMode(); return true; @@ -629,7 +629,7 @@ void npc_enslaved_soulAI::JustDied(Unit *killer) { Creature* Reliquary = (Unit::GetCreature((*m_creature), ReliquaryGUID)); if(Reliquary) - ((boss_reliquary_of_soulsAI*)Reliquary->AI())->SoulDeathCount++; + CAST_AI(boss_reliquary_of_soulsAI, Reliquary->AI())->SoulDeathCount++; } DoCast(m_creature, SPELL_SOUL_RELEASE, true); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp index ec876e4c7ac..587d9934a51 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp @@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI { boss_shade_of_akamaAI(Creature* c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AkamaGUID = pInstance ? pInstance->GetData64(DATA_AKAMA_SHADE) : 0; m_creature->setActive(true);//if view distance is too low m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); @@ -309,7 +309,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI Creature* Sorcerer = m_creature->SummonCreature(CREATURE_SORCERER, X, Y, Z_SPAWN, 0, TEMPSUMMON_DEAD_DESPAWN, 0); if(Sorcerer) { - ((mob_ashtongue_sorcererAI*)Sorcerer->AI())->ShadeGUID = m_creature->GetGUID(); + CAST_AI(mob_ashtongue_sorcererAI, Sorcerer->AI())->ShadeGUID = m_creature->GetGUID(); Sorcerer->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); Sorcerer->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ()); Sorcerer->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID()); @@ -354,7 +354,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI { for(std::list<Creature*>::iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr) { - ((mob_ashtongue_channelerAI*)(*itr)->AI())->ShadeGUID = m_creature->GetGUID(); + CAST_AI(mob_ashtongue_channelerAI, (*itr)->AI())->ShadeGUID = m_creature->GetGUID(); Channelers.push_back((*itr)->GetGUID()); debug_log("TSCR: Shade of Akama Grid Search found channeler %u. Adding to list", (*itr)->GetGUID()); } @@ -489,7 +489,7 @@ void mob_ashtongue_channelerAI::JustDied(Unit* killer) { Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount(); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(); else error_log("SD2 ERROR: Channeler dead but unable to increment DeathCount for Shade of Akama."); } @@ -497,7 +497,7 @@ void mob_ashtongue_sorcererAI::JustDied(Unit* killer) { Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount(m_creature->GetGUID()); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(m_creature->GetGUID()); else error_log("SD2 ERROR: Sorcerer dead but unable to increment DeathCount for Shade of Akama."); } @@ -507,7 +507,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI { ShadeHasDied = false; StartCombat = false; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); ShadeGUID = pInstance ? pInstance->GetData64(DATA_SHADEOFAKAMA) : NOT_STARTED; m_creature->setActive(true); EventBegun = false; @@ -572,8 +572,8 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI pInstance->SetData(DATA_SHADEOFAKAMAEVENT, IN_PROGRESS); // Prevent players from trying to restart event m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ((boss_shade_of_akamaAI*)Shade->AI())->SetAkamaGUID(m_creature->GetGUID()); - ((boss_shade_of_akamaAI*)Shade->AI())->SetSelectableChannelers(); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetAkamaGUID(m_creature->GetGUID()); + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetSelectableChannelers(); Shade->AddThreat(m_creature, 1000000.0f); m_creature->CombatStart(Shade); Shade->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); @@ -621,7 +621,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI HasYelledOnce = false; Creature* Shade = Unit::GetCreature((*m_creature), ShadeGUID); if(Shade && Shade->isAlive()) - ((boss_shade_of_akamaAI*)Shade->AI())->HasKilledAkama = true; + CAST_AI(boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true; } void UpdateAI(const uint32 diff) @@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID)); if(Shade && Shade->isAlive()) { - if(((boss_shade_of_akamaAI*)Shade->AI())->IsBanished) + if(CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IsBanished) { if(CastSoulRetrieveTimer < diff) { @@ -816,7 +816,7 @@ bool GossipSelect_npc_akama(Player *player, Creature *_Creature, uint32 sender, if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time { player->CLOSE_GOSSIP_MENU(); - ((npc_akamaAI*)_Creature->AI())->BeginEvent(player); + CAST_AI(npc_akamaAI, _Creature->AI())->BeginEvent(player); } return true; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp index 1994d580b8d..a5841cf86a6 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp @@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI { boss_supremusAI(Creature *c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp index 6c2a738647d..b79abe5e393 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp @@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI { boss_teron_gorefiendAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -338,7 +338,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI Creature* control = m_creature->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000); if(control) { - ((Player*)Ghost)->Possess(control); + CAST_PLR(Ghost)->Possess(control); Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); }*/ @@ -352,7 +352,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI { Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true); SetThreatList(Construct); // Use same function as Doom Blossom to set Threat List. - ((mob_shadowy_constructAI*)Construct->AI())->GhostGUID = GhostGUID; + CAST_AI(mob_shadowy_constructAI, Construct->AI())->GhostGUID = GhostGUID; Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1); if(!target) // someone's trying to solo. target = m_creature->getVictim(); @@ -430,7 +430,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI DoomBlossom->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); DoomBlossom->setFaction(m_creature->getFaction()); DoomBlossom->AddThreat(target, 1.0f); - ((mob_doom_blossomAI*)DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID()); + CAST_AI(mob_doom_blossomAI, DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID()); target->CombatStart(DoomBlossom); SetThreatList(DoomBlossom); SummonDoomBlossomTimer = 35000; diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp index ee3cc90661a..3029231abd9 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp @@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI { boss_najentusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -195,9 +195,9 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI bool GOHello_go_najentus_spine(Player *player, GameObject* _GO) { - if(ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData()) + if(ScriptedInstance* pInstance = _GO->GetInstanceData()) if(Creature* Najentus = Unit::GetCreature(*_GO, pInstance->GetData64(DATA_HIGHWARLORDNAJENTUS))) - if(((boss_najentusAI*)Najentus->AI())->RemoveImpalingSpine()) + if(CAST_AI(boss_najentusAI, Najentus->AI())->RemoveImpalingSpine()) { player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true); _GO->SetLootState(GO_NOT_READY); diff --git a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp index 7478a235215..0c43ba57041 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp @@ -135,7 +135,7 @@ struct TRINITY_DLL_DECL mob_blood_elf_council_voice_triggerAI : public ScriptedA // finds and stores the GUIDs for each Council member using instance data system. void LoadCouncilGUIDs() { - if(ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData())) + if(ScriptedInstance* pInstance = (m_creature->GetInstanceData())) { Council[0] = pInstance->GetData64(DATA_GATHIOSTHESHATTERER); Council[1] = pInstance->GetData64(DATA_VERASDARKSHADOW); @@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI { mob_illidari_councilAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; } @@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI // Start the event for the Voice Trigger if(Creature* VoiceTrigger = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE)))) { - ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->LoadCouncilGUIDs(); - ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->EventStarted = true; + CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs(); + CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true; } for(uint8 i = 0; i < 4; ++i) @@ -272,7 +272,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI { Member = Unit::GetUnit((*m_creature), Council[i]); if(Member && Member->isAlive()) - ((Creature*)Member)->AI()->AttackStart(target); + CAST_CRE(Member)->AI()->AttackStart(target); } } @@ -348,7 +348,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI { boss_illidari_councilAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; LoadedGUIDs = false; @@ -366,7 +366,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI { Creature* Controller = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ILLIDARICOUNCIL))); if(Controller) - ((mob_illidari_councilAI*)Controller->AI())->StartEvent(who); + CAST_AI(mob_illidari_councilAI, Controller->AI())->StartEvent(who); } else { diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp index dc8235f646e..135f63bc08c 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp @@ -67,7 +67,7 @@ uint32 RingBoss[]= bool AreaTrigger_at_ring_of_law(Player *player, AreaTriggerEntry *at) { - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (pInstance) { @@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI { npc_grimstoneAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); MobSpawnId = rand()%6; } @@ -310,7 +310,7 @@ CreatureAI* GetAI_npc_grimstone(Creature *_Creature) Grimstone_AI->FillPointMovementListForCreature(); - return (CreatureAI*)Grimstone_AI; + return Grimstone_AI; } /*###### @@ -577,7 +577,7 @@ CreatureAI* GetAI_npc_dughal_stormwing(Creature *_Creature) dughal_stormwingAI->AddWaypoint(1, 287.64,-87.01, -76.79,0); dughal_stormwingAI->AddWaypoint(2, 354.63,-64.95, -67.53,0); - return (CreatureAI*)dughal_stormwingAI; + return dughal_stormwingAI; } bool GossipHello_npc_dughal_stormwing(Player *player, Creature *_Creature) { @@ -594,7 +594,7 @@ bool GossipSelect_npc_dughal_stormwing(Player *player, Creature *_Creature, uint if (action == GOSSIP_ACTION_INFO_DEF + 1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID()); _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS); } @@ -622,7 +622,7 @@ struct TRINITY_DLL_DECL npc_marshal_windsorAI : public npc_escortAI { npc_marshal_windsorAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void WaypointReached(uint32 i) @@ -742,7 +742,7 @@ CreatureAI* GetAI_npc_marshal_windsor(Creature *_Creature) marshal_windsorAI->AddWaypoint(18, 403.61,-51.71, -63.92,1000); marshal_windsorAI->AddWaypoint(19, 403.61,-51.71, -63.92,0); - return (CreatureAI*)marshal_windsorAI; + return marshal_windsorAI; } bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest const *quest ) @@ -751,7 +751,7 @@ bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest c {PlayerStart = player; if( pInstance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED ) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS); creature->setFaction(11); } @@ -854,13 +854,13 @@ struct TRINITY_DLL_DECL npc_marshal_reginald_windsorAI : public npc_escortAI if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { IsOnHold = false; - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, false, who->GetGUID()); + Start(true, true, false, who->GetGUID()); } } } @@ -969,7 +969,7 @@ CreatureAI* GetAI_npc_marshal_reginald_windsor(Creature *_Creature) marshal_reginald_windsorAI->AddWaypoint(33, 452.45,29.85, -70.37,10000); marshal_reginald_windsorAI->AddWaypoint(34, 451.27,31.85, -70.07,0); - return (CreatureAI*)marshal_reginald_windsorAI; + return marshal_reginald_windsorAI; } */ /*###### @@ -1041,7 +1041,7 @@ CreatureAI* GetAI_npc_tobias_seecher(Creature *_Creature) tobias_seecherAI->AddWaypoint(3, 519.44, -217.02, -59.34); tobias_seecherAI->AddWaypoint(4, 506.55, -153.49, -62.34); - return (CreatureAI*)tobias_seecherAI; + return tobias_seecherAI; } bool GossipHello_npc_tobias_seecher(Player *player, Creature *_Creature) @@ -1059,7 +1059,7 @@ bool GossipSelect_npc_tobias_seecher(Player *player, Creature *_Creature, uint32 if (action == GOSSIP_ACTION_INFO_DEF + 1) { player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID()); _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); pInstance->SetData(DATA_TOBIAS,ENCOUNTER_STATE_IN_PROGRESS); } @@ -1079,7 +1079,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI { npc_rocknotAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -1172,12 +1172,12 @@ CreatureAI* GetAI_npc_rocknot(Creature *_Creature) Rocknot_AI->FillPointMovementListForCreature(); - return (CreatureAI*)Rocknot_AI; + return Rocknot_AI; } bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest *_Quest, uint32 item) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if (!pInstance) return true; @@ -1197,7 +1197,7 @@ bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest * { DoScriptText(SAY_GOT_BEER, _Creature); _Creature->CastSpell(_Creature,SPELL_DRUNKEN_RAGE,false); - ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false); } } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp index 28f2e6935e2..d08cbb06b98 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp @@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI } Summoned = DoSpawnCreature(9178, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp index 98e1e959314..5d47241a5d9 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp @@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI Rand1 = 0; SummonedAdds = DoSpawnCreature(8901, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedAdds) - ((CreatureAI*)SummonedAdds->AI())->AttackStart(victim); + (SummonedAdds->AI())->AttackStart(victim); } void SummonMedics(Unit* victim) @@ -97,7 +97,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI Rand2 = 0; SummonedMedics = DoSpawnCreature(8894, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMedics) - ((CreatureAI*)SummonedMedics->AI())->AttackStart(victim); + (SummonedMedics->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp index 3768422e323..ff02f60f7a2 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp @@ -515,7 +515,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp index cdb038588bf..98ed58f0b3a 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp @@ -104,10 +104,10 @@ struct TRINITY_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000); if(SummonedCreature) - ((CreatureAI*)SummonedCreature->AI())->AttackStart(target); + (SummonedCreature->AI())->AttackStart(target); SummonedCreature = m_creature->SummonCreature(9268,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,300000); if(SummonedCreature) - ((CreatureAI*)SummonedCreature->AI())->AttackStart(target); + (SummonedCreature->AI())->AttackStart(target); Summoned = true; } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp index b11ac370804..ffba0ac8ef7 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp @@ -223,7 +223,7 @@ void SendDefaultMenu_boss_vael(Player *player, Creature *_Creature, uint32 actio if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time { player->CLOSE_GOSSIP_MENU(); - ((boss_vaelAI*)_Creature->AI())->BeginSpeach((Unit*)player); + CAST_AI(boss_vaelAI, _Creature->AI())->BeginSpeach(player); } } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp index b3aee0035df..4b8a8b6ff23 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp @@ -373,7 +373,7 @@ bool GossipSelect_boss_victor_nefarius(Player *player, Creature *_Creature, uint case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); DoScriptText(SAY_GAMESBEGIN_1, _Creature); - ((boss_victor_nefariusAI*)_Creature->AI())->BeginEvent(player); + CAST_AI(boss_victor_nefariusAI, _Creature->AI())->BeginEvent(player); break; } return true; diff --git a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp index c47ab0aceff..263bdf67143 100644 --- a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp @@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL mobs_bladespire_ogreAI : public ScriptedAI void JustDied(Unit* Killer) { if (Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(19995, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(19995, m_creature->GetGUID()); } }; CreatureAI* GetAI_mobs_bladespire_ogre(Creature *_Creature) @@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL npc_daranelleAI : public ScriptedAI { DoScriptText(SAY_SPELL_INFLUENCE, m_creature, who); //TODO: Move the below to updateAI and run if this statement == true - ((Player*)who)->KilledMonster(21511, m_creature->GetGUID()); - ((Player*)who)->RemoveAurasDueToSpell(36904); + CAST_PLR(who)->KilledMonster(21511, m_creature->GetGUID()); + CAST_PLR(who)->RemoveAurasDueToSpell(36904); } } diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp index 062efcb1c4e..525570e37e2 100644 --- a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp +++ b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp @@ -87,7 +87,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(19207, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp index 2dcc84eba80..b9660576097 100644 --- a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp @@ -56,7 +56,7 @@ struct TRINITY_DLL_DECL mob_webbed_creatureAI : public ScriptedAI case 0: spawnCreatureID = 17681; if (Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID()); break; case 1: case 2: diff --git a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp index 1bbe33ea415..b66f4217851 100644 --- a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp +++ b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL npc_ragged_johnAI : public ScriptedAI if( who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 15) && who->isInAccessiblePlaceFor(m_creature) ) { DoCast(who,16472); - ((Player*)who)->AreaExploredOrEventHappens(4866); + CAST_PLR(who)->AreaExploredOrEventHappens(4866); } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp index 872f7b2fcaf..56a99619504 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_aeonusAI : public ScriptedAI { boss_aeonusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp index b4a4ffd04f8..7745c0c56c9 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI { boss_chrono_lord_dejaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp index 56b434373bd..74264aef142 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_temporusAI : public ScriptedAI { boss_temporusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp index e69973c5fa5..740e3d221f6 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp @@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL npc_medivh_bmAI : public ScriptedAI { npc_medivh_bmAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL npc_time_riftAI : public ScriptedAI { npc_time_riftAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp index 13b0c78ebc1..e4016707a99 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp @@ -40,10 +40,10 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI { boss_anetheronAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SLEEP); + SpellEntry *TempSpell = GET_SPELL(SPELL_SLEEP); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -128,16 +128,16 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 4896.08, -1576.35, 1333.65); + AddWaypoint(1, 4898.68, -1615.02, 1329.48); + AddWaypoint(2, 4907.12, -1667.08, 1321.00); + AddWaypoint(3, 4963.18, -1699.35, 1340.51); + AddWaypoint(4, 4989.16, -1716.67, 1335.74); + AddWaypoint(5, 5026.27, -1736.89, 1323.02); + AddWaypoint(6, 5037.77, -1770.56, 1324.36); + AddWaypoint(7, 5067.23, -1789.95, 1321.17); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -225,7 +225,7 @@ struct TRINITY_DLL_DECL mob_towering_infernalAI : public ScriptedAI { mob_towering_infernalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); if(pInstance) AnetheronGUID = pInstance->GetData64(DATA_ANETHERON); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp index ca3d8296f35..6b6529b292e 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp @@ -76,7 +76,7 @@ struct mob_ancient_wispAI : public ScriptedAI { mob_ancient_wispAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI { boss_archimondeAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -282,7 +282,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI } if (victim && (victim->GetTypeId() == TYPEID_PLAYER)) - GainSoulCharge(((Player*)victim)); + GainSoulCharge(CAST_PLR(victim)); } void GainSoulCharge(Player* victim) @@ -530,7 +530,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI if (Wisp) { Wisp->AI()->AttackStart(m_creature); - ((mob_ancient_wispAI*)Wisp->AI())->ArchimondeGUID = m_creature->GetGUID(); + CAST_AI(mob_ancient_wispAI, Wisp->AI())->ArchimondeGUID = m_creature->GetGUID(); } SummonWispTimer = 1500; ++WispCount; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp index 33e3d344da2..8ca8ba36575 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp @@ -31,10 +31,10 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI { boss_azgalorAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HOWL_OF_AZGALOR); + SpellEntry *TempSpell = GET_SPELL(SPELL_HOWL_OF_AZGALOR); if(TempSpell) TempSpell->EffectRadiusIndex[0] = 12;//100yards instead of 50000?! } @@ -120,16 +120,16 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 5492.91, -2404.61, 1462.63); + AddWaypoint(1, 5531.76, -2460.87, 1469.55); + AddWaypoint(2, 5554.58, -2514.66, 1476.12); + AddWaypoint(3, 5554.16, -2567.23, 1479.90); + AddWaypoint(4, 5540.67, -2625.99, 1480.89); + AddWaypoint(5, 5508.16, -2659.2, 1480.15); + AddWaypoint(6, 5489.62, -2704.05, 1482.18); + AddWaypoint(7, 5457.04, -2726.26, 1485.10); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -187,7 +187,7 @@ struct TRINITY_DLL_DECL mob_lesser_doomguardAI : public hyjal_trashAI { mob_lesser_doomguardAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); if(pInstance) AzgalorGUID = pInstance->GetData64(DATA_AZGALOR); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp index 630945bcb96..c8e149e6a37 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp @@ -28,10 +28,10 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI { boss_kazrogalAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_MARK); + SpellEntry *TempSpell = GET_SPELL(SPELL_MARK); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -115,16 +115,16 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 5492.91, -2404.61, 1462.63); + AddWaypoint(1, 5531.76, -2460.87, 1469.55); + AddWaypoint(2, 5554.58, -2514.66, 1476.12); + AddWaypoint(3, 5554.16, -2567.23, 1479.90); + AddWaypoint(4, 5540.67, -2625.99, 1480.89); + AddWaypoint(5, 5508.16, -2659.2, 1480.15); + AddWaypoint(6, 5489.62, -2704.05, 1482.18); + AddWaypoint(7, 5457.04, -2726.26, 1485.10); + Start(false, true, true); + SetDespawnAtEnd(false); } } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp index 3e6b2bc8e98..924652f3d41 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp @@ -34,7 +34,7 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI { boss_rage_winterchillAI(Creature *c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; } @@ -112,16 +112,16 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36); - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, 4896.08, -1576.35, 1333.65); + AddWaypoint(1, 4898.68, -1615.02, 1329.48); + AddWaypoint(2, 4907.12, -1667.08, 1321.00); + AddWaypoint(3, 4963.18, -1699.35, 1340.51); + AddWaypoint(4, 4989.16, -1716.67, 1335.74); + AddWaypoint(5, 5026.27, -1736.89, 1323.02); + AddWaypoint(6, 5037.77, -1770.56, 1324.36); + AddWaypoint(7, 5067.23, -1789.95, 1321.17); + Start(false, true, true); + SetDespawnAtEnd(false); } } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp index 96a991d6682..5b51a720f8b 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp @@ -66,7 +66,7 @@ CreatureAI* GetAI_npc_jaina_proudmoore(Creature *_Creature) bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); if(ai->EventBegun) return false; @@ -88,7 +88,7 @@ bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature) bool GossipSelect_npc_jaina_proudmoore(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); switch(action) { case GOSSIP_ACTION_INFO_DEF + 1: @@ -130,7 +130,7 @@ CreatureAI* GetAI_npc_thrall(Creature *_Creature) bool GossipHello_npc_thrall(Player *player, Creature *_Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); if (ai->EventBegun) return false; @@ -157,7 +157,7 @@ bool GossipHello_npc_thrall(Player *player, Creature *_Creature) bool GossipSelect_npc_thrall(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); ai->DeSpawnVeins();//despawn the alliance veins switch(action) { @@ -190,7 +190,7 @@ CreatureAI* GetAI_npc_tyrande_whisperwind(Creature *_Creature) bool GossipHello_npc_tyrande_whisperwind(Player* player, Creature* _Creature) { - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT); // Only let them get item if Azgalor is dead. @@ -213,7 +213,7 @@ bool GossipSelect_npc_tyrande_whisperwind(Player *player, Creature *_Creature, u player->SendNewItem(item,1,true,false,true); } player->SEND_GOSSIP_MENU(907, _Creature->GetGUID()); - hyjalAI* ai = ((hyjalAI*)_Creature->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI()); } return true; } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp index a3d79a28fa3..77ba7fd7ce2 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp @@ -308,7 +308,7 @@ float HordeFirePos[65][8]=//spawn points for the fire visuals (GO) in the horde hyjalAI::hyjalAI(Creature *c) : npc_escortAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); VeinsSpawned[0] = false; VeinsSpawned[1] = false; for(uint8 i=0;i<14;i++) @@ -462,7 +462,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) {//summon at tower pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][1]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if(pCreature) - ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true; }else{//summon at gate pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_GARG_GATE][0]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][1]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); } @@ -474,7 +474,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) }else{ pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0], SpawnPointSpecial[SPAWN_NEAR_TOWER][1],SpawnPointSpecial[SPAWN_NEAR_TOWER][2], 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if(pCreature) - ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true; } break; case 17908: //GIANT_INFERNAL @@ -510,7 +510,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) case ANETHERON: case KAZROGAL: case AZGALOR: - ((hyjal_trashAI*)pCreature->AI())->IsEvent = true; + CAST_AI(hyjal_trashAI, pCreature->AI())->IsEvent = true; break; } if(pInstance) @@ -682,7 +682,7 @@ void hyjalAI::Retreat() if(JainaDummy) { JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ((hyjalAI*)JainaDummy->AI())->IsDummy = true; + CAST_AI(hyjalAI, JainaDummy->AI())->IsDummy = true; DummyGuid = JainaDummy->GetGUID(); } AddWaypoint(0,JainaDummySpawn[1][0],JainaDummySpawn[1][1],JainaDummySpawn[1][2]); @@ -728,7 +728,7 @@ void hyjalAI::DeSpawnVeins() { Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_JAINAPROUDMOORE)); if (!pUnit)return; - hyjalAI* ai = ((hyjalAI*)pUnit->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI()); if(!ai)return; for (uint8 i = 0; i<7; i++) { @@ -740,7 +740,7 @@ void hyjalAI::DeSpawnVeins() { Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_THRALL)); if (!pUnit)return; - hyjalAI* ai = ((hyjalAI*)pUnit->AI()); + hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI()); if(!ai)return; for (uint8 i = 7; i<14; i++) { @@ -1000,8 +1000,8 @@ void hyjalAI::WaypointReached(uint32 i) Unit* Dummy = Unit::GetUnit((*m_creature),DummyGuid); if(Dummy) { - ((hyjalAI*)((Creature*)Dummy)->AI())->DoMassTeleport = true; - ((hyjalAI*)((Creature*)Dummy)->AI())->MassTeleportTimer = 20000; + CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->DoMassTeleport = true; + CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->MassTeleportTimer = 20000; Dummy->CastSpell(m_creature,SPELL_MASS_TELEPORT,false); } } @@ -1100,9 +1100,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(GHOUL, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1112,9 +1112,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(ABOMINATION, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1124,9 +1124,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) if(pUnit) { pUnit->SetHomePosition(AllianceOverrunGargPos[i][0], AllianceOverrunGargPos[i][1], AllianceOverrunGargPos[i][2], AllianceOverrunGargPos[i][3]); - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1141,9 +1141,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) if(pUnit) { pUnit->SetHomePosition(InfernalSPWP[i][0], InfernalSPWP[i][1], InfernalSPWP[i][2], InfernalSPWP[i][3]); - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1153,9 +1153,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(GHOUL, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } @@ -1165,9 +1165,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) Creature* pUnit = m_creature->SummonCreature(ABOMINATION, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000); if(pUnit) { - ((hyjal_trashAI*)pUnit->AI())->faction = Faction; - ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true; - ((hyjal_trashAI*)pUnit->AI())->OverrunType = i; + CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction; + CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true; + CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i; pUnit->setActive(true); } } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp index 30f0c14caaf..92cbfdbf3ab 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp @@ -141,7 +141,7 @@ float HordeOverrunWP[21][3]=//waypoints in the horde base used in the end in the hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IsEvent = false; Delay = 0; LastOverronPos = 0; @@ -156,7 +156,7 @@ hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c) void hyjal_trashAI::DamageTaken(Unit *done_by, uint32 &damage) { - if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && ((Creature*)done_by)->isPet())) + if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && CAST_CRE(done_by)->isPet())) { damageTaken += damage; if(pInstance) @@ -375,7 +375,7 @@ struct mob_giant_infernalAI : public hyjal_trashAI { mob_giant_infernalAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); meteor = false;//call once! CanMove = false; Delay = rand()%30000; @@ -473,9 +473,9 @@ struct mob_giant_infernalAI : public hyjal_trashAI go = true; if(pInstance) { - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall + Start(true, true, true); + SetDespawnAtEnd(false); } } } @@ -509,7 +509,7 @@ struct mob_abominationAI : public hyjal_trashAI { mob_abominationAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -566,15 +566,15 @@ struct mob_abominationAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -604,7 +604,7 @@ struct mob_ghoulAI : public hyjal_trashAI { mob_ghoulAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -667,15 +667,15 @@ struct mob_ghoulAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -707,7 +707,7 @@ struct mob_necromancerAI : public hyjal_trashAI { mob_necromancerAI(Creature* c) : hyjal_trashAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -786,15 +786,15 @@ struct mob_necromancerAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(true, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(true, true, true); + SetDespawnAtEnd(false); } } } @@ -825,7 +825,7 @@ struct mob_bansheeAI : public hyjal_trashAI { mob_bansheeAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -878,15 +878,15 @@ struct mob_bansheeAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -924,7 +924,7 @@ struct mob_crypt_fiendAI : public hyjal_trashAI { mob_crypt_fiendAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -973,15 +973,15 @@ struct mob_crypt_fiendAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } @@ -1010,7 +1010,7 @@ struct mob_fel_stalkerAI : public hyjal_trashAI { mob_fel_stalkerAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -1059,15 +1059,15 @@ struct mob_fel_stalkerAI : public hyjal_trashAI if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else//use alliance WPs { for (uint8 i = 0; i < 8; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } @@ -1096,7 +1096,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI { mob_frost_wyrmAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; Reset(); @@ -1147,7 +1147,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI hyjal_trashAI::UpdateAI(diff); if(IsEvent || IsOverrun) { - ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false); + CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false); npc_escortAI::UpdateAI(diff); } if (IsEvent) @@ -1160,14 +1160,14 @@ struct mob_frost_wyrmAI : public hyjal_trashAI if(!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -1207,7 +1207,7 @@ struct mob_gargoyleAI : public hyjal_trashAI { mob_gargoyleAI(Creature* c) : hyjal_trashAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); go = false; pos = 0; DummyTarget[0] = 0;DummyTarget[1] = 0;DummyTarget[2] = 0; @@ -1259,7 +1259,7 @@ struct mob_gargoyleAI : public hyjal_trashAI hyjal_trashAI::UpdateAI(diff); if(IsEvent || IsOverrun) { - ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false); + CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false); npc_escortAI::UpdateAI(diff); } if (IsEvent) @@ -1272,14 +1272,14 @@ struct mob_gargoyleAI : public hyjal_trashAI if(!useFlyPath) { for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) - ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); - ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true); - ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false); + AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]); + Start(false, true, true); + SetDespawnAtEnd(false); } } } @@ -1346,7 +1346,7 @@ struct TRINITY_DLL_DECL alliance_riflemanAI : public Scripted_NoMovementAI uint32 ExplodeTimer; - void JustDied(Unit*) + void JustDied(Unit* who) { } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp index 3eda30963a5..feff5debf3e 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_captain_skarlocAI : public ScriptedAI { boss_captain_skarlocAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp index c2451dce22d..26e1cb57e1a 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_epoch_hunterAI : public ScriptedAI { boss_epoch_hunterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp index ddca1523597..e219c8f72a6 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp @@ -31,7 +31,7 @@ EndScriptData */ bool GOHello_go_barrel_old_hillsbrad(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp index f149ce50f77..ec01c32b5a3 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp @@ -46,7 +46,7 @@ bool GossipHello_npc_erozion(Player *player, Creature *_Creature) if( _Creature->isQuestGiver() ) player->PrepareQuestMenu( _Creature->GetGUID() ); - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance && pInstance->GetData(TYPE_BARREL_DIVERSION) != DONE && !player->HasItemCount(ITEM_ENTRY_BOMBS,1) ) player->ADD_GOSSIP_ITEM( 0, "I need a pack of Incendiary Bombs.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI { npc_thrall_old_hillsbradAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); m_creature->setActive(true); } @@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI if (uint64 TarethaGUID = pInstance->GetData64(DATA_TARETHA)) { if (Creature* Taretha = (Unit::GetCreature(*m_creature, TarethaGUID))) - ((npc_escortAI*)(Taretha->AI()))->Start(false, false, true, PlayerGUID); + CAST_AI(npc_escortAI, (Taretha->AI()))->Start(false, false, true, PlayerGUID); } //kill credit creature for quest @@ -486,7 +486,7 @@ CreatureAI* GetAI_npc_thrall_old_hillsbrad(Creature *_Creature) thrall_walkAI->FillPointMovementListForCreature(); - return (CreatureAI*)thrall_walkAI; + return thrall_walkAI; } bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) @@ -497,7 +497,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) player->SendPreparedQuest(_Creature->GetGUID()); } - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance ) { if (pInstance->GetData(TYPE_BARREL_DIVERSION) == DONE && !pInstance->GetData(TYPE_THRALL_EVENT)) @@ -523,7 +523,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature) bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); switch( action ) { case GOSSIP_ACTION_INFO_DEF+1: @@ -536,10 +536,10 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, DoScriptText(SAY_TH_START_EVENT_PART1, _Creature); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID()); - ((npc_escortAI*)(_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far - ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtEnd(false); - ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtFar(false); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far + CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtEnd(false); + CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtFar(false); break; case GOSSIP_ACTION_INFO_DEF+2: @@ -555,14 +555,14 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, DoScriptText(SAY_TH_START_EVENT_PART2, _Creature); - ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP(); break; case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); if(pInstance) pInstance->SetData(TYPE_THRALL_PART3,IN_PROGRESS); - ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP(); break; } return true; @@ -581,7 +581,7 @@ struct TRINITY_DLL_DECL npc_tarethaAI : public npc_escortAI { npc_tarethaAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -612,12 +612,12 @@ CreatureAI* GetAI_npc_taretha(Creature *_Creature) taretha_walkAI->FillPointMovementListForCreature(); - return (CreatureAI*)taretha_walkAI; + return taretha_walkAI; } bool GossipHello_npc_taretha(Player *player, Creature *_Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( pInstance && pInstance->GetData(TYPE_THRALL_PART3) == DONE && pInstance->GetData(TYPE_THRALL_PART4) == NOT_STARTED) { player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -628,7 +628,7 @@ bool GossipHello_npc_taretha(Player *player, Creature *_Creature) bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender, uint32 action) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if( action == GOSSIP_ACTION_INFO_DEF+1 ) { player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); @@ -649,7 +649,7 @@ bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender { Creature* Thrall = (Unit::GetCreature((*_Creature), ThrallGUID)); if(Thrall) - ((npc_thrall_old_hillsbradAI*)Thrall->AI())->StartWP(); + CAST_AI(npc_thrall_old_hillsbradAI, Thrall->AI())->StartWP(); } } } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp index cac1d386c62..5e9afdf5c33 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI { boss_fathomlord_karathressAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Advisors[0] = 0; Advisors[1] = 0; Advisors[2] = 0; @@ -305,7 +305,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI { boss_fathomguard_sharkkisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -349,8 +349,8 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI Karathress = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); if (Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); } } @@ -449,7 +449,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI { boss_fathomguard_tidalvessAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -479,7 +479,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI if (Karathress) if(!m_creature->isAlive() && Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventTidalvessDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventTidalvessDeath(); } } @@ -536,7 +536,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI Unit *SpitfireTotem = Unit::GetUnit( *m_creature, CREATURE_SPITFIRE_TOTEM ); if( SpitfireTotem ) { - ((Creature*)SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() ); + CAST_CRE(SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() ); } Spitfire_Timer = 60000; }else Spitfire_Timer -= diff; @@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI { boss_fathomguard_caribdisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -594,7 +594,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI if (Karathress) if(!m_creature->isAlive() && Karathress) - ((boss_fathomlord_karathressAI*)Karathress->AI())->EventCaribdisDeath(); + CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventCaribdisDeath(); } } @@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI Creature *Cyclone = m_creature->SummonCreature(CREATURE_CYCLONE, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), (rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000); if( Cyclone ) { - ((Creature*)Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f); + CAST_CRE(Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f); Cyclone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); Cyclone->setFaction(m_creature->getFaction()); Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_CYCLONE, true); diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp index cb91f063d9f..bd2365336f0 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp @@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI { boss_hydross_the_unstableAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp index beebbc631c0..8e5ed16688c 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp @@ -132,7 +132,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI { boss_lady_vashjAI (Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Intro = false; JustCreated = true; m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on creature create (no need do intro if wiped) @@ -583,14 +583,14 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI { mob_enchanted_elementalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; uint32 move; uint32 phase; float x, y, z; - Unit *Vashj; + Creature *Vashj; void Reset() { @@ -619,7 +619,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI } } if (pInstance) - Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); + Vashj = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); } void EnterCombat(Unit *who) { return; } @@ -657,7 +657,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI m_creature->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z); if(m_creature->GetDistance(MIDDLE_X, MIDDLE_Y, MIDDLE_Z) < 3) { - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_SURGE); + SpellEntry *spell = GET_SPELL(SPELL_SURGE); if( spell ) { uint8 eff_mask=0; @@ -672,7 +672,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } } - if(((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->InCombat == false || ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 2 || Vashj->isDead()) + if(CAST_AI(boss_lady_vashjAI, Vashj->AI())->InCombat == false || CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead()) { //call Unsummon() m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); @@ -688,7 +688,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI { mob_tainted_elementalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -710,7 +710,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI Vashj = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ))); if(Vashj) - ((boss_lady_vashjAI*)Vashj->AI())->EventTaintedElementalDeath(); + CAST_AI(boss_lady_vashjAI, Vashj->AI())->EventTaintedElementalDeath(); } } @@ -751,7 +751,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI { mob_toxic_sporebatAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EnterEvadeMode(); } @@ -827,7 +827,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI //check if vashj is death Unit *Vashj = NULL; Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)); - if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 3)) + if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && CAST_AI(boss_lady_vashjAI, CAST_CRE(Vashj)->AI())->Phase != 3)) { //remove m_creature->setDeathState(DEAD); @@ -883,7 +883,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI { mob_shield_generator_channelAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -928,7 +928,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets const& targets) { - ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL; if(!pInstance) { @@ -938,7 +938,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con Creature *Vashj = NULL; Vashj = (Unit::GetCreature((*player), pInstance->GetData64(DATA_LADYVASHJ))); - if(Vashj && ((boss_lady_vashjAI*)Vashj->AI())->Phase == 2) + if(Vashj && CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase == 2) { if(targets.getGOTarget() && targets.getGOTarget()->GetTypeId()==TYPEID_GAMEOBJECT) { @@ -974,7 +974,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con //get and remove channel Unit *Channel = NULL; - Channel = Unit::GetUnit((*Vashj), ((boss_lady_vashjAI*)Vashj->AI())->ShieldGeneratorChannel[channel_identifier]); + Channel = Unit::GetCreature(*Vashj, CAST_AI(boss_lady_vashjAI, Vashj->AI())->ShieldGeneratorChannel[channel_identifier]); if(Channel) { //call Unsummon() diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp index 8b9421dfd4c..1373be2ed6d 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp @@ -140,7 +140,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c) { m_creature->GetPosition(x,y,z); - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Demon = 0; for(uint8 i = 0; i < 3; i++)//clear guids @@ -326,10 +326,10 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI { if(InnderDemon[i] > 0 ) { - Unit* pUnit = Unit::GetUnit((*m_creature), InnderDemon[i]); + Creature* pUnit = Unit::GetCreature((*m_creature), InnderDemon[i]); if (pUnit && pUnit->isAlive()) { - Unit* pUnit_target = Unit::GetUnit((*pUnit), ((mob_inner_demonAI *)((Creature *)pUnit)->AI())->victimGUID); + Unit* pUnit_target = Unit::GetUnit(*pUnit, CAST_AI(mob_inner_demonAI, pUnit->AI())->victimGUID); if( pUnit_target && pUnit_target->isAlive()) { pUnit->CastSpell(pUnit_target, SPELL_CONSUMING_MADNESS, true); @@ -496,16 +496,16 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI if(tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != m_creature->getVictim()->GetGUID() && TargetList.size()<5) TargetList.push_back( tempTarget ); } - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_INSIDIOUS_WHISPER); + SpellEntry *spell = GET_SPELL(SPELL_INSIDIOUS_WHISPER); for(std::vector<Unit *>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr) { if( (*itr) && (*itr)->isAlive() ) { - Creature * demon = (Creature *)m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); + Creature * demon = m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); if(demon) { - ((ScriptedAI *)demon->AI())->AttackStart( (*itr) ); - ((mob_inner_demonAI *)demon->AI())->victimGUID = (*itr)->GetGUID(); + demon->AI()->AttackStart( (*itr) ); + CAST_AI(mob_inner_demonAI, demon->AI())->victimGUID = (*itr)->GetGUID(); uint8 eff_mask=0; for (int i=0; i<3; i++) @@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI { mob_greyheart_spellbinderAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance *)c->GetInstanceData());; + pInstance = (c->GetInstanceData());; leotherasGUID = 0; AddedBanish = false; } @@ -662,9 +662,9 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI if(pInstance) { pInstance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0); - Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID); + Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID); if(leotheras && leotheras->isAlive()) - ((boss_leotheras_the_blindAI*)leotheras->AI())->CheckChannelers(false); + CAST_AI(boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(false); } } @@ -687,7 +687,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI { if(leotherasGUID) { - Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID); + Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID); if(leotheras && leotheras->isAlive()) DoCast(leotheras, BANISH_BEAM); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp index 254a4d1d899..3fa97e6b608 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp @@ -76,8 +76,8 @@ struct TRINITY_DLL_DECL boss_the_lurker_belowAI : public Scripted_NoMovementAI { boss_the_lurker_belowAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SPOUT_ANIM); + pInstance = (c->GetInstanceData()); + SpellEntry *TempSpell = GET_SPELL(SPELL_SPOUT_ANIM); if(TempSpell) { TempSpell->Effect[0] = 0;//remove all spell effect, only anim is needed @@ -403,7 +403,7 @@ struct TRINITY_DLL_DECL mob_coilfang_ambusherAI : public Scripted_NoMovementAI { mob_coilfang_ambusherAI(Creature *c) : Scripted_NoMovementAI(c) { - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHOOT); + SpellEntry *TempSpell = GET_SPELL(SPELL_SHOOT); if(TempSpell) TempSpell->Effect[0] = 2;//change spell effect from weapon % dmg to simple phisical dmg } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp index f8d27df5bb0..5038fe09334 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp @@ -100,7 +100,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI { boss_morogrim_tidewalkerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI void EnterCombat(Unit *who) { - PlayerList = &((InstanceMap*)m_creature->GetMap())->GetPlayers(); + PlayerList = &m_creature->GetMap()->GetPlayers(); Playercount = PlayerList->getSize(); StartEvent(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp index 8aa759a87c8..4e104fc2846 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp @@ -37,7 +37,7 @@ EndScriptData */ bool GOHello_go_bridge_console(Player *player, GameObject* go) { - ScriptedInstance* pInstance = (ScriptedInstance*)go->GetInstanceData(); + ScriptedInstance* pInstance = go->GetInstanceData(); if(!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp index 648781f6606..c8bbe986176 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI { boss_thespiaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp index 14dae22fdc2..50d919d3e2c 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI { boss_mekgineer_steamriggerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -199,7 +199,7 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI { mob_steamrigger_mechanicAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp index fb8a00865ed..f84b6864641 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL mob_naga_distillerAI : public ScriptedAI { mob_naga_distillerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -90,7 +90,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI { boss_warlord_kalithreshAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI { DoScriptText(SAY_REGEN, m_creature); DoCast(m_creature,SPELL_WARLORDS_RAGE); - ((mob_naga_distillerAI*)distiller->AI())->StartRageGen(m_creature); + CAST_AI(mob_naga_distillerAI, distiller->AI())->StartRageGen(m_creature); } Rage_Timer = 3000+rand()%15000; }else Rage_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp index d375d073c35..55ef0716638 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp @@ -38,7 +38,7 @@ EndScriptData */ bool GOHello_go_main_chambers_access_panel(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp index 72c7992e109..62bcf62a2df 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp @@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI { if(LevitatedTarget_Timer < diff) { - if(Unit* target = (Unit*)Unit::GetUnit(*m_creature, LevitatedTarget)) + if(Unit* target = Unit::GetUnit(*m_creature, LevitatedTarget)) { if(!target->HasAura(SPELL_LEVITATE)) { diff --git a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp index 2d13ce8d347..72498f388ec 100644 --- a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp +++ b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp @@ -196,7 +196,7 @@ struct TRINITY_DLL_DECL instance_deadmines : public ScriptedInstance bool ItemUse_item_defias_gunpowder(Player *player, Item* _Item, SpellCastTargets const& targets) { - ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL; if(!pInstance) { diff --git a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp index 6fc6a53651b..9e88ac0becc 100644 --- a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp +++ b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL mobs_risen_husk_spiritAI : public ScriptedAI void DamageTaken(Unit *done_by, uint32 &damage) { if( done_by->GetTypeId() == TYPEID_PLAYER ) - if( damage >= m_creature->GetHealth() && ((Player*)done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE ) + if( damage >= m_creature->GetHealth() && CAST_PLR(done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE ) m_creature->CastSpell(done_by,SPELL_SUMMON_RESTLESS_APPARITION,false); } diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp index 30511d45969..5ec53a0cdcb 100644 --- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp +++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp @@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL npc_unworthy_initiateAI : public ScriptedAI { if(m_creature->GetEntry() != 29519) if(killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)killer)->KilledMonster(29519,m_creature->GetGUID()); + CAST_PLR(killer)->KilledMonster(29519,m_creature->GetGUID()); } void AddEquipp() @@ -284,7 +284,7 @@ void npc_unworthy_initiateAI::UpdateAI(const uint32 diff) if(go_prison) go_prison->ResetDoorOrButton(); - ((npc_unworthy_initiate_anchorAI*)trigger->AI())->SetTarget(m_creature->GetGUID()); + CAST_AI(npc_unworthy_initiate_anchorAI, trigger->AI())->SetTarget(m_creature->GetGUID()); trigger->CastSpell(m_creature,SPELL_SOUL_PRISON_CHAIN,true); anchor = trigger->GetGUID(); } @@ -367,12 +367,12 @@ bool GOHello_go_acherus_soul_prison(Player *player, GameObject* _GO) Unit* prison_anchor = finder->FindNearestCreature(29521, 15); if(!prison_anchor) return false; - uint64 owner = ((npc_unworthy_initiate_anchorAI*)((Creature*)prison_anchor)->AI())->GetTarget(); + uint64 owner = CAST_AI(npc_unworthy_initiate_anchorAI, CAST_CRE(prison_anchor)->AI())->GetTarget(); Creature* prisoner = Creature::GetCreature((*player),owner); if(prisoner) { - ((npc_unworthy_initiateAI*)(prisoner->AI()))->EventStart((Creature*)prison_anchor,player); + CAST_AI(npc_unworthy_initiateAI, (prisoner->AI()))->EventStart(CAST_CRE(prison_anchor),player); } return false; @@ -422,7 +422,7 @@ struct TRINITY_DLL_DECL npc_death_knight_initiateAI : public SpellAI { if(!me->HasAura(7267)) // beg aura has faded { - ((Player*)me->getVictim())->KilledMonster(29025,m_creature->GetGUID()); + CAST_PLR(me->getVictim())->KilledMonster(29025,m_creature->GetGUID()); EnterEvadeMode(); } return; @@ -480,7 +480,10 @@ bool GossipSelect_npc_death_knight_initiate(Player *player, Creature *_Creature, if( action == GOSSIP_ACTION_INFO_DEF ) { player->CastSpell(player, SPELL_DUEL_FLAG, true); - _Creature->setFaction(10); // make him yellow, not red (will be killed by other npc) + if (player->GetTeam() == HORDE ) // Check the player team, then choose faction + _Creature->setFaction(1); + else + _Creature->setFaction(2); _Creature->AI()->AttackStart(player); } return true; @@ -498,20 +501,20 @@ struct TRINITY_DLL_DECL npc_salanar_the_horsemanAI : public ScriptedAI { ScriptedAI::MoveInLineOfSight(who); - if(who->GetTypeId() == TYPEID_UNIT && ((Creature*)who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f)) + if(who->GetTypeId() == TYPEID_UNIT && CAST_CRE(who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f)) { if( Unit *charmer = who->GetCharmer() ) { if( charmer->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE ) - ((Player*)charmer)->KilledMonster(28767, me->GetGUID()); - else if( ((Player*)charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE ) - ((Player*)charmer)->GroupEventHappens(12687, me); - ((Player*)charmer)->ExitVehicle(); + if( CAST_PLR(charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(charmer)->KilledMonster(28767, me->GetGUID()); + else if( CAST_PLR(charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(charmer)->GroupEventHappens(12687, me); + CAST_PLR(charmer)->ExitVehicle(); //without this we can see npc kill the horse - //who->setDeathState(DEAD); - //((Creature*)who)->Respawn(); + who->setDeathState(DEAD); + CAST_CRE(who)->Respawn(); } } } @@ -531,6 +534,23 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI { npc_ros_dark_riderAI(Creature *c) : ScriptedAI(c) {} + void MoveInLineOfSight(Unit *who) + { + if(me->getVictim()) + return; + + // this should be before next one otherwise he may enter vehicle again + if(!me->m_Vehicle && who->GetEntry() == 28782 && CAST_CRE(who)->isVehicle() && !who->GetCharmerGUID()) + me->EnterVehicle((Vehicle*)who); + + ScriptedAI::MoveInLineOfSight(who); + } + + void CombatStart(Unit *who) + { + me->ExitVehicle(); + } + void Reset() { Creature* deathcharger = me->FindNearestCreature(28782, 30); @@ -548,7 +568,6 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI { deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); deathcharger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - deathcharger->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); deathcharger->setFaction(2096); } } diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp index 8aeb6e53810..aaded603f80 100644 --- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp +++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp @@ -89,7 +89,7 @@ CreatureAI* GetAI_npc_prospector_anvilward(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } bool GossipHello_npc_prospector_anvilward(Player *player, Creature *_Creature) @@ -111,7 +111,7 @@ bool GossipSelect_npc_prospector_anvilward(Player *player, Creature *_Creature, break; case GOSSIP_ACTION_INFO_DEF+2: player->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(_Creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, false, player->GetGUID()); break; } return true; @@ -343,7 +343,7 @@ struct TRINITY_DLL_DECL master_kelerun_bloodmournAI : public ScriptedAI Creature* paladinSpawn; paladinSpawn = (Unit::GetCreature((*m_creature), paladinGuid[paladinPhase])); if ( paladinSpawn ) { - ((npc_secondTrialAI*)paladinSpawn->AI())->Activate(m_creature->GetGUID()); + CAST_AI(npc_secondTrialAI, paladinSpawn->AI())->Activate(m_creature->GetGUID()); switch(paladinPhase) { case 0: @@ -405,7 +405,7 @@ bool GossipHello_master_kelerun_bloodmourn(Player *player, Creature *_Creature) // Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest. // !not sure if this really works! - if ( ((master_kelerun_bloodmournAI*)_Creature->AI())->questPhase == 0 ) { + if ( CAST_AI(master_kelerun_bloodmournAI, _Creature->AI())->questPhase == 0 ) { player->PrepareQuestMenu(_Creature->GetGUID()); player->SendPreparedQuest(_Creature->GetGUID()); } @@ -418,7 +418,7 @@ bool QuestAccept_master_kelerun_bloodmourn(Player *player, Creature *creature, Q { // One Player exclusive quest, wait for user go activation if(quest->GetQuestId() == QUEST_SECOND_TRIAL ) - ((master_kelerun_bloodmournAI*)creature->AI())->questPhase = 1; + CAST_AI(master_kelerun_bloodmournAI, creature->AI())->questPhase = 1; return true; } @@ -444,12 +444,12 @@ void npc_secondTrialAI::JustDied(Unit* Killer) { Summoner = (Unit::GetCreature((*m_creature), summonerGuid)); if ( Summoner ) - ((master_kelerun_bloodmournAI*)Summoner->AI())->SecondTrialKill(); + CAST_AI(master_kelerun_bloodmournAI, Summoner->AI())->SecondTrialKill(); // last kill quest complete for group if ( m_creature->GetEntry() == CHAMPION_SUNSTRIKER ) { - if( Group *pGroup = ((Player*)Killer)->GetGroup() ) + if( Group *pGroup = CAST_PLR(Killer)->GetGroup() ) { for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { @@ -461,8 +461,8 @@ void npc_secondTrialAI::JustDied(Unit* Killer) { } } else { - if ( ((Player*)Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killer)->CompleteQuest( QUEST_SECOND_TRIAL ); + if ( CAST_PLR(Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killer)->CompleteQuest( QUEST_SECOND_TRIAL ); } } } @@ -472,8 +472,8 @@ void npc_secondTrialAI::KilledUnit(Unit* Killed) { if ( Killed->GetTypeId() == TYPEID_PLAYER ) { - if ( ((Player*)Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killed)->FailQuest(QUEST_SECOND_TRIAL); + if ( CAST_PLR(Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killed)->FailQuest(QUEST_SECOND_TRIAL); } } @@ -514,7 +514,7 @@ bool GOHello_go_second_trial(Player *player, GameObject* _GO) cell_lock->Visit(cell_lock, grid_unit_searcher, *(_GO->GetMap())); if ( event_controller ) - ((master_kelerun_bloodmournAI*)event_controller->AI())->StartEvent(); + CAST_AI(master_kelerun_bloodmournAI, event_controller->AI())->StartEvent(); return true; } @@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_UNEXPECTED_RESULT); + CAST_PLR(player)->FailQuest(QUEST_UNEXPECTED_RESULT); } } @@ -576,7 +576,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI { Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->CompleteQuest(QUEST_UNEXPECTED_RESULT); + CAST_PLR(player)->CompleteQuest(QUEST_UNEXPECTED_RESULT); } } @@ -594,8 +594,8 @@ bool QuestAccept_npc_apprentice_mirveda(Player* player, Creature* creature, Ques { if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT) { - ((npc_apprentice_mirvedaAI*)creature->AI())->Summon = true; - ((npc_apprentice_mirvedaAI*)creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->Summon = true; + CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID(); } return true; } @@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { if( who->GetTypeId() == TYPEID_PLAYER && !m_creature->canStartAttack(who) && !Progress) { - if( ((Player*)who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) @@ -680,7 +680,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_POWERING_OUR_DEFENSES); + CAST_PLR(player)->FailQuest(QUEST_POWERING_OUR_DEFENSES); } } @@ -694,7 +694,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI { Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES); + CAST_PLR(player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES); } m_creature->DealDamage(m_creature,m_creature->GetHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); m_creature->RemoveCorpse(); diff --git a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp index e43bf6e3a6c..be57b8c8d88 100644 --- a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp +++ b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp @@ -173,7 +173,7 @@ CreatureAI* GetAI_npc_oox22fe(Creature* pCreature) oox22AI->FillPointMovementListForCreature(); - return (CreatureAI*)oox22AI; + return oox22AI; } bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* pQuest) @@ -190,7 +190,7 @@ bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* if (pPlayer->GetTeam() == HORDE) pCreature->setFaction(FACTION_ESCORTEE_H); - ((npc_escortAI*)(pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID()); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID()); } return true; diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp index c0733579f27..9d4e81ca241 100644 --- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp +++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp @@ -126,7 +126,7 @@ bool GOHello_gilded_brazier(Player *player, GameObject* _GO) { Creature *Stillblade = player->SummonCreature(17716, 8106.11, -7542.06, 151.775, 3.02598, TEMPSUMMON_DEAD_DESPAWN, 60000); if (Stillblade) - ((CreatureAI*)Stillblade->AI())->AttackStart(player); + (Stillblade->AI())->AttackStart(player); } return true; }; @@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI case 25: m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); break; case 30: if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature); break; case 32: m_creature->SetOrientation(2.978281); @@ -232,7 +232,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS); + CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS); } } @@ -247,7 +247,7 @@ bool QuestAccept_npc_ranger_lilatha(Player* player, Creature* creature, Quest co if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -258,7 +258,7 @@ CreatureAI* GetAI_npc_ranger_lilathaAI(Creature *_Creature) ranger_lilathaAI->FillPointMovementListForCreature(); - return (CreatureAI*)ranger_lilathaAI; + return ranger_lilathaAI; } void AddSC_ghostlands() diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp index 34400549822..0335799b4e9 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_gruulAI : public ScriptedAI { boss_gruulAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp index 71ab145ff8e..7c1741fb77c 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp @@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI { boss_high_king_maulgarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); for(uint8 i = 0; i < 4; ++i) Council[i] = 0; } @@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI { boss_olm_the_summonerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 DarkDecay_Timer; @@ -341,7 +341,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -406,7 +406,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI { boss_kiggler_the_crazedAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterPolymorph_Timer; @@ -445,7 +445,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -516,7 +516,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI { boss_blindeye_the_seerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterPowerWordShield_Timer; @@ -553,7 +553,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); @@ -614,7 +614,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI { boss_krosh_firehandAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 GreaterFireball_Timer; @@ -651,7 +651,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR))); if(Maulgar) - ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath(); + CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath(); if(CheckAllBossDied(pInstance, m_creature)) pInstance->SetData(DATA_MAULGAREVENT, DONE); diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp index f274693d10e..10cdbdba862 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp @@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI { boss_kelidan_the_breakerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); for(int i=0; i<5; ++i) Channelers[i] = 0; } @@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI DoScriptText(SAY_NOVA, m_creature); - if(SpellEntry *nova = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BURNING_NOVA)) + if(SpellEntry *nova = GET_SPELL(SPELL_BURNING_NOVA)) { uint8 eff_mask=0; for (int i=0; i<3; i++) @@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI { mob_shadowmoon_channelerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -292,7 +292,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI void EnterCombat(Unit* who) { if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) - ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerEngaged(who); + CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerEngaged(who); if (m_creature->IsNonMeleeSpellCasted(false)) m_creature->InterruptNonMeleeSpells(true); DoStartMovement(who); @@ -301,7 +301,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI void JustDied(Unit* Killer) { if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) - ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerDied(Killer); + CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(Killer); } void UpdateAI(const uint32 diff) @@ -313,7 +313,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI if (!m_creature->IsNonMeleeSpellCasted(false)) if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) { - uint64 channeler = ((boss_kelidan_the_breakerAI*)Kelidan->AI())->GetChanneled(m_creature); + uint64 channeler = CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(m_creature); if(Unit *channeled = Unit::GetUnit(*m_creature, channeler)) DoCast(channeled,SPELL_CHANNELING); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp index 89de9b9188d..72e614dbb1b 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp @@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI Unit *victim = m_creature->getVictim(); if(summoned->GetEntry() == ENTRY_NAZAN) { - ((boss_nazanAI *)summoned->AI())->VazrudenGUID = VazrudenGUID; + CAST_AI(boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID; summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); summoned->SetSpeed(MOVE_FLIGHT, 2.5); if(victim) @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL mob_hellfire_sentryAI : public ScriptedAI void JustDied(Unit* who) { if(Creature *herald = me->FindNearestCreature(ENTRY_VAZRUDEN_HERALD,150)) - ((boss_vazruden_the_heraldAI *)herald->AI())->SentryDownBy(who); + CAST_AI(boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(who); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp index 96956790019..69084fb2d14 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI } } - void EnterCombat(Unit*) {DoZoneInCombat();} + void EnterCombat(Unit* who) {DoZoneInCombat();} void AttackStart(Unit *who) {if(!trigger) ScriptedAI::AttackStart(who);} void MoveInLineOfSight(Unit *who) {if(!trigger) ScriptedAI::MoveInLineOfSight(who);} @@ -170,19 +170,19 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI { boss_magtheridonAI(Creature *c) : ScriptedAI(c) { - pInstance =(ScriptedInstance*)m_creature->GetInstanceData(); + pInstance =m_creature->GetInstanceData(); m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); // target 7, random target with certain entry spell, need core fix SpellEntry *TempSpell; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BLAZE_TARGET); + TempSpell = GET_SPELL(SPELL_BLAZE_TARGET); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 6) { TempSpell->EffectImplicitTargetA[0] = 6; TempSpell->EffectImplicitTargetB[0] = 0; } - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_QUAKE_TRIGGER); + TempSpell = GET_SPELL(SPELL_QUAKE_TRIGGER); if(TempSpell && TempSpell->EffectTriggerSpell[0] != SPELL_QUAKE_KNOCKBACK) { TempSpell->EffectTriggerSpell[0] = SPELL_QUAKE_KNOCKBACK; @@ -289,7 +289,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI DoScriptText(SAY_DEATH, m_creature); } - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void AttackStart(Unit *who) { @@ -368,7 +368,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); if(summon) { - ((mob_abyssalAI*)summon->AI())->SetTrigger(2); + CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(2); m_creature->CastSpell(summon, SPELL_BLAZE_TARGET, true); summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } @@ -398,7 +398,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI float x, y, z; target->GetPosition(x, y, z); Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); - if(summon) ((mob_abyssalAI*)summon->AI())->SetTrigger(1); + if(summon) CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(1); } Debris_Timer = 10000; }else Debris_Timer -= diff; @@ -412,7 +412,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI { mob_hellfire_channelerAI(Creature *c) : ScriptedAI(c) { - pInstance =(ScriptedInstance*)m_creature->GetInstanceData(); + pInstance =m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI void JustSummoned(Creature *summon) {summon->AI()->AttackStart(m_creature->getVictim());} - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void DamageTaken(Unit*, uint32 &damage) { @@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI m_creature->CastSpell(m_creature, SPELL_SOUL_TRANSFER, true); } - void JustDied(Unit*) + void JustDied(Unit* who) { if(pInstance) pInstance->SetData(DATA_CHANNELER_EVENT, DONE); @@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI //Manticron Cube bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance =(ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance =_GO->GetInstanceData(); if(!pInstance) return true; if(pInstance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true; Creature *Magtheridon =Unit::GetCreature(*_GO, pInstance->GetData64(DATA_MAGTHERIDON)); @@ -516,7 +516,7 @@ bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO) player->InterruptNonMeleeSpells(false); player->CastSpell(player, SPELL_SHADOW_GRASP, true); player->CastSpell(player, SPELL_SHADOW_GRASP_VISUAL, false); - ((boss_magtheridonAI*)Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID()); + CAST_AI(boss_magtheridonAI, Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID()); return true; } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp index 2506d2a56aa..6eeb07d1448 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI { boss_grand_warlock_nethekurseAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI { mob_fel_orc_convertAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE)); if (pKurse && m_creature->GetDistance(pKurse) < 45.0f) { - ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonAggro(); + CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonAggro(); if (pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS ) return; @@ -350,7 +350,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI { Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE)); if (pKurse) - ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonDeath(); + CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonDeath(); } } } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp index a225293a48e..bdedc6b4fde 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI { boss_warbringer_omroggAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI DoScriptText(YELL_DIE_L, Left); - ((mob_omrogg_headsAI*)((Creature*)Right)->AI())->DoDeathYell(); + CAST_AI(mob_omrogg_headsAI, CAST_CRE(Right)->AI())->DoDeathYell(); } if (pInstance) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp index 562783b93fb..276089a91ee 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { boss_warchief_kargath_bladefistAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { (*temp).GetMotionMaster()->Clear(true); m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - ((Creature*)temp)->RemoveCorpse(); + CAST_CRE(temp)->RemoveCorpse(); } } adds.clear(); @@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI { (*temp).GetMotionMaster()->Clear(true); m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - ((Creature*)temp)->RemoveCorpse(); + CAST_CRE(temp)->RemoveCorpse(); } } assassins.clear(); diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp index 9bf0e77420f..a32112ed709 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp @@ -226,14 +226,14 @@ CreatureAI* GetAI_npc_wounded_blood_elf(Creature* pCreature) welfAI->FillPointMovementListForCreature(); - return (CreatureAI*)welfAI; + return welfAI; } bool QuestAccept_npc_wounded_blood_elf(Player* player, Creature* creature, Quest const* quest) { if (quest->GetQuestId() == QUEST_ROAD_TO_FALCON_WATCH) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); // Change faction so mobs attack creature->setFaction(775); } diff --git a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp index 1d27afe8977..51b22fd934a 100644 --- a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp +++ b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp @@ -111,8 +111,8 @@ struct TRINITY_DLL_DECL npc_greengill_slaveAI : public ScriptedAI if(PlayerGUID) { Unit* plr = Unit::GetUnit((*m_creature), PlayerGUID); - if(plr && ((Player*)plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE) - ((Player*)plr)->KilledMonster(25086, m_creature->GetGUID()); + if(plr && CAST_PLR(plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE) + CAST_PLR(plr)->KilledMonster(25086, m_creature->GetGUID()); } DoCast(m_creature, ENRAGE); Unit* Myrmidon = me->FindNearestCreature(DM, 70); diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp index d60e057c296..08df637eb04 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp @@ -284,7 +284,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI Creature *pMidnight = Unit::GetCreature(*m_creature, Midnight); if(pMidnight && pMidnight->GetTypeId() == TYPEID_UNIT) { - ((boss_midnightAI*)(pMidnight->AI()))->Mount(m_creature); + CAST_AI(boss_midnightAI, (pMidnight->AI()))->Mount(m_creature); m_creature->SetHealth(pMidnight->GetHealth()); DoResetThreat(); } @@ -303,7 +303,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI void boss_midnightAI::SetMidnight(Creature *pAttumen, uint64 value) { - ((boss_attumenAI*)pAttumen->AI())->Midnight = value; + CAST_AI(boss_attumenAI, pAttumen->AI())->Midnight = value; } CreatureAI* GetAI_boss_attumen(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp index f00b3650e9f..9a8b0bf27b6 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp @@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI { AddId[i] = 0; } - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -340,7 +340,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI for(uint8 i = 0; i < 4; ++i) GuestGUID[i] = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() @@ -360,7 +360,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI { for(uint8 i = 0; i < 3; ++i) { - uint64 GUID = ((boss_moroesAI*)Moroes->AI())->AddGUID[i]; + uint64 GUID = CAST_AI(boss_moroesAI, Moroes->AI())->AddGUID[i]; if(GUID && GUID != m_creature->GetGUID()) GuestGUID[i+1] = GUID; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp index c4e666d45f7..12c7c3fa2ad 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp @@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI { boss_nightbaneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Intro = true; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp index 882fbe7b7da..66005746bbd 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp @@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL netherspite_infernalAI : public ScriptedAI { Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar); if(pMalchezaar) - ((Creature*)pMalchezaar)->AI()->KilledUnit(who); + CAST_CRE(pMalchezaar)->AI()->KilledUnit(who); } void SpellHit(Unit *who, const SpellEntry *spell) @@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI { boss_malchezaarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -380,8 +380,8 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI Infernal->SetUInt32Value(UNIT_FIELD_DISPLAYID, INFERNAL_MODEL_INVISIBLE); Infernal->setFaction(m_creature->getFaction()); if(point) - ((netherspite_infernalAI*)Infernal->AI())->point=point; - ((netherspite_infernalAI*)Infernal->AI())->malchezaar=m_creature->GetGUID(); + CAST_AI(netherspite_infernalAI, Infernal->AI())->point=point; + CAST_AI(netherspite_infernalAI, Infernal->AI())->malchezaar=m_creature->GetGUID(); infernals.push_back(Infernal->GetGUID()); DoCast(Infernal, SPELL_INFERNAL_RELAY); @@ -621,7 +621,7 @@ void netherspite_infernalAI::Cleanup() Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar); if(pMalchezaar && pMalchezaar->isAlive()) - ((boss_malchezaarAI*)((Creature*)pMalchezaar)->AI())->Cleanup(m_creature, point); + CAST_AI(boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(m_creature, point); } CreatureAI* GetAI_netherspite_infernal(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp index d358f9585c1..015a19087ab 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp @@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI { boss_aranAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp index a77f8d052b1..24981a903c4 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp @@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI { mob_kilrekAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI { for(uint8 i = 0; i < 2; ++i) PortalGUID[i] = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI Creature* Chains = m_creature->SummonCreature(CREATURE_DEMONCHAINS, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 21000); if(Chains) { - ((mob_demon_chainAI*)Chains->AI())->SacrificeGUID = target->GetGUID(); + CAST_AI(mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID(); Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true); switch(rand()%2) { diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp index 67dd35b46a0..5ae57e95614 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp @@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_dorotheeAI : public ScriptedAI { boss_dorotheeAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -220,7 +220,7 @@ struct TRINITY_DLL_DECL mob_titoAI : public ScriptedAI Creature* Dorothee = (Unit::GetCreature((*m_creature), DorotheeGUID)); if(Dorothee && Dorothee->isAlive()) { - ((boss_dorotheeAI*)Dorothee->AI())->TitoDied = true; + CAST_AI(boss_dorotheeAI, Dorothee->AI())->TitoDied = true; DoScriptText(SAY_DOROTHEE_TITO_DEATH, Dorothee); } } @@ -247,7 +247,7 @@ void boss_dorotheeAI::SummonTito() if(Tito) { DoScriptText(SAY_DOROTHEE_SUMMON, m_creature); - ((mob_titoAI*)Tito->AI())->DorotheeGUID = m_creature->GetGUID(); + CAST_AI(mob_titoAI, Tito->AI())->DorotheeGUID = m_creature->GetGUID(); Tito->AI()->AttackStart(m_creature->getVictim()); SummonedTito = true; TitoDied = false; @@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_strawmanAI : public ScriptedAI { boss_strawmanAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -355,7 +355,7 @@ struct TRINITY_DLL_DECL boss_tinheadAI : public ScriptedAI { boss_tinheadAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -448,7 +448,7 @@ struct TRINITY_DLL_DECL boss_roarAI : public ScriptedAI { boss_roarAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -540,7 +540,7 @@ struct TRINITY_DLL_DECL boss_croneAI : public ScriptedAI { boss_croneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -729,7 +729,7 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI { boss_bigbadwolfAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -920,7 +920,7 @@ struct TRINITY_DLL_DECL boss_julianneAI : public ScriptedAI { boss_julianneAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EntryYellTimer = 1000; AggroYellTimer = 10000; } @@ -1036,7 +1036,7 @@ struct TRINITY_DLL_DECL boss_romuloAI : public ScriptedAI { boss_romuloAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); EntryYellTimer = 8000; AggroYellTimer = 15000; } @@ -1174,8 +1174,8 @@ void boss_julianneAI::DamageTaken(Unit* done_by, uint32 &damage) { PretendToDie(m_creature); IsFakingDeath = true; - ((boss_romuloAI*)Romulo->AI())->ResurrectTimer = 10000; - ((boss_romuloAI*)Romulo->AI())->JulianneDead = true; + CAST_AI(boss_romuloAI, Romulo->AI())->ResurrectTimer = 10000; + CAST_AI(boss_romuloAI, Romulo->AI())->JulianneDead = true; damage = 0; return; } @@ -1199,8 +1199,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage) if (Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID))) { - ((boss_julianneAI*)Julianne->AI())->RomuloDead = true; - ((boss_julianneAI*)Julianne->AI())->ResurrectSelfTimer = 10000; + CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true; + CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectSelfTimer = 10000; } damage = 0; @@ -1227,8 +1227,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage) { PretendToDie(m_creature); IsFakingDeath = true; - ((boss_julianneAI*)Julianne->AI())->ResurrectTimer = 10000; - ((boss_julianneAI*)Julianne->AI())->RomuloDead = true; + CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectTimer = 10000; + CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true; damage = 0; return; } @@ -1279,8 +1279,8 @@ void boss_julianneAI::UpdateAI(const uint32 diff) if(Romulo) { RomuloGUID = Romulo->GetGUID(); - ((boss_romuloAI*)Romulo->AI())->JulianneGUID = m_creature->GetGUID(); - ((boss_romuloAI*)Romulo->AI())->Phase = PHASE_ROMULO; + CAST_AI(boss_romuloAI, Romulo->AI())->JulianneGUID = m_creature->GetGUID(); + CAST_AI(boss_romuloAI, Romulo->AI())->Phase = PHASE_ROMULO; Romulo->setFaction(16); if(m_creature->getVictim()) @@ -1317,11 +1317,11 @@ void boss_julianneAI::UpdateAI(const uint32 diff) if(ResurrectTimer < diff) { Creature* Romulo = (Unit::GetCreature((*m_creature), RomuloGUID)); - if(Romulo && ((boss_romuloAI*)Romulo->AI())->IsFakingDeath) + if(Romulo && CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath) { DoScriptText(SAY_JULIANNE_RESURRECT, m_creature); Resurrect(Romulo); - ((boss_romuloAI*)Romulo->AI())->IsFakingDeath = false; + CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath = false; RomuloDead = false; ResurrectTimer = 10000; } @@ -1371,11 +1371,11 @@ void boss_romuloAI::UpdateAI(const uint32 diff) if(ResurrectTimer < diff) { Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID)); - if(Julianne && ((boss_julianneAI*)Julianne->AI())->IsFakingDeath) + if(Julianne && CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath) { DoScriptText(SAY_ROMULO_RESURRECT, m_creature); Resurrect(Julianne); - ((boss_julianneAI*)Julianne->AI())->IsFakingDeath = false; + CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath = false; JulianneDead = false; ResurrectTimer = 10000; } diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index 746de59cbf9..e984bea31c2 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI npc_barnesAI(Creature* c) : npc_escortAI(c) { RaidWiped = false; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -372,13 +372,13 @@ CreatureAI* GetAI_npc_barnesAI(Creature* _Creature) for(uint8 i = 0; i < 6; ++i) Barnes_AI->AddWaypoint(i, StageLocations[i][0], StageLocations[i][1], 90.465); - return ((CreatureAI*)Barnes_AI); + return (Barnes_AI); } bool GossipHello_npc_barnes(Player* player, Creature* _Creature) { // Check for death of Moroes. - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance && (pInstance->GetData(DATA_MOROES_EVENT) >= DONE)) { player->ADD_GOSSIP_ITEM(0, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -390,7 +390,7 @@ bool GossipHello_npc_barnes(Player* player, Creature* _Creature) player->ADD_GOSSIP_ITEM(5, OZ_GM_GOSSIP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); } - if(!((npc_barnesAI*)_Creature->AI())->RaidWiped) + if(!CAST_AI(npc_barnesAI, _Creature->AI())->RaidWiped) player->SEND_GOSSIP_MENU(8970, _Creature->GetGUID()); else player->SEND_GOSSIP_MENU(8975, _Creature->GetGUID()); @@ -409,21 +409,21 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender, break; case GOSSIP_ACTION_INFO_DEF+2: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->StartEvent(); + CAST_AI(npc_barnesAI, _Creature->AI())->StartEvent(); break; case GOSSIP_ACTION_INFO_DEF+3: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_OZ; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_OZ; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_OZ",player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+4: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_HOOD; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_HOOD; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_HOOD",player->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+5: player->CLOSE_GOSSIP_MENU(); - ((npc_barnesAI*)_Creature->AI())->Event = EVENT_RAJ; + CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_RAJ; outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_RAJ",player->GetGUID()); break; } @@ -441,7 +441,7 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender, bool GossipHello_npc_berthold(Player* player, Creature* _Creature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); // Check if Shade of Aran is dead or not if(pInstance && (pInstance->GetData(DATA_SHADEOFARAN_EVENT) >= DONE)) player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -486,7 +486,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI { npc_image_of_medivhAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -557,21 +557,21 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI return 10000; case 2: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL); return 20000; case 3: m_creature->MonsterYell(SAY_DIALOG_MEDIVH_3,LANG_UNIVERSAL,NULL); return 10000; case 4: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL); return 20000; case 5: m_creature->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, NULL); return 20000; case 6: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL); return 10000; case 7: FireArcanagosTimer = 500; @@ -589,7 +589,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI return 1000; case 11: if(arca) - ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL); + CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL); return 5000; case 12: arca->GetMotionMaster()->MovePoint(0, -11010.82,-1761.18, 156.47); @@ -606,7 +606,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI if(map->IsDungeon()) { - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); + InstanceMap::PlayerList const &PlayerList = map->GetPlayers(); for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { if(i->getSource()->isAlive()) diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp index 1d27ddd6e2d..fe62b55f0a4 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI { boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } ScriptedInstance* pInstance; @@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI { mob_felkael_phoenixAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp index ead9e36eed6..e101d9713c5 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp @@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI { boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } @@ -358,7 +358,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI boss_priestess_guestAI(Creature* c) : ScriptedAI(c) { Group.clear(); - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AcquireGUIDs(); } @@ -392,7 +392,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI { pInstance->SetData(DATA_DELRISSA_DEATH_COUNT, 1); - ((boss_priestess_delrissaAI*)Delrissa->AI())->KilledLackey(); + CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->KilledLackey(); if (!Delrissa->isAlive() && pInstance->GetData(DATA_DELRISSA_DEATH_COUNT) > 3) Delrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); @@ -423,7 +423,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI Creature* Delrissa = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_DELRISSA))); if (Delrissa) { - Group = ((boss_priestess_delrissaAI*)Delrissa->AI())->Adds; + Group = CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->Adds; Add* dAdd = new Add(Delrissa->GetEntry(), Delrissa->GetGUID()); Group.push_back(dAdd); } @@ -649,13 +649,13 @@ struct TRINITY_DLL_DECL boss_ellris_duskhallowAI : public boss_priestess_guestAI /*void mob_fizzleAI::JustDied(Unit* killer) { if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID))) - ((boss_ellris_duskhallowAI*)Ellris->AI())->ImpGUID = 0; + CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->ImpGUID = 0; } void mob_fizzleAI::KilledUnit(Unit* victim) { if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID))) - ((boss_ellris_duskhallowAI*)Ellris->AI())->KilledUnit(victim); + CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->KilledUnit(victim); }*/ #define SPELL_KNOCKDOWN 11428 @@ -984,7 +984,7 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI Creature* Sliver = m_creature->SummonCreature(CREATURE_SLIVER, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); if (Sliver) { - //((mob_sliverAI*)Sliver->AI())->GaraxxasGUID = m_creature->GetGUID(); + //CAST_AI(mob_sliverAI, Sliver->AI())->GaraxxasGUID = m_creature->GetGUID(); //SliverGUID = Sliver->GetGUID(); HasSummonedSliver = true; } @@ -1043,13 +1043,13 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI /*void mob_sliverAI::JustDied(Unit* killer) { if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID))) - ((boss_garaxxasAI*)Garaxxas->AI())->SliverGUID = 0; + CAST_AI(boss_garaxxasAI, Garaxxas->AI())->SliverGUID = 0; } void mob_sliverAI::KilledUnit(Unit* victim) { if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID))) - ((boss_garaxxasAI*)Garaxxas->AI())->KilledUnit(victim); + CAST_AI(boss_garaxxasAI, Garaxxas->AI())->KilledUnit(victim); }*/ #define SPELL_WINDFURY_TOTEM 27621 diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp index d057f0d8932..b23abd1da2a 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI { boss_selin_fireheartAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Crystals.clear(); //GUIDs per instance is static, so we only need to load them once. @@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI if (pUnit) { if(!pUnit->isAlive()) - ((Creature*)pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc. + CAST_CRE(pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc. // Only need to set unselectable flag. You can't attack unselectable units so non_attackable flag is not necessary here. pUnit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -340,17 +340,17 @@ struct TRINITY_DLL_DECL mob_fel_crystalAI : public ScriptedAI void JustDied(Unit* killer) { - if (ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData())) + if (ScriptedInstance* pInstance = (m_creature->GetInstanceData())) { Creature* Selin = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_SELIN))); if (Selin && Selin->isAlive()) { - if (((boss_selin_fireheartAI*)Selin->AI())->CrystalGUID == m_creature->GetGUID()) + if(CAST_AI(boss_selin_fireheartAI, Selin->AI())->CrystalGUID == m_creature->GetGUID()) { // Set this to false if we are the creature that Selin is draining so his AI flows properly - ((boss_selin_fireheartAI*)Selin->AI())->DrainingCrystal = false; - ((boss_selin_fireheartAI*)Selin->AI())->IsDraining = false; - ((boss_selin_fireheartAI*)Selin->AI())->EmpowerTimer = 10000; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->DrainingCrystal = false; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->IsDraining = false; + CAST_AI(boss_selin_fireheartAI, Selin->AI())->EmpowerTimer = 10000; if (Selin->getVictim()) { Selin->AI()->AttackStart(Selin->getVictim()); diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp index bad86829474..fb31a3783da 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI { boss_vexallusAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); Heroic = c->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp index db5ad5214d2..00b6d28d6b0 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp @@ -71,7 +71,7 @@ struct TRINITY_DLL_DECL boss_noxxionAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(13456, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp index 87f6cd8796e..c82dc52b6e6 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp @@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI { boss_golemaggAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL mob_core_ragerAI : public ScriptedAI { mob_core_ragerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Mangle_Timer; diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp index 3da7134c471..7fef37d24c9 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI { boss_majordomoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp index d62319b2617..77d0da94a1b 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp @@ -228,7 +228,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI { Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } @@ -249,7 +249,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI { Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp index dc5b10a25d0..5c61ef9225d 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI { boss_sulfuronAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Darkstrike_Timer; @@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI { mob_flamewaker_priestAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Heal_Timer; diff --git a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp index 86274a6aed4..26af428c2e7 100644 --- a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp +++ b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp @@ -285,7 +285,7 @@ public: if(!PlayerGUID) return; - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE) { player->FailQuest(10965); @@ -296,7 +296,7 @@ public: void EnterEvadeMode() { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->isInCombat() && player->getAttackerForHelper()) { AttackStart(player->getAttackerForHelper()); @@ -345,7 +345,7 @@ public: { if(checkPlayer_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && player->isInCombat() && player->getAttackerForHelper()) AttackStart(player->getAttackerForHelper()); checkPlayer_Timer = 1000; @@ -355,7 +355,7 @@ public: if(Event_onWait && Event_Timer < diff) { - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(!player || (player && player->GetQuestStatus(10965) == QUEST_STATUS_NONE)) { m_creature->setDeathState(JUST_DIED); @@ -523,7 +523,7 @@ bool QuestAccept_npc_clintar_dreamwalker(Player *player, Creature *creature, Que { Creature *clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000); if(clintar_spirit) - ((npc_clintar_spiritAI*)clintar_spirit->AI())->StartEvent(player); + CAST_AI(npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp index 8b5da811e12..49317b34ce8 100644 --- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp +++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI void SpellHit(Unit *caster, const SpellEntry* spell) { // we can feed him without any quest - if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && ((Player*)caster)->GetTeam() == HORDE) + if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && CAST_PLR(caster)->GetTeam() == HORDE) { STATE = 1; player = caster->GetGUID(); @@ -139,8 +139,8 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI case 3: STATE = 4; //go home Unit *plr = Unit::GetUnit((*m_creature),player); - if(plr && ((Player*)plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE) - ((Player*)plr)->CompleteQuest(11129); + if(plr && CAST_PLR(plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE) + CAST_PLR(plr)->CompleteQuest(11129); float x, y, z, z2, angle; angle = m_creature->GetAngle(-2146, -430); m_creature->GetPosition(x,y,z); diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp index 63f037cf146..1ed6b003504 100644 --- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp +++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp @@ -113,12 +113,12 @@ struct TRINITY_DLL_DECL mob_lumpAI : public ScriptedAI { if (done_by->GetTypeId() == TYPEID_PLAYER && (m_creature->GetHealth() - damage)*100 / m_creature->GetMaxHealth() < 30) { - if (!bReset && ((Player*)done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE) + if (!bReset && CAST_PLR(done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE) { //Take 0 damage damage = 0; - ((Player*)done_by)->AttackStop(); + CAST_PLR(done_by)->AttackStop(); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); @@ -529,14 +529,14 @@ struct TRINITY_DLL_DECL npc_creditmarker_visit_with_ancestorsAI : public Scripte if(who->GetTypeId() == TYPEID_PLAYER) { - if(((Player*)who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) + if(CAST_PLR(who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE) { uint32 creditMarkerId = m_creature->GetEntry(); if((creditMarkerId >= 18840) && (creditMarkerId <= 18843)) { // 18840: Sunspring, 18841: Laughing, 18842: Garadar, 18843: Bleeding - if(!((Player*)who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) - ((Player*)who)->KilledMonster(creditMarkerId, m_creature->GetGUID()); + if(!CAST_PLR(who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId)) + CAST_PLR(who)->KilledMonster(creditMarkerId, m_creature->GetGUID()); } } } @@ -586,7 +586,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI if(!who || PlayerGUID) return; - if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(((Player *)who), 30) && ((Player *)who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) + if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 30) && CAST_PLR(who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) { PlayerGUID = who->GetGUID(); return; @@ -604,7 +604,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI if(fleeing && m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FLEEING_MOTION_TYPE) fleeing = false; - Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID); + Player *player = Unit::GetPlayer(PlayerGUID); if(player && m_creature->IsWithinDistInMap(player, 30)) { if(!fleeing) @@ -634,7 +634,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER) { - if(spell->Id == SPELL_SPARROWHAWK_NET && ((Player*)caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) + if(spell->Id == SPELL_SPARROWHAWK_NET && CAST_PLR(caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE) { m_creature->CastSpell(caster, SPELL_ITEM_CAPTIVE_SPARROWHAWK, true); m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp index 6b0d5cf65fe..ecc9a8d8d03 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp index 1ab7c5e3334..8ce017a936e 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index 3a001d4068b..05dea45ed25 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI } } - void JustDied(Unit*) + void JustDied(Unit* who) { _JustDied(); me->CastSpell(me, SPELL_DIES, true); @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI events.Update(diff); - if(phase != PHASE_BIRTH && !UpdateVictim() || !CheckInRoom()) + if(phase != PHASE_BIRTH && !UpdateCombatState() || !CheckInRoom()) return; if(phase == PHASE_GROUND) diff --git a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp index 1b70d5b1dee..c8c7651dbe1 100644 --- a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp +++ b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp @@ -103,20 +103,20 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI switch( m_creature->GetEntry() ) { case ENTRY_BNAAR_C_CONSOLE: - ((Player*)p)->FailQuest(10299); - ((Player*)p)->FailQuest(10329); + CAST_PLR(p)->FailQuest(10299); + CAST_PLR(p)->FailQuest(10329); break; case ENTRY_CORUU_C_CONSOLE: - ((Player*)p)->FailQuest(10321); - ((Player*)p)->FailQuest(10330); + CAST_PLR(p)->FailQuest(10321); + CAST_PLR(p)->FailQuest(10330); break; case ENTRY_DURO_C_CONSOLE: - ((Player*)p)->FailQuest(10322); - ((Player*)p)->FailQuest(10338); + CAST_PLR(p)->FailQuest(10322); + CAST_PLR(p)->FailQuest(10338); break; case ENTRY_ARA_C_CONSOLE: - ((Player*)p)->FailQuest(10323); - ((Player*)p)->FailQuest(10365); + CAST_PLR(p)->FailQuest(10323); + CAST_PLR(p)->FailQuest(10365); break; } } @@ -255,7 +255,7 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI { Unit* u = Unit::GetUnit((*m_creature),someplayer); if( u && u->GetTypeId() == TYPEID_PLAYER ) - ((Player*)u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID()); + CAST_PLR(u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID()); DoCast(m_creature,SPELL_DISABLE_VISUAL); } if( goConsole ) @@ -324,8 +324,8 @@ bool GOHello_go_manaforge_control_console(Player *player, GameObject* _GO) if( manaforge ) { - ((npc_manaforge_control_consoleAI*)manaforge->AI())->someplayer = player->GetGUID(); - ((npc_manaforge_control_consoleAI*)manaforge->AI())->goConsole = _GO->GetGUID(); + CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->someplayer = player->GetGUID(); + CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->goConsole = _GO->GetGUID(); _GO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE); } return true; @@ -660,7 +660,7 @@ bool AreaTrigger_at_commander_dawnforge(Player *player, AreaTriggerEntry *at) if (!Dawnforge) return false; - if (((npc_commander_dawnforgeAI*)Dawnforge->AI())->CanStartEvent(player)) + if(CAST_AI(npc_commander_dawnforgeAI, Dawnforge->AI())->CanStartEvent(player)) return true; } return false; @@ -788,7 +788,7 @@ struct TRINITY_DLL_DECL mob_phase_hunterAI : public ScriptedAI Unit* target = Unit::GetUnit((*m_creature), PlayerGUID); if(target && !Weak && m_creature->GetHealth() < (m_creature->GetMaxHealth() / 100 * WeakPercent) - && ((Player*)target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE) + && CAST_PLR(target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE) { DoScriptText(EMOTE_WEAK, m_creature); Weak = true; @@ -851,7 +851,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(Q_ALMABTRIEB); + CAST_PLR(player)->FailQuest(Q_ALMABTRIEB); } } @@ -878,7 +878,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI case 12: if (player) { - ((Player*)player)->GroupEventHappens(Q_ALMABTRIEB, m_creature); + CAST_PLR(player)->GroupEventHappens(Q_ALMABTRIEB, m_creature); Completed = true; } {Unit* Thadell = me->FindNearestCreature(N_THADELL, 30); @@ -917,7 +917,7 @@ bool QuestAccept_npc_bessy(Player* player, Creature* creature, Quest const* ques { creature->setFaction(113); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -941,7 +941,7 @@ CreatureAI* GetAI_npc_bessy(Creature *_Creature) bessyAI->AddWaypoint(12, 2297.68, 2266.79, 95.07,4000); bessyAI->AddWaypoint(13, 2297.67, 2266.76, 95.07,4000); - return (CreatureAI*)bessyAI; + return bessyAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp index 5b328aee776..5a9d17db745 100644 --- a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp +++ b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp @@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL npc_shenthulAI : public ScriptedAI { if( Unit* temp = Unit::GetUnit((*m_creature),playerGUID) ) if( temp->GetTypeId() == TYPEID_PLAYER ) - ((Player*)temp)->FailQuest(QUEST_2460); + CAST_PLR(temp)->FailQuest(QUEST_2460); Reset(); } else Reset_Timer -= diff; @@ -137,8 +137,8 @@ bool QuestAccept_npc_shenthul(Player* player, Creature* creature, Quest const* q { if( quest->GetQuestId() == QUEST_2460 ) { - ((npc_shenthulAI*)creature->AI())->CanTalk = true; - ((npc_shenthulAI*)creature->AI())->playerGUID = player->GetGUID(); + CAST_AI(npc_shenthulAI, creature->AI())->CanTalk = true; + CAST_AI(npc_shenthulAI, creature->AI())->playerGUID = player->GetGUID(); } return true; } diff --git a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp index eef07d16591..8680218e992 100644 --- a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp +++ b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp @@ -90,7 +90,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {} case 45: DoScriptText(SAY_WIN, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature); break; case 46: DoScriptText(SAY_END, m_creature, player); @@ -115,7 +115,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {} if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_WILLIX_THE_IMPORTER); + CAST_PLR(player)->FailQuest(QUEST_WILLIX_THE_IMPORTER); } } @@ -129,7 +129,7 @@ bool QuestAccept_npc_willix(Player* player, Creature* creature, Quest const* que { if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -189,7 +189,7 @@ CreatureAI* GetAI_npc_willix(Creature *_Creature) thisAI->AddWaypoint(45, 1948.35, 1571.35, 80.96, 30000); thisAI->AddWaypoint(46, 1947.02, 1566.42, 81.80, 30000); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_razorfen_kraul() diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp index 0546bc4db95..68e18201b0f 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp @@ -134,10 +134,10 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI { Creaturetype = delay = spell = spell2 = 0; //that's hack but there are no info about range of this spells in dbc - SpellEntry *wisp = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_BLUE); + SpellEntry *wisp = GET_SPELL(SPELL_WISP_BLUE); if (wisp) wisp->rangeIndex = 6; //100 yards - SpellEntry *port = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_FLIGHT_PORT); + SpellEntry *port = GET_SPELL(SPELL_WISP_FLIGHT_PORT); if (port) port->rangeIndex = 6; } @@ -321,7 +321,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI { boss_headless_horsemanAI(Creature *c) : ScriptedAI(c) { - SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION); + SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION); if(confl) { confl->EffectApplyAuraName[0] = SPELL_AURA_PERIODIC_DAMAGE_PERCENT; @@ -329,17 +329,17 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI confl->EffectBaseDice[0] = 10; confl->DmgMultiplier[0] = 1; } -/* SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION); +/* SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION); if(confl) confl->EffectTriggerSpell[1] = 22587; - SpellEntry *speed = (SpellEntry*)GetSpellStore()->LookupEntry(22587); + SpellEntry *speed = GET_SPELL(22587); if(speed) { speed->Effect[1] = SPELL_EFFECT_APPLY_AURA; speed->EffectApplyAuraName[1] = SPELL_AURA_MOD_CONFUSE; }*/ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI case 1: { Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000); if(smoke) - ((mob_wisp_invisAI*)smoke->AI())->SetType(3); + CAST_AI(mob_wisp_invisAI, smoke->AI())->SetType(3); DoCast(m_creature,SPELL_RHYME_BIG); break;} case 6: @@ -469,7 +469,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI else { //maybe possible when player dies from conflagration Creature *Head = Unit::GetCreature((*m_creature), headGUID); if (Head) - ((mob_headAI*)Head->AI())->SaySound(SAY_PLAYER_DEATH); + CAST_AI(mob_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH); } } } @@ -522,7 +522,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI flame->CastSpell(flame,SPELL_BODY_FLAME,false); Creature *wisp = DoSpawnCreature(WISP_INVIS,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,60000); if(wisp) - ((mob_wisp_invisAI*)wisp->AI())->SetType(4); + CAST_AI(mob_wisp_invisAI, wisp->AI())->SetType(4); if(pInstance) pInstance->SetData(DATA_HORSEMAN_EVENT, DONE); } @@ -628,14 +628,14 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI { Creature *flame = m_creature->SummonCreature(HELPER,Spawn[0].x,Spawn[0].y,Spawn[0].z,0,TEMPSUMMON_TIMED_DESPAWN,17000); if(flame) - ((mob_wisp_invisAI*)flame->AI())->SetType(2); + CAST_AI(mob_wisp_invisAI, flame->AI())->SetType(2); burned = true; }else burn -= diff; break; case 2: if (conflagrate < diff) { - Unit *plr = (Unit*)SelectRandomPlayer(30.0f); + Unit *plr = SelectRandomPlayer(30.0f); if (plr) m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false); conflagrate = 10000 + rand()%7 * 1000; @@ -679,8 +679,8 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI Creature* Head = Unit::GetCreature((*m_creature), headGUID); if (Head && Head->isAlive()) { - ((mob_headAI*)Head->AI())->Phase = Phase; - ((mob_headAI*)Head->AI())->Disappear(); + CAST_AI(mob_headAI, Head->AI())->Phase = Phase; + CAST_AI(mob_headAI, Head->AI())->Disappear(); } return; } @@ -718,7 +718,7 @@ void mob_headAI::Disappear() m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); m_creature->GetMotionMaster()->MoveIdle(); - ((boss_headless_horsemanAI*)body->AI())->returned = true; + CAST_AI(boss_headless_horsemanAI, body->AI())->returned = true; } } } @@ -741,7 +741,7 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI { debuff->SetDisplayId(m_creature->GetDisplayId()); debuff->CastSpell(debuff,SPELL_PUMPKIN_AURA_GREEN,false); - ((mob_wisp_invisAI*)debuff->AI())->SetType(1); + CAST_AI(mob_wisp_invisAI, debuff->AI())->SetType(1); debuffGUID = debuff->GetGUID(); } sprouted = false; @@ -807,8 +807,8 @@ bool GOHello_go_loosely_turned_soil(Player *plr, GameObject* soil) Creature *horseman = soil->SummonCreature(HH_MOUNTED,FlightPoint[20].x,FlightPoint[20].y,FlightPoint[20].z,0,TEMPSUMMON_MANUAL_DESPAWN,0); if(horseman) { - ((boss_headless_horsemanAI*)horseman->AI())->playerGUID = plr->GetGUID(); - ((boss_headless_horsemanAI*)horseman->AI())->FlyMode(); + CAST_AI(boss_headless_horsemanAI, horseman->AI())->playerGUID = plr->GetGUID(); + CAST_AI(boss_headless_horsemanAI, horseman->AI())->FlyMode(); } //} return true; diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp index 913097c4918..2531d3d6db6 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp @@ -144,7 +144,7 @@ CreatureAI* GetAI_mob_scarlet_trainee(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_boss_herod() diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp index f062419c6c1..3db07afbfdd 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI { boss_interrogator_vishasAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp index 9bbe880cc69..68bdcf9fa10 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_scarlet_commander_mograineAI : public ScriptedAI { boss_scarlet_commander_mograineAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_whitemaneAI : public ScriptedAI { boss_high_inquisitor_whitemaneAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp index 2262f3dc594..a26a7652e74 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI { boss_darkmaster_gandlingAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -127,79 +127,79 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI DoTeleportPlayer(target, 250.0696,0.3921,84.8408,3.149); Summoned = m_creature->SummonCreature(16119,254.2325,0.3417,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,257.7133,4.0226,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,258.6702,-2.60656,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 1: DoTeleportPlayer(target, 181.4220,-91.9481,84.8410,1.608); Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 2: DoTeleportPlayer(target, 95.1547,-1.8173,85.2289,0.043); Summoned = m_creature->SummonCreature(16119,100.9404,-1.8016,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,101.3729,0.4882,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,101.4596,-4.4740,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 3: DoTeleportPlayer(target, 250.0696,0.3921,72.6722,3.149); Summoned = m_creature->SummonCreature(16119,240.34481,0.7368,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,240.3633,-2.9520,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,240.6702,3.34949,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 4: DoTeleportPlayer(target, 181.4220,-91.9481,70.7734,1.608); Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; case 5: DoTeleportPlayer(target, 106.1541,-1.8994,75.3663,0.043); Summoned = m_creature->SummonCreature(16119,115.3945,-1.5555,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,257.7133,1.8066,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); Summoned = m_creature->SummonCreature(16119,258.6702,-5.1001,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); break; } } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp index 74f7f2a13a1..f8676fc3c8b 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp @@ -47,7 +47,7 @@ struct TRINITY_DLL_DECL boss_theolenkrastinovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_DOCTORTHEOLENKRASTINOV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp index ff63af2719d..39b16785e43 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp @@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LADYILLUCIABAROV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp index 4b262f625aa..db070857f0d 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp @@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_INSTRUCTORMALICIA_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp index b71bef0be39..faa7efa53a5 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp @@ -73,7 +73,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(11439, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp index a1e589cfdb9..966fd3bf6ec 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI Rand1 = 0; SummonedMinions = DoSpawnCreature(16119, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMinions) - ((CreatureAI*)SummonedMinions->AI())->AttackStart(victim); + (SummonedMinions->AI())->AttackStart(victim); } void SummonMages(Unit* victim) @@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI Rand2 = 0; SummonedMages = DoSpawnCreature(16120, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); if(SummonedMages) - ((CreatureAI*)SummonedMages->AI())->AttackStart(victim); + (SummonedMages->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp index fe9ff752dc7..ffaf56f1c45 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LORDALEXEIBAROV_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp index 62409b26442..1afa0c91fa6 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp @@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_LOREKEEPERPOLKELT_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp index 64172abe45c..6be34592529 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp @@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI void JustDied(Unit *killer) { - ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL; + ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL; if(pInstance) { pInstance->SetData(DATA_THERAVENIAN_DEATH, 0); diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp index 3c557118f3b..bf7c122d452 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL npc_shadowfang_prisonerAI : public npc_escortAI { npc_shadowfang_prisonerAI(Creature *c) : npc_escortAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); uiNpcEntry = c->GetEntry(); } @@ -106,12 +106,12 @@ CreatureAI* GetAI_npc_shadowfang_prisoner(Creature* pCreature) prisonerAI->FillPointMovementListForCreature(); - return (CreatureAI*)prisonerAI; + return prisonerAI; } bool GossipHello_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature) { - ScriptedInstance* pInstance = ((ScriptedInstance*)pCreature->GetInstanceData()); + ScriptedInstance* pInstance = (pCreature->GetInstanceData()); if (pInstance && pInstance->GetData(TYPE_FREE_NPC) != DONE && pInstance->GetData(TYPE_RETHILGORE) == DONE) pPlayer->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); @@ -126,7 +126,7 @@ bool GossipSelect_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature, if (uiAction == GOSSIP_ACTION_INFO_DEF+1) { pPlayer->CLOSE_GOSSIP_MENU(); - ((npc_escortAI*)(pCreature->AI()))->Start(false, true, false); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(false, true, false); } return true; } diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp index 6ba339a4c4b..d87c25c14a7 100644 --- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp +++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp @@ -750,7 +750,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI plr->RemoveAurasDueToSpell(SPELL_FOUR); return 5000; }else{ - ((Player*)plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100; + CAST_PLR(plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100; }break; case 17: DoScriptText(LORD_ILLIDAN_SAY_5, Illi); return 5000; break; case 18: DoScriptText(LORD_ILLIDAN_SAY_6, Illi); return 5000; break; @@ -769,7 +769,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI case 25: DoScriptText(OVERLORD_SAY_6, m_creature); return 2000; break; case 26: if(plr) - ((Player*)plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature); + CAST_PLR(plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature); return 6000; break; case 27: { @@ -832,8 +832,8 @@ bool QuestAccept_npc_overlord_morghor(Player *player, Creature *_Creature, const { if(_Quest->GetQuestId() == QUEST_LORD_ILLIDAN_STORMRAGE) { - ((npc_overlord_morghorAI*)_Creature->AI())->PlayerGUID = player->GetGUID(); - ((npc_overlord_morghorAI*)_Creature->AI())->StartEvent(); + CAST_AI(npc_overlord_morghorAI, _Creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_overlord_morghorAI, _Creature->AI())->StartEvent(); return true; } return false; @@ -943,7 +943,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI case 44: SummonAssassin(); break; case 50: DoScriptText(SAY_END, m_creature, player); - ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature); Completed = true; break; } @@ -961,7 +961,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI case 0: DoScriptText(ASSASSIN_SAY_AGGRO1, CoilskarAssassin, player); break; case 1: DoScriptText(ASSASSIN_SAY_AGGRO2, CoilskarAssassin, player); break; } - ((Creature*)CoilskarAssassin)->AI()->AttackStart(m_creature); + CAST_CRE(CoilskarAssassin)->AI()->AttackStart(m_creature); } else error_log("TSCR ERROR: Coilskar Assassin couldn't be summmoned"); } @@ -972,7 +972,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN); + CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN); } } @@ -1039,7 +1039,7 @@ CreatureAI* GetAI_npc_earthmender_wildaAI(Creature *_Creature) earthmender_wildaAI->AddWaypoint(49, -2841.754883, 1289.832520, 6.990304); earthmender_wildaAI->AddWaypoint(50, -2871.398438, 1302.348145, 6.807335, 8000); // SAY_END - return (CreatureAI*)earthmender_wildaAI; + return earthmender_wildaAI; } bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest const* quest) @@ -1047,7 +1047,7 @@ bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest if (quest->GetQuestId() == QUEST_ESCAPE_FROM_COILSKAR_CISTERN) { creature->setFaction(113); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; } @@ -1381,12 +1381,13 @@ struct TRINITY_DLL_DECL mob_torloth_the_magnificentAI : public ScriptedAI switch(slayer->GetTypeId()) { case TYPEID_UNIT: - if(((Creature*)slayer)->isPet() && ((Pet*)slayer)->GetOwner()->GetTypeId() == TYPEID_PLAYER) - ((Player*)((Pet*)slayer->GetOwner()))->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); + if(Unit *owner = slayer->GetOwner()) + if(owner->GetTypeId() == TYPEID_PLAYER) + CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); break; case TYPEID_PLAYER: - ((Player*)slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); + CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature); break; } @@ -1490,14 +1491,14 @@ struct TRINITY_DLL_DECL npc_lord_illidan_stormrageAI : public ScriptedAI Spawn->GetMotionMaster()->MovePoint(0,x, y, z); } } - ((mob_illidari_spawnAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); + CAST_AI(mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); } if(WavesInfo[WaveCount].CreatureId == 22076) // Torloth { - ((mob_torloth_the_magnificentAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); + CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID(); if(PlayerGUID) - ((mob_torloth_the_magnificentAI*)Spawn->AI())->AggroTargetGUID = PlayerGUID; + CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID; } } } @@ -1605,7 +1606,7 @@ void mob_illidari_spawnAI::JustDied(Unit *slayer) m_creature->RemoveCorpse(); if(Creature* LordIllidan = (Unit::GetCreature(*m_creature, LordIllidanGUID))) if(LordIllidan) - ((npc_lord_illidan_stormrageAI*)LordIllidan->AI())->LiveCounter(); + CAST_AI(npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter(); } /*##### @@ -1616,13 +1617,13 @@ bool GOQuestAccept_GO_crystal_prison(Player* plr, GameObject* go, Quest const* q { if(quest->GetQuestId() == QUEST_BATTLE_OF_THE_CRIMSON_WATCH ) { - Unit* Illidan = plr->FindNearestCreature(22083, 50); + Creature* Illidan = plr->FindNearestCreature(22083, 50); - if(Illidan && !(((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted)) + if(Illidan && !CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted) { - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->PlayerGUID = plr->GetGUID(); - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->LiveCount = 0; - ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted=true; + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->PlayerGUID = plr->GetGUID(); + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->LiveCount = 0; + CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted=true; } } return true; @@ -1742,10 +1743,10 @@ struct TRINITY_DLL_DECL npc_enraged_spiritAI : public ScriptedAI Summoned->setFaction(ENRAGED_SOUL_FRIENDLY); Summoned->GetMotionMaster()->MovePoint(0,totemOspirits->GetPositionX(), totemOspirits->GetPositionY(), Summoned->GetPositionZ()); - Player* Owner = (Player*)totemOspirits->GetOwner(); - if (Owner) + Unit* Owner = totemOspirits->GetOwner(); + if (Owner && Owner->GetTypeId() == TYPEID_PLAYER) // DoCast(Owner, credit); -- not working! - Owner->KilledMonster(credit, Summoned->GetGUID()); + CAST_PLR(Owner)->KilledMonster(credit, Summoned->GetGUID()); DoCast(totemOspirits,SPELL_SOUL_CAPTURED); } } diff --git a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp index 7f6d3d23976..236ef85f85c 100644 --- a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp +++ b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL npc_salsalabimAI : public ScriptedAI if( done_by->GetTypeId() == TYPEID_PLAYER ) if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 20 ) { - ((Player*)done_by)->GroupEventHappens(QUEST_10004,m_creature); + CAST_PLR(done_by)->GroupEventHappens(QUEST_10004,m_creature); damage = 0; EnterEvadeMode(); } @@ -328,12 +328,12 @@ public: if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { - ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID()); + Start(false, false, false, who->GetGUID()); } } } @@ -352,7 +352,7 @@ CreatureAI* GetAI_npc_kservantAI(Creature *_Creature) kservantAI->FillPointMovementListForCreature(); - return (CreatureAI*)kservantAI; + return kservantAI; } /*###### @@ -400,14 +400,14 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); if(Creepjack) { - ((Creature*)Creepjack)->AI()->EnterEvadeMode(); + CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); if(Malone) { - ((Creature*)Malone)->AI()->EnterEvadeMode(); + CAST_CRE(Malone)->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20); if(Creepjack) { - ((Creature*)Creepjack)->AI()->EnterEvadeMode(); + CAST_CRE(Creepjack)->AI()->EnterEvadeMode(); Creepjack->setFaction(1194); Creepjack->GetMotionMaster()->MoveTargetedHome(); Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -489,7 +489,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20); if(Malone) { - ((Creature*)Malone)->AI()->EnterEvadeMode(); + CAST_CRE(Malone)->AI()->EnterEvadeMode(); Malone->setFaction(1194); Malone->GetMotionMaster()->MoveTargetedHome(); Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI m_creature->GetMotionMaster()->MoveTargetedHome(); Player* player = Unit::GetPlayer(PlayerGUID); if(player) - ((Player*)player)->GroupEventHappens(QUEST_WBI, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_WBI, m_creature); } DoMeleeAttackIfReady(); } @@ -525,8 +525,8 @@ bool GossipSelect_npc_dirty_larry(Player *player, Creature *creature, uint32 sen { if (action == GOSSIP_ACTION_INFO_DEF+1) { - ((npc_dirty_larryAI*)creature->AI())->Event = true; - ((npc_dirty_larryAI*)creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_dirty_larryAI, creature->AI())->Event = true; + CAST_AI(npc_dirty_larryAI, creature->AI())->PlayerGUID = player->GetGUID(); player->CLOSE_GOSSIP_MENU(); } diff --git a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp index 982c00dfcab..718a44acf58 100644 --- a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp +++ b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp @@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL npc_blood_knight_stillbladeAI : public ScriptedAI void SpellHit(Unit *Hitter, const SpellEntry *Spellkind) { if((Spellkind->Id == SPELL_SHIMMERING_VESSEL) && !spellHit && - (Hitter->GetTypeId() == TYPEID_PLAYER) && (((Player*)Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD))) + (Hitter->GetTypeId() == TYPEID_PLAYER) && (CAST_PLR(Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD))) { - ((Player*)Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD); + CAST_PLR(Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD); DoCast(m_creature,SPELL_REVIVE_SELF); m_creature->SetStandState(UNIT_STAND_STATE_STAND); m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0); diff --git a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp index 98aea1a9b35..ed96d3a1768 100644 --- a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp +++ b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp @@ -81,7 +81,7 @@ bool GossipSelect_npc_astor_hadren(Player *player, Creature *_Creature, uint32 s player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(21); if(player) - ((npc_astor_hadrenAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_astor_hadrenAI, _Creature->AI())->AttackStart(player); break; } return true; @@ -171,7 +171,7 @@ bool QuestAccept_npc_deathstalker_erland(Player* player, Creature* creature, Que if (quest->GetQuestId() == QUEST_ESCORTING) { DoScriptText(SAY_QUESTACCEPT, creature, player); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; @@ -209,7 +209,7 @@ CreatureAI* GetAI_npc_deathstalker_erlandAI(Creature *_Creature) deathstalker_erlandAI->AddWaypoint(25, 1310.51, 1207.36, 58.51, 5000); deathstalker_erlandAI->AddWaypoint(26, 1310.51, 1207.36, 58.51, 2000); - return (CreatureAI*)deathstalker_erlandAI; + return deathstalker_erlandAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp index e600888905a..e8f234c0e0b 100644 --- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp @@ -111,7 +111,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI case 23: m_creature->SetInFront(player); DoScriptText(SAY_END, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_PK, m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_PK, m_creature); break; } } @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI { Player* player = Unit::GetPlayer(PlayerGUID); if (player) - ((Player*)player)->FailQuest(QUEST_PK); + CAST_PLR(player)->FailQuest(QUEST_PK); } } @@ -145,7 +145,7 @@ bool QuestAccept_npc_kaya_flathoof(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_PK) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_START, creature); creature->setFaction(113); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); @@ -182,7 +182,7 @@ CreatureAI* GetAI_npc_kaya_flathoofAI(Creature *_Creature) thisAI->AddWaypoint(22, -43.77, -497.99, -46.13, 3000);// summon thisAI->AddWaypoint(23, -41.77, -518.15, -46.13, 5000);//end - return (CreatureAI*)thisAI; + return thisAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp index 11ed71ff720..36f09218093 100644 --- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp +++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp @@ -93,8 +93,8 @@ struct TRINITY_DLL_DECL npc_bartlebyAI : public ScriptedAI if (done_by->GetTypeId() == TYPEID_PLAYER && done_by->GetGUID() == PlayerGUID) { - ((Player*)done_by)->AttackStop(); - ((Player*)done_by)->AreaExploredOrEventHappens(1640); + CAST_PLR(done_by)->AttackStop(); + CAST_PLR(done_by)->AreaExploredOrEventHappens(1640); } m_creature->CombatStop(); EnterEvadeMode(); @@ -109,8 +109,8 @@ bool QuestAccept_npc_bartleby(Player *player, Creature *_Creature, Quest const * if(_Quest->GetQuestId() == 1640) { _Creature->setFaction(168); - ((npc_bartlebyAI*)_Creature->AI())->PlayerGUID = player->GetGUID(); - ((npc_bartlebyAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_bartlebyAI, _Creature->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_bartlebyAI, _Creature->AI())->AttackStart(player); } return true; } @@ -143,8 +143,8 @@ struct TRINITY_DLL_DECL npc_dashel_stonefistAI : public ScriptedAI if (done_by->GetTypeId() == TYPEID_PLAYER) { - ((Player*)done_by)->AttackStop(); - ((Player*)done_by)->AreaExploredOrEventHappens(1447); + CAST_PLR(done_by)->AttackStop(); + CAST_PLR(done_by)->AreaExploredOrEventHappens(1447); } //m_creature->CombatStop(); EnterEvadeMode(); @@ -159,7 +159,7 @@ bool QuestAccept_npc_dashel_stonefist(Player *player, Creature *_Creature, Quest if(_Quest->GetQuestId() == 1447) { _Creature->setFaction(168); - ((npc_dashel_stonefistAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_dashel_stonefistAI, _Creature->AI())->AttackStart(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp index 54a4da82ebf..daeeb3e11e5 100644 --- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp +++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp @@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI if (caster->GetTypeId() == TYPEID_PLAYER) { //Yenniku's Release - if(!bReset && ((Player*)caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607) + if(!bReset && CAST_PLR(caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607) { m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN); m_creature->CombatStop(); //stop combat @@ -86,7 +86,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI if(m_creature->getVictim()->GetTypeId() == TYPEID_PLAYER) { Unit *victim = m_creature->getVictim(); - if(((Player*)victim)->GetTeam() == HORDE) + if(CAST_PLR(victim)->GetTeam() == HORDE) { m_creature->CombatStop(); m_creature->DeleteThreatList(); diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp index 5ceda79e9ef..092318fd7af 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp @@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI { boss_baron_rivendareAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp index 912390a883e..1906834e184 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI { boss_baroness_anastariAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp index 6689bcde8b1..d65390ab6d7 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp @@ -36,7 +36,7 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI { boss_magistrate_barthilasAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp index aa11388e4d3..dbbbc5576d4 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI { boss_maleki_the_pallidAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp index 3ce0baa5454..2d2c7605404 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI { boss_nerubenkanAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; @@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI Rand = 0; Summoned = DoSpawnCreature(10876, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000); if(Summoned) - ((CreatureAI*)Summoned->AI())->AttackStart(victim); + (Summoned->AI())->AttackStart(victim); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp index 95b2308305d..316cbaef9d3 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI { boss_silver_hand_bossesAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI break; } if(pInstance->GetData(TYPE_SH_QUEST) && Killer->GetTypeId() == TYPEID_PLAYER) - ((Player*)Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID()); } } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp index 58bec2f6898..1ecb95333c4 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp @@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_ramstein_the_gorgerAI : public ScriptedAI { boss_ramstein_the_gorgerAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)m_creature->GetInstanceData(); + pInstance = m_creature->GetInstanceData(); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp index d843be2ee73..7bbc3b91e98 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp @@ -37,7 +37,7 @@ EndContentData */ bool GOHello_go_gauntlet_gate(Player *player, GameObject* _GO) { - ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData(); + ScriptedInstance* pInstance = _GO->GetInstanceData(); if (!pInstance) return false; @@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL mob_restless_soulAI : public ScriptedAI { if (caster->GetTypeId() == TYPEID_PLAYER) { - if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && ((Player*)caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE) + if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && CAST_PLR(caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE) { Tagged = true; Tagger = caster->GetGUID(); diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp index 4faa0f792bf..7f4e6f7fdcd 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp @@ -67,7 +67,7 @@ enum Spells struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI { boss_brutallusAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp index 9d11feefb1f..92099f70ee6 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp @@ -94,7 +94,7 @@ enum Creatures struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI { boss_sacrolashAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI if (Temp) if (Temp->isDead()) { - ((Creature*)Temp)->Respawn(); + CAST_CRE(Temp)->Respawn(); }else { if(Temp->getVictim()) @@ -156,7 +156,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_ALYTHESS)); if (Temp && Temp->isAlive() && !(Temp->getVictim())) - ((Creature*)Temp)->AI()->AttackStart(who); + CAST_CRE(Temp)->AI()->AttackStart(who); } if(pInstance) @@ -354,7 +354,7 @@ CreatureAI* GetAI_boss_sacrolash(Creature *_Creature) struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI { boss_alythessAI(Creature *c) : Scripted_NoMovementAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IntroStepCounter = 10; } @@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI if (Temp) if (Temp->isDead()) { - ((Creature*)Temp)->Respawn(); + CAST_CRE(Temp)->Respawn(); }else { if(Temp->getVictim()) @@ -421,7 +421,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI { Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH)); if (Temp && Temp->isAlive() && !(Temp->getVictim())) - ((Creature*)Temp)->AI()->AttackStart(who); + CAST_CRE(Temp)->AI()->AttackStart(who); } if(pInstance) @@ -533,7 +533,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI uint32 IntroStep(uint32 step) { - Creature* Sacrolash = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH)); + Creature* Sacrolash = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH)); switch (step) { case 0: return 0; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp index ec7778d7a0d..f15a7742a8c 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp @@ -127,16 +127,16 @@ static EventFelmyst MaxTimer[]= struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI { boss_felmystAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); // wait for core patch be accepted - /*SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ENCAPSULATE_EFFECT); + /*SpellEntry *TempSpell = GET_SPELL(SPELL_ENCAPSULATE_EFFECT); if(TempSpell->SpellIconID == 2294) TempSpell->SpellIconID = 2295; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_VAPOR_TRIGGER); + TempSpell = GET_SPELL(SPELL_VAPOR_TRIGGER); if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0) TempSpell->Attributes |= SPELL_ATTR_PASSIVE; - TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_FOG_CHARM2); + TempSpell = GET_SPELL(SPELL_FOG_CHARM2); if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0) TempSpell->Attributes |= SPELL_ATTR_PASSIVE;*/ } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp index 92e1991e50a..600f4906ca5 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp @@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI { boss_kalecgosAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); SathGUID = 0; DoorGUID = 0; } @@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI } Unit *Sath = Unit::GetUnit(*m_creature,SathGUID); - if(Sath) ((Creature*)Sath)->AI()->EnterEvadeMode(); + if(Sath) CAST_CRE(Sath)->AI()->EnterEvadeMode(); GameObject *Door = GameObject::GetGameObject(*m_creature, DoorGUID); if(Door) Door->SetLootState(GO_JUST_DEACTIVATED); @@ -250,7 +250,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI { boss_sathrovarrAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); KalecGUID = 0; KalecgosGUID = 0; } @@ -318,8 +318,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI TeleportAllPlayersBack(); if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1; - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = false; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = false; } EnterEvadeMode(); return; @@ -338,8 +338,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI TeleportAllPlayersBack(); if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1; - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = true; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = true; } if(pInstance) @@ -371,7 +371,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI if(Kalecgos) { Kalecgos->CastSpell(Kalecgos, SPELL_ENRAGE, true); - ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isEnraged = true; + CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isEnraged = true; } DoCast(m_creature, SPELL_ENRAGE, true); isEnraged = true; @@ -381,7 +381,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI { if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID)) { - if(((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isBanished) + if(CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isBanished) { m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); return; @@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL boss_kalecAI : public ScriptedAI bool isEnraged; // if demon is enraged boss_kalecAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() @@ -570,7 +570,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff) if(Sath) { Sath->CastSpell(Sath, SPELL_ENRAGE, true); - ((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isEnraged = true; + CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isEnraged = true; } DoCast(m_creature, SPELL_ENRAGE, true); isEnraged = true; @@ -580,7 +580,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff) { if(Unit *Sath = Unit::GetUnit(*m_creature, SathGUID)) { - if(((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isBanished) + if(CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isBanished) { Sath->DealDamage(Sath, Sath->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); return; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp index 487aeee19b9..cb0ee4b7f78 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp @@ -269,12 +269,12 @@ public: bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go) { if(go->GetUInt32Value(GAMEOBJECT_FACTION) == 35){ - ScriptedInstance* pInstance = ((ScriptedInstance*)go->GetInstanceData()); + ScriptedInstance* pInstance = (go->GetInstanceData()); float x,y,z, dx,dy,dz; go->SummonCreature(CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT, plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000); plr->CastSpell(plr, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, true); go->SetUInt32Value(GAMEOBJECT_FACTION, 0); - Unit* Kalec = ((Creature*)Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ))); + Unit* Kalec = CAST_CRE(Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ))); //Kalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); go->GetPosition(x,y,z); for(uint8 i = 0; i < 4; ++i){ @@ -296,7 +296,7 @@ bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go) struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI { boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } GameObject* Orb[4]; @@ -409,7 +409,7 @@ CreatureAI* GetAI_boss_kalecgos_kj(Creature *_Creature) struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI { boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -460,7 +460,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI IsWaiting = false; OrbActivated = false; - Kalec = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ))); + Kalec = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ))); ChangeTimers(false, 0); } @@ -516,9 +516,9 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI // Reset the controller if(pInstance){ - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) - ((Scripted_NoMovementAI*)Control->AI())->Reset(); + CAST_AI(Scripted_NoMovementAI, Control->AI())->Reset(); } } @@ -647,8 +647,8 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI break; case TIMER_ORBS_EMPOWER: //Phase 3 if(Phase == PHASE_SACRIFICE){ - if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(true); - }else if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(false); + if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(true); + }else if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(false); Timer[TIMER_ORBS_EMPOWER]= (Phase == PHASE_SACRIFICE) ? 45000 : 35000; OrbActivated = true; TimerIsDeactiveted[TIMER_ORBS_EMPOWER] = true; @@ -704,7 +704,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI if(Phase <= PHASE_ARMAGEDDON){ if(Phase == PHASE_ARMAGEDDON && ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)){ Phase = PHASE_SACRIFICE; - Creature* Anveena = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ANVEENA))); + Creature* Anveena = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_ANVEENA))); if (Anveena)Anveena->CastSpell(m_creature, SPELL_SACRIFICE_OF_ANVEENA, false); OrbActivated = false; ChangeTimers(true, 10000);// He shouldn't cast spells for ~10 seconds after Anveena's sacrifice. This will be done within Anveena's script @@ -724,7 +724,7 @@ CreatureAI* GetAI_boss_kiljaeden(Creature *_Creature) struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementAI { mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -747,7 +747,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA void Reset(){ Phase = PHASE_DECEIVERS; - if(KalecKJ)((boss_kalecgos_kjAI*)KalecKJ->AI())->ResetOrbs(); + if(KalecKJ)CAST_AI(boss_kalecgos_kjAI, KalecKJ->AI())->ResetOrbs(); DeceiverDeathCount = 0; SummonedDeceivers = false; KiljaedenDeath = false; @@ -767,7 +767,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA break; case CREATURE_KILJAEDEN: summoned->CastSpell(summoned, SPELL_REBIRTH, false); - ((boss_kiljaedenAI*)summoned->AI())->Phase=PHASE_NORMAL; + CAST_AI(boss_kiljaedenAI, summoned->AI())->Phase=PHASE_NORMAL; summoned->AddThreat(m_creature->getVictim(), 1.0f); break; } @@ -813,7 +813,7 @@ CreatureAI* GetAI_mob_kiljaeden_controller(Creature *_Creature) struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI { mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -835,7 +835,7 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI void EnterCombat(Unit* who){ if(pInstance){ pInstance->SetData(DATA_KILJAEDEN_EVENT, IN_PROGRESS); - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) Control->AddThreat(who, 1.0f); } @@ -846,9 +846,9 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI if(!pInstance) return; - Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); + Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER))); if(Control) - ((mob_kiljaeden_controllerAI*)Control->AI())->DeceiverDeathCount++; + CAST_AI(mob_kiljaeden_controllerAI, Control->AI())->DeceiverDeathCount++; } void UpdateAI(const uint32 diff){ @@ -1035,7 +1035,7 @@ CreatureAI* GetAI_mob_armageddon(Creature *_Creature) struct TRINITY_DLL_DECL mob_shield_orbAI : public ScriptedAI { mob_shield_orbAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } bool PointReached; diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp index b026e2d6f7c..cd53ca034f4 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp @@ -116,7 +116,7 @@ uint32 EnrageTimer = 600000; struct TRINITY_DLL_DECL boss_entropiusAI : public ScriptedAI { boss_entropiusAI(Creature *c) : ScriptedAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Combat = false; } @@ -202,7 +202,7 @@ CreatureAI* GetAI_boss_entropius(Creature *_Creature) struct TRINITY_DLL_DECL boss_muruAI : public Scripted_NoMovementAI { boss_muruAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -343,7 +343,7 @@ CreatureAI* GetAI_boss_muru(Creature *_Creature) struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI { npc_muru_portalAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -362,8 +362,7 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI } void JustSummoned(Creature* summoned){ - Player* Target; - Target = (Player*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID))); + Player* Target = Unit::GetPlayer(pInstance->GetData64(DATA_PLAYER_GUID)); if(Target)summoned->AI()->AttackStart(Target); Summons.Summon(summoned); } @@ -407,7 +406,7 @@ CreatureAI* GetAI_npc_muru_portal(Creature *_Creature) struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI { npc_dark_fiendAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -461,7 +460,7 @@ CreatureAI* GetAI_npc_dark_fiend(Creature *_Creature) struct TRINITY_DLL_DECL npc_void_sentinelAI : public ScriptedAI { npc_void_sentinelAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -512,7 +511,7 @@ CreatureAI* GetAI_npc_void_sentinel(Creature *_Creature) struct TRINITY_DLL_DECL npc_blackholeAI : public ScriptedAI { npc_blackholeAI(Creature *c) : ScriptedAI(c){ - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp index fbc2fe321e4..cefca8902d3 100644 --- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp +++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp @@ -66,15 +66,15 @@ struct TRINITY_DLL_DECL mob_aquementasAI : public ScriptedAI void SendItem(Unit* receiver) { - if (((Player*)receiver)->HasItemCount(11169,1,false) && - ((Player*)receiver)->HasItemCount(11172,11,false) && - ((Player*)receiver)->HasItemCount(11173,1,false) && - !((Player*)receiver)->HasItemCount(11522,1,true)) + if (CAST_PLR(receiver)->HasItemCount(11169,1,false) && + CAST_PLR(receiver)->HasItemCount(11172,11,false) && + CAST_PLR(receiver)->HasItemCount(11173,1,false) && + !CAST_PLR(receiver)->HasItemCount(11522,1,true)) { ItemPosCountVec dest; - uint8 msg = ((Player*)receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false); + uint8 msg = CAST_PLR(receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false); if( msg == EQUIP_ERR_OK ) - ((Player*)receiver)->StoreNewItem( dest, 11522, 1, true); + CAST_PLR(receiver)->StoreNewItem( dest, 11522, 1, true); } } @@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI DoScriptText(WHISPER_CUSTODIAN_14, m_creature, pTemp); DoCast(pTemp,34883); //below here is temporary workaround, to be removed when spell works properly - ((Player*)pTemp)->AreaExploredOrEventHappens(10277); + CAST_PLR(pTemp)->AreaExploredOrEventHappens(10277); break; } } @@ -191,12 +191,12 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI if( who->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)who)->HasAura(34877) && ((Player*)who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->HasAura(34877) && CAST_PLR(who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE ) { float Radius = 10.0; if( m_creature->IsWithinDistInMap(who, Radius) ) { - ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID()); + Start(false, false, false, who->GetGUID()); } } } @@ -217,7 +217,7 @@ CreatureAI* GetAI_npc_custodian_of_time(Creature* pCreature) custodian_of_timeAI->FillPointMovementListForCreature(); - return (CreatureAI*)custodian_of_timeAI; + return custodian_of_timeAI; } /*###### @@ -413,7 +413,7 @@ struct TRINITY_DLL_DECL npc_OOX17AI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(Q_OOX17); + CAST_PLR(player)->FailQuest(Q_OOX17); } } @@ -435,7 +435,7 @@ bool QuestAccept_npc_OOX17(Player* player, Creature* creature, Quest const* ques creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); DoScriptText(SAY_CHICKEN_ACC, creature); - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); } return true; @@ -533,7 +533,7 @@ CreatureAI* GetAI_npc_OOX17(Creature *_Creature) OOX17AI->AddWaypoint(85, -6944.81, -4816.58, 1.60); OOX17AI->AddWaypoint(86, -6942.06, -4839.40, 0.66,5000); - return (CreatureAI*)OOX17AI; + return OOX17AI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp index 846b3a008f6..fb376795119 100644 --- a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp +++ b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp @@ -175,7 +175,7 @@ CreatureAI* GetAI_npc_mist(Creature* pCreature) bool QuestAccept_npc_mist(Player* pPlayer, Creature* pCreature, Quest const* pQuest) { if (pQuest->GetQuestId() == QUEST_MIST) - ((npc_mistAI*)(pCreature->AI()))->DoStart(pPlayer->GetGUID()); + CAST_AI(npc_mistAI, (pCreature->AI()))->DoStart(pPlayer->GetGUID()); return true; } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp index 04963bf02c2..0392437eeb5 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp @@ -63,7 +63,7 @@ struct TRINITY_DLL_DECL npc_millhouse_manastormAI : public ScriptedAI { npc_millhouse_manastormAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; @@ -251,7 +251,7 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI { npc_warden_mellicharAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp index 9a9e0aa0966..37e12c60b2e 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp @@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI { boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); Intro = false; } @@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyriss_illusionAI : public ScriptedAI { boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp index 4dd70cb7d20..51ebe1f70c9 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI void EnterCombat(Unit *who) {} - void MoveInLineOfSight(Unit*) {} + void MoveInLineOfSight(Unit* who) {} void UpdateAI(const uint32 diff) { @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI { if(WarpGuid && check_Timer < diff) { - if(Unit *Warp = (Unit*)Unit::GetUnit(*m_creature, WarpGuid)) + if(Unit *Warp = Unit::GetUnit(*m_creature, WarpGuid)) { if(m_creature->IsWithinMeleeRange(Warp,2.5f)) { @@ -160,7 +160,7 @@ struct TRINITY_DLL_DECL boss_warp_splinterAI : public ScriptedAI float O = - m_creature->GetAngle(X,Y); if(Creature *pTreant = m_creature->SummonCreature(CREATURE_TREANT,treant_pos[i][0],treant_pos[i][1],treant_pos[i][2],O,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,25000)) - ((mob_treantAI*)pTreant->AI())->WarpGuid = m_creature->GetGUID(); + CAST_AI(mob_treantAI, pTreant->AI())->WarpGuid = m_creature->GetGUID(); } switch(rand()%2) { diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp index 132747a31bd..6a927191322 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp @@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI { boss_alarAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); DefaultMoveSpeedRate = m_creature->GetSpeedRate(MOVE_RUN); } @@ -432,7 +432,7 @@ struct TRINITY_DLL_DECL mob_ember_of_alarAI : public ScriptedAI { mob_ember_of_alarAI(Creature *c) : ScriptedAI(c) { - pInstance = (ScriptedInstance*)c->GetInstanceData(); + pInstance = c->GetInstanceData(); m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp index 6af14eceeed..f886ecae224 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp @@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI { boss_high_astromancer_solarianAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); defaultarmor = m_creature->GetArmor(); defaultsize = m_creature->GetFloatValue(OBJECT_FIELD_SCALE_X); @@ -393,7 +393,7 @@ struct TRINITY_DLL_DECL mob_solarium_priestAI : public ScriptedAI { mob_solarium_priestAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp index 7557e03f8e5..28bd1590f03 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp @@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL advisorbase_ai : public ScriptedAI advisorbase_ai(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void MoveInLineOfSight(Unit *who) @@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI { boss_kaelthasAI(Creature *c) : ScriptedAI(c), summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); AdvisorGuid[0] = 0; AdvisorGuid[1] = 0; AdvisorGuid[2] = 0; @@ -311,10 +311,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI void DeleteLegs() { - InstanceMap::PlayerList const &playerliste = ((InstanceMap*)m_creature->GetMap())->GetPlayers(); - InstanceMap::PlayerList::const_iterator it; - - Map::PlayerList const &PlayerList = ((InstanceMap*)m_creature->GetMap())->GetPlayers(); + Map::PlayerList const &PlayerList = m_creature->GetMap()->GetPlayers(); for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { Player* i_pl = i->getSource(); @@ -734,7 +731,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI if (!Advisor) error_log("TSCR: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i); else if(Target) - ((advisorbase_ai*)Advisor->AI())->Revive(Target); + CAST_AI(advisorbase_ai, Advisor->AI())->Revive(Target); } PhaseSubphase = 1; @@ -1400,7 +1397,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI { mob_phoenix_tkAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp index d5648e3a8ff..aa96435bbb1 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI { boss_void_reaverAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp index 34e131ba013..86e36072546 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI { boss_gatewatcher_iron_handAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp index cd18240901d..e14aba074cf 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI { boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -166,7 +166,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI { mob_ragin_flamesAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp index 6d128ad654e..2c5ffe06bfc 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp @@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_kriAI : public ScriptedAI { boss_kriAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -124,7 +124,7 @@ struct TRINITY_DLL_DECL boss_vemAI : public ScriptedAI { boss_vemAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -205,7 +205,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI { boss_yaujAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0); Creature* Summoned = m_creature->SummonCreature(15621,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,90000); if(Summoned && target) - ((CreatureAI*)Summoned->AI())->AttackStart(target); + (Summoned->AI())->AttackStart(target); } } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp index e3c10237635..584e87a3f97 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp @@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI { eye_of_cthunAI(Creature *c) : Scripted_NoMovementAI(c) { - pInst = (ScriptedInstance*)c->GetInstanceData(); + pInst = c->GetInstanceData(); if (!pInst) error_log("TSCR: No Instance eye_of_cthunAI"); } @@ -190,7 +190,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI void SpawnEyeTentacle(float x, float y) { Creature* Spawned; - Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) { Unit* target; @@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -435,7 +435,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI { cthunAI(Creature *c) : Scripted_NoMovementAI(c) { - pInst = (ScriptedInstance*)c->GetInstanceData(); + pInst = c->GetInstanceData(); if (!pInst) error_log("TSCR: No Instance eye_of_cthunAI"); } @@ -506,7 +506,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI void SpawnEyeTentacle(float x, float y) { Creature* Spawned; - Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) { Unit* target; @@ -629,20 +629,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned; //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); PhaseTimer = 0; }else PhaseTimer -= diff; @@ -775,7 +775,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -796,7 +796,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned = NULL; //Spawn claw tentacle on the random target - Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); + Spawned = me->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500); if (Spawned) Spawned->AI()->AttackStart(target); @@ -844,20 +844,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Creature* Spawned; //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); //Spawn flesh tentacle - Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); + Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0); if (!Spawned) FleshTentaclesKilled++; else - ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); + CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID()); PhaseTimer = 0; }else PhaseTimer -= diff; @@ -925,7 +925,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public Scripted_NoMovementAI uint32 KillSelfTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -988,7 +988,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public Scripted_NoMovementAI uint32 EvadeTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1083,7 +1083,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public Scripted_NoMovementAI uint32 EvadeTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1184,7 +1184,7 @@ struct TRINITY_DLL_DECL giant_eye_tentacleAI : public Scripted_NoMovementAI uint32 BeamTimer; uint64 Portal; - void JustDied(Unit*) + void JustDied(Unit* who) { Unit* p = Unit::GetUnit(*m_creature, Portal); if (p) @@ -1258,7 +1258,7 @@ void flesh_tentacleAI::JustDied(Unit* killer) Creature* Cthun = Unit::GetCreature(*m_creature, Parent); if (Cthun) - ((cthunAI*)(Cthun->AI()))->FleshTentcleKilled(); + CAST_AI(cthunAI, (Cthun->AI()))->FleshTentcleKilled(); else error_log("TSCR: flesh_tentacle: No Cthun"); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp index 1f3b317bf9d..ac50457c5fc 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI Rand = 0; Spawn = DoSpawnCreature(15630, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); if(Spawn) - ((CreatureAI*)Spawn->AI())->AttackStart(victim); + (Spawn->AI())->AttackStart(victim); } void EnterCombat(Unit *who) @@ -139,46 +139,46 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI DoTeleportPlayer(target, -8106.0142,1289.2900,-74.419533,5.112); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; case 1: DoTeleportPlayer(target, -7990.135354,1155.1907,-78.849319,2.608); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; case 2: DoTeleportPlayer(target,-8159.7753,1127.9064,-76.868660,0.675); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if(Hatchling) - ((CreatureAI*)Hatchling->AI())->AttackStart(target); + (Hatchling->AI())->AttackStart(target); break; } } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp index a8168615a5e..1fc47f68295 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI { boss_skeramAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); IsImage = false; } @@ -243,7 +243,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Unit *targetpl = SelectUnit(SELECT_TARGET_RANDOM, 0); if (targetpl->GetTypeId() == TYPEID_PLAYER) { - Group *grp = ((Player *)targetpl)->GetGroup(); + Group *grp = CAST_PLR(targetpl)->GetGroup(); if (grp) { for (int ici = 0; ici < TARGETICONCOUNT; ici++) @@ -283,7 +283,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Image1->SetHealth(m_creature->GetHealth() / 5); if (target) Image1->AI()->AttackStart(target); - ((boss_skeramAI*)Image1->AI())->IsImage = true; + CAST_AI(boss_skeramAI, Image1->AI())->IsImage = true; } Image2 = m_creature->SummonCreature(15263,i2->x, i2->y, i2->z, i2->r, TEMPSUMMON_CORPSE_DESPAWN, 30000); @@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI Image2->SetHealth(m_creature->GetHealth() / 5); if (target) Image2->AI()->AttackStart(target); - ((boss_skeramAI*)Image2->AI())->IsImage = true; + CAST_AI(boss_skeramAI, Image2->AI())->IsImage = true; } Invisible = true; } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp index d2fff0e569f..1c741bdd859 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp @@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI boss_twinemperorsAI(Creature *c): ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void TwinReset() @@ -96,11 +96,11 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { if(pInstance) { - return (Creature *)Unit::GetUnit((*m_creature), pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); + return Unit::GetCreature(*m_creature, pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); } else { - return (Creature *)0; + return NULL; } } @@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI pOtherBoss->SetHealth(0); pOtherBoss->setDeathState(JUST_DIED); pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - ((boss_twinemperorsAI *)pOtherBoss->AI())->DontYellWhenDead = true; + CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true; } if (!DontYellWhenDead) // I hope AI is not threaded DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_DEATH : SOUND_VN_DEATH); @@ -148,7 +148,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { // TODO: we should activate the other boss location so he can start attackning even if nobody // is near I dont know how to do that - ScriptedAI *otherAI = (ScriptedAI*)pOtherBoss->AI(); + ScriptedAI *otherAI = CAST_AI(ScriptedAI, pOtherBoss->AI()); if (!pOtherBoss->isInCombat()) { DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_AGGRO : SOUND_VN_AGGRO); @@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI if (Heal_Timer < diff) { Unit *pOtherBoss = GetOtherBoss(); - if (pOtherBoss && (pOtherBoss->GetDistance((const Creature *)m_creature) <= 60)) + if (pOtherBoss && (pOtherBoss->GetDistance(m_creature) <= 60)) { DoCast(pOtherBoss, SPELL_HEAL_BROTHER); Heal_Timer = 1000; @@ -230,7 +230,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI thismap->CreatureRelocation(m_creature, other_x, other_y, other_z, other_o); SetAfterTeleport(); - ((boss_twinemperorsAI*) pOtherBoss->AI())->SetAfterTeleport(); + CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->SetAfterTeleport(); } } @@ -316,9 +316,9 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { public: AnyBugCheck(WorldObject const* obj, float range) : i_obj(obj), i_range(range) {} - bool operator()(Unit* u) + bool operator()(Creature* u) { - Creature *c = (Creature *)u; + Creature *c = u; if (!i_obj->IsWithinDistInMap(c, i_range)) return false; return (c->GetEntry() == 15316 || c->GetEntry() == 15317); @@ -347,7 +347,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI for(std::list<Creature*>::iterator iter = unitList.begin(); iter != unitList.end(); ++iter) { - Creature *c = (Creature *)(*iter); + Creature *c = *iter; if (c && c->isDead()) { c->Respawn(); @@ -434,8 +434,8 @@ struct TRINITY_DLL_DECL boss_veknilashAI : public boss_twinemperorsAI void CastSpellOnBug(Creature *target) { target->setFaction(14); - ((CreatureAI*)target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget()); - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_MUTATE_BUG); + (target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget()); + SpellEntry *spell = GET_SPELL(SPELL_MUTATE_BUG); uint8 eff_mask=0; for (int i=0; i<3; i++) { @@ -520,7 +520,7 @@ struct TRINITY_DLL_DECL boss_veklorAI : public boss_twinemperorsAI void CastSpellOnBug(Creature *target) { target->setFaction(14); - SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_EXPLODEBUG); + SpellEntry *spell = GET_SPELL(SPELL_EXPLODEBUG); uint8 eff_mask=0; for (int i=0; i<3; i++) { diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp index 30106f62180..b45097d7f97 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp @@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI void GiveBuddyMyList(Creature *c) { - aqsentinelAI *cai = (aqsentinelAI *)(c->AI()); + aqsentinelAI *cai = CAST_AI(aqsentinelAI, (c)->AI()); for (int i=0; i<3; i++) if (nearby[i] && nearby[i]!=c) cai->AddBuddyToList(nearby[i]); @@ -213,8 +213,8 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI if (!nearby[bli]) break; AddSentinelsNear(nearby[bli]); - ((aqsentinelAI *)nearby[bli]->AI())->gatherOthersWhenAggro = false; - ((aqsentinelAI *)nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities)); + CAST_AI(aqsentinelAI, nearby[bli]->AI())->gatherOthersWhenAggro = false; + CAST_AI(aqsentinelAI, nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities)); } /*if (bli < 3) DoYell("I dont have enough buddies.", LANG_NEUTRAL, 0);*/ @@ -254,7 +254,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI continue; eff_mask=1<<i; } - SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry *)spell, id, eff_mask); + SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry*)spell, id, eff_mask); m_creature->AddAura(a); if (id == SPELL_KNOCK_BUFF) @@ -273,7 +273,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI DoZoneInCombat(); } - void JustDied(Unit*) + void JustDied(Unit* who) { for (int ni=0; ni<3; ni++) { @@ -286,7 +286,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI if (h > sent->GetMaxHealth()) h = sent->GetMaxHealth(); sent->SetHealth(h); - ((aqsentinelAI *)sent->AI())->GainSentinelAbility(ability); + CAST_AI(aqsentinelAI, sent->AI())->GainSentinelAbility(ability); } } diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp index 2e95c08b5c1..6170ba35b90 100644 --- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp @@ -81,7 +81,7 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI if( done_by->GetTypeId() == TYPEID_PLAYER ) if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 30 ) { - if( Group* pGroup = ((Player*)done_by)->GetGroup() ) + if( Group* pGroup = CAST_PLR(done_by)->GetGroup() ) { for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) { @@ -96,10 +96,10 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI } } } else - if( ((Player*)done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && - ((Player*)done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 ) + if( CAST_PLR(done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE && + CAST_PLR(done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 ) { - ((Player*)done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); + CAST_PLR(done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE); CanDoQuest = true; } } @@ -215,12 +215,12 @@ struct TRINITY_DLL_DECL mob_netherweb_victimAI : public ScriptedAI { if( Killer->GetTypeId() == TYPEID_PLAYER ) { - if( ((Player*)Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE ) { if( rand()%100 < 25 ) { DoSpawnCreature(QUEST_TARGET,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000); - ((Player*)Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID()); + CAST_PLR(Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID()); }else DoSpawnCreature(netherwebVictims[rand()%6],0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000); @@ -322,7 +322,7 @@ bool GossipSelect_npc_floon(Player *player, Creature *_Creature, uint32 sender, player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE_FL); DoScriptText(SAY_FLOON_ATTACK, _Creature, player); - ((npc_floonAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_floonAI, _Creature->AI())->AttackStart(player); } return true; } @@ -368,10 +368,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI case 29:DoScriptText(SAY_PROGRESS_4, m_creature, player); if (player) { - if(((Player*)player)->GetTeam() == ALLIANCE) - ((Player*)player)->GroupEventHappens(QUEST_EFTW_A, m_creature); - else if(((Player*)player)->GetTeam() == HORDE) - ((Player*)player)->GroupEventHappens(QUEST_EFTW_H, m_creature); + if(CAST_PLR(player)->GetTeam() == ALLIANCE) + CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_A, m_creature); + else if(CAST_PLR(player)->GetTeam() == HORDE) + CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_H, m_creature); } Completed = true; m_creature->SetInFront(player); break; case 30: m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break; @@ -395,10 +395,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI Player* player = Unit::GetPlayer(PlayerGUID); if (player && !Completed) { - if(((Player*)player)->GetTeam() == ALLIANCE) - ((Player*)player)->FailQuest(QUEST_EFTW_A); - else if(((Player*)player)->GetTeam() == HORDE) - ((Player*)player)->FailQuest(QUEST_EFTW_H); + if(CAST_PLR(player)->GetTeam() == ALLIANCE) + CAST_PLR(player)->FailQuest(QUEST_EFTW_A); + else if(CAST_PLR(player)->GetTeam() == HORDE) + CAST_PLR(player)->FailQuest(QUEST_EFTW_H); } } } @@ -413,7 +413,7 @@ bool QuestAccept_npc_isla_starmane(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -459,7 +459,7 @@ CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature) thisAI->AddWaypoint(33, -2396.81, 3517.17, -3.55); thisAI->AddWaypoint(34, -2439.23, 3523.00, -1.05); - return (CreatureAI*)thisAI; + return thisAI; } /*###### diff --git a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp index b4d89470229..7406d259db1 100644 --- a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp +++ b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp @@ -64,7 +64,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {} case 70: DoScriptText(SAY_FINISH, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature); break; } @@ -87,7 +87,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {} if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_HOMEWARD_BOUND); + CAST_PLR(player)->FailQuest(QUEST_HOMEWARD_BOUND); } } @@ -101,7 +101,7 @@ bool QuestAccept_npc_swiftmountain(Player* player, Creature* creature, Quest con { if (quest->GetQuestId() == QUEST_HOMEWARD_BOUND) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->setFaction(113); } @@ -186,7 +186,7 @@ CreatureAI* GetAI_npc_swiftmountain(Creature *_Creature) thisAI->AddWaypoint(70, -4938.3, -1100.41, -50.71, 5000); thisAI->AddWaypoint(71, -4937.34, -1102.87, -49.82); - return (CreatureAI*)thisAI; + return thisAI; } /*##### diff --git a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp index 78619c47782..fb558dc31a3 100644 --- a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp +++ b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp @@ -52,8 +52,8 @@ struct TRINITY_DLL_DECL npc_calvin_montagueAI : public ScriptedAI void JustDied(Unit* Killer) { if( Killer->GetTypeId() == TYPEID_PLAYER ) - if( ((Player*)Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE ) - ((Player*)Killer)->AreaExploredOrEventHappens(QUEST_590); + if( CAST_PLR(Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE ) + CAST_PLR(Killer)->AreaExploredOrEventHappens(QUEST_590); } void UpdateAI(const uint32 diff) @@ -75,7 +75,7 @@ bool QuestAccept_npc_calvin_montague(Player* player, Creature* creature, Quest c { creature->setFaction(FACTION_HOSTILE); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2); - ((npc_calvin_montagueAI*)creature->AI())->AttackStart(player); + CAST_AI(npc_calvin_montagueAI, creature->AI())->AttackStart(player); } return true; } diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp index a75b9310824..3221466bfd3 100644 --- a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp +++ b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp @@ -51,7 +51,7 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI { boss_archaedasAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } uint32 Tremor_Timer; @@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_archaedas_minionsAI : public ScriptedAI { mob_archaedas_minionsAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } uint32 Arcing_Timer; @@ -336,7 +336,7 @@ bool GOHello_go_altar_of_archaedas(Player *player, GameObject* go) return false; // not enough people } - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (!pInstance) return false; pInstance->SetData(NULL,0); pInstance->SetData64(0,player->GetGUID()); // activate archaedas @@ -359,7 +359,7 @@ struct TRINITY_DLL_DECL mob_stonekeepersAI : public ScriptedAI { mob_stonekeepersAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()); + pInstance = (m_creature->GetInstanceData()); } bool InCombat; @@ -423,7 +423,7 @@ static uint32 altarOfTheKeeperCounter=0; bool GOHello_go_altar_of_the_keepers(Player *player, GameObject* go) { - ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData()); + ScriptedInstance* pInstance = (player->GetInstanceData()); if (!pInstance) return true; bool alreadyUsed; diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp index b4e12f60ead..482165b0b55 100644 --- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp +++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp @@ -134,8 +134,8 @@ bool ChooseReward_npc_lady_sylvanas_windrunner(Player *player, Creature *_Creatu { if( _Quest->GetQuestId() == 9180 ) { - ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->LamentEvent = true; - ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT); + CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->LamentEvent = true; + CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT); _Creature->CastSpell(_Creature,SPELL_SYLVANAS_CAST,false); for( uint8 i = 0; i < 4; ++i) diff --git a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp index c3987526126..f8e7976f541 100644 --- a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp +++ b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp @@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI case 55: DoScriptText(SAY_FINISH, m_creature, player); if (player && player->GetTypeId() == TYPEID_PLAYER) - ((Player*)player)->GroupEventHappens(QUEST_CHASING_AME,m_creature); + CAST_PLR(player)->GroupEventHappens(QUEST_CHASING_AME,m_creature); break; } @@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI if (PlayerGUID) { if (Player* player = Unit::GetPlayer(PlayerGUID)) - ((Player*)player)->FailQuest(QUEST_CHASING_AME); + CAST_PLR(player)->FailQuest(QUEST_CHASING_AME); } } @@ -124,7 +124,7 @@ bool QuestAccept_npc_ame(Player* player, Creature* creature, Quest const* quest) { if (quest->GetQuestId() == QUEST_CHASING_AME) { - ((npc_escortAI*)(creature->AI()))->Start(false, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(false, true, false, player->GetGUID()); DoScriptText(SAY_READY, creature, player); creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); // Change faction so mobs attack @@ -194,7 +194,7 @@ CreatureAI* GetAI_npc_ame(Creature *_Creature) thisAI->AddWaypoint(55, -6302.43, -1181.32, -269.328, 5000); thisAI->AddWaypoint(56, -6298.87, -1185.79, -269.278); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_ungoro_crater() diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp index f164e473148..e3c66109dfc 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp @@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI { boss_ingvar_the_plundererAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } @@ -285,7 +285,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI { mob_annhylde_the_callerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } float x,y,z; @@ -357,15 +357,15 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI Resurect_Phase = 2; }else if (Resurect_Phase == 2) { - Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR)); + Creature* ingvar = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_INGVAR)); if(ingvar) { ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY); //ingvar->CastSpell(ingvar,SPELL_INGVAR_TRANSFORM,false); ingvar->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_INGVAR_UNDEAD); // Visual Hack - when he dies he becomes human model -> wrong - Creature* c_ingvar = (Creature*)ingvar; + Creature* c_ingvar = ingvar; - ((boss_ingvar_the_plundererAI*)(c_ingvar->AI()))->StartZombiePhase(); + CAST_AI(boss_ingvar_the_plundererAI, (c_ingvar->AI()))->StartZombiePhase(); m_creature->GetMotionMaster()->MovePoint(2,x+1,y,z+30); Resurect_Phase++; @@ -388,7 +388,7 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI { mob_ingvar_throw_dummyAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = c->GetMap()->IsHeroic(); } diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp index 3ba7d16dd41..a145ddcc425 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI { boss_kelesethAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic(); } @@ -193,7 +193,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI Creature* Chains = m_creature->SummonCreature(CREATURE_FROSTTOMB, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000); if(Chains) { - ((mob_frost_tombAI*)Chains->AI())->SetPrisoner(target); + CAST_AI(mob_frost_tombAI, Chains->AI())->SetPrisoner(target); Chains->CastSpell(target, SPELL_FROST_TOMB, true); DoScriptText(SAY_FROST_TOMB, m_creature); @@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI { mob_vrykul_skeletonAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp index 8e3e08b8b71..8078716d2d8 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp @@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI { boss_skarvald_the_constructorAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI { Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN)); if(dalronn && dalronn->isDead()) - ((Creature*)dalronn)->Respawn(); + CAST_CRE(dalronn)->Respawn(); if(pInstance) pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED); @@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI { boss_dalronn_the_controllerAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic(); } @@ -238,7 +238,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI { Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD)); if(skarvald && skarvald->isDead()) - ((Creature*)skarvald)->Respawn(); + CAST_CRE(skarvald)->Respawn(); if(pInstance) pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED); diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp index 73ffafca12f..517d1270f73 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp @@ -30,7 +30,7 @@ struct TRINITY_DLL_DECL npc_dragonflayer_forge_masterAI : public ScriptedAI { npc_dragonflayer_forge_masterAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); fm_Type = 0; } diff --git a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp index 5ab59db8c40..ce0d76e643d 100644 --- a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp +++ b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp @@ -122,32 +122,32 @@ struct TRINITY_DLL_DECL npc_the_scourge_cauldronAI : public ScriptedAI switch(m_creature->GetAreaId()) { case 199: //felstone - if( ((Player*)who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11075,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 200: //dalson - if( ((Player*)who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11077,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 201: //gahrron - if( ((Player*)who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11078,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); } break; case 202: //writhing - if( ((Player*)who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE || - ((Player*)who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE ) + if( CAST_PLR(who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE || + CAST_PLR(who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE ) { DoSpawnCreature(11076,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); DoDie(); diff --git a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp index 083820e7df9..f9e04a5186f 100644 --- a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp +++ b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp @@ -165,7 +165,7 @@ bool QuestAccept_npc_daphne_stilwell(Player* pPlayer, Creature* pCreature, const if (pQuest->GetQuestId() == QUEST_TOME_VALOR) { DoScriptText(SAY_DS_START, pCreature); - ((npc_escortAI*)(pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID()); + CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID()); } return true; @@ -177,7 +177,7 @@ CreatureAI* GetAI_npc_daphne_stilwell(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } /*###### @@ -251,7 +251,7 @@ bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest co { if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID()); DoScriptText(SAY_START, creature, player); } @@ -264,7 +264,7 @@ CreatureAI* GetAI_npc_defias_traitor(Creature* pCreature) thisAI->FillPointMovementListForCreature(); - return (CreatureAI*)thisAI; + return thisAI; } void AddSC_westfall() diff --git a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp index 57cd2c92d77..67830d78a10 100644 --- a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp +++ b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp @@ -40,9 +40,9 @@ bool GossipSelect_npc_demolisher_engineerer(Player* player, Creature* me, uint32 player->CLOSE_GOSSIP_MENU(); switch(uiAction - GOSSIP_ACTION_INFO_DEF) { - case 0: player->CastSpell(player, 56663, false); break; - case 1: player->CastSpell(player, 56575, false); break; - case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false); break; + case 0: player->CastSpell(player, 56663, false, NULL, NULL, me->GetGUID()); break; + case 1: player->CastSpell(player, 56575, false, NULL, NULL, me->GetGUID()); break; + case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false, NULL, NULL, me->GetGUID()); break; } return true; diff --git a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp index 6fdb4421b94..a4f2f32b250 100644 --- a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp +++ b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp @@ -333,7 +333,7 @@ bool QuestAccept_npc_kayra_longmane(Player* player, Creature* creature, Quest co { if (quest->GetQuestId() == QUEST_EFU) { - ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID()); + CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID()); creature->setFaction(113); } return true; @@ -371,7 +371,7 @@ CreatureAI* GetAI_npc_kayra_longmaneAI(Creature* _Creature) thisAI->AddWaypoint(25, -488.45, 5447.83, 22.38); thisAI->AddWaypoint(26, -449.65, 5463.78, 21.77, 11000);//SAY_PROGRESS_6 - return (CreatureAI*)thisAI; + return thisAI; } /*###### ## AddSC diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp index 85ba26ef20d..7861232026e 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp @@ -61,10 +61,10 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI { boss_akilzonAI(Creature *c) : ScriptedAI(c) { - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ELECTRICAL_DAMAGE); + SpellEntry *TempSpell = GET_SPELL(SPELL_ELECTRICAL_DAMAGE); if(TempSpell) TempSpell->EffectBasePoints[1] = 49;//disable bugged lightning until fixed in core - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -383,7 +383,7 @@ struct TRINITY_DLL_DECL mob_soaring_eagleAI : public ScriptedAI void EnterCombat(Unit *who) {DoZoneInCombat();} - void MoveInLineOfSight(Unit *) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32, uint32) { diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp index 279e8985774..fc1fb3ce592 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp @@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI { boss_halazziAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); // need to find out what controls totem's spell cooldown - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_LIGHTNING); + SpellEntry *TempSpell = GET_SPELL(SPELL_LIGHTNING); if(TempSpell && TempSpell->CastingTimeIndex != 5) TempSpell->CastingTimeIndex = 5; // 2000 ms casting time } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp index 26229261905..b57cc4e0753 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp @@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_hexlord_addAI : public ScriptedAI boss_hexlord_addAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } void Reset() {} @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { boss_hex_lord_malacrassAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); SelectAddEntry(); for(uint8 i = 0; i < 4; ++i) AddGUID[i] = 0; @@ -257,7 +257,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]); if(Temp && Temp->isAlive()) - ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim()); + CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim()); else { EnterEvadeMode(); @@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI { Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]); if(Temp && Temp->isAlive() && !Temp->getVictim()) - ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim()); + CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim()); } CheckAddState_Timer = 5000; }else CheckAddState_Timer -= diff; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp index 852be55c195..e8564c84a10 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp @@ -101,9 +101,9 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI { boss_janalaiAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); - SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HATCH_EGG); + SpellEntry *TempSpell = GET_SPELL(SPELL_HATCH_EGG); if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1) { TempSpell->EffectImplicitTargetA[0] = 1; @@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI { mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -543,8 +543,8 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI } void EnterCombat(Unit* who) {} - void AttackStart(Unit*) {} - void MoveInLineOfSight(Unit*) {} + void AttackStart(Unit* who) {} + void MoveInLineOfSight(Unit* who) {} void MovementInform(uint32, uint32) { if(waypoint == 5) @@ -612,7 +612,7 @@ struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI { mob_hatchlingAI(Creature *c) : ScriptedAI(c) { - pInstance =((ScriptedInstance*)c->GetInstanceData()); + pInstance =(c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp index 1f810059997..96038629cb3 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp @@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI { MoveEvent = true; MovePhase = 0; - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp index c342b8283d5..ea1eddff107 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp @@ -143,7 +143,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI { boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(m_creature) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp index 8bc21dbba1d..dd16b652c0d 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp @@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL npc_forest_frogAI : public ScriptedAI { npc_forest_frogAI(Creature* c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL npc_zulaman_hostageAI : public ScriptedAI uint64 PlayerGUID; void Reset() {} void EnterCombat(Unit *who) {} - void JustDied(Unit *) + void JustDied(Unit* who) { Player* player = Unit::GetPlayer(PlayerGUID); if(player) player->SendLoot(m_creature->GetGUID(), LOOT_CORPSE); @@ -139,7 +139,7 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3 return true; _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); + ScriptedInstance* pInstance = (_Creature->GetInstanceData()); if(pInstance) { //uint8 progress = pInstance->GetData(DATA_CHESTLOOTED); @@ -158,8 +158,8 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3 /*Creature* summon = _Creature->SummonCreature(HostageInfo[progress], x-2, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 0); if(summon) { - ((npc_zulaman_hostageAI*)summon->AI())->PlayerGUID = player->GetGUID(); - ((npc_zulaman_hostageAI*)summon->AI())->IsLoot = true; + CAST_AI(npc_zulaman_hostageAI, summon->AI())->PlayerGUID = player->GetGUID(); + CAST_AI(npc_zulaman_hostageAI, summon->AI())->IsLoot = true; summon->SetDisplayId(10056); summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); diff --git a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp index bdc5c264c51..80db24d7871 100644 --- a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp +++ b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp @@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL npc_sergeant_blyAI : public ScriptedAI { npc_sergeant_blyAI(Creature *c) : ScriptedAI(c) { - //pInstance = ((ScriptedInstance*)c->GetInstanceData()); + //pInstance = (c->GetInstanceData()); } //ScriptedInstance* pInstance; @@ -121,7 +121,7 @@ bool GossipSelect_npc_sergeant_bly(Player *player, Creature *_Creature, uint32 s { player->CLOSE_GOSSIP_MENU(); _Creature->setFaction(FACTION_HOSTILE); - ((npc_sergeant_blyAI*)_Creature->AI())->AttackStart(player); + CAST_AI(npc_sergeant_blyAI, _Creature->AI())->AttackStart(player); } return true; } @@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL npc_weegli_blastfuseAI : public ScriptedAI { npc_weegli_blastfuseAI(Creature *c) : ScriptedAI(c) { - //pInstance = ((ScriptedInstance*)c->GetInstanceData()); + //pInstance = (c->GetInstanceData()); } //ScriptedInstance* pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp index a0f87e6cce5..588a4db8271 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp @@ -38,7 +38,7 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI { boss_arlokkAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp index 0de85d55986..2202fecc19c 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_hakkarAI : public ScriptedAI { boss_hakkarAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp index 37a913a5df3..7208fcf3ec1 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp @@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_hazzarahAI : public ScriptedAI Illusion = m_creature->SummonCreature(15163,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,30000); if(Illusion) - ((CreatureAI*)Illusion->AI())->AttackStart(target); + (Illusion->AI())->AttackStart(target); } Illusions_Timer = 15000 + rand()%10000; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp index b691bc864ce..f4d99434402 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp @@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_jeklikAI : public ScriptedAI { boss_jeklikAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -212,7 +212,7 @@ struct TRINITY_DLL_DECL mob_batriderAI : public ScriptedAI { mob_batriderAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp index 26d19c8763b..b5271291a4d 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp @@ -43,7 +43,7 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI { boss_jindoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; @@ -168,7 +168,7 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI { mob_healing_wardAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Heal_Timer; @@ -207,7 +207,7 @@ struct TRINITY_DLL_DECL mob_shade_of_jindoAI : public ScriptedAI { mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 ShadowShock_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp index 13eac015d6d..3c10e16dde7 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp @@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI { boss_mandokirAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 KillCount; @@ -270,7 +270,7 @@ struct TRINITY_DLL_DECL mob_ohganAI : public ScriptedAI { mob_ohganAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 SunderArmor_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp index f85523dc65e..e77f08bbc39 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp @@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI { boss_marliAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp index 0dcfa4549db..23fe5901be9 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp @@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_thekalAI : public ScriptedAI { boss_thekalAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 MortalCleave_Timer; @@ -241,7 +241,7 @@ struct TRINITY_DLL_DECL mob_zealot_lorkhanAI : public ScriptedAI { mob_zealot_lorkhanAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 Shield_Timer; @@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL mob_zealot_zathAI : public ScriptedAI { mob_zealot_zathAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } uint32 SweepingStrikes_Timer; diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp index 7ab59285ebe..7c72b6f79c0 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp @@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI { boss_venoxisAI(Creature *c) : ScriptedAI(c) { - pInstance = ((ScriptedInstance*)c->GetInstanceData()); + pInstance = (c->GetInstanceData()); } ScriptedInstance *pInstance; diff --git a/src/game/AccountMgr.cpp b/src/game/AccountMgr.cpp index 86de06a30e0..66660766dae 100644 --- a/src/game/AccountMgr.cpp +++ b/src/game/AccountMgr.cpp @@ -18,11 +18,12 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "AccountMgr.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "AccountMgr.h" #include "ObjectAccessor.h" #include "Player.h" -#include "Policies/SingletonImp.h" #include "Util.h" extern DatabaseType LoginDatabase; diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h index a402b48ad4f..2be0178998e 100644 --- a/src/game/AccountMgr.h +++ b/src/game/AccountMgr.h @@ -21,9 +21,10 @@ #ifndef _ACCMGR_H #define _ACCMGR_H +#include <string> + #include "Common.h" #include "Policies/Singleton.h" -#include <string> enum AccountOpResult { diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 2cf8949d4a7..c6ffd223e98 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -16,24 +16,26 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "AchievementMgr.h" #include "Common.h" -#include "Player.h" -#include "WorldPacket.h" #include "DBCEnums.h" -#include "GameEventMgr.h" #include "ObjectMgr.h" -#include "Guild.h" -#include "Database/DatabaseEnv.h" #include "World.h" -#include "SpellMgr.h" +#include "WorldPacket.h" +#include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "AchievementMgr.h" #include "ArenaTeam.h" -#include "ProgressBar.h" -#include "GridNotifiersImpl.h" #include "CellImpl.h" +#include "GameEventMgr.h" +#include "GridNotifiersImpl.h" +#include "Guild.h" #include "Language.h" +#include "Player.h" +#include "ProgressBar.h" +#include "SpellMgr.h" + -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1(AchievementGlobalMgr); diff --git a/src/game/AchievementMgr.h b/src/game/AchievementMgr.h index 73729f30998..3dd87737960 100644 --- a/src/game/AchievementMgr.h +++ b/src/game/AchievementMgr.h @@ -18,15 +18,15 @@ #ifndef __MANGOS_ACHIEVEMENTMGR_H #define __MANGOS_ACHIEVEMENTMGR_H +#include <map> +#include <string> + #include "Common.h" #include "Policies/Singleton.h" #include "Database/DatabaseEnv.h" #include "DBCEnums.h" #include "DBCStores.h" -#include <map> -#include <string> - typedef std::list<AchievementCriteriaEntry const*> AchievementCriteriaEntryList; typedef std::list<AchievementEntry const*> AchievementEntryList; diff --git a/src/game/AddonHandler.cpp b/src/game/AddonHandler.cpp index 4dd25c56b26..cac4261944b 100644 --- a/src/game/AddonHandler.cpp +++ b/src/game/AddonHandler.cpp @@ -18,12 +18,14 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "zlib/zlib.h" + #include "AddonHandler.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" #include "Opcodes.h" + #include "Log.h" -#include "Policies/SingletonImp.h" -#include "zlib/zlib.h" INSTANTIATE_SINGLETON_1( AddonHandler ); diff --git a/src/game/AddonHandler.h b/src/game/AddonHandler.h index fd9ad395924..f0d5bcac7f1 100644 --- a/src/game/AddonHandler.h +++ b/src/game/AddonHandler.h @@ -22,9 +22,10 @@ #define __ADDONHANDLER_H #include "Common.h" +#include "Config/ConfigEnv.h" #include "Policies/Singleton.h" + #include "WorldPacket.h" -#include "Config/ConfigEnv.h" class AddonHandler { diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index 5b2685017cf..f777b0ee8b1 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "WorldPacket.h" #include "ObjectMgr.h" +#include "WorldPacket.h" + #include "ArenaTeam.h" ArenaTeam::ArenaTeam() diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index ab3319ce2ad..be802e822c0 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -18,14 +18,15 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "WorldSession.h" +#include "Player.h" +#include "World.h" #include "WorldPacket.h" -#include "Log.h" +#include "WorldSession.h" #include "Database/DatabaseEnv.h" -#include "Player.h" -#include "ObjectMgr.h" + #include "ArenaTeam.h" -#include "World.h" +#include "Log.h" +#include "ObjectMgr.h" #include "SocialMgr.h" void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recv_data) diff --git a/src/game/AuctionHouseBot.cpp b/src/game/AuctionHouseBot.cpp index 27315f8e2e9..4ef4eb0e494 100644 --- a/src/game/AuctionHouseBot.cpp +++ b/src/game/AuctionHouseBot.cpp @@ -1,17 +1,19 @@ -#include "AuctionHouseBot.h" -#include "Bag.h" +#include <vector> +#include <iostream> +#include "time.h" + +#include "ObjectMgr.h" +#include "World.h" +#include "WorldSession.h" #include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AuctionHouseBot.h" +#include "AuctionHouseMgr.h" +#include "Bag.h" #include "Item.h" #include "Log.h" -#include "ObjectMgr.h" -#include "AuctionHouseMgr.h" #include "Player.h" -#include "World.h" -#include "WorldSession.h" -#include "time.h" -#include <vector> -#include <iostream> using namespace std; diff --git a/src/game/AuctionHouseBot.h b/src/game/AuctionHouseBot.h index 8d5c067a354..9cd073885a3 100644 --- a/src/game/AuctionHouseBot.h +++ b/src/game/AuctionHouseBot.h @@ -1,8 +1,11 @@ #ifndef AUCTION_HOUSE_BOT_H #define AUCTION_HOUSE_BOT_H + #include "Common.h" -#include "Log.h" #include "Config/ConfigEnv.h" + +#include "Log.h" + #define AHB_GREY 0 #define AHB_WHITE 1 #define AHB_GREEN 2 diff --git a/src/game/AuctionHouseHandler.cpp b/src/game/AuctionHouseHandler.cpp index 1a70162de11..d1f399bf570 100644 --- a/src/game/AuctionHouseHandler.cpp +++ b/src/game/AuctionHouseHandler.cpp @@ -18,17 +18,19 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "ObjectMgr.h" +#include "Player.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" + +#include "AuctionHouseBot.h" +#include "AuctionHouseMgr.h" #include "Log.h" -#include "World.h" -#include "ObjectMgr.h" -#include "Player.h" +#include "Opcodes.h" #include "UpdateMask.h" -#include "AuctionHouseMgr.h" #include "Util.h" -#include "AuctionHouseBot.h" + //please DO NOT use iterator++, because it is slower than ++iterator!!! //post-incrementation is always slower than pre-incrementation ! diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp index 1b3a96f7584..c8876c36063 100644 --- a/src/game/AuctionHouseMgr.cpp +++ b/src/game/AuctionHouseMgr.cpp @@ -17,23 +17,23 @@ */ #include "Common.h" +#include "ObjectMgr.h" +#include "Player.h" +#include "World.h" +#include "WorldPacket.h" +#include "WorldSession.h" #include "Database/DatabaseEnv.h" #include "Database/SQLStorage.h" +#include "Policies/SingletonImp.h" #include "DBCStores.h" -#include "ProgressBar.h" #include "AccountMgr.h" #include "AuctionHouseMgr.h" #include "Item.h" #include "Language.h" #include "Log.h" -#include "ObjectMgr.h" -#include "Player.h" -#include "World.h" -#include "WorldPacket.h" -#include "WorldSession.h" +#include "ProgressBar.h" -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1( AuctionHouseMgr ); @@ -66,9 +66,41 @@ AuctionHouseObject * AuctionHouseMgr::GetAuctionsMap( uint32 factionTemplateId ) uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item *pItem) { - uint32 deposit = pItem->GetProto()->SellPrice * pItem->GetCount() * (time / MIN_AUCTION_TIME ); - - return uint32(deposit * entry->depositPercent * 3 * sWorld.getRate(RATE_AUCTION_DEPOSIT) / 100.0f ); + uint32 MSV = pItem->GetProto()->SellPrice; + double deposit; + double faction_pct; + if (MSV > 0) + { + if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION)) + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else + { + FactionTemplateEntry const* u_entry = sFactionTemplateStore.LookupEntry(entry->houseId); + if(!u_entry) + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else if(u_entry->ourMask & FACTION_MASK_ALLIANCE) + faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else if(u_entry->ourMask & FACTION_MASK_HORDE) + faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + else + faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT)); + } + deposit = ((double)MSV * faction_pct * (double)pItem->GetCount()) * (double)(time / MIN_AUCTION_TIME ); + } + else + { + faction_pct = 0.0f; + deposit = 0.0f; + } + //sLog.outString("SellPrice:\t\t%u", MSV); + //sLog.outString("Deposit Percent:\t%f", faction_pct); + //sLog.outString("Min Auction Time:\t%u", (time / MIN_AUCTION_TIME )); + //sLog.outString("Count:\t\t\t%u", pItem->GetCount()); + //sLog.outString("Deposit:\t\t%f", deposit); + if (deposit > 0) + return (uint32)deposit; + else + return 0; } //does not clear ram diff --git a/src/game/AuctionHouseMgr.h b/src/game/AuctionHouseMgr.h index cfc68497e47..2a106cf20f9 100644 --- a/src/game/AuctionHouseMgr.h +++ b/src/game/AuctionHouseMgr.h @@ -21,9 +21,10 @@ #ifndef _AUCTION_HOUSE_MGR_H #define _AUCTION_HOUSE_MGR_H -#include "SharedDefines.h" #include "Policies/Singleton.h" +#include "SharedDefines.h" + class Item; class Player; class WorldPacket; diff --git a/src/game/Bag.cpp b/src/game/Bag.cpp index 1edbc06474d..86befec7550 100644 --- a/src/game/Bag.cpp +++ b/src/game/Bag.cpp @@ -19,9 +19,10 @@ */ #include "Common.h" -#include "Bag.h" #include "ObjectMgr.h" #include "Database/DatabaseEnv.h" + +#include "Bag.h" #include "Log.h" #include "UpdateData.h" diff --git a/src/game/Bag.h b/src/game/Bag.h index 1c341b5611d..3ae786512ce 100644 --- a/src/game/Bag.h +++ b/src/game/Bag.h @@ -24,8 +24,8 @@ // Maximum 36 Slots ( (CONTAINER_END - CONTAINER_FIELD_SLOT_1)/2 #define MAX_BAG_SIZE 36 // 2.0.12 -#include "ItemPrototype.h" #include "Item.h" +#include "ItemPrototype.h" class Bag : public Item { diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 43c3516722b..3fd554c5163 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -18,22 +18,24 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" #include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + +#include "ArenaTeam.h" #include "BattleGround.h" #include "BattleGroundMgr.h" #include "Creature.h" -#include "MapManager.h" +#include "Formulas.h" +#include "GridNotifiersImpl.h" +#include "Group.h" #include "Language.h" +#include "MapManager.h" +#include "Object.h" #include "SpellAuras.h" -#include "ArenaTeam.h" -#include "World.h" -#include "Group.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" #include "Util.h" -#include "Formulas.h" -#include "GridNotifiersImpl.h" + namespace MaNGOS { @@ -1277,10 +1279,56 @@ void BattleGround::RemoveFromBGFreeSlotQueue() // returns the number how many players can join battleground to MaxPlayersPerTeam uint32 BattleGround::GetFreeSlotsForTeam(uint32 Team) const { - //return free slot count to MaxPlayerPerTeam - if (GetStatus() == STATUS_WAIT_JOIN || GetStatus() == STATUS_IN_PROGRESS) + //if BG is starting ... invite anyone + if (GetStatus() == STATUS_WAIT_JOIN) return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; - + //if BG is already started .. do not allow to join too much players of one faction + uint32 otherTeam; + uint32 otherIn; + if (Team == ALLIANCE) + { + otherTeam = GetInvitedCount(HORDE); + otherIn = GetPlayersCountByTeam(HORDE); + } + else + { + otherTeam = GetInvitedCount(ALLIANCE); + otherIn = GetPlayersCountByTeam(ALLIANCE); + } + if (GetStatus() == STATUS_IN_PROGRESS) + { + // difference based on ppl invited (not necessarily entered battle) + // default: allow 0 + uint32 diff = 0; + // allow join one person if the sides are equal (to fill up bg to minplayersperteam) + if (otherTeam == GetInvitedCount(Team)) + diff = 1; + // allow join more ppl if the other side has more players + else if(otherTeam > GetInvitedCount(Team)) + diff = otherTeam - GetInvitedCount(Team); + + // difference based on max players per team (don't allow inviting more) + uint32 diff2 = (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; + // difference based on players who already entered + // default: allow 0 + uint32 diff3 = 0; + // allow join one person if the sides are equal (to fill up bg minplayersperteam) + if (otherIn == GetPlayersCountByTeam(Team)) + diff3 = 1; + // allow join more ppl if the other side has more players + else if (otherIn > GetPlayersCountByTeam(Team)) + diff3 = otherIn - GetPlayersCountByTeam(Team); + // or other side has less than minPlayersPerTeam + else if (GetInvitedCount(Team) <= GetMinPlayersPerTeam()) + diff3 = GetMinPlayersPerTeam() - GetInvitedCount(Team) + 1; + + // return the minimum of the 3 differences + + // min of diff and diff 2 + diff = diff < diff2 ? diff : diff2; + // min of diff, diff2 and diff3 + return diff < diff3 ? diff : diff3 ; + } return 0; } @@ -1795,7 +1843,7 @@ void BattleGround::SetHoliday(bool is_holiday) int32 BattleGround::GetObjectType(uint64 guid) { - for(uint32 i = 0;i <= m_BgObjects.size(); i++) + for(uint32 i = 0; i < m_BgObjects.size(); ++i) if(m_BgObjects[i] == guid) return i; sLog.outError("BattleGround: cheating? a player used a gameobject which isnt supposed to be a usable object!"); diff --git a/src/game/BattleGroundAA.cpp b/src/game/BattleGroundAA.cpp index 2aac2dde3eb..6133508ece1 100644 --- a/src/game/BattleGroundAA.cpp +++ b/src/game/BattleGroundAA.cpp @@ -18,10 +18,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundAA.h" #include "Language.h" +#include "Player.h" BattleGroundAA::BattleGroundAA() { diff --git a/src/game/BattleGroundAB.cpp b/src/game/BattleGroundAB.cpp index 40f60960377..f5fba6f4186 100644 --- a/src/game/BattleGroundAB.cpp +++ b/src/game/BattleGroundAB.cpp @@ -18,16 +18,17 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundAB.h" #include "Creature.h" -#include "ObjectMgr.h" #include "Language.h" -#include "World.h" +#include "Object.h" +#include "Player.h" #include "Util.h" -#include "WorldPacket.h" // these variables aren't used outside of this file, so declare them only here uint32 BG_AB_HonorScoreTicks[BG_HONOR_MODE_NUM] = { diff --git a/src/game/BattleGroundAV.cpp b/src/game/BattleGroundAV.cpp index bc0b50d21f0..a93b304e2b9 100644 --- a/src/game/BattleGroundAV.cpp +++ b/src/game/BattleGroundAV.cpp @@ -18,15 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" +#include "ObjectMgr.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundAV.h" -#include "Language.h" -#include "SpellAuras.h" #include "Formulas.h" -#include "WorldPacket.h" -#include "ObjectMgr.h" #include "GameObject.h" +#include "Language.h" +#include "Player.h" +#include "SpellAuras.h" BattleGroundAV::BattleGroundAV() { diff --git a/src/game/BattleGroundBE.cpp b/src/game/BattleGroundBE.cpp index f61ff697faa..d58c2250948 100644 --- a/src/game/BattleGroundBE.cpp +++ b/src/game/BattleGroundBE.cpp @@ -18,13 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundBE.h" +#include "Language.h" +#include "Object.h" #include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" -#include "Language.h" BattleGroundBE::BattleGroundBE() { diff --git a/src/game/BattleGroundDS.cpp b/src/game/BattleGroundDS.cpp index 78360b9b194..0be870be175 100644 --- a/src/game/BattleGroundDS.cpp +++ b/src/game/BattleGroundDS.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundDS.h" #include "Language.h" +#include "Player.h" BattleGroundDS::BattleGroundDS() { diff --git a/src/game/BattleGroundEY.cpp b/src/game/BattleGroundEY.cpp index 385ec3d9bc1..9b54ecce643 100644 --- a/src/game/BattleGroundEY.cpp +++ b/src/game/BattleGroundEY.cpp @@ -18,15 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" + #include "BattleGround.h" #include "BattleGroundEY.h" #include "Creature.h" -#include "ObjectMgr.h" #include "Language.h" -#include "World.h" //music -#include "WorldPacket.h" +#include "Object.h" +#include "Player.h" #include "Util.h" // these variables aren't used outside of this file, so declare them only here diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp index b22c47e75d5..7a772fce8f1 100644 --- a/src/game/BattleGroundHandler.cpp +++ b/src/game/BattleGroundHandler.cpp @@ -19,20 +19,21 @@ */ #include "Common.h" -#include "WorldPacket.h" -#include "Opcodes.h" -#include "Log.h" -#include "Player.h" +#include "ObjectAccessor.h" #include "ObjectMgr.h" +#include "WorldPacket.h" #include "WorldSession.h" -#include "ObjectAccessor.h" -#include "Object.h" -#include "Chat.h" + +#include "ArenaTeam.h" #include "BattleGroundMgr.h" #include "BattleGroundWS.h" #include "BattleGround.h" -#include "ArenaTeam.h" +#include "Chat.h" #include "Language.h" +#include "Log.h" +#include "Player.h" +#include "Object.h" +#include "Opcodes.h" void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data ) { diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp index 561953cbf02..ba94f5917c1 100644 --- a/src/game/BattleGroundMgr.cpp +++ b/src/game/BattleGroundMgr.cpp @@ -19,8 +19,12 @@ */ #include "Common.h" -#include "SharedDefines.h" -#include "Player.h" +#include "ObjectMgr.h" +#include "World.h" +#include "WorldPacket.h" +#include "Policies/SingletonImp.h" + +#include "ArenaTeam.h" #include "BattleGroundMgr.h" #include "BattleGroundAV.h" #include "BattleGroundAB.h" @@ -33,18 +37,13 @@ #include "BattleGroundSA.h" #include "BattleGroundDS.h" #include "BattleGroundRV.h" -#include "MapManager.h" +#include "Chat.h" #include "Map.h" #include "MapInstanced.h" -#include "ObjectMgr.h" -#include "ProgressBar.h" -#include "Chat.h" -#include "ArenaTeam.h" -#include "World.h" -#include "WorldPacket.h" +#include "MapManager.h" +#include "Player.h" #include "ProgressBar.h" - -#include "Policies/SingletonImp.h" +#include "SharedDefines.h" INSTANTIATE_SINGLETON_1( BattleGroundMgr ); diff --git a/src/game/BattleGroundMgr.h b/src/game/BattleGroundMgr.h index d9cc9deae13..8d6bd06b020 100644 --- a/src/game/BattleGroundMgr.h +++ b/src/game/BattleGroundMgr.h @@ -23,6 +23,7 @@ #include "Common.h" #include "Policies/Singleton.h" + #include "BattleGround.h" typedef std::map<uint32, BattleGround*> BattleGroundSet; diff --git a/src/game/BattleGroundNA.cpp b/src/game/BattleGroundNA.cpp index f46746829e7..92e71c1c283 100644 --- a/src/game/BattleGroundNA.cpp +++ b/src/game/BattleGroundNA.cpp @@ -18,13 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundNA.h" +#include "Language.h" +#include "Object.h" #include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" -#include "Language.h" BattleGroundNA::BattleGroundNA() { diff --git a/src/game/BattleGroundRL.cpp b/src/game/BattleGroundRL.cpp index f8f8bd9fef5..b9f9943bbf2 100644 --- a/src/game/BattleGroundRL.cpp +++ b/src/game/BattleGroundRL.cpp @@ -18,12 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" + #include "BattleGround.h" #include "BattleGroundRL.h" -#include "ObjectMgr.h" #include "Language.h" +#include "Object.h" +#include "ObjectMgr.h" +#include "Player.h" #include "WorldPacket.h" BattleGroundRL::BattleGroundRL() diff --git a/src/game/BattleGroundRV.cpp b/src/game/BattleGroundRV.cpp index 8c252c35c97..54070961018 100644 --- a/src/game/BattleGroundRV.cpp +++ b/src/game/BattleGroundRV.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundRV.h" #include "Language.h" +#include "Player.h" BattleGroundRV::BattleGroundRV() { diff --git a/src/game/BattleGroundSA.cpp b/src/game/BattleGroundSA.cpp index c52635a04c7..5f20950070d 100644 --- a/src/game/BattleGroundSA.cpp +++ b/src/game/BattleGroundSA.cpp @@ -16,10 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Player.h" #include "BattleGround.h" #include "BattleGroundSA.h" #include "Language.h" +#include "Player.h" BattleGroundSA::BattleGroundSA() { diff --git a/src/game/BattleGroundWS.cpp b/src/game/BattleGroundWS.cpp index 84da0cc9b65..c4a2402ad67 100644 --- a/src/game/BattleGroundWS.cpp +++ b/src/game/BattleGroundWS.cpp @@ -18,16 +18,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "Object.h" -#include "Player.h" #include "BattleGround.h" #include "BattleGroundWS.h" #include "Creature.h" #include "GameObject.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" #include "Language.h" +#include "Object.h" +#include "ObjectMgr.h" +#include "Player.h" #include "World.h" +#include "WorldPacket.h" // these variables aren't used outside of this file, so declare them only here enum BG_WSG_Rewards diff --git a/src/game/CalendarHandler.cpp b/src/game/CalendarHandler.cpp index 3cd186c15d3..348cd5297c9 100644 --- a/src/game/CalendarHandler.cpp +++ b/src/game/CalendarHandler.cpp @@ -17,12 +17,13 @@ */ #include "Common.h" -#include "Log.h" -#include "Player.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" + #include "InstanceSaveMgr.h" +#include "Log.h" +#include "Opcodes.h" +#include "Player.h" void WorldSession::HandleCalendarGetCalendar(WorldPacket &recv_data) { diff --git a/src/game/Cell.h b/src/game/Cell.h index 7e66d5d9f73..6ccd3c96a00 100644 --- a/src/game/Cell.h +++ b/src/game/Cell.h @@ -21,10 +21,12 @@ #ifndef TRINITY_CELL_H #define TRINITY_CELL_H +#include <cmath> + #include "GameSystem/TypeContainer.h" #include "GameSystem/TypeContainerVisitor.h" + #include "GridDefines.h" -#include <cmath> class Map; diff --git a/src/game/CellImpl.h b/src/game/CellImpl.h index e74e0013a19..362c12579bb 100644 --- a/src/game/CellImpl.h +++ b/src/game/CellImpl.h @@ -21,9 +21,10 @@ #ifndef TRINITY_CELLIMPL_H #define TRINITY_CELLIMPL_H +#include <cmath> + #include "Cell.h" #include "Map.h" -#include <cmath> inline Cell::Cell(CellPair const& p) { diff --git a/src/game/Channel.cpp b/src/game/Channel.cpp index 588eb15f0cc..9bb3463dbdb 100644 --- a/src/game/Channel.cpp +++ b/src/game/Channel.cpp @@ -20,8 +20,8 @@ #include "Channel.h" #include "ObjectMgr.h" -#include "World.h" #include "SocialMgr.h" +#include "World.h" Channel::Channel(const std::string& name, uint32 channel_id) : m_announce(true), m_moderate(false), m_name(name), m_flags(0), m_channelId(channel_id), m_ownerGUID(0) diff --git a/src/game/Channel.h b/src/game/Channel.h index 924046e4739..c2dd5ecd3ac 100644 --- a/src/game/Channel.h +++ b/src/game/Channel.h @@ -21,15 +21,16 @@ #ifndef _CHANNEL_H #define _CHANNEL_H -#include "Common.h" -#include "WorldPacket.h" -#include "Opcodes.h" -#include "Player.h" - #include <list> #include <map> #include <string> +#include "Common.h" + +#include "Opcodes.h" +#include "Player.h" +#include "WorldPacket.h" + enum ChatNotify { CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel."; diff --git a/src/game/ChannelHandler.cpp b/src/game/ChannelHandler.cpp index 7359c104751..45cdf8c20b2 100644 --- a/src/game/ChannelHandler.cpp +++ b/src/game/ChannelHandler.cpp @@ -18,9 +18,11 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include "Policies/SingletonImp.h" + #include "ObjectMgr.h" // for normalizePlayerName #include "ChannelMgr.h" -#include "Policies/SingletonImp.h" INSTANTIATE_SINGLETON_1( AllianceChannelMgr ); INSTANTIATE_SINGLETON_1( HordeChannelMgr ); diff --git a/src/game/ChannelMgr.h b/src/game/ChannelMgr.h index 73e69c371ab..aeecfbfa541 100644 --- a/src/game/ChannelMgr.h +++ b/src/game/ChannelMgr.h @@ -20,13 +20,14 @@ #ifndef TRINITYCORE_CHANNELMGR_H #define TRINITYCORE_CHANNELMGR_H -#include "Channel.h" -#include "Policies/Singleton.h" -#include "World.h" - #include <map> #include <string> +#include "Policies/Singleton.h" + +#include "Channel.h" +#include "World.h" + class ChannelMgr { public: diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 0f4cb5ee0b5..51731c11a98 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -19,28 +19,29 @@ */ #include "Common.h" -#include "Database/DatabaseEnv.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "SystemConfig.h" +#include "World.h" #include "WorldPacket.h" -#include "SharedDefines.h" #include "WorldSession.h" -#include "Opcodes.h" -#include "Log.h" -#include "World.h" -#include "ObjectMgr.h" -#include "Player.h" -#include "Guild.h" -#include "UpdateMask.h" #include "Auth/md5.h" -#include "ObjectAccessor.h" -#include "Group.h" +#include "Database/DatabaseEnv.h" #include "Database/DatabaseImpl.h" + +#include "ArenaTeam.h" +#include "Chat.h" +#include "Group.h" +#include "Guild.h" +#include "Language.h" +#include "Log.h" +#include "Opcodes.h" +#include "Player.h" #include "PlayerDump.h" +#include "SharedDefines.h" #include "SocialMgr.h" +#include "UpdateMask.h" #include "Util.h" -#include "ArenaTeam.h" -#include "Language.h" -#include "Chat.h" -#include "SystemConfig.h" class LoginQueryHolder : public SqlQueryHolder { diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index f8c217d5c42..785ecf740ac 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -19,20 +19,21 @@ */ #include "Common.h" -#include "Language.h" -#include "Database/DatabaseEnv.h" +#include "ObjectMgr.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "Opcodes.h" +#include "Database/DatabaseEnv.h" + +#include "AccountMgr.h" +#include "CellImpl.h" +#include "Chat.h" +#include "GridNotifiersImpl.h" +#include "Language.h" #include "Log.h" -#include "World.h" -#include "ObjectMgr.h" +#include "Opcodes.h" #include "Player.h" #include "UpdateMask.h" -#include "Chat.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" -#include "AccountMgr.h" #include "TicketMgr.h" // Supported shift-links (client generated and server side) diff --git a/src/game/ChatHandler.cpp b/src/game/ChatHandler.cpp index 142de50b059..ae9da2d9fe5 100644 --- a/src/game/ChatHandler.cpp +++ b/src/game/ChatHandler.cpp @@ -19,25 +19,26 @@ */ #include "Common.h" -#include "Log.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "World.h" #include "WorldPacket.h" #include "WorldSession.h" -#include "World.h" -#include "Opcodes.h" -#include "ObjectMgr.h" -#include "Chat.h" #include "Database/DatabaseEnv.h" + +#include "CellImpl.h" +#include "Chat.h" #include "ChannelMgr.h" +#include "GridNotifiersImpl.h" #include "Group.h" #include "Guild.h" -#include "ObjectAccessor.h" -#include "ScriptCalls.h" +#include "Language.h" +#include "Log.h" +#include "Opcodes.h" #include "Player.h" +#include "ScriptCalls.h" #include "SpellAuras.h" -#include "Language.h" #include "Util.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data ) { diff --git a/src/game/Corpse.cpp b/src/game/Corpse.cpp index 3df7838cf60..8cc70b3512f 100644 --- a/src/game/Corpse.cpp +++ b/src/game/Corpse.cpp @@ -181,6 +181,8 @@ bool Corpse::LoadFromDB(uint32 guid, Field *fields) float ort = fields[3].GetFloat(); uint32 mapid = fields[4].GetUInt32(); + Object::_Create(guid, 0, HIGHGUID_CORPSE); + if(!LoadValues( fields[5].GetString() )) { sLog.outError("Corpse #%d have broken data in `data` field. Can't be loaded.",guid); diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index c695993ce26..7f249b36fbd 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -206,12 +206,6 @@ void Creature::SearchFormationAndPath() if(!lowguid) return; - if(isTrigger()) - { - SetDefaultMovementType(IDLE_MOTION_TYPE); - return; - } - bool usePath = (GetDefaultMovementType() == WAYPOINT_MOTION_TYPE); CreatureGroupInfoType::iterator frmdata = CreatureGroupMap.find(lowguid); if(frmdata != CreatureGroupMap.end()) @@ -358,9 +352,9 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data ) SelectLevel(GetCreatureInfo()); if (team == HORDE) - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_H); + setFaction(GetCreatureInfo()->faction_H); else - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_A); + setFaction(GetCreatureInfo()->faction_A); if(GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_WORLDEVENT) SetUInt32Value(UNIT_NPC_FLAGS,GetCreatureInfo()->npcflag | gameeventmgr.GetNPCFlag(this)); @@ -1450,9 +1444,9 @@ float Creature::GetSpellDamageMod(int32 Rank) bool Creature::CreateFromProto(uint32 guidlow, uint32 Entry, uint32 team, const CreatureData *data) { SetZoneScript(); - if(m_zoneScript) + if(m_zoneScript && data) { - Entry = m_zoneScript->GetCreatureEntry(guidlow, Entry); + Entry = m_zoneScript->GetCreatureEntry(guidlow, data); if(!Entry) return false; } @@ -1721,10 +1715,10 @@ void Creature::setDeathState(DeathState s) if(s == JUST_DIED) { - SetUInt64Value (UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState) - SetUInt32Value(UNIT_NPC_FLAGS, 0); - //if(!isPet()) - setActive(false); + SetUInt64Value(UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState) + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); + + setActive(false); if(!isPet() && GetCreatureInfo()->SkinLootId) if ( LootTemplates_Skinning.HaveLootFor(GetCreatureInfo()->SkinLootId) ) @@ -1756,6 +1750,8 @@ void Creature::setDeathState(DeathState s) SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool)); LoadCreaturesAddon(true); Motion_Initialize(); + if(GetCreatureData() && GetPhaseMask() != GetCreatureData()->phaseMask) + SetPhaseMask(GetCreatureData()->phaseMask, true); } } @@ -2043,6 +2039,25 @@ void Creature::CallAssistance() } } +void Creature::CallForHelp(float fRadius) +{ + if (fRadius <= 0.0f || !getVictim() || isPet() || isCharmed()) + return; + + CellPair p(MaNGOS::ComputeCellPair(GetPositionX(), GetPositionY())); + Cell cell(p); + cell.data.Part.reserved = ALL_DISTRICT; + cell.SetNoCreate(); + + MaNGOS::CallOfHelpCreatureInRangeDo u_do(this, getVictim(), fRadius); + MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(this, u_do); + + TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker); + + CellLock<GridReadGuard> cell_lock(cell, p); + cell_lock->Visit(cell_lock, grid_creature_searcher, *GetMap()); +} + bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /*= true*/) const { // is it true? diff --git a/src/game/Creature.h b/src/game/Creature.h index 0ee6d4618c7..68c353205f7 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -644,6 +644,7 @@ class TRINITY_DLL_SPEC Creature : public Unit Unit* SelectNearestTarget(float dist = 0) const; void DoFleeToGetAssistance(); + void CallForHelp(float fRadius); void CallAssistance(); void SetNoCallAssistance(bool val) { m_AlreadyCallAssistance = val; } void SetNoSearchAssistance(bool val) { m_AlreadySearchedAssistance = val; } diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp index f61aca24405..143dfec99d3 100644 --- a/src/game/CreatureAI.cpp +++ b/src/game/CreatureAI.cpp @@ -149,6 +149,16 @@ bool CreatureAI::UpdateVictim() if(!me->isInCombat()) return false; + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); +} + +bool CreatureAI::UpdateCombatState() +{ + if(!me->isInCombat()) + return false; + if(!me->HasReactState(REACT_PASSIVE)) { if(Unit *victim = me->SelectVictim()) diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index d9d437c936c..91fabe30448 100644 --- a/src/game/CreatureAI.h +++ b/src/game/CreatureAI.h @@ -72,6 +72,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI bool UpdateVictim(); bool UpdateVictimWithGaze(); + bool UpdateCombatState(); void SelectNearestTarget(Unit *who); public: diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp index e2c51f40804..834741fd2ae 100644 --- a/src/game/CreatureEventAI.cpp +++ b/src/game/CreatureEventAI.cpp @@ -29,43 +29,8 @@ #include "GameEventMgr.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" -#include "WorldPacket.h" #include "InstanceData.h" -namespace MaNGOS -{ - class CallOfHelpCreatureInRangeDo // do attack at call of help to friendly crearture - { - public: - CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range) - : i_funit(funit), i_enemy(enemy), i_range(range) - {} - void operator()(Creature* u) - { - if (u == i_funit) - return; - - if (!u->CanAssistTo(i_funit, i_enemy, false)) - return; - - // too far - if( !i_funit->IsWithinDistInMap(u, i_range) ) - return; - - // only if see assisted creature - if( !i_funit->IsWithinLOSInMap(u) ) - return; - - if(u->AI()) - u->AI()->AttackStart(i_enemy); - } - private: - Unit* const i_funit; - Unit* const i_enemy; - float i_range; - }; -} - bool CreatureEventAIHolder::UpdateRepeatTimer( Creature* creature, uint32 repeatMin, uint32 repeatMax ) { if (repeatMin == repeatMax) @@ -765,21 +730,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32 break; case ACTION_T_CALL_FOR_HELP: { - if (!m_creature->getVictim()) - return; - - CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY())); - Cell cell(p); - cell.data.Part.reserved = ALL_DISTRICT; - cell.SetNoCreate(); - - MaNGOS::CallOfHelpCreatureInRangeDo u_do(m_creature, m_creature->getVictim(), action.call_for_help.radius); - MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(m_creature, u_do); - - TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker); - - CellLock<GridReadGuard> cell_lock(cell, p); - cell_lock->Visit(cell_lock, grid_creature_searcher, *m_creature->GetMap()); + m_creature->CallForHelp(action.call_for_help.radius); break; } break; diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index 574563edcf7..c8021c8bb8b 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -175,7 +175,7 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa m_charges = goinfo->spellcaster.charges; break; case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING: - m_goValue->building.health = goinfo->building.damagedHealth + goinfo->building.destroyedHealth; + m_goValue->building.health = goinfo->building.intactNumHits + goinfo->building.damagedNumHits; break; } @@ -306,17 +306,13 @@ void GameObject::Update(uint32 /*p_time*/) bool IsBattleGroundTrap = false; //FIXME: this is activation radius (in different casting radius that must be selected from spell data) //TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state - float radius = 0.0f; - const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId); - if(spellEntry) - radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(spellEntry->EffectRadiusIndex[0])); - else - radius = goInfo->trap.radius; + float radius = goInfo->trap.radius; + if(!radius) // i think this is a hack, spell radius is determined by trap radius (spell itself does not have radius) + if(const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId)) + radius = goInfo->trap.radius; if(!radius) { - if(goInfo->trap.cooldown != 3) // cast in other case (at some triggering/linked go/etc explicit call) - return; - else + if(goInfo->trap.cooldown == 3) // cast in other case (at some triggering/linked go/etc explicit call) { if(m_respawnTime > 0) break; @@ -324,13 +320,15 @@ void GameObject::Update(uint32 /*p_time*/) radius = goInfo->trap.cooldown; // battlegrounds gameobjects has data2 == 0 && data5 == 3 IsBattleGroundTrap = true; } + if(!radius) + return; } bool NeedDespawn = (goInfo->trap.charges != 0); // Note: this hack with search required until GO casting not implemented // search unfriendly creature - if(owner && NeedDespawn) // hunter trap + if(owner) // hunter trap { Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck checker(this, owner, radius); Trinity::UnitSearcher<Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck> searcher(this, ok, checker); @@ -350,11 +348,16 @@ void GameObject::Update(uint32 /*p_time*/) if (ok) { + // some traps do not have spell but should be triggered + if(goInfo->trap.spellId) + CastSpell(ok, goInfo->trap.spellId); //Unit *caster = owner ? owner : ok; - - CastSpell(ok, goInfo->trap.spellId); //caster->CastSpell(ok, goInfo->trap.spellId, true, 0, 0, GetGUID()); - m_cooldownTime = time(NULL) + 4; // 4 seconds + + if(goInfo->trap.cooldown) + m_cooldownTime = time(NULL) + goInfo->trap.cooldown; + else + m_cooldownTime = time(NULL) + 4; // 4 seconds if(NeedDespawn) SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed @@ -1447,12 +1450,12 @@ void GameObject::TakenDamage(uint32 damage) SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.destroyedDisplayId); - EventInform(m_goInfo->building.destroyedEventId); + EventInform(m_goInfo->building.damagedEvent); } } else // from intact to damaged { - if(m_goValue->building.health <= m_goInfo->building.destroyedHealth) + if(m_goValue->building.health <= m_goInfo->building.damagedNumHits) { if(!m_goInfo->building.destroyedDisplayId) m_goValue->building.health = 0; @@ -1461,7 +1464,7 @@ void GameObject::TakenDamage(uint32 damage) SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.damagedDisplayId); - EventInform(m_goInfo->building.damagedEventId); + EventInform(m_goInfo->building.intactEvent); } } } @@ -1470,7 +1473,7 @@ void GameObject::Rebuild() { RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED + GO_FLAG_DESTROYED); SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->displayId); - m_goValue->building.health = m_goInfo->building.damagedHealth + m_goInfo->building.destroyedHealth; + m_goValue->building.health = m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits; } void GameObject::EventInform(uint32 eventId) diff --git a/src/game/GameObject.h b/src/game/GameObject.h index 33c9fa63f9e..bcfdd93c99d 100644 --- a/src/game/GameObject.h +++ b/src/game/GameObject.h @@ -350,16 +350,16 @@ struct GameObjectInfo //33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING struct { - uint32 damagedHealth; //0 - uint32 dmgPctState2; //1 + uint32 intactNumHits; //0 + uint32 creditProxyCreature; //1 uint32 state1Name; //2 - uint32 damagedEventId; //3 + uint32 intactEvent; //3 uint32 damagedDisplayId; //4 - uint32 destroyedHealth; //5 - uint32 unk6; - uint32 unk7; - uint32 unk8; - uint32 destroyedEventId; //9 + uint32 damagedNumHits; //5 + uint32 empty3; //6 + uint32 empty4; //7 + uint32 empty5; //8 + uint32 damagedEvent; //9 uint32 destroyedDisplayId; //10 } building; //34 GAMEOBJECT_TYPE_GUILDBANK - empty diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index 5191f4e9313..2e98e8c4e06 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -505,7 +505,7 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID for (uint32 i=0; i < QUEST_EMOTE_COUNT; ++i) { data << uint32(pQuest->DetailsEmote[i]); - data << uint32(0); // DetailsEmoteDelay + data << uint32(pQuest->DetailsEmoteDelay[i]); // DetailsEmoteDelay (in ms) } pSession->SendPacket( &data ); @@ -643,7 +643,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) sLog.outDebug( "WORLD: Sent SMSG_QUEST_QUERY_RESPONSE questid=%u", pQuest->GetQuestId() ); } -void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext ) +void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext ) { std::string Title = pQuest->GetTitle(); std::string OfferRewardText = pQuest->GetOfferRewardText(); @@ -668,7 +668,7 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, data << Title; data << OfferRewardText; - data << uint32( EnbleNext ); + data << uint32( EnableNext ); data << uint32(0); // unk uint32 EmoteCount = 0; @@ -682,8 +682,8 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, data << EmoteCount; // Emote Count for (uint32 i = 0; i < EmoteCount; ++i) { - data << uint32(0); // Delay Emote - data << pQuest->OfferRewardEmote[i]; + data << uint32(pQuest->OfferRewardEmoteDelay[i]); // Delay Emote + data << uint32(pQuest->OfferRewardEmote[i]); } ItemPrototype const *pItem; diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h index 102a34b5913..88c15f334a1 100644 --- a/src/game/GossipDef.h +++ b/src/game/GossipDef.h @@ -203,7 +203,7 @@ class TRINITY_DLL_SPEC PlayerMenu void SendQuestQueryResponse ( Quest const *pQuest ); void SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID, bool ActivateAccept); - void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext ); + void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext ); void SendQuestGiverRequestItems( Quest const *pQuest, uint64 npcGUID, bool Completable, bool CloseOnCancel ); }; #endif diff --git a/src/game/GridNotifiers.h b/src/game/GridNotifiers.h index a1bee4df650..dd82ea2bd78 100644 --- a/src/game/GridNotifiers.h +++ b/src/game/GridNotifiers.h @@ -32,6 +32,7 @@ #include "GameObject.h" #include "Player.h" #include "Unit.h" +#include "CreatureAI.h" class Player; //class Map; @@ -802,6 +803,25 @@ namespace Trinity float i_range; }; + class AnyUnfriendlyVisibleUnitInObjectRangeCheck + { + public: + AnyUnfriendlyVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) + : i_obj(obj), i_funit(funit), i_range(range) {} + + bool operator()(Unit* u) + { + return u->isAlive() + && i_obj->IsWithinDistInMap(u, i_range) + && !i_funit->IsFriendlyTo(u) + && u->isVisibleForOrDetect(i_funit, false); + } + private: + WorldObject const* i_obj; + Unit const* i_funit; + float i_range; + }; + class CreatureWithDbGUIDCheck { public: @@ -905,6 +925,38 @@ namespace Trinity float i_range; }; + // do attack at call of help to friendly crearture + class CallOfHelpCreatureInRangeDo + { + public: + CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range) + : i_funit(funit), i_enemy(enemy), i_range(range) + {} + void operator()(Creature* u) + { + if (u == i_funit) + return; + + if (!u->CanAssistTo(i_funit, i_enemy, false)) + return; + + // too far + if (!i_funit->IsWithinDistInMap(u, i_range)) + return; + + // only if see assisted creature + if (!i_funit->IsWithinLOSInMap(u)) + return; + + if (u->AI()) + u->AI()->AttackStart(i_enemy); + } + private: + Unit* const i_funit; + Unit* const i_enemy; + float i_range; + }; + struct AnyDeadUnitCheck { bool operator()(Unit* u) { return !u->isAlive(); } diff --git a/src/game/Group.cpp b/src/game/Group.cpp index a9d06091619..24e5601abe8 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -1197,7 +1197,7 @@ void Group::_setLeader(const uint64 &guid) void Group::_removeRolls(const uint64 &guid) { - for (Rolls::iterator it = RollId.begin(); it < RollId.end(); ++it) + for (Rolls::iterator it = RollId.begin(); it != RollId.end(); ++it) { Roll* roll = *it; Roll::PlayerVote::iterator itr2 = roll->playerVote.find(guid); diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp index ddb28e0288d..fe291783d38 100644 --- a/src/game/ItemHandler.cpp +++ b/src/game/ItemHandler.cpp @@ -1009,7 +1009,13 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data) return; } else - sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid); + { + // listed in dbc or not expected to exist unknown item + if(sItemStore.LookupEntry(itemid)) + sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (item listed in Item.dbc but not exist in DB)", itemid); + else + sLog.outError("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item, not listed in Item.dbc)", itemid); + } } void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data) diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 0cde7dc5eb8..86a689e7383 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -2012,7 +2012,7 @@ bool ChatHandler::HandleModifyMountCommand(const char* args) if (needReportToTarget(chr)) ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetNameLink().c_str()); - chr->SetUInt32Value( UNIT_FIELD_FLAGS , 0x001000 ); + chr->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP); chr->Mount(mId); WorldPacket data( SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4) ); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index d384efc1b07..2082c7e5339 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -63,6 +63,16 @@ bool ChatHandler::HandleAHBotOptionsCommand(const char* args) if (ahMapIdStr) { ahMapID = (uint32) strtoul(ahMapIdStr, NULL, 0); + switch (ahMapID) + { + case 2: + case 6: + case 7: + break; + default: + opt = NULL; + break; + } } if (!opt) { @@ -7114,8 +7124,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args) { ///- Find the player Player *rPlayer; - std::string rName; - if(!extractPlayerTarget((char*)args,&rPlayer,NULL,&rName)) + if(!extractPlayerTarget((char*)args,&rPlayer)) return false; char* msg_str = strtok(NULL, ""); @@ -7136,7 +7145,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args) rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r"); //Confirmation message - std::string nameLink = playerLink(rName); + std::string nameLink = GetNameLink(rPlayer); PSendSysMessage(LANG_SENDMESSAGE,nameLink.c_str(),msg_str); return true; } diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp index 78977d4a5dd..5654f540da1 100644 --- a/src/game/LootMgr.cpp +++ b/src/game/LootMgr.cpp @@ -1333,7 +1333,7 @@ void LoadLootTemplates_Spell() } // output error for any still listed (not referenced from appropriate table) ids - LootTemplates_QuestMail.ReportUnusedIds(ids_set); + LootTemplates_Spell.ReportUnusedIds(ids_set); } void LoadLootTemplates_Reference() diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 9088b1873fa..b155459305d 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -343,6 +343,8 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) else // creature charmed { uint32 entry = mover->GetEntry(); + if(mover->m_Vehicle) + return; mover->GetMap()->CreatureRelocation((Creature*)mover, movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o); } } diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp index c97196c0d91..7257a8d2682 100644 --- a/src/game/NPCHandler.cpp +++ b/src/game/NPCHandler.cpp @@ -157,7 +157,7 @@ void WorldSession::SendTrainerList( uint64 guid, const std::string& strTitle ) // reputation discount float fDiscountMod = _player->GetReputationPriceDiscount(unit); - bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProffesionPoints() > 0; + bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProfessionPoints() > 0; uint32 count = 0; for(TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr) diff --git a/src/game/NullCreatureAI.h b/src/game/NullCreatureAI.h index 347f52228b4..2f481c0a758 100644 --- a/src/game/NullCreatureAI.h +++ b/src/game/NullCreatureAI.h @@ -61,6 +61,7 @@ class TRINITY_DLL_DECL NullCreatureAI : public CreatureAI void AttackStart(Unit *) {} void UpdateAI(const uint32) {} void EnterEvadeMode() {} + void OnCharmed(bool apply) {} static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; } }; diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index c5271429ddd..8f87e58ed26 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -167,7 +167,7 @@ ObjectMgr::~ObjectMgr() void ObjectMgr::LoadPlayerInfoInCache() { - QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters"); + QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters"); if(!result) { sLog.outError( "Loading Player Cache failed."); @@ -892,9 +892,6 @@ void ObjectMgr::LoadEquipmentTemplates() } sLog.outString( ">> Loaded %u equipment template", sEquipmentStorage.RecordCount ); sLog.outString(); - - // Creature items can be not listed in item_template - //sItemStore.Clear(); -- so used in spell casting } CreatureModelInfo const* ObjectMgr::GetCreatureModelInfo(uint32 modelid) @@ -1128,9 +1125,14 @@ void ObjectMgr::LoadCreatures() } // I do not know why but in db most display id are not zero - if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2 + /*if(data.displayid == 11686 || data.displayid == 24719) + { + (const_cast<CreatureInfo*>(cInfo))->flags_extra |= CREATURE_FLAG_EXTRA_TRIGGER; + } + else if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2 || data.displayid == cInfo->Modelid_H1 || data.displayid == cInfo->Modelid_H2) data.displayid = 0; + */ if(data.equipmentId > 0) // -1 no equipment, 0 use default { @@ -1172,6 +1174,8 @@ void ObjectMgr::LoadCreatures() sLog.outErrorDb("Table `creature` have creature (GUID: %u Entry: %u) with `MovementType`=1 (random movement) but with `spawndist`=0, replace by idle movement type (0).",guid,data.id ); data.movementType = IDLE_MOTION_TYPE; } + else if(cInfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER) + data.movementType = IDLE_MOTION_TYPE; } else if(data.movementType == IDLE_MOTION_TYPE) { @@ -3165,9 +3169,13 @@ void ObjectMgr::LoadQuests() "RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5," // 97 98 99 100 101 102 103 104 105 106 107 "RewHonorableKills, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt," - // 108 109 110 111 112 113 114 115 116 117 - "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4," - // 118 119 + // 108 109 110 111 112 113 114 115 + "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4," + // 116 117 118 119 120 121 + "IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4," + // 122 123 124 125 + "OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4," + // 126 127 "StartScript, CompleteScript" " FROM quest_template"); if(result == NULL) diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index fd71d2088b3..caf37a6a61f 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -169,7 +169,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool } setPetType(PetType(fields[18].GetUInt8())); - SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, owner->getFaction()); + setFaction(owner->getFaction()); SetUInt32Value(UNIT_CREATED_BY_SPELL, summon_spell_id); CreatureInfo const *cinfo = GetCreatureInfo(); @@ -185,7 +185,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool SetDisplayId(fields[3].GetUInt32()); SetNativeDisplayId(fields[3].GetUInt32()); uint32 petlevel = fields[4].GetUInt32(); - SetUInt32Value(UNIT_NPC_FLAGS, 0); + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); SetName(fields[8].GetString()); switch (getPetType()) @@ -736,7 +736,7 @@ bool Pet::CreateBaseAtCreature(Creature* creature) SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, 0); SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, objmgr.GetXPForLevel(creature->getLevel())*PET_XP_FACTOR); - SetUInt32Value(UNIT_NPC_FLAGS, 0); + SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); if(CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family)) SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]); @@ -1053,17 +1053,7 @@ void Pet::_LoadSpells() { Field *fields = result->Fetch(); - uint32 spell_id = fields[0].GetUInt32(); - - // load only pet talents, other spell types auto-learned - if(GetTalentSpellCost(spell_id)==0) - { - CharacterDatabase.PExecute("DELETE FROM pet_spell WHERE spell = '%u'",spell_id); - sLog.outError("Table `pet_spell` have non-talent spell %u , spell removed from table for all pets.",spell_id); - continue; - } - - addSpell(spell_id, ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED,PETSPELL_TALENT); + addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED); } while( result->NextRow() ); @@ -1077,8 +1067,8 @@ void Pet::_SaveSpells() { ++next; - // save only talent spells for pets, other spells auto-applied - if (itr->second.type != PETSPELL_TALENT) + // prevent saving family passives to DB + if (itr->second.type == PETSPELL_FAMILY) continue; switch(itr->second.state) @@ -1255,9 +1245,6 @@ bool Pet::addSpell(uint32 spell_id,ActiveStates active /*= ACT_DECIDE*/, PetSpel // talent: unlearn all other talent ranks (high and low) if(TalentSpellPos const* talentPos = GetTalentSpellPos(spell_id)) { - // propertly mark spell for allow save - newspell.type = PETSPELL_TALENT; - if(TalentEntry const *talentInfo = sTalentStore.LookupEntry( talentPos->talent_id )) { for(int i=0; i < MAX_TALENT_RANK; ++i) diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp index d6ffb51f74d..87c667f1e77 100644 --- a/src/game/PetHandler.cpp +++ b/src/game/PetHandler.cpp @@ -627,7 +627,10 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket ) } if (caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->GetGlobalCooldown() > 0) + { + caster->SendPetCastFail(spellid, SPELL_FAILED_NOT_READY); return; + } SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellid); if(!spellInfo) @@ -646,8 +649,8 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket ) caster->clearUnitState(UNIT_STAT_FOLLOW); - Spell *spell = new Spell(caster, spellInfo, false); - spell->m_cast_count = cast_count; // probably pending spell cast + Spell *spell = new Spell(caster, spellInfo, spellid == 33395); // water elemental can cast freeze as triggered + spell->m_cast_count = spellid == 33395 ? 0 : cast_count; // probably pending spell cast spell->m_targets = targets; SpellCastResult result = spell->CheckPetCast(NULL); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index cf66f09f11e..131d21910bf 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -684,7 +684,7 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8 InitTaxiNodesForLevel(); InitGlyphsForLevel(); InitTalentForLevel(); - InitPrimaryProffesions(); // to max set before any spell added + InitPrimaryProfessions(); // to max set before any spell added // apply original stats mods before spell loading or item equipment that call before equip _RemoveStatsMods() UpdateMaxHealth(); // Update max Health (for add bonus from stamina) @@ -2971,10 +2971,10 @@ bool Player::addSpell(uint32 spell_id, bool active, bool learning, bool dependen m_usedTalentCount += talentCost; // update free primary prof.points (if any, can be none in case GM .learn prof. learning) - if(uint32 freeProfs = GetFreePrimaryProffesionPoints()) + if(uint32 freeProfs = GetFreePrimaryProfessionPoints()) { if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id)) - SetFreePrimaryProffesions(freeProfs-1); + SetFreePrimaryProfessions(freeProfs-1); } // add dependent skills @@ -3181,9 +3181,9 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool update_action_bar_ // update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning) if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id)) { - uint32 freeProfs = GetFreePrimaryProffesionPoints()+1; + uint32 freeProfs = GetFreePrimaryProfessionPoints()+1; if(freeProfs <= sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)) - SetFreePrimaryProffesions(freeProfs); + SetFreePrimaryProfessions(freeProfs); } // remove dependent skill @@ -3830,7 +3830,7 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell return TRAINER_SPELL_GREEN; // check primary prof. limit - if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProffesionPoints() == 0) + if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProfessionPoints() == 0) return TRAINER_SPELL_GREEN_DISABLED; return TRAINER_SPELL_GREEN; @@ -4468,7 +4468,7 @@ void Player::RepopAtGraveyard() AreaTableEntry const *zone = GetAreaEntryByAreaID(GetAreaId()); // Such zones are considered unreachable as a ghost and the player must be automatically revived - if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport()) + if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport() || GetPositionZ() < -500.0f) { ResurrectPlayer(0.5f); SpawnCorpseBones(); @@ -14257,7 +14257,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) return false; } - InitPrimaryProffesions(); // to max set before any spell loaded + InitPrimaryProfessions(); // to max set before any spell loaded // init saved position, and fix it later if problematic uint32 transGUID = fields[24].GetUInt32(); @@ -16664,8 +16664,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent) void Player::StopCastingCharm() { - ExitVehicle(); - Unit* charm = GetCharm(); if(!charm) return; @@ -16674,6 +16672,8 @@ void Player::StopCastingCharm() { if(((Creature*)charm)->HasSummonMask(SUMMON_MASK_PUPPET)) ((Puppet*)charm)->UnSummon(); + else if(((Creature*)charm)->isVehicle()) + ExitVehicle(); } if(GetCharmGUID()) { @@ -16685,6 +16685,7 @@ void Player::StopCastingCharm() if(GetCharmGUID()) { sLog.outCrash("Player %s is not able to uncharm unit (Entry: %u, Type: %u)", GetName(), charm->GetEntry(), charm->GetTypeId()); + assert(false); } } @@ -16787,7 +16788,7 @@ void Player::PetSpellInitialize() CharmInfo *charmInfo = pet->GetCharmInfo(); - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1); data << uint64(pet->GetGUID()); data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents) data << uint32(0); @@ -16862,7 +16863,7 @@ void Player::PossessSpellInitialize() return; } - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1); data << uint64(charm->GetGUID()); data << uint32(0); data << uint32(0); @@ -16942,7 +16943,7 @@ void Player::CharmSpellInitialize() } } - WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+4*addlist+1); + WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+4*addlist+1); data << uint64(charm->GetGUID()); data << uint32(0); data << uint32(0); @@ -18371,6 +18372,19 @@ bool Player::IsVisibleGloballyFor( Player* u ) const return true; } +template<class T> +inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target) +{ + s64.insert(target->GetGUID()); +} + +template<> +inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target) +{ + if(!target->IsTransport()) + s64.insert(target->GetGUID()); +} + void Player::UpdateVisibilityOf(WorldObject* target) { if(HaveAtClient(target)) @@ -18391,8 +18405,7 @@ void Player::UpdateVisibilityOf(WorldObject* target) if(target->isVisibleForInState(this,false)) { target->SendUpdateToPlayer(this); - if(target->GetTypeId()!=TYPEID_GAMEOBJECT||!((GameObject*)target)->IsTransport()) - m_clientGUIDs.insert(target->GetGUID()); + UpdateVisibilityOf_helper(m_clientGUIDs, target); #ifdef TRINITY_DEBUG if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) @@ -18420,23 +18433,8 @@ void Player::SendInitialVisiblePackets(Unit* target) } template<class T> -inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target) -{ - s64.insert(target->GetGUID()); -} - -template<> -inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target) -{ - if(!target->IsTransport()) - s64.insert(target->GetGUID()); -} - -template<class T> void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObject*>& visibleNow) { - if(!target) - return; if(HaveAtClient(target)) { if(!target->isVisibleForInState(this,true)) @@ -18450,7 +18448,7 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec #endif } } - else if(visibleNow.size() < 30) + else if(visibleNow.size() < 30 || target->GetTypeId() == TYPEID_UNIT && ((Creature*)target)->isVehicle()) { if(target->isVisibleForInState(this,false)) { @@ -18466,50 +18464,15 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec } } -/*template<> -void Player::UpdateVisibilityOf<Creature>(Creature* target, UpdateData& data, UpdateDataMapType& data_updates, std::set<WorldObject*>& visibleNow) -{ - if(HaveAtClient(target)) - { - if(!target->isVisibleForInState(this,true)) - { - target->DestroyForPlayer(this); - target->BuildOutOfRangeUpdateBlock(&data); - m_clientGUIDs.erase(target->GetGUID()); - - #ifdef TRINITY_DEBUG - if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) - sLog.outDebug("Object %u (Type: %u, Entry: %u) is out of range for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target)); - #endif - } - } - else - { - if(target->isVisibleForInState(this,false)) - { - visibleNow.insert(target); - target->BuildUpdate(data_updates); - target->SendUpdateToPlayer(this); - target->SendMonsterMoveWithSpeedToCurrentDestination(this); - UpdateVisibilityOf_helper(m_clientGUIDs,target); - - #ifdef TRINITY_DEBUG - if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0) - sLog.outDebug("Object %u (Type: %u, Entry: %u) is visible now for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target)); - #endif - } - } -}*/ - template void Player::UpdateVisibilityOf(Player* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(Creature* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(Corpse* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(GameObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow); template void Player::UpdateVisibilityOf(DynamicObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow); -void Player::InitPrimaryProffesions() +void Player::InitPrimaryProfessions() { - SetFreePrimaryProffesions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)); + SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL)); } void Player::SendComboPoints() diff --git a/src/game/Player.h b/src/game/Player.h index 99b2e61b58f..79c5adc00c1 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -1381,9 +1381,9 @@ class TRINITY_DLL_SPEC Player : public Unit void SetGlyph(uint8 slot, uint32 glyph) { SetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot, glyph); } uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); } - uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); } - void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); } - void InitPrimaryProffesions(); + uint32 GetFreePrimaryProfessionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); } + void SetFreePrimaryProfessions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); } + void InitPrimaryProfessions(); PlayerSpellMap const& GetSpellMap() const { return m_spells; } PlayerSpellMap & GetSpellMap() { return m_spells; } diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index e5782fcb8df..5d13a6a576a 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -288,21 +288,25 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/) float x = corpse->GetPositionX(); float y = corpse->GetPositionY(); float z = corpse->GetPositionZ(); - int32 corpsemapid = _player->GetMapId(); + int32 corpsemapid = mapid; - if(Map *map = MapManager::Instance().FindMap(corpse->GetMapId(), corpse->GetInstanceId())) + // if corpse at different map + if(mapid != _player->GetMapId()) { - if(map->IsDungeon()) + // search entrance map for proper show entrance + if(MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapid)) { - if(!map->GetEntrancePos(mapid, x, y)) - return; - - Map *entrance_map = MapManager::Instance().GetMap(mapid, _player); - if(!entrance_map) - return; - - z = entrance_map->GetHeight(x, y, MAX_HEIGHT); - corpsemapid = corpse->GetMapId(); + if(corpseMapEntry->IsDungeon() && corpseMapEntry->entrance_map >= 0) + { + // if corpse map have entrance + if(Map const* entranceMap = MapManager::Instance().GetBaseMap(corpseMapEntry->entrance_map)) + { + mapid = corpseMapEntry->entrance_map; + x = corpseMapEntry->entrance_x; + y = corpseMapEntry->entrance_y; + z = entranceMap->GetHeight(x, y, MAX_HEIGHT); + } + } } } diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index 8099bf40e88..013d6da1f0f 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -117,14 +117,20 @@ Quest::Quest(Field * questRecord) for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) DetailsEmote[i] = questRecord[108+i].GetUInt32(); - IncompleteEmote = questRecord[112].GetUInt32(); - CompleteEmote = questRecord[113].GetUInt32(); + for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) + DetailsEmoteDelay[i] = questRecord[112+i].GetUInt32(); + + IncompleteEmote = questRecord[116].GetUInt32(); + CompleteEmote = questRecord[117].GetUInt32(); + + for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) + OfferRewardEmote[i] = questRecord[118+i].GetInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmote[i] = questRecord[114+i].GetInt32(); + OfferRewardEmoteDelay[i] = questRecord[122+i].GetInt32(); - QuestStartScript = questRecord[118].GetUInt32(); - QuestCompleteScript = questRecord[119].GetUInt32(); + QuestStartScript = questRecord[126].GetUInt32(); + QuestCompleteScript = questRecord[127].GetUInt32(); QuestFlags |= SpecialFlags << 16; diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 242c10bf48f..f6cb2dd5b55 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -241,7 +241,9 @@ class Quest uint32 RewRepFaction[QUEST_REPUTATIONS_COUNT]; int32 RewRepValue[QUEST_REPUTATIONS_COUNT]; uint32 DetailsEmote[QUEST_EMOTE_COUNT]; + uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT]; uint32 OfferRewardEmote[QUEST_EMOTE_COUNT]; + uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT]; uint32 GetReqItemsCount() const { return m_reqitemscount; } uint32 GetReqCreatureOrGOcount() const { return m_reqCreatureOrGOcount; } diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 8e247230a40..a7e7212f9e9 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4659,6 +4659,7 @@ SpellCastResult Spell::CheckCast(bool strict) } case SPELL_AURA_MOD_POSSESS: case SPELL_AURA_MOD_CHARM: + //case SPELL_AURA_MOD_POSSESS_PET: { if(m_caster->GetPetGUID()) return SPELL_FAILED_ALREADY_HAVE_SUMMON; @@ -4669,13 +4670,15 @@ SpellCastResult Spell::CheckCast(bool strict) if(m_caster->GetCharmerGUID()) return SPELL_FAILED_CHARMED; - if(!m_targets.getUnitTarget()) + Unit *target = m_targets.getUnitTarget(); + if(!target || target->GetTypeId() == TYPEID_UNIT + && ((Creature*)target)->isVehicle()) return SPELL_FAILED_BAD_IMPLICIT_TARGETS; - if(m_targets.getUnitTarget()->GetCharmerGUID()) + if(target->GetCharmerGUID()) return SPELL_FAILED_CHARMED; - if(int32(m_targets.getUnitTarget()->getLevel()) > CalculateDamage(i,m_targets.getUnitTarget())) + if(int32(target->getLevel()) > CalculateDamage(i, target)) return SPELL_FAILED_HIGHLEVEL; break; @@ -4750,7 +4753,7 @@ SpellCastResult Spell::CheckPetCast(Unit* target) if(!m_caster->isAlive()) return SPELL_FAILED_CASTER_DEAD; - if(m_caster->IsNonMeleeSpellCasted(false)) //prevent spellcast interruption by another spellcast + if(m_caster->hasUnitState(UNIT_STAT_CASTING) && !m_IsTriggeredSpell) //prevent spellcast interruption by another spellcast return SPELL_FAILED_SPELL_IN_PROGRESS; if(m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo)) return SPELL_FAILED_AFFECTING_COMBAT; diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 7ac2ae5f25e..0d4606e6e84 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -345,7 +345,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= Aura::Aura(SpellEntry const* spellproto, uint32 effMask, int32 *currentBasePoints, Unit *target, WorldObject *source, Unit *caster, Item* castItem) : m_caster_guid(0), m_castItemGuid(castItem?castItem->GetGUID():0), m_target(target), -m_timeCla(1000), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), +m_timeCla(0), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE), m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_auraStateMask(0), m_updated(false), m_isRemoved(false) { assert(target); @@ -356,6 +356,9 @@ m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_aura m_spellProto = spellproto; + if(m_spellProto->manaPerSecond || m_spellProto->manaPerSecondPerLevel) + m_timeCla = 1000; + m_isPassive = IsPassiveSpell(GetId()); m_auraStateMask = 0; @@ -456,10 +459,9 @@ Aura::~Aura() AuraEffect::AuraEffect(Aura * parentAura, uint8 effIndex, int32 * currentBasePoints , Unit *caster, Item* castItem, WorldObject *source) : m_parentAura(parentAura), m_spellmod(NULL), m_periodicTimer(0), m_isPeriodic(false), m_isAreaAura(false), m_isPersistent(false), m_target(parentAura->GetTarget()), m_tickNumber(0) +, m_spellProto(parentAura->GetSpellProto()), m_effIndex(effIndex), m_auraName(AuraType(m_spellProto->EffectApplyAuraName[m_effIndex])) { - m_spellProto = parentAura->GetSpellProto(); - m_effIndex = effIndex; - m_auraName = AuraType(m_spellProto->EffectApplyAuraName[m_effIndex]); + assert(m_auraName < TOTAL_AURAS); if(currentBasePoints) m_currentBasePoints = *currentBasePoints; @@ -533,12 +535,12 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: m_areaAuraType = AREA_AURA_PARTY; if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem()) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; case SPELL_EFFECT_APPLY_AREA_AURA_RAID: m_areaAuraType = AREA_AURA_RAID; if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem()) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND: m_areaAuraType = AREA_AURA_FRIEND; @@ -546,7 +548,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: m_areaAuraType = AREA_AURA_ENEMY; if(m_target == caster_ptr) - m_auraName = SPELL_AURA_NONE; // Do not do any effect on self + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; // Do not do any effect on self break; case SPELL_EFFECT_APPLY_AREA_AURA_PET: m_areaAuraType = AREA_AURA_PET; @@ -554,7 +556,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: m_areaAuraType = AREA_AURA_OWNER; if(m_target == caster_ptr) - m_auraName = SPELL_AURA_NONE; + *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; break; default: sLog.outError("Wrong spell effect in AreaAura constructor"); @@ -628,15 +630,15 @@ void Aura::Update(uint32 diff) m_duration = 0; // all spells with manaPerSecond/manaPerSecondPerLevel have aura in effect 0 - if(m_timeCla > 0) - m_timeCla -= diff; - if(m_timeCla <= 0) + if(m_timeCla) { - if(Unit* caster = GetCaster()) + if(m_timeCla > diff) + m_timeCla -= diff; + else if(Unit* caster = GetCaster()) { if(int32 manaPerSecond = m_spellProto->manaPerSecond + m_spellProto->manaPerSecondPerLevel * caster->getLevel()) { - m_timeCla = 1000; + m_timeCla += 1000 - diff; Powers powertype = Powers(m_spellProto->powerType); if(powertype == POWER_HEALTH) @@ -673,13 +675,14 @@ void AuraEffect::Update(uint32 diff) { if (m_isPeriodic && (GetParentAura()->GetAuraDuration() >=0 || GetParentAura()->IsPassive() || GetParentAura()->IsPermanent())) { - m_periodicTimer -= diff; - if(m_periodicTimer <= 0) // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N + if(m_periodicTimer > diff) + m_periodicTimer -= diff; + else // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N { ++m_tickNumber; // update before applying (aura can be removed in TriggerSpell or PeriodicTick calls) - m_periodicTimer += m_amplitude; + m_periodicTimer += m_amplitude - diff; if(!m_target->hasUnitState(UNIT_STAT_ISOLATED)) PeriodicTick(); @@ -856,8 +859,7 @@ void AuraEffect::ApplyModifier(bool apply, bool Real, bool changeAmount) if (GetParentAura()->IsRemoved()) return; - if(m_auraName<TOTAL_AURAS) - (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount); + (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount); } void AuraEffect::RecalculateAmount(bool applied) @@ -3529,7 +3531,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/ if( apply ) { m_target->SetCharmerGUID(GetCasterGUID()); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction()); + m_target->setFaction(caster->getFaction()); caster->SetCharm(m_target); @@ -3571,7 +3573,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/ else if(m_target->GetTypeId() == TYPEID_UNIT) { CreatureInfo const *cinfo = ((Creature*)m_target)->GetCreatureInfo(); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); } caster->SetCharm(NULL); @@ -3664,8 +3666,8 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang if( apply ) { m_target->SetCharmerGUID(GetCasterGUID()); - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction()); - m_target->CastStop(m_target==caster ? GetId() : 0); + m_target->setFaction(caster->getFaction()); + m_target->CastStop(m_target == caster ? GetId() : 0); caster->SetCharm(m_target); m_target->CombatStop(); @@ -3713,12 +3715,12 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang if(((Creature*)m_target)->isPet()) { if(Unit* owner = m_target->GetOwner()) - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,owner->getFaction()); + m_target->setFaction(owner->getFaction()); else if(cinfo) - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); } else if(cinfo) // normal creature - m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A); + m_target->setFaction(cinfo->faction_A); // restore UNIT_FIELD_BYTES_0 if(cinfo && caster->GetTypeId() == TYPEID_PLAYER && caster->getClass() == CLASS_WARLOCK && cinfo->type == CREATURE_TYPE_DEMON) @@ -4979,6 +4981,10 @@ void AuraEffect::HandleAuraModIncreaseHealth(bool apply, bool Real, bool changeA { if(apply) { + // Vampiric Blood + if(GetSpellProto()->Id == 55233) + m_amount = m_target->GetMaxHealth() * m_amount / 100; + m_target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, float(m_amount), apply); m_target->ModifyHealth(m_amount); } @@ -6626,20 +6632,53 @@ void AuraEffect::PeriodicDummyTick() { switch (spell->Id) { - // Killing Spree -// case 51690: break; - // Overkill - case 58428: - if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) - m_target->RemoveAurasDueToSpell(58427); - break; // Master of Subtlety case 31666: if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) m_target->RemoveAurasDueToSpell(31665); break; - default: + // Killing Spree + case 51690: + { + std::list<Unit*> targets; + { + // eff_radius ==0 + float radius = GetSpellMaxRange(spell, false); + + CellPair p(MaNGOS::ComputeCellPair(caster->GetPositionX(),caster->GetPositionY())); + Cell cell(p); + cell.data.Part.reserved = ALL_DISTRICT; + + MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck u_check(caster, caster, radius); + MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck> checker(caster,targets, u_check); + + TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, GridTypeMapContainer > grid_object_checker(checker); + TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, WorldTypeMapContainer > world_object_checker(checker); + + CellLock<GridReadGuard> cell_lock(cell, p); + + cell_lock->Visit(cell_lock, grid_object_checker, *caster->GetMap()); + cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap()); + } + + if(targets.empty()) + return; + + std::list<Unit*>::const_iterator itr = targets.begin(); + std::advance(itr, rand()%targets.size()); + Unit* target = *itr; + + caster->CastSpell(target, 57840, true); + caster->CastSpell(target, 57841, true); + return; + } + // Overkill + case 58428: + if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH)) + m_target->RemoveAurasDueToSpell(58427); break; +// default: +// break; } break; } @@ -6814,7 +6853,7 @@ void AuraEffect::HandleAuraControlVehicle(bool apply, bool Real, bool /*changeAm if(!caster || caster == m_target) return; - Vehicle *vehicle = dynamic_cast<Vehicle*>(m_target); + Vehicle * const vehicle = dynamic_cast<Vehicle * const>(m_target); if (apply) { @@ -6904,10 +6943,10 @@ void AuraEffect::HandleModPossess(bool apply, bool Real, bool /*changeAmount*/) if(m_target->getLevel() > m_amount) return; - m_target->SetCharmedOrPossessedBy(caster, true); + m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS); } else - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); } void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount*/) @@ -6924,11 +6963,11 @@ void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount* if(caster->GetGuardianPet() != m_target) return; - m_target->SetCharmedOrPossessedBy(caster, true); + m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS); } else { - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); // Reinitialize the pet bar and make the pet come back to the owner ((Player*)caster)->PetSpellInitialize(); @@ -6952,10 +6991,10 @@ void AuraEffect::HandleModCharm(bool apply, bool Real, bool /*changeAmount*/) if(int32(m_target->getLevel()) > m_amount) return; - m_target->SetCharmedOrPossessedBy(caster, false); + m_target->SetCharmedBy(caster, CHARM_TYPE_CHARM); } else - m_target->RemoveCharmedOrPossessedBy(caster); + m_target->RemoveCharmedBy(caster); } void AuraEffect::HandlePhase(bool apply, bool Real, bool /*changeAmount*/) diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index 20d27e915c1..579794e3da2 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -377,11 +377,11 @@ class TRINITY_DLL_SPEC AuraEffect Unit * const m_target; uint64 m_sourceGUID; // Spell::m_caster/trap? for normal aura, totem/paladin for areaaura, dynobj for persistent aura - SpellEntry const *m_spellProto; uint32 m_tickNumber; - uint8 m_effIndex; - AuraType m_auraName; + const SpellEntry * const m_spellProto; + const uint8 m_effIndex; + const AuraType m_auraName; int32 m_currentBasePoints; int32 m_amount; diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index a6d5cb2ce74..4ec6a30ae3d 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3295,7 +3295,8 @@ void Spell::EffectSummonType(uint32 i) return; //vehicle->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_caster->GetGUID()); - vehicle->setFaction(m_caster->getFaction()); + if(m_originalCaster) + vehicle->setFaction(m_originalCaster->getFaction()); vehicle->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id); break; } @@ -3963,7 +3964,8 @@ void Spell::EffectTameCreature(uint32 /*i*/) finish(); Pet* pet = m_caster->CreateTamedPetFrom(creatureTarget,m_spellInfo->Id); - if(!pet) return; + if(!pet) // in versy specific state like near world end/etc. + return; // kill original creature creatureTarget->setDeathState(JUST_DIED); @@ -4891,6 +4893,10 @@ void Spell::EffectScriptEffect(uint32 effIndex) if(unitTarget) m_caster->CastSpell(unitTarget, 52125, false); return; + case 52479: // Gift of the Harvester + if(unitTarget && m_originalCaster) + m_originalCaster->CastSpell(unitTarget, urand(0, 1) ? damage : 52505, true); + return; // Death Gate case 52751: { diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index da571c83975..99c113a5eb5 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3370,6 +3370,7 @@ void SpellMgr::LoadSpellCustomAttr() case 39365: // Thundering Storm case 41071: // Raise Dead (HACK) case 52124: // Sky Darkener Assault + case 52479: // Gift of the Harvester spellInfo->MaxAffectedTargets = 1; break; case 41376: // Spite diff --git a/src/game/TemporarySummon.cpp b/src/game/TemporarySummon.cpp index 2be94e29c38..d4c4d54fb1d 100644 --- a/src/game/TemporarySummon.cpp +++ b/src/game/TemporarySummon.cpp @@ -332,7 +332,7 @@ void Puppet::InitStats(uint32 duration) void Puppet::InitSummon() { Minion::InitSummon(); - SetCharmedOrPossessedBy(m_owner, true); + SetCharmedBy(m_owner, CHARM_TYPE_POSSESS); } void Puppet::Update(uint32 time) @@ -351,6 +351,6 @@ void Puppet::RemoveFromWorld() if(!IsInWorld()) return; - RemoveCharmedOrPossessedBy(NULL); + RemoveCharmedBy(NULL); Minion::RemoveFromWorld(); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 9bef10368d8..914842ffab8 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2095,7 +2095,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe // This, if I'm not mistaken, shows that we get back ~2% of the absorbed damage as runic power. int32 absorbed = RemainingDamage * currentAbsorb / 100; int32 regen = absorbed * 2 / 10; - pVictim->CastCustomSpell(pVictim, 49088, ®en, 0, 0, true, 0, (*i)); + pVictim->CastCustomSpell(pVictim, 49088, ®en, NULL, NULL, true, NULL, *i); RemainingDamage -= absorbed; continue; } @@ -3305,12 +3305,11 @@ uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target) void Unit::_DeleteAuras() { - for (AuraList::iterator i = m_removedAuras.begin(); i != m_removedAuras.end();i = m_removedAuras.begin()) + while(!m_removedAuras.empty()) { - Aura * Aur = *i; - sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow()); + delete m_removedAuras.front(); m_removedAuras.pop_front(); - delete (Aur); +// sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow()); } } @@ -3320,7 +3319,7 @@ void Unit::_UpdateSpells( uint32 time ) _UpdateAutoRepeatSpell(); // remove finished spells from current pointers - for (uint32 i = 0; i < CURRENT_MAX_SPELL; i++) + for (uint32 i = 0; i < CURRENT_MAX_SPELL; ++i) { if (m_currentSpells[i] && m_currentSpells[i]->getState() == SPELL_STATE_FINISHED) { @@ -3371,20 +3370,18 @@ void Unit::_UpdateSpells( uint32 time ) if(!m_gameObj.empty()) { - GameObjectList::iterator ite1, dnext1; - for (ite1 = m_gameObj.begin(); ite1 != m_gameObj.end(); ite1 = dnext1) + GameObjectList::iterator itr; + for(itr = m_gameObj.begin(); itr != m_gameObj.end();) { - dnext1 = ite1; - //(*i)->Update( difftime ); - if( !(*ite1)->isSpawned() ) + if( !(*itr)->isSpawned() ) { - (*ite1)->SetOwnerGUID(0); - (*ite1)->SetRespawnTime(0); - (*ite1)->Delete(); - dnext1 = m_gameObj.erase(ite1); + (*itr)->SetOwnerGUID(0); + (*itr)->SetRespawnTime(0); + (*itr)->Delete(); + m_gameObj.erase(itr++); } else - ++dnext1; + ++itr; } } } @@ -4099,7 +4096,6 @@ void Unit::RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId) void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except) { - if (auraType >= TOTAL_AURAS) return; for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();) { Aura * aur = (*iter)->GetParentAura(); @@ -4116,7 +4112,6 @@ void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except void Unit::RemoveAurasByTypeWithDispel(AuraType auraType, Spell * spell) { - if (auraType >= TOTAL_AURAS) return; std::queue < std::pair < uint32, uint64 > > remove_list; for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();++iter) @@ -5498,8 +5493,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger target = GetGuardianPet(); if (!target) return false; - triggered_spell_id = 54181; basepoints0 = damage * 15 / 100; + triggered_spell_id = 54181; break; } switch(dummySpell->Id) @@ -6061,13 +6056,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger int32 holy = caster->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_HOLY) + caster->SpellBaseDamageBonusForVictim(SPELL_SCHOOL_MASK_HOLY, this); basepoints0 = int32(ap*0.10f + 0.10f*holy); - pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, 0, 0, true, 0, triggeredByAura); + pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); return true; } // Judgement of Wisdom case 20186: { - pVictim->CastSpell(pVictim, 20268, true, NULL, triggeredByAura); + if (pVictim->getPowerType() == POWER_MANA) + { + // 2% of maximum mana + basepoints0 = int32(pVictim->GetMaxPower(POWER_MANA) * 2 / 100); + pVictim->CastCustomSpell(pVictim, 20268, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); + } return true; } // Holy Power (Redemption Armor set) @@ -6101,6 +6101,29 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger } break; } + // Blessing of Sanctuary + case 20911: + { + if (target->GetTypeId() != TYPEID_PLAYER) + return false; + + target = this; + switch (target->getPowerType()) + { + case POWER_MANA: + triggered_spell_id = 57319; + break; + case POWER_RAGE: + triggered_spell_id = 57320; + break; + case POWER_RUNIC_POWER: + triggered_spell_id = 57321; + break; + default: + return false; + } + break; + } // Seal of Vengeance (damage calc on apply aura) case 31801: { @@ -6203,7 +6226,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger if (procSpell->Effect[i] == SPELL_EFFECT_ENERGIZE) { int32 mana = procSpell->EffectBasePoints[i]; - CastCustomSpell(this, 54986, 0, &mana, 0, true, castItem, triggeredByAura); + CastCustomSpell(this, 54986, NULL, &mana, NULL, true, castItem, triggeredByAura); break; } return true; @@ -7322,7 +7345,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig case SPELL_SCHOOL_NATURE: trigger_spell_id = 50488; break; case SPELL_SCHOOL_FROST: trigger_spell_id = 50485; break; case SPELL_SCHOOL_SHADOW: trigger_spell_id = 50489; break; - case SPELL_SCHOOL_ARCANE: trigger_spell_id = 54373; break; + case SPELL_SCHOOL_ARCANE: trigger_spell_id = 50486; break; default: return false; } @@ -7649,7 +7672,7 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, uint32 damage, AuraE return false; int32 cost = procSpell->manaCost + procSpell->ManaCostPercentage * GetCreateMana() / 100; int32 basepoints0 = cost * triggeredByAura->GetAmount()/100; - CastCustomSpell(this, 47762, &basepoints0, 0, 0, true, 0, triggeredByAura); + CastCustomSpell(this, 47762, &basepoints0, NULL, NULL, true, NULL, triggeredByAura); return true; } // Rapture @@ -11655,7 +11678,10 @@ void Unit::RemoveFromWorld() ExitVehicle(); if(GetCharmerGUID()) + { sLog.outCrash("Unit %u has charmer guid when removed from world", GetEntry()); + assert(false); + } WorldObject::RemoveFromWorld(); } @@ -11701,7 +11727,7 @@ void Unit::UpdateCharmAI() if(isCharmed()) { i_disabledAI = i_AI; - if(isPossessed()) + if(isPossessed() || ((Creature*)this)->isVehicle()) i_AI = new PossessedAI((Creature*)this); else i_AI = new PetAI((Creature*)this); @@ -11996,10 +12022,10 @@ typedef std::list< ProcTriggeredData > ProcTriggeredList; // for example SPELL_AURA_MECHANIC_IMMUNITY - need check for mechanic bool InitTriggerAuraData() { - for (int i=0;i<TOTAL_AURAS;i++) + for (int i = 0; i < TOTAL_AURAS; ++i) { - isTriggerAura[i]=false; - isNonTriggerAura[i] = false; + isTriggerAura[i]=false; + isNonTriggerAura[i] = false; } isTriggerAura[SPELL_AURA_DUMMY] = true; isTriggerAura[SPELL_AURA_MOD_CONFUSE] = true; @@ -12950,7 +12976,7 @@ Pet* Unit::CreateTamedPetFrom(Creature* creatureTarget,uint32 spell_id) } pet->SetCreatorGUID(GetGUID()); - pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, getFaction()); + pet->setFaction(getFaction()); pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id); if(GetTypeId()==TYPEID_PLAYER) @@ -13524,12 +13550,13 @@ void Unit::SetConfused(bool apply) ((Player*)this)->SetClientControl(this, !apply); } -void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess) +void Unit::SetCharmedBy(Unit* charmer, CharmType type) { if(!charmer) return; - assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle()); if(this == charmer) return; @@ -13580,50 +13607,57 @@ void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess) } // Pets already have a properly initialized CharmInfo, don't overwrite it. - if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT - && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN)) + if(type != CHARM_TYPE_VEHICLE && !GetCharmInfo()) { CharmInfo *charmInfo = InitCharmInfo(); - if(possess) + if(type == CHARM_TYPE_POSSESS) charmInfo->InitPossessCreateSpells(); else charmInfo->InitCharmCreateSpells(); } - //Set possessed - if(possess) - { - addUnitState(UNIT_STAT_POSSESSED); - SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); - ((Player*)charmer)->SetClientControl(this, 1); - ((Player*)charmer)->SetViewpoint(this, true); - charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); - } - // Charm demon - else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) + if(charmer->GetTypeId() == TYPEID_PLAYER) { - CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); - if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + switch(type) { - //to prevent client crash - //SetFlag(UNIT_FIELD_BYTES_0, 2048); + case CHARM_TYPE_VEHICLE: + ((Player*)charmer)->SetViewpoint(this, true); + ((Player*)charmer)->VehicleSpellInitialize(); + break; + case CHARM_TYPE_POSSESS: + addUnitState(UNIT_STAT_POSSESSED); + SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); + charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); + ((Player*)charmer)->SetClientControl(this, 1); + ((Player*)charmer)->SetViewpoint(this, true); + ((Player*)charmer)->PossessSpellInitialize(); + break; + case CHARM_TYPE_CHARM: + if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK) + { + CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); + if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + { + //to prevent client crash + //SetFlag(UNIT_FIELD_BYTES_0, 2048); - //just to enable stat window - if(GetCharmInfo()) - GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true); + //just to enable stat window + if(GetCharmInfo()) + GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true); - //if charmed two demons the same session, the 2nd gets the 1st one's name - SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); + //if charmed two demons the same session, the 2nd gets the 1st one's name + SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); + } + } + ((Player*)charmer)->CharmSpellInitialize(); + break; + default: + break; } - } - - if(possess) - ((Player*)charmer)->PossessSpellInitialize(); - else if(charmer->GetTypeId() == TYPEID_PLAYER) - ((Player*)charmer)->CharmSpellInitialize(); + } } -void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) +void Unit::RemoveCharmedBy(Unit *charmer) { if(!isCharmed()) return; @@ -13633,7 +13667,13 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) else if(charmer != GetCharmer()) // one aura overrides another? return; - bool possess = hasUnitState(UNIT_STAT_POSSESSED); + CharmType type; + if(hasUnitState(UNIT_STAT_POSSESSED)) + type = CHARM_TYPE_POSSESS; + else if(this == charmer->m_Vehicle) + type = CHARM_TYPE_VEHICLE; + else + type = CHARM_TYPE_CHARM; CastStop(); CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells) @@ -13642,7 +13682,7 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) RestoreFaction(); GetMotionMaster()->InitDefault(); - if(possess) + if(type == CHARM_TYPE_POSSESS) { clearUnitState(UNIT_STAT_POSSESSED); RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24); @@ -13650,20 +13690,18 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) if(GetTypeId() == TYPEID_UNIT) { - if(!((Creature*)this)->isPet()) - RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); - ((Creature*)this)->AI()->OnCharmed(false); - if(isAlive() && ((Creature*)this)->IsAIEnabled) + if(isAlive() && charmer && !IsFriendlyTo(charmer)) + ((Creature*)this)->AddThreat(charmer, 10000.0f); + /*if(isAlive() && ((Creature*)this)->IsAIEnabled) { if(charmer && !IsFriendlyTo(charmer)) { - ((Creature*)this)->AddThreat(charmer, 10000.0f); ((Creature*)this)->AI()->AttackStart(charmer); } else ((Creature*)this)->AI()->EnterEvadeMode(); - } + }*/ } else ((Player*)this)->SetClientControl(this, 1); @@ -13672,42 +13710,46 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) if(!charmer) return; - assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER); + assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle()); charmer->SetCharm(this, false); - if(possess) - { - ((Player*)charmer)->SetClientControl(charmer, 1); - ((Player*)charmer)->SetViewpoint(this, false); - charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); - } - // restore UNIT_FIELD_BYTES_0 - else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) + + if(charmer->GetTypeId() == TYPEID_PLAYER) { - CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); - if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + switch(type) { - if(GetCharmInfo()) - GetCharmInfo()->SetPetNumber(0, true); - else - sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId()); + case CHARM_TYPE_VEHICLE: + ((Player*)charmer)->SetViewpoint(this, false); + break; + case CHARM_TYPE_POSSESS: + ((Player*)charmer)->SetClientControl(charmer, 1); + ((Player*)charmer)->SetViewpoint(this, false); + charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); + break; + case CHARM_TYPE_CHARM: + if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK) + { + CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); + if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) + { + if(GetCharmInfo()) + GetCharmInfo()->SetPetNumber(0, true); + else + sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId()); + } + } + break; + default: + break; } } //a guardian should always have charminfo - if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT - && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN)) - { + if(charmer->GetTypeId() == TYPEID_PLAYER && this != charmer->GetFirstControlled()) + ((Player*)charmer)->SendRemoveControlBar(); + else if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT && !((Creature*)this)->isGuardian()) DeleteCharmInfo(); - } - - if(possess || charmer->GetTypeId() == TYPEID_PLAYER) - { - // Remove pet spell action bar - WorldPacket data(SMSG_PET_SPELLS, 8); - data << uint64(0); - ((Player*)charmer)->GetSession()->SendPacket(&data); - } } void Unit::RestoreFaction() @@ -14000,7 +14042,7 @@ void Unit::SetPhaseMask(uint32 newPhaseMask, bool update) return; for(ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) - if((*itr)->GetOwnerGUID() == GetGUID()) + if((*itr)->GetTypeId() == TYPEID_UNIT) (*itr)->SetPhaseMask(newPhaseMask,true); for(int8 i = 0; i < MAX_SUMMON_SLOT; ++i) diff --git a/src/game/Unit.h b/src/game/Unit.h index d788a9ad4f6..ea934356842 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -885,6 +885,13 @@ struct CharmSpellEntry typedef std::list<Player*> SharedVisionList; +enum CharmType +{ + CHARM_TYPE_CHARM, + CHARM_TYPE_POSSESS, + CHARM_TYPE_VEHICLE, +}; + enum ActionBarIndex { ACTION_BAR_INDEX_START = 0, @@ -1340,8 +1347,8 @@ class TRINITY_DLL_SPEC Unit : public WorldObject void SetMinion(Minion *minion, bool apply); void SetCharm(Unit* target, bool apply); Unit* GetNextRandomRaidMemberOrPet(float radius); - void SetCharmedOrPossessedBy(Unit* charmer, bool possess); - void RemoveCharmedOrPossessedBy(Unit* charmer); + void SetCharmedBy(Unit* charmer, CharmType type); + void RemoveCharmedBy(Unit* charmer); void RestoreFaction(); ControlList m_Controlled; diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index aaf97b3e413..3efe735a5b5 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -25,6 +25,8 @@ #include "WorldPacket.h" #include "Chat.h" +#include "CreatureAI.h" +#include "ZoneScript.h" Vehicle::Vehicle() : Creature(), m_vehicleInfo(NULL), m_usableSeatNum(0) { @@ -40,6 +42,8 @@ void Vehicle::AddToWorld() { if(!IsInWorld()) { + if(m_zoneScript) + m_zoneScript->OnCreatureCreate(this, true); ObjectAccessor::Instance().AddObject(this); Unit::AddToWorld(); AIM_Initialize(); @@ -57,6 +61,8 @@ void Vehicle::RemoveFromWorld() { if(IsInWorld()) { + if(m_zoneScript) + m_zoneScript->OnCreatureCreate(this, false); RemoveAllPassengers(); ///- Don't call the function for Creature, normal mobs + totems go in a different storage Unit::RemoveFromWorld(); @@ -238,18 +244,15 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId) GetPositionZ() + unit->m_movementInfo.t_z, GetOrientation()); + unit->GetMotionMaster()->MoveIdle(MOTION_SLOT_IDLE); + WorldPacket data; if(unit->GetTypeId() == TYPEID_PLAYER) { //ChatHandler(player).PSendSysMessage("Enter seat %u %u", veSeat->m_ID, seat->first); if(seat->first == 0 && seat->second.seatInfo->IsUsable()) // not right - { - setFaction(unit->getFaction()); - ((Player*)unit)->SetCharm(this, true); - ((Player*)unit)->SetViewpoint(this, true); - ((Player*)unit)->VehicleSpellInitialize(); - } + SetCharmedBy(unit, CHARM_TYPE_VEHICLE); ((Player*)unit)->BuildTeleportAckMsg(&data, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ(), unit->GetOrientation()); ((Player*)unit)->GetSession()->SendPacket(&data); @@ -289,12 +292,7 @@ void Vehicle::RemovePassenger(Unit *unit) //SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK); if(unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->IsUsable()) - { - RestoreFaction(); - ((Player*)unit)->SetCharm(this, false); - ((Player*)unit)->SetViewpoint(this, false); - ((Player*)unit)->SendRemoveControlBar(); - } + RemoveCharmedBy(unit); // only for flyable vehicles? //CastSpell(this, 45472, true); // Parachute diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp index 51c5759bf13..782ec4ab537 100644 --- a/src/game/Wintergrasp.cpp +++ b/src/game/Wintergrasp.cpp @@ -127,7 +127,7 @@ bool OPvPWintergrasp::SetupOutdoorPvP() LoadTeamPair(m_creEntryPair, CreatureEntryPair); m_wartime = false; - m_timer = 600000; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS; return true; } @@ -155,33 +155,59 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId) } } -void OPvPWintergrasp::ChangeDefender() -{ - m_defender = OTHER_TEAM(m_defender); - if(m_defender == TEAM_ALLIANCE) - sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!"); - else - sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!"); - UpdateAllWorldObject(); - - m_wartime = false; - m_timer = 600000; // for test, should be 2 hour 30 min -} - -uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, uint32 entry) +uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, const CreatureData *data) { if(m_defender == TEAM_ALLIANCE) { - TeamPairMap::const_iterator itr = m_creEntryPair.find(entry); + TeamPairMap::const_iterator itr = m_creEntryPair.find(data->id); if(itr != m_creEntryPair.end()) + { + const_cast<CreatureData*>(data)->displayid = 0; return itr->second; + } } - return entry; + return data->id; } void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add) { - if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end()) + if(creature->isVehicle()) + { + TeamId team; + if(creature->getFaction() == WintergraspFaction[TEAM_ALLIANCE]) + team = TEAM_ALLIANCE; + else if(creature->getFaction() == WintergraspFaction[TEAM_HORDE]) + team = TEAM_HORDE; + else + return; + + switch(creature->GetEntry()) + { + case 27881: + case 28094: + case 28312: + case 32627: + //case 28366: tower + if(add) + { + m_vehicles[team].insert((Vehicle*)creature); + if(m_tenacityStack > 0) + { + if(team == TEAM_ALLIANCE) + creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, m_tenacityStack); + } + else if(m_tenacityStack < 0) + { + if(team == TEAM_HORDE) + creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, -m_tenacityStack); + } + } + else + m_vehicles[team].erase((Vehicle*)creature); + break; + } + } + else if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end()) { if(add) m_creatures.insert(creature); else m_creatures.erase(creature); @@ -304,7 +330,7 @@ bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go) void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone) { - if(!plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL) + if(m_wartime && !plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL) && !plr->HasAura(SPELL_LIEUTENANT)) plr->CastSpell(plr, SPELL_RECRUIT, true); @@ -377,12 +403,18 @@ void OPvPWintergrasp::UpdateTenacityStack() if(m_tenacityStack > 0) { if(newStack <= 0) + { TeamCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY); + VehicleCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY_VEHICLE); + } } else if(m_tenacityStack < 0) { if(newStack >= 0) + { TeamCastSpell(TEAM_HORDE, -SPELL_TENACITY); + VehicleCastSpell(TEAM_HORDE, -SPELL_TENACITY_VEHICLE); + } } m_tenacityStack = newStack; @@ -390,11 +422,24 @@ void OPvPWintergrasp::UpdateTenacityStack() if(newStack) { TeamId team = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE; + if(newStack < 0) newStack = -newStack; for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) (*itr)->SetAuraStack(SPELL_TENACITY, *itr, newStack); + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->SetAuraStack(SPELL_TENACITY_VEHICLE, *itr, newStack); } } +void OPvPWintergrasp::VehicleCastSpell(TeamId team, int32 spellId) +{ + if(spellId > 0) + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->CastSpell(*itr, (uint32)spellId, true); + else + for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr) + (*itr)->RemoveAura((uint32)-spellId); // by stack? +} + bool OPvPWintergrasp::Update(uint32 diff) { if(m_timer > diff) @@ -403,20 +448,75 @@ bool OPvPWintergrasp::Update(uint32 diff) { if(m_wartime) { - m_wartime = false; - m_timer = 600000; // for test, should be 2 hour 30 min if(m_defender == TEAM_ALLIANCE) sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has successfully defended the fortress!"); else sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has successfully defended the fortress!"); + GiveReward(); + EndBattle(); } else { - m_wartime = true; - m_timer = 30*60*1000; sWorld.SendZoneText(ZONE_WINTERGRASP, "Battle begins!"); UpdateAllWorldObject(); + StartBattle(); } } return false; } + +void OPvPWintergrasp::ChangeDefender() +{ + m_defender = OTHER_TEAM(m_defender); + if(m_defender == TEAM_ALLIANCE) + sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!"); + else + sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!"); + UpdateAllWorldObject(); + + GiveReward(); + EndBattle(); +} + +void OPvPWintergrasp::GiveReward() +{ + for(uint32 team = 0; team < 2; ++team) + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + if((*itr)->HasAura(SPELL_LIEUTENANT)) + (*itr)->CastSpell(*itr, team == m_defender ? SPELL_VICTORY_REWARD : SPELL_DEFEAT_REWARD, true); +} + +void OPvPWintergrasp::StartBattle() +{ + m_wartime = true; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME) * MINUTE * IN_MILISECONDS; + + for(uint32 team = 0; team < 2; ++team) + { + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + { + (*itr)->RemoveAura(SPELL_RECRUIT); + (*itr)->RemoveAura(SPELL_CORPORAL); + (*itr)->RemoveAura(SPELL_LIEUTENANT); + (*itr)->CastSpell(*itr, SPELL_RECRUIT, true); + } + } +} + +void OPvPWintergrasp::EndBattle() +{ + m_wartime = false; + m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL) * MINUTE * IN_MILISECONDS; + + for(uint32 team = 0; team < 2; ++team) + { + VehicleCastSpell(TeamId(team), SPELL_SHUTDOWN_VEHICLE); + + for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) + { + (*itr)->RemoveAura(SPELL_RECRUIT); + (*itr)->RemoveAura(SPELL_CORPORAL); + (*itr)->RemoveAura(SPELL_LIEUTENANT); + } + } +} diff --git a/src/game/Wintergrasp.h b/src/game/Wintergrasp.h index 5a39652cecd..11f9865f72b 100644 --- a/src/game/Wintergrasp.h +++ b/src/game/Wintergrasp.h @@ -35,6 +35,38 @@ const uint32 WintergraspFaction[2] = {1732, 1735}; #define SPELL_TENACITY 58549 #define SPELL_TENACITY_VEHICLE 59911 +#define SPELL_VICTORY_REWARD 56902 +#define SPELL_DEFEAT_REWARD 58494 + +#define SPELL_SHUTDOWN_VEHICLE 21247 + +const uint32 WG_KEEP_CM = 0; //Need data +const uint32 WG_RULERS_BUFF = 52108; +//some cosmetics :D +const uint32 WG_VICTORY_AURA = 60044; + +enum OutdoorPvP_WG_Sounds +{ +/*TODO OutdoorPvP_WG_SOUND_KEEP_CLAIMED = 8192, + OutdoorPvP_WG_SOUND_KEEP_CAPTURED_ALLIANCE = 8173, + OutdoorPvP_WG_SOUND_KEEP_CAPTURED_HORDE = 8213, + OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_ALLIANCE = 8212, + OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_HORDE = 8174, + OutdoorPvP_WG_SOUND_NEAR_VICTORY = 8456 +*/ +}; + +enum OutdoorPvP_WG_KeepStatus +{ + OutdoorPvP_WG_KEEP_TYPE_NEUTRAL = 0, + OutdoorPvP_WG_KEEP_TYPE_CONTESTED = 1, + OutdoorPvP_WG_KEEP_STATUS_ALLY_CONTESTED = 1, + OutdoorPvP_WG_KEEP_STATUS_HORDE_CONTESTED = 2, + OutdoorPvP_WG_KEEP_TYPE_OCCUPIED = 3, + OutdoorPvP_WG_KEEP_STATUS_ALLY_OCCUPIED = 3, + OutdoorPvP_WG_KEEP_STATUS_HORDE_OCCUPIED = 4 +}; + enum DamageState { DAMAGE_INTACT, @@ -75,12 +107,13 @@ class OPvPWintergrasp : public OutdoorPvP protected: typedef std::map<uint32, BuildingState *> BuildingStateMap; typedef std::set<Creature*> CreatureSet; + typedef std::set<Vehicle*> VehicleSet; typedef std::set<GameObject*> GameObjectSet; public: explicit OPvPWintergrasp() : m_tenacityStack(0) {} bool SetupOutdoorPvP(); - uint32 GetCreatureEntry(uint32 guidlow, uint32 entry); + uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data); //uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry); void OnCreatureCreate(Creature *creature, bool add); @@ -102,6 +135,7 @@ class OPvPWintergrasp : public OutdoorPvP BuildingStateMap m_buildingStates; CreatureSet m_creatures; + VehicleSet m_vehicles[2]; GameObjectSet m_gobjects; TeamPairMap m_creEntryPair, m_goDisplayPair; @@ -117,6 +151,11 @@ class OPvPWintergrasp : public OutdoorPvP bool UpdateGameObjectInfo(GameObject *go); void RebuildAllBuildings(); + void StartBattle(); + void EndBattle(); + void GiveReward(); + + void VehicleCastSpell(TeamId team, int32 spellId); }; #endif diff --git a/src/game/World.cpp b/src/game/World.cpp index cf14b846508..89362474f85 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1079,6 +1079,9 @@ void World::LoadConfigSettings(bool reload) m_configs[CONFIG_PVP_TOKEN_COUNT] = sConfig.GetIntDefault("PvPToken.ItemCount", 1); if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1) m_configs[CONFIG_PVP_TOKEN_COUNT] = 1; + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.StartTime", 30); + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.BattleTime", 30); + m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.Interval", 150); m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false); m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false); m_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfig.GetIntDefault("RecordUpdateTimeDiffInterval", 60000); diff --git a/src/game/World.h b/src/game/World.h index 92fe74f9b81..3ff814a4d73 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -225,6 +225,9 @@ enum WorldConfigs CONFIG_PVP_TOKEN_MAP_TYPE, CONFIG_PVP_TOKEN_ID, CONFIG_PVP_TOKEN_COUNT, + CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME, + CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME, + CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL, CONFIG_NO_RESET_TALENT_COST, CONFIG_SHOW_KICK_IN_WORLD, CONFIG_INTERVAL_LOG_UPDATE, diff --git a/src/game/ZoneScript.h b/src/game/ZoneScript.h index e0674d3fdd4..6ace3c36474 100644 --- a/src/game/ZoneScript.h +++ b/src/game/ZoneScript.h @@ -20,7 +20,9 @@ #define ZONE_SCRIPT_H_ #include "Common.h" +#include "Creature.h" +//struct CreatureData; class Creature; class GameObject; @@ -29,7 +31,7 @@ class TRINITY_DLL_SPEC ZoneScript public: explicit ZoneScript() {} - virtual uint32 GetCreatureEntry(uint32 guidlow, uint32 entry) { return entry; } + virtual uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data) { return data->id; } virtual uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry) { return entry; } virtual void OnCreatureCreate(Creature *, bool add) {} diff --git a/src/shared/Database/Database.h b/src/shared/Database/Database.h index 493ec8a76c0..7f2bdaefdb7 100644 --- a/src/shared/Database/Database.h +++ b/src/shared/Database/Database.h @@ -81,16 +81,16 @@ class TRINITY_DLL_SPEC Database template<class Class, typename ParamType1> bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); template<class Class, typename ParamType1, typename ParamType2> - bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(6,7); template<class Class, typename ParamType1, typename ParamType2, typename ParamType3> - bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(7,8); // PQuery / static template<typename ParamType1> - bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(4,5); template<typename ParamType1, typename ParamType2> bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6); template<typename ParamType1, typename ParamType2, typename ParamType3> - bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6); + bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(6,7); template<class Class> // QueryHolder bool DelayQueryHolder(Class *object, void (Class::*method)(QueryResult*, SqlQueryHolder*), SqlQueryHolder *holder); diff --git a/src/shared/vmap/CoordModelMapping.cpp b/src/shared/vmap/CoordModelMapping.cpp index 5dd23f306aa..86e3347a614 100644 --- a/src/shared/vmap/CoordModelMapping.cpp +++ b/src/shared/vmap/CoordModelMapping.cpp @@ -21,6 +21,7 @@ #include "CoordModelMapping.h" #include <string.h> +#include <cstdio> using namespace G3D; diff --git a/src/shared/vmap/CoordModelMapping.h b/src/shared/vmap/CoordModelMapping.h index 7c89f0e8a0f..c1f49462962 100644 --- a/src/shared/vmap/CoordModelMapping.h +++ b/src/shared/vmap/CoordModelMapping.h @@ -21,6 +21,7 @@ #ifndef _COORDMODELMAPPING_H_ #define _COORDMODELMAPPING_H_ +#include <cstdio> #include <G3D/Table.h> #include <G3D/Array.h> diff --git a/src/shared/vmap/DebugCmdLogger.cpp b/src/shared/vmap/DebugCmdLogger.cpp index de656f4cfc5..e6b36572c45 100644 --- a/src/shared/vmap/DebugCmdLogger.cpp +++ b/src/shared/vmap/DebugCmdLogger.cpp @@ -18,6 +18,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include <cstdio> + #include "DebugCmdLogger.h" using namespace G3D; diff --git a/src/shared/vmap/TileAssembler.cpp b/src/shared/vmap/TileAssembler.cpp index c2918a64fa4..cbaa4e58108 100644 --- a/src/shared/vmap/TileAssembler.cpp +++ b/src/shared/vmap/TileAssembler.cpp @@ -373,7 +373,7 @@ namespace VMAP if(!rf) { printf("ERROR: Can't open model file in form: %s",pModelFilename.c_str()); - printf("... or form: %s",filename ); + printf("... or form: %s",filename.c_str() ); return false; } diff --git a/src/trinitycore/CliRunnable.cpp b/src/trinitycore/CliRunnable.cpp index 96719b25cf7..1da2a30b4f7 100644 --- a/src/trinitycore/CliRunnable.cpp +++ b/src/trinitycore/CliRunnable.cpp @@ -23,19 +23,20 @@ /// \file #include "Common.h" -#include "Language.h" -#include "Log.h" -#include "World.h" -#include "ScriptCalls.h" #include "ObjectMgr.h" +#include "World.h" #include "WorldSession.h" #include "Config/ConfigEnv.h" -#include "Util.h" + #include "AccountMgr.h" +#include "Chat.h" #include "CliRunnable.h" +#include "Language.h" +#include "Log.h" #include "MapManager.h" #include "Player.h" -#include "Chat.h" +#include "ScriptCalls.h" +#include "Util.h" void utf8print(const char* str) { diff --git a/src/trinitycore/Main.cpp b/src/trinitycore/Main.cpp index 7b00073026d..eb51c770896 100644 --- a/src/trinitycore/Main.cpp +++ b/src/trinitycore/Main.cpp @@ -22,12 +22,17 @@ /// @{ /// \file +#include <openssl/opensslv.h> +#include <openssl/crypto.h> + #include "Common.h" #include "Database/DatabaseEnv.h" #include "Config/ConfigEnv.h" + #include "Log.h" #include "Master.h" + #ifndef _TRINITY_CORE_CONFIG # define _TRINITY_CORE_CONFIG "TrinityCore.conf" #endif //_TRINITY_CORE_CONFIG @@ -152,6 +157,13 @@ extern int main(int argc, char **argv) while (pause > clock()) {} } + sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + if (SSLeay() < 0x009080bfL ) + { + sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!"); + sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]"); + } + ///- and run the 'Master' /// \todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd? return sMaster.Run(); diff --git a/src/trinitycore/Master.cpp b/src/trinitycore/Master.cpp index 2e2d75d5c3c..4d7eca8f04e 100644 --- a/src/trinitycore/Master.cpp +++ b/src/trinitycore/Master.cpp @@ -24,21 +24,22 @@ #include <ace/OS_NS_signal.h> -#include "WorldSocketMgr.h" #include "Common.h" -#include "Master.h" -#include "WorldSocket.h" -#include "WorldRunnable.h" -#include "World.h" -#include "Log.h" -#include "Timer.h" -#include "Policies/SingletonImp.h" #include "SystemConfig.h" +#include "World.h" +#include "WorldRunnable.h" +#include "WorldSocket.h" +#include "WorldSocketMgr.h" #include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + #include "CliRunnable.h" +#include "Log.h" +#include "Master.h" #include "RASocket.h" #include "ScriptCalls.h" +#include "Timer.h" #include "Util.h" #include "sockets/TcpSocket.h" diff --git a/src/trinitycore/RASocket.cpp b/src/trinitycore/RASocket.cpp index ccda5ba7548..50a1af87256 100644 --- a/src/trinitycore/RASocket.cpp +++ b/src/trinitycore/RASocket.cpp @@ -23,13 +23,14 @@ */ #include "Common.h" +#include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AccountMgr.h" #include "Log.h" #include "RASocket.h" -#include "World.h" -#include "Config/ConfigEnv.h" #include "Util.h" -#include "AccountMgr.h" +#include "World.h" /// \todo Make this thread safe if in the future 2 admins should be able to log at the same time. SOCKET r; diff --git a/src/trinitycore/RASocket.h b/src/trinitycore/RASocket.h index 8900e689b2c..330c85defa4 100644 --- a/src/trinitycore/RASocket.h +++ b/src/trinitycore/RASocket.h @@ -25,9 +25,10 @@ #ifndef _RASOCKET_H #define _RASOCKET_H -#include "Common.h" #include "sockets/TcpSocket.h" +#include "Common.h" + #define RA_BUFF_SIZE 1024 class ISocketHandler; diff --git a/src/trinitycore/WorldRunnable.cpp b/src/trinitycore/WorldRunnable.cpp index bd4d3170c52..ad0243a36ae 100644 --- a/src/trinitycore/WorldRunnable.cpp +++ b/src/trinitycore/WorldRunnable.cpp @@ -22,17 +22,17 @@ \ingroup Trinityd */ -#include "WorldSocketMgr.h" #include "Common.h" -#include "World.h" -#include "WorldRunnable.h" -#include "Timer.h" #include "ObjectAccessor.h" -#include "MapManager.h" -#include "BattleGroundMgr.h" - +#include "World.h" +#include "WorldSocketMgr.h" #include "Database/DatabaseEnv.h" +#include "BattleGroundMgr.h" +#include "MapManager.h" +#include "Timer.h" +#include "WorldRunnable.h" + #if (defined(WIN32) || defined(SHORT_SLEEP)) #define WORLD_SLEEP_CONST 50 #else diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index ca6ec3a15d4..30b1c723e0a 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -1583,6 +1583,14 @@ Ra.Secure = 1 # NoResetTalentsCost # Enable or disable no cost when reseting talents # +# +# OutdoorPvP.Wintergrasp.StartTime = 30 +# The start time of the first battle after server starts (default: 30 minutes) +# OutdoorPvP.Wintergrasp.BattleTime = 30 +# Time limit of a battle +# OutdoorPvP.Wintergrasp.Interval +# Interval between battles (default: 150 minutes) +# # ForbiddenMaps # map ids that users below SEC_GAMEMASTER cannot enter, with delimiter ',' # Default: "" @@ -1624,6 +1632,9 @@ PvPToken.Enable = 0 PvPToken.MapAllowType = 4 PvPToken.ItemID = 29434 PvPToken.ItemCount = 1 +OutdoorPvP.Wintergrasp.StartTime = 30 +OutdoorPvP.Wintergrasp.BattleTime = 30 +OutdoorPvP.Wintergrasp.Interval = 150 NoResetTalentsCost = 0 ShowKickInWorld = 0 RecordUpdateTimeDiffInterval = 60000 diff --git a/src/trinityrealm/AuthSocket.cpp b/src/trinityrealm/AuthSocket.cpp index 8c9eab653ec..9933a237981 100644 --- a/src/trinityrealm/AuthSocket.cpp +++ b/src/trinityrealm/AuthSocket.cpp @@ -21,17 +21,19 @@ /** \file \ingroup realmd */ +#include <openssl/md5.h> #include "Common.h" +#include "Auth/Sha1.h" +#include "Config/ConfigEnv.h" #include "Database/DatabaseEnv.h" + +#include "AuthCodes.h" +#include "AuthSocket.h" #include "ByteBuffer.h" -#include "Config/ConfigEnv.h" #include "Log.h" #include "RealmList.h" -#include "AuthSocket.h" -#include "AuthCodes.h" -#include <openssl/md5.h> -#include "Auth/Sha1.h" + //#include "Util.h" -- for commented utf8ToUpperOnlyLatin extern RealmList m_realmList; diff --git a/src/trinityrealm/AuthSocket.h b/src/trinityrealm/AuthSocket.h index 43b880a1e74..d20e8429752 100644 --- a/src/trinityrealm/AuthSocket.h +++ b/src/trinityrealm/AuthSocket.h @@ -25,8 +25,6 @@ #ifndef _AUTHSOCKET_H #define _AUTHSOCKET_H -#include "Common.h" -#include "Auth/BigNumber.h" #include "sockets/TcpSocket.h" #include "sockets/SocketHandler.h" #include "sockets/ListenSocket.h" @@ -34,6 +32,9 @@ #include "sockets/Parse.h" #include "sockets/Socket.h" +#include "Common.h" +#include "Auth/BigNumber.h" + /// Handle login commands class AuthSocket: public TcpSocket { diff --git a/src/trinityrealm/Main.cpp b/src/trinityrealm/Main.cpp index cbadd4d1e4c..68449ed3d71 100644 --- a/src/trinityrealm/Main.cpp +++ b/src/trinityrealm/Main.cpp @@ -22,14 +22,17 @@ /// @{ /// \file -#include "Common.h" -#include "Database/DatabaseEnv.h" -#include "RealmList.h" +#include <openssl/opensslv.h> +#include <openssl/crypto.h> +#include "Common.h" #include "Config/ConfigEnv.h" -#include "Log.h" +#include "Database/DatabaseEnv.h" #include "sockets/ListenSocket.h" + #include "AuthSocket.h" +#include "Log.h" +#include "RealmList.h" #include "SystemConfig.h" #include "Util.h" @@ -162,6 +165,13 @@ extern int main(int argc, char **argv) while (pause > clock()) {} } + sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + if (SSLeay() < 0x009080bfL ) + { + sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!"); + sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]"); + } + sLog.outString( "%s (realm-daemon)", _FULLVERSION ); sLog.outString( "<Ctrl-C> to stop.\n" ); diff --git a/src/trinityrealm/RealmList.cpp b/src/trinityrealm/RealmList.cpp index 6a3d6b47e0f..9f9e39df050 100644 --- a/src/trinityrealm/RealmList.cpp +++ b/src/trinityrealm/RealmList.cpp @@ -23,9 +23,10 @@ */ #include "Common.h" -#include "RealmList.h" -#include "Policies/SingletonImp.h" #include "Database/DatabaseEnv.h" +#include "Policies/SingletonImp.h" + +#include "RealmList.h" INSTANTIATE_SINGLETON_1( RealmList ); |