diff options
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 34 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/GodController.cs | 5 |
2 files changed, 23 insertions, 16 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index b9d64b1..d6d8dde 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -90,7 +90,7 @@ namespace OpenSim.Framework | |||
90 | public Vector3 LeftAxis; | 90 | public Vector3 LeftAxis; |
91 | public Vector3 UpAxis; | 91 | public Vector3 UpAxis; |
92 | //public int GodLevel; | 92 | //public int GodLevel; |
93 | public OSD GodData = new OSDMap(); | 93 | public OSD GodData = null; |
94 | public bool ChangedGrid; | 94 | public bool ChangedGrid; |
95 | 95 | ||
96 | // This probably shouldn't be here | 96 | // This probably shouldn't be here |
@@ -119,12 +119,15 @@ namespace OpenSim.Framework | |||
119 | args["far"] = OSD.FromReal(Far); | 119 | args["far"] = OSD.FromReal(Far); |
120 | args["changed_grid"] = OSD.FromBoolean(ChangedGrid); | 120 | args["changed_grid"] = OSD.FromBoolean(ChangedGrid); |
121 | //args["god_level"] = OSD.FromString(GodLevel.ToString()); | 121 | //args["god_level"] = OSD.FromString(GodLevel.ToString()); |
122 | args["god_data"] = GodData; | 122 | if(GodData != null) |
123 | OSDMap g = (OSDMap)GodData; | 123 | { |
124 | // Set legacy value | 124 | args["god_data"] = GodData; |
125 | // TODO: remove after 0.9 is superseded | 125 | OSDMap g = (OSDMap)GodData; |
126 | if (g.ContainsKey("ViewerUiIsGod")) | 126 | // Set legacy value |
127 | args["god_level"] = g["ViewerUiIsGod"].AsBoolean() ? 200 : 0;; | 127 | // TODO: remove after 0.9 is superseded |
128 | if (g.ContainsKey("ViewerUiIsGod")) | ||
129 | args["god_level"] = g["ViewerUiIsGod"].AsBoolean() ? 200 : 0; | ||
130 | } | ||
128 | 131 | ||
129 | if ((Throttles != null) && (Throttles.Length > 0)) | 132 | if ((Throttles != null) && (Throttles.Length > 0)) |
130 | args["throttles"] = OSD.FromBinary(Throttles); | 133 | args["throttles"] = OSD.FromBinary(Throttles); |
@@ -185,7 +188,7 @@ namespace OpenSim.Framework | |||
185 | 188 | ||
186 | //if (args["god_level"] != null) | 189 | //if (args["god_level"] != null) |
187 | // Int32.TryParse(args["god_level"].AsString(), out GodLevel); | 190 | // Int32.TryParse(args["god_level"].AsString(), out GodLevel); |
188 | if (args["god_data"] != null) | 191 | if (args.ContainsKey("god_data") && args["god_data"] != null) |
189 | GodData = args["god_data"]; | 192 | GodData = args["god_data"]; |
190 | 193 | ||
191 | if (args["far"] != null) | 194 | if (args["far"] != null) |
@@ -362,7 +365,7 @@ namespace OpenSim.Framework | |||
362 | public Quaternion BodyRotation; | 365 | public Quaternion BodyRotation; |
363 | public uint ControlFlags; | 366 | public uint ControlFlags; |
364 | public float EnergyLevel; | 367 | public float EnergyLevel; |
365 | public OSD GodData = new OSDMap(); | 368 | public OSD GodData = null; |
366 | //public Byte GodLevel; | 369 | //public Byte GodLevel; |
367 | public bool AlwaysRun; | 370 | public bool AlwaysRun; |
368 | public UUID PreyAgent; | 371 | public UUID PreyAgent; |
@@ -438,10 +441,13 @@ namespace OpenSim.Framework | |||
438 | 441 | ||
439 | args["energy_level"] = OSD.FromReal(EnergyLevel); | 442 | args["energy_level"] = OSD.FromReal(EnergyLevel); |
440 | //args["god_level"] = OSD.FromString(GodLevel.ToString()); | 443 | //args["god_level"] = OSD.FromString(GodLevel.ToString()); |
441 | args["god_data"] = GodData; | 444 | if(GodData != null) |
442 | OSDMap g = (OSDMap)GodData; | 445 | { |
443 | if (g.ContainsKey("ViewerUiIsGod")) | 446 | args["god_data"] = GodData; |
444 | args["god_level"] = g["ViewerUiIsGod"].AsBoolean() ? 200 : 0;; | 447 | OSDMap g = (OSDMap)GodData; |
448 | if (g.ContainsKey("ViewerUiIsGod")) | ||
449 | args["god_level"] = g["ViewerUiIsGod"].AsBoolean() ? 200 : 0;; | ||
450 | } | ||
445 | args["always_run"] = OSD.FromBoolean(AlwaysRun); | 451 | args["always_run"] = OSD.FromBoolean(AlwaysRun); |
446 | args["prey_agent"] = OSD.FromUUID(PreyAgent); | 452 | args["prey_agent"] = OSD.FromUUID(PreyAgent); |
447 | args["agent_access"] = OSD.FromString(AgentAccess.ToString()); | 453 | args["agent_access"] = OSD.FromString(AgentAccess.ToString()); |
@@ -622,7 +628,7 @@ namespace OpenSim.Framework | |||
622 | //if (args["god_level"] != null) | 628 | //if (args["god_level"] != null) |
623 | // Byte.TryParse(args["god_level"].AsString(), out GodLevel); | 629 | // Byte.TryParse(args["god_level"].AsString(), out GodLevel); |
624 | 630 | ||
625 | if (args["god_data"] != null) | 631 | if (args.ContainsKey("god_data") && args["god_data"] != null) |
626 | GodData = args["god_data"]; | 632 | GodData = args["god_data"]; |
627 | 633 | ||
628 | if (args["always_run"] != null) | 634 | if (args["always_run"] != null) |
diff --git a/OpenSim/Region/Framework/Scenes/GodController.cs b/OpenSim/Region/Framework/Scenes/GodController.cs index 7672062..f51e8c9 100644 --- a/OpenSim/Region/Framework/Scenes/GodController.cs +++ b/OpenSim/Region/Framework/Scenes/GodController.cs | |||
@@ -198,12 +198,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
198 | 198 | ||
199 | public void SetState(OSD state) | 199 | public void SetState(OSD state) |
200 | { | 200 | { |
201 | if(state == null) | ||
202 | return; | ||
203 | |||
201 | OSDMap s = (OSDMap)state; | 204 | OSDMap s = (OSDMap)state; |
202 | 205 | ||
203 | if (s.ContainsKey("ViewerUiIsGod")) | 206 | if (s.ContainsKey("ViewerUiIsGod")) |
204 | m_viewerUiIsGod = s["ViewerUiIsGod"].AsBoolean(); | 207 | m_viewerUiIsGod = s["ViewerUiIsGod"].AsBoolean(); |
205 | |||
206 | SyncViewerState(); | ||
207 | } | 208 | } |
208 | 209 | ||
209 | public int UserLevel | 210 | public int UserLevel |