Skip to content

Parse generated AAS 1.08 face settings - #138

Merged
themuffinator merged 1 commit into
mainfrom
codex/fix-aas-generate-all-faces-137
Aug 27, 2026
Merged

Parse generated AAS 1.08 face settings#138
themuffinator merged 1 commit into
mainfrom
codex/fix-aas-generate-all-faces-137

Conversation

@themuffinator

Copy link
Copy Markdown
Owner

Summary

  • accept the AAS 1.08 generateAllFaces setting already emitted by openQ4's writer
  • initialize both Quake 4 builder flags deterministically and preserve their actual values when writing
  • add a focused parser/writer contract to local and CI validation
  • document the player/mod-author-visible warning fix

Fixes #137.

Investigation

The archive supplied in #123 (SHA-256 CED6E9D92E67D8FF71E1F2E93B68D7F6DD7C961D7E759E90E3AA243408AED187) contains .aas32, .aas48, .aas96, .aas128, and .aas250 files that all carry generateAllFaces = 0. openQ4's writer emits that key, but idAASSettings::FromParser handled only the neighboring generateTacticalFeatures key. This produced three warnings per file while leaving the face flag uninitialized.

Validation

  • python tools/tests/aas_settings_contract.py
  • python tools/tests/docs_link_integrity.py
  • python tools/tests/release_tooling_safety.py
  • tools/build/meson_setup.ps1 compile -C builddir (Windows x64 client, dedicated, SP, MP, OpenGL, Vulkan)
  • git diff --check
  • current 1280x720 windowed OpenGL run using the archive's exact .map, .proc, .cm, and five AAS files from an isolated loose path
    • all five AAS files opened from that path and gameplay initialized
    • no generateAllFaces/invalid-token, stale-AAS, navigation-load, engine error, or fatal diagnostic
    • engine TGA SHA-256: E62BD7DE995E16D31890CE9E44625FB829B20541DD7B7CB31729251214548F38
    • log SHA-256: 74E5C6775C75CEA391E9E6D9E16443A026EFFAFDAC9291072F2966F50A73B196

@y2keeth

y2keeth commented Aug 26, 2026

Copy link
Copy Markdown

man you are fast

@themuffinator

Copy link
Copy Markdown
Owner Author

Final validation is complete:

  • The reporter-supplied airdefense1 fixture loaded all five generated AAS variants (aas32, aas48, aas96, aas128, and aas250) with no parse, stale-file, or load errors.
  • Gameplay initialized on the exact supplied map in a windowed OpenGL run.
  • Engine log SHA-256: 74E5C6775C75CEA391E9E6D9E16443A026EFFAFDAC9291072F2966F50A73B196
  • Engine-render-target screenshot SHA-256: E62BD7DE995E16D31890CE9E44625FB829B20541DD7B7CB31729251214548F38
  • The complete commit-validation matrix passed: Windows x64, Linux x64/ARM64 GCC and Clang variants, ASan+UBSan, macOS ARM64/Intel OpenGL and Metal, both universal2 assemblies, validation smoke, and the ARM64 cross-build.

The four push-workflow macOS smoke failures are the already-documented hosted-runner OpenGL 2 compatibility limitation inherited unchanged from main; the corresponding commit-validation builds and package assemblies all pass.

@themuffinator
themuffinator merged commit 54ad4eb into main Aug 27, 2026
21 of 25 checks passed
@themuffinator
themuffinator deleted the codex/fix-aas-generate-all-faces-137 branch August 27, 2026 00:55
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.

AAS 1.08 loader rejects its generated generateAllFaces setting

2 participants