summaryrefslogtreecommitdiff
path: root/indra/newview/llstartup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llstartup.cpp')
-rw-r--r--indra/newview/llstartup.cpp78
1 files changed, 36 insertions, 42 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 4f1bcde302..a84bb98a90 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -567,7 +567,7 @@ bool idle_startup()
gXferManager->setUseAckThrottling(TRUE);
gXferManager->setAckThrottleBPS(xfer_throttle_bps);
}
- gAssetStorage = new LLViewerAssetStorage(msg, gXferManager, gVFS);
+ gAssetStorage = new LLViewerAssetStorage(msg, gXferManager, gVFS, gStaticVFS);
F32 dropPercent = gSavedSettings.getF32("PacketDropPercentage");
@@ -799,7 +799,7 @@ bool idle_startup()
gViewerWindow->moveProgressViewToFront();
//reset the values that could have come in from a slurl
- // DEV-42215: Make sure they're not empty -- gFirstname and gLastname
+ // DEV-42215: Make sure they're not empty -- gUserCredential
// might already have been set from gSavedSettings, and it's too bad
// to overwrite valid values with empty strings.
@@ -849,13 +849,12 @@ bool idle_startup()
}
//Default the path if one isn't set.
- if (gSavedPerAccountSettings.getString("InstantMessageLogFolder").empty())
+ // *NOTE: unable to check variable differ from "InstantMessageLogPath" because it was
+ // provided in pre 2.0 viewer. See EXT-6661
+ if (gSavedPerAccountSettings.getString("InstantMessageLogPath").empty())
{
gDirUtilp->setChatLogsDir(gDirUtilp->getOSUserAppDir());
- std::string chat_log_dir = gDirUtilp->getChatLogsDir();
- std::string chat_log_top_folder=gDirUtilp->getBaseFileName(chat_log_dir);
- gSavedPerAccountSettings.setString("InstantMessageLogPath",chat_log_dir);
- gSavedPerAccountSettings.setString("InstantMessageLogFolder",chat_log_top_folder);
+ gSavedPerAccountSettings.setString("InstantMessageLogPath", gDirUtilp->getChatLogsDir());
}
else
{
@@ -1771,7 +1770,8 @@ bool idle_startup()
}
}
// no need to add gesture to inventory observer, it's already made in constructor
- LLGestureMgr::instance().fetchItems(item_ids);
+ LLGestureMgr::instance().setFetchIDs(item_ids);
+ LLGestureMgr::instance().startFetch();
}
}
gDisplaySwapBuffers = TRUE;
@@ -3022,44 +3022,38 @@ bool process_login_success_response()
//setup map of datetime strings to codes and slt & local time offset from utc
LLStringOps::setupDatetimeInfo(pacific_daylight_time);
}
+
+ // set up the voice configuration. Ultimately, we should pass this up as part of each voice
+ // channel if we need to move to multiple voice servers per grid.
+ LLSD voice_config_info = response["voice-config"];
+ if(voice_config_info.has("VoiceServerType"))
+ {
+ gSavedSettings.setString("VoiceServerType", voice_config_info["VoiceServerType"].asString());
+ }
+
+ // Request the map server url
+ std::string map_server_url = response["map-server-url"];
+ if(!map_server_url.empty())
+ {
+ gSavedSettings.setString("MapServerURL", map_server_url);
+ }
- static const char* CONFIG_OPTIONS[] = {"voice-config", "newuser-config"};
- for (int i = 0; i < sizeof(CONFIG_OPTIONS)/sizeof(CONFIG_OPTIONS[0]); i++)
+ // Default male and female avatars allowing the user to choose their avatar on first login.
+ // These may be passed up by SLE to allow choice of enterprise avatars instead of the standard
+ // "new ruth." Not to be confused with 'initial-outfit' below
+ LLSD newuser_config = response["newuser-config"];
+ if(newuser_config.has("DefaultFemaleAvatar"))
{
- LLSD options = response[CONFIG_OPTIONS[i]];
- if (!options.isArray() && (options.size() < 1) && !options[0].isMap())
- {
- continue;
- }
- llinfos << "config option " << CONFIG_OPTIONS[i][0] << "response " << options << llendl;
- for(LLSD::map_iterator option_it = options[0].beginMap();
- option_it != options[0].endMap();
- option_it++)
- {
- llinfos << "trying option " << option_it->first << llendl;
- LLPointer<LLControlVariable> control = gSavedSettings.getControl(option_it->first);
- if(control.notNull())
- {
- if(control->isType(TYPE_BOOLEAN))
- {
- llinfos << "Setting BOOL from login " << option_it->first << " " << option_it->second << llendl;
-
- gSavedSettings.setBOOL(option_it->first, !((option_it->second == "F") ||
- (option_it->second == "false") ||
- (!option_it->second)));
- }
- else if (control->isType(TYPE_STRING))
- {
- llinfos << "Setting String from login " << option_it->first << " " << option_it->second << llendl;
- gSavedSettings.setString(option_it->first, option_it->second);
- }
- // we don't support other types now
-
- }
-
- }
+ gSavedSettings.setString("DefaultFemaleAvatar", newuser_config["DefaultFemaleAvatar"].asString());
+ }
+ if(newuser_config.has("DefaultMaleAvatar"))
+ {
+ gSavedSettings.setString("DefaultMaleAvatar", newuser_config["DefaultMaleAvatar"].asString());
}
+ // Initial outfit for the user.
+ // QUESTION: Why can't we simply simply set the users outfit directly
+ // from a web page into the user info on the server? - Roxie
LLSD initial_outfit = response["initial-outfit"][0];
if(initial_outfit.size())
{