Commit Graph

3549 Commits

Author SHA1 Message Date
16e60eed56 Reduce NestedHitObject enumerator overhead
This was especially bad due to it allocating on any and every start time
change, even the first (see usage in `HitObject.ctor`).
2021-09-20 15:09:27 +09:00
a743a3f306 Change combo bind logic to be non-weird 2021-09-17 19:15:14 +09:00
2d39131202 Refactor taiko flashlight a bit 2021-09-17 18:41:03 +09:00
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
a1d325cb22 Mark key and value non-nullable (at realm end) and simplify Value logic 2021-09-15 17:16:05 +09:00
a150fb2996 Add nullability directive and make variant non-nullable 2021-09-15 17:16:05 +09:00
dcfe9c67e3 Make ruleset id non-nullable 2021-09-15 17:12:04 +09:00
80ecf81be3 Rename all databased setting classes to be specific to rulesets for now 2021-09-15 17:12:04 +09:00
520e550764 Bring back SettingsStore to avoid changing ruleset API for now
Also fixes some remaining test failures due to locally constructed
rulesets that are not being tracked by the game.
2021-09-15 17:12:02 +09:00
c36a67d06e Fix some tests failing due to using a locally constructed ruleset 2021-09-15 17:04:38 +09:00
a2f1752344 Make settings works with current caching structure
Will likely pull out that `RulesetConfigCache` next, but this is an
"everything works" state.
2021-09-15 16:31:13 +09:00
187c557ea8 Begin migrating settings implementation across to realm 2021-09-15 16:22:14 +09:00
464797fecf Allow ModIcon to be constructed using an IMod 2021-09-10 12:43:12 +09:00
c3531e1361 Move more specification from Mod to IMod 2021-09-10 12:42:53 +09:00
719392de39 Change CreateInstance to use Activator.CreateInstance instead of clone 2021-09-10 12:05:10 +09:00
cf633973a9 Refactor exposed mod retrieval methods for better safety 2021-09-10 11:09:13 +09:00
2edb851008 Add ability to lookup mod from a type specification 2021-09-09 16:50:59 +09:00
4d0530ca9d Add new methods to ruleset for quicker mod lookups 2021-09-09 16:46:14 +09:00
25420af078 Rename method to drop redundant ruleset suffix 2021-09-05 13:34:23 +09:00
ce1912781e Add extension point for ruleset-specific beatmap setup sections 2021-09-02 23:29:14 +02:00
cdd0262ca1 Merge pull request #14598 from smoogipoo/adjust-classic-scoring
Make classic scoring a constant multiple of standardised scoring
2021-09-02 19:18:03 +09:00
6c649b7bbe Merge branch 'master' into no-more-sample-control-points-info 2021-09-02 18:09:05 +09:00
e2f7aaeb71 Fix 0 score with bonus-only maps 2021-09-02 17:00:13 +09:00
b907c2f4f6 Fix osu! judgements getting scaled twice over different durations 2021-09-02 16:31:43 +09:00
31433c4b89 Apply @spaceman_atlas' quadratic factor 2021-09-02 16:26:17 +09:00
bd0f385cdb Make classic scoring a constant multiple of standardised scoring 2021-09-01 14:53:11 +09:00
d988aa1680 Actually serialise SampleControlPoints along with HitObjects 2021-08-31 15:14:03 +09:00
ce0d7cce2d Merge branch 'remove-ijsonserializable' into no-more-sample-control-points-info 2021-08-31 14:40:54 +09:00
c25ab6835c Remove IJsonSerializable interface
Was pretty pointless and made it hard to use the custom serialisation
terms arbitrarily in tests.
2021-08-31 14:39:20 +09:00
4da2dca339 Apply the default SampleControlPoint if not externally provided
This is mostly to handle tests for now, as generally this should be
provided by an external source in all other cases.
2021-08-30 17:21:07 +09:00
ccacf56dd8 Move to legacy namespace 2021-08-30 17:14:53 +09:00
7257aae7f2 Move samples to LegacyControlPointInfo 2021-08-30 17:14:53 +09:00
4dd60e3299 Merge branch 'master' into taiko-drum-refacor 2021-08-30 14:12:52 +09:00
a28bc9f6b2 Merge branch 'master' into path-control-point-bindable-removal 2021-08-27 09:37:37 +09:00
2ef2af17eb Merge branch 'master' into alternative-difficulty-bindable 2021-08-26 23:07:52 +02:00
15aa0458bc Use PausableSkinnableSound instead 2021-08-26 17:15:36 +09:00
ec85d7f356 Remove unused helper method 2021-08-26 17:15:23 +09:00
982c4eff14 Merge branch 'master' into taiko-drum-refacor 2021-08-26 17:13:14 +09:00
e32933eb54 Avoid Enum.GetValues in each score population pass 2021-08-26 13:37:53 +09:00
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
fd78d0440b Update missed conditional 2021-08-25 17:00:32 +09:00
ccfff50c6f Apply fixes in line with issues found during testing
I was trying to be too smart with caching, but if the `Play` method was
not called often enough it would have a recent reference. Unfortunately
this requires a separate query to `Entries`, but is also a special case
(no future hitobjects).

This also removes the time-based checks (result status alone should be
all we care about).
2021-08-25 16:56:44 +09:00
ef2b5e1c51 Tidy up variable names and unused resolved properties 2021-08-25 16:56:44 +09:00
a1936b141b Refactor base class to allow correct usage in taiko drum 2021-08-25 16:56:44 +09:00
681215e5b5 Rewrite object lookup to use previous entry regardless
This changes the fallback logic to always prefer the previous resolved
lifetime entry rather than fallback to the first entry ever. I think
this is more correct in all cases.

Also rewrites the inline comments to hopefully be easier to parse.
2021-08-25 16:56:44 +09:00
4a294d4de4 Optimise fallback logic to reduce lookups to bare minimum 2021-08-25 16:56:44 +09:00
6aa894e55e Split out separate component 2021-08-25 16:56:44 +09:00
84637b59ef Define DifficultyBindableWithCurrent and use in SliderControl 2021-08-25 07:40:41 +03:00
956c1cc216 Merge branch 'master' into activity-on-multiplayer-screens 2021-08-24 12:33:34 +09:00
956112eb10 Reword comment and remove brackets 2021-08-22 12:40:41 +03:00