Skip to content

Commit 3d7a83b

Browse files
author
NoFantasy
committed
[1683] Drop custom SelectUnit script function and use Mangos function SelectAttackingTarget instead.
Drop custom SelectUnit script function and use Mangos function SelectAttackingTarget instead. Requires Mangos 9832++ git-svn-id: https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2@1683 5f9c896b-1e26-0410-94da-f77f675e2462
1 parent e01e430 commit 3d7a83b

150 files changed

Lines changed: 377 additions & 428 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

base/simple_ai.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,13 @@ void SimpleAI::KilledUnit(Unit *victim)
132132
target = m_creature->getVictim();
133133
break;
134134
case CAST_HOSTILE_SECOND_AGGRO:
135-
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
135+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO,1);
136136
break;
137137
case CAST_HOSTILE_LAST_AGGRO:
138-
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
138+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_BOTTOMAGGRO,0);
139139
break;
140140
case CAST_HOSTILE_RANDOM:
141-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
141+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
142142
break;
143143
case CAST_KILLEDUNIT_VICTIM:
144144
target = victim;
@@ -180,13 +180,13 @@ void SimpleAI::DamageTaken(Unit *killer, uint32 &damage)
180180
target = m_creature->getVictim();
181181
break;
182182
case CAST_HOSTILE_SECOND_AGGRO:
183-
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
183+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO,1);
184184
break;
185185
case CAST_HOSTILE_LAST_AGGRO:
186-
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
186+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_BOTTOMAGGRO,0);
187187
break;
188188
case CAST_HOSTILE_RANDOM:
189-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
189+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
190190
break;
191191
case CAST_JUSTDIED_KILLER:
192192
target = killer;
@@ -231,13 +231,13 @@ void SimpleAI::UpdateAI(const uint32 diff)
231231
target = m_creature->getVictim();
232232
break;
233233
case CAST_HOSTILE_SECOND_AGGRO:
234-
target = SelectUnit(SELECT_TARGET_TOPAGGRO,1);
234+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOPAGGRO,1);
235235
break;
236236
case CAST_HOSTILE_LAST_AGGRO:
237-
target = SelectUnit(SELECT_TARGET_BOTTOMAGGRO,0);
237+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_BOTTOMAGGRO,0);
238238
break;
239239
case CAST_HOSTILE_RANDOM:
240-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
240+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
241241
break;
242242
}
243243

include/sc_creature.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -187,37 +187,6 @@ Creature* ScriptedAI::DoSpawnCreature(uint32 uiId, float fX, float fY, float fZ,
187187
return m_creature->SummonCreature(uiId,m_creature->GetPositionX()+fX, m_creature->GetPositionY()+fY, m_creature->GetPositionZ()+fZ, fAngle, (TempSummonType)uiType, uiDespawntime);
188188
}
189189

190-
Unit* ScriptedAI::SelectUnit(SelectAggroTarget target, uint32 uiPosition)
191-
{
192-
//ThreatList m_threatlist;
193-
ThreatList const& threatlist = m_creature->getThreatManager().getThreatList();
194-
ThreatList::const_iterator itr = threatlist.begin();
195-
ThreatList::const_reverse_iterator ritr = threatlist.rbegin();
196-
197-
if (uiPosition >= threatlist.size() || threatlist.empty())
198-
return NULL;
199-
200-
switch (target)
201-
{
202-
case SELECT_TARGET_RANDOM:
203-
advance(itr, uiPosition + (rand() % (threatlist.size() - uiPosition)));
204-
return Unit::GetUnit((*m_creature),(*itr)->getUnitGuid());
205-
break;
206-
207-
case SELECT_TARGET_TOPAGGRO:
208-
advance(itr, uiPosition);
209-
return Unit::GetUnit((*m_creature),(*itr)->getUnitGuid());
210-
break;
211-
212-
case SELECT_TARGET_BOTTOMAGGRO:
213-
advance(ritr, uiPosition);
214-
return Unit::GetUnit((*m_creature),(*ritr)->getUnitGuid());
215-
break;
216-
}
217-
218-
return NULL;
219-
}
220-
221190
SpellEntry const* ScriptedAI::SelectSpell(Unit* pTarget, int32 uiSchool, int32 uiMechanic, SelectTarget selectTargets, uint32 uiPowerCostMin, uint32 uiPowerCostMax, float fRangeMin, float fRangeMax, SelectEffect selectEffects)
222191
{
223192
//No target so we can't cast

include/sc_creature.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,6 @@ enum SelectEffect
3333
SELECT_EFFECT_AURA, //Spell applies an aura
3434
};
3535

36-
//Selection method used by SelectTarget
37-
enum SelectAggroTarget
38-
{
39-
SELECT_TARGET_RANDOM = 0, //Just selects a random target
40-
SELECT_TARGET_TOPAGGRO, //Selects targes from top aggro to bottom
41-
SELECT_TARGET_BOTTOMAGGRO, //Selects targets from bottom aggro to top
42-
};
43-
4436
enum SCEquip
4537
{
4638
EQUIP_NO_CHANGE = -1,
@@ -164,9 +156,6 @@ struct MANGOS_DLL_DECL ScriptedAI : public CreatureAI
164156
//Spawns a creature relative to m_creature
165157
Creature* DoSpawnCreature(uint32 uiId, float fX, float fY, float fZ, float fAngle, uint32 uiType, uint32 uiDespawntime);
166158

167-
//Selects a unit from the creature's current aggro list
168-
Unit* SelectUnit(SelectAggroTarget target, uint32 uiPosition);
169-
170159
//Returns spells that meet the specified criteria from the creatures spell list
171160
SpellEntry const* SelectSpell(Unit* pTarget, int32 uiSchool, int32 uiMechanic, SelectTarget selectTargets, uint32 uiPowerCostMin, uint32 uiPowerCostMax, float fRangeMin, float fRangeMax, SelectEffect selectEffect);
172161

scripts/eastern_kingdoms/blackrock_depths/boss_anubshiah.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ struct MANGOS_DLL_DECL boss_anubshiahAI : public ScriptedAI
6565
if (CurseOfTongues_Timer < diff)
6666
{
6767
Unit* target = NULL;
68-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
68+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
6969
if (target) DoCastSpellIfCan(target,SPELL_CURSEOFTONGUES);
7070
CurseOfTongues_Timer = 18000;
7171
}else CurseOfTongues_Timer -= diff;
@@ -88,7 +88,7 @@ struct MANGOS_DLL_DECL boss_anubshiahAI : public ScriptedAI
8888
if (EnvelopingWeb_Timer < diff)
8989
{
9090
Unit* target = NULL;
91-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
91+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
9292
if (target) DoCastSpellIfCan(target,SPELL_ENVELOPINGWEB);
9393
EnvelopingWeb_Timer = 12000;
9494
}else EnvelopingWeb_Timer -= diff;

scripts/eastern_kingdoms/blackrock_depths/boss_emperor_dagran_thaurissan.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ struct MANGOS_DLL_DECL boss_emperor_dagran_thaurissanAI : public ScriptedAI
8888

8989
if (m_uiHandOfThaurissan_Timer < uiDiff)
9090
{
91-
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
91+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0))
9292
DoCastSpellIfCan(pTarget,SPELL_HANDOFTHAURISSAN);
9393

9494
//3 Hands of Thaurissan will be casted

scripts/eastern_kingdoms/blackrock_depths/boss_high_interrogator_gerstahn.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ struct MANGOS_DLL_DECL boss_high_interrogator_gerstahnAI : public ScriptedAI
5757
//ShadowWordPain_Timer
5858
if (m_uiShadowWordPain_Timer < uiDiff)
5959
{
60-
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
60+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0))
6161
DoCastSpellIfCan(pTarget, SPELL_SHADOWWORDPAIN);
6262

6363
m_uiShadowWordPain_Timer = 7000;
@@ -68,7 +68,7 @@ struct MANGOS_DLL_DECL boss_high_interrogator_gerstahnAI : public ScriptedAI
6868
//ManaBurn_Timer
6969
if (m_uiManaBurn_Timer < uiDiff)
7070
{
71-
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
71+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0))
7272
DoCastSpellIfCan(pTarget, SPELL_MANABURN);
7373

7474
m_uiManaBurn_Timer = 10000;

scripts/eastern_kingdoms/blackrock_depths/boss_tomb_of_seven.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ struct MANGOS_DLL_DECL boss_doomrelAI : public ScriptedAI
145145

146146
void JustSummoned(Creature* pSummoned)
147147
{
148-
if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,0))
148+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0))
149149
pSummoned->AI()->AttackStart(pTarget);
150150
}
151151

@@ -236,7 +236,7 @@ struct MANGOS_DLL_DECL boss_doomrelAI : public ScriptedAI
236236
//Immolate_Timer
237237
if (m_uiImmolate_Timer < diff)
238238
{
239-
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
239+
if (Unit* target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0))
240240
DoCastSpellIfCan(target,SPELL_IMMOLATE);
241241

242242
m_uiImmolate_Timer = 25000;

scripts/eastern_kingdoms/blackrock_spire/boss_gyth.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ struct MANGOS_DLL_DECL boss_gythAI : public ScriptedAI
8181
Unit* Summoned = m_creature->SummonCreature(creatureId, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 240000);
8282
if (Summoned)
8383
{
84-
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
84+
Unit* target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0);
8585
if (target)
8686
Summoned->AddThreat(target);
8787
}

scripts/eastern_kingdoms/blackrock_spire/boss_overlord_wyrmthalak.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ struct MANGOS_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI
9696
if (!Summoned && m_creature->GetHealthPercent() < 51.0f)
9797
{
9898
Unit* target = NULL;
99-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
99+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
100100

101101
SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000);
102102
if (SummonedCreature)

scripts/eastern_kingdoms/blackrock_spire/boss_pyroguard_emberseer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ struct MANGOS_DLL_DECL boss_pyroguard_emberseerAI : public ScriptedAI
6666
if (PyroBlast_Timer < diff)
6767
{
6868
Unit* target = NULL;
69-
target = SelectUnit(SELECT_TARGET_RANDOM,0);
69+
target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM,0);
7070
if (target) DoCastSpellIfCan(target,SPELL_PYROBLAST);
7171
PyroBlast_Timer = 15000;
7272
}else PyroBlast_Timer -= diff;

0 commit comments

Comments
 (0)