aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/UndoState.cs18
2 files changed, 9 insertions, 14 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index c7fc827..051c4fa 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -11760,7 +11760,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11760 11760
11761 case 0x1D: // (UNIFORM + GROUP + SCALE + POS) 11761 case 0x1D: // (UNIFORM + GROUP + SCALE + POS)
11762 apos = new Vector3(block.Data, 0); 11762 apos = new Vector3(block.Data, 0);
11763 Vector3 scale5 = new Vector3(block.Data, 12); 11763 ascale = new Vector3(block.Data, 12);
11764 11764
11765 11765
11766 handlerUpdatePrimGroupScale = OnUpdatePrimGroupScale; 11766 handlerUpdatePrimGroupScale = OnUpdatePrimGroupScale;
@@ -11770,7 +11770,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11770 part.StoreUndoState(true); 11770 part.StoreUndoState(true);
11771 part.IgnoreUndoUpdate = true; 11771 part.IgnoreUndoUpdate = true;
11772 11772
11773 handlerUpdatePrimGroupScale(localId, scale5, this); 11773 handlerUpdatePrimGroupScale(localId, ascale, this);
11774
11774 handlerUpdateVector = OnUpdatePrimGroupPosition; 11775 handlerUpdateVector = OnUpdatePrimGroupPosition;
11775 11776
11776 if (handlerUpdateVector != null) 11777 if (handlerUpdateVector != null)
diff --git a/OpenSim/Region/Framework/Scenes/UndoState.cs b/OpenSim/Region/Framework/Scenes/UndoState.cs
index 029c828..38474de 100644
--- a/OpenSim/Region/Framework/Scenes/UndoState.cs
+++ b/OpenSim/Region/Framework/Scenes/UndoState.cs
@@ -74,14 +74,11 @@ namespace OpenSim.Region.Framework.Scenes
74 ForGroup = forGroup; 74 ForGroup = forGroup;
75 Position = part.ParentGroup.AbsolutePosition; 75 Position = part.ParentGroup.AbsolutePosition;
76 Rotation = part.RotationOffset; 76 Rotation = part.RotationOffset;
77 if (!forGroup) 77 Scale = part.Shape.Scale;
78 Scale = part.Shape.Scale;
79 else
80 Scale = Vector3.Zero; // until we fix it
81 } 78 }
82 else 79 else
83 { 80 {
84 ForGroup = false; // previus code implies only root parts can undo grp 81 ForGroup = false; // only root parts can undo grp
85 Position = part.OffsetPosition; 82 Position = part.OffsetPosition;
86 Rotation = part.RotationOffset; 83 Rotation = part.RotationOffset;
87 Scale = part.Shape.Scale; 84 Scale = part.Shape.Scale;
@@ -108,9 +105,7 @@ namespace OpenSim.Region.Framework.Scenes
108 return false; 105 return false;
109 if (Rotation != part.RotationOffset) 106 if (Rotation != part.RotationOffset)
110 return false; 107 return false;
111 if (ForGroup) 108 return Scale == part.Shape.Scale;
112 return true; // for now don't do grp scale
113 return (Scale == part.Shape.Scale);
114 } 109 }
115 else 110 else
116 { 111 {
@@ -144,10 +139,9 @@ namespace OpenSim.Region.Framework.Scenes
144 139
145 if (Scale != Vector3.Zero) 140 if (Scale != Vector3.Zero)
146 { 141 {
147 // if (ForGroup) 142 if (ForGroup)
148 // part.ParentGroup.GroupResize(Scale); 143 part.ParentGroup.GroupResize(Scale);
149 // else 144 else
150 if (!ForGroup) // we don't have grp scale for now
151 part.Resize(Scale); 145 part.Resize(Scale);
152 } 146 }
153 part.ParentGroup.ScheduleGroupForTerseUpdate(); 147 part.ParentGroup.ScheduleGroupForTerseUpdate();