diff options
author | Armin Weatherwax | 2010-12-22 14:28:24 +0100 |
---|---|---|
committer | Armin Weatherwax | 2010-12-22 14:28:24 +0100 |
commit | 1d1482eeec3c26c1eb9c14eba6eb78462f704606 (patch) | |
tree | 4a0b6abec090298a34f02e5b9d99abae892f6247 /linden/indra | |
parent | fix: Bug #721: Search lags (diff) | |
download | meta-impy-1d1482eeec3c26c1eb9c14eba6eb78462f704606.zip meta-impy-1d1482eeec3c26c1eb9c14eba6eb78462f704606.tar.gz meta-impy-1d1482eeec3c26c1eb9c14eba6eb78462f704606.tar.bz2 meta-impy-1d1482eeec3c26c1eb9c14eba6eb78462f704606.tar.xz |
load unloaded-avatar-cloud particle system from LLSD file.
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llmessage/llpartdata.cpp | 90 | ||||
-rw-r--r-- | linden/indra/llmessage/llpartdata.h | 3 | ||||
-rw-r--r-- | linden/indra/newview/app_settings/cloud.xml | 88 | ||||
-rw-r--r-- | linden/indra/newview/llviewermenu.cpp | 15 | ||||
-rw-r--r-- | linden/indra/newview/llviewerobject.cpp | 2 | ||||
-rw-r--r-- | linden/indra/newview/llvoavatar.cpp | 45 | ||||
-rw-r--r-- | linden/indra/newview/llvoavatar.h | 2 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | 7 |
8 files changed, 223 insertions, 29 deletions
diff --git a/linden/indra/llmessage/llpartdata.cpp b/linden/indra/llmessage/llpartdata.cpp index 485bc6a..a2811ab 100644 --- a/linden/indra/llmessage/llpartdata.cpp +++ b/linden/indra/llmessage/llpartdata.cpp | |||
@@ -347,3 +347,93 @@ void LLPartSysData::setPartAccel(const LLVector3 &accel) | |||
347 | mPartAccel.mV[VY] = llclamp(accel.mV[VY], -100.f, 100.f); | 347 | mPartAccel.mV[VY] = llclamp(accel.mV[VY], -100.f, 100.f); |
348 | mPartAccel.mV[VZ] = llclamp(accel.mV[VZ], -100.f, 100.f); | 348 | mPartAccel.mV[VZ] = llclamp(accel.mV[VZ], -100.f, 100.f); |
349 | } | 349 | } |
350 | |||
351 | LLSD LLPartSysData::asLLSD() const | ||
352 | { | ||
353 | LLSD sd = LLSD(); | ||
354 | |||
355 | sd["LL_PART_INTERP_COLOR_MASK"] = (LLPartData::LL_PART_INTERP_COLOR_MASK & mPartData.mFlags) ? 1 : 0; | ||
356 | sd["LL_PART_INTERP_SCALE_MASK"] = (LLPartData::LL_PART_INTERP_SCALE_MASK & mPartData.mFlags) ? 1 : 0; | ||
357 | sd["LL_PART_BOUNCE_MASK"] = (LLPartData::LL_PART_BOUNCE_MASK & mPartData.mFlags) ? 1 : 0; | ||
358 | sd["LL_PART_WIND_MASK"] = (LLPartData::LL_PART_WIND_MASK & mPartData.mFlags) ? 1 : 0; | ||
359 | sd["LL_PART_FOLLOW_SRC_MASK"] = (LLPartData::LL_PART_FOLLOW_SRC_MASK & mPartData.mFlags) ? 1 : 0; | ||
360 | sd["LL_PART_FOLLOW_VELOCITY_MASK"] = (LLPartData::LL_PART_FOLLOW_VELOCITY_MASK & mPartData.mFlags) ? 1 : 0; | ||
361 | sd["LL_PART_TARGET_POS_MASK"] = (LLPartData::LL_PART_TARGET_POS_MASK & mPartData.mFlags) ? 1 : 0; | ||
362 | sd["LL_PART_TARGET_LINEAR_MASK"] = (LLPartData::LL_PART_TARGET_LINEAR_MASK & mPartData.mFlags) ? 1 : 0; | ||
363 | sd["LL_PART_EMISSIVE_MASK"] = (LLPartData::LL_PART_EMISSIVE_MASK & mPartData.mFlags) ? 1 : 0; | ||
364 | sd["LL_PART_BEAM_MASK"] = (LLPartData::LL_PART_BEAM_MASK & mPartData.mFlags) ? 1 : 0; | ||
365 | |||
366 | sd["SourceMaxage"] = mPartData.mMaxAge; | ||
367 | sd["Startcolor"] = ll_sd_from_color4(mPartData.mStartColor); | ||
368 | sd["Endcolor"] = ll_sd_from_color4(mPartData.mEndColor); | ||
369 | sd["Startscale"] = ll_sd_from_vector2(mPartData.mStartScale); | ||
370 | sd["Endscale"] = ll_sd_from_vector2(mPartData.mEndScale); | ||
371 | |||
372 | sd["ParticleMaxAge"] = mMaxAge; | ||
373 | sd["ParticleStartAge"] = mStartAge; | ||
374 | |||
375 | |||
376 | sd["LL_PART_SRC_PATTERN_DROP"] = ( mPattern & LL_PART_SRC_PATTERN_DROP) ? 1 : 0; | ||
377 | sd["LL_PART_SRC_PATTERN_EXPLODE"] = ( mPattern & LL_PART_SRC_PATTERN_EXPLODE) ? 1 : 0; | ||
378 | sd["LL_PART_SRC_PATTERN_ANGLE"] = ( mPattern & LL_PART_SRC_PATTERN_ANGLE) ? 1 : 0; | ||
379 | sd["LL_PART_SRC_PATTERN_ANGLE_CONE"] = ( mPattern & LL_PART_SRC_PATTERN_ANGLE_CONE) ? 1 : 0 ; | ||
380 | sd["LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY"] = ( mPattern & LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY) ? 1 : 0; | ||
381 | |||
382 | sd["InnerAngle"] = mInnerAngle; | ||
383 | sd["OuterAngle"] = mOuterAngle; | ||
384 | sd["AngularVelocity"] = ll_sd_from_vector3(mAngularVelocity); | ||
385 | sd["BurstRate"] = mBurstRate; | ||
386 | sd["BurstPartCount"] = mBurstPartCount; | ||
387 | sd["BurstSpeedMin"] = mBurstSpeedMin; | ||
388 | sd["BurstSpeedMax"] = mBurstSpeedMax; | ||
389 | sd["BurstRadius"] = mBurstRadius; | ||
390 | sd["PartImageID"] = mPartImageID.asString(); | ||
391 | sd["TargetId"] = mTargetUUID.asString(); | ||
392 | return sd; | ||
393 | } | ||
394 | |||
395 | bool LLPartSysData::fromLLSD(LLSD& sd) | ||
396 | { | ||
397 | mPartData.mFlags = 0; | ||
398 | if (sd["LL_PART_INTERP_COLOR_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_INTERP_COLOR_MASK; | ||
399 | if (sd["LL_PART_INTERP_SCALE_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_INTERP_SCALE_MASK; | ||
400 | if (sd["LL_PART_BOUNCE_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_BOUNCE_MASK; | ||
401 | if (sd["LL_PART_WIND_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_WIND_MASK; | ||
402 | if (sd["LL_PART_FOLLOW_SRC_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_FOLLOW_SRC_MASK; | ||
403 | if (sd["LL_PART_FOLLOW_VELOCITY_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_FOLLOW_VELOCITY_MASK; | ||
404 | if (sd["LL_PART_TARGET_POS_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_TARGET_POS_MASK; | ||
405 | if (sd["LL_PART_TARGET_LINEAR_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_TARGET_LINEAR_MASK; | ||
406 | if (sd["LL_PART_EMISSIVE_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_EMISSIVE_MASK; | ||
407 | if (sd["LL_PART_BEAM_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_BEAM_MASK; | ||
408 | |||
409 | mPartData.mMaxAge = (F32)sd["SourceMaxage"].asReal(); | ||
410 | mPartData.mStartColor = ll_color4_from_sd(sd["Startcolor"]); | ||
411 | mPartData.mEndColor = ll_color4_from_sd(sd["Endcolor"]); | ||
412 | mPartData.mStartScale = ll_vector2_from_sd(sd["Startscale"]); | ||
413 | mPartData.mEndScale = ll_vector2_from_sd(sd["Endscale"]); | ||
414 | |||
415 | mMaxAge = (F32)sd["ParticleMaxAge"].asReal(); | ||
416 | mStartAge = (F32)sd["ParticleStartAge"].asReal(); | ||
417 | |||
418 | mPattern = 0; | ||
419 | if (sd["LL_PART_SRC_PATTERN_DROP"]) mPattern |= LL_PART_SRC_PATTERN_DROP; | ||
420 | if (sd["LL_PART_SRC_PATTERN_EXPLODE"]) mPattern |= LL_PART_SRC_PATTERN_EXPLODE; | ||
421 | if (sd["LL_PART_SRC_PATTERN_ANGLE"]) mPattern |= LL_PART_SRC_PATTERN_ANGLE; | ||
422 | if (sd["LL_PART_SRC_PATTERN_ANGLE_CONE"]) mPattern |= LL_PART_SRC_PATTERN_ANGLE_CONE; | ||
423 | if (sd["LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY"]) mPattern |= LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY; | ||
424 | |||
425 | mInnerAngle = (F32)sd["InnerAngle"].asReal(); | ||
426 | mOuterAngle = (F32)sd["OuterAngle"].asReal(); | ||
427 | mAngularVelocity = ll_vector3_from_sd(sd["AngularVelocity"]); | ||
428 | mBurstRate = (F32)sd["BurstRate"].asReal(); | ||
429 | int burst_part_count = sd["BurstPartCount"]; | ||
430 | mBurstPartCount = (U8)burst_part_count; | ||
431 | mBurstSpeedMin = (F32)sd["BurstSpeedMin"].asReal(); | ||
432 | mBurstSpeedMax = (F32)sd["BurstSpeedMax"].asReal(); | ||
433 | mBurstRadius = (F32)sd["BurstRadius"].asReal(); | ||
434 | |||
435 | mPartImageID = LLUUID(sd[("PartImageID")].asString()); | ||
436 | mTargetUUID = LLUUID(sd["TargetId"].asString()); | ||
437 | |||
438 | return true; | ||
439 | } \ No newline at end of file | ||
diff --git a/linden/indra/llmessage/llpartdata.h b/linden/indra/llmessage/llpartdata.h index 6dcb311..b7efa95 100644 --- a/linden/indra/llmessage/llpartdata.h +++ b/linden/indra/llmessage/llpartdata.h | |||
@@ -158,6 +158,9 @@ public: | |||
158 | BOOL unpackBlock(const S32 block_num); | 158 | BOOL unpackBlock(const S32 block_num); |
159 | BOOL packBlock(); | 159 | BOOL packBlock(); |
160 | 160 | ||
161 | LLSD asLLSD() const; | ||
162 | bool fromLLSD(LLSD& sd); | ||
163 | |||
161 | static BOOL packNull(); | 164 | static BOOL packNull(); |
162 | static BOOL isNullPS(const S32 block_num); // Returns FALSE if this is a "NULL" particle system (i.e. no system) | 165 | static BOOL isNullPS(const S32 block_num); // Returns FALSE if this is a "NULL" particle system (i.e. no system) |
163 | 166 | ||
diff --git a/linden/indra/newview/app_settings/cloud.xml b/linden/indra/newview/app_settings/cloud.xml new file mode 100644 index 0000000..ff9492b --- /dev/null +++ b/linden/indra/newview/app_settings/cloud.xml | |||
@@ -0,0 +1,88 @@ | |||
1 | <llsd> | ||
2 | <map> | ||
3 | <key>AngularVelocity</key> | ||
4 | <array> | ||
5 | <real>0</real> | ||
6 | <real>0</real> | ||
7 | <real>0</real> | ||
8 | </array> | ||
9 | <key>BurstPartCount</key> | ||
10 | <integer>1</integer> | ||
11 | <key>BurstRadius</key> | ||
12 | <real>0.3</real> | ||
13 | <key>BurstRate</key> | ||
14 | <real>0.02</real> | ||
15 | <key>BurstSpeedMax</key> | ||
16 | <real>1</real> | ||
17 | <key>Endcolor</key> | ||
18 | <array> | ||
19 | <real>0.75</real> | ||
20 | <real>0.47</real> | ||
21 | <real>0.81</real> | ||
22 | <real>0</real> | ||
23 | </array> | ||
24 | <key>Endscale</key> | ||
25 | <array> | ||
26 | <real>0.02</real> | ||
27 | <real>0.02</real> | ||
28 | </array> | ||
29 | <key>InnerAngle</key> | ||
30 | <real>3.1415927410125732421875</real> | ||
31 | <key>LL_PART_BEAM_MASK</key> | ||
32 | <integer>0</integer> | ||
33 | <key>LL_PART_BOUNCE_MASK</key> | ||
34 | <integer>0</integer> | ||
35 | <key>LL_PART_EMISSIVE_MASK</key> | ||
36 | <integer>1</integer> | ||
37 | <key>LL_PART_FOLLOW_SRC_MASK</key> | ||
38 | <integer>0</integer> | ||
39 | <key>LL_PART_FOLLOW_VELOCITY_MASK</key> | ||
40 | <integer>0</integer> | ||
41 | <key>LL_PART_INTERP_COLOR_MASK</key> | ||
42 | <integer>1</integer> | ||
43 | <key>LL_PART_INTERP_SCALE_MASK</key> | ||
44 | <integer>1</integer> | ||
45 | <key>LL_PART_SRC_PATTERN_ANGLE</key> | ||
46 | <integer>0</integer> | ||
47 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE</key> | ||
48 | <integer>1</integer> | ||
49 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY</key> | ||
50 | <integer>0</integer> | ||
51 | <key>LL_PART_SRC_PATTERN_DROP</key> | ||
52 | <integer>0</integer> | ||
53 | <key>LL_PART_SRC_PATTERN_EXPLODE</key> | ||
54 | <integer>0</integer> | ||
55 | <key>LL_PART_TARGET_LINEAR_MASK</key> | ||
56 | <integer>0</integer> | ||
57 | <key>LL_PART_TARGET_POS_MASK</key> | ||
58 | <integer>1</integer> | ||
59 | <key>LL_PART_WIND_MASK</key> | ||
60 | <integer>0</integer> | ||
61 | <key>OuterAngle</key> | ||
62 | <real>0</real> | ||
63 | <key>PartImageID</key> | ||
64 | <string>0000000000000-0000-0000-000000000000</string> | ||
65 | <key>ParticleMaxAge</key> | ||
66 | <real>0</real> | ||
67 | <key>ParticleStartAge</key> | ||
68 | <real>0</real> | ||
69 | <key>SourceMaxage</key> | ||
70 | <real>4</real> | ||
71 | <key>Startcolor</key> | ||
72 | <array> | ||
73 | <real>0.9</real> | ||
74 | <real>0.0</real> | ||
75 | <real>0.8</real> | ||
76 | <real>0.7</real> | ||
77 | </array> | ||
78 | <key>Startscale</key> | ||
79 | <array> | ||
80 | <real>0.8</real> | ||
81 | <real>0.8</real> | ||
82 | </array> | ||
83 | <key>TargetId</key> | ||
84 | <string>00000000-0000-0000-0000-000000000000</string> | ||
85 | <key>BurstSpeedMin</key> | ||
86 | <real>0.1</real> | ||
87 | </map> | ||
88 | </llsd> | ||
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 7f00382..c5d78d8 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -10666,6 +10666,20 @@ class LLAdvancedDumpAvatarLocalTextures : public view_listener_t | |||
10666 | } | 10666 | } |
10667 | }; | 10667 | }; |
10668 | 10668 | ||
10669 | /////////////////////////////////// | ||
10670 | // Reload Avatar Cloud Particles // | ||
10671 | /////////////////////////////////// | ||
10672 | |||
10673 | |||
10674 | class LLAdvancedReloadAvatarCloudParticle : public view_listener_t | ||
10675 | { | ||
10676 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
10677 | { | ||
10678 | LLVOAvatar::initCloud(); | ||
10679 | return true; | ||
10680 | } | ||
10681 | }; | ||
10682 | |||
10669 | /////////// | 10683 | /////////// |
10670 | // Crash // | 10684 | // Crash // |
10671 | /////////// | 10685 | /////////// |
@@ -11453,6 +11467,7 @@ void initialize_menus() | |||
11453 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); | 11467 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); |
11454 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); | 11468 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); |
11455 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); | 11469 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); |
11470 | addMenu(new LLAdvancedReloadAvatarCloudParticle(), "Advanced.ReloadAvatarCloudParticle"); | ||
11456 | 11471 | ||
11457 | // Advanced > Crash | 11472 | // Advanced > Crash |
11458 | addMenu(new LLAdvancedCrash(), "Advanced.Crash"); | 11473 | addMenu(new LLAdvancedCrash(), "Advanced.Crash"); |
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp index a2be26a..65c1d11 100644 --- a/linden/indra/newview/llviewerobject.cpp +++ b/linden/indra/newview/llviewerobject.cpp | |||
@@ -4206,7 +4206,7 @@ void LLViewerObject::setParticleSource(const LLPartSysData& particle_parameters, | |||
4206 | LLViewerImage* image; | 4206 | LLViewerImage* image; |
4207 | if (mPartSourcep->mPartSysData.mPartImageID == LLUUID::null) | 4207 | if (mPartSourcep->mPartSysData.mPartImageID == LLUUID::null) |
4208 | { | 4208 | { |
4209 | image = gImageList.getImageFromFile("pixiesmall.tga"); | 4209 | image = gImageList.getImageFromFile("pixiesmall.j2c"); |
4210 | } | 4210 | } |
4211 | else | 4211 | else |
4212 | { | 4212 | { |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 6904bb2..35cabc1 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -1474,6 +1474,7 @@ void LLVOAvatar::initClass() | |||
1474 | { | 1474 | { |
1475 | loadClientTags(); | 1475 | loadClientTags(); |
1476 | } | 1476 | } |
1477 | initCloud(); | ||
1477 | } | 1478 | } |
1478 | 1479 | ||
1479 | 1480 | ||
@@ -1489,6 +1490,21 @@ void LLVOAvatar::cleanupClass() | |||
1489 | sXMLTree.cleanup(); | 1490 | sXMLTree.cleanup(); |
1490 | } | 1491 | } |
1491 | 1492 | ||
1493 | LLPartSysData LLVOAvatar::sCloud; | ||
1494 | void LLVOAvatar::initCloud() | ||
1495 | { | ||
1496 | // fancy particle cloud designed by Brent | ||
1497 | |||
1498 | std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "cloud.xml"); | ||
1499 | LLSD cloud; | ||
1500 | llifstream in_file(filename); | ||
1501 | LLSDSerialize::fromXMLDocument(cloud, in_file); | ||
1502 | sCloud.fromLLSD(cloud); | ||
1503 | LLViewerImage* cloud_image = gImageList.getImageFromFile("cloud-particle.j2c"); | ||
1504 | sCloud.mPartImageID = cloud_image->getID(); | ||
1505 | |||
1506 | } | ||
1507 | |||
1492 | const LLVector3 LLVOAvatar::getRenderPosition() const | 1508 | const LLVector3 LLVOAvatar::getRenderPosition() const |
1493 | { | 1509 | { |
1494 | if (mDrawable.isNull() || mDrawable->getGeneration() < 0) | 1510 | if (mDrawable.isNull() || mDrawable->getGeneration() < 0) |
@@ -3070,34 +3086,7 @@ void LLVOAvatar::idleUpdateLoadingEffect() | |||
3070 | } | 3086 | } |
3071 | else | 3087 | else |
3072 | { | 3088 | { |
3073 | LLPartSysData particle_parameters; | 3089 | setParticleSource(sCloud, getID()); |
3074 | |||
3075 | // fancy particle cloud designed by Brent | ||
3076 | particle_parameters.mPartData.mMaxAge = 4.f; | ||
3077 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
3078 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
3079 | particle_parameters.mPartData.mStartScale.mV[VY] = 1.0f; | ||
3080 | particle_parameters.mPartData.mEndScale.mV[VX] = 0.02f; | ||
3081 | particle_parameters.mPartData.mEndScale.mV[VY] = 0.02f; | ||
3082 | particle_parameters.mPartData.mStartColor = LLColor4(1, 1, 1, 0.5f); | ||
3083 | particle_parameters.mPartData.mEndColor = LLColor4(1, 1, 1, 0.0f); | ||
3084 | particle_parameters.mPartData.mStartScale.mV[VX] = 0.8f; | ||
3085 | LLViewerImage* cloud = gImageList.getImageFromFile("cloud-particle.j2c"); | ||
3086 | particle_parameters.mPartImageID = cloud->getID(); | ||
3087 | particle_parameters.mMaxAge = 0.f; | ||
3088 | particle_parameters.mPattern = LLPartSysData::LL_PART_SRC_PATTERN_ANGLE_CONE; | ||
3089 | particle_parameters.mInnerAngle = 3.14159f; | ||
3090 | particle_parameters.mOuterAngle = 0.f; | ||
3091 | particle_parameters.mBurstRate = 0.02f; | ||
3092 | particle_parameters.mBurstRadius = 0.0f; | ||
3093 | particle_parameters.mBurstPartCount = 1; | ||
3094 | particle_parameters.mBurstSpeedMin = 0.1f; | ||
3095 | particle_parameters.mBurstSpeedMax = 1.f; | ||
3096 | particle_parameters.mPartData.mFlags = ( LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK | | ||
3097 | LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK | | ||
3098 | LLPartData::LL_PART_TARGET_POS_MASK ); | ||
3099 | |||
3100 | setParticleSource(particle_parameters, getID()); | ||
3101 | } | 3090 | } |
3102 | } | 3091 | } |
3103 | } | 3092 | } |
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 548818d..a23a9df 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -97,6 +97,7 @@ public: | |||
97 | static void initClass(); // Initialize data that's only init'd once per class. | 97 | static void initClass(); // Initialize data that's only init'd once per class. |
98 | static void cleanupClass(); // Cleanup data that's only init'd once per class. | 98 | static void cleanupClass(); // Cleanup data that's only init'd once per class. |
99 | static BOOL parseSkeletonFile(const std::string& filename); | 99 | static BOOL parseSkeletonFile(const std::string& filename); |
100 | static void initCloud(); | ||
100 | virtual U32 processUpdateMessage(LLMessageSystem *mesgsys, | 101 | virtual U32 processUpdateMessage(LLMessageSystem *mesgsys, |
101 | void **user_data, | 102 | void **user_data, |
102 | U32 block_num, | 103 | U32 block_num, |
@@ -582,6 +583,7 @@ public: | |||
582 | static F32 sLODFactor; // user-settable LOD factor | 583 | static F32 sLODFactor; // user-settable LOD factor |
583 | static BOOL sJointDebug; // output total number of joints being touched for each avatar | 584 | static BOOL sJointDebug; // output total number of joints being touched for each avatar |
584 | static BOOL sDebugAvatarRotation; | 585 | static BOOL sDebugAvatarRotation; |
586 | static LLPartSysData sCloud; | ||
585 | 587 | ||
586 | static S32 sNumVisibleAvatars; // Number of instances of this class | 588 | static S32 sNumVisibleAvatars; // Number of instances of this class |
587 | 589 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 31e730a..feeff0c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -1965,6 +1965,13 @@ | |||
1965 | <on_click function="Advanced.DumpAttachments" | 1965 | <on_click function="Advanced.DumpAttachments" |
1966 | userdata="" /> | 1966 | userdata="" /> |
1967 | </menu_item_call> | 1967 | </menu_item_call> |
1968 | <menu_item_call | ||
1969 | label="Reload Avatar Cloud Particle" | ||
1970 | name="Reload Avatar Cloud Particle"> | ||
1971 | <on_click | ||
1972 | function="Advanced.ReloadAvatarCloudParticle" | ||
1973 | userdata="" /> | ||
1974 | </menu_item_call> | ||
1968 | </menu> | 1975 | </menu> |
1969 | 1976 | ||
1970 | <!-- CRASH --> | 1977 | <!-- CRASH --> |