Dean Herbert
5aa4235c3d
Simplify TaikoLegacyHitTarget
container hierarchy
2024-01-25 21:02:22 +09:00
Dean Herbert
dda96d7106
Rename JudgementPiece
to TextJudgementPiece
2024-01-25 19:31:57 +09:00
Chandler Stowell
d2775680e6
use stack to pass action state when applying hit results
...
this removes closure allocations
2024-01-24 13:13:45 -05:00
Bartłomiej Dach
20ed7e13e3
Fix back-to-front conditional in taiko processor
...
Would be weird to degrade a score due to *no* misses wouldn't it?
2024-01-22 19:57:12 +01:00
Bartłomiej Dach
cb8ec48717
Make RankFromScore()
's dictionary param readonly
...
Just to make sure nobody tries any "funny" business.
2024-01-22 19:56:30 +01:00
Bartłomiej Dach
5bae9074aa
Merge branch 'master' into s-rank-change
2024-01-22 19:54:53 +01:00
Dean Herbert
c8521b49cd
Change S rank to require no miss
2024-01-22 21:43:32 +09:00
Salman Ahmed
d8cba1cbfd
Move taiko playfield down a nudge to visually match stable
2024-01-20 02:08:11 +03:00
Salman Ahmed
2f618b7f35
Change taiko hit position to always match stable
2024-01-20 01:53:39 +03:00
Salman Ahmed
d4fef99e1f
Define constant input drum width for osu!taiko
2024-01-20 01:46:15 +03:00
Salman Ahmed
0c03326eaf
Update remaining usages of playfield height
2024-01-20 01:45:39 +03:00
Salman Ahmed
fa2c33c641
Upscale playfield by difference in game height as well
...
I honestly don't have much clue about this one but doing so matches master.
2024-01-20 01:15:15 +03:00
Salman Ahmed
f5ce9eaf75
Refactor taiko playfield layout to use constant values
2024-01-20 01:15:15 +03:00
Salman Ahmed
3e17d01ceb
Rewrite taiko playfield adjustment container to keep height constant
2024-01-20 00:21:34 +03:00
Salman Ahmed
ce4fd6aca5
Rename DEFAULT_HEIGHT
to BASE_HEIGHT
2024-01-19 23:58:58 +03:00
mouzedrift
cbfc6091af
apply proposed changes
2024-01-18 08:22:26 +01:00
mouzedrift
a870f99877
ease out input drum animation and add delay before fading out
2024-01-18 07:19:29 +01:00
Bartłomiej Dach
d335c01553
Merge pull request #26589 from peppy/key-binding-overlay-ordering
...
Change key overlay to use the ordering provided by rulesets
2024-01-17 13:37:26 +01:00
Bartłomiej Dach
a8970d7642
Jiggle ordering a bit further to fix revert-to-default buttons showing up
2024-01-17 12:24:48 +01:00
Dean Herbert
a4c0bfd099
Change taiko's default key ordering to better match display order
...
Fixes the issue originally fixed via
https://github.com/ppy/osu/pull/10553 in a slightly different way,
allowing more flexibility.
2024-01-17 17:37:56 +09:00
Bartłomiej Dach
fc37c5e4c2
Fix taiko maps containing only drum rolls / swells not being passable without mods
...
Closes https://github.com/ppy/osu/issues/26370 .
As was noted in the issue thread stable does not attempt to account for
such maps, and the maps are impassable in stable without No Fail.
Nevertheless that seems like a pretty anti-player behaviour and I
honestly believe that it is fine to change this in lazer.
2024-01-16 20:18:32 +01:00
Dean Herbert
0fbca59523
Fix osu!taiko judgments not being pooled correctly
...
They weren't being initialised correctly on initial pool.
2024-01-15 20:50:09 +09:00
Bartłomiej Dach
7c9adc7ad3
Fix incorrect score conversion on selected beatmaps due to incorrect difficultyPeppyStars
rounding
...
Fixes issue that occurs on *about* 246 beatmaps and was first described
by me on discord:
https://discord.com/channels/188630481301012481/188630652340404224/1154367700378865715
and then rediscovered again during work on
https://github.com/ppy/osu/pull/26405 :
https://gist.github.com/bdach/414d5289f65b0399fa8f9732245a4f7c#venenog-on-ultmate-end-by-blacky-overdose-631
It so happens that in stable, due to .NET Framework internals, float
math would be performed using x87 registers and opcodes.
.NET (Core) however uses SSE instructions on 32- and 64-bit words.
x87 registers are _80 bits_ wide. Which is notably wider than _both_
float and double. Therefore, on a significant number of beatmaps,
the rounding would not produce correct values due to insufficient
precision.
See following gist for corroboration of the above:
https://gist.github.com/bdach/dcde58d5a3607b0408faa3aa2b67bf10
Thus, to crudely - but, seemingly accurately, after checking across
all ranked maps - emulate this, use `decimal`, which is slow, but has
bigger precision than `double`. The single known exception beatmap
in whose case this results in an incorrect result is
https://osu.ppy.sh/beatmapsets/1156087#osu/2625853
which is considered an "acceptable casualty" of sorts.
Doing this requires some fooling of the compiler / runtime (see second
inline comment in new method). To corroborate that this is required,
you can try the following code snippet:
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3f).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3).Select(x => x.ToString("X2"))));
Console.WriteLine();
decimal d1 = (decimal)1.3f;
decimal d2 = (decimal)1.3;
decimal d3 = (decimal)(double)1.3f;
Console.WriteLine(string.Join(' ', decimal.GetBits(d1).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d2).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d3).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
which will print
66 66 A6 3F
CD CC CC CC CC CC F4 3F
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
8C 5D 89 FB 3B 76 00 00 00 00 00 00 00 00 0E 00
Note that despite `d1` being converted from a less-precise floating-
-point value than `d2`, it still is represented 100% accurately as
a decimal number.
After applying this change, recomputation of legacy scoring attributes
for *all* rulesets will be required.
2024-01-10 19:30:18 +01:00
Salman Ahmed
eedb436389
Move combo counter to ruleset-specific HUD components target
2023-12-30 03:47:52 +03:00
Dan Balasescu
6b4b2a57fc
Expose only as one method
2023-12-21 14:58:23 +09:00
Dan Balasescu
4e3b994142
Relocate HitResult numeric score to ScoreProcessor
2023-12-21 14:52:31 +09:00
Dean Herbert
831c273b45
Merge pull request #25887 from smoogipoo/restore-taiko-accuracy
...
Restore taiko accuracy to ScoreV2 values
2023-12-20 17:29:40 +09:00
OliBomby
ec578e1d9f
fix near-zero length sliders n stuff being placeable
2023-12-19 21:20:21 +01:00
Dan Balasescu
35c0eaee1c
Make taiko OKs worth 150 points
2023-12-19 14:01:05 +09:00
Dan Balasescu
c1b55c7fac
Add ScoreProcessor methods to override numeric result
2023-12-19 13:50:31 +09:00
clayton
f84c181573
Don't convert TaikoModRandom to/from legacy mods
2023-12-17 23:47:50 -08:00
Dan Balasescu
30116512ca
Populate MaxCombo scoring attrib for non-osu rulesets
2023-12-18 12:01:51 +09:00
Bartłomiej Dach
0f4d054bfe
Use HitWindows
data directly for computing effective OD
2023-12-14 20:41:12 +01:00
Bartłomiej Dach
fd1c72bf74
Use IBeatmapDifficultyInfo.(Inverse)DifficultyRange()
instead of local reimplementations
...
Also adds explicit references to places from where the magic constants
were lifted.
2023-12-14 20:41:12 +01:00
Dean Herbert
9a982a9564
Tidy up GetRateAdjustedDisplayDifficulty
implemetations
2023-12-13 17:13:21 +09:00
Dean Herbert
0259ab761b
Merge branch 'master' into arod_rate_adjust
2023-12-13 16:35:18 +09:00
Dan Balasescu
987fe9322e
Merge pull request #24166 from Zyfarok/scorev3
...
Modify osu! standardised scoring to introduce a combo exponent
2023-12-12 17:38:44 +09:00
Givikap120
faf54bca43
Merge branch 'master' into arod_rate_adjust
2023-12-10 01:49:18 +02:00
Dean Herbert
323808ad1e
Add more inline commenting around VELOCITY_MULTIPLIER
application to TimeRange
2023-12-07 16:34:26 +09:00
Dean Herbert
b8694aba98
Remove unnecessary prefix
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-12-06 22:00:35 +09:00
Dean Herbert
1b50d1011a
Move constant local to taiko
2023-12-06 15:59:34 +09:00
Dean Herbert
8a0d152bcf
Reapply legacy taiko velocity multiplier in all relevant places
2023-12-06 15:59:34 +09:00
Dean Herbert
1cb3c710ba
Remove complex implementation of taiko SV multiplier
2023-12-06 15:59:34 +09:00
Dean Herbert
f9dd5bd828
Remove unused constant
2023-12-06 13:39:59 +09:00
Dan Balasescu
1c3bcbd548
Use IHasPath instead of IHasDistance for mania/taiko
2023-11-29 17:30:21 +09:00
Dan Balasescu
301d503b0b
Add another source of FP inaccuracy to match osu!stable
2023-11-29 16:41:19 +09:00
Dan Balasescu
16577829e2
Fix mania and taiko slider conversion distance
2023-11-28 21:14:56 +09:00
Zyf
71e5654b64
Account for legacyAccScore in score conversion
2023-11-24 23:07:27 +01:00
Dean Herbert
9172632b0b
Rename method and adjust xmldoc to be very explicit about how wrong this is
2023-11-17 17:04:20 +09:00
Dean Herbert
a04f9aaef7
Apply various inspections
2023-11-12 16:24:35 +09:00
Dean Herbert
6bd5eda2a0
Merge branch 'master' into arod_rate_adjust
2023-11-12 15:49:07 +09:00
Thomas Müller-Höhne
926636cc03
Generalize Bezier curves to BSplines of Nth degree
2023-11-11 13:32:53 +01:00
Givikap120
e451b2197c
Delete util functions from rulesets
2023-11-09 18:23:53 +02:00
Givikap120
57170501cd
Improve code quality
2023-11-04 17:25:09 +02:00
Dean Herbert
fbba3787d1
Merge pull request #25190 from frenzibyte/match-skin-element-animation-support
...
Match capability of animating legacy skin elements with osu!(stable)
2023-10-30 18:25:06 +09:00
Dean Herbert
2886d2d4c2
Apply same changes to "argon" osu!taiko barline design that were applied to osu!mania
2023-10-25 14:20:43 +09:00
Salman Ahmed
bcbb77d383
Fix incorrect assumption in taiko circle piece logic
2023-10-24 02:29:46 +03:00
Salman Ahmed
ab3b51e4a0
Refactor osu!taiko circle piece logic to read better
2023-10-21 00:22:34 +03:00
Dean Herbert
52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid
2023-10-19 23:53:01 +09:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Dean Herbert
4381169a3f
Combine selection and input handling logic for beat snap grids across all rulesets
2023-10-17 17:09:42 +09:00
Dean Herbert
2a89a25790
Add beat snap grid to osu!taiko editor
...
Addresses https://github.com/ppy/osu/discussions/25150 .
2023-10-17 16:59:56 +09:00
Bartłomiej Dach
71c4b138fb
Merge branch 'master' into fix-legacy-score-multipliers-2
2023-10-09 10:53:14 +02:00
Dean Herbert
f2e56bbb65
Fix publicly-settable bindables
2023-10-06 16:51:24 +09:00
Bartłomiej Dach
0ae4a0f11f
Adjust gameplay element maximum size limits for backwards compatibility
...
The new limits were chosen by sampling across over 4000 skins. The
methodology for doing so is described in the following gist:
https://gist.github.com/bdach/6228ba41d128b23d1f89142f404108a3
2023-10-05 20:37:10 +02:00
Dean Herbert
d660395850
Ensure there's no chance of a press being ignored during rewind flow
2023-10-05 23:02:45 +09:00
Bartłomiej Dach
a1368df62f
Allow judging at most one swell tick per frame
2023-10-04 19:08:03 +02:00
Dan Balasescu
da2a4681d9
Add method to retrieve legacy score multiplier
2023-10-02 16:52:01 +09:00
Dean Herbert
9d8c3f0f5c
Merge pull request #24779 from smoogipoo/split-legacy-scoring-attribs
...
Split legacy scoring attribs into its own table
2023-09-26 22:35:38 +09:00
Dan Balasescu
19a442a32a
Fix incorrect change in taiko score simulator
2023-09-26 17:46:03 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions
2023-09-26 16:40:32 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs
2023-09-26 15:52:27 +09:00
Salman Ahmed
ad86bf2d56
Revert redundant size limitations
...
Already handled by the sprites themselves being resized.
2023-09-21 19:03:59 +03:00
Dean Herbert
cb0226f843
Implement new interface-based speed change visualisation support on mania/taiko
2023-09-20 15:28:13 +09:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv
2023-09-20 14:23:07 +09:00
Salman Ahmed
291a91be66
Change extension from retrieval to post-processing instead
2023-09-19 03:40:30 +03:00
Dean Herbert
56cc2b62f0
Make not extension method
2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff
Move to extension method and throw on non-legacy ruleset
2023-09-15 17:38:34 +09:00
Givikap120
1a70110a4e
Added BeatmapAttributesDisplay support
2023-09-12 16:44:44 +03:00
Givikap120
c61212c523
Merge pull request #1 from Givikap120/master
...
add display to calibrate
2023-09-12 13:02:19 +03:00
Dean Herbert
4ecc4632aa
Make rounding error even less precise
...
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dan Balasescu
628517569b
Fix another difficulty-specific value
2023-09-08 21:08:09 +09:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
Dean Herbert
b34a36f6ce
Remove all usage of LegacyDifficultyControlPoint
2023-09-07 17:41:57 +09:00
Dean Herbert
1a37543d28
Rename SliderVelocity
to SliderVelocityMultiplier
to distinguish from Velocity
2023-09-06 19:01:08 +09:00
Dean Herbert
9d17539778
Add size limitations for taiko drum rolls
2023-09-05 18:01:19 +09:00
Salman Ahmed
d286816ba8
Add limit to taiko hit elements
2023-09-03 02:22:58 +03:00
Dean Herbert
37c2b330a2
Move toggle implementation to work on all scrolling rulesets automatically
2023-09-01 19:53:10 +09:00
Dean Herbert
0f5eff1230
Merge branch 'master' into mania-edit-disable-sv
2023-09-01 19:08:48 +09:00
Givikap120
290f8db341
fixed stated problems
...
removed functions from `Ruleset.cs` and added a `GetEffectiveDifficulty()` instead
2023-08-26 02:13:14 +03:00
Givikap120
17b9b1649a
Fixed "works only for std" problem
...
1) Now it use AR/OD calculation from Ruleset class
2) Implemented needed functions in each of default rulesets
2023-08-25 00:58:26 +03:00
Dan Balasescu
a2fd7707a1
Allow toggling SVs in the editor
2023-08-18 18:55:24 +09:00
OliBomby
71a96e8be2
Remove SV from DrumRoll
2023-08-13 21:47:13 +02:00
Dan Balasescu
3a609c9b53
Merge branch 'master' into taikostatacc
2023-08-05 11:38:24 +02:00
Natelytle
5f0020b0ca
Reduce accuracy scaling
2023-07-30 20:14:15 -04:00
Bartłomiej Dach
6d018c08af
Rename Apply{Vertical -> Horizontal}Centering
to match common understanding
2023-07-28 22:09:28 +02:00
Natelytle
e56942012c
Serialize ok hit window attribute to db
2023-07-28 11:38:30 -04:00
Natelytle
faddc4fa99
Merge remote-tracking branch 'osumaster/master' into taikostatacc
2023-07-28 11:36:59 -04:00
Natelytle
4de024675c
Make comments more professional
2023-07-27 23:02:07 -04:00
Natelytle
31c8cf0933
Buff accuracy scaling
2023-07-27 22:44:56 -04:00
Dean Herbert
deba6e2508
Fix osu!taiko editor playfield missing a piece
...
Regressed with recent centering changes in https://github.com/ppy/osu/pull/24220
2023-07-27 02:24:10 +09:00
Bartłomiej Dach
7e98d319d8
Use update-invariant way of checking for second press on same frame
...
Fixes the same issue that 970ea50269
did,
but with no `AlwaysPresent` usage.
2023-07-25 20:07:03 +02:00
chayleaf
970ea50269
fix alive hitobjects blocking hits in taiko with hd
2023-07-20 23:20:35 +07:00
Bartłomiej Dach
041e818892
Fix nested hits not being hittable if cut off by parent object ending
2023-07-15 18:44:47 +02:00
Bartłomiej Dach
9e960894c2
Add inline commentary about OnKilled()
override
2023-07-15 18:22:04 +02:00
chayleaf
3e91d30825
move StrongNestedHit OnKilled to DrawableStrongNestedHit
2023-07-15 22:33:16 +07:00
chayleaf
7f957d3fbe
Fix some taiko maps not finishing in some conditions
...
I don't know how to reproduce this issue in a test, so no tests for now.
Nonetheless, this fixes the issue for me at least on one map:
https://osu.ppy.sh/beatmapsets/1899665#taiko/3915653
This workaround is similar to #16475 (the test from that commit got
eventually removed for some reason).
2023-07-15 20:24:40 +07:00
Bartłomiej Dach
632077319f
Fix taiko statistics table not using 2-column layout
2023-07-13 20:06:53 +02:00
Bartłomiej Dach
16540d69d5
Merge pull request #24206 from peppy/results-screen-misc
...
Fix some minor issues with results screen
2023-07-13 19:49:49 +02:00
Dean Herbert
9ad63bae37
Add missing heading for statistics section in results screen
2023-07-13 18:50:52 +09:00
Dean Herbert
259ac6d427
Fix osu!taiko swells eating input after already being judged
2023-07-13 13:32:20 +09:00
Bartłomiej Dach
7be5e0e978
Implement back-and-forth conversion of ModScoreV2
and LegacyMods
2023-07-09 16:15:21 +02:00
Bartłomiej Dach
ba0cd7a3f2
Fix flourish sample not playing if strong hits are hit early
2023-07-08 19:22:32 +02:00
Bartłomiej Dach
fee56ac6d2
Use new IGameplayClock.IsRewinding
member
2023-07-08 18:29:49 +02:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt
2023-07-08 18:10:04 +02:00
Dean Herbert
a76cd9b0e6
Update osu.Game.Rulesets.Taiko/UI/DrumSamplePlayer.cs
...
Co-authored-by: Jamie Taylor <me@nekodex.net>
2023-07-08 00:44:26 +09:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
...
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Dean Herbert
8b5d5c9ae2
Fix rewinding causing incorrectly stronged non-strong hits
2023-07-07 15:13:25 +09:00
Dean Herbert
755b82a308
Implement flourish trigger source via base class
2023-07-07 14:54:49 +09:00
Dean Herbert
9bdc80a749
Move flourish playback to own trigger source
2023-07-07 14:46:36 +09:00
Dean Herbert
6bfbcca2fd
Move VolumeAwareHitSampleInfo
to own file
2023-07-07 14:45:33 +09:00
Dean Herbert
48f27ff340
Move trigger source to own file
...
Having such a large nested class inside a small top level class is VERY
confusing.
2023-07-07 14:31:14 +09:00
Dean Herbert
d4c252ddf9
Revert cancelling logic changes based on review feedback
2023-07-07 14:28:57 +09:00
Dean Herbert
0b5a3d6a91
Merge pull request #24120 from peppy/fix-taiko-animation-timing
...
Fix taiko hit overlay animation timing not accounting for timing section start time
2023-07-07 13:05:20 +09:00
Dean Herbert
5af4aa8741
Avoid strong hits cutting off other strong hits
2023-07-06 14:05:49 +09:00
Dean Herbert
9ff6b3fcd3
Merge branch 'master' into editor-save-local-score-management
2023-07-06 12:28:44 +09:00
Bartłomiej Dach
a87a631c50
Merge branch 'master' into taiko-hitsounding-final-attempt
2023-07-05 22:15:32 +02:00
Bartłomiej Dach
afc0c4f3c2
Merge pull request #24088 from peppy/taiko-hitsounding-drum-sample-player
...
Move all remaining osu!taiko sample playback logic out of `DrawableHitObject`s
2023-07-05 21:57:49 +02:00
Dean Herbert
8f61f5e4c6
Cache Playfield
for the sake of tests
...
I'm open to an alternative. Name it.
2023-07-05 18:44:27 +09:00
Dean Herbert
289f916cd7
Remove outdated TODO
2023-07-05 18:44:27 +09:00
Dean Herbert
759cd5aec7
Warm up pool with argon-specific drum samples
2023-07-05 18:44:27 +09:00
Dean Herbert
f086908831
Don't attempt to play drum samples when rewinding
2023-07-05 18:44:27 +09:00
Dean Herbert
16f1a7694d
Add time-based flourish support
2023-07-05 18:44:27 +09:00
Dean Herbert
c72ebcfd53
Fix skin fallback not working as expected
2023-07-05 18:44:27 +09:00
Dean Herbert
010262c764
Change strong hit sample handling to be user input based, not hit object based
2023-07-05 18:44:27 +09:00
Dean Herbert
a9587fd1aa
Move strong hit handling to DrumSamplePlayer
and separte trigger sources
2023-07-05 18:44:27 +09:00
Dean Herbert
27af07b74b
Add basic implementation of argon osu!taiko hitsounds (volume / flourish / strong)
2023-07-05 18:44:27 +09:00
Dean Herbert
beed390031
Add balance adjust to base implementation of DrumSampleTriggerSource
2023-07-05 18:44:27 +09:00
Dean Herbert
ae86fc736a
Add argon-specific DrumSamplePlayer
2023-07-05 18:44:27 +09:00
Dean Herbert
f54eb8d7fa
Move DrumSamplePlayer
to be a skinnable component
2023-07-05 18:44:27 +09:00
Dean Herbert
9a7bf1bedd
Fix reversed order of sample return
2023-07-05 18:44:01 +09:00
Dean Herbert
3b9d7af9ee
Fix taiko hit overlay animation timing not accounting for timing section start time
2023-07-05 17:25:31 +09:00
Dean Herbert
1629024111
ILegacyScoreProcessor
-> ILegacyScoreSimulator
2023-07-04 17:32:54 +09:00
Dean Herbert
d74b1e148d
Make ScoreInfo.BeatmapInfo
nullable
2023-07-04 14:50:34 +09:00
Dean Herbert
571dbf5ab8
Adjust logic to avoid creating List<>
each playback
2023-06-30 15:42:58 +09:00
Dean Herbert
c98abf1723
More correctly handle StrongNestedHitObject
s
2023-06-30 15:38:17 +09:00
Dean Herbert
e87cf6d256
Move all remaining osu!taiko sample playback logic out of DrawableHitObject
s
2023-06-30 15:21:34 +09:00
Dan Balasescu
c6ad184d94
Move Ruleset method to ILegacyRuleset interface
2023-06-29 17:24:37 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dan Balasescu
5f350aa66f
Fix float division
...
Firstly, this is intended to be a float division.
Secondly, dividing integers by 0 results in an exception, but dividing
non-zero floats by 0 results in +/- infinity which will be clamped to
the upper range.
In particular, this occurs when the beatmap has 1 hitobject (0 drain
length).
2023-06-27 17:14:35 +09:00