[svn] Added a function for WorldObjects to summon GameObjects. Original patch provided by streetrat. Please refer to the patch thread for usage instructions.

--HG--
branch : trunk
This commit is contained in:
w12x
2008-10-17 18:13:04 -05:00
parent 0bdf12f3dd
commit 16dcd37279
3 changed files with 26 additions and 1 deletions

View File

@@ -1435,6 +1435,29 @@ Creature* WorldObject::SummonCreature(uint32 id, float x, float y, float z, floa
return pCreature;
}
GameObject* WorldObject::SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
{
if(!IsInWorld())
return NULL;
Map * map = GetMap();
if(!map)
return NULL;
GameObjectInfo const* goinfo = objmgr.GetGameObjectInfo(entry);
if(!goinfo)
{
sLog.outErrorDb("Gameobject template %u not found in database!", entry);
return NULL;
}
GameObject *go = new GameObject();
if(!go->Create(objmgr.GenerateLowGuid(HIGHGUID_GAMEOBJECT),entry,map,x,y,z,ang,rotation0,rotation1,rotation2,rotation3,100,1))
return NULL;
go->SetRespawnTime(respawnTime);
go->SetSpawnedByDefault(false); // do not save respawn time
map->Add(go);
return go;
}
void WorldObject::GetNearPoint2D(float &x, float &y, float distance2d, float absAngle ) const
{
x = GetPositionX() + (GetObjectSize() + distance2d) * cos(absAngle);