Fix parcel prim count and max reporting. Viewer already multiplies.

avinationmerge
Melanie 2011-07-06 09:59:05 +02:00
parent f45746613d
commit 06d5989f4d
2 changed files with 25 additions and 6 deletions

View File

@ -4589,7 +4589,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (landData.SimwideArea > 0) if (landData.SimwideArea > 0)
{ {
int simulatorCapacity = (int)(((float)landData.SimwideArea / 65536.0f) * (float)m_scene.RegionInfo.ObjectCapacity * (float)m_scene.RegionInfo.RegionSettings.ObjectBonus); int simulatorCapacity = (int)((double)(landData.SimwideArea * m_scene.RegionInfo.ObjectCapacity) * m_scene.RegionInfo.RegionSettings.ObjectBonus) / 65536;
// Never report more than sim total capacity
if (simulatorCapacity > m_scene.RegionInfo.ObjectCapacity)
simulatorCapacity = m_scene.RegionInfo.ObjectCapacity;
updateMessage.SimWideMaxPrims = simulatorCapacity; updateMessage.SimWideMaxPrims = simulatorCapacity;
} }
else else

View File

@ -190,10 +190,26 @@ namespace OpenSim.Region.CoreModules.World.Land
else else
{ {
// Normal Calculations // Normal Calculations
int parcelMax = (int)(((float)LandData.Area / 65536.0f) int parcelMax = (int)((double)(LandData.Area
* (float)m_scene.RegionInfo.ObjectCapacity * m_scene.RegionInfo.ObjectCapacity)
* (float)m_scene.RegionInfo.RegionSettings.ObjectBonus); * m_scene.RegionInfo.RegionSettings.ObjectBonus)
// TODO: The calculation of ObjectBonus should be refactored. It does still not work in the same manner as SL! / 65536;
return parcelMax;
}
}
private int GetParcelBasePrimCount()
{
if (overrideParcelMaxPrimCount != null)
{
return overrideParcelMaxPrimCount(this);
}
else
{
// Normal Calculations
int parcelMax = LandData.Area
* m_scene.RegionInfo.ObjectCapacity
/ 65536;
return parcelMax; return parcelMax;
} }
} }
@ -245,7 +261,7 @@ namespace OpenSim.Region.CoreModules.World.Land
remote_client.SendLandProperties(seq_id, remote_client.SendLandProperties(seq_id,
snap_selection, request_result, this, snap_selection, request_result, this,
(float)m_scene.RegionInfo.RegionSettings.ObjectBonus, (float)m_scene.RegionInfo.RegionSettings.ObjectBonus,
GetParcelMaxPrimCount(), GetParcelBasePrimCount(),
GetSimulatorMaxPrimCount(), regionFlags); GetSimulatorMaxPrimCount(), regionFlags);
} }