From 7db02d1f80e91867ec7b312b1e0f6853305a2b26 Mon Sep 17 00:00:00 2001 From: Daniel Buckmaster Date: Wed, 26 Sep 2012 23:27:36 +1000 Subject: [PATCH] Added a flag that sets the transform of spawned objects. --- Engine/source/T3D/missionMarker.cpp | 11 +++++++++++ Engine/source/T3D/missionMarker.h | 1 + 2 files changed, 12 insertions(+) diff --git a/Engine/source/T3D/missionMarker.cpp b/Engine/source/T3D/missionMarker.cpp index 431947b27..bff79e962 100644 --- a/Engine/source/T3D/missionMarker.cpp +++ b/Engine/source/T3D/missionMarker.cpp @@ -382,6 +382,7 @@ ConsoleDocClass( SpawnSphere, SpawnSphere::SpawnSphere() { mAutoSpawn = false; + mSpawnTransform = false; mRadius = 100.f; mSphereWeight = 100.f; @@ -420,6 +421,12 @@ SimObject* SpawnSphere::spawnObject(String additionalProps) // If we have a spawnObject add it to the MissionCleanup group if (spawnObject) { + if (mSpawnTransform) + { + if(SceneObject *s = dynamic_cast(spawnObject)) + s->setTransform(getTransform()); + } + SimObject* cleanup = Sim::findObject("MissionCleanup"); if (cleanup) @@ -447,6 +454,7 @@ U32 SpawnSphere::packUpdate(NetConnection * con, U32 mask, BitStream * stream) if(stream->writeFlag(mask & UpdateSphereMask)) { stream->writeFlag(mAutoSpawn); + stream->writeFlag(mSpawnTransform); stream->write(mSpawnClass); stream->write(mSpawnDataBlock); @@ -463,6 +471,7 @@ void SpawnSphere::unpackUpdate(NetConnection * con, BitStream * stream) if(stream->readFlag()) { mAutoSpawn = stream->readFlag(); + mSpawnTransform = stream->readFlag(); stream->read(&mSpawnClass); stream->read(&mSpawnDataBlock); @@ -505,6 +514,8 @@ void SpawnSphere::initPersistFields() "Command to execute immediately after spawning an object. New object id is stored in $SpawnObject. Max 255 characters." ); addField( "autoSpawn", TypeBool, Offset(mAutoSpawn, SpawnSphere), "Flag to spawn object as soon as SpawnSphere is created, true to enable or false to disable." ); + addField( "spawnTransform", TypeBool, Offset(mSpawnTransform, SpawnSphere), + "Flag to set the spawned object's transform to the SpawnSphere's transform." ); endGroup( "Spawn" ); addGroup( "Dimensions" ); diff --git a/Engine/source/T3D/missionMarker.h b/Engine/source/T3D/missionMarker.h index 7064113aa..a3a0d0008 100644 --- a/Engine/source/T3D/missionMarker.h +++ b/Engine/source/T3D/missionMarker.h @@ -176,6 +176,7 @@ class SpawnSphere : public MissionMarker String mSpawnProperties; String mSpawnScript; bool mAutoSpawn; + bool mSpawnTransform; // Radius/weight info F32 mRadius;