From b807e3df990e6fad25cd0bca94d2959dac042b13 Mon Sep 17 00:00:00 2001 From: Mark Palange Date: Wed, 8 Oct 2008 00:22:32 +0000 Subject: merge r97380-98701 branches/viewer/viewer_1-21 (Viewer RC5 and security fixes) merge to trunk (for real) --- indra/llcommon/llversionviewer.h | 2 +- indra/llmessage/llmessagetemplate.h | 2 +- indra/llmessage/llmessagetemplateparser.cpp | 2 +- indra/llmessage/lltemplatemessagebuilder.cpp | 1 - indra/llmessage/lltemplatemessagereader.cpp | 3 +- indra/llmessage/lltemplatemessagereader.h | 1 + indra/llmessage/llurlrequest.cpp | 42 +-- indra/llmessage/message.cpp | 6 +- indra/newview/app_settings/settings.xml | 2 +- indra/newview/llappviewer.cpp | 4 +- indra/newview/llselectmgr.cpp | 4 +- indra/newview/lltexturecache.cpp | 6 +- indra/newview/lltoolgrab.cpp | 72 +++-- indra/newview/lltoolgrab.h | 8 + indra/newview/llviewerjoystick.cpp | 11 +- indra/newview/llviewerjoystick.h | 2 +- indra/newview/llviewermenu.cpp | 11 +- indra/newview/llviewermessage.cpp | 3 +- .../newview/skins/default/xui/de/floater_about.xml | 10 +- .../skins/default/xui/de/floater_color_picker.xml | 2 +- indra/newview/skins/default/xui/de/floater_im.xml | 2 +- .../skins/default/xui/de/floater_inspect.xml | 10 +- .../skins/default/xui/de/floater_select_key.xml | 3 +- .../skins/default/xui/de/floater_snapshot.xml | 61 +++-- indra/newview/skins/default/xui/de/floater_tos.xml | 4 +- indra/newview/skins/default/xui/de/panel_login.xml | 2 +- .../default/xui/de/panel_preferences_chat.xml | 2 +- .../skins/default/xui/de/panel_region_debug.xml | 2 +- indra/newview/skins/default/xui/de/strings.xml | 33 ++- .../newview/skins/default/xui/fr/floater_about.xml | 6 +- .../skins/default/xui/fr/floater_about_land.xml | 210 +++++++------- .../default/xui/fr/floater_animation_preview.xml | 89 +++--- .../skins/default/xui/fr/floater_auction.xml | 11 +- .../skins/default/xui/fr/floater_avatar_picker.xml | 4 +- .../default/xui/fr/floater_avatar_textures.xml | 20 +- .../skins/default/xui/fr/floater_build_options.xml | 6 +- .../newview/skins/default/xui/fr/floater_bumps.xml | 14 +- .../skins/default/xui/fr/floater_buy_contents.xml | 8 +- .../skins/default/xui/fr/floater_buy_currency.xml | 18 +- .../skins/default/xui/fr/floater_buy_land.xml | 137 +++++----- .../skins/default/xui/fr/floater_buy_object.xml | 4 +- .../skins/default/xui/fr/floater_choose_group.xml | 2 +- .../skins/default/xui/fr/floater_color_picker.xml | 25 +- .../skins/default/xui/fr/floater_customize.xml | 304 +++++++++++++-------- .../default/xui/fr/floater_day_cycle_options.xml | 6 +- .../skins/default/xui/fr/floater_env_settings.xml | 20 +- .../skins/default/xui/fr/floater_gesture.xml | 19 +- .../skins/default/xui/fr/floater_god_tools.xml | 126 +++++---- .../default/xui/fr/floater_hardware_settings.xml | 6 +- indra/newview/skins/default/xui/fr/floater_im.xml | 6 +- .../skins/default/xui/fr/floater_image_preview.xml | 26 +- .../skins/default/xui/fr/floater_inspect.xml | 10 +- .../skins/default/xui/fr/floater_inventory.xml | 44 +-- .../xui/fr/floater_inventory_item_properties.xml | 38 +-- .../xui/fr/floater_inventory_view_finder.xml | 18 +- .../skins/default/xui/fr/floater_joystick.xml | 22 +- .../skins/default/xui/fr/floater_land_holdings.xml | 30 +- .../default/xui/fr/floater_live_lsleditor.xml | 8 +- .../skins/default/xui/fr/floater_media_browser.xml | 13 +- .../skins/default/xui/fr/floater_moveview.xml | 12 +- .../skins/default/xui/fr/floater_openobject.xml | 2 +- indra/newview/skins/default/xui/fr/floater_pay.xml | 15 +- .../skins/default/xui/fr/floater_pay_object.xml | 18 +- .../skins/default/xui/fr/floater_post_process.xml | 2 +- .../skins/default/xui/fr/floater_postcard.xml | 8 +- .../skins/default/xui/fr/floater_preferences.xml | 2 +- .../default/xui/fr/floater_preview_animation.xml | 10 +- .../default/xui/fr/floater_preview_gesture.xml | 67 +++-- .../default/xui/fr/floater_preview_notecard.xml | 2 +- .../skins/default/xui/fr/floater_preview_sound.xml | 12 +- .../default/xui/fr/floater_preview_texture.xml | 4 +- .../skins/default/xui/fr/floater_report_abuse.xml | 52 ++-- .../default/xui/fr/floater_script_preview.xml | 2 +- .../skins/default/xui/fr/floater_script_search.xml | 2 +- .../skins/default/xui/fr/floater_select_key.xml | 2 +- .../skins/default/xui/fr/floater_sell_land.xml | 38 +-- .../default/xui/fr/floater_settings_debug.xml | 2 +- .../skins/default/xui/fr/floater_snapshot.xml | 39 ++- .../skins/default/xui/fr/floater_sound_preview.xml | 4 +- .../skins/default/xui/fr/floater_telehub.xml | 28 +- .../skins/default/xui/fr/floater_texture_ctrl.xml | 10 +- .../newview/skins/default/xui/fr/floater_tools.xml | 240 ++++++++-------- .../skins/default/xui/fr/floater_top_objects.xml | 30 +- indra/newview/skins/default/xui/fr/floater_tos.xml | 3 +- .../newview/skins/default/xui/fr/floater_water.xml | 15 +- .../default/xui/fr/floater_wearable_save_as.xml | 2 +- .../default/xui/fr/floater_windlight_options.xml | 22 +- .../skins/default/xui/fr/floater_world_map.xml | 82 +++--- .../skins/default/xui/fr/menu_inventory.xml | 75 ++--- indra/newview/skins/default/xui/fr/menu_login.xml | 4 +- indra/newview/skins/default/xui/fr/menu_slurl.xml | 4 +- indra/newview/skins/default/xui/fr/menu_viewer.xml | 28 +- .../newview/skins/default/xui/fr/panel_friends.xml | 15 +- .../skins/default/xui/fr/panel_group_general.xml | 61 ++--- .../skins/default/xui/fr/panel_group_invite.xml | 10 +- .../default/xui/fr/panel_group_land_money.xml | 45 ++- .../skins/default/xui/fr/panel_group_notices.xml | 70 ++--- .../skins/default/xui/fr/panel_group_roles.xml | 118 ++++---- .../newview/skins/default/xui/fr/panel_groups.xml | 8 +- indra/newview/skins/default/xui/fr/panel_login.xml | 7 +- .../default/xui/fr/panel_preferences_chat.xml | 38 +-- .../default/xui/fr/panel_preferences_general.xml | 14 +- .../default/xui/fr/panel_preferences_graphics1.xml | 30 +- .../skins/default/xui/fr/panel_region_covenant.xml | 28 +- .../skins/default/xui/fr/panel_region_debug.xml | 47 ++-- .../skins/default/xui/fr/panel_region_estate.xml | 24 +- .../skins/default/xui/fr/panel_region_general.xml | 34 +-- .../skins/default/xui/fr/panel_region_terrain.xml | 22 +- .../skins/default/xui/fr/panel_region_texture.xml | 32 +-- .../skins/default/xui/fr/panel_status_bar.xml | 19 +- .../newview/skins/default/xui/fr/role_actions.xml | 179 ++++++------ indra/newview/skins/default/xui/fr/strings.xml | 11 +- .../newview/skins/default/xui/ja/floater_about.xml | 8 +- indra/newview/skins/default/xui/ja/floater_im.xml | 39 +-- .../default/xui/ja/floater_preview_gesture.xml | 65 ++--- .../skins/default/xui/ja/floater_snapshot.xml | 59 ++-- .../newview/skins/default/xui/ja/floater_tools.xml | 2 +- indra/newview/skins/default/xui/ja/panel_login.xml | 13 +- .../default/xui/ja/panel_preferences_chat.xml | 71 +++-- .../default/xui/ja/panel_preferences_general.xml | 4 +- .../default/xui/ja/panel_preferences_graphics1.xml | 2 +- indra/newview/skins/default/xui/ja/strings.xml | 33 ++- 122 files changed, 1864 insertions(+), 1645 deletions(-) (limited to 'indra') diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index ac568798cf..5a9f2ba227 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -34,7 +34,7 @@ const S32 LL_VERSION_MAJOR = 1; const S32 LL_VERSION_MINOR = 21; -const S32 LL_VERSION_PATCH = 3; +const S32 LL_VERSION_PATCH = 5; const S32 LL_VERSION_BUILD = 97417; const char * const LL_CHANNEL = "Second Life Release"; diff --git a/indra/llmessage/llmessagetemplate.h b/indra/llmessage/llmessagetemplate.h index 82421b1f5a..69040cc288 100644 --- a/indra/llmessage/llmessagetemplate.h +++ b/indra/llmessage/llmessagetemplate.h @@ -300,7 +300,7 @@ public: ~LLMessageTemplate() { for_each(mMemberBlocks.begin(), mMemberBlocks.end(), DeletePointer()); -} + } void addBlock(LLMessageBlock *blockp) { diff --git a/indra/llmessage/llmessagetemplateparser.cpp b/indra/llmessage/llmessagetemplateparser.cpp index 86662c5342..750c6a0180 100644 --- a/indra/llmessage/llmessagetemplateparser.cpp +++ b/indra/llmessage/llmessagetemplateparser.cpp @@ -528,7 +528,7 @@ LLMessageTemplate * LLTemplateParser::parseMessage(LLTemplateTokenizer & tokens) else if (tokens.want("UDPBlackListed")) { templatep->setDeprecation(MD_UDPBLACKLISTED); - } + } else if (tokens.want("NotDeprecated")) { // this is the default value, but it can't hurt to set it twice diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp index 70c306c060..a721f2848c 100644 --- a/indra/llmessage/lltemplatemessagebuilder.cpp +++ b/indra/llmessage/lltemplatemessagebuilder.cpp @@ -60,7 +60,6 @@ LLTemplateMessageBuilder::~LLTemplateMessageBuilder() mCurrentSMessageData = NULL; } - // virtual void LLTemplateMessageBuilder::newMessage(const char *name) { diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp index 822051d363..5016665343 100644 --- a/indra/llmessage/lltemplatemessagereader.cpp +++ b/indra/llmessage/lltemplatemessagereader.cpp @@ -791,7 +791,6 @@ bool LLTemplateMessageReader::isTrusted() const return mCurrentRMessageTemplate->getTrust() == MT_TRUST; } -//virtual bool LLTemplateMessageReader::isBanned(bool trustedSource) const { return mCurrentRMessageTemplate->isBanned(trustedSource); @@ -799,7 +798,7 @@ bool LLTemplateMessageReader::isBanned(bool trustedSource) const bool LLTemplateMessageReader::isUdpBanned() const { - return mCurrentRMessageTemplate->isUdpBanned(); + return mCurrentRMessageTemplate->isUdpBanned(); } //virtual diff --git a/indra/llmessage/lltemplatemessagereader.h b/indra/llmessage/lltemplatemessagereader.h index 268afa3ef6..df2c681f77 100644 --- a/indra/llmessage/lltemplatemessagereader.h +++ b/indra/llmessage/lltemplatemessagereader.h @@ -110,6 +110,7 @@ public: bool isTrusted() const; bool isBanned(bool trusted_source) const; bool isUdpBanned() const; + private: void getData(const char *blockname, const char *varname, void *datap, diff --git a/indra/llmessage/llurlrequest.cpp b/indra/llmessage/llurlrequest.cpp index ff6ec9f077..518e54b79c 100644 --- a/indra/llmessage/llurlrequest.cpp +++ b/indra/llmessage/llurlrequest.cpp @@ -503,27 +503,29 @@ static size_t headerCallback(void* data, size_t size, size_t nmemb, void* user) // Per HTTP spec the first header line must be the status line. if (!complete->haveHTTPStatus()) { - std::string::iterator end = header.end(); - std::string::iterator pos1 = std::find(header.begin(), end, ' '); - if (pos1 != end) ++pos1; - std::string::iterator pos2 = std::find(pos1, end, ' '); - if (pos2 != end) ++pos2; - std::string::iterator pos3 = std::find(pos2, end, '\r'); - - std::string version(header.begin(), pos1); - std::string status(pos1, pos2); - std::string reason(pos2, pos3); - - int statusCode = atoi(status.c_str()); - if (statusCode > 0) + if (header.substr(0,5) == "HTTP/") { - complete->httpStatus((U32)statusCode, reason); - } - else - { - llwarns << "Unable to parse http response status line: " - << header << llendl; - complete->httpStatus(499,"Unable to parse status line."); + std::string::iterator end = header.end(); + std::string::iterator pos1 = std::find(header.begin(), end, ' '); + if (pos1 != end) ++pos1; + std::string::iterator pos2 = std::find(pos1, end, ' '); + if (pos2 != end) ++pos2; + std::string::iterator pos3 = std::find(pos2, end, '\r'); + + std::string version(header.begin(), pos1); + std::string status(pos1, pos2); + std::string reason(pos2, pos3); + + int statusCode = atoi(status.c_str()); + if (statusCode >= 300 && statusCode < 400) + { + // This is a redirect, ignore it and all headers + // until we find a normal status code. + } + else if (statusCode > 0) + { + complete->httpStatus((U32)statusCode, reason); + } } return header_len; } diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp index abd9467602..dd7818c470 100644 --- a/indra/llmessage/message.cpp +++ b/indra/llmessage/message.cpp @@ -754,11 +754,12 @@ BOOL LLMessageSystem::checkMessages( S64 frame_count ) clearReceiveState(); valid_packet = FALSE; } + if( valid_packet && mTemplateMessageReader->isUdpBanned()) { llwarns << "Received UDP black listed message " - << mTemplateMessageReader->getMessageName() - << " from " << host << llendl; + << mTemplateMessageReader->getMessageName() + << " from " << host << llendl; clearReceiveState(); valid_packet = FALSE; } @@ -766,7 +767,6 @@ BOOL LLMessageSystem::checkMessages( S64 frame_count ) if( valid_packet ) { logValidMsg(cdp, host, recv_reliable, recv_resent, (BOOL)(acks>0) ); - valid_packet = mTemplateMessageReader->readMessage(buffer, host); } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 49202f206c..07fa71ce38 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -10039,7 +10039,7 @@ Type Boolean Value - 1 + 0 WaterEditPresets diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 770fa0ad56..aed88497ee 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1730,7 +1730,7 @@ bool LLAppViewer::initConfiguration() OSMessageBox( msg.str().c_str(), - NULL, + LLStringUtil::null, OSMB_OK); return false; @@ -2670,7 +2670,7 @@ bool LLAppViewer::initCache() std::string cache_dir = gDirUtilp->getOSUserAppDir(); std::string new_cache_dir = gDirUtilp->getOSCacheDir(); cache_dir = cache_dir + "/cache"; - new_cache_dir = new_cache_dir + "/" + gSecondLife; + new_cache_dir = new_cache_dir + "/SecondLife"; if (gDirUtilp->fileExists(cache_dir)) { gDirUtilp->setCacheDir(cache_dir); diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 87bf1c212d..76271a65bb 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -3450,7 +3450,9 @@ void LLSelectMgr::deselectAllIfTooFar() } LLVector3d selectionCenter = getSelectionCenterGlobal(); - if (gSavedSettings.getBOOL("LimitSelectDistance") + if (gSavedSettings.getBOOL("LimitSelectDistance") + && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar()) + && !mSelectedObjects->isAttachment() && !selectionCenter.isExactlyZero()) { F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 1e3c64226f..b4714e5354 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -839,10 +839,6 @@ void LLTextureCacheWorker::finishWork(S32 param, bool completed) { delete[] mReadData; mReadData = NULL; - if (mDataSize != 0) - { - llinfos << "Read Failed. mDataSize = " << mDataSize << llendl; - } } } else @@ -1557,7 +1553,7 @@ bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id) void LLTextureCache::removeFromCache(const LLUUID& id) { - llwarns << "Removing texture from cache: " << id << llendl; + //llwarns << "Removing texture from cache: " << id << llendl; if (!mReadOnly) { removeHeaderCacheEntry(id); diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index f824ce4861..735114567c 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -400,6 +400,14 @@ void LLToolGrab::startGrab() mGrabHiddenOffsetFromCamera = mDragStartFromCamera; mGrabTimer.reset(); + + mLastUVCoords = mGrabPick.mUVCoords; + mLastSTCoords = mGrabPick.mSTCoords; + mLastFace = mGrabPick.mObjectFace; + mLastIntersection = mGrabPick.mIntersection; + mLastNormal = mGrabPick.mNormal; + mLastBinormal = mGrabPick.mBinormal; + mLastGrabPos = LLVector3(-1.f, -1.f, -1.f); } @@ -797,26 +805,54 @@ void LLToolGrab::handleHoverNonPhysical(S32 x, S32 y, MASK mask) grab_pos_region = objectp->getRegion()->getPosRegionFromGlobal( grab_point_global ); } - LLMessageSystem *msg = gMessageSystem; - msg->newMessageFast(_PREHASH_ObjectGrabUpdate); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - msg->nextBlockFast(_PREHASH_ObjectData); - msg->addUUIDFast(_PREHASH_ObjectID, objectp->getID() ); - msg->addVector3Fast(_PREHASH_GrabOffsetInitial, mGrabOffsetFromCenterInitial ); - msg->addVector3Fast(_PREHASH_GrabPosition, grab_pos_region ); - msg->addU32Fast(_PREHASH_TimeSinceLast, dt_milliseconds ); - msg->nextBlock("SurfaceInfo"); - msg->addVector3("UVCoord", LLVector3(pick.mUVCoords)); - msg->addVector3("STCoord", LLVector3(pick.mSTCoords)); - msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace); - msg->addVector3("Position", pick.mIntersection); - msg->addVector3("Normal", pick.mNormal); - msg->addVector3("Binormal", pick.mBinormal); - msg->sendMessage( objectp->getRegion()->getHost() ); + // only send message if something has changed since last message + + BOOL changed_since_last_update = FALSE; + + // test if touch data needs to be updated + if ((pick.mObjectFace != mLastFace) || + (pick.mUVCoords != mLastUVCoords) || + (pick.mSTCoords != mLastSTCoords) || + (pick.mIntersection != mLastIntersection) || + (pick.mNormal != mLastNormal) || + (pick.mBinormal != mLastBinormal) || + (grab_pos_region != mLastGrabPos)) + { + changed_since_last_update = TRUE; + } + if (changed_since_last_update) + { + LLMessageSystem *msg = gMessageSystem; + msg->newMessageFast(_PREHASH_ObjectGrabUpdate); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); + msg->nextBlockFast(_PREHASH_ObjectData); + msg->addUUIDFast(_PREHASH_ObjectID, objectp->getID() ); + msg->addVector3Fast(_PREHASH_GrabOffsetInitial, mGrabOffsetFromCenterInitial ); + msg->addVector3Fast(_PREHASH_GrabPosition, grab_pos_region ); + msg->addU32Fast(_PREHASH_TimeSinceLast, dt_milliseconds ); + msg->nextBlock("SurfaceInfo"); + msg->addVector3("UVCoord", LLVector3(pick.mUVCoords)); + msg->addVector3("STCoord", LLVector3(pick.mSTCoords)); + msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace); + msg->addVector3("Position", pick.mIntersection); + msg->addVector3("Normal", pick.mNormal); + msg->addVector3("Binormal", pick.mBinormal); + + msg->sendMessage( objectp->getRegion()->getHost() ); + + mLastUVCoords = pick.mUVCoords; + mLastSTCoords = pick.mSTCoords; + mLastFace = pick.mObjectFace; + mLastIntersection = pick.mIntersection; + mLastNormal= pick.mNormal; + mLastBinormal= pick.mBinormal; + mLastGrabPos = grab_pos_region; + } + // update point-at / look-at if (pick.mObjectFace != -1) // if the intersection was on the surface of the obejct { diff --git a/indra/newview/lltoolgrab.h b/indra/newview/lltoolgrab.h index 696ce0742a..eb16a85fb3 100644 --- a/indra/newview/lltoolgrab.h +++ b/indra/newview/lltoolgrab.h @@ -118,6 +118,14 @@ private: BOOL mOutsideSlop; // has mouse moved outside center 5 pixels? BOOL mDeselectedThisClick; + S32 mLastFace; + LLVector2 mLastUVCoords; + LLVector2 mLastSTCoords; + LLVector3 mLastIntersection; + LLVector3 mLastNormal; + LLVector3 mLastBinormal; + LLVector3 mLastGrabPos; + BOOL mSpinGrabbing; LLQuaternion mSpinRotation; diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index 96e6da76b6..899ad2c0d6 100644 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -386,7 +386,7 @@ void LLViewerJoystick::agentRotate(F32 pitch_inc, F32 yaw_inc) } // ----------------------------------------------------------------------------- -void LLViewerJoystick::resetDeltas(S32 axis[], bool flycam_and_build_mode) +void LLViewerJoystick::resetDeltas(S32 axis[]) { for (U32 i = 0; i < 6; i++) { @@ -394,13 +394,6 @@ void LLViewerJoystick::resetDeltas(S32 axis[], bool flycam_and_build_mode) sDelta[i] = 0.f; } - if (flycam_and_build_mode) - { - sLastDelta[X_I] /= BUILDMODE_FLYCAM_T_SCALE; - sLastDelta[Y_I] /= BUILDMODE_FLYCAM_T_SCALE; - sLastDelta[Z_I] /= BUILDMODE_FLYCAM_T_SCALE; - } - sLastDelta[6] = sDelta[6] = 0.f; mResetFlag = false; } @@ -755,7 +748,7 @@ void LLViewerJoystick::moveFlycam(bool reset) sFlycamRotation = LLViewerCamera::getInstance()->getQuaternion(); sFlycamZoom = LLViewerCamera::getInstance()->getView(); - resetDeltas(axis, in_build_mode); + resetDeltas(axis); return; } diff --git a/indra/newview/llviewerjoystick.h b/indra/newview/llviewerjoystick.h index 82549cb2dd..c4dd8cfc5a 100644 --- a/indra/newview/llviewerjoystick.h +++ b/indra/newview/llviewerjoystick.h @@ -81,7 +81,7 @@ protected: void agentFly(F32 inc); void agentRotate(F32 pitch_inc, F32 turn_inc); void agentJump(); - void resetDeltas(S32 axis[], bool flycam_and_build = false); + void resetDeltas(S32 axis[]); #if LIB_NDOF static NDOF_HotPlugResult HotPlugAddCallback(NDOF_Device *dev); static void HotPlugRemovalCallback(NDOF_Device *dev); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d11598100e..7c78a26367 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -4934,13 +4934,20 @@ class LLToolsLookAtSelection : public view_listener_t LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - selection_bbox.getCenterAgent(); obj_to_cam.normVec(); + LLUUID object_id; + if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()) + { + object_id = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID; + } if (zoom) { - gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), LLSelectMgr::getInstance()->getSelectionCenterGlobal(), LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID ); + gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), + LLSelectMgr::getInstance()->getSelectionCenterGlobal(), + object_id ); } else { - gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID ); + gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id ); } } return true; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 72bc991a24..2278527bc9 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -862,7 +862,8 @@ void open_offer(const std::vector& items, const std::string& from_name) if(gSavedSettings.getBOOL("ShowInInventory") && asset_type != LLAssetType::AT_CALLINGCARD && - item->getInventoryType() != LLInventoryType::IT_ATTACHMENT) + item->getInventoryType() != LLInventoryType::IT_ATTACHMENT && + !from_name.empty()) { LLInventoryView::showAgentInventory(TRUE); } diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index 9107b3ae8a..7c9b2427d2 100644 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -1,9 +1,9 @@ - Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, Ben, Bunny, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Hunter, Ian, Jeff, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, BillTodd, Ryan, Zach, Sarah, Nova, Otakon, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, DanceStar, Jeska, Hungry, Torley, Kona, Callum, Charity, Ventrella, Jack, Uncle, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Monroe, David, Tess, Lizzie, Patsy, Pony, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, James, Katie, Dawn, Katt, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn und vielen anderen. + Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ und vielen anderen. -Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen:aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf +Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation @@ -21,12 +21,12 @@ SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi Copyright (C) 2000 Epinions, Inc. zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler. -Alle Rechte vorbehalten.Details siehe licenses.txt. +Alle Rechte vorbehalten. Details siehe licenses.txt. -Voice-Chat-Audiocoding:Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C) +Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C) -Was geschieht, wenn Träume aufgeschoben werden?- Langston Hughes +Wir können nur eine kurze Distanz in die Zukunft blicken, aber dort können wir eine Menge sehen, was getan werden muss. --Alan Turing Sie befinden sich in [POSITION] diff --git a/indra/newview/skins/default/xui/de/floater_color_picker.xml b/indra/newview/skins/default/xui/de/floater_color_picker.xml index a6f15152f0..c540ad3756 100644 --- a/indra/newview/skins/default/xui/de/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/de/floater_color_picker.xml @@ -26,7 +26,7 @@ Aktuelle Farbe: -(Unten ziehen, +(Nach unten ziehen, um zu speichern.) diff --git a/indra/newview/skins/default/xui/de/floater_im.xml b/indra/newview/skins/default/xui/de/floater_im.xml index 3d2b7452e1..9b9bbd0c64 100644 --- a/indra/newview/skins/default/xui/de/floater_im.xml +++ b/indra/newview/skins/default/xui/de/floater_im.xml @@ -41,6 +41,6 @@ Sie wurden von der Gruppe ausgeschlossen. - Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen + Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen. diff --git a/indra/newview/skins/default/xui/de/floater_inspect.xml b/indra/newview/skins/default/xui/de/floater_inspect.xml index 7c65c4fc2f..e0f43df0c9 100644 --- a/indra/newview/skins/default/xui/de/floater_inspect.xml +++ b/indra/newview/skins/default/xui/de/floater_inspect.xml @@ -1,14 +1,14 @@ - + - - + +