Replay desync behavior?

Level 8
Joined
Dec 30, 2007
Messages
73
Is there conventional wisdom on what's currently causing Replays to desync?

For example, I'm working on some more custom UI elements (currently I'm modifying Chopinski's, which can be found here) and have implemented TriggerHappy's Replay Detection API, wrapping the relevant function calls inside an if GetGameStatus() != GAME_STATUS_REPLAY block such that the functions to set up the UI occur only when the game is not a replay. I've tested this within the demo project file for the above UI and it seems to work without error, allowing gameplay but preserving the standard WC3 UI within the replay environment.

However, when implemented in my own project, orders desync during initialization in the replay. UI elements, game messages, and chat messages occur; players select units and purchase items or units from shops correctly, but units are otherwise still during the replay and aren't issued commands to attack or move, resulting in a totally dead replay. Presumably, this problem originates from some insane interaction between the Interface setup and some other code in my map, as if the trigger is disabled entirely the replay behaves just fine.

The issue is I'm not sure where to even begin looking for answers or troubleshooting. The only thing I could find even remotely related to the subject is this report by AbsolutePsycho, on madeem's discovery of a BlzGetFrameByName related replay desync in 1.32.7. However, I believe this issue to be fixed currently, as the test case in his post no longer seems to produce the behavior of interest. Regardless I've tried protecting the BlzGetFrameByName calls here with GAME_STATUS_REPLAY checks to no avail.

If I'm overlooking something stupid or there's common knowledge on the subject I'd appreciate some sage advice that could point me in the right direction. Thanks much!
 
Back
Top