Core/SAI/EAI: Pass struct parameters by reference instead of value, saves unneeded copying

This commit is contained in:
Shauren
2011-05-12 10:40:53 +02:00
parent bca01dd419
commit 339e8cb7e0
7 changed files with 43 additions and 39 deletions

View File

@@ -1025,9 +1025,6 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
case SMART_ACTION_SUMMON_CREATURE:
{
WorldObject* obj = GetBaseObject();
if (!obj)
obj = unit;
float x, y, z, o;
ObjectList* targets = GetTargets(e, unit);
if (targets)
@@ -1356,6 +1353,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
ne.minMaxRepeat.repeatMin = e.action.timeEvent.repeatMin;
ne.minMaxRepeat.repeatMax = e.action.timeEvent.repeatMax;
ne.event_flags = 0;
if (!ne.minMaxRepeat.repeatMin && !ne.minMaxRepeat.repeatMax)
ne.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE;
@@ -1395,9 +1393,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
goOrigGUID = go ? go->GetGUID() : 0;
go = NULL;
me = (*itr)->ToCreature();
delete targets;
return;
break;
}
else if (IsGameObject(*itr))
{
@@ -1407,9 +1403,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
goOrigGUID = go ? go->GetGUID() : 0;
go = (*itr)->ToGameObject();
me = NULL;
delete targets;
return;
break;
}
}
@@ -1532,7 +1526,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (e.action.cast.flags & SMARTCAST_INTERRUPT_PREVIOUS)
(*itr)->ToUnit()->InterruptNonMeleeSpells(false);
for (ObjectList::const_iterator it = targets->begin(); it != targets->end(); it++)
for (ObjectList::const_iterator it = targets->begin(); it != targets->end(); ++it)
if (IsUnit(*it))
(*itr)->ToUnit()->CastSpell((*it)->ToUnit(), e.action.cast.spell, (e.action.cast.flags & SMARTCAST_TRIGGERED) ? true : false);
}
@@ -1708,7 +1702,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
}
void SmartScript::InstallTemplate(SmartScriptHolder e)
void SmartScript::InstallTemplate(SmartScriptHolder const& e)
{
if (!GetBaseObject())
return;
@@ -1814,7 +1808,7 @@ SmartScriptHolder SmartScript::CreateEvent(SMART_EVENT e, uint32 event_flags, ui
return script;
}
ObjectList* SmartScript::GetTargets(SmartScriptHolder e, Unit* invoker)
ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*= NULL*/)
{
Unit* trigger = NULL;
if (invoker)