aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/ISceneAgent.cs4
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs12
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs8
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs2
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/GodController.cs57
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs12
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs94
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs2
20 files changed, 115 insertions, 114 deletions
diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs
index 5534e24..5d70b83 100644
--- a/OpenSim/Framework/ISceneAgent.cs
+++ b/OpenSim/Framework/ISceneAgent.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Framework
56 bool IsChildAgent { get; } 56 bool IsChildAgent { get; }
57 57
58 bool IsInTransit { get; } 58 bool IsInTransit { get; }
59 bool isNPC { get;} 59 bool IsNPC { get;}
60 60
61 bool Invulnerable { get; set; } 61 bool Invulnerable { get; set; }
62 /// <summary> 62 /// <summary>
@@ -83,4 +83,4 @@ namespace OpenSim.Framework
83 /// <remarks>Will be Vector3.Zero for a child agent.</remarks> 83 /// <remarks>Will be Vector3.Zero for a child agent.</remarks>
84 Vector3 Lookat { get; } 84 Vector3 Lookat { get; }
85 } 85 }
86} \ No newline at end of file 86}
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 316956b..df34668 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -11455,7 +11455,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11455 ScenePresence p; 11455 ScenePresence p;
11456 if (scene.TryGetScenePresence(sender.AgentId, out p)) 11456 if (scene.TryGetScenePresence(sender.AgentId, out p))
11457 { 11457 {
11458 if (p.GodController.GodLevel >= 200) 11458 if (p.IsViewerUIGod)
11459 { 11459 {
11460 groupProfileReply.GroupData.OpenEnrollment = true; 11460 groupProfileReply.GroupData.OpenEnrollment = true;
11461 groupProfileReply.GroupData.MembershipFee = 0; 11461 groupProfileReply.GroupData.MembershipFee = 0;
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 0826a08..fb408a4 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -364,7 +364,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
364 return false; 364 return false;
365 365
366 // npcs dont have baked cache 366 // npcs dont have baked cache
367 if (((ScenePresence)sp).isNPC) 367 if (((ScenePresence)sp).IsNPC)
368 return true; 368 return true;
369 369
370 // uploaded baked textures will be in assets local cache 370 // uploaded baked textures will be in assets local cache
@@ -507,7 +507,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
507 { 507 {
508 int hits = 0; 508 int hits = 0;
509 509
510 if (((ScenePresence)sp).isNPC) 510 if (((ScenePresence)sp).IsNPC)
511 return true; 511 return true;
512 512
513 lock (m_setAppearanceLock) 513 lock (m_setAppearanceLock)
@@ -701,7 +701,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
701 701
702 public int RequestRebake(IScenePresence sp, bool missingTexturesOnly) 702 public int RequestRebake(IScenePresence sp, bool missingTexturesOnly)
703 { 703 {
704 if (((ScenePresence)sp).isNPC) 704 if (((ScenePresence)sp).IsNPC)
705 return 0; 705 return 0;
706 706
707 int texturesRebaked = 0; 707 int texturesRebaked = 0;
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
index adf5c68..ea90185 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
@@ -229,7 +229,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
229 fromPos = avatar.AbsolutePosition; 229 fromPos = avatar.AbsolutePosition;
230 fromName = avatar.Name; 230 fromName = avatar.Name;
231 fromID = c.Sender.AgentId; 231 fromID = c.Sender.AgentId;
232 if (avatar.GodController.GodLevel >= 200) 232 if (avatar.IsViewerUIGod)
233 { // let gods speak to outside or things may get confusing 233 { // let gods speak to outside or things may get confusing
234 fromNamePrefix = m_adminPrefix; 234 fromNamePrefix = m_adminPrefix;
235 checkParcelHide = false; 235 checkParcelHide = false;
@@ -305,7 +305,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
305 { 305 {
306 if (checkParcelHide) 306 if (checkParcelHide)
307 { 307 {
308 if (sourceParcelID != Presencecheck.LandData.GlobalID && presence.GodController.GodLevel < 200) 308 if (sourceParcelID != Presencecheck.LandData.GlobalID && !presence.IsViewerUIGod)
309 return; 309 return;
310 } 310 }
311 if (c.Sender == null || Presencecheck.IsEitherBannedOrRestricted(c.Sender.AgentId) != true) 311 if (c.Sender == null || Presencecheck.IsEitherBannedOrRestricted(c.Sender.AgentId) != true)
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
index 9843f2e..4a55a7e 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/CallingCardModule.cs
@@ -118,7 +118,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
118 // If we're in god mode, we reverse the meaning. Offer 118 // If we're in god mode, we reverse the meaning. Offer
119 // calling card becomes "Take a calling card" for that 119 // calling card becomes "Take a calling card" for that
120 // person, no matter if they agree or not. 120 // person, no matter if they agree or not.
121 if (sp.GodController.GodLevel >= 200) 121 if (sp.IsViewerUIGod)
122 { 122 {
123 CreateCallingCard(client.AgentId, destID, UUID.Zero, true); 123 CreateCallingCard(client.AgentId, destID, UUID.Zero, true);
124 return; 124 return;
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
index 8116b3c..f699c0c 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
@@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
165 UUID agentID, UUID sessionID, UUID token, bool godLike) 165 UUID agentID, UUID sessionID, UUID token, bool godLike)
166 { 166 {
167 ScenePresence sp = m_scene.GetScenePresence(agentID); 167 ScenePresence sp = m_scene.GetScenePresence(agentID);
168 if(sp == null || sp.IsDeleted || sp.isNPC) 168 if(sp == null || sp.IsDeleted || sp.IsNPC)
169 return; 169 return;
170 170
171 if (sessionID != sp.ControllingClient.SessionId) 171 if (sessionID != sp.ControllingClient.SessionId)
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
173 173
174 sp.GrantGodlikePowers(token, godLike); 174 sp.GrantGodlikePowers(token, godLike);
175 175
176 if (godLike && sp.GodController.GodLevel < 200 && DialogModule != null) 176 if (godLike && !sp.IsViewerUIGod && DialogModule != null)
177 DialogModule.SendAlertToUser(agentID, "Request for god powers denied"); 177 DialogModule.SendAlertToUser(agentID, "Request for god powers denied");
178 } 178 }
179 179
@@ -194,14 +194,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
194 int godlevel = 200; 194 int godlevel = 200;
195 // update level so higher gods can kick lower ones 195 // update level so higher gods can kick lower ones
196 ScenePresence god = m_scene.GetScenePresence(godID); 196 ScenePresence god = m_scene.GetScenePresence(godID);
197 if(god != null && god.GodController.EffectiveLevel > godlevel) 197 if(god != null && god.GodController.GodLevel > godlevel)
198 godlevel = god.GodController.EffectiveLevel; 198 godlevel = god.GodController.GodLevel;
199 199
200 if(agentID == ALL_AGENTS) 200 if(agentID == ALL_AGENTS)
201 { 201 {
202 m_scene.ForEachRootScenePresence(delegate(ScenePresence p) 202 m_scene.ForEachRootScenePresence(delegate(ScenePresence p)
203 { 203 {
204 if (p.UUID != godID && godlevel > p.GodController.EffectiveLevel) 204 if (p.UUID != godID && godlevel > p.GodController.GodLevel)
205 doKickmodes(godID, p, kickflags, reason); 205 doKickmodes(godID, p, kickflags, reason);
206 }); 206 });
207 return; 207 return;
@@ -224,7 +224,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
224 return; 224 return;
225 } 225 }
226 226
227 if (godlevel <= sp.GodController.EffectiveLevel) // no god wars 227 if (godlevel <= sp.GodController.GodLevel) // no god wars
228 return; 228 return;
229 229
230 if(sp.UUID == godID) 230 if(sp.UUID == godID)
diff --git a/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs b/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs
index bd95ff0..6f79676 100644
--- a/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs
@@ -169,7 +169,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Lure
169 169
170 GridInstantMessage m; 170 GridInstantMessage m;
171 171
172 if (scene.Permissions.IsAdministrator(client.AgentId) && presence.GodController.GodLevel >= 200 && (!scene.Permissions.IsAdministrator(targetid))) 172 if (scene.Permissions.IsAdministrator(client.AgentId) && presence.IsViewerUIGod && (!scene.Permissions.IsAdministrator(targetid)))
173 { 173 {
174 m = new GridInstantMessage(scene, client.AgentId, 174 m = new GridInstantMessage(scene, client.AgentId,
175 client.FirstName+" "+client.LastName, targetid, 175 client.FirstName+" "+client.LastName, targetid,
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
index 138c0f7..bc8aeca 100644
--- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
@@ -356,7 +356,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
356 return; 356 return;
357 357
358 ScenePresence p = FindPresence(targetID); 358 ScenePresence p = FindPresence(targetID);
359 if (p != null && p.isNPC) 359 if (p != null && p.IsNPC)
360 { 360 {
361 remoteClient.SendAvatarClassifiedReply(targetID, classifieds); 361 remoteClient.SendAvatarClassifiedReply(targetID, classifieds);
362 return; 362 return;
@@ -751,7 +751,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
751 Dictionary<UUID, string> picks = new Dictionary<UUID, string>(); 751 Dictionary<UUID, string> picks = new Dictionary<UUID, string>();
752 752
753 ScenePresence p = FindPresence(targetId); 753 ScenePresence p = FindPresence(targetId);
754 if (p != null && p.isNPC) 754 if (p != null && p.IsNPC)
755 { 755 {
756 remoteClient.SendAvatarPicksReply(targetId, picks); 756 remoteClient.SendAvatarPicksReply(targetId, picks);
757 return; 757 return;
@@ -1165,7 +1165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
1165 public void NotesUpdate(IClientAPI remoteClient, UUID queryTargetID, string queryNotes) 1165 public void NotesUpdate(IClientAPI remoteClient, UUID queryTargetID, string queryNotes)
1166 { 1166 {
1167 ScenePresence p = FindPresence(queryTargetID); 1167 ScenePresence p = FindPresence(queryTargetID);
1168 if (p != null && p.isNPC) 1168 if (p != null && p.IsNPC)
1169 { 1169 {
1170 remoteClient.SendAgentAlertMessage( 1170 remoteClient.SendAgentAlertMessage(
1171 "Notes for NPCs not available", false); 1171 "Notes for NPCs not available", false);
@@ -1329,7 +1329,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
1329 } 1329 }
1330 1330
1331 ScenePresence p = FindPresence(avatarID); 1331 ScenePresence p = FindPresence(avatarID);
1332 if (p != null && p.isNPC) 1332 if (p != null && p.IsNPC)
1333 { 1333 {
1334 remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born, 1334 remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born,
1335 Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 0x10, 1335 Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 0x10,
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
index c780bcd..1529fc2 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs
@@ -65,7 +65,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
65 65
66 public void OnMakeRootAgent(ScenePresence sp) 66 public void OnMakeRootAgent(ScenePresence sp)
67 { 67 {
68 if (sp.isNPC) 68 if (sp.IsNPC)
69 return; 69 return;
70 70
71 if(sp.gotCrossUpdate) 71 if(sp.gotCrossUpdate)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
index aafd047..a7e62eb 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
@@ -68,7 +68,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
68 68
69 public void OnMakeRootAgent(ScenePresence sp) 69 public void OnMakeRootAgent(ScenePresence sp)
70 { 70 {
71 if (sp.isNPC) 71 if (sp.IsNPC)
72 return; 72 return;
73 73
74 if(sp.gotCrossUpdate) 74 if(sp.gotCrossUpdate)
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 0122f47..5d12f8b 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1285,7 +1285,7 @@ namespace OpenSim.Region.CoreModules.World.Land
1285 UUID parcelID = land.LandData.GlobalID; 1285 UUID parcelID = land.LandData.GlobalID;
1286 m_scene.ForEachScenePresence(delegate(ScenePresence avatar) 1286 m_scene.ForEachScenePresence(delegate(ScenePresence avatar)
1287 { 1287 {
1288 if (avatar.IsDeleted || avatar.isNPC) 1288 if (avatar.IsDeleted || avatar.IsNPC)
1289 return; 1289 return;
1290 1290
1291 IClientAPI client = avatar.ControllingClient; 1291 IClientAPI client = avatar.ControllingClient;
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index fc2282d..73b4cb5 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -718,7 +718,7 @@ namespace OpenSim.Region.CoreModules.World.Land
718 if (!m_scene.TryGetScenePresence(avatar, out sp)) 718 if (!m_scene.TryGetScenePresence(avatar, out sp))
719 return true; 719 return true;
720 720
721 if(sp==null || !sp.isNPC) 721 if(sp==null || !sp.IsNPC)
722 return true; 722 return true;
723 723
724 INPC npccli = (INPC)sp.ControllingClient; 724 INPC npccli = (INPC)sp.ControllingClient;
diff --git a/OpenSim/Region/Framework/Scenes/GodController.cs b/OpenSim/Region/Framework/Scenes/GodController.cs
index 8035760..7ed80f6 100644
--- a/OpenSim/Region/Framework/Scenes/GodController.cs
+++ b/OpenSim/Region/Framework/Scenes/GodController.cs
@@ -66,9 +66,9 @@ namespace OpenSim.Region.Framework.Scenes
66 // the god level from local or grid user rights 66 // the god level from local or grid user rights
67 protected int m_rightsGodLevel = 0; 67 protected int m_rightsGodLevel = 0;
68 // the level seen by viewers 68 // the level seen by viewers
69 protected int m_godlevel = 0; 69 protected int m_viewergodlevel = 0;
70 // new level that can be fixed or equal to godlevel, acording to options 70 // new level that can be fixed or equal to godlevel, acording to options
71 protected int m_effectivegodlevel = 0; 71 protected int m_godlevel = 0;
72 protected int m_lastLevelToViewer = 0; 72 protected int m_lastLevelToViewer = 0;
73 73
74 public GodController(Scene scene, ScenePresence sp, int userlevel) 74 public GodController(Scene scene, ScenePresence sp, int userlevel)
@@ -127,19 +127,18 @@ namespace OpenSim.Region.Framework.Scenes
127 127
128 if(m_allowGodActionsWithoutGodMode) 128 if(m_allowGodActionsWithoutGodMode)
129 { 129 {
130 m_effectivegodlevel = m_rightsGodLevel; 130 m_godlevel = m_rightsGodLevel;
131
132 m_forceGodModeAlwaysOn = false; 131 m_forceGodModeAlwaysOn = false;
133 } 132 }
134 133
135 else if(m_forceGodModeAlwaysOn) 134 else if(m_forceGodModeAlwaysOn)
136 { 135 {
136 m_viewergodlevel = m_rightsGodLevel;
137 m_godlevel = m_rightsGodLevel; 137 m_godlevel = m_rightsGodLevel;
138 m_effectivegodlevel = m_rightsGodLevel;
139 } 138 }
140 139
141 m_scenePresence.isGod = (m_effectivegodlevel >= 200); 140 m_scenePresence.IsGod = (m_godlevel >= 200);
142 m_scenePresence.isLegacyGod = (m_godlevel >= 200); 141 m_scenePresence.IsViewerUIGod = (m_viewergodlevel >= 200);
143 } 142 }
144 143
145 // calculates god level at sp creation from local and grid user god rights 144 // calculates god level at sp creation from local and grid user god rights
@@ -175,10 +174,10 @@ namespace OpenSim.Region.Framework.Scenes
175 { 174 {
176 if(!CanBeGod()) 175 if(!CanBeGod())
177 { 176 {
177 m_viewergodlevel = 0;
178 m_godlevel = 0; 178 m_godlevel = 0;
179 m_effectivegodlevel = 0; 179 m_scenePresence.IsGod = false;
180 m_scenePresence.isGod = false; 180 m_scenePresence.IsViewerUIGod = false;
181 m_scenePresence.isLegacyGod = false;
182 return; 181 return;
183 } 182 }
184 183
@@ -186,58 +185,58 @@ namespace OpenSim.Region.Framework.Scenes
186 if(m_allowGodActionsWithoutGodMode) 185 if(m_allowGodActionsWithoutGodMode)
187 { 186 {
188 if(viewerState) 187 if(viewerState)
189 m_godlevel = m_rightsGodLevel; 188 m_viewergodlevel = m_rightsGodLevel;
190 else 189 else
191 m_godlevel = 0; 190 m_viewergodlevel = 0;
192 191
193 m_effectivegodlevel = m_rightsGodLevel; 192 m_godlevel = m_rightsGodLevel;
194 } 193 }
195 else 194 else
196 { 195 {
197 // new all change with viewer 196 // new all change with viewer
198 if(viewerState) 197 if(viewerState)
199 { 198 {
199 m_viewergodlevel = m_rightsGodLevel;
200 m_godlevel = m_rightsGodLevel; 200 m_godlevel = m_rightsGodLevel;
201 m_effectivegodlevel = m_rightsGodLevel;
202 } 201 }
203 else 202 else
204 { 203 {
204 m_viewergodlevel = 0;
205 m_godlevel = 0; 205 m_godlevel = 0;
206 m_effectivegodlevel = 0;
207 } 206 }
208 } 207 }
209 m_scenePresence.isGod = (m_effectivegodlevel >= 200); 208 m_scenePresence.IsGod = (m_godlevel >= 200);
210 m_scenePresence.isLegacyGod = (m_godlevel >= 200); 209 m_scenePresence.IsViewerUIGod = (m_viewergodlevel >= 200);
211 } 210 }
212 211
213 public void SyncViewerState() 212 public void SyncViewerState()
214 { 213 {
215 if(m_lastLevelToViewer == m_godlevel) 214 if(m_lastLevelToViewer == m_viewergodlevel)
216 return; 215 return;
217 216
218 m_lastLevelToViewer = m_godlevel; 217 m_lastLevelToViewer = m_viewergodlevel;
219 218
220 if(m_scenePresence.IsChildAgent) 219 if(m_scenePresence.IsChildAgent)
221 return; 220 return;
222 221
223 m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_godlevel); 222 m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_viewergodlevel);
224 } 223 }
225 224
226 public void RequestGodMode(bool god) 225 public void RequestGodMode(bool god)
227 { 226 {
228 UpdateGodLevels(god); 227 UpdateGodLevels(god);
229 228
230 if(m_lastLevelToViewer != m_godlevel) 229 if(m_lastLevelToViewer != m_viewergodlevel)
231 { 230 {
232 m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_godlevel); 231 m_scenePresence.ControllingClient.SendAdminResponse(UUID.Zero, (uint)m_viewergodlevel);
233 m_lastLevelToViewer = m_godlevel; 232 m_lastLevelToViewer = m_viewergodlevel;
234 } 233 }
235 } 234 }
236 235
237 public OSD State() 236 public OSD State()
238 { 237 {
239 OSDMap godMap = new OSDMap(2); 238 OSDMap godMap = new OSDMap(2);
240 bool m_viewerUiIsGod = m_godlevel >= 200; 239 bool m_viewerUiIsGod = m_viewergodlevel >= 200;
241 godMap.Add("ViewerUiIsGod", OSD.FromBoolean(m_viewerUiIsGod)); 240 godMap.Add("ViewerUiIsGod", OSD.FromBoolean(m_viewerUiIsGod));
242 241
243 return godMap; 242 return godMap;
@@ -256,7 +255,7 @@ namespace OpenSim.Region.Framework.Scenes
256 255
257 if (s.ContainsKey("ViewerUiIsGod")) 256 if (s.ContainsKey("ViewerUiIsGod"))
258 newstate = s["ViewerUiIsGod"].AsBoolean(); 257 newstate = s["ViewerUiIsGod"].AsBoolean();
259 m_lastLevelToViewer = m_godlevel; // we are not changing viewer level by default 258 m_lastLevelToViewer = m_viewergodlevel; // we are not changing viewer level by default
260 } 259 }
261 } 260 }
262 UpdateGodLevels(newstate); 261 UpdateGodLevels(newstate);
@@ -273,14 +272,14 @@ namespace OpenSim.Region.Framework.Scenes
273 set { m_userLevel = value; } 272 set { m_userLevel = value; }
274 } 273 }
275 274
276 public int GodLevel 275 public int ViwerUIGodLevel
277 { 276 {
278 get { return m_godlevel; } 277 get { return m_viewergodlevel; }
279 } 278 }
280 279
281 public int EffectiveLevel 280 public int GodLevel
282 { 281 {
283 get { return m_effectivegodlevel; } 282 get { return m_godlevel; }
284 } 283 }
285 } 284 }
286} 285}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 87c3049..2137b42 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3951,7 +3951,7 @@ namespace OpenSim.Region.Framework.Scenes
3951 bool vialogin = ((teleportFlags & (uint)TPFlags.ViaLogin) != 0 || 3951 bool vialogin = ((teleportFlags & (uint)TPFlags.ViaLogin) != 0 ||
3952 (teleportFlags & (uint)TPFlags.ViaHGLogin) != 0); 3952 (teleportFlags & (uint)TPFlags.ViaHGLogin) != 0);
3953 bool viahome = ((teleportFlags & (uint)TPFlags.ViaHome) != 0); 3953 bool viahome = ((teleportFlags & (uint)TPFlags.ViaHome) != 0);
3954 bool godlike = ((teleportFlags & (uint)TPFlags.Godlike) != 0); 3954// bool godlike = ((teleportFlags & (uint)TPFlags.Godlike) != 0);
3955 3955
3956 reason = String.Empty; 3956 reason = String.Empty;
3957 3957
@@ -4251,7 +4251,8 @@ namespace OpenSim.Region.Framework.Scenes
4251 } 4251 }
4252 // only check access, actual relocations will happen later on ScenePresence MakeRoot 4252 // only check access, actual relocations will happen later on ScenePresence MakeRoot
4253 // allow child agents creation 4253 // allow child agents creation
4254 if(!godlike && teleportFlags != (uint) TPFlags.Default) 4254// if(!godlike && teleportFlags != (uint) TPFlags.Default)
4255 if(teleportFlags != (uint) TPFlags.Default)
4255 { 4256 {
4256 bool checkTeleHub; 4257 bool checkTeleHub;
4257 4258
@@ -6188,9 +6189,10 @@ Environment.Exit(1);
6188 if (Permissions.IsGod(agentID)) 6189 if (Permissions.IsGod(agentID))
6189 return true; 6190 return true;
6190 6191
6191 bool isAdmin = Permissions.IsAdministrator(agentID); 6192 // Permissions.IsAdministrator is the same as IsGod for now
6192 if(isAdmin) 6193// bool isAdmin = Permissions.IsAdministrator(agentID);
6193 return true; 6194// if(isAdmin)
6195// return true;
6194 6196
6195 // also honor estate managers access rights 6197 // also honor estate managers access rights
6196 bool isManager = Permissions.IsEstateManager(agentID); 6198 bool isManager = Permissions.IsEstateManager(agentID);
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 8fdb0f1..5928764 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2302,7 +2302,7 @@ namespace OpenSim.Region.Framework.Scenes
2302 List<ScenePresence> sitters = GetSittingAvatars(); 2302 List<ScenePresence> sitters = GetSittingAvatars();
2303 foreach(ScenePresence sp in sitters) 2303 foreach(ScenePresence sp in sitters)
2304 { 2304 {
2305 if(!sp.IsDeleted && !sp.isNPC && sp.IsSatOnObject) 2305 if(!sp.IsDeleted && !sp.IsNPC && sp.IsSatOnObject)
2306 return; 2306 return;
2307 } 2307 }
2308 } 2308 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 99be06b..b8ac089 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2723,7 +2723,7 @@ namespace OpenSim.Region.Framework.Scenes
2723 detobj.posVector = av.AbsolutePosition; 2723 detobj.posVector = av.AbsolutePosition;
2724 detobj.rotQuat = av.Rotation; 2724 detobj.rotQuat = av.Rotation;
2725 detobj.velVector = av.Velocity; 2725 detobj.velVector = av.Velocity;
2726 detobj.colliderType = av.isNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs 2726 detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
2727 if(av.IsSatOnObject) 2727 if(av.IsSatOnObject)
2728 detobj.colliderType |= 0x4; //passive 2728 detobj.colliderType |= 0x4; //passive
2729 else if(detobj.velVector != Vector3.Zero) 2729 else if(detobj.velVector != Vector3.Zero)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index dbca68b..bd0786b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -90,15 +90,15 @@ namespace OpenSim.Region.Framework.Scenes
90 m_scene.EventManager.TriggerScenePresenceUpdated(this); 90 m_scene.EventManager.TriggerScenePresenceUpdated(this);
91 } 91 }
92 92
93 public bool isNPC { get; private set; } 93 public bool IsNPC { get; private set; }
94 94
95 // simple yes or no isGOD from god level >= 200 95 // simple yes or no isGOD from god level >= 200
96 // should only be set by GodController 96 // should only be set by GodController
97 // we have two to suport legacy behaviour 97 // we have two to suport legacy behaviour
98 // isLegacyGod was controlled by viewer in older versions 98 // IsViewerUIGod was controlled by viewer in older versions
99 // isGod may now be also controled by viewer acording to options 99 // IsGod may now be also controled by viewer acording to options
100 public bool isLegacyGod { get; set; } 100 public bool IsViewerUIGod { get; set; }
101 public bool isGod { get; set; } 101 public bool IsGod { get; set; }
102 102
103 private PresenceType m_presenceType; 103 private PresenceType m_presenceType;
104 public PresenceType PresenceType { 104 public PresenceType PresenceType {
@@ -106,7 +106,7 @@ namespace OpenSim.Region.Framework.Scenes
106 private set 106 private set
107 { 107 {
108 m_presenceType = value; 108 m_presenceType = value;
109 isNPC = (m_presenceType == PresenceType.Npc); 109 IsNPC = (m_presenceType == PresenceType.Npc);
110 } 110 }
111 } 111 }
112 112
@@ -1264,7 +1264,7 @@ namespace OpenSim.Region.Framework.Scenes
1264 IsLoggingIn = false; 1264 IsLoggingIn = false;
1265 } 1265 }
1266 1266
1267 IsChildAgent = false; 1267 IsChildAgent = false;
1268 } 1268 }
1269 1269
1270 m_log.DebugFormat("[MakeRootAgent] out lock: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 1270 m_log.DebugFormat("[MakeRootAgent] out lock: {0}ms", Util.EnvironmentTickCountSubtract(ts));
@@ -1974,7 +1974,7 @@ namespace OpenSim.Region.Framework.Scenes
1974 try 1974 try
1975 { 1975 {
1976 // Make sure it's not a login agent. We don't want to wait for updates during login 1976 // Make sure it's not a login agent. We don't want to wait for updates during login
1977 if (!isNPC && !IsRealLogin(m_teleportFlags)) 1977 if (!IsNPC && !IsRealLogin(m_teleportFlags))
1978 { 1978 {
1979 1979
1980 // Let's wait until UpdateAgent (called by departing region) is done 1980 // Let's wait until UpdateAgent (called by departing region) is done
@@ -2012,7 +2012,7 @@ namespace OpenSim.Region.Framework.Scenes
2012 2012
2013 m_log.DebugFormat("[CompleteMovement] MakeRootAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2013 m_log.DebugFormat("[CompleteMovement] MakeRootAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2014 2014
2015 if(!haveGroupInformation && !IsChildAgent && !isNPC) 2015 if(!haveGroupInformation && !IsChildAgent && !IsNPC)
2016 { 2016 {
2017 IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>(); 2017 IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
2018 if (gm != null) 2018 if (gm != null)
@@ -2086,7 +2086,7 @@ namespace OpenSim.Region.Framework.Scenes
2086 m_currentParcelHide = false; 2086 m_currentParcelHide = false;
2087 m_currentParcelUUID = UUID.Zero; 2087 m_currentParcelUUID = UUID.Zero;
2088 2088
2089 if(!isNPC) 2089 if(!IsNPC)
2090 { 2090 {
2091 GodController.SyncViewerState(); 2091 GodController.SyncViewerState();
2092 2092
@@ -2104,7 +2104,7 @@ namespace OpenSim.Region.Framework.Scenes
2104 // verify baked textures and cache 2104 // verify baked textures and cache
2105 bool cachedbaked = false; 2105 bool cachedbaked = false;
2106 2106
2107 if (isNPC) 2107 if (IsNPC)
2108 cachedbaked = true; 2108 cachedbaked = true;
2109 else 2109 else
2110 { 2110 {
@@ -2156,7 +2156,7 @@ namespace OpenSim.Region.Framework.Scenes
2156 if (p == this) 2156 if (p == this)
2157 continue; 2157 continue;
2158 2158
2159 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 2159 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
2160 continue; 2160 continue;
2161 2161
2162 SendAppearanceToAgentNF(p); 2162 SendAppearanceToAgentNF(p);
@@ -2168,14 +2168,14 @@ namespace OpenSim.Region.Framework.Scenes
2168 m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2168 m_log.DebugFormat("[CompleteMovement] ValidateAndSendAppearanceAndAgentData: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2169 2169
2170 // attachments 2170 // attachments
2171 if (isNPC || IsRealLogin(m_teleportFlags)) 2171 if (IsNPC || IsRealLogin(m_teleportFlags))
2172 { 2172 {
2173 if (Scene.AttachmentsModule != null) 2173 if (Scene.AttachmentsModule != null)
2174 // Util.FireAndForget( 2174 // Util.FireAndForget(
2175 // o => 2175 // o =>
2176 // { 2176 // {
2177 2177
2178 if (!isNPC) 2178 if (!IsNPC)
2179 Scene.AttachmentsModule.RezAttachments(this); 2179 Scene.AttachmentsModule.RezAttachments(this);
2180 else 2180 else
2181 Util.FireAndForget(x => 2181 Util.FireAndForget(x =>
@@ -2206,7 +2206,7 @@ namespace OpenSim.Region.Framework.Scenes
2206 continue; 2206 continue;
2207 } 2207 }
2208 2208
2209 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 2209 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
2210 continue; 2210 continue;
2211 2211
2212 SendAttachmentsToAgentNF(p); 2212 SendAttachmentsToAgentNF(p);
@@ -2226,7 +2226,7 @@ namespace OpenSim.Region.Framework.Scenes
2226 } 2226 }
2227 // let updates be sent, with some delay 2227 // let updates be sent, with some delay
2228 m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000; 2228 m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000;
2229 m_lastChildAgentUpdateGodLevel = GodController.GodLevel; 2229 m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel;
2230 m_lastChildAgentUpdateDrawDistance = DrawDistance; 2230 m_lastChildAgentUpdateDrawDistance = DrawDistance;
2231 m_lastChildAgentUpdatePosition = AbsolutePosition; 2231 m_lastChildAgentUpdatePosition = AbsolutePosition;
2232 m_childUpdatesBusy = false; // allow them 2232 m_childUpdatesBusy = false; // allow them
@@ -2235,7 +2235,7 @@ namespace OpenSim.Region.Framework.Scenes
2235 m_log.DebugFormat("[CompleteMovement] openChildAgents: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2235 m_log.DebugFormat("[CompleteMovement] openChildAgents: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2236 2236
2237 // send the rest of the world 2237 // send the rest of the world
2238 if (m_teleportFlags > 0 && !isNPC || m_currentParcelHide) 2238 if (m_teleportFlags > 0 && !IsNPC || m_currentParcelHide)
2239 SendInitialDataToMe(); 2239 SendInitialDataToMe();
2240 2240
2241 // priority uses avatar position only 2241 // priority uses avatar position only
@@ -3811,7 +3811,7 @@ namespace OpenSim.Region.Framework.Scenes
3811 if (!remoteClient.IsActive) 3811 if (!remoteClient.IsActive)
3812 return; 3812 return;
3813 3813
3814 if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && !p.isLegacyGod) 3814 if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && !p.IsViewerUIGod)
3815 return; 3815 return;
3816 3816
3817 //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity); 3817 //m_log.DebugFormat("[SCENE PRESENCE]: " + Name + " sending TerseUpdate to " + remoteClient.Name + " : Pos={0} Rot={1} Vel={2}", m_pos, Rotation, m_velocity);
@@ -3921,7 +3921,7 @@ namespace OpenSim.Region.Framework.Scenes
3921 // get the avatar, then a kill if can't see it 3921 // get the avatar, then a kill if can't see it
3922 p.SendInitialAvatarDataToAgent(this); 3922 p.SendInitialAvatarDataToAgent(this);
3923 3923
3924 if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !isLegacyGod) 3924 if (p.ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !IsViewerUIGod)
3925 return; 3925 return;
3926 3926
3927 p.SendAppearanceToAgentNF(this); 3927 p.SendAppearanceToAgentNF(this);
@@ -3969,7 +3969,7 @@ namespace OpenSim.Region.Framework.Scenes
3969 foreach (ScenePresence p in presences) 3969 foreach (ScenePresence p in presences)
3970 { 3970 {
3971 p.ControllingClient.SendAvatarDataImmediate(this); 3971 p.ControllingClient.SendAvatarDataImmediate(this);
3972 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 3972 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
3973 // either just kill the object 3973 // either just kill the object
3974 // p.ControllingClient.SendKillObject(new List<uint> {LocalId}); 3974 // p.ControllingClient.SendKillObject(new List<uint> {LocalId});
3975 // or also attachments viewer may still know about 3975 // or also attachments viewer may still know about
@@ -3982,7 +3982,7 @@ namespace OpenSim.Region.Framework.Scenes
3982 public void SendInitialAvatarDataToAgent(ScenePresence p) 3982 public void SendInitialAvatarDataToAgent(ScenePresence p)
3983 { 3983 {
3984 p.ControllingClient.SendAvatarDataImmediate(this); 3984 p.ControllingClient.SendAvatarDataImmediate(this);
3985 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 3985 if (p != this && ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
3986 // either just kill the object 3986 // either just kill the object
3987 // p.ControllingClient.SendKillObject(new List<uint> {LocalId}); 3987 // p.ControllingClient.SendKillObject(new List<uint> {LocalId});
3988 // or also attachments viewer may still know about 3988 // or also attachments viewer may still know about
@@ -3996,7 +3996,7 @@ namespace OpenSim.Region.Framework.Scenes
3996 public void SendAvatarDataToAgent(ScenePresence avatar) 3996 public void SendAvatarDataToAgent(ScenePresence avatar)
3997 { 3997 {
3998 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); 3998 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID);
3999 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.isLegacyGod) 3999 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.IsViewerUIGod)
4000 return; 4000 return;
4001 avatar.ControllingClient.SendAvatarDataImmediate(this); 4001 avatar.ControllingClient.SendAvatarDataImmediate(this);
4002 } 4002 }
@@ -4041,7 +4041,7 @@ namespace OpenSim.Region.Framework.Scenes
4041 { 4041 {
4042 // m_log.DebugFormat( 4042 // m_log.DebugFormat(
4043 // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); 4043 // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
4044 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.isLegacyGod) 4044 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && !avatar.IsViewerUIGod)
4045 return; 4045 return;
4046 SendAppearanceToAgentNF(avatar); 4046 SendAppearanceToAgentNF(avatar);
4047 } 4047 }
@@ -4057,7 +4057,7 @@ namespace OpenSim.Region.Framework.Scenes
4057 if (IsChildAgent || Animator == null) 4057 if (IsChildAgent || Animator == null)
4058 return; 4058 return;
4059 4059
4060 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 4060 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
4061 return; 4061 return;
4062 4062
4063 Animator.SendAnimPackToClient(p.ControllingClient); 4063 Animator.SendAnimPackToClient(p.ControllingClient);
@@ -4068,7 +4068,7 @@ namespace OpenSim.Region.Framework.Scenes
4068 if (IsChildAgent) 4068 if (IsChildAgent)
4069 return; 4069 return;
4070 4070
4071 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 4071 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
4072 return; 4072 return;
4073 4073
4074 p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); 4074 p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs);
@@ -4093,7 +4093,7 @@ namespace OpenSim.Region.Framework.Scenes
4093 4093
4094 m_scene.ForEachScenePresence(delegate(ScenePresence p) 4094 m_scene.ForEachScenePresence(delegate(ScenePresence p)
4095 { 4095 {
4096 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 4096 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
4097 return; 4097 return;
4098 p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs); 4098 p.ControllingClient.SendAnimations(animations, seqs, ControllingClient.AgentId, objectIDs);
4099 }); 4099 });
@@ -4192,7 +4192,7 @@ namespace OpenSim.Region.Framework.Scenes
4192 return; 4192 return;
4193 4193
4194 bool doUpdate = false; 4194 bool doUpdate = false;
4195 if(m_lastChildAgentUpdateGodLevel != GodController.GodLevel) 4195 if(m_lastChildAgentUpdateGodLevel != GodController.ViwerUIGodLevel)
4196 doUpdate = true; 4196 doUpdate = true;
4197 4197
4198 if(!doUpdate && Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f) 4198 if(!doUpdate && Math.Abs(DrawDistance - m_lastChildAgentUpdateDrawDistance) > 32.0f)
@@ -4209,7 +4209,7 @@ namespace OpenSim.Region.Framework.Scenes
4209 { 4209 {
4210 m_childUpdatesBusy = true; 4210 m_childUpdatesBusy = true;
4211 m_lastChildAgentUpdatePosition = pos; 4211 m_lastChildAgentUpdatePosition = pos;
4212 m_lastChildAgentUpdateGodLevel = GodController.GodLevel; 4212 m_lastChildAgentUpdateGodLevel = GodController.ViwerUIGodLevel;
4213 m_lastChildAgentUpdateDrawDistance = DrawDistance; 4213 m_lastChildAgentUpdateDrawDistance = DrawDistance;
4214// m_lastChildAgentUpdateCamPosition = CameraPosition; 4214// m_lastChildAgentUpdateCamPosition = CameraPosition;
4215 4215
@@ -4470,12 +4470,12 @@ namespace OpenSim.Region.Framework.Scenes
4470 /// </summary> 4470 /// </summary>
4471 public void GrantGodlikePowers(UUID token, bool godStatus) 4471 public void GrantGodlikePowers(UUID token, bool godStatus)
4472 { 4472 {
4473 if (isNPC) 4473 if (IsNPC)
4474 return; 4474 return;
4475 4475
4476 bool wasgod = isLegacyGod; 4476 bool wasgod = IsViewerUIGod;
4477 GodController.RequestGodMode(godStatus); 4477 GodController.RequestGodMode(godStatus);
4478 if (wasgod != isLegacyGod) 4478 if (wasgod != IsViewerUIGod)
4479 parcelGodCheck(m_currentParcelUUID); 4479 parcelGodCheck(m_currentParcelUUID);
4480 } 4480 }
4481 4481
@@ -4909,7 +4909,7 @@ namespace OpenSim.Region.Framework.Scenes
4909 RaiseCollisionScriptEvents(coldata); 4909 RaiseCollisionScriptEvents(coldata);
4910 4910
4911 // Gods do not take damage and Invulnerable is set depending on parcel/region flags 4911 // Gods do not take damage and Invulnerable is set depending on parcel/region flags
4912 if (Invulnerable || isLegacyGod) 4912 if (Invulnerable || IsViewerUIGod)
4913 return; 4913 return;
4914 4914
4915 // The following may be better in the ICombatModule 4915 // The following may be better in the ICombatModule
@@ -5194,7 +5194,7 @@ namespace OpenSim.Region.Framework.Scenes
5194 if (p != this && sog.HasPrivateAttachmentPoint) 5194 if (p != this && sog.HasPrivateAttachmentPoint)
5195 return; 5195 return;
5196 5196
5197 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 5197 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
5198 return; 5198 return;
5199 5199
5200 SendTerseUpdateToAgentNF(p); 5200 SendTerseUpdateToAgentNF(p);
@@ -5308,7 +5308,7 @@ namespace OpenSim.Region.Framework.Scenes
5308 if (p == this) 5308 if (p == this)
5309 continue; 5309 continue;
5310 5310
5311 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 5311 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
5312 continue; 5312 continue;
5313 5313
5314 p.ControllingClient.SendEntityUpdate(rootpart, rootflag); 5314 p.ControllingClient.SendEntityUpdate(rootpart, rootflag);
@@ -5366,7 +5366,7 @@ namespace OpenSim.Region.Framework.Scenes
5366 if (p == this) 5366 if (p == this)
5367 continue; 5367 continue;
5368 5368
5369 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 5369 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
5370 continue; 5370 continue;
5371 5371
5372 p.ControllingClient.SendEntityUpdate(rootpart, flag); 5372 p.ControllingClient.SendEntityUpdate(rootpart, flag);
@@ -5416,7 +5416,7 @@ namespace OpenSim.Region.Framework.Scenes
5416 if (p == this) 5416 if (p == this)
5417 continue; 5417 continue;
5418 5418
5419 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 5419 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
5420 continue; 5420 continue;
5421 5421
5422 p.ControllingClient.SendEntityUpdate(part, flag); 5422 p.ControllingClient.SendEntityUpdate(part, flag);
@@ -5457,7 +5457,7 @@ namespace OpenSim.Region.Framework.Scenes
5457 { 5457 {
5458 if (p == this) 5458 if (p == this)
5459 continue; 5459 continue;
5460 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.isLegacyGod) 5460 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
5461 continue; 5461 continue;
5462 5462
5463 p.ControllingClient.SendEntityUpdate(part, flag); 5463 p.ControllingClient.SendEntityUpdate(part, flag);
@@ -6095,7 +6095,7 @@ namespace OpenSim.Region.Framework.Scenes
6095 // the TP point. This behaviour mimics agni. 6095 // the TP point. This behaviour mimics agni.
6096 if (land.LandData.LandingType == (byte)LandingType.LandingPoint && 6096 if (land.LandData.LandingType == (byte)LandingType.LandingPoint &&
6097 land.LandData.UserLocation != Vector3.Zero && 6097 land.LandData.UserLocation != Vector3.Zero &&
6098 !isLegacyGod && 6098 !IsViewerUIGod &&
6099 ((land.LandData.OwnerID != m_uuid && 6099 ((land.LandData.OwnerID != m_uuid &&
6100 !m_scene.Permissions.IsGod(m_uuid) && 6100 !m_scene.Permissions.IsGod(m_uuid) &&
6101 !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) || 6101 !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) ||
@@ -6120,7 +6120,7 @@ namespace OpenSim.Region.Framework.Scenes
6120 string reason; 6120 string reason;
6121 6121
6122 // dont mess with gods 6122 // dont mess with gods
6123 if(isLegacyGod || m_scene.Permissions.IsGod(m_uuid)) 6123 if(IsViewerUIGod || m_scene.Permissions.IsGod(m_uuid))
6124 return true; 6124 return true;
6125 6125
6126 // respect region owner and managers 6126 // respect region owner and managers
@@ -6194,7 +6194,7 @@ namespace OpenSim.Region.Framework.Scenes
6194 detobj.posVector = av.AbsolutePosition; 6194 detobj.posVector = av.AbsolutePosition;
6195 detobj.rotQuat = av.Rotation; 6195 detobj.rotQuat = av.Rotation;
6196 detobj.velVector = av.Velocity; 6196 detobj.velVector = av.Velocity;
6197 detobj.colliderType = av.isNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs 6197 detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
6198 if(av.IsSatOnObject) 6198 if(av.IsSatOnObject)
6199 detobj.colliderType |= 0x4; //passive 6199 detobj.colliderType |= 0x4; //passive
6200 else if(detobj.velVector != Vector3.Zero) 6200 else if(detobj.velVector != Vector3.Zero)
@@ -6417,7 +6417,7 @@ namespace OpenSim.Region.Framework.Scenes
6417 6417
6418 if (p.ParcelHideThisAvatar && p.currentParcelUUID != currentParcelID) 6418 if (p.ParcelHideThisAvatar && p.currentParcelUUID != currentParcelID)
6419 { 6419 {
6420 if (isLegacyGod) 6420 if (IsViewerUIGod)
6421 p.SendViewTo(this); 6421 p.SendViewTo(this);
6422 else 6422 else
6423 p.SendKillTo(this); 6423 p.SendKillTo(this);
@@ -6468,7 +6468,7 @@ namespace OpenSim.Region.Framework.Scenes
6468 continue; 6468 continue;
6469 6469
6470 // those not on parcel dont see me 6470 // those not on parcel dont see me
6471 if (currentParcelID != p.currentParcelUUID && !p.isLegacyGod) 6471 if (currentParcelID != p.currentParcelUUID && !p.IsViewerUIGod)
6472 { 6472 {
6473 killsToSendto.Add(p); // they dont see me 6473 killsToSendto.Add(p); // they dont see me
6474 } 6474 }
@@ -6494,9 +6494,9 @@ namespace OpenSim.Region.Framework.Scenes
6494 // only those on previus parcel need receive kills 6494 // only those on previus parcel need receive kills
6495 if (previusParcelID == p.currentParcelUUID) 6495 if (previusParcelID == p.currentParcelUUID)
6496 { 6496 {
6497 if(!p.isLegacyGod) 6497 if(!p.IsViewerUIGod)
6498 killsToSendto.Add(p); // they dont see me 6498 killsToSendto.Add(p); // they dont see me
6499 if(!isLegacyGod) 6499 if(!IsViewerUIGod)
6500 killsToSendme.Add(p); // i dont see them 6500 killsToSendme.Add(p); // i dont see them
6501 } 6501 }
6502 // only those on new parcel need see 6502 // only those on new parcel need see
@@ -6518,7 +6518,7 @@ namespace OpenSim.Region.Framework.Scenes
6518 continue; 6518 continue;
6519 6519
6520 // those not on new parcel dont see me 6520 // those not on new parcel dont see me
6521 if (currentParcelID != p.currentParcelUUID && !p.isLegacyGod) 6521 if (currentParcelID != p.currentParcelUUID && !p.IsViewerUIGod)
6522 { 6522 {
6523 killsToSendto.Add(p); // they dont see me 6523 killsToSendto.Add(p); // they dont see me
6524 } 6524 }
@@ -6544,7 +6544,7 @@ namespace OpenSim.Region.Framework.Scenes
6544 if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) 6544 if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive)
6545 continue; 6545 continue;
6546 // only those old parcel need kills 6546 // only those old parcel need kills
6547 if (previusParcelID == p.currentParcelUUID && !isLegacyGod) 6547 if (previusParcelID == p.currentParcelUUID && !IsViewerUIGod)
6548 { 6548 {
6549 killsToSendme.Add(p); // i dont see them 6549 killsToSendme.Add(p); // i dont see them
6550 } 6550 }
@@ -6606,7 +6606,7 @@ namespace OpenSim.Region.Framework.Scenes
6606 if (Scene.AttachmentsModule != null) 6606 if (Scene.AttachmentsModule != null)
6607 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true); 6607 Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);
6608 6608
6609 if (!ParcelHideThisAvatar || isLegacyGod) 6609 if (!ParcelHideThisAvatar || IsViewerUIGod)
6610 return; 6610 return;
6611 6611
6612 List<ScenePresence> allpresences = m_scene.GetScenePresences(); 6612 List<ScenePresence> allpresences = m_scene.GetScenePresences();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 92d6808..ad7fc6c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5029,7 +5029,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5029 else 5029 else
5030 { 5030 {
5031 // agent must not be a god 5031 // agent must not be a god
5032 if (presence.GodController.GodLevel >= 200) return; 5032 if (presence.IsViewerUIGod) return;
5033 5033
5034 // agent must be over the owners land 5034 // agent must be over the owners land
5035 ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition); 5035 ILandObject agentLand = World.LandChannel.GetLandObject(presence.AbsolutePosition);
@@ -5256,7 +5256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5256 return; 5256 return;
5257 5257
5258 // Pushee is in GodMode this pushing object isn't owned by them 5258 // Pushee is in GodMode this pushing object isn't owned by them
5259 if (avatar.GodController.GodLevel > 0 && m_host.OwnerID != targetID) 5259 if (avatar.IsViewerUIGod && m_host.OwnerID != targetID)
5260 return; 5260 return;
5261 5261
5262 pusheeav = avatar; 5262 pusheeav = avatar;
@@ -6687,7 +6687,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6687 delegate (ScenePresence ssp) 6687 delegate (ScenePresence ssp)
6688 { 6688 {
6689 // Gods are not listed in SL 6689 // Gods are not listed in SL
6690 if (!ssp.IsDeleted && ssp.GodController.GodLevel == 0.0 && !ssp.IsChildAgent) 6690 if (!ssp.IsDeleted && !ssp.IsViewerUIGod && !ssp.IsChildAgent)
6691 { 6691 {
6692 if (!regionWide) 6692 if (!regionWide)
6693 { 6693 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
index 49e70bc..238fefb 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
@@ -721,7 +721,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
721 { 721 {
722 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 722 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
723 723
724 if (sp == null || sp.GodController.GodLevel < 200) 724 if (sp == null || !sp.IsViewerUIGod)
725 { 725 {
726 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); 726 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
727 return 0; 727 return 0;
@@ -768,7 +768,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
768 { 768 {
769 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 769 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
770 770
771 if (sp == null || sp.GodController.GodLevel < 200) 771 if (sp == null || !sp.IsViewerUIGod)
772 { 772 {
773 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners."); 773 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
774 return; 774 return;
@@ -799,7 +799,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
799 { 799 {
800 ScenePresence sp = World.GetScenePresence(m_host.OwnerID); 800 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
801 801
802 if (sp == null || sp.GodController.GodLevel < 200) 802 if (sp == null || !sp.IsViewerUIGod)
803 { 803 {
804 LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners."); 804 LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
805 return 0; 805 return 0;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index c7e7f89..1808c34 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -540,7 +540,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
540 } 540 }
541 } 541 }
542 542
543 if (presence.IsDeleted || presence.IsChildAgent || presence.GodController.GodLevel > 0.0) 543 if (presence.IsDeleted || presence.IsChildAgent || presence.IsViewerUIGod)
544 return; 544 return;
545 545
546 // if the object the script is in is attached and the avatar is the owner 546 // if the object the script is in is attached and the avatar is the owner