1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 14:22:55 +08:00
Commit Graph

898 Commits

Author SHA1 Message Date
smoogipoo
dda4d76d72 Fix bad equality comparer implementations 2020-12-01 18:09:21 +09:00
smoogipoo
4900589af4 Remove unused method 2020-12-01 17:02:45 +09:00
smoogipoo
2bb7484608 Merge branch 'immutable-hit-samples' into hit-sample-pooling 2020-12-01 16:05:28 +09:00
smoogipoo
199710b941 Implement equality comparers for HitSampleInfo 2020-12-01 16:04:08 +09:00
smoogipoo
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
Dean Herbert
51741c4791
Merge branch 'master' into hit-sample-pooling 2020-11-30 22:25:28 +09:00
smoogipoo
4bbeb9ebd4 Merge branch 'master' into hit-sample-pooling 2020-11-30 18:31:58 +09:00
smoogipoo
8f48389f89 Merge branch 'master' into improve-dho-time-offsets 2020-11-30 18:01:48 +09:00
Dan Balasescu
11d1450c76
Merge branch 'master' into fruit-bindables 2020-11-30 16:48:22 +09:00
Dean Herbert
18bb0cb45b Remove unnecessary schedule logic from Apply's local updateState call
There were cases in the editor where rewinding of transforms would
leave the `DrawableHitObject` in a non-`IsPresent` state, resulting in
this scheduled logic never running.

This would in turn cause ghost hitobjects, which disappear under certain
circumstances.

Reproduction:

- Open editor to empty beatmap
- Place single hitcircle at current point in time
- Drag editor timeline backwards to seek before zero, and wait for
  return to zero
- Select hitcircle in playfield
- Drag hitcircle to right in timeline, triggering a start time change
2020-11-27 16:32:05 +09:00
Dean Herbert
bcc197f9fe
Merge branch 'master' into improve-dho-time-offsets 2020-11-27 15:03:56 +09:00
ekrctb
e36bb7631d Fix colour not updated when index changes 2020-11-27 11:41:39 +09:00
ekrctb
57454bbb1c Remove hitObject argument from OnApply and OnFree 2020-11-27 10:13:05 +09:00
Dean Herbert
b1864670a2
Merge pull request #10961 from smoogipoo/better-dho-rewind
Rewind pooled DHOs into better states
2020-11-27 00:42:58 +09:00
smoogipoo
aa4da2a5f8 Add xmldoc on State 2020-11-26 23:42:05 +09:00
smoogipoo
e53f849aa0 Completely separate combo colours from DHOs 2020-11-26 18:14:25 +09:00
smoogipoo
0414e5c550 Add MaximumJudgementOffset to DrawableHitObject, use in more places 2020-11-26 01:12:42 +09:00
smoogipoo
c744db1b57 Rewind pooled DHOs into better states 2020-11-26 00:42:25 +09:00
Dan Balasescu
87ce8a53ff
Merge branch 'master' into on-drawable-hitobject-added 2020-11-24 16:09:57 +09:00
Dean Herbert
19faa2b9bb Add comment covering intentional call to ClearTransformsAfter 2020-11-23 15:20:59 +09:00
ekrctb
666112cb5a Address @bdach's minor suggestions 2020-11-22 18:51:16 +09:00
ekrctb
c506b438bf Remove more code and make some methods private 2020-11-22 18:51:16 +09:00
ekrctb
281ed49332 Add HasInitialized to DHO
As it turned out, `IsLoaded` is not a reliable way.
2020-11-21 11:19:52 +09:00
ekrctb
82aefa3868 Rework and rename to OnNewDrawableHitObject.
The semantics is changed and hopefully more clear.
2020-11-21 00:27:19 +09:00
smoogipoo
70cb197957 Cleanups 2020-11-19 20:38:36 +09:00
smoogipoo
730b14b5bb Add initial hit sample pooling 2020-11-19 19:51:09 +09:00
smoogipoo
cb5d1d0d77 Remove obsolete method 2020-11-18 21:26:35 +09:00
smoogipoo
cead67d512 Add back removed InitialLifetimeOffset removal 2020-11-16 21:49:29 +09:00
Dan Balasescu
09298139e1
Merge pull request #10844 from bdach/spinner-rotation-tracker-state
Fix rotation tracker state not being reset on drawable spinner re-use
2020-11-16 17:10:40 +09:00
Bartłomiej Dach
9c0a0031d6 Clear existing transforms on DHO return to pool 2020-11-15 19:50:22 +01:00
Bartłomiej Dach
f8cabbdd21 Clear result when freeing pooled hitobject 2020-11-14 21:09:22 +01:00
smoogipoo
c71b237c4f Merge all pooling support into Playfield 2020-11-14 00:59:08 +09:00
smoogipoo
36f1833f6e Move hitobject pooling to Playfield 2020-11-14 00:41:18 +09:00
Dean Herbert
06fd0d08d1
Merge branch 'master' into nested-hitobject-pooling 2020-11-13 16:53:20 +09:00
smoogipoo
35329aa976 Reduce the number of state updates 2020-11-13 14:33:23 +09:00
Dan Balasescu
2840fd0f8f
Merge branch 'master' into hitobject-pooling-base 2020-11-12 23:17:36 +09:00
smoogipoo
261ddd2b4a Fix samples not being disposed 2020-11-12 18:48:25 +09:00
smoogipoo
a8c2b798ad Add support for nested hitobject pooling 2020-11-12 17:43:51 +09:00
smoogipoo
606cfacedf Fix state update exception in a better way 2020-11-11 19:01:12 +09:00
smoogipoo
5d55af5818 Fix hitobjects sometimes not fading in completely with HD mod 2020-11-11 16:35:48 +09:00
smoogipoo
b725c9cce9 Fix possible nullrefs 2020-11-11 00:24:28 +09:00
smoogipoo
e525784cb2 Clear lifetimeEntry after use 2020-11-11 00:24:14 +09:00
smoogipoo
31e4d71852 Rewrite HitObjectContainer with pooling support 2020-11-10 22:49:02 +09:00
smoogipoo
6f3f6dc28b Add hitobject lifetime support 2020-11-10 20:16:52 +09:00
smoogipoo
757a4b5c31 Add hitobject lifetime model 2020-11-10 19:26:01 +09:00
smoogipoo
88112801eb Remove result storage from hitobject 2020-11-10 18:56:16 +09:00
smoogipoo
f5076fe3b8 Revert unnecessary change 2020-11-10 18:15:11 +09:00
smoogipoo
d4d3a6621e Disable automatic lifetime management 2020-11-10 01:30:25 +09:00
smoogipoo
ac47399e6e Update state after OnApply() 2020-11-10 00:30:23 +09:00
smoogipoo
ec8b726ea8 Re-privatise start time bindable 2020-11-09 21:51:58 +09:00
Dan Balasescu
33c3b07101
Fix events not being bound correctly
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-11-09 19:06:48 +09:00
smoogipoo
b1e039bcec Prevent overrides from messing with application/freeing 2020-11-07 00:40:26 +09:00
smoogipoo
3a4bd73823 Fix DHOs being freed when not expected 2020-11-07 00:25:26 +09:00
smoogipoo
7eceda242b Change derived class to use property 2020-11-06 23:04:28 +09:00
smoogipoo
2d892c7407 Allow Apply() to be called multiple times sequentially 2020-11-06 23:03:29 +09:00
smoogipoo
248d342a2f Initial Apply()/FreeAfterUse() DHO implementation 2020-11-06 23:02:37 +09:00
Dean Herbert
a0b3379909 Fix judgement offsets being zero when windows are empty 2020-11-05 18:58:37 +09:00
Dean Herbert
0cadb31947 Merge branch 'master' into drawable-hit-object-hit-state-fix 2020-11-05 17:07:52 +09:00
smoogipoo
9a7fcadabc Use BDL for top-level osu! DHOs 2020-11-05 13:51:46 +09:00
Dean Herbert
68b7efe4d5 Change order of execution to be chronological 2020-11-04 17:14:23 +09:00
Dean Herbert
831325978a Always execute UpdateHitStateTransforms (even for idle) 2020-11-04 17:14:23 +09:00
Dean Herbert
3b6cf95f49 Remove parameter from StartTime method and add obsoleted previous version 2020-11-04 16:39:52 +09:00
Dean Herbert
7f30140b7e Add new method handling hit state specifically
Until now UpdateStateTransforms was applying results offsets to
StartTime. This didn't cover the case of a HitObject with duration,
where the call would be made with `StartTime + hitOffset` rather than
`EndTime + hitOffset`.

To resolve this, a new method has been added which should be used to
handle hit-specific state transforms.
2020-11-04 16:13:14 +09:00
Berkan Diler
fe3a23750c Use char overloads for string methods 2020-10-16 11:52:29 +02:00
smoogipoo
372761a46f More/better commenting 2020-10-12 19:22:34 +09:00
smoogipoo
eb4ef157ca Fix implicit segments not being constructed correctly 2020-10-12 19:16:37 +09:00
smoogipoo
48c0ae40ef Fix multi-segment sliders not parsing correctly 2020-10-12 18:04:28 +09:00
smoogipoo
696e3d53af Fix slider samples being overwritten by the last node 2020-10-09 20:50:09 +09:00
Dean Herbert
eacc7dca9a Fix SliderPath not handling Clear correctly 2020-10-09 06:31:59 +09:00
Dean Herbert
3c3c1ce885 Don't force playback of (non-looping) DrawableHitObject samples after skin change 2020-10-07 18:18:01 +09:00
Dean Herbert
a8151d5c63 Fix HitWindows getting serialized alongside HitObjects
These were being serialized as the base type. On deserialization, due to
the HitWindow of objects being non-null, they would not get correctly
initialised by the CreateHitWindows() virtual method.

- Closes #10403
2020-10-07 13:45:42 +09:00
Dean Herbert
c622adde7a Rename method back and add xmldoc 2020-10-05 16:24:02 +09:00
Dean Herbert
9f43dedf59 Fix missing line 2020-10-05 15:12:34 +09:00
Dean Herbert
758088672c Don't stop non-looping samples immediately when pausing 2020-10-05 15:07:46 +09:00
Bartłomiej Dach
2ddfd79923 Replace object pattern match with simple conditional 2020-10-03 08:09:10 +02:00
Bartłomiej Dach
2b1ef16f89 Replace comparison references to HitResult.Miss with IsHit 2020-10-02 23:31:24 +02:00
Dean Herbert
3069428efe
Merge pull request #10316 from smoogipoo/fix-spinner-flicker
Fix default spinner flashing yellow glow before completion
2020-10-01 22:29:48 +09:00
smoogipoo
ab33434a8a Reword xmldocs to better describe nested events 2020-10-01 21:54:43 +09:00
smoogipoo
042c39ae1b Remove redundant string interpolation 2020-10-01 21:48:45 +09:00
smoogipoo
d7f9b8045c Safeguard againts multiple ApplyResult() invocations 2020-10-01 21:33:54 +09:00
Dean Herbert
b7ac779760 Merge branch 'master' into fix-hitobject-sample-stuck-on-future-seek 2020-10-01 16:46:14 +09:00
smoogipoo
cb6b35116a Merge branch 'master' into scoring-standardisation 2020-10-01 12:28:51 +09:00
smoogipoo
c9f38f7bb6 Add obsoletion notice 2020-10-01 12:28:33 +09:00
Dean Herbert
4b70fe8585 Merge branch 'fix-storyboard-sample-pausing' into fix-hitobject-sample-stuck-on-future-seek 2020-09-30 22:46:09 +09:00
Dean Herbert
6cceb42ad5 Remove unused DI resolution 2020-09-30 15:50:53 +09:00
Dean Herbert
414c40d298 Reverse inheritance order of SkinnableSound's pause logic 2020-09-30 15:45:14 +09:00
smoogipoo
6264a01ecc Add guard against using the wrong hit result 2020-09-29 16:33:38 +09:00
Dean Herbert
5d1c377379 Fix HitObject samples getting stuck in a playing state on seeking far into the future 2020-09-29 15:07:55 +09:00
Dean Herbert
d6f3beffb6 Use existing bindable flow instead 2020-09-29 12:50:17 +09:00
Dean Herbert
4f0c0ea5f9 Fix hit samples playing while paused / seeking in the editor 2020-09-28 18:17:47 +09:00
Dean Herbert
59bfa08684 Forcefully re-apply DrawableHitObject state transforms on post-load DefaultsApplied 2020-09-25 18:26:54 +09:00
Dean Herbert
33fad27ec2 Avoid API change to DrawableHitObject 2020-09-24 13:28:29 +09:00
Dean Herbert
00b0228b61 Merge branch 'master' into fix-taiko-editor-type-stats 2020-09-24 13:18:13 +09:00
Dean Herbert
fee379b4b9 Reword xmldoc for legibility 2020-09-23 18:12:07 +09:00
Dean Herbert
9a0e5ac154 Handle type/strength changes from samples changes 2020-09-23 18:09:40 +09:00
Dean Herbert
a1ec167982 Add the ability to toggle new combo state from composer context menu 2020-09-23 16:38:16 +09:00
smoogipoo
73a7b759cb Add missing obsoletion notice 2020-09-17 17:04:44 +09:00
Dean Herbert
a8b405791a Fix non-convert slider and spinner serialization 2020-09-14 17:32:32 +09:00
Salman Ahmed
5439099b7c Merge GlobalSkinConfiguration settings into the LegacySetting enum 2020-07-29 10:35:51 +03:00
smoogipoo
5f98195144 Load nested hitobjects during map load 2020-07-24 18:16:36 +09:00
Dean Herbert
ac602846df Expose balance and sample loading methods in DrawableHitObject 2020-07-22 16:37:58 +09:00
smoogipoo
e95a1beaef Update state after applying hitobject 2020-07-15 16:53:27 +09:00
Bartłomiej Dach
c5049b51c5 Mark normal-hitnormal sample as layered 2020-06-22 20:08:29 +02:00
smoogipoo
88aed1d504 Merge branch 'master' into update-inspectcode-version 2020-06-09 20:12:39 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
Dean Herbert
1992a3db54 Fix redundant override showing up in build warnings 2020-06-03 15:50:00 +09:00
Dan Balasescu
64d1b4b11b
Merge branch 'master' into move-setter-to-duration 2020-06-01 15:55:48 +09:00
smoogipoo
cac6e93575 Restore original IHasCurve implementation 2020-06-01 15:11:58 +09:00
smoogipoo
53b58910c3 Invert interface definition 2020-06-01 14:27:39 +09:00
Dean Herbert
e688033967 Fix incorrect xmldoc 2020-05-31 22:39:03 +09:00
Dean Herbert
f9883373bb Flip direction to avoid breaking other usages 2020-05-29 16:11:26 +09:00
Dean Herbert
cbd563e80b Rename to IHasDuration 2020-05-27 12:38:39 +09:00
Dean Herbert
b8e0a6f127 Move sett from EndTime to Duration 2020-05-27 12:37:44 +09:00
Dean Herbert
6b5b215299 Split out IHasPath from IHasCurve to better define hitobjects 2020-05-26 17:44:47 +09:00
Dean Herbert
0cc6d6d97c
Merge pull request #9033 from smoogipoo/applydefaults-cancellation
Add cancellation token support to CreateNestedHitObjects()
2020-05-26 12:04:06 +09:00
smoogipoo
6f4cd6111c Drop obsoletion status for now 2020-05-25 16:50:49 +09:00
smoogipoo
bc35bc5efb Merge branch 'master' into applydefaults-cancellation 2020-05-25 16:45:30 +09:00
Dan Balasescu
7846445b45
Merge branch 'master' into mania-distance-snap-grid 2020-05-22 21:17:25 +09:00
Dan Balasescu
648fc3af41
Merge branch 'master' into bar-line-floating-point 2020-05-22 16:32:25 +09:00
Dean Herbert
ce35d09e7d Fix incorrect alpha application to lines on rewinding 2020-05-22 12:45:37 +09:00
Dean Herbert
ce223a2bd8 Silence hit sounds while seeking 2020-05-21 11:08:06 +09:00
Dean Herbert
c2697d3907 Use DrawableSample in SkinnableSound class 2020-05-20 20:49:01 +09:00
Dean Herbert
db4e3047dd Add test for final sample output 2020-05-19 23:28:13 +09:00
Bartłomiej Dach
17ae392a75 Apply rounding to bar line start times 2020-05-17 22:11:13 +02:00
smoogipoo
6cd1753459 Add overload to prevent crashes (bosu) 2020-05-15 18:51:44 +09:00
smoogipoo
4719fcc291 Actually use the cancellation token 2020-05-15 18:17:39 +09:00
smoogipoo
98125102a7 Add cancellation token support to CreateNestedHitObjects() 2020-05-15 18:07:41 +09:00
smoogipoo
22dda3fe02 Make ScrollingHitObjectContainer respond to defaults applied events 2020-05-08 18:49:58 +09:00
smoogipoo
efff2bf15d Add HitObject to DefaultsApplied event 2020-05-08 18:49:19 +09:00
smoogipoo
93151f7612 Add back necessary events + addition to list 2020-04-22 18:32:59 +09:00
smoogipoo
8b0274fedd Remove obsolete methods 2020-04-22 17:55:50 +09:00
Dean Herbert
8ebc2ae03d Never run subtree masking 2020-04-20 20:48:35 +09:00
smoogipoo
44981431c5 Remove suffix hackery 2020-04-14 21:33:32 +09:00
smoogipoo
6935221463 Improve logic for CSB transfer 2020-04-14 21:05:07 +09:00
smoogipoo
58a7313091 Fix fallback for file hit samples 2020-04-13 20:09:17 +09:00
smoogipoo
cee4b005e6 Fix custom sample set 0 not falling back to default samples 2020-04-13 20:00:06 +09:00
Dean Herbert
65b96079a0 Move dampening to base implementation and change range to 0..1 2020-04-13 13:01:02 +09:00
Fire937
22d89dbff7 Merge branch 'master' of https://github.com/ppy/osu into stereo-shifted-playback 2020-04-12 01:46:32 +02:00
Fire937
f274ec297c Add positional sound support for all rulesets
The SamplePlaybackBalance is calculated in a way that the balance
remains between -0.4 and 0.4.
Positional sound is not supported in osu!taiko.
2020-04-12 01:33:25 +02:00
smoogipoo
a84fe2525b Fix nested hitobjects potentially indirectly masked away 2020-04-11 16:53:45 +09:00
Fire937
c17e470266 Fix PositionalSound calculation implementation
The position used to calculate the stereo balance is now the position of
the drawable (as opposed to the position specified in the beatmap file
previously).
2020-04-10 00:01:35 +02:00
Fire937
2201e9b4ae Add stereo shifted hitsound playback support
There is now a setting in the general settings called "Positional
hitsounds". If the setting is enabled, the hitsounds playback will be
shifted according to their position on the beatmap.
2020-04-09 18:12:15 +02:00
Dean Herbert
7db9bd798c Remove handle overrides 2020-03-30 11:59:51 +09:00
Dean Herbert
a2b3fe180e Add the ability to disable user input on specific DrawableHitObjects 2020-03-29 14:30:45 +09:00
Dean Herbert
f80efd10c2 Avoid using a miss judgement 2020-03-26 19:54:17 +09:00
smoogipoo
758bb3711f Add more sane limit for maximum slider length 2020-03-11 18:07:11 +09:00
Dean Herbert
c06db5a54a Remove legacy DrawableHitObject state management 2020-02-27 11:28:29 +09:00
Dean Herbert
d564440fe7
Merge branch 'master' into fix-barline-lifetimes 2020-02-25 20:41:04 +09:00
Dean Herbert
36079236e6
Remove pointless comment
Co-Authored-By: Dan Balasescu <smoogipoo@smgi.me>
2020-02-25 19:22:51 +09:00
Dean Herbert
a047456354 Revert changes to make HitObject abstract 2020-02-25 19:07:15 +09:00
Dean Herbert
be08e69862 Merge branch 'fix-dho-lifetimes-via-judgements' into fix-barline-lifetimes 2020-02-23 14:30:23 +09:00
Dean Herbert
401bf1c928 Remove unnecessary checks on NotNull attributes 2020-02-23 14:30:08 +09:00
Dean Herbert
0e29d3c4a2 Correctly expire bar lines in osu!taiko and osu!mania 2020-02-23 13:50:05 +09:00
Dean Herbert
ffc7eaa3f2 Fix hitobjects with unknown lifetimes by enforcing non-null judgement
We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.

This fixes BananaShower and JuiceStreams in osu!catch.

This also makes HitObject abstract and cleans up convert HitObject implementations.
2020-02-23 13:49:06 +09:00
Dean Herbert
5970c102b4 Change API to be easier to understand 2020-02-20 15:17:49 +09:00
Dean Herbert
5340d1de59 Move combo colour update logic to osu! ruleset 2020-02-19 16:07:00 +09:00
Dean Herbert
a1bfb18ce0 Fix accessing incorrect items list in event 2020-02-18 19:00:02 +09:00
smoogipoo
958c891d15 Update with framework-side bindable list changes 2020-02-17 15:06:14 +09:00
Dean Herbert
f7ee675102 Clear and revert to negative infinity, avoiding transforms getting left behind on StartTime change 2020-02-12 19:02:54 +09:00
Dean Herbert
c386589cc0 Reapply current state, not idle 2020-02-12 19:02:25 +09:00
Dean Herbert
7460018cd3 Move combo colours to GlobalSkinColours 2020-02-07 14:58:07 +09:00
Dean Herbert
daf5fa9da4 Throw NotSupportedException instead 2020-02-06 13:16:32 +09:00
Dean Herbert
cd6902a312 Make EndTime and RepeatCount settable 2020-02-05 17:52:51 +09:00
Bartłomiej Dach
434c0d92e4 Use Bindable{Float,Double}s everywhere
To avoid further floating-point comparison bugs, remove all usages of
Bindable<{float,double}>, replacing them with their
Bindable<Float,Double> counterparts.
2020-02-01 22:50:29 +01:00
smoogipoo
91735ff367 Update MathUtils namespace usages 2020-01-09 13:43:44 +09:00
smoogipoo
0f8a76afde Remove manual hitobject sample namespacing 2020-01-02 14:27:27 +09:00
Salman Ahmed
55be4478aa Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours 2019-12-21 12:36:09 +03:00
Dean Herbert
fa067b8799
Merge branch 'master' into legacy-beatmap-saving 2019-12-18 17:17:03 +09:00
Huo Yaoyuan
d5994ed484 CA2208: create exceptions correctly. 2019-12-17 13:00:10 +08:00
Dean Herbert
272d7d0ca9
Merge branch 'master' into fallback-to-skin-combo-colours 2019-12-17 12:36:20 +09:00
smoogipoo
8beb6b534f Merge remote-tracking branch 'refs/remotes/origin/master' into legacy-beatmap-saving 2019-12-16 17:09:03 +09:00
Huo Yaoyuan
c457571da6 Use index and range expressions 2019-12-15 20:17:35 +08:00
Huo Yaoyuan
ddb2cfc46d Use GetEndTime in Taiko and Mania 2019-12-14 18:16:13 +08:00
Salman Ahmed
a9125f6544 Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours 2019-12-12 12:37:51 +03:00
smoogipoo
c378e525da Extract the rest of legacy enums 2019-12-10 20:23:15 +09:00
smoogipoo
e3f925f69a Extract legacy hitobject type enum 2019-12-10 20:19:16 +09:00
smoogipoo
8012b21ffa Extract legacy sound type enum 2019-12-10 20:18:44 +09:00
smoogipoo
ab0f2e7c6a Apply suggested refactorings 2019-12-10 13:12:54 +09:00
smoogipoo
47f3c4a596 Don't serialise path version 2019-12-09 20:18:18 +09:00
smoogipoo
6d9cd0fafe Split out complex method 2019-12-09 18:25:13 +09:00
smoogipoo
b6e2738236 Remove unused using 2019-12-09 18:15:00 +09:00
smoogipoo
a1798fd38d Fix bad ctor implementation 2019-12-09 18:01:13 +09:00
smoogipoo
bfbb9aa18e Remove outdated assert 2019-12-09 18:01:02 +09:00
smoogipoo
883d5bc11d Remove automatic slider path offsetting 2019-12-09 17:54:22 +09:00
smoogipoo
9cb649436c Default to linear control point type 2019-12-09 17:47:05 +09:00
smoogipoo
5a093c039c Simplify path/point construction 2019-12-09 17:46:40 +09:00
smoogipoo
4905709ea4 Remove unused usings 2019-12-09 13:19:21 +09:00
smoogipoo
16f8341a02 Handle control point positional updates within SliderPath 2019-12-06 18:49:01 +09:00
smoogipoo
b4e1b5fa98 Explose + use the full calculated length of the path 2019-12-06 15:53:19 +09:00
smoogipoo
2654710d91 Add tests and fix negative expected distances 2019-12-06 15:37:06 +09:00
smoogipoo
27dd12a66d Rewrite slider length calculation for readability 2019-12-06 15:06:31 +09:00
smoogipoo
23c7132c4f Add missing license header 2019-12-06 11:53:22 +09:00
smoogipoo
3ebbf62b2a Initial game-wide update with the new SliderPath 2019-12-05 19:53:36 +09:00
smoogipoo
c9a66c0d07 Expose a version to indicate path changes 2019-12-05 18:31:28 +09:00
smoogipoo
1585d83b96 Add legacy constructor 2019-12-05 18:19:42 +09:00
smoogipoo
986ac1cee4 Make expected distance a bindable 2019-12-05 17:51:29 +09:00
smoogipoo
2702edfa55 Rename new path, replace existing one 2019-12-05 17:49:32 +09:00
smoogipoo
5e9b739b67 Re-implement slider paths to support multiple segments 2019-12-05 16:45:02 +09:00
smoogipoo
0149e47673 Expose general control point change event 2019-12-05 14:38:32 +09:00
smoogipoo
3e0f499e72 Add xmldocs 2019-12-05 14:38:21 +09:00
smoogipoo
40d0700fa5 Add structure for path control points 2019-12-05 13:43:38 +09:00
Huo Yaoyuan
05cfef92f9 Don't compare spans with null. 2019-12-03 20:09:58 +08:00
Huo Yaoyuan
a42f9447e6 Don't use Equals(object) on T?. 2019-12-03 20:07:22 +08:00
Huo Yaoyuan
c0fe91a84c Merge branch 'master' into sharpen 2019-11-26 18:21:50 +08:00
Dean Herbert
fbebbab5db Remove excess parenthesis 2019-11-25 22:37:07 +09:00
Dean Herbert
709ec1404f Centralise End/StartTime retrieval to extension method 2019-11-25 19:09:14 +09:00
Huo Yaoyuan
818553027b Merge branch 'master' into sharpen 2019-11-21 23:42:46 +08:00
Berkan Diler
6cab517b2d .NET Standard 2.1 implements Math.Clamp , use it instead of MathHelper.Clamp from osuTK. 2019-11-20 13:37:47 +01:00
Huo Yaoyuan
144812669d Use static local functions. 2019-11-12 19:56:54 +08:00
Huo Yaoyuan
dcfa98414f Use ??=. 2019-11-12 19:56:51 +08:00
Huo Yaoyuan
31cc0d13da Use 'out var'. 2019-11-12 19:55:26 +08:00
Dean Herbert
758c304d92
Merge branch 'master' into fallback-to-skin-combo-colours 2019-11-12 19:00:05 +09:00
smoogipoo
3f8928ca25 Suppress warnings 2019-11-12 13:41:54 +09:00
Dean Herbert
b37bf4ea01 Merge remote-tracking branch 'upstream/master' into selection-hitsound-addition 2019-11-12 10:44:53 +09:00
Huo Yaoyuan
e9b8cbb516 Apply other styles. 2019-11-11 20:27:04 +08:00
Huo Yaoyuan
ccc8aa6fa4 Apply brace style. 2019-11-11 20:13:13 +08:00
smoogipoo
b4cb4c1243 Remove previous samples on change 2019-11-08 16:19:55 +09:00
smoogipoo
a9b4106075 Remove unnecessary (for now) scheduling 2019-11-08 16:19:43 +09:00
smoogipoo
53e6186b6d Fix drawable hitobject samples not updating 2019-11-08 14:59:47 +09:00
smoogipoo
6fc1be64c2 Make hitobject samples a bindable list 2019-11-08 14:04:57 +09:00
iiSaLMaN
cee16e9419 Merge remote-tracking branch 'refs/remotes/upstream/master' into fallback-to-skin-combo-colours 2019-11-07 19:11:29 +03:00
iiSaLMaN
808543885f Change ComboColours type to IReadOnlyList<Color4>
Also exposes functions to modify the internal list (AddComboColours, ClearComboColours)
2019-11-07 15:54:30 +03:00
Dean Herbert
e3fa5f1da3
Merge branch 'master' into beatsnap-grid-integration 2019-10-21 18:44:34 +09:00
Dean Herbert
9f004186d5 Ensure DrawableHitObject's HitObject is not null 2019-10-21 17:56:39 +09:00
Dean Herbert
b157aaead1 Merge remote-tracking branch 'upstream/master' into beatsnap-grid-integration 2019-10-21 17:09:43 +09:00
smoogipoo
dc222b5e4d Add common path for duplicated code 2019-10-21 13:52:55 +09:00
Dean Herbert
d0eaf629af
Merge branch 'master' into dho-apply 2019-10-18 19:45:10 +09:00
smoogipoo
89f50b26f7 Fix hitobject combo colour potentially not getting adjusted 2019-10-18 17:32:11 +09:00
smoogipoo
5d3d25d3b6 Make method private for now 2019-10-18 13:24:28 +09:00
smoogipoo
9a896d52bf Fix nested hitobjects not updating 2019-10-18 13:18:41 +09:00
smoogipoo
f429a8f7c2 Add back/obsolete old AddNested() method 2019-10-17 14:02:08 +09:00
smoogipoo
d8f3678c3c Rename parameter 2019-10-17 12:53:54 +09:00
smoogipoo
8d7453c251 Rework construction of nested hitobjects 2019-10-16 22:10:50 +09:00
Dean Herbert
ad6b8d3e04 Add result offset bounding to result itself, rather than just transforms 2019-10-09 19:08:55 +09:00
Dean Herbert
51bf600ea7 Use empty hitwindows instead of null 2019-10-09 19:08:31 +09:00
smoogipoo
897b3233af Add start time tracking to EditorBeatmap 2019-10-03 14:23:48 +09:00
smoogipoo
45f2bcc440 Fix combo bindings not being bound to nested hitobjects 2019-09-26 17:39:19 +09:00
smoogipoo
706e884cc0 Update accent colour on combo index change 2019-09-26 17:13:13 +09:00
smoogipoo
bbf0544a8d Add bindables for IHasComboInformation properties 2019-09-26 16:55:08 +09:00
Dean Herbert
7d5544460b
Fix mania scrolling speed not including beatmap slider multipli… (#6236)
Fix mania scrolling speed not including beatmap slider multiplier

Co-authored-by: Dean Herbert <pe@ppy.sh>
2019-09-25 22:34:46 +09:00
Bartłomiej Dach
9323df26a1 Decouple bar line hitobjects from generator
Introduce an IBarLine interface, which together with generic constraints
helps decouple BarLineGenerator from the actual hitobject types it
creates. Thanks to this, all rulesets that want bar lines can provide
an implementation of IBarLine that also derives from the base hitobject
class.

This allows DrawableBarLines in taiko and mania to be migrated back to
DrawableTaikoHitObject and DrawableManiaHitObject base classes
respectively. This in turn resolves #6215 without code duplication,
since the missing anchoring application is now done in mania's
DrawableBarLine through deriving from DrawableManiaHitObject.
2019-09-25 00:36:27 +02:00
smoogipoo
75cceb9e30 Fix LifetimeChanged being invoked before lifetime is set 2019-09-24 16:47:34 +09:00
smoogipoo
762adb783a Fix duplicate invocation of updateState on load complete 2019-09-19 14:15:06 +09:00
Dean Herbert
5901a915e7 Always update drawable hitobject state on skin change 2019-09-18 20:19:57 +09:00
Dean Herbert
b81b162ee1 Update InitialLifetimeOffset comment 2019-09-12 19:30:27 +09:00
Dean Herbert
9fc60aeefc Merge branch 'master' into reset-dho-lifetimes 2019-09-12 19:29:14 +09:00
Dean Herbert
f21e47d6d2 Move expire to DrawableHitObject 2019-09-12 19:29:08 +09:00
Dean Herbert
af3bb5a2cd Centralise and share bar line generation code between rulesets 2019-09-10 13:30:54 +09:00
Dean Herbert
7f2d14416a Reset DrawableHitObject lifetimes on state change 2019-09-07 14:44:44 +09:00
Dean Herbert
a50284a5eb
Merge pull request #6019 from peppy/hit-window-refactor
Refactor HitWindows for legibility
2019-09-06 16:10:04 +09:00
Dean Herbert
c379480e7b
Merge branch 'master' into remove-judgement-occurred 2019-09-06 15:32:34 +09:00
Dean Herbert
f925e781a9 Refactor HitWindows for legibility 2019-09-06 15:24:14 +09:00
smoogipoo
07f662071d Remove judgementOccurred 2019-09-04 18:14:55 +09:00
Dean Herbert
bebc3309ce Refactor skin configuration to be infinitely extensible 2019-09-03 17:57:34 +09:00
Dean Herbert
1e7528c2b3 Merge remote-tracking branch 'upstream/master' into non-timeoffset-judgements 2019-09-02 19:13:00 +09:00
smoogipoo
f20e07136a Add attribute to catch potential future nullrefs 2019-09-02 17:48:41 +09:00
smoogipoo
f6102b4d92 Adjust xmldoc 2019-09-02 17:15:36 +09:00
smoogipoo
0c73c5acf3 Expose full hitobject rather than hit windows 2019-09-02 17:14:40 +09:00
smoogipoo
f2bdf94a1d Add HitWindows to JudgementResult to indicate timing errors 2019-09-02 16:28:14 +09:00
smoogipoo
8f8d35bd15 Delay initial hitobject state computation 2019-09-02 15:06:34 +09:00
Dean Herbert
741bd0a5cf Fix incorrect colour sizes and simplify alignment specification 2019-08-30 18:35:17 +09:00
Dean Herbert
9a98f39f06 Share logic with other rulesets (and make default) 2019-08-28 18:12:47 +09:00
smoogipoo
9e926d44c0 Obsolete legacy UpdateState() method 2019-08-27 16:09:47 +09:00
Dean Herbert
dbb3b583cf
Log error for invalid beatmap/storyboard events instead of thro… (#5611)
Log error for invalid beatmap/storyboard events instead of throwing

Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2019-08-09 12:56:47 +09:00
Dean Herbert
7e9c100c9b Apply new resharper refactors 2019-08-09 12:29:33 +09:00
smoogipoo
de4ad1f625 Fix bad log message 2019-08-08 14:44:49 +09:00
smoogipoo
ac2060f1cf Throw exceptions and let LegacyDecoder handle them 2019-08-08 14:44:04 +09:00
smoogipoo
0ff1c6184b Add generation comment 2019-08-01 17:36:20 +09:00
smoogipoo
a2468e599b Fix ticks in repeat spans being returned in reverse order 2019-08-01 17:31:37 +09:00
Dean Herbert
894d573fbc
Cache DrawableHitObject for skinnables to access (#5463)
Cache DrawableHitObject for skinnables to access
2019-07-29 18:49:37 +09:00
iiSaLMaN
ba4045a761 Fix transforming mods not working properly
Hidden, Grow, Deflate, etc..
2019-07-27 00:22:40 +03:00
Dean Herbert
eb6bda3f08 Cache DrawableHitObject for skinnables to access 2019-07-25 16:03:07 +09:00
smoogipoo
4e7e2d1d52 Adjust comments 2019-07-23 21:16:09 +09:00
smoogipoo
74b09c72fa Refactor state updates to convert State into an IBindable 2019-07-23 21:16:09 +09:00
Dean Herbert
d4d286c988 Add full documentation 2019-07-22 16:08:38 +09:00
Dean Herbert
c3b81bef4a Flip default to the preferred method going forward 2019-07-22 15:55:38 +09:00
Dean Herbert
be170b4124 Naming and documentation improvements 2019-07-22 15:50:02 +09:00
Dean Herbert
91f86adb66 Move DrawableHitObject state management to base class 2019-07-22 15:07:12 +09:00
Dean Herbert
8327452fe1 Make AccentColour a bindable 2019-07-22 14:48:59 +09:00
Dean Herbert
3e57fcf5c5 Merge remote-tracking branch 'upstream/master' into cleanup-slider-bodies 2019-07-17 22:11:01 +09:00
Dean Herbert
1a19cf0739
Fix 0-length sliders not getting correct lengths (#5033)
Fix 0-length sliders not getting correct lengths
2019-07-17 18:01:57 +09:00
smoogipoo
a9286fee07 Recycle slider paths when the parenting slider dies 2019-07-17 16:20:27 +09:00
smoogipoo
ed203cb0ff Delay intial hitobject updates 2019-07-16 13:45:59 +09:00
smoogipoo
5862eb172a Merge remote-tracking branch 'origin/master' into fix-zero-length-sliders
# Conflicts:
#	osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
2019-07-05 15:48:04 +09:30
Dean Herbert
60ea3d4e1a Fix skinning support for combobreak 2019-06-30 21:58:30 +09:00
smoogipoo
a6ee83eac2 Merge remote-tracking branch 'origin/master' into fix-zero-length-sliders 2019-06-27 19:57:21 +09:00
Dean Herbert
ba48331fcb Remove no longer necessary HandleInput overrides 2019-06-27 18:34:59 +09:00
smoogipoo
2e7922c3f9 Fix 0-length sliders not getting correct lengths 2019-06-15 23:53:28 +09:00
Dean Herbert
cf713fbacc
Merge branch 'master' into fix-stacking-shaking 2019-06-14 22:16:35 +09:00
smoogipoo
4818187d8f Reset result timeoffset to 0 when rewound 2019-06-13 14:55:52 +09:00
smoogipoo
27fdda8b91 Don't update hitobject results when rewinding 2019-06-13 12:21:49 +09:00
Arphox
07e17518e9 Fix all "Maintainability" CodeFactor issues 2019-06-11 10:28:16 +02:00
smoogipoo
d7c09e7dbd Merge remote-tracking branch 'origin/master' into fix-new-inspections
# Conflicts:
#	osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
#	osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
#	osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
#	osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
#	osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
#	osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
#	osu.Game/Graphics/OsuFont.cs
#	osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
#	osu.Game/Overlays/Profile/Header/BadgeContainer.cs
#	osu.Game/Overlays/Profile/ProfileHeader.cs
#	osu.Game/Screens/Select/PlaySongSelect.cs
#	osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
smoogipoo
0bd35ab7bb Turn on warnings, resolve issues 2019-04-25 17:36:17 +09:00
Dean Herbert
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
Dean Herbert
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
Dean Herbert
c97116c91a Add safety against DrawableHitObject implementations clearing children 2019-03-25 13:34:22 +09:00
smoogipoo
6511234804 Fix catch spinners not being allowed for conversion 2019-03-20 13:53:22 +09:00
Dean Herbert
14af957599
Merge pull request #4468 from smoogipoo/fix-min-tick-distance
Fix ticks not being generated at the minimum tick distance
2019-03-15 12:12:48 +09:00
smoogipoo
71d79f0a39 Fix ticks not being generated at the minimum tick distance 2019-03-14 15:20:12 +09:00
Dean Herbert
8f00f2290a Log issues 2019-03-13 14:56:41 +09:00
Dean Herbert
f8b5cf8c8e Add extra clamping of endTime to startTime 2019-03-13 13:46:41 +09:00
Dan Balasescu
a35d9ccc09
Apply clamping suggestion
Co-Authored-By: peppy <pe@ppy.sh>
2019-03-13 12:35:05 +09:00
Dean Herbert
93b774104a Fix NaN handling 2019-03-13 11:30:33 +09:00
Dean Herbert
cc09ecbfcf Increase validation performed on .osu files to avoid hard crashes 2019-03-12 20:31:15 +09:00
Dean Herbert
63fea65c0c Clarify repeat index 2019-03-11 14:53:21 +09:00
Dean Herbert
489153579a Add xmldoc and clarify struct variables 2019-03-11 14:36:29 +09:00
Dean Herbert
2029cf93fd Rename and reuse variables 2019-03-11 14:33:21 +09:00
Dean Herbert
93a999396e LegacyFinalTick -> LegacyLastTick to match existing variable 2019-03-08 20:13:11 +09:00
Dean Herbert
355705f0a5 Fix legacy tick handling 2019-03-08 19:57:30 +09:00
Dean Herbert
973f29b765 Apply review 2019-03-08 15:14:57 +09:00
smoogipoo
a08086cc8a Fix volume not being considered for file samples 2019-03-05 18:21:29 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
f66fefb818 Adjust comment + accessibility 2019-02-27 16:30:10 +09:00
smoogipoo
a07d797d75 Merge remote-tracking branch 'Joehuu/master' into use-lifetime-optimization 2019-02-27 12:08:43 +09:00
Dean Herbert
3fe4b8fd1c Update variable names
Also cleans up some weird code
2019-02-22 17:51:39 +09:00
smoogipoo
d8c55bc729 Adjust namespaces 2019-02-21 19:05:52 +09:00
smoogipoo
bca347427f Update with framework bindable changes 2019-02-21 18:56:34 +09:00
ekrctb
8955d5de04 Update hit object result when lifetime is end 2019-01-29 15:25:27 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
Unknown
6eff79913b remove blank lines 2019-01-11 10:34:56 +01:00
Ivan Pavluk
28b033bd99 Autodetect LowestSuccessfulHitResult 2018-12-12 17:15:59 +07:00
Ivan Pavluk
e49e2fda9e Rename SuccessfulHitResult->LowestSuccessfulHitResult 2018-12-12 13:24:58 +07:00
Dean Herbert
ffb91b4afc
Update docstring
Co-Authored-By: pavlukivan <pavlukivan@outlook.com>
2018-12-12 13:11:03 +07:00
Dean Herbert
d86cbf66a9
Update docstring
Co-Authored-By: pavlukivan <pavlukivan@outlook.com>
2018-12-12 13:10:47 +07:00
Ivan Pavluk
a62b105fb5
Fix formatting 2018-12-10 05:06:18 +00:00
Ivan Pavluk
8457324044 SuccessfulHitWindow->SuccessfulHitResult 2018-12-10 09:04:12 +07:00
Dan Balasescu
77a544e475
formatting fix
Co-Authored-By: pavlukivan <pavlukivan@outlook.com>
2018-12-09 23:38:29 +07:00
Dan Balasescu
784a114eae
formatting fix
Co-Authored-By: pavlukivan <pavlukivan@outlook.com>
2018-12-09 23:38:19 +07:00
Ivan Pavluk
cb2444e01c Remove Meh from TaikoHitWindows 2018-12-06 19:04:54 +07:00
smoogipoo
9fdd48ded2 Add 1ms offset to controlpoint lookup times 2018-12-04 12:08:46 +09:00
smoogipoo
eb88768bd0 Fix incorrect controlpoint being applied to samples 2018-12-03 17:21:27 +09:00
smoogipoo
aea84f737b Fix taiko hitobjects potentially disappearing before being judged 2018-11-29 12:12:29 +09:00
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
smoogipoo
f3ba429701 Make sure control points is internally initialised 2018-11-12 17:14:06 +09:00
smoogipoo
f4fd6189f8 Implement IEquatable 2018-11-12 16:53:30 +09:00
smoogipoo
0220ed21b0 Ignore distance for json serialisation 2018-11-12 16:38:49 +09:00
smoogipoo
0e92b385f0 Define default json deserialisation constructor 2018-11-12 16:38:33 +09:00
smoogipoo
8ad9b6a02a Safety for default(SliderPath) 2018-11-12 16:38:14 +09:00
smoogipoo
d594ce3530 Revert "Make SliderPath.ControlPoints read-only"
This reverts commit 3b88d94793.

# Conflicts:
#	osu.Game/Rulesets/Objects/SliderPath.cs
2018-11-12 16:20:38 +09:00
smoogipoo
77d16aa968 Add xmldocs 2018-11-12 14:16:21 +09:00
smoogipoo
4eef1134a6 Re-order file 2018-11-12 14:08:36 +09:00
smoogipoo
3aba462e52 Make Path.Distance a property again 2018-11-12 14:07:48 +09:00
smoogipoo
3b88d94793 Make SliderPath.ControlPoints read-only 2018-11-12 14:03:54 +09:00
smoogipoo
54ab256c8e Instantiate a new path rather than setting properties on it
# Conflicts:
#	osu.Game.Rulesets.Catch/Beatmaps/CatchBeatmapConverter.cs
#	osu.Game.Rulesets.Catch/Objects/JuiceStream.cs
#	osu.Game.Rulesets.Osu/Beatmaps/OsuBeatmapConverter.cs
#	osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/SliderPath.cs
2018-11-12 13:50:19 +09:00
smoogipoo
cf4dad0fe8 Fix hitobjects not updating IsMaskedAway after being judged 2018-11-07 15:42:40 +09:00
smoogipoo
ace1dce281 Merge remote-tracking branch 'origin/master' into fix-slider-samples
# Conflicts:
#	osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
2018-11-05 18:10:22 +09:00
smoogipoo
92d570342c Fix sample additions not falling back to non-addition bank 2018-11-05 17:35:24 +09:00
smoogipoo
a4caaf56ef Merge remote-tracking branch 'origin/master' into fix-slider-samples
# Conflicts:
#	osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
#	osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
2018-11-05 16:38:28 +09:00
smoogipoo
1fffa48aa0 Sort nested hitobjects post-creation 2018-11-05 12:15:45 +09:00