summaryrefslogtreecommitdiff
path: root/indra/newview/llagent.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-10-13 14:30:21 -0400
committerGitHub <noreply@github.com>2026-10-13 14:30:21 -0400
commit8ba5d1a8adc47c21b23d9482e72de9517f9a98fc (patch)
treef97d67c8ee574c6ebaac8d0d8ba120d041dca051 /indra/newview/llagent.cpp
parent18648fc51e2a0c750182d8aa3814ed5b6bf8445e (diff)
parentefc7d2d7bb542ac905cb7ebd82ee329523f95608 (diff)
Merge pull request #6193 from secondlife/release/26.4
Release/26.4
Diffstat (limited to 'indra/newview/llagent.cpp')
-rw-r--r--indra/newview/llagent.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 3ab87cac13..178a14f470 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -44,6 +44,7 @@
#include "llchicletbar.h"
#include "llconsole.h"
#include "lldonotdisturbnotificationstorage.h"
+#include "llenvironment.h"
#include "llfirstuse.h"
#include "llfloatercamera.h"
#include "llfloaterimcontainer.h"
@@ -578,6 +579,9 @@ void LLAgent::setFirstLogin(bool b)
{
setFeatureVersion(UI_FEATURE_VERSION, UI_FEATURE_FLAGS);
}
+
+ // Shared environment on teleport should only be enabled by default for new users;
+ gSavedSettings.setBOOL("SwitchToSharedEnvAfterTeleport", true);
}
}
@@ -2669,17 +2673,20 @@ void LLAgent::onAnimStop(const LLUUID& id)
else if (id == ANIM_AGENT_PRE_JUMP || id == ANIM_AGENT_LAND || id == ANIM_AGENT_MEDIUM_LAND)
{
// FIRE-34049/FIRE-34273/https://github.com/secondlife/viewer/issues/4218
- // Avoid forcing AGENT_CONTROL_FINISH_ANIM, which can short-circuit the next pre-jump
- // during rapid successive jumps.
+ // Avoid forcing AGENT_CONTROL_FINISH_ANIM on landing, which can short-circuit the
+ // next pre-jump during rapid successive jumps.
+ // Do not suppress pre-jump finish, otherwise a quick tap from standing can stall.
// TODO: a more robust fix would require knowing which specific animation finished,
// information that is not currently provided by the simulator.
+ const bool is_landing_anim = (id == ANIM_AGENT_LAND || id == ANIM_AGENT_MEDIUM_LAND);
const bool up_pos = (mControlFlags & AGENT_CONTROL_UP_POS) != 0;
const F64 now = LLTimer::getTotalSeconds();
const F64 elapsed = now - mLastJumpInputTime;
- static LLCachedControl<F32> recent_jump_threshold_secs(gSavedSettings, "RecentJumpThresholdSecs");
+ static LLCachedControl<F32> recent_jump_threshold_secs(gSavedSettings, "RecentJumpThresholdSecs", 1.0);
const bool recent_jump = (mLastJumpInputTime > 0.0) && (elapsed < recent_jump_threshold_secs);
+ const bool suppress_finish = is_landing_anim && recent_jump;
- if (!up_pos && !recent_jump)
+ if (!up_pos && !suppress_finish)
{
setControlFlags(AGENT_CONTROL_FINISH_ANIM);
}
@@ -4138,6 +4145,7 @@ void LLAgent::handleTeleportFinished()
}
clearTeleportRequest();
mTeleportCanceled.reset();
+ LLVOAvatar::resetEarlyAppearanceList();
if (mIsMaturityRatingChangingDuringTeleport)
{
// notify user that the maturity preference has been changed
@@ -4169,6 +4177,11 @@ void LLAgent::handleTeleportFinished()
mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::onCapabilitiesReceivedAfterTeleport));
}
}
+ static LLCachedControl<bool> shared_env_on_teleport(gSavedSettings, "SwitchToSharedEnvAfterTeleport", true);
+ if (shared_env_on_teleport)
+ {
+ LLEnvironment::instance().setSharedEnvironment();
+ }
LLPerfStats::tunables.autoTuneTimeout = true;
}