Skip to content

Commit

Permalink
Merge branch 'master' into mania-convert-song-select-keycount
Browse files Browse the repository at this point in the history
  • Loading branch information
smoogipoo committed Dec 13, 2023
2 parents 2930b53 + 36d0ec3 commit 6ed5613
Show file tree
Hide file tree
Showing 15 changed files with 495 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public LegacyScoreAttributes Simulate(IWorkingBeatmap workingBeatmap, IBeatmap p
simulateHit(obj, ref attributes);

attributes.BonusScoreRatio = legacyBonusScore == 0 ? 0 : (double)standardisedBonusScore / legacyBonusScore;
attributes.BonusScore = legacyBonusScore;

return attributes;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class ManiaBeatmapConversionTest : BeatmapConversionTest<ManiaConvertMapp
[TestCase("zero-length-slider")]
[TestCase("20544")]
[TestCase("100374")]
[TestCase("1450162")]
public void Test(string name) => base.Test(name);

protected override IEnumerable<ConvertValue> CreateConvertValue(HitObject hitObject)
Expand Down
42 changes: 42 additions & 0 deletions osu.Game.Rulesets.Mania.Tests/Mods/TestSceneManiaModAutoplay.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Copyright (c) ppy Pty Ltd <[email protected]>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.

using System.Collections.Generic;
using NUnit.Framework;
using osu.Game.Rulesets.Mania.Beatmaps;
using osu.Game.Rulesets.Mania.Objects;
using osu.Game.Tests.Visual;

namespace osu.Game.Rulesets.Mania.Tests.Mods
{
public partial class TestSceneManiaModAutoplay : ModTestScene
{
protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset();

[Test]
public void TestPerfectScoreOnShortHoldNote()
{
CreateModTest(new ModTestData
{
Autoplay = true,
Beatmap = new ManiaBeatmap(new StageDefinition(1))
{
HitObjects = new List<ManiaHitObject>
{
new HoldNote
{
StartTime = 100,
EndTime = 100,
},
new HoldNote
{
StartTime = 100.1,
EndTime = 150,
},
}
},
PassCondition = () => Player.ScoreProcessor.Combo.Value == 4
});
}
}
}

Large diffs are not rendered by default.

297 changes: 297 additions & 0 deletions osu.Game.Rulesets.Mania.Tests/Resources/Testing/Beatmaps/1450162.osu
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
osu file format v14

[General]
StackLeniency: 0.7
Mode: 0

[Difficulty]
HPDrainRate:5
CircleSize:4
OverallDifficulty:7
ApproachRate:7.5
SliderMultiplier:1.4
SliderTickRate:1

[Events]
//Background and Video events
//Break Periods
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Fail)
//Storyboard Layer 2 (Pass)
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples

[TimingPoints]
1107,365.853658536585,4,2,1,50,1,0
1107,-166.666666666667,4,2,1,50,0,0
6960,-111.111111111111,4,2,1,50,0,0
8424,-100,4,2,1,50,0,0
48119,-125,4,2,1,50,0,0
52143,-100,4,2,1,50,0,0
62570,-100,4,2,1,60,0,1
85985,-100,4,2,1,50,0,0
97692,-100,4,2,1,30,0,0
99155,-100,4,2,1,20,0,0
100619,-100,4,2,1,5,0,0

[HitObjects]
38,247,1107,6,0,P|96:269|170:192,1,167.999994873047,2|0,0:0|0:0,0:0:0:0:
201,128,2570,6,0,L|205:221,1,83.9999974365235,2|0,0:0|0:0,0:0:0:0:
242,230,3302,2,0,L|234:324,1,83.9999974365235,2|0,0:0|0:0,0:0:0:0:
205,343,4033,6,0,P|246:296|351:314,1,167.999994873047,2|0,0:0|0:0,0:0:0:0:
400,368,5497,6,0,L|412:269,1,83.9999974365235,6|0,0:0|0:0,0:0:0:0:
436,251,6228,2,0,P|425:203|408:153,1,83.9999974365235,2|0,0:0|0:0,0:0:0:0:
304,200,6960,6,0,P|262:186|234:181,1,62.9999980773926,6|0,0:0|0:0,0:0:0:0:
202,179,7326,1,8,0:0:0:0:
276,94,7509,2,0,P|313:92|353:87,1,62.9999980773926,2|0,0:0|0:0,0:0:0:0:
398,31,7875,1,2,0:0:0:0:
464,81,8058,2,0,L|450:150,1,62.9999980773926,2|0,0:0|0:0,0:0:0:0:
449,230,8424,6,0,P|347:206|306:217,1,140,2|8,0:0|0:0,0:0:0:0:
229,273,8972,2,0,P|225:339|235:361,1,70,2|0,0:0|0:0,0:0:0:0:
304,313,9338,1,8,0:0:0:0:
224,190,9521,1,2,0:0:0:0:
296,45,9887,6,0,P|297:97|288:125,1,70,6|0,0:0|0:0,0:0:0:0:
224,190,10253,1,8,0:0:0:0:
167,118,10436,1,8,0:0:0:0:
76,126,10619,1,8,0:0:0:0:
39,209,10802,1,8,0:0:0:0:
93,282,10985,1,10,0:0:0:0:
184,280,11167,1,10,0:0:0:0:
102,136,12814,5,2,0:0:0:0:
102,136,13180,2,0,L|199:130,1,70,8|0,0:0|0:0,0:0:0:0:
256,167,13546,2,0,L|339:161,1,70,8|2,0:0|0:0,0:0:0:0:
408,201,13911,2,0,P|454:176|471:143,1,70,8|2,0:0|0:0,0:0:0:0:
373,54,14277,6,0,L|396:137,2,70,6|0|8,0:0|0:0|0:0,0:0:0:0:
305,111,14826,2,0,L|287:274,1,140,0|2,0:0|0:0,0:0:0:0:
262,337,15375,2,0,L|349:327,1,70,8|2,0:0|0:0,0:0:0:0:
419,354,15741,1,8,0:0:0:0:
477,197,16106,6,0,P|423:197|385:209,1,70,8|0,0:0|0:0,0:0:0:0:
321,170,16472,2,0,P|278:190|253:219,1,70,8|2,0:0|0:0,0:0:0:0:
171,213,16838,2,0,P|152:259|158:304,1,70,8|2,0:0|0:0,0:0:0:0:
305,294,17204,6,0,L|224:278,2,70,6|0|8,0:0|0:0|0:0,0:0:0:0:
310,202,17753,2,0,L|149:214,1,140,0|2,0:0|0:0,0:0:0:0:
84,244,18302,2,0,L|92:152,1,70,8|2,0:0|0:0,0:0:0:0:
47,93,18667,6,0,P|78:53|176:80,1,140,6|8,0:0|0:0,0:0:0:0:
218,130,19216,1,0,0:0:0:0:
299,88,19399,2,0,L|387:91,1,70,8|0,0:0|0:0,0:0:0:0:
458,106,19765,2,0,P|447:139|444:205,1,70,8|0,0:0|0:0,0:0:0:0:
455,274,20131,5,2,0:0:0:0:
366,292,20314,2,0,L|353:211,1,70,0|8,0:0|0:0,0:0:0:0:
277,173,20680,2,0,L|253:342,1,140,0|2,0:0|0:0,0:0:0:0:
322,376,21228,2,0,P|368:368|416:370,1,70,8|2,0:0|0:0,0:0:0:0:
500,287,21594,6,0,P|427:273|362:293,2,140,6|8|8,0:0|0:0|0:0,0:0:0:0:
496,111,22509,1,8,0:0:0:0:
499,189,22692,2,0,L|418:191,1,70,8|2,0:0|0:0,0:0:0:0:
344,164,23058,5,6,0:0:0:0:
344,164,23241,1,12,0:0:0:0:
261,326,23606,2,0,L|246:178,1,140,8|2,0:0|0:0,0:0:0:0:
277,100,24155,2,0,P|225:99|196:109,1,70,8|2,0:0|0:0,0:0:0:0:
165,273,24521,5,6,0:0:0:0:
83,235,24704,2,0,L|93:81,1,140,0|0,0:0|0:0,0:0:0:0:
21,37,25253,2,0,L|1:120,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
110,17,25802,1,0,0:0:0:0:
172,83,25985,5,2,0:0:0:0:
236,19,26167,2,0,P|223:70|227:170,1,140,0|0,0:0|0:0,0:0:0:0:
293,216,26716,2,0,P|316:165|314:134,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
206,245,27265,1,0,0:0:0:0:
274,305,27448,5,2,0:0:0:0:
194,348,27631,2,0,L|363:332,1,140,0|0,0:0|0:0,0:0:0:0:
424,336,28180,1,2,0:0:0:0:
431,245,28363,2,0,P|381:252|354:276,2,70,0|8|0,0:0|0:0|0:0,0:0:0:0:
509,291,28911,6,0,L|496:128,1,140,2|8,0:0|0:0,0:0:0:0:
504,60,29460,1,0,0:0:0:0:
417,34,29643,2,0,L|402:183,1,140,2|8,0:0|0:0,0:0:0:0:
365,262,30192,1,0,0:0:0:0:
295,202,30375,5,2,0:0:0:0:
309,112,30558,2,0,P|282:172|196:176,1,140,0|0,0:0|0:0,0:0:0:0:
148,120,31106,2,0,P|189:99|225:99,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
129,209,31655,1,0,0:0:0:0:
63,146,31838,5,2,0:0:0:0:
16,67,32021,2,0,L|27:220,1,140,0|0,0:0|0:0,0:0:0:0:
23,297,32570,2,0,P|81:286|111:290,1,70,2|0,0:0|0:0,0:0:0:0:
173,327,32936,1,8,0:0:0:0:
338,251,33302,6,0,P|268:254|227:199,1,140,2|8,0:0|0:0,0:0:0:0:
203,114,33850,2,0,L|185:262,1,140,0|0,0:0|0:0,0:0:0:0:
244,323,34399,1,8,0:0:0:0:
334,335,34582,1,0,0:0:0:0:
419,219,34765,6,0,L|410:304,1,70,2|0,0:0|0:0,0:0:0:0:
338,251,35131,1,8,0:0:0:0:
301,111,35314,2,0,L|301:190,1,70,6|0,0:0|0:0,0:0:0:0:
383,141,35680,1,8,0:0:0:0:
462,97,35863,2,0,P|427:64|393:54,1,70,2|0,0:0|0:0,0:0:0:0:
321,23,36228,5,2,0:0:0:0:
237,60,36411,1,0,0:0:0:0:
148,38,36594,2,0,P|107:33|56:43,1,70,8|0,0:0|0:0,0:0:0:0:
86,125,36960,2,0,P|51:125|17:117,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
175,123,37509,1,0,0:0:0:0:
129,201,37692,5,2,0:0:0:0:
198,259,37875,1,0,0:0:0:0:
205,349,38058,2,0,P|251:330|284:326,1,70,8|0,0:0|0:0,0:0:0:0:
352,285,38424,2,0,P|361:318|357:353,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
282,239,38972,1,0,0:0:0:0:
362,195,39155,5,2,0:0:0:0:
436,142,39338,2,0,P|398:115|354:112,1,70,0|8,0:0|0:0,0:0:0:0:
286,92,39704,2,0,L|451:74,1,140,0|0,0:0|0:0,0:0:0:0:
512,118,40253,2,0,L|494:198,1,70,8|0,0:0|0:0,0:0:0:0:
430,297,40619,6,0,P|423:236|336:195,1,140,2|8,0:0|0:0,0:0:0:0:
282,239,41167,1,0,0:0:0:0:
209,184,41350,2,0,L|222:112,1,70,2|2,0:0|0:0,0:0:0:0:
177,34,41716,2,0,P|230:26|269:38,1,70,8|0,0:0|0:0,0:0:0:0:
307,95,42082,5,2,0:0:0:0:
363,23,42265,2,0,L|359:114,1,70,0|8,0:0|0:0,0:0:0:0:
360,184,42631,1,0,0:0:0:0:
450,191,42814,2,0,P|443:145|424:119,2,70,2|0|8,0:0|0:0|0:0,0:0:0:0:
393,263,43363,1,0,0:0:0:0:
304,242,43546,5,2,0:0:0:0:
241,308,43728,1,0,0:0:0:0:
167,256,43911,2,0,P|205:228|245:226,1,70,8|0,0:0|0:0,0:0:0:0:
166,341,44277,2,0,P|118:325|90:289,1,70,2|0,0:0|0:0,0:0:0:0:
125,177,44643,2,0,P|168:152|201:153,1,70,8|0,0:0|0:0,0:0:0:0:
276,132,45009,6,0,L|119:105,1,140,2|8,0:0|0:0,0:0:0:0:
52,74,45558,2,0,L|210:57,1,140,2|0,0:0|0:0,0:0:0:0:
277,28,46106,1,8,0:0:0:0:
349,82,46289,1,0,0:0:0:0:
425,32,46472,6,0,L|451:110,2,70,6|2|8,0:0|0:0|0:0,0:0:0:0:
349,82,47021,2,0,L|344:235,1,140,2|8,0:0|0:0,0:0:0:0:
372,308,47570,1,2,0:0:0:0:
170,324,47936,5,2,0:0:0:0:
99,286,48119,2,0,L|112:112,1,168,2|2,0:0|0:0,0:0:0:0:
64,48,48850,2,0,P|125:36|195:111,1,168,2|2,0:0|0:0,0:0:0:0:
199,189,49582,6,0,L|369:166,1,168,2|2,0:0|0:0,0:0:0:0:
413,97,50314,2,0,P|390:180|377:274,1,168,2|2,0:0|0:0,0:0:0:0:
347,339,51046,6,0,P|424:333|463:251,1,168,2|2,0:0|0:0,0:0:0:0:
473,175,51777,2,0,L|477:105,1,56,2|2,0:0|0:0,0:0:0:0:
446,24,52143,6,0,P|363:22|308:82,1,140,12|2,0:0|0:0,0:0:0:0:
282,138,52692,1,8,0:0:0:0:
193,118,52875,2,0,L|213:281,1,140,2|8,0:0|0:0,0:0:0:0:
225,347,53424,2,0,P|268:328|286:301,1,70,2|0,0:0|0:0,0:0:0:0:
304,222,53789,5,2,0:0:0:0:
385,263,53972,1,0,0:0:0:0:
462,214,54155,2,0,P|421:185|383:179,1,70,8|0,0:0|0:0,0:0:0:0:
322,136,54521,2,0,P|360:105|400:93,1,70,2|0,0:0|0:0,0:0:0:0:
469,107,54887,2,0,L|483:24,1,70,8|0,0:0|0:0,0:0:0:0:
390,22,55253,6,0,L|223:30,1,140,2|8,0:0|0:0,0:0:0:0:
180,87,55802,1,0,0:0:0:0:
230,162,55985,2,0,L|391:154,1,140,2|8,0:0|0:0,0:0:0:0:
430,223,56533,1,0,0:0:0:0:
407,311,56716,6,0,P|356:347|285:307,1,140,2|8,0:0|0:0,0:0:0:0:
236,245,57265,1,0,0:0:0:0:
145,237,57448,2,0,L|162:316,1,70,2|0,0:0|0:0,0:0:0:0:
233,360,57814,6,0,P|185:349|142:350,1,70,8|0,0:0|0:0,0:0:0:0:
11,311,58180,2,0,P|64:302|104:306,1,70,2|0,0:0|0:0,0:0:0:0:
213,248,58546,2,0,P|162:237|130:237,1,70,8|0,0:0|0:0,0:0:0:0:
1,194,58911,2,0,P|47:183|74:185,1,70,2|0,0:0|0:0,0:0:0:0:
234,142,59277,2,0,P|175:129|152:128,1,70,8|0,0:0|0:0,0:0:0:0:
12,26,59643,6,0,P|66:38|71:140,1,140,2|8,0:0|0:0,0:0:0:0:
1,194,60192,1,0,0:0:0:0:
84,230,60375,1,2,0:0:0:0:
173,216,60558,1,8,0:0:0:0:
173,216,60649,1,8,0:0:0:0:
173,216,60741,1,8,0:0:0:0:
263,213,60924,1,2,0:0:0:0:
345,174,61106,6,0,P|320:144|286:130,1,70,2|0,0:0|0:0,0:0:0:0:
200,134,61472,1,8,0:0:0:0:
249,57,61655,2,0,L|263:12,2,35,12|8|8,0:0|0:0|0:0,0:0:0:0:
157,64,62021,2,0,L|153:13,2,35,12|8|8,0:0|0:0|0:0,0:0:0:0:
118,150,62387,1,2,0:0:0:0:
101,260,62570,6,0,P|207:236|257:243,1,140,2|8,0:0|0:0,0:0:0:0:
328,304,63119,1,0,0:0:0:0:
434,156,63302,2,0,P|373:157|329:217,1,140,2|8,0:0|0:0,0:0:0:0:
408,230,63850,1,2,0:0:0:0:
483,215,64033,5,6,0:0:0:0:
508,142,64216,1,0,0:0:0:0:
482,69,64399,1,8,0:0:0:0:
413,34,64582,2,0,P|336:30|256:49,1,140,0|2,0:0|0:0,0:0:0:0:
150,97,65131,2,0,P|190:97|243:107,1,70,8|2,0:0|0:0,0:0:0:0:
257,168,65497,6,0,L|225:323,1,140,2|8,0:0|0:0,0:0:0:0:
155,329,66046,1,0,0:0:0:0:
20,204,66228,2,0,P|92:202|133:271,1,140,8|8,0:0|0:0,0:0:0:0:
56,274,66777,1,2,0:0:0:0:
18,125,66960,6,0,L|93:119,1,70,6|0,0:0|0:0,0:0:0:0:
162,156,67326,1,8,0:0:0:0:
223,52,67509,2,0,L|227:219,1,140,0|2,0:0|0:0,0:0:0:0:
266,263,68058,2,0,P|300:229|308:199,1,70,8|2,0:0|0:0,0:0:0:0:
298,95,68424,6,0,L|458:75,1,140,6|8,0:0|0:0,0:0:0:0:
512,164,68972,2,0,L|358:154,1,140,0|2,0:0|0:0,0:0:0:0:
306,209,69521,1,8,0:0:0:0:
342,334,69704,6,0,P|361:289|369:244,1,70,2|6,0:0|0:0,0:0:0:0:
250,277,70070,2,0,P|223:228|219:186,1,70,0|8,0:0|0:0,0:0:0:0:
272,128,70436,1,0,0:0:0:0:
172,111,70619,2,0,L|343:97,1,140,8|8,0:0|0:0,0:0:0:0:
385,128,71167,1,2,0:0:0:0:
494,63,71350,6,0,L|413:54,1,70,6|0,0:0|0:0,0:0:0:0:
385,128,71716,2,0,L|475:140,1,70,8|0,0:0|0:0,0:0:0:0:
467,217,72082,2,0,L|386:208,1,70,8|2,0:0|0:0,0:0:0:0:
358,282,72448,2,0,L|448:294,1,70,8|2,0:0|0:0,0:0:0:0:
498,339,72814,5,12,0:0:0:0:
498,339,72997,1,12,0:0:0:0:
301,343,73363,1,8,0:0:0:0:
211,173,73728,2,0,L|221:216,2,35,2|2|8,0:0|0:0|0:0,0:0:0:0:
250,100,74094,1,2,0:0:0:0:
123,92,74277,6,0,P|129:156|129:236,1,140,2|8,0:0|0:0,0:0:0:0:
109,321,74826,1,0,0:0:0:0:
211,173,75009,2,0,P|266:165|333:237,1,140,8|8,0:0|0:0,0:0:0:0:
341,302,75558,1,2,0:0:0:0:
418,272,75741,5,6,0:0:0:0:
484,322,75924,1,0,0:0:0:0:
407,352,76106,1,8,0:0:0:0:
341,302,76289,2,0,L|364:147,1,140,0|2,0:0|0:0,0:0:0:0:
269,60,76838,2,0,P|315:69|349:94,1,70,8|0,0:0|0:0,0:0:0:0:
269,150,77204,6,0,P|228:160|114:139,1,140,2|8,0:0|0:0,0:0:0:0:
49,80,77753,1,0,0:0:0:0:
39,235,77936,2,0,P|103:222|160:277,1,140,8|8,0:0|0:0,0:0:0:0:
82,297,78485,1,2,0:0:0:0:
227,326,78667,6,0,L|233:241,1,70,4|0,0:0|0:0,0:0:0:0:
269,150,79033,1,8,0:0:0:0:
408,194,79216,2,0,P|359:172|271:187,1,140,0|2,0:0|0:0,0:0:0:0:
409,281,79765,2,0,P|447:272|478:250,1,70,8|2,0:0|0:0,0:0:0:0:
497,168,80131,6,0,L|481:332,1,140,6|8,0:0|0:0,0:0:0:0:
389,365,80680,2,0,L|376:198,1,140,0|2,0:0|0:0,0:0:0:0:
414,157,81228,1,8,0:0:0:0:
229,89,81411,6,0,P|304:91|338:167,1,140,2|0,0:0|0:0,0:0:0:0:
290,222,81960,1,8,0:0:0:0:
211,214,82143,1,8,0:0:0:0:
93,155,82326,2,0,P|137:143|172:150,1,70,2|2,0:0|0:0,0:0:0:0:
235,301,82692,2,0,P|177:296|141:279,1,70,8|2,0:0|0:0,0:0:0:0:
68,244,83058,6,0,L|72:328,1,70,6|0,0:0|0:0,0:0:0:0:
166,292,83424,2,0,L|157:372,1,70,8|0,0:0|0:0,0:0:0:0:
254,227,83789,2,0,L|258:310,1,70,8|2,0:0|0:0,0:0:0:0:
345,265,84155,2,0,L|336:349,1,70,8|0,0:0|0:0,0:0:0:0:
331,175,84521,5,2,0:0:0:0:
416,205,84704,1,2,0:0:0:0:
481,141,84887,1,8,0:0:0:0:
431,64,85070,2,0,L|444:26,2,35,8|8|2,0:0|0:0|0:0,0:0:0:0:
339,79,85436,2,0,L|341:39,2,35,8|8|8,0:0|0:0|0:0,0:0:0:0:
256,109,85802,1,2,0:0:0:0:
165,97,85985,6,0,P|167:150|164:187,1,70,2|0,0:0|0:0,0:0:0:0:
117,244,86350,2,0,P|163:241|204:235,1,70,8|0,0:0|0:0,0:0:0:0:
229,317,86716,2,0,P|273:305|300:294,1,70,8|2,0:0|0:0,0:0:0:0:
365,354,87082,2,0,P|404:334|430:310,1,70,8|0,0:0|0:0,0:0:0:0:
352,230,87448,6,0,L|271:216,2,70,6|0|8,0:0|0:0|0:0,0:0:0:0:
378,142,87997,2,0,L|222:144,1,140,0|2,0:0|0:0,0:0:0:0:
152,112,88546,2,0,L|166:214,1,70,8|2,0:0|0:0,0:0:0:0:
139,270,88911,5,8,0:0:0:0:
12,138,89277,2,0,L|29:55,1,70,8|0,0:0|0:0,0:0:0:0:
91,5,89643,2,0,L|104:97,1,70,8|2,0:0|0:0,0:0:0:0:
153,149,90009,2,0,L|175:78,1,70,8|0,0:0|0:0,0:0:0:0:
279,36,90375,6,0,L|357:27,2,70,6|0|8,0:0|0:0|0:0,0:0:0:0:
248,122,90924,2,0,L|398:125,1,140,0|2,0:0|0:0,0:0:0:0:
479,123,91472,2,0,P|468:170|445:195,1,70,8|2,0:0|0:0,0:0:0:0:
365,204,91838,6,0,P|414:220|409:320,1,140,6|8,0:0|0:0,0:0:0:0:
354,354,92387,1,0,0:0:0:0:
262,353,92570,2,0,L|271:273,1,70,8|2,0:0|0:0,0:0:0:0:
297,196,92936,2,0,P|243:198|216:215,1,70,8|0,0:0|0:0,0:0:0:0:
172,276,93302,5,6,0:0:0:0:
137,360,93485,2,0,L|127:265,1,70,0|8,0:0|0:0,0:0:0:0:
81,212,93850,2,0,P|93:138|118:67,1,140,0|2,0:0|0:0,0:0:0:0:
170,4,94399,2,0,P|195:37|204:74,1,70,8|2,0:0|0:0,0:0:0:0:
186,153,94765,6,0,L|340:139,1,140,6|8,0:0|0:0,0:0:0:0:
408,101,95314,1,2,0:0:0:0:
443,184,95497,1,6,0:0:0:0:
369,237,95680,2,0,L|300:224,2,70,8|8|2,0:0|0:0|0:0,0:0:0:0:
448,282,96228,5,12,0:0:0:0:
448,282,96411,1,12,0:0:0:0:
270,320,96777,1,8,0:0:0:0:
313,143,97143,1,8,0:0:0:0:
377,314,97509,1,8,0:0:0:0:
256,192,97692,12,0,100619,0:0:0:0:
5 changes: 4 additions & 1 deletion osu.Game.Rulesets.Mania/Beatmaps/ManiaBeatmapConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ public static int GetColumnCount(LegacyBeatmapConversionDifficultyInfo difficult
double roundedOverallDifficulty = Math.Round(difficulty.OverallDifficulty);

int countSliderOrSpinner = difficulty.EndTimeObjectCount;
float percentSpecialObjects = (float)countSliderOrSpinner / difficulty.TotalObjectCount;

// In osu!stable, this division appears as if it happens on floats, but due to release-mode
// optimisations, it actually ends up happening on doubles.
double percentSpecialObjects = (double)countSliderOrSpinner / difficulty.TotalObjectCount;

if (percentSpecialObjects < 0.2)
return 7;
Expand Down
17 changes: 12 additions & 5 deletions osu.Game.Rulesets.Mania/Replays/ManiaAutoGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,22 @@ private IEnumerable<IActionPoint> generateActionPoints()
private double calculateReleaseTime(HitObject currentObject, HitObject? nextObject)
{
double endTime = currentObject.GetEndTime();
double releaseDelay = RELEASE_DELAY;

if (currentObject is HoldNote)
// hold note releases must be timed exactly.
return endTime;
if (currentObject is HoldNote hold)
{
if (hold.Duration > 0)
// hold note releases must be timed exactly.
return endTime;

// Special case for super short hold notes
releaseDelay = 1;
}

bool canDelayKeyUpFully = nextObject == null ||
nextObject.StartTime > endTime + RELEASE_DELAY;
nextObject.StartTime > endTime + releaseDelay;

return endTime + (canDelayKeyUpFully ? RELEASE_DELAY : (nextObject.AsNonNull().StartTime - endTime) * 0.9);
return endTime + (canDelayKeyUpFully ? releaseDelay : (nextObject.AsNonNull().StartTime - endTime) * 0.9);
}

protected override HitObject? GetNextObject(int currentIndex)
Expand Down
Loading

0 comments on commit 6ed5613

Please sign in to comment.