Fix mantis #10 & #14

avinationmerge
Kitto Flora 2009-12-19 19:54:44 -05:00
parent 7cd44c1a81
commit e38e8ae987
2 changed files with 11 additions and 24 deletions

View File

@ -29,7 +29,7 @@ namespace OpenSim
{ {
public class VersionInfo public class VersionInfo
{ {
private const string VERSION_NUMBER = "0.6.9CM"; private const string VERSION_NUMBER = "0.6.91CM";
private const Flavour VERSION_FLAVOUR = Flavour.Dev; private const Flavour VERSION_FLAVOUR = Flavour.Dev;
public enum Flavour public enum Flavour
{ {

View File

@ -513,24 +513,11 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// If this is a linkset, we don't want the physics engine mucking up our group position here. // If this is a linkset, we don't want the physics engine mucking up our group position here.
PhysicsActor actor = PhysActor; PhysicsActor actor = PhysActor;
if (actor != null && _parentID == 0) if (actor != null && _parentID == 0)
{ {
m_groupPosition = actor.Position; m_groupPosition = actor.Position;
}
/*
if (actor != null)
{
if (_parentID == 0)
{
m_groupPosition = actor.Position;
}
else
{
m_groupPosition = ParentGroup.AbsolutePosition; // KF+Casper Update Child prims too!
}
} }
*/
if (IsAttachment) if (IsAttachment)
{ {
ScenePresence sp = m_parentGroup.Scene.GetScenePresence(AttachedAvatar); ScenePresence sp = m_parentGroup.Scene.GetScenePresence(AttachedAvatar);
@ -545,7 +532,6 @@ namespace OpenSim.Region.Framework.Scenes
StoreUndoState(); StoreUndoState();
m_groupPosition = value; m_groupPosition = value;
PhysicsActor actor = PhysActor; PhysicsActor actor = PhysActor;
if (actor != null) if (actor != null)
{ {
@ -1755,16 +1741,17 @@ namespace OpenSim.Region.Framework.Scenes
public Vector3 GetWorldPosition() public Vector3 GetWorldPosition()
{ {
Quaternion parentRot = ParentGroup.RootPart.RotationOffset; Quaternion parentRot = ParentGroup.RootPart.RotationOffset;
Vector3 axPos = OffsetPosition; Vector3 axPos = OffsetPosition;
axPos *= parentRot; axPos *= parentRot;
Vector3 translationOffsetPosition = axPos; Vector3 translationOffsetPosition = axPos;
if(_parentID == 0)
int tx = (int)GroupPosition.X; {
int ty = (int)GroupPosition.Y; return GroupPosition;
int tz = (int)GroupPosition.Z; }
else
return GroupPosition + translationOffsetPosition; {
return ParentGroup.AbsolutePosition + translationOffsetPosition; //KF: Fix child prim position
}
} }
/// <summary> /// <summary>
@ -1775,7 +1762,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
Quaternion newRot; Quaternion newRot;
if (this.LinkNum == 0) if (this.LinkNum < 2) //KF Single or root prim
{ {
newRot = RotationOffset; newRot = RotationOffset;
} }