Skip to content

Windows support, live settings, edge scrolling and GUI scaling - #46

Closed
Rokk001 wants to merge 25 commits into
tomluchowski:shaders-improvementfrom
Rokk001:pr/all-branches
Closed

Rokk001 wants to merge 25 commits into
tomluchowski:shaders-improvementfrom
Rokk001:pr/all-branches

Conversation

@Rokk001

@Rokk001 Rokk001 commented Sep 5, 2026

Copy link
Copy Markdown

Withdrawn at the contributor's request and replaced by separate work-branch pull requests:

Dependent PRs are drafts with predecessor links and focused comparisons; their cumulative GitHub diffs must not be merged as an umbrella contribution.


Original submission description:

This combines the existing fork work on Windows support, shadow fixes, live settings, mouse-edge scrolling and GUI scaling into one contribution against shaders-improvement.

Changing resolution/fullscreen now updates the running game and its input dimensions, while the interface scales with resolution and a selectable 80–120% UI scale; Windows build/startup failures and the reported settings regressions are corrected as part of the same branch stack.

Included work

Existing work branch Changes
feature/windows-support MSVC x64 compiler/linker corrections, prerequisite scripts, absolute resource paths and direct Release runtime preparation.
fix/dynamic-shadows Make internal shadow programs available and preserve custom fragment shaders through integrated additive texture shadows; record exception details.
fix/settings-option-duplicates Remove repeated renderer choices, including duplicate colour-depth entries.
feature/live-settings Apply resolution/fullscreen and other supported settings without restarting; correct VSync persistence, DPI/pointer alignment and viewport updates; safely transfer creation-time display options to a replacement window; support negotiated live nickname updates.
feature/progressive-edge-scrolling Increase mouse-edge scrolling progressively within the existing activation zone and stop it while interacting with the game GUI.
docs/improvement-roadmap Document the improvement roadmap, upstream issue/PR coordination and verification evidence.
feature/gui-scaling Scale fonts, skin metrics, windows and hit targets; provide 80–120% presets; correct settings geometry, generated-control sizing and clipping.

The head is the existing accepted fork snapshot e21d08ea; all listed work branches are ancestors of it. Backup branches are recovery snapshots rather than additional contributions. No new game implementation or setup-script changes were introduced to prepare this PR.

Issue coverage

  • Partially addresses #6: the small-widget/high-resolution problem and Windows pointer/display alignment after live resolution/fullscreen changes. Its remaining discoverability and Linux/Flatpak capture or duplicate-cursor reports are not claimed resolved.
  • Related to #11: improves mouse-edge panning precision and prevents camera movement while using the HUD. Click/drag-to-pan, configurable mouse buttons and character framing remain outside this change; adjustable pan speed and centred zoom already landed in Make the camera pan speed adjustable and zoom towards the screen centre #40.
  • No separate matching open issue was found for the diagnosed Windows compiler/linker failures, dynamic-shadow crashes, repeated colour-depth choices or live-settings regressions.

The current open issues and the comments on #6 and #11 were reviewed. None is claimed completely resolved, so this PR has no automatic issue-closing directive.

Existing and pending pull requests

Verification and dependencies

  • Windows x64 Release/Debug builds passed during development; the final GUI corrections were rebuilt in Release.
  • The user accepted direct Release startup, live settings, corrected mouse alignment, removal of fullscreen bottom-edge flicker, progressive edge scrolling and the completed GUI-scaling step in the running game.
  • The packet regression passed two cases with 15 assertions, covering legacy and extended packet boundaries; mixed-version multiplayer sessions were not exercised.
  • Focused OGRE checks covered shadow resources/passes, GL3Plus replacement windows, in-place resize/VSync and fullscreen dimensions.
  • All 39 CEGUI layouts parse as XML; focused CEGUI settings checks covered small, Full HD, ultrawide and 4K dimensions through scale changes, including nested geometry, dragging and hit targets.

The required OGRE and CEGUI patches are included under scripts/win32/patches and applied by the prerequisite scripts; the game changes alone do not patch a prebuilt dependency installation. The existing Windows scripts and development documentation describe the tested local installation and still contain its specific paths. The fork's documentation is included in this combined contribution.

Linux/macOS/MinGW runtime behavior, multiple-monitor transitions, mixed-version multiplayer, the optional SFML-owned window path and standalone packaging are not certified by the Windows checks. Debug direct-start runtime staging remains separate from Release. The version stays at 0.7.1 because this contribution does not declare a release.

Rokk001 and others added 25 commits September 5, 2026 11:20
Keep the existing local environment and dependency scripts in the repository; game compilation and portable setup remain pending. PowerShell parser checks passed. No game source or version change; the accompanying setup documentation is recorded separately.
Document installed paths, dependency sources, build commands and verified limits; establish the fork work branch and later upstream PR workflow. Internal documentation links checked. README updated; no game version or release changelog change is needed for this setup documentation.
Use pointer-sized window icon APIs, apply the CEGUI snprintf compatibility patch, correct Boost library search paths and align Python debug headers with the selected debug library. Windows x64 Release and Debug builds passed; executable imports confirm the matching Python DLL in each configuration. README and build failure documentation updated; game version remains 0.7.1 because no release is being published.
Update the session entry point, local setup and build instructions with successful compilation, the managed CEGUI patch and matching Python DLL verification. Manual game tests and packaging remain pending. No additional version or release changelog change is needed for this documentation update; the README and technical build report were updated with the preceding fix commit.
Use integrated additive texture shadows to prevent automatic illumination splitting from removing custom fragment programs required by GL3Plus. Log exceptions before the application file logger is destroyed, then preserve the existing exception handling.

Validation: Release and Debug builds passed; the isolated OGRE pass test fails with automatic splitting and passes with the integrated queue configuration. Manual gameplay and shadow appearance remain unverified.

Release review: retain version 0.7.1 for this unreleased correction. The root README already links to the startup notes; local diagnosis and build evidence follow in a separate documentation commit.
Record the successful shadow-program startup, captured Legacy map exception, integrated shadow correction, local build evidence and isolated OGRE pass checks. Keep manual gameplay and visual validation explicitly pending and update the session entry points.

Documentation review: these are local development and verification notes linked by the existing README; version 0.7.1 and release changelog content are unaffected.
Remove repeated renderer option values before sizing and filling the settings dropdowns, including colour depths repeated for fullscreen refresh rates. Preserve distinct choices and selection by text.

Validation: Release and Debug builds and the whitespace check passed; visual confirmation remains pending. Add the cause and verification notes to the development documentation index. Retain version 0.7.1 and the existing root README for this unreleased fix; no separate release changelog entry is needed.
Embed per-monitor DPI awareness and maintain the verified OGRE 13.6.5 renderer patch required for context-safe window replacement, runtime GL options and correct fullscreen client geometry.

Validation: clean Release build, DPI and 3440x1440 fullscreen probes, three GL3Plus variants and the patch reverse check passed; version 0.7.1 remains unchanged because this is unreleased work and the project has no changelog.
Apply display, input, audio, gameplay, minimap, shadow and negotiated nickname changes to the running session while preserving rollback for failed window or input transitions and keeping the 3440x1440 navigation visible.

Validation: clean Release and Debug builds, packet tests, DPI, layout and GL3Plus probes passed; the user confirmed the reported resolution, fullscreen, cursor, flicker and navigation failures are fixed. Version 0.7.1 remains unchanged because this is unreleased work and the project has no changelog.
Document the stacked branch boundaries, maintained Windows renderer patch, build evidence and the user's successful 3440x1440 fullscreen acceptance test.

Documentation review: version 0.7.1 and the root README remain valid; the project has no changelog and no release was created.
The spells tab put its ten buttons in a single row of 60 pixel squares running
out to x=700. The pane they live in is the window width minus the 200 pixels of
minimap, so at the 800 wide minimum window it is 600 pixels across, and the last
two spells, Weakness and the Eye of Evil, hung past its right edge where they
could be neither seen nor clicked. Only a window at least 900 wide showed the
whole row, and nothing said so.

The rooms tab solved the same problem long ago: two rows of 40 pixel buttons.
The spells tab now uses the same shape, five spells to a row, ending at x=300
with room to spare at any size the game accepts. The cooldown bar inside each
button now covers exactly its button too, instead of overhanging 20 pixels on
both sides, which with narrower buttons would have bled half way across the
neighbours.

The rooms tab had the tail of the same bug: the temple and portal buttons the
editor uses sat at x=570 to 690, past the same edge. They join the end of the
second row instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
(cherry picked from commit 10db1cb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants