wc3: fix cinematic dialogue corruption, portrait talk animation, and building visibility - #141
Closed
leinadUa wants to merge 2 commits into
Closed
wc3: fix cinematic dialogue corruption, portrait talk animation, and building visibility#141leinadUa wants to merge 2 commits into
leinadUa wants to merge 2 commits into
Conversation
added 2 commits
July 19, 2026 16:36
…alk anim, and building fog/packet-limit visibility
…acket entity limit and candidate buffer
Contributor
Author
|
client dropped its cached entity baseline on removal, so re-added entities lost fields the server omits as unchanged |
Owner
|
Merged |
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.
SetCinematicScene/EndCinematicScene stored raw JASS string pointers into playerState.texts[]; jass_call() frees them the instant the native returns, causing use-after-free on speaker/dialogue text. Fixed via G_SetPlayerText. Also fixed cinematic_end_time not resetting, which could cut a scene short.
ForForce and GetEnumPlayer were no-op stubs, silently breaking CinematicModeBJ and any force-based JASS logic. Implemented both.
Cinematic portrait always used the idle "Portrait" animation. Now switches to "Portrait Talk" while a line is being spoken, with a renderer fallback for models missing that sequence.
Starting-base buildings disappeared during/after the intro cutscene. G_FowPlayerCanSeeEntity only checked current visibility, not explored state, for buildings. Root cause: MAX_PACKET_ENTITIES (256) was chronically exceeded by the map's tree/doodad count, so unowned buildings lost the per-frame entity slot competition. Raised to 2048, added sv_debug_entities logging for this eviction path.