From b08845f2adc0590ec3616fc16ea35efc26f0d700 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 16 Jun 2010 00:18:36 -0700 Subject: Updated hippo grid manager to include groups and voice info --- linden/indra/newview/hippoGridManager.cpp | 46 +++--- linden/indra/newview/hippoGridManager.h | 264 +++++++++++++++--------------- linden/indra/newview/hippoLimits.cpp | 5 +- linden/indra/newview/llstartup.cpp | 4 + 4 files changed, 168 insertions(+), 151 deletions(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/hippoGridManager.cpp b/linden/indra/newview/hippoGridManager.cpp index 10d115a..0160233 100644 --- a/linden/indra/newview/hippoGridManager.cpp +++ b/linden/indra/newview/hippoGridManager.cpp @@ -40,11 +40,14 @@ HippoGridInfo HippoGridInfo::FALLBACK_GRIDINFO(""); // Initialize HippoGridInfo::HippoGridInfo(const std::string &gridNick) : - mPlatform(PLATFORM_OTHER), - mRenderCompat(true), - mCurrencySymbol("OS$"), - mRealCurrencySymbol("US$"), - mDirectoryFee(30) + mPlatform(PLATFORM_OTHER), + mGridNick(gridNick), + mVoiceConnector("SLVoice"), + mRenderCompat(true), + mMaxAgentGroups(-1), + mCurrencySymbol("OS$"), + mRealCurrencySymbol("US$"), + mDirectoryFee(30) { std::string nick = gridNick; mGridNick = sanitizeGridNick( nick ); @@ -432,33 +435,36 @@ bool HippoGridInfo::retrieveGridInfo() std::string HippoGridInfo::getUploadFee() const { - std::string fee; - formatFee(fee, LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(), true); - return fee; + std::string fee; + formatFee(fee, LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(), true); + return fee; } std::string HippoGridInfo::getGroupCreationFee() const { - std::string fee; - formatFee(fee, LLGlobalEconomy::Singleton::getInstance()->getPriceGroupCreate(), false); - return fee; + std::string fee; + formatFee(fee, LLGlobalEconomy::Singleton::getInstance()->getPriceGroupCreate(), false); + return fee; } std::string HippoGridInfo::getDirectoryFee() const { - std::string fee; - formatFee(fee, mDirectoryFee, true); + std::string fee; + formatFee(fee, mDirectoryFee, true); if (fee != LLTrans::getString("hippo_label_free")) fee += "/" + LLTrans::getString("hippo_label_week"); - return fee; + return fee; } void HippoGridInfo::formatFee(std::string &fee, int cost, bool showFree) const { - if (showFree && (cost == 0)) { - fee = LLTrans::getString("hippo_label_free"); - } else { - fee = llformat("%s%d", getCurrencySymbol().c_str(), cost); - } + if (showFree && (cost == 0)) + { + fee = LLTrans::getString("hippo_label_free"); + } + else + { + fee = llformat("%s%d", getCurrencySymbol().c_str(), cost); + } } @@ -584,7 +590,7 @@ HippoGridInfo* HippoGridManager::getGrid(const std::string &grid) const return it->second; } else { return 0; - } + } } diff --git a/linden/indra/newview/hippoGridManager.h b/linden/indra/newview/hippoGridManager.h index d99918b..b304722 100644 --- a/linden/indra/newview/hippoGridManager.h +++ b/linden/indra/newview/hippoGridManager.h @@ -21,150 +21,156 @@ class LLSD; class HippoGridInfo { public: - enum Platform { - PLATFORM_OTHER = 0, - PLATFORM_OPENSIM, - PLATFORM_SECONDLIFE, - PLATFORM_LAST - }; - enum SearchType { - SEARCH_ALL_EMPTY, - SEARCH_ALL_QUERY, - SEARCH_ALL_TEMPLATE - }; - - explicit HippoGridInfo(const std::string &gridNick); - - Platform getPlatform(); - bool isOpenSimulator() const; - bool isSecondLife() const; - const std::string& getGridNick() const; - const std::string& getGridName() const; - const std::string& getLoginUri() const; - const std::string& getLoginPage() const; - const std::string& getHelperUri() const; - const std::string& getWebSite() const; - const std::string& getSupportUrl() const; - const std::string& getRegisterUrl() const; - const std::string& getPasswordUrl() const; - const std::string& getSearchUrl() const; - const std::string& getFirstName() const; - const std::string& getLastName() const; - const std::string& getAvatarPassword() const; - std::string getSearchUrl(SearchType ty, bool is_web) const; - bool isRenderCompat() const; - - const std::string& getCurrencySymbol() const; - const std::string& getRealCurrencySymbol() const; - std::string getUploadFee() const; - std::string getGroupCreationFee() const; - std::string getDirectoryFee() const; - - void setPlatform (const std::string &platform); - void setPlatform (Platform platform); - void setGridName (const std::string &gridName); - void setLoginUri (const std::string &loginUri); - void setLoginPage(const std::string &loginPage); - void setHelperUri(const std::string &helperUri); - void setWebSite (const std::string &website); - void setSupportUrl(const std::string &url); - void setRegisterUrl(const std::string &url); - void setPasswordUrl(const std::string &url); - void setSearchUrl(const std::string &url); - void setRenderCompat(bool compat); - void setFirstName(const std::string &firstName); - void setLastName(const std::string &lastName); - void setAvatarPassword(const std::string &avatarPassword); - - void setCurrencySymbol(const std::string &sym); - void setRealCurrencySymbol(const std::string &sym); - void setDirectoryFee(int fee); - - bool retrieveGridInfo(); - - static const char *getPlatformString(Platform platform); - static std::string sanitizeGridNick(std::string &gridnick); - - static HippoGridInfo FALLBACK_GRIDINFO; - static void initFallback(); + enum Platform { + PLATFORM_OTHER = 0, + PLATFORM_OPENSIM, + PLATFORM_SECONDLIFE, + PLATFORM_LAST + }; + enum SearchType { + SEARCH_ALL_EMPTY, + SEARCH_ALL_QUERY, + SEARCH_ALL_TEMPLATE + }; + + explicit HippoGridInfo(const std::string &gridNick); + + Platform getPlatform(); + bool isOpenSimulator() const; + bool isSecondLife() const; + const std::string& getGridNick() const; + const std::string& getGridName() const; + const std::string& getLoginUri() const; + const std::string& getLoginPage() const; + const std::string& getHelperUri() const; + const std::string& getWebSite() const; + const std::string& getSupportUrl() const; + const std::string& getRegisterUrl() const; + const std::string& getPasswordUrl() const; + const std::string& getSearchUrl() const; + const std::string& getFirstName() const; + const std::string& getLastName() const; + const std::string& getAvatarPassword() const; + const std::string &getVoiceConnector() const { return mVoiceConnector; } + std::string getSearchUrl(SearchType ty, bool is_web) const; + bool isRenderCompat() const; + int getMaxAgentGroups() const { return mMaxAgentGroups; } + + const std::string& getCurrencySymbol() const; + const std::string& getRealCurrencySymbol() const; + std::string getUploadFee() const; + std::string getGroupCreationFee() const; + std::string getDirectoryFee() const; + + void setPlatform (const std::string &platform); + void setPlatform (Platform platform); + void setGridName (const std::string &gridName); + void setLoginUri (const std::string &loginUri); + void setLoginPage(const std::string &loginPage); + void setHelperUri(const std::string &helperUri); + void setWebSite (const std::string &website); + void setSupportUrl(const std::string &url); + void setRegisterUrl(const std::string &url); + void setPasswordUrl(const std::string &url); + void setSearchUrl(const std::string &url); + void setRenderCompat(bool compat); + void setMaxAgentGroups(int max) { mMaxAgentGroups = max; } + void setFirstName(const std::string &firstName); + void setLastName(const std::string &lastName); + void setAvatarPassword(const std::string &avatarPassword); + void setVoiceConnector(const std::string &vc) { mVoiceConnector = vc; } + + void setCurrencySymbol(const std::string &sym); + void setRealCurrencySymbol(const std::string &sym); + void setDirectoryFee(int fee); + + bool retrieveGridInfo(); + + static const char *getPlatformString(Platform platform); + static std::string sanitizeGridNick(std::string &gridnick); + + static HippoGridInfo FALLBACK_GRIDINFO; + static void initFallback(); private: - Platform mPlatform; - std::string mGridNick; - std::string mGridName; - std::string mLoginUri; - std::string mLoginPage; - std::string mHelperUri; - std::string mWebSite; - std::string mSupportUrl; - std::string mRegisterUrl; - std::string mPasswordUrl; - std::string mSearchUrl; - std::string mFirstName; - std::string mLastName; - std::string mAvatarPassword; - bool mRenderCompat; - - std::string mCurrencySymbol; - std::string mRealCurrencySymbol; - int mDirectoryFee; - - // for parsing grid info XML - enum XmlState { - XML_VOID, XML_GRIDNICK, XML_PLATFORM, XML_GRIDNAME, - XML_LOGINURI, XML_LOGINPAGE, XML_HELPERURI, - XML_WEBSITE, XML_SUPPORT, XML_REGISTER, XML_PASSWORD, XML_SEARCH - }; - XmlState mXmlState; - - static std::string sanitizeUri(std::string &uri); - void formatFee(std::string &fee, int cost, bool showFree) const; - - static void onXmlElementStart(void *userData, const XML_Char *name, const XML_Char **atts); - static void onXmlElementEnd(void *userData, const XML_Char *name); - static void onXmlCharacterData(void *userData, const XML_Char *s, int len); + Platform mPlatform; + std::string mGridNick; + std::string mGridName; + std::string mLoginUri; + std::string mLoginPage; + std::string mHelperUri; + std::string mWebSite; + std::string mSupportUrl; + std::string mRegisterUrl; + std::string mPasswordUrl; + std::string mSearchUrl; + std::string mVoiceConnector; + std::string mFirstName; + std::string mLastName; + std::string mAvatarPassword; + bool mRenderCompat; + int mMaxAgentGroups; + + std::string mCurrencySymbol; + std::string mRealCurrencySymbol; + int mDirectoryFee; + + // for parsing grid info XML + enum XmlState { + XML_VOID, XML_GRIDNICK, XML_PLATFORM, XML_GRIDNAME, + XML_LOGINURI, XML_LOGINPAGE, XML_HELPERURI, + XML_WEBSITE, XML_SUPPORT, XML_REGISTER, XML_PASSWORD, XML_SEARCH + }; + XmlState mXmlState; + + static std::string sanitizeUri(std::string &uri); + void formatFee(std::string &fee, int cost, bool showFree) const; + + static void onXmlElementStart(void *userData, const XML_Char *name, const XML_Char **atts); + static void onXmlElementEnd(void *userData, const XML_Char *name); + static void onXmlCharacterData(void *userData, const XML_Char *s, int len); }; class HippoGridManager { public: - HippoGridManager(); - ~HippoGridManager(); + HippoGridManager(); + ~HippoGridManager(); - void init(); - void saveFile(); - void discardAndReload(); + void init(); + void saveFile(); + void discardAndReload(); - HippoGridInfo* getGrid(const std::string &grid) const; - HippoGridInfo* getConnectedGrid() const; - HippoGridInfo* getCurrentGrid() const; - const std::string& getDefaultGridNick() const; - const std::string& getCurrentGridNick() const; + HippoGridInfo* getGrid(const std::string &grid) const; + HippoGridInfo* getConnectedGrid() const; + HippoGridInfo* getCurrentGrid() const; + const std::string& getDefaultGridNick() const; + const std::string& getCurrentGridNick() const; - void setDefaultGrid(const std::string &grid); - void setCurrentGrid(const std::string &grid); - void setCurrentGridAsConnected(); + void setDefaultGrid(const std::string &grid); + void setCurrentGrid(const std::string &grid); + void setCurrentGridAsConnected(); - void addGrid(HippoGridInfo *grid); - void deleteGrid(const std::string &grid); + void addGrid(HippoGridInfo *grid); + void deleteGrid(const std::string &grid); - typedef std::map::iterator GridIterator; - GridIterator beginGrid() { return mGridInfo.begin(); } - GridIterator endGrid() { return mGridInfo.end(); } + typedef std::map::iterator GridIterator; + GridIterator beginGrid() { return mGridInfo.begin(); } + GridIterator endGrid() { return mGridInfo.end(); } private: - std::map mGridInfo; - std::string mDefaultGrid; - std::string mCurrentGrid; - HippoGridInfo *mConnectedGrid; - int mDefaultGridsVersion; - - void cleanup(); - void loadFromFile(); - void parseFile(const std::string &fileName, bool mergeIfNewer); - void parseUrl(const char *url, bool mergeIfNewer); - void parseData(LLSD &gridInfo, bool mergeIfNewer); + std::map mGridInfo; + std::string mDefaultGrid; + std::string mCurrentGrid; + HippoGridInfo *mConnectedGrid; + int mDefaultGridsVersion; + + void cleanup(); + void loadFromFile(); + void parseFile(const std::string &fileName, bool mergeIfNewer); + void parseUrl(const char *url, bool mergeIfNewer); + void parseData(LLSD &gridInfo, bool mergeIfNewer); }; diff --git a/linden/indra/newview/hippoLimits.cpp b/linden/indra/newview/hippoLimits.cpp index 0777ca3..92e2ed3 100644 --- a/linden/indra/newview/hippoLimits.cpp +++ b/linden/indra/newview/hippoLimits.cpp @@ -42,7 +42,8 @@ void HippoLimits::setLimits() void HippoLimits::setOpenSimLimits() { - mMaxAgentGroups = 100; + mMaxAgentGroups = gHippoGridManager->getConnectedGrid()->getMaxAgentGroups(); + if (mMaxAgentGroups < 0) mMaxAgentGroups = 50; mMaxPrimScale = 256.0f; mMinPrimScale = 0.001f; mMaxHeight = 10000.0f; @@ -50,7 +51,7 @@ void HippoLimits::setOpenSimLimits() if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { llinfos << "Using rendering compatible OpenSim limits" << llendl; - mMinHoleSize = 0.05f; + mMinHoleSize = 0.05f; mMaxHollow = 0.95f; } else diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 63e0b4d..ac81b9c 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp @@ -1689,6 +1689,10 @@ bool idle_startup() if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp); tmp = LLUserAuth::getInstance()->getResponse("directory_fee"); if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setDirectoryFee(atoi(tmp.c_str())); + tmp = LLUserAuth::getInstance()->getResponse("max_groups"); + if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str())); + tmp = LLUserAuth::getInstance()->getResponse("VoiceConnector"); + if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setVoiceConnector(tmp); gHippoGridManager->saveFile(); gHippoLimits->setLimits(); -- cgit v1.1