From c330f89fb1954ba2a784cd5bc421965b7594d60c Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 22 Mar 2011 10:43:43 +0100
Subject: Add some more fields to Estate settings and make them work. Run alter
 table estate_settings add column AllowLandmark tinyint not null default 1,
 add column AllowParcelChanges tinyint not null default 1, add column
 AllowSetHome tinyint not null default 1; to make this work.

---
 OpenSim/Data/IRegionData.cs                        |  3 +--
 OpenSim/Framework/EstateSettings.cs                | 24 ++++++++++++++++++++++
 .../World/Estate/EstateManagementModule.cs         | 21 ++++++++++++++++---
 .../Region/Framework/Interfaces/IEstateModule.cs   |  2 ++
 4 files changed, 45 insertions(+), 5 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Data/IRegionData.cs b/OpenSim/Data/IRegionData.cs
index d21a312..46dc4fb 100644
--- a/OpenSim/Data/IRegionData.cs
+++ b/OpenSim/Data/IRegionData.cs
@@ -77,8 +77,7 @@ namespace OpenSim.Data
         NoMove = 64, // Don't allow moving this region
         Reservation = 128, // This is an inactive reservation
         Authenticate = 256, // Require authentication
-        Hyperlink = 512, // Record represents a HG link
-        NoTraffic = 512 // Exclude this sim from traffic reporting
+        Hyperlink = 512 // Record represents a HG link
     }
     
     public class RegionDataDistanceCompare : IComparer<RegionData>
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs
index 37f6ed7..afbdd49 100644
--- a/OpenSim/Framework/EstateSettings.cs
+++ b/OpenSim/Framework/EstateSettings.cs
@@ -58,6 +58,30 @@ namespace OpenSim.Framework
             set { m_EstateName = value; }
         }
 
+        private bool m_AllowLandmark = true;
+
+        public bool AllowLandmark
+        {
+            get { return m_AllowLandmark; }
+            set { m_AllowLandmark = value; }
+        }
+
+        private bool m_AllowParcelChanges = true;
+
+        public bool AllowParcelChanges
+        {
+            get { return m_AllowParcelChanges; }
+            set { m_AllowParcelChanges = value; }
+        }
+
+        private bool m_AllowSetHome = true;
+
+        public bool AllowSetHome
+        {
+            get { return m_AllowSetHome; }
+            set { m_AllowSetHome = value; }
+        }
+
         private uint m_ParentEstateID = 1;
 
         public uint ParentEstateID
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 34d0cfc..c146b72 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -380,7 +380,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
                     {
                         remote_client.SendAlertMessage("User is already on the region ban list");
                     }
-                    //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
+                    //Scene.RegionInfo.regionBanlist.Add(Manager(user);
                     remote_client.SendBannedUserList(invoice, Scene.RegionInfo.EstateSettings.EstateBans, Scene.RegionInfo.EstateSettings.EstateID);
                 }
                 else
@@ -418,7 +418,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
                         remote_client.SendAlertMessage("User is not on the region ban list");
                     }
                     
-                    //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
+                    //Scene.RegionInfo.regionBanlist.Add(Manager(user);
                     remote_client.SendBannedUserList(invoice, Scene.RegionInfo.EstateSettings.EstateBans, Scene.RegionInfo.EstateSettings.EstateID);
                 }
                 else
@@ -784,7 +784,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
 
             for (int i = 0; i < uuidarr.Length; i++)
             {
-                // string lookupname = m_scene.CommsManager.UUIDNameRequestString(uuidarr[i]);
+                // string lookupname = Scene.CommsManager.UUIDNameRequestString(uuidarr[i]);
 
                 IUserManagement userManager = Scene.RequestModuleInterface<IUserManagement>();
                 if (userManager != null)
@@ -1031,6 +1031,15 @@ namespace OpenSim.Region.CoreModules.World.Estate
                 flags |= RegionFlags.Sandbox;
             if (Scene.RegionInfo.EstateSettings.AllowVoice)
                 flags |= RegionFlags.AllowVoice;
+            if (Scene.RegionInfo.EstateSettings.AllowLandmark)
+                flags |= RegionFlags.AllowLandmark;
+            if (Scene.RegionInfo.EstateSettings.AllowSetHome)
+                flags |= RegionFlags.AllowSetHome;
+            if (Scene.RegionInfo.EstateSettings.BlockDwell)
+                flags |= RegionFlags.BlockDwell;
+            if (Scene.RegionInfo.EstateSettings.ResetHomeOnTeleport)
+                flags |= RegionFlags.ResetHomeOnTeleport;
+
 
             // Fudge these to always on, so the menu options activate
             //
@@ -1076,6 +1085,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
                 flags |= RegionFlags.ResetHomeOnTeleport;
             if (Scene.RegionInfo.EstateSettings.TaxFree)
                 flags |= RegionFlags.TaxFree;
+            if (Scene.RegionInfo.EstateSettings.AllowLandmark)
+                flags |= RegionFlags.AllowLandmark;
+            if (Scene.RegionInfo.EstateSettings.AllowParcelChanges)
+                flags |= RegionFlags.AllowParcelChanges;
+            if (Scene.RegionInfo.EstateSettings.AllowSetHome)
+                flags |= RegionFlags.AllowSetHome;
             if (Scene.RegionInfo.EstateSettings.DenyMinors)
                 flags |= (RegionFlags)(1 << 30);
 
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
index 721f0ee..72e79ed 100644
--- a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs
@@ -45,5 +45,7 @@ namespace OpenSim.Region.Framework.Interfaces
         /// Tell all clients about the current state of the region (terrain textures, water height, etc.).
         /// </summary>
         void sendRegionHandshakeToAll();
+        void TriggerEstateInfoChange();
+        void TriggerRegionInfoChange();
     }
 }
-- 
cgit v1.1