From 5afb70b9feb58b17261bc6f04f9c923c0da588e5 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 17 Jan 2012 15:30:52 +0100 Subject: Fix prim calculations so that > 32767 prims are supported --- OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +- OpenSim/Region/CoreModules/World/Land/LandObject.cs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 873c56c..01e1383 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -4612,7 +4612,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (landData.SimwideArea > 0) { - int simulatorCapacity = (int)((double)(landData.SimwideArea * m_scene.RegionInfo.ObjectCapacity) * m_scene.RegionInfo.RegionSettings.ObjectBonus) / 65536; + int simulatorCapacity = (int)((long)landData.SimwideArea * (long)m_scene.RegionInfo.ObjectCapacity * (long)m_scene.RegionInfo.RegionSettings.ObjectBonus / 65536L); // Never report more than sim total capacity if (simulatorCapacity > m_scene.RegionInfo.ObjectCapacity) simulatorCapacity = m_scene.RegionInfo.ObjectCapacity; diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 4f10fbf..48f58f0 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs @@ -194,6 +194,7 @@ namespace OpenSim.Region.CoreModules.World.Land * m_scene.RegionInfo.ObjectCapacity) * m_scene.RegionInfo.RegionSettings.ObjectBonus) / 65536; + m_log.DebugFormat("Area: {0}, Capacity {1}, Bonus {2}, Parcel {3}", LandData.Area, m_scene.RegionInfo.ObjectCapacity, m_scene.RegionInfo.RegionSettings.ObjectBonus, parcelMax); return parcelMax; } } @@ -223,8 +224,9 @@ namespace OpenSim.Region.CoreModules.World.Land else { //Normal Calculations - int simMax = (int)(((float)LandData.SimwideArea / 65536.0f) - * (float)m_scene.RegionInfo.ObjectCapacity); + int simMax = (int)((long)LandData.SimwideArea + * (long)m_scene.RegionInfo.ObjectCapacity / 65536L); + m_log.DebugFormat("Simwide Area: {0}, Capacity {1}, SimMax {2}", LandData.SimwideArea, m_scene.RegionInfo.ObjectCapacity, simMax); return simMax; } } -- cgit v1.1