mirror of
https://github.com/osukey/osukey.git
synced 2025-08-05 15:44:04 +09:00
Fix taiko replay frames being mis-ordered
This commit is contained in:
@ -121,9 +121,7 @@ namespace osu.Game.Rulesets.Taiko.Replays
|
|||||||
var nextHitObject = GetNextObject(i); // Get the next object that requires pressing the same button
|
var nextHitObject = GetNextObject(i); // Get the next object that requires pressing the same button
|
||||||
|
|
||||||
bool canDelayKeyUp = nextHitObject == null || nextHitObject.StartTime > endTime + KEY_UP_DELAY;
|
bool canDelayKeyUp = nextHitObject == null || nextHitObject.StartTime > endTime + KEY_UP_DELAY;
|
||||||
|
|
||||||
double calculatedDelay = canDelayKeyUp ? KEY_UP_DELAY : (nextHitObject.StartTime - endTime) * 0.9;
|
double calculatedDelay = canDelayKeyUp ? KEY_UP_DELAY : (nextHitObject.StartTime - endTime) * 0.9;
|
||||||
|
|
||||||
Frames.Add(new TaikoReplayFrame(endTime + calculatedDelay));
|
Frames.Add(new TaikoReplayFrame(endTime + calculatedDelay));
|
||||||
|
|
||||||
if (i < Beatmap.HitObjects.Count - 1)
|
if (i < Beatmap.HitObjects.Count - 1)
|
||||||
@ -138,24 +136,5 @@ namespace osu.Game.Rulesets.Taiko.Replays
|
|||||||
|
|
||||||
return Replay;
|
return Replay;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override HitObject GetNextObject(int currentIndex)
|
|
||||||
{
|
|
||||||
Type desiredType = Beatmap.HitObjects[currentIndex].GetType();
|
|
||||||
|
|
||||||
for (int i = currentIndex + 1; i < Beatmap.HitObjects.Count; i++)
|
|
||||||
{
|
|
||||||
var currentObj = Beatmap.HitObjects[i];
|
|
||||||
|
|
||||||
if (currentObj.GetType() == desiredType ||
|
|
||||||
// Un-press all keys before a DrumRoll or Swell
|
|
||||||
currentObj is DrumRoll || currentObj is Swell)
|
|
||||||
{
|
|
||||||
return Beatmap.HitObjects[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user