aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs')
-rwxr-xr-xOpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs30
1 files changed, 17 insertions, 13 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs b/OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs
index 90cf15a..10e13b9 100755
--- a/OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/ExtendedPhysics/ExtendedPhysics.cs
@@ -220,7 +220,8 @@ public class ExtendedPhysics : INonSharedRegionModule
220 containingGroup.UpdateGroupPosition(containingGroup.AbsolutePosition); 220 containingGroup.UpdateGroupPosition(containingGroup.AbsolutePosition);
221 containingGroup.UpdateGroupRotationR(containingGroup.GroupRotation); 221 containingGroup.UpdateGroupRotationR(containingGroup.GroupRotation);
222 222
223 ret = MakeIntError(rootPhysActor.Extension(PhysFunctSetLinksetType, linksetType)); 223 object[] parms2 = { rootPhysActor, null, linksetType };
224 ret = MakeIntError(rootPhysActor.Extension(PhysFunctSetLinksetType, parms2));
224 Thread.Sleep(150); // longer than one heartbeat tick 225 Thread.Sleep(150); // longer than one heartbeat tick
225 226
226 containingGroup.ScriptSetPhysicsStatus(true); 227 containingGroup.ScriptSetPhysicsStatus(true);
@@ -229,7 +230,8 @@ public class ExtendedPhysics : INonSharedRegionModule
229 { 230 {
230 // Non-physical linksets don't have a physical instantiation so there is no state to 231 // Non-physical linksets don't have a physical instantiation so there is no state to
231 // worry about being updated. 232 // worry about being updated.
232 ret = MakeIntError(rootPhysActor.Extension(PhysFunctSetLinksetType, linksetType)); 233 object[] parms2 = { rootPhysActor, null, linksetType };
234 ret = MakeIntError(rootPhysActor.Extension(PhysFunctSetLinksetType, parms2));
233 } 235 }
234 } 236 }
235 else 237 else
@@ -271,7 +273,8 @@ public class ExtendedPhysics : INonSharedRegionModule
271 PhysicsActor rootPhysActor = rootPart.PhysActor; 273 PhysicsActor rootPhysActor = rootPart.PhysActor;
272 if (rootPhysActor != null) 274 if (rootPhysActor != null)
273 { 275 {
274 ret = MakeIntError(rootPhysActor.Extension(PhysFunctGetLinksetType)); 276 object[] parms2 = { rootPhysActor, null };
277 ret = MakeIntError(rootPhysActor.Extension(PhysFunctGetLinksetType, parms2));
275 } 278 }
276 else 279 else
277 { 280 {
@@ -315,8 +318,8 @@ public class ExtendedPhysics : INonSharedRegionModule
315 318
316 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor)) 319 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor))
317 { 320 {
318 object[] parms = { childPhysActor, typeCode }; 321 object[] parms2 = { rootPhysActor, childPhysActor, typeCode };
319 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkType, parms)); 322 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkType, parms2));
320 } 323 }
321 324
322 return ret; 325 return ret;
@@ -334,8 +337,8 @@ public class ExtendedPhysics : INonSharedRegionModule
334 337
335 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor)) 338 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor))
336 { 339 {
337 object[] parms = { childPhysActor }; 340 object[] parms2 = { rootPhysActor, childPhysActor };
338 ret = MakeIntError(rootPhysActor.Extension(PhysFunctGetLinkType, parms)); 341 ret = MakeIntError(rootPhysActor.Extension(PhysFunctGetLinkType, parms2));
339 } 342 }
340 343
341 return ret; 344 return ret;
@@ -354,8 +357,8 @@ public class ExtendedPhysics : INonSharedRegionModule
354 357
355 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor)) 358 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor))
356 { 359 {
357 object[] parms = { childPhysActor , PHYS_LINK_TYPE_FIXED }; 360 object[] parms2 = { rootPhysActor, childPhysActor , PHYS_LINK_TYPE_FIXED };
358 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkType, parms)); 361 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkType, parms2));
359 } 362 }
360 363
361 return ret; 364 return ret;
@@ -412,7 +415,7 @@ public class ExtendedPhysics : INonSharedRegionModule
412 415
413 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor)) 416 if (GetRootAndChildPhysActors(hostID, linkNum, out rootPhysActor, out childPhysActor))
414 { 417 {
415 object[] parms2 = AddToBeginningOfArray(childPhysActor, parms); 418 object[] parms2 = AddToBeginningOfArray(rootPhysActor, childPhysActor, parms);
416 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkParams, parms2)); 419 ret = MakeIntError(rootPhysActor.Extension(PhysFunctChangeLinkParams, parms2));
417 } 420 }
418 421
@@ -518,11 +521,12 @@ public class ExtendedPhysics : INonSharedRegionModule
518 } 521 }
519 522
520 // Return an array of objects with the passed object as the first object of a new array 523 // Return an array of objects with the passed object as the first object of a new array
521 private object[] AddToBeginningOfArray(object firstOne, object[] prevArray) 524 private object[] AddToBeginningOfArray(object firstOne, object secondOne, object[] prevArray)
522 { 525 {
523 object[] newArray = new object[1 + prevArray.Length]; 526 object[] newArray = new object[2 + prevArray.Length];
524 newArray[0] = firstOne; 527 newArray[0] = firstOne;
525 prevArray.CopyTo(newArray, 1); 528 newArray[1] = secondOne;
529 prevArray.CopyTo(newArray, 2);
526 return newArray; 530 return newArray;
527 } 531 }
528 532