#include "llviewerprecompiledheaders.h" #include "hippolimits.h" #include "hippogridmanager.h" #include "llerror.h" #include "llviewercontrol.h" // gSavedSettings HippoLimits *gHippoLimits = 0; HippoLimits::HippoLimits() { setLimits(); } void HippoLimits::setLimits() { if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_SECONDLIFE) { setSecondLifeLimits(); } else if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_AURORA) { setAuroraLimits(); } else { setOpenSimLimits(); } } void HippoLimits::setOpenSimLimits() { mMaxAgentGroups = gHippoGridManager->getConnectedGrid()->getMaxAgentGroups(); if (mMaxAgentGroups < 0) mMaxAgentGroups = 50; mMaxPrimScale = 8192.0f; mMaxHeight = 10000.0f; if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { llinfos << "Using rendering compatible OpenSim limits." << llendl; mMinPrimScale = 0.01f; mMinHoleSize = 0.05f; mMaxHollow = 0.95f; } else { llinfos << "Using Hippo OpenSim limits." << llendl; mMinPrimScale = 0.001f; mMinHoleSize = 0.01f; mMaxHollow = 0.99f; } } void HippoLimits::setAuroraLimits() { mMaxAgentGroups = gHippoGridManager->getConnectedGrid()->getMaxAgentGroups(); if (mMaxAgentGroups < 0) mMaxAgentGroups = 50; mMaxPrimScale = 8192.0f; mMinPrimScale = 0.001f; mMaxHeight = 10000.0f; mMinHoleSize = 0.001f; mMaxHollow = 99.0f; } void HippoLimits::setSecondLifeLimits() { llinfos << "Using Second Life limits." << llendl; if (gHippoGridManager->getConnectedGrid()) //KC: new server defined max groups mMaxAgentGroups = gHippoGridManager->getConnectedGrid()->getMaxAgentGroups(); if (mMaxAgentGroups <= 0) { mMaxAgentGroups = DEFAULT_MAX_AGENT_GROUPS; } mMinPrimScale = 0.01f; mMaxHeight = 4096.0f; mMinHoleSize = 0.05f; mMaxHollow = 0.95f; mMaxPrimScale = 64.0f; }