1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 16:25:32 +08:00
Commit Graph

3060 Commits

Author SHA1 Message Date
smoogipoo
921f008217 Fix ModIcon not updating background colour correctly 2021-02-02 21:35:08 +09:00
Bartłomiej Dach
a0de1cbfd0 Handle no-duration single-object edge case 2021-01-31 21:09:41 +01:00
Bartłomiej Dach
547b3d8bed Fix speed change calculation in time ramp mods 2021-01-31 20:34:56 +01:00
Bartłomiej Dach
81b052b866 Add failing test cases 2021-01-31 20:34:22 +01:00
Bartłomiej Dach
2c08ce05fa Remove game-local enum [Order] attribute
In favour of the newly-added framework one.
2021-01-27 22:29:52 +01:00
Dan Balasescu
7d06af916c
Merge branch 'master' into add-messagepack 2021-01-27 13:00:46 +09:00
Dean Herbert
a5f3418e56 Avoid tooltip display 2021-01-26 19:11:19 +09:00
Dean Herbert
9537090d28 Setup all spectator model classes for MessagePack 2021-01-26 16:39:35 +09:00
Dean Herbert
dee0d3c33a
Merge branch 'master' into apply-sv-to-taiko-hr-ez 2021-01-25 14:28:06 +09:00
Dan Balasescu
04095cd5b9
Merge branch 'master' into fix-editor-scroll-interruption 2021-01-21 17:46:18 +09:00
Bartłomiej Dach
1d9aaac2c2 Fix HOC not propagating DHO results applied on kill
`DrawableHitObject.OnKilled()` calls `UpdateResult()` to clean up a
hitobject's state definitively with regards to the judgement result
before returning the DHO back to the pool.

As it turns out, if a consumer was relying on this code path (as taiko
was in the case of nested strong hit objects), it would not work
properly with pooling, due to `HitObjectContainer` unsubscribing from
`On{New,Revert}Result` *before* calling the DHO's `OnKilled()`.

This in turn would lead to users potentially getting stuck in gameplay,
due to `ScoreProcessor` not receiving all results via that event path.

To resolve, change the call ordering to allow hit result changes applied
in `OnKilled()` to propagate normally.
2021-01-21 00:05:37 +01:00
smoogipoo
de9d075f94 Initial sample + samplechannel rework 2021-01-19 17:11:40 +09:00
Dean Herbert
ced7a36788 Update namespaces 2021-01-18 21:24:10 +09:00
Dean Herbert
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
smoogipoo
d5878db615 Fix default judgement text mispositioned for one frame 2021-01-14 12:33:33 +09:00
Bartłomiej Dach
4b4adc927c Rename param to match method body 2021-01-10 15:35:53 +01:00
Salman Ahmed
0aad0c7c6c Target logic at this and adjust variables 2021-01-09 00:31:18 +03:00
Salman Ahmed
375ecf92ed Merge remote-tracking branch 'upstream/master' into fix-mod-buttons-not-copying-settings 2021-01-09 00:26:18 +03:00
Dean Herbert
05ba5d4c31
Merge pull request #11438 from bdach/difficulty-adjust-defaults
Fix difficulty adjust mod treating default values as user overrides
2021-01-09 01:18:34 +09:00
Bartłomiej Dach
303cc62ee7 Transfer flags indicating if settings were changed 2021-01-06 22:46:46 +01:00
Bartłomiej Dach
68352782db Change .StartsWith() to .Equals()
In line with planned-but-delayed breaking change.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
9cc63e8dce Remove obsoleted IHasEndTime 2021-01-06 18:38:24 +01:00
Bartłomiej Dach
539785e422 Remove obsoleted IHasCurve 2021-01-06 18:38:24 +01:00
Bartłomiej Dach
09742998cd Fix mistaken obsoletion notice
It was added in c9f38f7bb6, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
Dean Herbert
b3f08b29ca Ensure that all changes to screen backgrounds are on the correct thread 2021-01-05 15:22:50 +09:00
Bartłomiej Dach
9e4a925ab1 Clarify & cleanup comments some 2021-01-03 13:44:29 +01:00
Bartłomiej Dach
a3e29b9154 Rename parameters for readability 2021-01-03 13:25:44 +01:00
Dean Herbert
2501707d7d Copy values using Bind to also copy defaults 2021-01-03 20:45:03 +09:00
Dean Herbert
29dbb1cc0d Add internal pathway for ensuring correct application of bindable mods 2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b Simplify some default value checks (we are sure the return is an IBindable) 2021-01-03 15:47:15 +09:00
Salman Ahmed
c1a1e3acc5 Revert drive-by changes 2021-01-01 15:40:40 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
b4df2d6d43 Add method for copying properties from another mod 2021-01-01 03:46:09 +03:00
Firmatorenio
013b9b62a1 add SV multipliers to taiko difficulty mods 2020-12-29 20:22:56 +06:00
Dean Herbert
d66e218318 Source display accuracy from header and remove from ScoreProcessor function 2020-12-24 14:57:23 +09:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard 2020-12-23 09:56:47 +01:00
Dean Herbert
be427a4ec0 Fix realtime leaderboard showing accuracy based on final base score, not rolling 2020-12-23 14:20:35 +09:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended 2020-12-22 13:52:29 +09:00
Bartłomiej Dach
f96d2f4ba4
Merge branch 'master' into fix-texture-loader-usages 2020-12-21 18:35:34 +01:00
Dean Herbert
bc212b2538
Merge branch 'master' into fix-texture-loader-usages 2020-12-21 13:51:55 +09:00
Dean Herbert
a8569fe15c Fix a couple of simple cases of incorrect TextureLoaderStore initialisation 2020-12-21 13:35:46 +09:00
Bartłomiej Dach
a31e8d137f Add guard when clearing samples 2020-12-20 15:42:24 +01:00
Bartłomiej Dach
ee33c0be93 Extract combo & accuracy ratio calculation helpers 2020-12-19 19:08:29 +01:00
Dean Herbert
f13683dc90 Correctly account for max combo of the input, rather than the global 2020-12-17 16:05:41 +09:00
Dean Herbert
41d8b84bd7 Revert MaxBaseScore to being a private field (no longe required to be public) 2020-12-17 15:47:20 +09:00
Dean Herbert
2954218897 Add method to ScoreProcessor to calculate score and accuracy from statistics 2020-12-16 16:20:29 +09:00
Dean Herbert
64a2526678 Add header class and basic flow for propagating data updates 2020-12-14 17:33:23 +09:00
Dean Herbert
1793385e96 Pass a score to the replay recorder to allow reading more general scoring data 2020-12-14 16:52:14 +09:00
Dean Herbert
51e8a05f18 Seal SetRecordTarget method to simplify modification 2020-12-14 16:44:29 +09:00
smoogipoo
ac91f0e270 Add extended limits to difficulty adjustment mod 2020-12-10 00:37:19 +09:00
ekrctb
a548269c34 Fix scrolling hit object displayed in wrong position for one frame 2020-12-07 17:26:12 +09:00
Dean Herbert
a0f92628ac Merge branch 'master' into fix-sample-expire 2020-12-04 13:49:08 +09:00
Dean Herbert
5ded4b9faa
Merge branch 'master' into dho-remove-onparentreceived 2020-12-04 11:04:56 +09:00
Endrik Tombak
48dad61a46 Apply review suggestions 2020-12-03 19:44:12 +02:00
smoogipoo
0bdf99b97a Remove OnParentReceived() 2020-12-03 20:08:42 +09:00
smoogipoo
73e99718bc Change order of OnParentReceived() 2020-12-03 20:06:26 +09:00
ekrctb
6c46046c24 Fix DHO expires while hit sound is playing 2020-12-03 12:32:49 +09:00
smoogipoo
e831c797f3 Merge branch 'master' into hit-sample-pooling 2020-12-02 14:45:24 +09:00
smoogipoo
2150cf1c52 Rename parameters 2020-12-02 10:55:48 +09:00
smoogipoo
e19ef9627a Fix potentially incorrect override 2020-12-02 10:54:26 +09:00
smoogipoo
2840405112 Volume should be 0 by default 2020-12-01 18:14:14 +09:00
smoogipoo
6b4a6c12c8 Fix bad equality comparer implementations 2020-12-01 18:13:53 +09:00
smoogipoo
17560aeeea Volume should be 0 by default 2020-12-01 18:09:28 +09:00
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
Bartłomiej Dach
5fbe1823a0
Merge branch 'master' into editor-beat-snap-always 2020-11-30 18:39:22 +01:00
Dean Herbert
51741c4791
Merge branch 'master' into hit-sample-pooling 2020-11-30 22:25:28 +09:00
Dean Herbert
7f34e11467
Merge pull request #10962 from smoogipoo/improve-dho-time-offsets
Fix judgement offsets in non-framestable contexts
2020-11-30 19:13:25 +09:00
Dean Herbert
3ad2eeaff5 Fix outdated xmldoc 2020-11-30 18:35:30 +09:00
Dean Herbert
c17d67bc7d Merge branch 'master' into editor-beat-snap-always 2020-11-30 18:34:38 +09:00
smoogipoo
4bbeb9ebd4 Merge branch 'master' into hit-sample-pooling 2020-11-30 18:31:58 +09:00
Dan Balasescu
b56e832e83
Merge pull request #10950 from ekrctb/pool-scrolling
Support hit object pooling in ScrollingPlayfield
2020-11-30 18:29:34 +09:00
smoogipoo
8f48389f89 Merge branch 'master' into improve-dho-time-offsets 2020-11-30 18:01:48 +09:00
smoogipoo
7ac2fba127 More reordering of public vs private methods 2020-11-30 17:44:58 +09:00
Dan Balasescu
11d1450c76
Merge branch 'master' into fruit-bindables 2020-11-30 16:48:22 +09:00
Dean Herbert
2745659986 Reword and xmldoc some comments 2020-11-30 15:54:20 +09:00
Dan Balasescu
69c2a18220
Merge branch 'master' into fix-drawable-judgement-animation-loss 2020-11-30 14:05:03 +09:00
Dan Balasescu
0c36a3c263
Merge branch 'master' into pool-scrolling 2020-11-30 14:04:54 +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
6e40de58e9 Use new OnAdd and OnRemove to invalidate DHO 2020-11-27 13:36:40 +09:00
ekrctb
8f5129323d Merge branch 'master' into pool-scrolling 2020-11-27 13:12:05 +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
94dc61150b
Merge branch 'master' into fix-drawable-judgement-animation-loss 2020-11-27 00:43:47 +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
Dean Herbert
741902f1b3
Merge pull request #10971 from smoogipoo/fix-timeline-combo-colour
Fix timeline blueprints sometimes not receiving combo colours
2020-11-26 19:47:21 +09:00
Dean Herbert
9811c46e35 Rename application method to better describe what it actually does 2020-11-26 19:16:18 +09:00
ekrctb
05e245d445 Allow non-pooled DHO to be reused 2020-11-26 19:07:09 +09:00
smoogipoo
e53f849aa0 Completely separate combo colours from DHOs 2020-11-26 18:14:25 +09:00
Dan Balasescu
aad6cf4ad3
Merge branch 'master' into editor-multiple-object-positional-snap 2020-11-26 17:06:47 +09:00
ekrctb
eae33fe74a Fix format 2020-11-26 14:16:33 +09:00
ekrctb
e43f928588 Use DHO.HitObjectApplied to invalidate computation 2020-11-26 14:07:40 +09:00
ekrctb
f6faf95e33 Revert changes to HitObjectUsageBegan, not use it. 2020-11-26 14:01:46 +09:00
ekrctb
1a6e5bdaba Merge branch 'master' into pool-scrolling 2020-11-26 13:52:52 +09:00
Bartłomiej Dach
8ff1688c4b
Merge branch 'master' into fix-drawable-judgement-animation-loss 2020-11-25 20:11:09 +01: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
Dean Herbert
c46d655832 Uncomment incorrectly commented lines 2020-11-25 12:11:44 +09:00
ekrctb
b8a5cd94f7 Invoke HitObjectUsageFinished before removal 2020-11-24 19:46:57 +09:00
ekrctb
e34a205104 Rewrite hit object management, take three 2020-11-24 18:56:05 +09:00
ekrctb
7f6e4d5b21 Delay lifetime computation until loaded 2020-11-24 18:56:05 +09:00
ekrctb
d5f082e5fb Comment about lifetime assumption 2020-11-24 18:56:05 +09:00
ekrctb
ce57e8ddfb Separate Lifetime computation and layout update 2020-11-24 18:56:05 +09:00
ekrctb
cabc8aa63b Revert "Simplify ScrollingHitObjectContainer logic"
This reverts commit b4cc39149c117e6a0e95ee917a67cec8ba723d06.
2020-11-24 18:56:05 +09:00
ekrctb
8f39b54e58 Simplify ScrollingHitObjectContainer logic 2020-11-24 18:56:05 +09:00
ekrctb
5c743adbae Support hit object pooling scrolling playfield 2020-11-24 18:56:05 +09:00
Dean Herbert
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
Dan Balasescu
87ce8a53ff
Merge branch 'master' into on-drawable-hitobject-added 2020-11-24 16:09:57 +09:00
Dean Herbert
1682260677 Remove left over logging line 2020-11-24 15:28:03 +09:00
Dean Herbert
ee33f62809 Fix DrawableJudgement not always animating correctly on skin change
If the skin is changed before gameplay has started (at the loading
screen) it is possible for a sequence of events to occur which results
in the animation not being played:

- `SkinReloadableDrawable` runs its BDL load (and calls `OnSkinChanged`
  once)
- User changes skin, triggering `DrawableJudgement`'s skin change
  handling (binding directly on the `SkinSource` locally)
- This will call `PrepareDrawables` and reinitialise the
  `SkinnableDrawable` child hierarchy, then immediately apply the
animations to it.
- The new `SkinnableDrawable` will then get the `SkinChanged` event and
  schedule a handler for it, which will run on its first Update call.
- Any added animations will be lost as a result.

Fixed by binding directly to the `SkinnableDrawable`'s `OnSkinChanged`.
This has the added bonus of not needing to reinitialise the child
hierarchy on skin change (which felt a bit weird in the first place).
2020-11-24 15:23:53 +09:00
Dean Herbert
060acb9010
Merge pull request #10935 from bdach/fix-mania-judgement-fade-in
Rewind judgement transforms before clearing
2020-11-23 17:05:04 +09:00
Dean Herbert
19faa2b9bb Add comment covering intentional call to ClearTransformsAfter 2020-11-23 15:20:59 +09:00
Bartłomiej Dach
827a089810
Merge branch 'master' into change-taiko-ez 2020-11-22 13:29:02 +01: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
Bartłomiej Dach
9f997db958 Rewind judgement transforms before clearing 2020-11-21 17:56:49 +01:00
ekrctb
295ca38cda Merge remote-tracking branch 'origin/master' into on-drawable-hitobject-added 2020-11-21 15:25:16 +09:00
ekrctb
4345d8dcb6 Event -> virtual method 2020-11-21 15:20:33 +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
ekrctb
772f6df668 Add a remark for DrawableHitObjectAdded 2020-11-20 18:00:00 +09:00
ekrctb
c013cd11c9 Add DrawableHitObjectAdded event 2020-11-20 17:56:47 +09:00
Dean Herbert
53b6d90ab4 Don't show default judgements in front of objects for now 2020-11-20 16:30:58 +09:00
Dean Herbert
a00e0d7279 Move CanBeNull specification to the interface 2020-11-20 16:30:48 +09:00
Dean Herbert
7fe0923fcf Show main judgement content above hitobjects 2020-11-20 16:25:48 +09:00
smoogipoo
7180bfe4ba Unlimit number of samples per pool 2020-11-19 21:21:57 +09:00
smoogipoo
f013928fa3 Set maximum pool size 2020-11-19 20:40:01 +09:00
smoogipoo
70cb197957 Cleanups 2020-11-19 20:38:36 +09:00
smoogipoo
8920534a25 Fix pools not being added to hierarchy 2020-11-19 20:24:03 +09:00
smoogipoo
730b14b5bb Add initial hit sample pooling 2020-11-19 19:51:09 +09:00
Dean Herbert
ba735584fa Add null check for disposal safety 2020-11-19 14:04:43 +09:00
Bartłomiej Dach
24d7fa03d8
Merge branch 'master' into legacy-jugement-match-stable-transforms 2020-11-18 20:33:58 +01:00
Bartłomiej Dach
5156de3a10
Merge branch 'master' into fix-judgement-transform-logic 2020-11-18 19:20:11 +01:00
smoogipoo
cb5d1d0d77 Remove obsolete method 2020-11-18 21:26:35 +09:00
Dean Herbert
b3bec81b79 Update xmldoc to match new behaviour 2020-11-18 19:38:38 +09:00
Dean Herbert
8522ddc61e Reduce nesting of skinned component to reduce exposed surface 2020-11-18 19:34:27 +09:00
Dean Herbert
ee8804b50b Fix animation playback not running on skin change 2020-11-18 19:03:34 +09:00
Dean Herbert
c47e70da9b Update animations for new/old miss style and add fades 2020-11-18 19:03:34 +09:00
Dean Herbert
9d3de5bca0 Fix hit lighting dictating lifetime even when not present in skin 2020-11-18 19:03:34 +09:00
Dean Herbert
72a15ef2dc Handle DrawableJudgement lifetime more flexibly 2020-11-18 19:03:34 +09:00
Dean Herbert
94886a09b2 Remove fades from DrawableJudgement itself 2020-11-18 19:03:34 +09:00
Bartłomiej Dach
875d7dec79 Remove redundant this. qualifier 2020-11-17 20:11:13 +01:00
Dean Herbert
8247e6ce91 Move result type to ctor 2020-11-17 15:43:54 +09:00
Dean Herbert
e4f1e52422 Add xmldoc coverage of Apply() 2020-11-17 15:03:26 +09:00
Dean Herbert
f465dd5a5e Move all extended animation logic out of DrawableJudgement 2020-11-17 14:59:34 +09:00