This repository has been archived by the owner on Jan 6, 2022. It is now read-only.
Use LinkedList instead of Queue to find System.dll. #610
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 should fix an incompatibility with Mono which is currently where the game fails in Proton without .NET Framework installed.
The problem with Mono is that they put System.Collections.Generic.Queue<> in mscorlib instead of System where MSDN says it's supposed to be: mono/mono@df6056c
This causes an exception when trying to add the namespace from the Queue class:
Mono is clearly at fault here, but it's proving to be difficult to fix in wine-mono, not because of the code dependencies in Mono (there's only one and it can be easily replaced with List), but because of the bootstrapping process. Moving the type out of mscorlib breaks the monolite binaries which means we need to generate new ones that work without going through the normal build process somehow, and then develop a process to ship them instead of relying on upstream Mono.
I think if you instead reference a class that Mono put in the right place, that should work around this particular issue. Would you be willing to do that?