Repository navigation
feat(look): add player-controlled Enhanced graphics tuning - #775
Merged
nitoygo merged 6 commits intoOct 18, 2026
Merged
Conversation
Use the same Winmain.cpp glue as the UI scaling tests, including editor builds. Remove duplicate test-owned mouse globals instead of adding partial application stubs. Font assertions are unchanged; all 988 editor and 942 normal tests pass with one GPU skip per suite.
alandarev
marked this pull request as ready for review
October 17, 2026 20:12
# Conflicts: # tests/ui/test_display_settings_contract.cmake
- A focused tuning slider owns the keys like a text field: only the options window gets them (RmlUiRuntime::GetKeyOwningDocument(), for any element marked data-takes-keys), so Home no longer toggles MU Helper and Page Up/Down no longer scroll the chat while a slider moves; Escape still closes the window. A press outside RmlUi releases the slider. - The gauge keys (arrows, Page Up/Down, Home/End) are decoded by UI::RmlBridge::LevelGaugeKey(), which ApplyLevelGaugeEvent() also uses. - A save writes only the keys it changes, into the file as it is then: unknown keys, comments and another client's values survive. A section after a UTF-8 BOM is read and updated in place. - The spell-light defaults stay as main has them (gain 2.5, range 3, max 8, cap 2.5); changing what every Enhanced player sees belongs in its own change. - The Mood slider shows a developer's session strength and locks with its own reason; $look save clears the developer edit marks, so the player's values apply over the saved file values again. - The tuning sliders are the volume gauge in each theme: the legacy volume art with its fill cropped to the value, modern's rail and fill. - A row's Reset is hidden while it follows the defaults; the screenshot in docs/images is gone. - $bench records the player's tuning (Enhanced tuning in the report, enhancedTuning in run.json).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Build on #716 and #766 with 19 bounded tuning sliders grouped under the four existing Enhanced feature toggles, in both Legacy and Modern options.
[EnhancedTuning]. Untouched values inherit the shipped profile; player options never edit shared Look.json/LightMood.json.Related issues
Closes #774.
Related: #715, #716, #766.
Try it
Changes by area
No new dependency, top-level source layer, shader, packet or server feature.
Testing
2cf25f14d, incorporating upstreambdc21f3f7with a clean history-preserving merge: Linux build and 945 tests passed, zero failures, one explicit GPU integration skip.Draft limits / remaining verification
This is not a claim of complete graphics acceptance: Legacy wide-layout coverage, full native endpoint/invalid-key/dependency/timing coverage, comparative graphics videos and Classic/UI pixel-identity evidence remain open. Legacy1024 and Modern1024/2560 expanded readability plus native restart/save-failure lifecycle were tested. Temporary developer
$lightmoodoverrides are separate from the persisted player-strength row. Unsupported renderer effects retain preferences without applying them; recovery is attempted on the next feature/preset apply or restart.Checklist
docs/CODING_RULES.md.Written with AI assistance and tested by hand.