From a8e46a1a52e251a6f474590e3bda4888d6ca4cb9 Mon Sep 17 00:00:00 2001 From: onefang Date: Mon, 6 Sep 2021 22:13:31 +1000 Subject: Fix water bubbles and bobble. --- 1AOor2.lsl | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/1AOor2.lsl b/1AOor2.lsl index 156ef0a..b4c78dd 100644 --- a/1AOor2.lsl +++ b/1AOor2.lsl @@ -1581,17 +1581,38 @@ checkSitters(integer del) return; } + +// Particle engine, for bubbles while swimming. +integer noParticles = TRUE; +updateParticles() { - if (NULL_KEY != avatar) - { - list anims = llGetAnimationList(avatar); - integer l = llGetListLength(anims); - integer i; - for (i = 0; i < l; i++) - { - string anim = llList2String(anims, i); - if (anim != "") animEnd(avatar, anim); - } + if (noParticles) + { + noParticles = FALSE; + llParticleSystem( + [ + PSYS_PART_MAX_AGE, 16.0, + PSYS_PART_FLAGS, + PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_WIND_MASK, + PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>, + PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>, + PSYS_PART_START_SCALE, <0.05, 0.05, 0.05>, + PSYS_PART_END_SCALE, <0.1, 0.1, 0.1>, + PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE, + PSYS_SRC_BURST_RATE, 4.0, + PSYS_SRC_ACCEL, <0.0, 0.0, 0.3>, + PSYS_SRC_BURST_PART_COUNT, 1, + PSYS_SRC_BURST_RADIUS, 0.2, + PSYS_SRC_BURST_SPEED_MIN, 0.7, + PSYS_SRC_BURST_SPEED_MAX, 0.001, + PSYS_SRC_ANGLE_BEGIN, PI, + PSYS_SRC_ANGLE_END, PI, + PSYS_SRC_OMEGA, <0.0, -0.2, 0.0>, + PSYS_SRC_MAX_AGE, 0.0, + PSYS_PART_START_ALPHA, 1.0, + PSYS_PART_END_ALPHA, 1.0, + PSYS_SRC_TEXTURE, "soap-bubble" + ]); } } @@ -1715,13 +1736,13 @@ checkAO() { if (Swimming) { // That's metres of water depth before it figures you don't have enough to swim in. - if ((z > water) && ((water - ground) > 1.5)) + if ((z > water) && ((water - ground) > 0.5)) { // Push you back into the water. vector velocity = llGetVel(); dpth = 0.1; velocity.x = 0.0; velocity.y = 0.0; if (10 > velocity.z) velocity.z = 10; - velocity.z *= -4; + velocity.z *= -7; if ("Swimming Up" == alias("~" +nextState)) { Bobbing++; @@ -1744,13 +1765,17 @@ checkAO() } else // Not in fly mode. Swimming = FALSE; -// llParticleSystem([]); + if ((!Swimming && (!noParticles))) + { + llParticleSystem([]); + noParticles = TRUE; + } if (Swimming) { if (Attached) AOspeed = 0.1; else AOspeed = 0.5; newAnim = alias("~" + newAnim); -// updateParticles(); + updateParticles(); } else if (-1 != flying) { -- cgit v1.1