1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-20 03:02:54 +08:00
Commit Graph

660 Commits

Author SHA1 Message Date
Dan Balasescu
e6eea73b8b
Merge branch 'master' into basic-compose-checks 2021-04-30 23:41:46 +09:00
Dan Balasescu
5fc731967b
Merge pull request #12592 from ekrctb/fix-entry-lifetime
Fix Setting DHO's lifetime doesn't update its entry lifetime
2021-04-28 01:38:19 +09:00
ekrctb
b87446a577 Simplify HitObjectLifetimeEntry logic a bit 2021-04-27 19:37:01 +09:00
Derrick Timmermans
3ea55314f2
Update osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-27 11:29:16 +02:00
ekrctb
3899e500d3 Adopt framework change of LifetimeEntry
Override SetLifetimeStart/SetLifetimeEnd separately to track individual assignment. It is necessary to ensure real lifetime is not lost when lifetime is partially updated.
2021-04-27 17:54:18 +09:00
ekrctb
c9e6ca5378 Use now-public Entry.SetLifetime method 2021-04-27 15:25:05 +09:00
ekrctb
a2c0951d94 Use overriding instead of hiding in HitObjectLifetimeEntry
Hidden properties are used when the type is the base class. It caused issues when `DrawableHitObject` logic is factored out to `PoolableDrawableWithLifetime` because it is using the base `LifetimeEntry`, not `HitObjectLifetimeEntry`.
2021-04-27 15:23:33 +09:00
Naxess
a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Derrick Timmermans
08a232f7fa
Add method to safely refresh DrawableHitObject transforms 2021-04-26 20:08:40 +02:00
ekrctb
6561a7c7d6 Rename DrawableObject -> PoolableDrawableWithLifetime 2021-04-26 12:06:21 +09:00
ekrctb
20e3cadd30 freeIfInUse -> free, and add comments 2021-04-26 12:04:59 +09:00
ekrctb
e6474e6ff7 Remove redundant statement (lifetime is set in base) 2021-04-26 11:47:38 +09:00
ekrctb
b877a29737 Factor out pooling and lifetime management logic of DHO to a base class 2021-04-21 17:37:42 +09:00
ekrctb
bbf2ec369b Remove SkinReloadableDrawable inheritance from DHO 2021-04-21 17:34:57 +09:00
ekrctb
3fbeadf318 Deprecate old overload of Apply 2021-04-21 14:32:37 +09:00
ekrctb
73d3da1687 Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 11:32:01 +09:00
ekrctb
44ff08cce4 Revert "Fix wrong InitialLifetimeOffset is used for a non-pooled DHO."
This reverts commit 67fcfd9d
2021-04-21 10:02:50 +09:00
ekrctb
67fcfd9dbc Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 09:48:16 +09:00
ekrctb
e80c3c317a Rename UnmanagedHitObjectEntry -> SyntheticHitObjectEntry
"Unmanaged" was confusing because its lifetime is still managed by the HitObjectContainer.
2021-04-21 09:23:23 +09:00
ekrctb
c6ee4e900e Ensure a non-null hitobject entry has a non-null Result 2021-04-20 15:18:36 +09:00
ekrctb
8a8b9084ef Make single-argument overloead of DHO.Apply public 2021-04-20 10:11:36 +09:00
ekrctb
1bc63a4c61 Now, DHO.lifetimeEntry can be non-null even it is not fully applied 2021-04-20 09:22:16 +09:00
ekrctb
c1b4aaaa03 Add doc comment 2021-04-20 08:38:02 +09:00
ekrctb
2c487ddb70 Create synthetic LifetimeEntry for a DHO when not supplied
Now, a DHO is always associated with a HitObjectLifetimeEntry while used.
Result is always stored in the entry, and not in the DHO.
2021-04-19 21:54:19 +09:00
ekrctb
5afdc3ff66 Make DHO application logic clearer with Entry/HitObject separation 2021-04-19 19:56:17 +09:00
Dean Herbert
d38e294d96 Centralise length validation function 2021-04-16 15:45:24 +09:00
ekrctb
50fad47ebc Remove usage of Lazy<List<...>> for NestedHitObjects 2021-04-15 18:26:01 +09:00
Dean Herbert
b5954a55ad Remove empty <returns> xmldoc 2021-04-12 17:46:14 +09:00
smoogipoo
76981f2547 Remove unused using 2021-04-09 13:58:24 +09:00
smoogipoo
8293b06c0a Remove obsolete code 2021-04-09 13:56:58 +09:00
Dean Herbert
a8839792fd
Merge branch 'master' into circular-arc-freeze 2021-04-08 14:33:03 +09:00
smoogipoo
4b29d0ebe2 Fix last control point starting new segment 2021-04-05 17:49:36 +09:00
Naxess
7b684339ed Undo public -> internal for PathControlPoint.Changed
No longer used.
2021-03-31 20:32:49 +02:00
Naxess
4ae3eaaac6 Move path type correction
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
Naxess
e922e67c98 Fix inverted return statement
Forgot to run tests, all passing now.
2021-03-22 19:48:21 +01:00
Naxess
3fa5852e00 Add method documentation 2021-03-22 19:42:27 +01:00
Naxess
b11fd7972a Separate condition logic from math logic 2021-03-22 19:41:48 +01:00
Naxess
92f713a30e Improve fallback conditions
It's possible to create a `PerfectCurve` type path with more than 3 points currently, so this accounts for that.
2021-03-22 19:10:56 +01:00
Naxess
80e7c3aba7 Invert if statement 2021-03-22 19:09:28 +01:00
Naxess
6911a1b415 Fix missing newline 2021-03-22 19:03:55 +01:00
Naxess
a7076c329c Fix null checks 2021-03-22 17:32:55 +01:00
Naxess
323b875cea Fix newlines/spaces 2021-03-22 17:32:40 +01:00
Naxess
c82218627f Add path type update logic
Only attempts to change points to bezier if points in the slider are modified.
2021-03-22 15:57:57 +01:00
Naxess
7a2cb526e4 Add PointsInSegment method 2021-03-22 15:55:30 +01:00
Naxess
bee2f55d00 Undo subpath limiting 2021-03-22 15:54:33 +01:00
Naxess
fcd1f4930f Fix freeze due to large circular arc radius
Seems to stem from the osu!framework's PathApproximator not catching a few edge cases wherein the radius approaches infinity.
2021-03-21 06:34:55 +01:00
smoogipoo
dff1d80f39 Update HasFlag usages to HasFlagFast 2021-02-25 15:38:56 +09: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