diff --git a/build.sh b/build.sh index 8ca3208087f6a4729a1f8a991e86f08832a40a26..00a9baec0a1d5aa480b5a57d392e66b6e8984459 100755 --- a/build.sh +++ b/build.sh @@ -268,6 +268,12 @@ then else upload_item installer "$package" binary/octet-stream upload_item quicklink "$package" binary/octet-stream + mapfilepath=$build_dir/newview + gzip $mapfilepath/secondlife-bin.MAP + mapfile=secondlife-bin-$arch.MAP.gz + mv $mapfilepath/secondlife-bin.MAP.gz $mapfilepath/$mapfile + upload_item mapfile "$mapfilepath/$mapfile" binary/octet-stream + echo "Uploaded mapfile" [ -f summary.json ] && upload_item installer summary.json text/plain # Upload crash reporter files. diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 4d295ac5e566ee0de5564104d4fa3beaeeb96ae0..04d67b51086141e64cef41b97c5654f1247a0bce 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1550,7 +1550,7 @@ if (WINDOWS) #LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:\"__tcmalloc\"" LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:__tcmalloc " LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO" - LINK_FLAGS_RELEASE "/FORCE:MULTIPLE" + LINK_FLAGS_RELEASE "/FORCE:MULTIPLE /MAP\"secondlife-bin.MAP\" /OPT:REF" ) if(USE_PRECOMPILED_HEADERS) set_target_properties( @@ -1755,6 +1755,17 @@ if (WINDOWS) #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2) endif (PACKAGE) +elseif (DARWIN) + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" + ) +else (WINDOWS) + # Linux + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Wl,--Map=${VIEWER_BINARY_NAME}.MAP" + ) endif (WINDOWS) # *NOTE - this list is very sensitive to ordering, test carefully on all diff --git a/indra/newview/llfloaterpathfindingcharacters.cpp b/indra/newview/llfloaterpathfindingcharacters.cpp index b4a1394b06503d5eefba4bf07414ef3f39b9dbc9..60e66174f361c554fbb4ece461981a1fb5d9cad7 100644 --- a/indra/newview/llfloaterpathfindingcharacters.cpp +++ b/indra/newview/llfloaterpathfindingcharacters.cpp @@ -160,11 +160,11 @@ LLSD LLFloaterPathfindingCharacters::convertObjectsIntoScrollListData(const LLPa return scrollListData; } -void LLFloaterPathfindingCharacters::updateControls() +void LLFloaterPathfindingCharacters::updateControlsOnScrollListChange() { - LLFloaterPathfindingObjects::updateControls(); - updateOnScrollListChange(); - updateStateOnActionFields(); + LLFloaterPathfindingObjects::updateControlsOnScrollListChange(); + updateStateOnDisplayControls(); + showSelectedCharacterCapsules(); } S32 LLFloaterPathfindingCharacters::getNameColumnIndex() const @@ -233,7 +233,7 @@ LLSD LLFloaterPathfindingCharacters::buildCharacterScrollListData(const LLPathfi return element; } -void LLFloaterPathfindingCharacters::updateStateOnActionFields() +void LLFloaterPathfindingCharacters::updateStateOnDisplayControls() { int numSelectedItems = getNumSelectedObjects();; #ifndef SERVER_SIDE_CHARACTER_SHAPE_ROLLOUT_COMPLETE @@ -249,7 +249,7 @@ void LLFloaterPathfindingCharacters::updateStateOnActionFields() } } -void LLFloaterPathfindingCharacters::updateOnScrollListChange() +void LLFloaterPathfindingCharacters::showSelectedCharacterCapsules() { // Hide any previous capsule hideCapsule(); diff --git a/indra/newview/llfloaterpathfindingcharacters.h b/indra/newview/llfloaterpathfindingcharacters.h index a86a9700b15ad439c62ff3d4885c966832579aef..be178d2746ee4bfc1f1c3671dadf43c8c4dad0aa 100644 --- a/indra/newview/llfloaterpathfindingcharacters.h +++ b/indra/newview/llfloaterpathfindingcharacters.h @@ -61,7 +61,7 @@ class LLFloaterPathfindingCharacters : public LLFloaterPathfindingObjects virtual LLSD convertObjectsIntoScrollListData(const LLPathfindingObjectListPtr pObjectListPtr); - virtual void updateControls(); + virtual void updateControlsOnScrollListChange(); virtual S32 getNameColumnIndex() const; virtual const LLColor4 &getBeaconColor() const; @@ -73,8 +73,8 @@ class LLFloaterPathfindingCharacters : public LLFloaterPathfindingObjects LLSD buildCharacterScrollListData(const LLPathfindingCharacter *pCharacterPtr) const; - void updateStateOnActionFields(); - void updateOnScrollListChange(); + void updateStateOnDisplayControls(); + void showSelectedCharacterCapsules(); void showCapsule() const; void hideCapsule() const; diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp index 8488ee1aa3bdac066e4fee5687e3a747eb217046..a7b856b271f972bed7a1aea5c635937ddd9f8903 100644 --- a/indra/newview/llfloaterpathfindinglinksets.cpp +++ b/indra/newview/llfloaterpathfindinglinksets.cpp @@ -250,9 +250,9 @@ LLSD LLFloaterPathfindingLinksets::convertObjectsIntoScrollListData(const LLPath return scrollListData; } -void LLFloaterPathfindingLinksets::updateControls() +void LLFloaterPathfindingLinksets::updateControlsOnScrollListChange() { - LLFloaterPathfindingObjects::updateControls(); + LLFloaterPathfindingObjects::updateControlsOnScrollListChange(); updateEditFieldValues(); updateStateOnEditFields(); updateStateOnEditLinksetUse(); diff --git a/indra/newview/llfloaterpathfindinglinksets.h b/indra/newview/llfloaterpathfindinglinksets.h index 8c464dc1d5e70ad5a4088b384e5e7748c9e2ecc5..c9ae5a059a896a8df4a55dedf0bebf69211bbc43 100644 --- a/indra/newview/llfloaterpathfindinglinksets.h +++ b/indra/newview/llfloaterpathfindinglinksets.h @@ -60,7 +60,7 @@ class LLFloaterPathfindingLinksets : public LLFloaterPathfindingObjects virtual LLSD convertObjectsIntoScrollListData(const LLPathfindingObjectListPtr pObjectListPtr); - virtual void updateControls(); + virtual void updateControlsOnScrollListChange(); virtual S32 getNameColumnIndex() const; virtual const LLColor4 &getBeaconColor() const; diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp index 6f183c78b102e51feba61c6c6c4315e6bc080e74..14fa0ac4282990185dd837a4fe3e91ea8030f3a9 100644 --- a/indra/newview/llfloaterpathfindingobjects.cpp +++ b/indra/newview/llfloaterpathfindingobjects.cpp @@ -348,7 +348,7 @@ void LLFloaterPathfindingObjects::rebuildObjectsScrollList() mObjectsScrollList->selectMultiple(selectedUUIDs); mObjectsScrollList->setScrollPos(origScrollPosition); - updateControls(); + updateControlsOnScrollListChange(); } LLSD LLFloaterPathfindingObjects::convertObjectsIntoScrollListData(const LLPathfindingObjectListPtr pObjectListPtr) @@ -368,11 +368,17 @@ void LLFloaterPathfindingObjects::rebuildScrollListAfterAvatarNameLoads(const LL } } -void LLFloaterPathfindingObjects::updateControls() +void LLFloaterPathfindingObjects::updateControlsOnScrollListChange() { updateMessagingStatus(); - updateStateOnListActionControls(); - updateStateOnEditFields(); + updateStateOnListControls(); + selectScrollListItemsInWorld(); + updateStateOnActionControls(); +} + +void LLFloaterPathfindingObjects::updateControlsOnInWorldSelectionChange() +{ + updateStateOnActionControls(); } S32 LLFloaterPathfindingObjects::getNameColumnIndex() const @@ -491,7 +497,7 @@ LLFloaterPathfindingObjects::EMessagingState LLFloaterPathfindingObjects::getMes void LLFloaterPathfindingObjects::setMessagingState(EMessagingState pMessagingState) { mMessagingState = pMessagingState; - updateControls(); + updateControlsOnScrollListChange(); } void LLFloaterPathfindingObjects::onRefreshObjectsClicked() @@ -539,13 +545,12 @@ void LLFloaterPathfindingObjects::onTeleportClicked() void LLFloaterPathfindingObjects::onScrollListSelectionChanged() { - updateOnScrollListChange(); - updateControls(); + updateControlsOnScrollListChange(); } void LLFloaterPathfindingObjects::onInWorldSelectionListChanged() { - updateControls(); + updateControlsOnInWorldSelectionChange(); } void LLFloaterPathfindingObjects::onRegionBoundaryCrossed() @@ -632,7 +637,7 @@ void LLFloaterPathfindingObjects::updateMessagingStatus() mMessagingStatus->setText((LLStringExplicit)statusText, styleParams); } -void LLFloaterPathfindingObjects::updateStateOnListActionControls() +void LLFloaterPathfindingObjects::updateStateOnListControls() { switch (getMessagingState()) { @@ -665,7 +670,7 @@ void LLFloaterPathfindingObjects::updateStateOnListActionControls() } } -void LLFloaterPathfindingObjects::updateStateOnEditFields() +void LLFloaterPathfindingObjects::updateStateOnActionControls() { int numSelectedItems = mObjectsScrollList->getNumSelected(); bool isEditEnabled = (numSelectedItems > 0); @@ -678,7 +683,7 @@ void LLFloaterPathfindingObjects::updateStateOnEditFields() mTeleportButton->setEnabled(numSelectedItems == 1); } -void LLFloaterPathfindingObjects::updateOnScrollListChange() +void LLFloaterPathfindingObjects::selectScrollListItemsInWorld() { mObjectsSelection.clear(); LLSelectMgr::getInstance()->deselectAll(); diff --git a/indra/newview/llfloaterpathfindingobjects.h b/indra/newview/llfloaterpathfindingobjects.h index cf418b3b71cd4cbd4bf682004846a918c646eda2..88790db12d2a20245eaa4702657d502463bb6da9 100644 --- a/indra/newview/llfloaterpathfindingobjects.h +++ b/indra/newview/llfloaterpathfindingobjects.h @@ -82,7 +82,8 @@ class LLFloaterPathfindingObjects : public LLFloater void rebuildScrollListAfterAvatarNameLoads(const LLUUID &pAvatarId); - virtual void updateControls(); + virtual void updateControlsOnScrollListChange(); + virtual void updateControlsOnInWorldSelectionChange(); virtual S32 getNameColumnIndex() const; virtual const LLColor4 &getBeaconColor() const; @@ -124,9 +125,9 @@ class LLFloaterPathfindingObjects : public LLFloater void handleAvatarNameLoads(const LLUUID &pAvatarId, const LLAvatarName &pAvatarName); void updateMessagingStatus(); - void updateStateOnListActionControls(); - void updateStateOnEditFields(); - void updateOnScrollListChange(); + void updateStateOnListControls(); + void updateStateOnActionControls(); + void selectScrollListItemsInWorld(); LLPathfindingObjectPtr findObject(const LLScrollListItem *pListItem) const; diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index db7371d993cc486d708c0968da9a7ef15f5a8b50..0d8526d3f14ee6e4bf5815a4b9ca0f91c61dcfb9 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -827,7 +827,7 @@ void LLLocationInputCtrl::refreshParcelIcons() bool allow_scripts = vpm->allowAgentScripts(agent_region, current_parcel); bool allow_damage = vpm->allowAgentDamage(agent_region, current_parcel); bool see_avs = current_parcel->getSeeAVs(); - bool pathfinding_dynamic = gAgent.getRegion()->dynamicPathfindingEnabled(); + bool pathfinding_dynamic_enabled = gAgent.getRegion()->dynamicPathfindingEnabled(); // Most icons are "block this ability" mParcelIcon[VOICE_ICON]->setVisible( !allow_voice ); @@ -836,7 +836,7 @@ void LLLocationInputCtrl::refreshParcelIcons() mParcelIcon[BUILD_ICON]->setVisible( !allow_build ); mParcelIcon[SCRIPTS_ICON]->setVisible( !allow_scripts ); mParcelIcon[DAMAGE_ICON]->setVisible( allow_damage ); - mParcelIcon[PATHFINDING_DYNAMIC_ICON]->setVisible( pathfinding_dynamic ); + mParcelIcon[PATHFINDING_DYNAMIC_ICON]->setVisible( !pathfinding_dynamic_enabled ); mDamageText->setVisible(allow_damage); mParcelIcon[SEE_AVATARS_ICON]->setVisible( !see_avs ); diff --git a/indra/newview/llpathfindingmanager.cpp b/indra/newview/llpathfindingmanager.cpp index 16283282fb2b014917759cb5058ef047368172ca..a77d6bcc4c0771e2f06d79d8426fe78d6e0bc9ea 100644 --- a/indra/newview/llpathfindingmanager.cpp +++ b/indra/newview/llpathfindingmanager.cpp @@ -285,10 +285,7 @@ LLPathfindingManager::LLPathfindingManager() mShowNavMeshRebake(false), mCrossingSlot() { - if ( !mCrossingSlot.connected() ) - { - mCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLPathfindingManager::onRegionBoundaryCrossed, this)); - } + } void LLPathfindingManager::onRegionBoundaryCrossed() @@ -616,6 +613,11 @@ LLPathfindingNavMeshPtr LLPathfindingManager::getNavMeshForRegion(LLViewerRegion void LLPathfindingManager::requestGetAgentState() { + if ( !mCrossingSlot.connected() ) + { + mCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLPathfindingManager::onRegionBoundaryCrossed, this)); + } + std::string agentStateURL = getAgentStateURLForCurrentRegion( getCurrentRegion() ); if ( !agentStateURL.empty() ) diff --git a/indra/newview/llpathfindingmanager.h b/indra/newview/llpathfindingmanager.h index 309d7513c6e3adc0f19fc95ce74706b3c32278d9..1de9fd65257537a91df04b01587aa8d3fdd24b3c 100644 --- a/indra/newview/llpathfindingmanager.h +++ b/indra/newview/llpathfindingmanager.h @@ -98,6 +98,7 @@ class LLPathfindingManager : public LLSingleton<LLPathfindingManager> void handleNavMeshRebakeError( U32 pStatus, const std::string &pReason, const std::string &pURL ); void triggerNavMeshRebuild(); void onRegionBoundaryCrossed(); + void requestGetAgentState(); protected: @@ -129,16 +130,13 @@ class LLPathfindingManager : public LLSingleton<LLPathfindingManager> void displayNavMeshRebakePanel(); void hideNavMeshRebakePanel(); - - - void requestGetAgentState(); - void handleAgentStateResult(const LLSD &pContent );//, EAgentState pRequestedAgentState); + void handleAgentStateResult(const LLSD &pContent ); void handleAgentStateError(U32 pStatus, const std::string &pReason, const std::string &pURL); NavMeshMap mNavMeshMap; - + //prep#stinson# set this flag instead of directly showing/hiding the rebake panel BOOL mShowNavMeshRebake; }; diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 6bee373181443a5359405d647dcfbc2e2cb575d4..fd6f6e14d3735eff59cba442ffdd91bc459edaea 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2169,6 +2169,8 @@ bool idle_startup() LLIMFloater::initIMFloater(); display_startup(); + LLPathfindingManager::getInstance()->requestGetAgentState(); + return TRUE; } diff --git a/indra/newview/skins/default/textures/icons/Pathfinding_Dynamic.png b/indra/newview/skins/default/textures/icons/Pathfinding_Dynamic.png index 2c485aef0dd2dc566e4463ee15f8690c8aaa30e4..0622141848d674ff013842bc0554b25679f91c41 100644 Binary files a/indra/newview/skins/default/textures/icons/Pathfinding_Dynamic.png and b/indra/newview/skins/default/textures/icons/Pathfinding_Dynamic.png differ diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index e9151c2db9d5e339e582bc288f9f9fd00dc1b852..ac36736a51191cf241e918bd6cca2f09a2b0a347 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -5786,7 +5786,7 @@ This area has building disabled. You can't build or rez objects here. persist="true" type="notify"> <unique/> - Dynamic pathing is enabled. + Dynamic pathing is not available. </notification> <notification diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index e6af4cf5a6d4d9336051f07aab78c6c43aa01da0..8771d83aa4270d91939a3e75fed0d22f2db7da3c 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -3325,7 +3325,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. <string name="LocationCtrlModerateIconTooltip">Moderate Region</string> <string name="LocationCtrlGeneralIconTooltip">General Region</string> <string name="LocationCtrlSeeAVsTooltip">Avatars visible and chat allowed outside of this parcel</string> - <string name="PathfindingDynamicTooltip">Dynamic Pathfinding Enabled</string> + <string name="PathfindingDynamicTooltip">Dynamic Pathfinding is not available</string> <!-- Strings used by the (currently Linux) auto-updater app --> <string name="UpdaterWindowTitle"> [APP_NAME] Update