aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2010-01-15 21:23:59 +0000
committerMelanie2010-01-15 21:23:59 +0000
commit344d27b19d4a1b0ca98a1e7cc4932eb996a9d59c (patch)
treee0b0efe3075ba02e06f7a7d176e884e0372e7430
parentAdd a handful of new region flags and a small migration (diff)
downloadopensim-SC-344d27b19d4a1b0ca98a1e7cc4932eb996a9d59c.zip
opensim-SC-344d27b19d4a1b0ca98a1e7cc4932eb996a9d59c.tar.gz
opensim-SC-344d27b19d4a1b0ca98a1e7cc4932eb996a9d59c.tar.bz2
opensim-SC-344d27b19d4a1b0ca98a1e7cc4932eb996a9d59c.tar.xz
Implement the NoMove behavior. Cause Reservation flag to be reset on
first connect
-rw-r--r--OpenSim/Services/GridService/GridService.cs10
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs
index 4f93ce5..6e2c0d7 100644
--- a/OpenSim/Services/GridService/GridService.cs
+++ b/OpenSim/Services/GridService/GridService.cs
@@ -99,6 +99,9 @@ namespace OpenSim.Services.GridService
99 if ((region != null) && (region.RegionID == regionInfos.RegionID) && 99 if ((region != null) && (region.RegionID == regionInfos.RegionID) &&
100 ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY))) 100 ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY)))
101 { 101 {
102 if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Data.RegionFlags.NoMove) != 0)
103 return false;
104
102 // Region reregistering in other coordinates. Delete the old entry 105 // Region reregistering in other coordinates. Delete the old entry
103 m_log.DebugFormat("[GRID SERVICE]: Region {0} ({1}) was previously registered at {2}-{3}. Deleting old entry.", 106 m_log.DebugFormat("[GRID SERVICE]: Region {0} ({1}) was previously registered at {2}-{3}. Deleting old entry.",
104 regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionLocX, regionInfos.RegionLocY); 107 regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionLocX, regionInfos.RegionLocY);
@@ -119,10 +122,13 @@ namespace OpenSim.Services.GridService
119 122
120 if (region != null) 123 if (region != null)
121 { 124 {
122 if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Data.RegionFlags.LockedOut) != 0) 125 int oldFlags = Convert.ToInt32(region.Data["flags"]);
126 if ((oldFlags & (int)OpenSim.Data.RegionFlags.LockedOut) != 0)
123 return false; 127 return false;
124 128
125 rdata.Data["flags"] = region.Data["flags"]; // Preserve fields 129 oldFlags &= ~(int)OpenSim.Data.RegionFlags.Reservation;
130
131 rdata.Data["flags"] = oldFlags.ToString(); // Preserve flags
126 } 132 }
127 else 133 else
128 { 134 {