circlecore icon indicating copy to clipboard operation
circlecore copied to clipboard

Loading a replay with `2` frames can cause weird behaviour

Open Stedoss opened this issue 9 months ago • 0 comments

[!NOTE] I'll preface this by saying that I don't really expect this to be fixed, but just putting it here as a reference incase someone else comes across it.

Loading a replay with two frames will not throw an exception and will cause the replay's t, xy and k properties to all be empty, however replay.has_data() will return True as replay.replay_data will contain the two actual frames.

This behaviour is different from loading a replay with no replay frames (it will throw an exception) and is also different from loading a replay with None replay frames (it will not throw an error, and replay.has_data() will return False).

This is due to the _process_replay_data() function expecting more than two frames when iterating over the first (or second frame if skipped), else it will skip over the assignments to the class' t, xy and k properties.

Example: ryoshi123_-Reol-_No_title_Light_Insane_2024-04-27_Osu.osr

We can make a local check in cg's UI that will inform the user of this instead of stopping investigation progress.

Stedoss avatar May 16 '24 23:05 Stedoss