diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/UndoState.cs | 18 |
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(); |