feat(filesystem): Implement access to shadowed files inside archives#1483
Merged
xezon merged 6 commits intoTheSuperHackers:mainfrom Oct 16, 2025
Merged
feat(filesystem): Implement access to shadowed files inside archives#1483xezon merged 6 commits intoTheSuperHackers:mainfrom
xezon merged 6 commits intoTheSuperHackers:mainfrom
Conversation
836fa3b to
bd69bc2
Compare
xezon
commented
Aug 23, 2025
Author
There was a problem hiding this comment.
This change is not adding instance access to this function. I think it opens a potential rabbit hole and increase the complexity of this change.
Author
There was a problem hiding this comment.
Something worthwhile to investigate. I did not intent to fix it in this change because the potential side effects are unknown.
bd69bc2 to
37f1631
Compare
1 task
37f1631 to
b6f8342
Compare
b6f8342 to
11d6fcf
Compare
fbraz3
pushed a commit
to fbraz3/GeneralsX
that referenced
this pull request
Nov 10, 2025
fbraz3
pushed a commit
to fbraz3/GeneralsX
that referenced
this pull request
Feb 23, 2026
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.
This change implements access to shadowed files inside archives.
The Archive File System already kept track of all archives regardless of the shadowing, but made shadowed files inaccessible. This is now changed, which allows for some special uses cases we will run into when dealing with shadowed files of any kind. Shadowing is especially prevalent in Zero Hour, because that shadows a large amount of Generals files.
The review is quite a bit intricate given the complexity of the matter, the convuluted EA code and use of the uncommon multimap.
What is a shadowed file?
Consider the following files:
C:\GeneralsZH\art\textures\house.ddsshadowsart\textures\house.ddsinC:\GeneralsZH\TexturesZH.bigart\textures\house.ddsinC:\GeneralsZH\TexturesZH.bigshadowsart\textures\house.ddsinC:\Generals\Textures.bigWhat is changed?
File instances can now be accessed by their instance index: