diff --git a/doc/contributions.txt b/doc/contributions.txt index 68ff7a13d2fe5bf51e08783117832fc314fac4e0..4ab7284b72f7f6a93c019153d79ab125b0a0b525 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -185,6 +185,7 @@ Carjay McGinnis Catherine Pfeffer VWR-1282 VWR-8624 + VWR-10854 Celierra Darling VWR-1274 VWR-6975 @@ -311,6 +312,7 @@ Iskar Ariantho VWR-1223 VWR-11759 Jacek Antonelli + SNOW-388 VWR-165 VWR-188 VWR-427 @@ -404,6 +406,7 @@ Michelle2 Zenovka Mm Alder VWR-197 VWR-3777 + VWR-4232 VWR-4794 VWR-13578 Mr Greggan @@ -634,6 +637,8 @@ Teardrops Fall Techwolf Lupindo SNOW-92 SNOW-649 + SNOW-680 + SNOW-681 VWR-12385 tenebrous pau VWR-247 @@ -663,6 +668,8 @@ Tue Torok CT-74 Vadim Bigbear VWR-2681 +Vector Hastings + VWR-8726 Vixen Heron VWR-2710 CT-88 diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 46ae879aeca2f3922c1873903cf022f66f20a4d4..6285df31c0e03ae0cce05279e3b8fb9681be7051 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2787,6 +2787,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>EffectScriptChatParticles</key> + <map> + <key>Comment</key> + <string>1 = normal behavior, 0 = disable display of swirling lights when scripts communicate</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> <key>EnableRippleWater</key> <map> <key>Comment</key> diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp index bb851a349e4a9fe4d8e0639febe1966e0350b715..74dfede23ec4f803d03d40552ddc9c69cbdfd7c7 100644 --- a/indra/newview/llfloaterperms.cpp +++ b/indra/newview/llfloaterperms.cpp @@ -115,7 +115,7 @@ U32 LLFloaterPerms::getEveryonePerms(std::string prefix) //static U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix) { - U32 flags = 0; + U32 flags = PERM_MOVE; if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") ) { flags |= PERM_COPY; diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index f58f704ff29a4ef213a8d79a26f553df8da3415e..278fee799adcd272008a99681e10aa41ec7a2ac3 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -35,6 +35,7 @@ #include "llagentcamera.h" #include "llcallbacklist.h" #include "llcriticaldamp.h" +#include "llfloaterperms.h" #include "llui.h" #include "llfocusmgr.h" #include "llbutton.h" @@ -999,8 +1000,8 @@ void LLSnapshotLivePreview::saveTexture() LLFolderType::FT_SNAPSHOT_CATEGORY, LLInventoryType::IT_SNAPSHOT, PERM_ALL, // Note: Snapshots to inventory is a special case of content upload - PERM_NONE, // that ignores the user's premissions preferences and continues to - PERM_NONE, // always use these fairly permissive hard-coded initial perms. - MG + LLFloaterPerms::getGroupPerms(), // that is more permissive than other uploads + LLFloaterPerms::getEveryonePerms(), "Snapshot : " + pos_string, callback, expected_upload_cost, userdata); gViewerWindow->playSnapshotAnimAndSound(); diff --git a/indra/newview/llhudeffectbeam.cpp b/indra/newview/llhudeffectbeam.cpp index 078ccff2d0f54b96b520fa37595546c610d7e91a..37b7b2e75dc6abe3b0139c1ed17f7878a0b7ded9 100644 --- a/indra/newview/llhudeffectbeam.cpp +++ b/indra/newview/llhudeffectbeam.cpp @@ -305,6 +305,11 @@ void LLHUDEffectBeam::render() } } +void LLHUDEffectBeam::renderForTimer() +{ + render(); +} + void LLHUDEffectBeam::setupParticle(const S32 i) { LLVector3d start_pos_global; diff --git a/indra/newview/llhudeffectbeam.h b/indra/newview/llhudeffectbeam.h index a700e4e6578a132983c455810b44883b0c4dfd27..fdee5178af266059a04c808d8bddfab8c78bbb81 100644 --- a/indra/newview/llhudeffectbeam.h +++ b/indra/newview/llhudeffectbeam.h @@ -52,6 +52,7 @@ protected: ~LLHUDEffectBeam(); /*virtual*/ void render(); + /*virtual*/ void renderForTimer(); /*virtual*/ void packData(LLMessageSystem *mesgsys); /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); private: diff --git a/indra/newview/llhudeffecttrail.cpp b/indra/newview/llhudeffecttrail.cpp index 9072707974053e2e11d5f14df6acc61287bf89db..39b526c1b5a652fc4ed9e6a8b78720dda872db62 100644 --- a/indra/newview/llhudeffecttrail.cpp +++ b/indra/newview/llhudeffecttrail.cpp @@ -280,3 +280,8 @@ void LLHUDEffectSpiral::render() return; } } + +void LLHUDEffectSpiral::renderForTimer() +{ + render(); +} diff --git a/indra/newview/llhudeffecttrail.h b/indra/newview/llhudeffecttrail.h index bade3ff997f0e031c26e3a8a53c0d1b11472bdc6..6f5a328c6364e4305698518a62215dec4a1960d9 100644 --- a/indra/newview/llhudeffecttrail.h +++ b/indra/newview/llhudeffecttrail.h @@ -62,6 +62,7 @@ protected: ~LLHUDEffectSpiral(); /*virtual*/ void render(); + /*virtual*/ void renderForTimer(); /*virtual*/ void packData(LLMessageSystem *mesgsys); /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); private: diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 6af0ae2b6a14b804075aa74d98cf21d0ec8415d7..3e814a0773efbd06c5459cbc3ac96850c1b93db7 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -304,6 +304,27 @@ void LLHUDObject::renderAllForSelect() } } +// static +void LLHUDObject::renderAllForTimer() +{ + LLHUDObject *hud_objp; + + hud_object_list_t::iterator object_it; + for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); ) + { + hud_object_list_t::iterator cur_it = object_it++; + hud_objp = (*cur_it); + if (hud_objp->getNumRefs() == 1) + { + sHUDObjects.erase(cur_it); + } + else if (hud_objp->isVisible()) + { + hud_objp->renderForTimer(); + } + } +} + // static void LLHUDObject::sortObjects() { diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h index ff70b6a52f981358baee4ba85a3a085c3abff115..97145b9a84d40d60f66cfc0e72ea1e2d749876b9 100644 --- a/indra/newview/llhudobject.h +++ b/indra/newview/llhudobject.h @@ -69,6 +69,7 @@ public: static void updateAll(); static void renderAll(); static void renderAllForSelect(); + static void renderAllForTimer(); static void cleanupHUDObjects(); @@ -100,6 +101,7 @@ protected: virtual void render() = 0; virtual void renderForSelect() {}; + virtual void renderForTimer() {}; protected: U8 mType; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index c9b60bf7f5e213920884db082ffe355ed93393ee..fb60b1ece712631c611a52cc535c7a6afdb9e336 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -5629,6 +5629,10 @@ void LLSelectMgr::updateSelectionCenter() LLVector3d select_center; // keep a list of jointed objects for showing the joint HUDEffects + // Initialize the bounding box to the root prim, so the BBox orientation + // matches the root prim's (affecting the orientation of the manipulators). + bbox.addBBoxAgent( (mSelectedObjects->getFirstRootObject(TRUE))->getBoundingBoxAgent() ); + std::vector < LLViewerObject *> jointed_objects; for (LLObjectSelection::iterator iter = mSelectedObjects->begin(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 82bc084f6820f144c54fe4284062497ae1c99fd3..781e324e25dc27c616538fe600d7376800545c73 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2964,7 +2964,8 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) // Make swirly things only for talking objects. (not script debug messages, though) if (chat.mSourceType == CHAT_SOURCE_OBJECT - && chat.mChatType != CHAT_TYPE_DEBUG_MSG) + && chat.mChatType != CHAT_TYPE_DEBUG_MSG + && gSavedSettings.getBOOL("EffectScriptChatParticles") ) { LLPointer<LLViewerPartSourceChat> psc = new LLViewerPartSourceChat(chatter->getPositionAgent()); psc->setSourceObject(chatter); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index e4c2ca9ae39ec5a408a5209332dfabbcc1095093..1ee3b84b5e7666ae4aeeac587710b4b410bc4252 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -3211,11 +3211,24 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) LLVertexBuffer::unbind(); - if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) + if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred) { - // Render debugging beacons. - gObjectList.renderObjectBeacons(); - gObjectList.resetObjectBeacons(); + if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) + { + // Render debugging beacons. + gObjectList.renderObjectBeacons(); + gObjectList.resetObjectBeacons(); + } + else + { + // Make sure particle effects disappear + LLHUDObject::renderAllForTimer(); + } + } + else + { + // Make sure particle effects disappear + LLHUDObject::renderAllForTimer(); } LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");