aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-09-09 00:29:59 +0100
committerJustin Clark-Casey (justincc)2011-09-09 00:38:04 +0100
commit086bf9f15db05ca2be1cf0dda24f8ee7a368988d (patch)
tree54cf631d998183bb893e644fd4daf1e49bd11b3e /OpenSim/Region
parentFix test failure. Oversight in setting up the tests themselves. (diff)
downloadopensim-SC-086bf9f15db05ca2be1cf0dda24f8ee7a368988d.zip
opensim-SC-086bf9f15db05ca2be1cf0dda24f8ee7a368988d.tar.gz
opensim-SC-086bf9f15db05ca2be1cf0dda24f8ee7a368988d.tar.bz2
opensim-SC-086bf9f15db05ca2be1cf0dda24f8ee7a368988d.tar.xz
Save the default terrain texture UUIDs for a new region instead of leaving them as UUID.Zero.
Leaving them at UUID.Zero meant that when a viewer 2 logged into a region that had been freshly created, it received UUID.Zero for these textures, and hence display the land as plain white. On a simulator restart, the problem would go away since when the database adapators loaded the new region settings, RegionSettings itself has code to use default textures instead of UUID.Zero. This commit resolves the problem by saving the default texture UUIDs instead of Zero. However, we currently have to do this in a roundabout way by resaving once the RegionSettings have been created by the database for the first time. This needless complexity should be addressed. This change will also have the effect of replacing any existing UUID.Zero terrain textures with the default ones. However, this shouldn't have any effect since the UUID.Zeros were already being replaced in memory with those same UUIDs.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs37
2 files changed, 41 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index d0605e3..94c1417 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -968,6 +968,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
968 args.terrainDetail2 = Scene.RegionInfo.RegionSettings.TerrainTexture3; 968 args.terrainDetail2 = Scene.RegionInfo.RegionSettings.TerrainTexture3;
969 args.terrainDetail3 = Scene.RegionInfo.RegionSettings.TerrainTexture4; 969 args.terrainDetail3 = Scene.RegionInfo.RegionSettings.TerrainTexture4;
970 970
971 m_log.DebugFormat("[ESTATE MANAGEMENT MODULE]: Sending terrain texture 1 {0} for region {1}", args.terrainDetail0, Scene.RegionInfo.RegionName);
972 m_log.DebugFormat("[ESTATE MANAGEMENT MODULE]: Sending terrain texture 2 {0} for region {1}", args.terrainDetail1, Scene.RegionInfo.RegionName);
973 m_log.DebugFormat("[ESTATE MANAGEMENT MODULE]: Sending terrain texture 3 {0} for region {1}", args.terrainDetail2, Scene.RegionInfo.RegionName);
974 m_log.DebugFormat("[ESTATE MANAGEMENT MODULE]: Sending terrain texture 4 {0} for region {1}", args.terrainDetail3, Scene.RegionInfo.RegionName);
975
971 remoteClient.SendRegionHandshake(Scene.RegionInfo,args); 976 remoteClient.SendRegionHandshake(Scene.RegionInfo,args);
972 } 977 }
973 978
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index d3de37d..f86b3b6 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -588,7 +588,42 @@ namespace OpenSim.Region.Framework.Scenes
588 #region Region Settings 588 #region Region Settings
589 589
590 // Load region settings 590 // Load region settings
591 m_regInfo.RegionSettings = simDataService.LoadRegionSettings(m_regInfo.RegionID); 591 // LoadRegionSettings creates new region settings in persistence if they don't already exist for this region.
592 // However, in this case, the default textures are not set in memory properly, so we need to do it here and
593 // resave.
594 // FIXME: It shouldn't be up to the database plugins to create this data - we should do it when a new
595 // region is set up and avoid these gyrations.
596 RegionSettings rs = simDataService.LoadRegionSettings(m_regInfo.RegionID);
597 bool updatedTerrainTextures = false;
598 if (rs.TerrainTexture1 == UUID.Zero)
599 {
600 rs.TerrainTexture1 = RegionSettings.DEFAULT_TERRAIN_TEXTURE_1;
601 updatedTerrainTextures = true;
602 }
603
604 if (rs.TerrainTexture2 == UUID.Zero)
605 {
606 rs.TerrainTexture2 = RegionSettings.DEFAULT_TERRAIN_TEXTURE_2;
607 updatedTerrainTextures = true;
608 }
609
610 if (rs.TerrainTexture3 == UUID.Zero)
611 {
612 rs.TerrainTexture3 = RegionSettings.DEFAULT_TERRAIN_TEXTURE_3;
613 updatedTerrainTextures = true;
614 }
615
616 if (rs.TerrainTexture4 == UUID.Zero)
617 {
618 rs.TerrainTexture4 = RegionSettings.DEFAULT_TERRAIN_TEXTURE_4;
619 updatedTerrainTextures = true;
620 }
621
622 if (updatedTerrainTextures)
623 rs.Save();
624
625 m_regInfo.RegionSettings = rs;
626
592 if (estateDataService != null) 627 if (estateDataService != null)
593 m_regInfo.EstateSettings = estateDataService.LoadEstateSettings(m_regInfo.RegionID, false); 628 m_regInfo.EstateSettings = estateDataService.LoadEstateSettings(m_regInfo.RegionID, false);
594 629