aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-18 15:09:43 -0700
committermaximius <none@none>2009-10-18 15:09:43 -0700
commitd095feefc0ba65d2609d2679a3fb1ae86343fcaf (patch)
tree774e338599d74afbeaea6f24a8d7891e8092e566 /src
parent32e2c3e41188d055a6614482ef345c36ff4e04e5 (diff)
*Cleanup and optimization
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_moroes.cpp15
-rw-r--r--src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp113
-rw-r--r--src/game/InstanceData.cpp9
3 files changed, 50 insertions, 87 deletions
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_moroes.cpp
index c2ab4a9567b..838fc70f135 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_moroes.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_moroes.cpp
@@ -134,20 +134,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
DeSpawnAdds();
//remove aura from spell Garrote when Moroes dies
- Map* pMap = m_creature->GetMap();
- if (pMap->IsDungeon())
- {
- Map::PlayerList const &PlayerList = pMap->GetPlayers();
-
- if (PlayerList.isEmpty())
- return;
-
- for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if (i->getSource()->isAlive() && i->getSource()->HasAura(SPELL_GARROTE,0))
- i->getSource()->RemoveAurasDueToSpell(SPELL_GARROTE);
- }
- }
+ pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GARROTE);
}
void SpawnAdds()
diff --git a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
index f13372af22d..d107a63b653 100644
--- a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
+++ b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
@@ -165,12 +165,10 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
{
boss_sartharionAI(Creature* pCreature) : ScriptedAI(pCreature)
{
- m_pInstance = pCreature->GetInstanceData();
- m_bIsHeroic = pCreature->GetMap()->IsHeroic();
+ pInstance = pCreature->GetInstanceData();
}
- ScriptedInstance* m_pInstance;
- bool m_bIsHeroic;
+ ScriptedInstance* pInstance;
bool m_bIsBerserk;
bool m_bIsSoftEnraged;
@@ -220,8 +218,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
void JustReachedHome()
{
- if (m_pInstance)
- m_pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
+ if (pInstance)
+ pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
}
void Aggro(Unit* pWho)
@@ -229,9 +227,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
DoScriptText(SAY_SARTHARION_AGGRO,m_creature);
DoZoneInCombat();
- if (m_pInstance)
+ if (pInstance)
{
- m_pInstance->SetData(TYPE_SARTHARION_EVENT, IN_PROGRESS);
+ pInstance->SetData(TYPE_SARTHARION_EVENT, IN_PROGRESS);
FetchDragons();
}
}
@@ -240,8 +238,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
{
DoScriptText(SAY_SARTHARION_DEATH,m_creature);
- if (m_pInstance)
- m_pInstance->SetData(TYPE_SARTHARION_EVENT, DONE);
+ if (pInstance)
+ pInstance->SetData(TYPE_SARTHARION_EVENT, DONE);
}
void KilledUnit(Unit* pVictim)
@@ -251,9 +249,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
void FetchDragons()
{
- Unit* pTene = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_TENEBRON));
- Unit* pShad = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_SHADRON));
- Unit* pVesp = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_VESPERON));
+ Unit* pTene = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_TENEBRON));
+ Unit* pShad = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_SHADRON));
+ Unit* pVesp = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_VESPERON));
//if at least one of the dragons are alive and are being called
bool bCanUseWill = false;
@@ -291,9 +289,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
void CallDragon(uint32 uiDataId)
{
- if (m_pInstance)
+ if (pInstance)
{
- Creature* pTemp = Unit::GetCreature((*m_creature),m_pInstance->GetData64(uiDataId));
+ Creature* pTemp = Unit::GetCreature((*m_creature),pInstance->GetData64(uiDataId));
if (pTemp && pTemp->isAlive() && !pTemp->getVictim())
{
@@ -351,9 +349,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
if (!UpdateVictim())
return;
- Unit* pTene = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_TENEBRON) : 0);
- Unit* pShad = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_SHADRON) : 0);
- Unit* pVesp = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_VESPERON) : 0);
+ Unit* pTene = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_TENEBRON) : 0);
+ Unit* pShad = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_SHADRON) : 0);
+ Unit* pVesp = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_VESPERON) : 0);
//spell will target dragons, if they are still alive at 35%
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 35
@@ -396,7 +394,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
if (m_uiFlameBreathTimer < uiDiff)
{
DoScriptText(SAY_SARTHARION_BREATH, m_creature);
- DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH);
+ DoCast(m_creature->getVictim(), HEROIC(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H));
m_uiFlameBreathTimer = urand(25000,35000);
}
else
@@ -405,7 +403,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
// Tail Sweep
if (m_uiTailSweepTimer < uiDiff)
{
- DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_TAIL_LASH_H : SPELL_TAIL_LASH);
+ DoCast(m_creature->getVictim(), HEROIC(SPELL_TAIL_LASH, SPELL_TAIL_LASH_H));
m_uiTailSweepTimer = urand(15000,20000);
}
else
@@ -514,12 +512,10 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
{
dummy_dragonAI(Creature* pCreature) : ScriptedAI(pCreature)
{
- m_pInstance = pCreature->GetInstanceData();
- m_bIsHeroic = pCreature->GetMap()->IsHeroic();
+ pInstance = pCreature->GetInstanceData();
}
- ScriptedInstance* m_pInstance;
- bool m_bIsHeroic;
+ ScriptedInstance* pInstance;
uint32 m_uiWaypointId;
uint32 m_uiMoveNextTimer;
@@ -539,13 +535,13 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
void MovementInform(uint32 uiType, uint32 uiPointId)
{
- if (!m_pInstance || uiType != POINT_MOTION_TYPE)
+ if (!pInstance || uiType != POINT_MOTION_TYPE)
return;
debug_log("dummy_dragonAI: %s reached point %u", m_creature->GetName(), uiPointId);
//if healers messed up the raid and we was already initialized
- if (m_pInstance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
+ if (pInstance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
{
EnterEvadeMode();
return;
@@ -627,26 +623,6 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
//Refresh respawnTime so time again are set to 30secs?
}
- //Removes each drakes unique debuff from players
- void RemoveDebuff(uint32 uiSpellId)
- {
- Map* pMap = m_creature->GetMap();
-
- if (pMap && pMap->IsDungeon())
- {
- Map::PlayerList const &PlayerList = pMap->GetPlayers();
-
- if (PlayerList.isEmpty())
- return;
-
- for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if (i->getSource()->isAlive() && i->getSource()->HasAura(uiSpellId))
- i->getSource()->RemoveAurasDueToSpell(uiSpellId);
- }
- }
- }
-
void JustDied(Unit* pKiller)
{
int32 iTextId = 0;
@@ -670,16 +646,15 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
DoScriptText(iTextId, m_creature);
- RemoveDebuff(uiSpellId);
-
- if (m_pInstance)
+ if (pInstance)
{
+ pInstance->DoRemoveAurasDueToSpellOnPlayers(uiSpellId);
// not if solo mini-boss fight
- if (m_pInstance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
+ if (pInstance->GetData(TYPE_SARTHARION_EVENT) != IN_PROGRESS)
return;
// Twilight Revenge to main boss
- if (Unit* pSartharion = Unit::GetUnit((*m_creature), m_pInstance->GetData64(DATA_SARTHARION)))
+ if (Unit* pSartharion = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_SARTHARION)))
if (pSartharion->isAlive())
m_creature->CastSpell(pSartharion,SPELL_TWILIGHT_REVENGE,true);
}
@@ -748,7 +723,7 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
if (m_uiShadowFissureTimer < uiDiff)
{
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
- DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
+ DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE));
m_uiShadowFissureTimer = urand(15000,20000);
}
@@ -759,7 +734,7 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
if (m_uiShadowBreathTimer < uiDiff)
{
DoScriptText(SAY_TENEBRON_BREATH, m_creature);
- DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
+ DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000,25000);
}
else
@@ -824,7 +799,7 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
if (m_uiShadowFissureTimer < uiDiff)
{
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
- DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
+ DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H));
m_uiShadowFissureTimer = urand(15000,20000);
}
@@ -835,7 +810,7 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
if (m_uiShadowBreathTimer < uiDiff)
{
DoScriptText(SAY_SHADRON_BREATH, m_creature);
- DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
+ DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000,25000);
}
else
@@ -894,7 +869,7 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
if (m_uiShadowFissureTimer < uiDiff)
{
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))
- DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
+ DoCast(pTarget, HEROIC(SPELL_SHADOW_FISSURE, SPELL_SHADOW_FISSURE_H));
m_uiShadowFissureTimer = urand(15000,20000);
}
@@ -905,7 +880,7 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
if (m_uiShadowBreathTimer < uiDiff)
{
DoScriptText(SAY_VESPERON_BREATH, m_creature);
- DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
+ DoCast(m_creature->getVictim(), HEROIC(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000,25000);
}
else
@@ -928,17 +903,17 @@ struct TRINITY_DLL_DECL mob_acolyte_of_shadronAI : public ScriptedAI
{
mob_acolyte_of_shadronAI(Creature* pCreature) : ScriptedAI(pCreature)
{
- m_pInstance = pCreature->GetInstanceData();
+ pInstance = pCreature->GetInstanceData();
}
- ScriptedInstance* m_pInstance;
+ ScriptedInstance* pInstance;
void Reset()
{
- if (m_pInstance)
+ if (pInstance)
{
//if not solo figth, buff main boss, else place debuff on mini-boss. both spells TARGET_SCRIPT
- if (m_pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
+ if (pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
DoCast(m_creature, SPELL_GIFT_OF_TWILIGTH_SAR);
else
DoCast(m_creature, SPELL_GIFT_OF_TWILIGTH_SHA);
@@ -947,14 +922,14 @@ struct TRINITY_DLL_DECL mob_acolyte_of_shadronAI : public ScriptedAI
void JustDied(Unit* killer)
{
- if (m_pInstance)
+ if (pInstance)
{
Creature* pDebuffTarget = NULL;
- if (m_pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
+ if (pInstance->GetData(TYPE_SARTHARION_EVENT) == IN_PROGRESS)
{
//not solo fight, so main boss has deduff
- pDebuffTarget = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_SARTHARION));
+ pDebuffTarget = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SARTHARION));
if (pDebuffTarget && pDebuffTarget->isAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SAR))
pDebuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SAR);
@@ -962,7 +937,7 @@ struct TRINITY_DLL_DECL mob_acolyte_of_shadronAI : public ScriptedAI
else
{
//event not in progress, then solo fight and must remove debuff mini-boss
- pDebuffTarget = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_SHADRON));
+ pDebuffTarget = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SHADRON));
if (pDebuffTarget && pDebuffTarget->isAlive() && pDebuffTarget->HasAura(SPELL_GIFT_OF_TWILIGTH_SHA))
pDebuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SHA);
@@ -992,10 +967,10 @@ struct TRINITY_DLL_DECL mob_acolyte_of_vesperonAI : public ScriptedAI
{
mob_acolyte_of_vesperonAI(Creature* pCreature) : ScriptedAI(pCreature)
{
- m_pInstance = pCreature->GetInstanceData();
+ pInstance = pCreature->GetInstanceData();
}
- ScriptedInstance* m_pInstance;
+ ScriptedInstance* pInstance;
void Reset()
{
@@ -1005,9 +980,9 @@ struct TRINITY_DLL_DECL mob_acolyte_of_vesperonAI : public ScriptedAI
void JustDied(Unit* pKiller)
{
// remove twilight torment on Vesperon
- if (m_pInstance)
+ if (pInstance)
{
- Creature* pVesperon = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_VESPERON));
+ Creature* pVesperon = pInstance->instance->GetCreature(pInstance->GetData64(DATA_VESPERON));
if (pVesperon && pVesperon->isAlive() && pVesperon->HasAura(SPELL_TWILIGHT_TORMENT_VESP))
pVesperon->RemoveAurasDueToSpell(SPELL_TWILIGHT_TORMENT_VESP);
diff --git a/src/game/InstanceData.cpp b/src/game/InstanceData.cpp
index b798c884312..778a315c084 100644
--- a/src/game/InstanceData.cpp
+++ b/src/game/InstanceData.cpp
@@ -305,9 +305,9 @@ void InstanceData::DoSendNotifyToInstance(const char *format, ...)
InstanceMap::PlayerList::const_iterator i;
if (!PlayerList.isEmpty())
- for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if ((*i).getSource() && (*i).getSource()->GetSession())
- (*i).getSource()->GetSession()->SendNotification(format);
+ for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (i->getSource() && i->getSource()->GetSession())
+ i->getSource()->GetSession()->SendNotification(format);
}
// Complete Achievement for all players in instance
@@ -330,5 +330,6 @@ void InstanceData::DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- if (i->getSource() && i->getSource()->HasAura(spell)) i->getSource()->RemoveAurasDueToSpell(spell);
+ if (i->getSource())
+ i->getSource()->RemoveAurasDueToSpell(spell);
}