summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2007-03-26 17:30:51 +0000
committerJosh Bell <josh@lindenlab.com>2007-03-26 17:30:51 +0000
commit64395d21592ecd35b6f476d38df1a46bd8edc1a8 (patch)
tree540c56abb3a48fd0cc4694c716ee5d2711ef3095 /indra/newview
parent720eab7a32555dabf3562280e86f232465a0e220 (diff)
Effectively: merge 59238:59702 Branch_1-13-4 --> release EXCEPT for the back out (r59497) and re-patch (r59531) of upload-queue, and fixes merged directly from Maintenance.
merge -r 59328:59428 Branch_1-13-4 --> release * address regex needs "s" option to support multiline addresses. Patched previously, not sure how it got dropped. * added new promo code to accommodate printer error * Fix for SL-37108 "SVC-55: look at may be broken" * Paired/reviewed with Qarl * Release notes for Release Notes for 1.13.4(59329) * merge release-candidate@58928 long-live-legacy-particles@59317 -> Branch_1-13-14 SKIP -r 59428:59437 (temporary), 59437:59465 (from release), 59465:59497 (back out of upload-queue) merge -r 59497:59510 Branch_1-13-4 --> release * SL-37932 legacy particle clean up * SL-33228 llParticleSystem( [] ) may not shut down reliably * SL-37909 llParticleSystem([ ]) bug now affects unlinked and root prims SKIP -r 59510:59531 (re-patch of upload-queue) merge -r 59531:59585 Branch_1-13-4 --> release * blacklist and release notes updates SKIP -r 59585:59656 (patches from maintenance) merge -r 59656:59691 Branch_1-13-4 --> release * blacklist and release notes updates SKIP -r 59691:59702 (already ported to release)
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llviewerobject.cpp17
-rw-r--r--indra/newview/llviewerobject.h1
2 files changed, 17 insertions, 1 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index a09ce3011f..bd8ac806f5 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -1406,8 +1406,14 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
// Unpack particle system data
//
if (value & 0x8)
+ {
unpackParticleSource(*dp, owner_id);
-
+ }
+ else
+ {
+ deleteParticleSource();
+ }
+
// Mark all extra parameters not used
std::map<U16, ExtraParameter*>::iterator iter;
for (iter = mExtraParameterList.begin(); iter != mExtraParameterList.end(); ++iter)
@@ -4063,6 +4069,15 @@ void LLViewerObject::unpackParticleSource(LLDataPacker &dp, const LLUUID& owner_
}
}
+void LLViewerObject::deleteParticleSource()
+{
+ if (mPartSourcep.notNull())
+ {
+ mPartSourcep->setDead();
+ mPartSourcep = NULL;
+ }
+}
+
// virtual
void LLViewerObject::updateDrawable(BOOL force_damped)
{
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index 80d3240904..3e885233fd 100644
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -527,6 +527,7 @@ protected:
void unpackParticleSource(const S32 block_num, const LLUUID& owner_id);
void unpackParticleSource(LLDataPacker &dp, const LLUUID& owner_id);
+ void deleteParticleSource();
private:
void setNameValueList(const std::string& list); // clears nv pairs and then individually adds \n separated NV pairs from \0 terminated string