circlecore
circlecore copied to clipboard
Loading a replay with `2` frames can cause weird behaviour
[!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.