Skip to content

fix(linux-filesystem): resolve asset-root case mismatches#137

Merged
fbraz3 merged 2 commits into
mainfrom
fix/issue-128-linux-sdl3-cursors
May 11, 2026
Merged

fix(linux-filesystem): resolve asset-root case mismatches#137
fbraz3 merged 2 commits into
mainfrom
fix/issue-128-linux-sdl3-cursors

Conversation

@fbraz3

@fbraz3 fbraz3 commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

This PR fixes Linux asset lookup behavior when game data references mixed-case paths but files on disk differ only by case.

The root cause was in asset-root fallback resolution: the fallback path did not perform case-insensitive traversal, unlike the main local path resolution flow.

What Changed

Validation

Manual Linux validation confirmed:

  • default/action/attack cursors render correctly (no fallback to OS pointer).
  • intro playback works.
  • campaign start videos play.

Issues

Fixes #128
Fixes #103

fbraz3 added 2 commits May 11, 2026 12:17
Fix Linux asset-root fallback lookups to preserve case-insensitive path resolution semantics used by legacy data references. This unblocks cursor ANI discovery and related media lookups when file names differ only by case on disk.

Fixes #128

Related-to #103
## Summary
This PR fixes Linux asset lookup behavior when game data references mixed-case paths but files on disk differ only by case.

The root cause was in asset-root fallback resolution: the fallback path did not perform case-insensitive traversal, unlike the main local path resolution flow.

## What Changed
- Added Linux-only case-insensitive traversal to asset-root fallback in [Core/GameEngineDevice/Source/StdDevice/Common/StdLocalFileSystem.cpp](Core/GameEngineDevice/Source/StdDevice/Common/StdLocalFileSystem.cpp).
- Kept platform behavior isolated with `#ifdef __linux__` to avoid changing macOS behavior.
- Kept SDL3 cursor loading hardening in both products:
  - [GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp](GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp)
  - [Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp](Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp)
- Updated docs:
  - [docs/DEV_BLOG/2026-05-DIARY.md](docs/DEV_BLOG/2026-05-DIARY.md)
  - [docs/WORKDIR/lessons/2026-05-LESSONS.md](docs/WORKDIR/lessons/2026-05-LESSONS.md)

## Validation
Manual Linux validation confirmed:
- default/action/attack cursors render correctly (no fallback to OS pointer).
- intro playback works.
- campaign start videos play.

## Issues
Fixes #128
Related-to #103
@fbraz3 fbraz3 merged commit 4186a3d into main May 11, 2026
12 checks passed
@fbraz3 fbraz3 deleted the fix/issue-128-linux-sdl3-cursors branch May 11, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant