Fix a bug where physical objects rezzed with an initial velocity by script do not receive this velocity.

This is a minimal fix for the 0.7.1 release, pending a non copy/paste solution.
This hopefully addresses http://opensimulator.org/mantis/view.php?id=5457
The bug was introduced in commit 3ba5eeb
bulletsim
Justin Clark-Casey (justincc) 2011-04-28 00:59:21 +01:00
parent 5e3893ca5c
commit 50aa93137d
1 changed files with 6 additions and 0 deletions

View File

@ -2039,6 +2039,12 @@ namespace OpenSim.Region.Framework.Scenes
if (rot != null) if (rot != null)
group.UpdateGroupRotationR((Quaternion)rot); group.UpdateGroupRotationR((Quaternion)rot);
// TODO: This needs to be refactored with the similar code in
// SceneGraph.AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel)
// possibly by allowing this method to take a null rotation.
if (group.RootPart.PhysActor != null && group.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero)
group.RootPart.ApplyImpulse((vel * group.GetMass()), false);
// We can only call this after adding the scene object, since the scene object references the scene // We can only call this after adding the scene object, since the scene object references the scene
// to find out if scripts should be activated at all. // to find out if scripts should be activated at all.
group.CreateScriptInstances(param, true, DefaultScriptEngine, 3); group.CreateScriptInstances(param, true, DefaultScriptEngine, 3);