From 26fb54b402f7eb96cfec565a0a170813ba42eb3b Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 11 Sep 2026 20:53:36 +0700 Subject: [PATCH] fourteen settings go live, /leave holds, and /assist can swing - mouse-look speed is cameraYawMoveSpeed and cameraPitchMoveSpeed, so pfUI's afkcam does what it asks and an addon driving the stock Interface Options window runs its load and Defaults walks to the end; the shipped feel does not move (2147) - the eight combat-log range sliders are real settings, so BigWigs' Range plugin and DPSMate read and write them, and the Show Pet Melee Damage and periodic-spell settings genuinely silence what they gate (2147) - the stock Sound Options window loads hidden beside ours for addons to find, and its three check-box settings are real: the listener sits at your character, emote voices can be muted, zone music can loop without its silence gap (2147) - /assist with assistAttack set selects and starts swinging; /leave General survives a relog, a /join puts the channel back in its chat window's list, and SetGuildRecruitmentMode joins and leaves GuildRecruitment - City (2144) - wipe, strsplit, strjoin, strtrim, strconcat and tostringall are gone: no 1.12 client has them, and the addons that call them are multi-client builds whose vanilla path raises on the real client too (2146) Co-Authored-By: Claude Fable 5.1 --- crates/benilla-app/assets/ui/OptionsFrame.xml | 45 +- crates/benilla-app/assets/ui/benilla.toc | 31 +- crates/benilla-app/src/combat_text/law.rs | 117 +- crates/benilla-app/src/combat_text/mod.rs | 6 +- crates/benilla-app/src/cvars.rs | 204 +++- crates/benilla-app/src/net/apply.rs | 21 + .../benilla-app/src/net/apply/combat_chat.rs | 31 +- .../benilla-app/src/net/apply/combat_log.rs | 33 +- crates/benilla-app/src/player/camera.rs | 134 +- crates/benilla-app/src/sound/emote.rs | 7 + crates/benilla-app/src/sound/mod.rs | 68 +- crates/benilla-app/src/sound/zone.rs | 25 +- crates/benilla-app/src/target/by_name.rs | 28 +- crates/benilla-app/src/target/click.rs | 1 + crates/benilla-app/src/target/mod.rs | 19 + crates/benilla-app/src/ui_chat.rs | 18 + .../benilla-app/src/ui_chat/ace_gate_tests.rs | 6 +- crates/benilla-app/src/ui_chat/channels.rs | 1085 ++++++++++++----- crates/benilla-app/src/ui_chat/combat.rs | 176 ++- .../benilla-app/src/ui_chat/combat/tests.rs | 48 + .../benilla-app/src/ui_chat/combat/watch.rs | 23 +- crates/benilla-app/src/ui_chat/edit.rs | 91 +- crates/benilla-app/src/ui_chat/feed.rs | 10 + crates/benilla-app/src/ui_chat/input/mod.rs | 60 +- crates/benilla-app/src/ui_chat/recruitment.rs | 273 +++++ crates/benilla-app/src/ui_chat/settings.rs | 119 +- .../src/ui_script/options_tests.rs | 96 +- .../src/ui_script/shipped_xml_tests.rs | 215 +++- crates/benilla-app/src/ui_script/test_ui.rs | 6 +- crates/benilla-app/tests/common/mod.rs | 6 +- crates/benilla-formats/src/chat_channels.rs | 9 + crates/benilla-ui/src/script/channel.rs | 292 ++++- crates/benilla-ui/src/script/chat_window.rs | 58 +- crates/benilla-ui/src/script/model.rs | 5 + crates/benilla-ui/src/script/stdlib.rs | 71 +- crates/benilla-ui/src/script/tests/channel.rs | 68 ++ crates/benilla-ui/src/script/tests/mod.rs | 2 +- .../src/script/tests/reference_surface.rs | 6 - crates/benilla-ui/src/script/tests/stdlib.rs | 25 +- .../src/script/tests/widget_surface.rs | 5 + 40 files changed, 2912 insertions(+), 631 deletions(-) create mode 100644 crates/benilla-app/src/ui_chat/recruitment.rs diff --git a/crates/benilla-app/assets/ui/OptionsFrame.xml b/crates/benilla-app/assets/ui/OptionsFrame.xml index 012362b5..935a0d6b 100644 --- a/crates/benilla-app/assets/ui/OptionsFrame.xml +++ b/crates/benilla-app/assets/ui/OptionsFrame.xml @@ -4025,28 +4025,36 @@ - diff --git a/crates/benilla-app/assets/ui/benilla.toc b/crates/benilla-app/assets/ui/benilla.toc index 0f686215..9c0acb4b 100644 --- a/crates/benilla-app/assets/ui/benilla.toc +++ b/crates/benilla-app/assets/ui/benilla.toc @@ -424,6 +424,33 @@ Interface\FrameXML\OptionsFrameTemplates.xml # this manifest calls them; an addon that does gets a raise where it used to get "call a nil # value", which is not worse and is 1203's "loudly absent" either way. Interface\FrameXML\OptionsFrame.lua +# ══ THE STOCK SOUND OPTIONS WINDOW — loaded, and HIDDEN, by 2115's own argument ══════════════ +# The reference's `FrameXML.toc` seats this file at l.20, exactly between the video window (l.19, +# whose `.lua` is the row above) and the interface window (l.21, the row below). Ours now does too, +# and the seat is the reference's rather than convenient: `SoundOptionsFrame.xml` inherits +# `OptionsCheckButtonTemplate` and `OptionsSliderTemplate` from `OptionsFrameTemplates.xml` and +# `GameMenuButtonTemplate` from `UIPanelTemplates.xml`, both already above. +# +# **It brings nothing else with it.** Unlike `UIOptionsFrame.xml`, which ``s +# `CharacterFrameTemplates.xml`, this file's only dependency line is its own +# `