diff options
Diffstat (limited to 'indra/newview/llfloatermap.cpp')
-rw-r--r-- | indra/newview/llfloatermap.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp index d53929272c..242f5b7991 100644 --- a/indra/newview/llfloatermap.cpp +++ b/indra/newview/llfloatermap.cpp @@ -197,3 +197,47 @@ void LLFloaterMap::toggle(void*) } } } + + +BOOL process_secondlife_url(LLString url) +{ + S32 strpos, strpos2; + + LLString slurlID = "slurl.com/secondlife/"; + strpos = url.find(slurlID); + + if (strpos < 0) + { + slurlID="secondlife://"; + strpos = url.find(slurlID); + } + + if (strpos >= 0) + { + LLString simname; + + strpos+=slurlID.length(); + strpos2=url.find("/",strpos); + if (strpos2 < strpos) strpos2=url.length(); + simname="secondlife://" + url.substr(strpos,url.length() - strpos); + + LLURLSimString::setString( simname ); + LLURLSimString::parse(); + + // if there is a world map + if ( gFloaterWorldMap ) + { + // mark where the destination is + gFloaterWorldMap->trackURL( LLURLSimString::sInstance.mSimName.c_str(), + LLURLSimString::sInstance.mX, + LLURLSimString::sInstance.mY, + LLURLSimString::sInstance.mZ ); + + // display map + LLFloaterWorldMap::show( NULL, TRUE ); + }; + + return TRUE; + } + return FALSE; +} |