Repository navigation
fix(career): preserve MatchWin music across Escape - #33
Merged
Merged
Conversation
Guard MatchEnd Escape and generic close commands through its own vtable, sharing input forwarding with RoundEnd and preserving native business actions. Require the published v20261026a symbols and add regression coverage. Fixes MetaHookSv/MetaHookSv#957 Co-Authored-By: Codex <codex@openai.com>
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.
Career match victory music restarted after each Escape/GameUI round trip in Condition Zero. MatchEnd inherited Frame's generic close handling, which entered native match completion and faded the track, resetting its identity. When the completed server match resent MATCH, the native same-track guard could no longer suppress playback. The existing RoundEnd fix did not cover MatchEnd.
Apply the same Escape and exact case-insensitive Close/Cancel guards to MatchEnd's own vtable, sharing the forwarding helpers with RoundEnd. Preserve native business commands and all other keys, and roll back/remove all six hooks together. Add the two required MatchEnd gamedata records to the manifest and document the
v20261026acatalog requirement. No shared Frame, music or server implementation is patched.Fixes MetaHookSv/MetaHookSv#957
Dependency: GoldSrc_VibeSignatures v20261026a, fulfilling upstream symbol request #409.
Validation:
git diff --checkpassed.career_restart; victory Enter forwardeddisconnectand returned to the Career map. All six vtable slots restored to native functions at shutdown; task processes exited with code 0.Limits: playback commands were instrumented; audio output and stream position were not captured. Credits and RoundEnd choice/default-button/surrender branches were not reached in live verification. Windows 8684 has catalog validation and Linux has static analysis only; neither has runtime qualification.