diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/UndoState.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/UndoState.cs | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/OpenSim/Region/Framework/Scenes/UndoState.cs b/OpenSim/Region/Framework/Scenes/UndoState.cs index fd90714..7bbf1bd 100644 --- a/OpenSim/Region/Framework/Scenes/UndoState.cs +++ b/OpenSim/Region/Framework/Scenes/UndoState.cs | |||
@@ -30,6 +30,7 @@ using System.Reflection; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using log4net; | 31 | using log4net; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | ||
33 | using OpenSim.Region.Framework.Interfaces; | 34 | using OpenSim.Region.Framework.Interfaces; |
34 | 35 | ||
35 | namespace OpenSim.Region.Framework.Scenes | 36 | namespace OpenSim.Region.Framework.Scenes |
@@ -44,30 +45,30 @@ namespace OpenSim.Region.Framework.Scenes | |||
44 | /// Constructor. | 45 | /// Constructor. |
45 | /// </summary> | 46 | /// </summary> |
46 | /// <param name="part"></param> | 47 | /// <param name="part"></param> |
47 | /// <param name="what">bit field with what is changed</param> | 48 | /// <param name="change">bit field with what is changed</param> |
48 | /// | 49 | /// |
49 | public UndoState(SceneObjectPart part, ObjectChangeWhat what) | 50 | public UndoState(SceneObjectPart part, ObjectChangeType change) |
50 | { | 51 | { |
51 | data = new ObjectChangeData(); | 52 | data = new ObjectChangeData(); |
52 | data.what = what; | 53 | data.change = change; |
53 | creationtime = DateTime.UtcNow; | 54 | creationtime = DateTime.UtcNow; |
54 | 55 | ||
55 | if (part.ParentGroup.RootPart == part) | 56 | if (part.ParentGroup.RootPart == part) |
56 | { | 57 | { |
57 | if ((what & ObjectChangeWhat.Position) != 0) | 58 | if ((change & ObjectChangeType.Position) != 0) |
58 | data.position = part.ParentGroup.AbsolutePosition; | 59 | data.position = part.ParentGroup.AbsolutePosition; |
59 | if ((what & ObjectChangeWhat.Rotation) != 0) | 60 | if ((change & ObjectChangeType.Rotation) != 0) |
60 | data.rotation = part.RotationOffset; | 61 | data.rotation = part.RotationOffset; |
61 | if ((what & ObjectChangeWhat.Scale) != 0) | 62 | if ((change & ObjectChangeType.Scale) != 0) |
62 | data.scale = part.Shape.Scale; | 63 | data.scale = part.Shape.Scale; |
63 | } | 64 | } |
64 | else | 65 | else |
65 | { | 66 | { |
66 | if ((what & ObjectChangeWhat.Position) != 0) | 67 | if ((change & ObjectChangeType.Position) != 0) |
67 | data.position = part.OffsetPosition; | 68 | data.position = part.OffsetPosition; |
68 | if ((what & ObjectChangeWhat.Rotation) != 0) | 69 | if ((change & ObjectChangeType.Rotation) != 0) |
69 | data.rotation = part.RotationOffset; | 70 | data.rotation = part.RotationOffset; |
70 | if ((what & ObjectChangeWhat.Scale) != 0) | 71 | if ((change & ObjectChangeType.Scale) != 0) |
71 | data.scale = part.Shape.Scale; | 72 | data.scale = part.Shape.Scale; |
72 | } | 73 | } |
73 | } | 74 | } |
@@ -97,27 +98,27 @@ namespace OpenSim.Region.Framework.Scenes | |||
97 | /// <param name="part"></param> | 98 | /// <param name="part"></param> |
98 | /// <returns>true what fiels and related data are equal, False otherwise.</returns> | 99 | /// <returns>true what fiels and related data are equal, False otherwise.</returns> |
99 | /// | 100 | /// |
100 | public bool Compare(SceneObjectPart part, ObjectChangeWhat what) | 101 | public bool Compare(SceneObjectPart part, ObjectChangeType change) |
101 | { | 102 | { |
102 | if (data.what != what) // if diferent targets, then they are diferent | 103 | if (data.change != change) // if diferent targets, then they are diferent |
103 | return false; | 104 | return false; |
104 | 105 | ||
105 | if (part != null) | 106 | if (part != null) |
106 | { | 107 | { |
107 | if (part.ParentID == 0) | 108 | if (part.ParentID == 0) |
108 | { | 109 | { |
109 | if ((what & ObjectChangeWhat.Position) != 0 && data.position != part.ParentGroup.AbsolutePosition) | 110 | if ((change & ObjectChangeType.Position) != 0 && data.position != part.ParentGroup.AbsolutePosition) |
110 | return false; | 111 | return false; |
111 | } | 112 | } |
112 | else | 113 | else |
113 | { | 114 | { |
114 | if ((what & ObjectChangeWhat.Position) != 0 && data.position != part.OffsetPosition) | 115 | if ((change & ObjectChangeType.Position) != 0 && data.position != part.OffsetPosition) |
115 | return false; | 116 | return false; |
116 | } | 117 | } |
117 | 118 | ||
118 | if ((what & ObjectChangeWhat.Rotation) != 0 && data.rotation != part.RotationOffset) | 119 | if ((change & ObjectChangeType.Rotation) != 0 && data.rotation != part.RotationOffset) |
119 | return false; | 120 | return false; |
120 | if ((what & ObjectChangeWhat.Rotation) != 0 && data.scale == part.Shape.Scale) | 121 | if ((change & ObjectChangeType.Rotation) != 0 && data.scale == part.Shape.Scale) |
121 | return false; | 122 | return false; |
122 | return true; | 123 | return true; |
123 | 124 | ||
@@ -196,9 +197,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
196 | /// adds a new state undo to part or its group, with changes indicated by what bits | 197 | /// adds a new state undo to part or its group, with changes indicated by what bits |
197 | /// </summary> | 198 | /// </summary> |
198 | /// <param name="part"></param> | 199 | /// <param name="part"></param> |
199 | /// <param name="what">bit field with what is changed</param> | 200 | /// <param name="change">bit field with what is changed</param> |
200 | 201 | ||
201 | public void StoreUndo(SceneObjectPart part, ObjectChangeWhat what) | 202 | public void StoreUndo(SceneObjectPart part, ObjectChangeType change) |
202 | { | 203 | { |
203 | lock (m_undo) | 204 | lock (m_undo) |
204 | { | 205 | { |
@@ -220,7 +221,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
220 | // see if we actually have a change | 221 | // see if we actually have a change |
221 | if (last != null) | 222 | if (last != null) |
222 | { | 223 | { |
223 | if (last.Compare(part, what)) | 224 | if (last.Compare(part, change)) |
224 | return; | 225 | return; |
225 | } | 226 | } |
226 | } | 227 | } |
@@ -230,7 +231,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
230 | while (m_undo.Count >= size) | 231 | while (m_undo.Count >= size) |
231 | m_undo.RemoveLast(); | 232 | m_undo.RemoveLast(); |
232 | 233 | ||
233 | UndoState nUndo = new UndoState(part, what); | 234 | UndoState nUndo = new UndoState(part, change); |
234 | m_undo.AddFirst(nUndo); | 235 | m_undo.AddFirst(nUndo); |
235 | } | 236 | } |
236 | } | 237 | } |
@@ -273,7 +274,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
273 | while (m_redo.Count >= size) | 274 | while (m_redo.Count >= size) |
274 | m_redo.RemoveLast(); | 275 | m_redo.RemoveLast(); |
275 | 276 | ||
276 | nUndo = new UndoState(part, goback.data.what); // new value in part should it be full goback copy? | 277 | nUndo = new UndoState(part, goback.data.change); // new value in part should it be full goback copy? |
277 | m_redo.AddFirst(nUndo); | 278 | m_redo.AddFirst(nUndo); |
278 | 279 | ||
279 | goback.PlayState(part); | 280 | goback.PlayState(part); |
@@ -320,7 +321,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
320 | while (m_undo.Count >= size) | 321 | while (m_undo.Count >= size) |
321 | m_undo.RemoveLast(); | 322 | m_undo.RemoveLast(); |
322 | 323 | ||
323 | nUndo = new UndoState(part, gofwd.data.what); // new value in part should it be full gofwd copy? | 324 | nUndo = new UndoState(part, gofwd.data.change); // new value in part should it be full gofwd copy? |
324 | m_undo.AddFirst(nUndo); | 325 | m_undo.AddFirst(nUndo); |
325 | 326 | ||
326 | gofwd.PlayState(part); | 327 | gofwd.PlayState(part); |