osu icon indicating copy to clipboard operation
osu copied to clipboard

Seeking an Autoplay-active test gameplay to a time before it's activation, will stop it from working

Open rvneXe opened this issue 1 year ago • 5 comments

Type

Game behaviour

Bug description

Hi. there's a self-explanatory video here:

https://github.com/user-attachments/assets/046fdf0b-dfb7-41f5-b453-5a2dc3594997

Screenshots or videos

No response

Version

2024.1009.1

Logs

compressed-logs.zip

rvneXe avatar Oct 09 '24 14:10 rvneXe

duplicate of #30107

CuredDDN avatar Oct 09 '24 18:10 CuredDDN

Seems to be another issue but related, so leaving this open.

Joehuu avatar Oct 09 '24 19:10 Joehuu

I would like to work on this, but I am unsure how to approach this. Based on my (very limited) knowledge)

var score = autoplay.CreateScoreFromReplayData(GameplayState.Beatmap, [autoplay]);

                // remove past frames to prevent replay frame handler from seeking back to start in an attempt to play back the entirety of the replay.
                score.Replay.Frames.RemoveAll(f => f.Time <= GameplayClockContainer.CurrentTime);

this is the surface level problem issue. I would like to either load the frames in the background or create a new autoplay when it seeks before the part where the autoplay is generated. but i cant really figure out how. (i dont completely understand how replay works)

Simple solution is just to get rid of "score.Replay.Frames.RemoveAll(f => f.Time <= GameplayClockContainer.CurrentTime);" to generate the autoplay at the start. But like the comment states, it causes the replay to go back to draw the first frame, then back to current time...

TaterToes avatar Oct 10 '24 19:10 TaterToes

i think i got it.

TaterToes avatar Oct 10 '24 19:10 TaterToes

We can begin to generate them in the loading screen, then display the gameplay screen once it's done. (Just an idea)

rvneXe avatar Oct 11 '24 02:10 rvneXe