From 39083f4ff837d23cc886338fc9bc74df90fe9613 Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 10 Dec 2008 20:25:47 -0600 Subject: *Add function SummonTrigger and allow to override its AI. *Remove some trigger scripts. Use default trigger AI and db data instead. *Small fix on eagle boss' electrical storm. --HG-- branch : trunk --- src/game/Object.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/game/Object.cpp') diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 35a021ac7c7..2872f29cdaf 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -1534,6 +1534,25 @@ GameObject* WorldObject::SummonGameObject(uint32 entry, float x, float y, float return go; } +Creature* WorldObject::SummonTrigger(float x, float y, float z, float ang, uint32 duration, CreatureAI* (*GetAI)(Creature*)) +{ + TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN; + Creature* summon = SummonCreature(WORLD_TRIGGER, x, y, z, ang, summonType, 0); + if(!summon) + return NULL; + + //summon->SetName(GetName()); + if(GetTypeId()==TYPEID_PLAYER || GetTypeId()==TYPEID_UNIT) + { + summon->setFaction(((Unit*)this)->getFaction()); + summon->SetLevel(((Unit*)this)->getLevel()); + } + + if(GetAI) + summon->AIM_Initialize(GetAI(summon)); + return summon; +} + void WorldObject::GetNearPoint2D(float &x, float &y, float distance2d, float absAngle ) const { x = GetPositionX() + (GetObjectSize() + distance2d) * cos(absAngle); -- cgit v1.2.3