Reimplement native multiplayer command selection and ordering - #221
Open
Krarilotus wants to merge 2 commits into
Open
Reimplement native multiplayer command selection and ordering#221Krarilotus wants to merge 2 commits into
Krarilotus wants to merge 2 commits into
Conversation
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.
TL;DR: Reimplements how Crusader chooses and orders queued multiplayer commands, preserving the game's batch limits and player priority. Retains the native ordering for commands from one player and the original unknown-player failure paths.
Implements
GameSynchronyState::getCommandIDFromCommandSelectionStuff(0x480440) as C++03 using the existing function and struct resolvers. No generated headers, shared source lists or transport code change.The implementation preserves:
Validation:
OpenSHC.dllwith MSVC 2005 SP1, RelWithDebInfo. The fresh comparison build uses a current Windows SDK manifest tool, so the DLL includes its manifest. No build override is part of the PR and no deploy target ran.reccmpcomparison at0x480440: 64.89%, 310 compiled function bytes versus 301 native bytes. The soft status entry records 64.89%; register allocation and loop/return layout still differ.The validation harness and original game data remain local. This PR does not enable multiplayer replay or claim a completed live multiplayer determinism test.