Naxess
9a69ca34a6
Add audio presence check
2021-04-18 02:07:57 +02:00
Naxess
010720de74
Factor out general file presence checking
...
This allows us to use the same method of checking for other files that should exist, for example the audio file.
By using the same method, they all share test cases too.
2021-04-18 02:07:33 +02:00
Naxess
56bf49c85c
Take IWorkingBeatmap
instead of WorkingBeatmap
...
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
Naxess
abf512532e
Clean up check logic
...
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
2021-04-18 01:19:25 +02:00
Naxess
cb41c89935
Don't return low res and too low res at the same time
2021-04-17 20:10:07 +02:00
Naxess
62c54e00cb
Add check for background resolution and filesize
2021-04-17 18:01:04 +02:00
Naxess
448574e7e6
Use WorkingBeatmap
instead of IBeatmap
...
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.
Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
smoogipoo
d26fa46ef2
Record every 60fps interval
2021-04-16 19:42:44 +09:00
Dean Herbert
f824105075
Merge branch 'master' into fix-slider-zero-length
2021-04-16 18:47:22 +09:00
Dean Herbert
9b95cf227e
Merge branch 'master' into apply-ibindable-interface-change
2021-04-16 17:30:35 +09:00
Dan Balasescu
5ad2d0e759
Merge pull request #12439 from ekrctb/further-refactor-framed-replay
...
Further refactor FrameReplayInputHandler, simplify the template code
2021-04-16 17:16:09 +09:00
Dean Herbert
d38e294d96
Centralise length validation function
2021-04-16 15:45:24 +09:00
smoogipoo
8c4804dd7a
Use nameof
2021-04-16 15:40:06 +09:00
smoogipoo
d1c72f5e13
Apply changes resulting from IBindable interface updates
2021-04-16 15:10:53 +09:00
ekrctb
91c7d8d26c
Introduce StartFrame
and EndFrame
to simplify the replay interpolation code
2021-04-16 14:13:41 +09:00
ekrctb
84bc81a6de
Make FramedReplayInputHandler.CurrentTime non-null
2021-04-16 14:13:41 +09:00
ekrctb
936bde28a3
Remove manual handling of IsActive in RulesetInputManager
...
Now it is supported in framework
2021-04-16 14:13:41 +09:00
Dean Herbert
119c9b4294
Fix placement blueprints not being correctly removed after a rolled back placement
2021-04-16 14:11:33 +09:00
Dan Balasescu
ac8e462d32
Merge branch 'master' into refactor-framed-replay-input-hander
2021-04-15 21:48:58 +09:00
Dan Balasescu
98e2245d83
Merge pull request #12422 from ekrctb/no-lazy-list
...
Remove usage of Lazy<List<...>> by always allocating an empty list
2021-04-15 20:09:39 +09:00
ekrctb
d8aa436e81
Remove usage of Lazy<List<...>> in NestedPlayfields
2021-04-15 18:26:01 +09:00
ekrctb
50fad47ebc
Remove usage of Lazy<List<...>> for NestedHitObjects
2021-04-15 18:26:01 +09:00
Dean Herbert
346e36d32a
Make Mod.Description
abstract and add missing descriptions
2021-04-15 14:36:26 +09:00
Dean Herbert
ba325de595
Merge conditionals for readability
2021-04-15 14:19:59 +09:00
Dean Herbert
5eaf3ea576
Reorganise and reword comments to make time override behaviour a bit clearer
2021-04-15 14:19:06 +09:00
Dean Herbert
7654df94f6
Merge pull request #12395 from frenzibyte/fix-cinema-ignore-settings
...
Fix beatmap background displayed if storyboard is hidden on "Cinema" mod
2021-04-14 14:31:03 +09:00
Dean Herbert
cb4f64133e
Add xmldoc to interfaces
2021-04-13 23:30:20 +09:00
Dean Herbert
1ff4e2076f
Merge branch 'master' into verify-tab
2021-04-13 23:05:48 +09:00
Naxess
69da804f81
Add missing period
2021-04-13 13:57:56 +02:00
Dean Herbert
0d6890243f
Fix typo in xmldoc
2021-04-13 20:18:18 +09:00
Dean Herbert
03ba04e8ce
Split out general checks into its own verifier class (and remove static
usage)
2021-04-13 19:50:22 +09:00
Naxess
aa5fe2e9fc
Rename BeatmapVerifier
-> IBeatmapVerifier
2021-04-13 11:02:01 +02:00
Naxess
60c2494b31
Make BeatmapVerifier
an interface
2021-04-13 10:40:56 +02:00
Salman Ahmed
36510309d1
Merge EnableUserDim
and IgnoreUserSettings
to one bindable
2021-04-13 10:58:56 +03:00
ekrctb
57ba7b7cbb
Partially revert the changes of CurrentFrame
and NextFrame
for compatibility
...
Making those always non-null is postponed as when a replay's frame contains keypress the behavior is changed.
Previously, the key is pressed at the time of the first frame. But using non-null frames means the key is pressed at negative infinity.
However, I think the new way of always using non-null frames makes the client code so I plan to bundle the change to more breaking changes.
2021-04-13 15:55:23 +09:00
ekrctb
d0f30b7b42
Delay map completion one frame after the last judgment
...
This is a workaround of a timing issue.
KeyCounter is disabled while break time (`HasCompleted == true`).
When the last keypress is exactly at the same time the map ends, the last frame was considered in a break time while forward play but considered not in a break time while rewinding. This inconsistency made the last keypress not decremented in the key counter when a replay is rewound.
The situation regularly happens in osu!standard because the map ends right after the player hits the last hit circle. It was caught by `TestSceneGameplayRewinding`.
This commit makes the update of the map completion delayed one frame. The problematic keypress frame is now processed strictly before the map completion, and the map completion status is correctly rewound before the keypress frame.
2021-04-13 14:29:47 +09:00
ekrctb
38d10755cb
Merge branch 'master' into refactor-framed-replay-input-hander
2021-04-13 13:47:22 +09:00
Naxess
6d3f9fa9ce
Use is
class instead of Equals
with template index
...
Ensures ordering of `PossibleTemplates` does not affect tests.
2021-04-13 02:29:25 +02:00
Naxess
d8088777ea
Add Equals
method to IssueTemplate
...
This will be useful in tests.
2021-04-13 01:21:34 +02:00
Salman Ahmed
9679bdfed2
Merge branch 'master' into mod-using-reference-equality
2021-04-12 20:56:24 +03:00
Salman Ahmed
92fab653e1
Take current mod settings value into account on equality comparsion
2021-04-12 20:51:13 +03:00
Naxess
19a154ddf1
Rename checkOrigin
-> check
...
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
Naxess
bb720c23a0
Remove check ctors and locals
2021-04-12 17:12:37 +02:00
Dean Herbert
62c1812282
Remove redundant parameter naming
2021-04-12 23:37:47 +09:00
Dean Herbert
36bd235021
Move nested classes to bottom of file
2021-04-12 23:36:10 +09:00
Naxess
6d50d01186
Make IssueTemplate.Check
readonly
2021-04-12 16:23:05 +02:00
Naxess
caaaba5950
Rename Check
-> ICheck
2021-04-12 16:20:53 +02:00
Naxess
008dbc7dd6
Reverse IssueType
ordering
...
Reversed both in the enum and where it's displayed, so ends up the same in the end.
2021-04-12 15:49:13 +02:00
Naxess
7c4f6d2b62
Rework template usage
...
Includes moving the origin check back to templates, constructing nested template classes in each check, and making parameterized template usage.
2021-04-12 15:47:26 +02:00
ekrctb
31d3607105
Add TODO comment
2021-04-12 18:54:36 +09:00
ekrctb
359fae895f
Rename property
2021-04-12 18:50:25 +09:00
ekrctb
6d18b3db00
Avoid empty list allocation
2021-04-12 18:49:38 +09:00
Dean Herbert
b5954a55ad
Remove empty <returns> xmldoc
2021-04-12 17:46:14 +09:00
ekrctb
f1b8171e38
Remove #nullable true
for now to suppress inspector
2021-04-12 17:13:48 +09:00
Naxess
a2fc9c398f
Rename CreateChecker
-> CreateBeatmapVerifier
2021-04-12 10:08:30 +02:00
Naxess
65ebdd8f7a
Move check origin from IssueTemplate
to Issue
...
As a result we can also make check an interface, and need to provide the check itself when constructing an issue.
2021-04-12 10:08:08 +02:00
ekrctb
e19e8ff2a3
Rewrite FramedReplayInputHandler for robustness
...
This commit changes the semantics of `CurrentFrame` and `NextFrame` of the class.
The ordering of `NextFrame.Time` and `CurrentFrame.Time` was dependent on the current direction.
Now, it should always satisfy `CurrentFrame.Time <= CurrentTime <= NextFrame.Time` except at the start/end.
This change, however, doesn't break existing deriving classes if the template code pattern usage of interpolation is used.
The deriving class code can be simplified due to the elimination of nullable types. I didn't include those changes in this commit.
I removed `StreamingFramedReplayInputHandlerTest` for now, as it is almost-duplicate of `FramedReplayInputHandlerTest`. I'll include more tests in later commits.
This commit fixes #6150 .
2021-04-12 16:18:11 +09:00
Dean Herbert
8bf85d737c
Change Metadata into a get property
2021-04-12 15:52:29 +09:00
Dean Herbert
78bbc8f5c8
Tidy some remaining code
2021-04-12 15:52:18 +09:00
Dean Herbert
8c31e96cdf
Change some methods to get properties
2021-04-12 15:52:18 +09:00
Dean Herbert
f78239c7f2
Move enums out of nesting
2021-04-12 15:52:18 +09:00
Dean Herbert
3551322f1d
Fix formatting of colour getter
2021-04-12 15:52:18 +09:00
Dean Herbert
257acf9cd8
Colour constants to private
2021-04-12 15:52:18 +09:00
Dean Herbert
136627b9ac
Wrap xmldoc less and make a few fixes
2021-04-12 15:52:18 +09:00
Dean Herbert
1c553b5d48
Checker -> BeatmapVerifier
2021-04-12 15:29:05 +09:00
Dean Herbert
14bd5bdc77
Merge branch 'master' into verify-tab
2021-04-12 15:14:37 +09:00
ekrctb
d6d8ea5b6b
Throw when getting a frame of an empty replay
2021-04-12 11:17:56 +09:00
Salman Ahmed
18fb9f5ac9
Merge branch 'master' into mod-using-reference-equality
2021-04-11 19:48:55 +03:00
Naxess
3289bb0379
Merge Check
and BeatmapCheck
...
We're probably not going to need GeneralChecks or BeatmapsetChecks.
The verify tab is only available to a single difficulty at a time, and we already have access to the rest of the set through `IBeatmap`.
2021-04-10 14:56:30 +02:00
Naxess
bc4f3351f3
Replace checks with realistic ones
2021-04-10 13:03:16 +02:00
Naxess
b30e41b805
Fix comment; mode -> ruleset
2021-04-10 13:02:36 +02:00
Naxess
d1007ff26a
Move components to more appropriate spot
2021-04-10 13:02:22 +02:00
Dan Balasescu
9aa30fb323
Merge pull request #11688 from Syriiin/diffcalc/dynamic-history
...
Implement dynamic previous hitobject retention for Skill class
2021-04-10 01:25:07 +09:00
Samuel Cattini-Schultz
bfd3d0cce9
Implement custom enumerator for ReverseQueue to avoid allocations
2021-04-10 01:16:54 +10: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
Naxess
0343ef7f14
Add ruleset-specific checker
2021-04-07 14:36:43 +02:00
Naxess
b24ce66a0d
Add check/issue classes
2021-04-07 14:35:33 +02:00
smoogipoo
37e30b00bf
Refactor to keep a consistent API
2021-04-06 16:39:02 +09:00
Dean Herbert
784552022f
Merge pull request #12303 from smoogipoo/fix-last-control-point-segmenting
...
Make last control point not able to make an implicit segment
2021-04-06 13:35:55 +09:00
Samuel Cattini-Schultz
5cd43b3a7f
Set default history retention to 0 for Skill and override in StrainSkill
...
Some skills might not even require history retention, so why waste the allocations?
2021-04-06 11:53:31 +10:00
Samuel Cattini-Schultz
4f614a703e
Merge branch 'master' into diffcalc/dynamic-history
2021-04-06 11:34:33 +10:00
Samuel Cattini-Schultz
65f93d6f9d
Add more descriptive xmldoc for ReverseQueue
2021-04-06 11:30:58 +10:00
Samuel Cattini-Schultz
ffe7edc16a
Update xmldocs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-06 11:06:10 +10:00
Dan Balasescu
9d8a26f373
Merge branch 'master' into diffcalc/refactor-strain-skill
2021-04-06 08:21:38 +09:00
Samuel Cattini-Schultz
5bdd15f746
Refactor Skill.Process() to not require calling base.Process()
2021-04-05 22:14:59 +10:00
Samuel Cattini-Schultz
57983ae61f
Fix whitespace
2021-04-05 22:14:59 +10:00
smoogipoo
4b29d0ebe2
Fix last control point starting new segment
2021-04-05 17:49:36 +09:00
Dean Herbert
6bcbef9f25
Merge pull request #12294 from smoogipoo/mania-scoring-adjustments
...
Adjust scoring values to better fit osu!mania expectations
2021-04-05 17:19:28 +09:00
smoogipoo
3acc612a67
Adjust scoring values to better fit osu!mania
2021-04-05 13:28:46 +09:00
Samuel Cattini-Schultz
85d2b1232a
Refactor to abstract out strain logic into StrainSkill class
...
While it is the case for the existing official Skills, Skill implementations shouldn't be required to conform to a strain based approach.
There are other valid approaches to calculating skill difficulty that can be supported by abstracting the strain logic into its own StrainSkill class.
2021-04-03 20:52:39 +11:00
Samuel Cattini-Schultz
5b2dcea8a8
Refactor to encapsulate strain logic into Skill class
...
As strains are an implementation detail of the current Skill calculations, it makes sense that strain related logic should be encapsulated within the Skill class.
2021-04-03 20:47:43 +11:00
Samuel Cattini-Schultz
fe66b84bed
Implement dynamic previous hitobject retention for Skill class
...
There is no reason we should be limiting skills to knowing only the previous 2 objects. This originally existed as an angle implementation detail of the original pp+ codebase which made its way here, but didn't get used in the same way.
2021-04-03 20:28:51 +11:00
Dan Balasescu
345779b19a
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-04-02 20:58:29 +09:00
Salman Ahmed
5b1dc7d2b4
Remove unused using directive
2021-04-02 02:45:26 +03:00
Salman Ahmed
fcd56dba44
Guard against same ruleset file with loaded assembly filenames instead
2021-04-02 02:12:25 +03:00
Naxess
7e47922fb7
Merge branch 'master' into circular-arc-freeze
2021-04-01 17:09:45 +02:00
Naxess
7b684339ed
Undo public -> internal for PathControlPoint.Changed
...
No longer used.
2021-03-31 20:32:49 +02:00
Dean Herbert
690debe507
Merge pull request #12030 from LeNitrous/editor-platform-clipboard-copy
2021-03-29 19:31:16 +09:00
Nathan Alo
9a02f3868c
return a string instead
2021-03-29 17:29:05 +08:00
smoogipoo
ecb66ad2e2
Fix up xmldoc
2021-03-29 15:33:54 +09:00
Samuel Cattini-Schultz
068f00d8a0
Add EndTime to DifficultyHitObject for future convenience
2021-03-27 18:38:43 +11:00
Samuel Cattini-Schultz
010db8968f
Adjust wording of xmldoc
2021-03-27 18:38:23 +11:00
Nathan Alo
b8b7eb4c4b
refactor logic to its own component and handle hit object to string conversion to its ruleset-specific composers
2021-03-26 15:25:20 +08:00
Nathan Alo
2bea69456e
remove implementations
2021-03-26 15:24:33 +08:00
smoogipoo
8438fce764
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-03-26 11:47:38 +09:00
Dean Herbert
701342e036
Remove accuracy rounding at a ScoreProcessor level
2021-03-25 17:43:51 +09: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
Bartłomiej Dach
aec859b4d1
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-03-18 19:51:46 +01:00
Nathan Alo
51e0304c54
properly format strings per ruleset
2021-03-17 18:31:09 +08:00
Dean Herbert
9b5d11f2a5
Merge pull request #11958 from bdach/ruleset-filter-v3
...
Allow rulesets to specify custom song select filtering criteria
2021-03-08 23:23:24 +09:00
Bartłomiej Dach
06e42b4b4c
Fix taiko leaving behind empty judgements on legacy skins
2021-03-06 16:02:20 +01:00
Bartłomiej Dach
f00089846b
Merge branch 'master' into ruleset-filter-v3
2021-03-06 12:14:53 +01:00
Dan Balasescu
5b6018295d
Merge branch 'master' into diffcalc/skill-mods
2021-03-04 13:06:26 +09:00
Bartłomiej Dach
f733d1ec1f
Expose and document query parser and helpers
2021-03-03 22:03:01 +01:00
Bartłomiej Dach
14e249a134
Add ruleset interface for extending filter criteria
2021-03-02 20:07:11 +01:00
Dean Herbert
c4ba045df1
Add note about finalizers required for audio store clean-up
2021-03-02 16:07:51 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Dean Herbert
67773c42ef
Merge pull request #11888 from H2n9/modtimeramp-new-behaviour
2021-02-25 14:01:57 +09:00
Bartłomiej Dach
421b7877d4
Avoid mixing precision across time ramp bindables
...
Bears no functional difference, it's just a bit less of an eyesore.
2021-02-24 19:16:10 +01:00
Ronnie Moir
73d6a3687e
Change rate correction logic to be more explicit
2021-02-24 14:40:56 +00:00
smoogipoo
0b44d2483b
Make some properties virtual
...
I think they were intended to be this way from the beginning.
2021-02-24 15:03:41 +09:00
smoogipoo
14160b897e
Fix references to ModSuddenDeath
2021-02-24 14:44:53 +09:00
smoogipoo
30a58691f0
Make SD and PF incompatible with each other
2021-02-24 14:34:37 +09:00
Ronnie Moir
f6d3cd6413
Change SamplePlaybackWithRateMods to use rate calulated from the sample
...
Replace hardcoded numbers
2021-02-23 21:25:59 +00:00
PercyDan
b55a1acbea
Merge 2babb7ecb0
into e679a1916f
2021-02-23 21:49:03 +01:00
Ronnie Moir
7394c62cc8
Make ModTimeRamp and ModRateAdjust incompatible
2021-02-23 18:10:03 +00:00
Ronnie Moir
a6e840634b
Adjust scrubbing behaviour to allow dragging through rate values
2021-02-23 15:52:53 +00:00
Ronnie Moir
f45cedeb85
Adjust initial and final rate ranges and prevent them from overlapping
2021-02-23 15:38:09 +00:00
Dean Herbert
ec4b770cba
Remove unused using statement
2021-02-23 14:56:03 +09:00
Dean Herbert
672fd3f9d2
When disable mouse buttons during gameplay is selected, disable more globally
...
Until now the disable setting would only apply to left/right buttons,
and only in gameplay. This change will cause any global actions bound to
mouse buttons to also not work during gameplay.
Closes #11879 .
2021-02-23 14:37:46 +09:00
smoogipoo
ee6a94273d
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-02-22 18:31:27 +09:00
Dean Herbert
63dd55c92c
Add missing methods from updated audio component interface implementation
2021-02-22 14:18:52 +09:00
Samuel Cattini-Schultz
66643a97b0
Add a list of mods to Skill class
...
Although this isn't necessary for existing official rulesets and calculators, custom calculators can have use cases for accessing mods in difficulty calculation.
For example, accounting for the effects of visual mods.
2021-02-20 20:37:44 +11:00
Samuel Cattini-Schultz
442347df8e
Fix clockrate adjusted difficulty calculations bug in strain decay
...
When starting a new section, the starting strain value was calculated using the unadjusted timing value, meaning decay curves were essentially being stretched or squashed according to the clockrate.
This caused incorrect strain peaks for any section where the peak occurs at the start of the section (none of the objects in the section added enough strain after decay to exceed the starting strain).
This bug caused star ratings with clockrates above 1 to be lower than they should and below 1 to be higher than they should.
2021-02-20 20:23:49 +11:00
Dean Herbert
487a39eea9
Update interface implementations with framework changes
2021-02-18 18:52:34 +09:00
Dean Herbert
143e145670
Update implementation of AdjustableAudioComponents
2021-02-18 15:44:23 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dan Balasescu
cb4d119f23
Merge pull request #11740 from peppy/editor-fix-slider-samples-new-placement
...
Fix newly placed sliders in the editor not playing hitsounds
2021-02-12 13:31:00 +09:00
Dean Herbert
f84ea30637
Expose Mods in DrawableRuleset to avoid using external DI
2021-02-11 17:47:29 +09:00
Dean Herbert
aaa0362b12
Merge branch 'master' into autoplay-rate-independence
2021-02-11 17:39:45 +09:00
Dean Herbert
e9730d4782
Move default sample addition to inside PlacementBlueprint
...
This isn't actually required to fix the behaviour but it does feel like
a better place to put this logic.
2021-02-11 17:16:18 +09:00
smoogipoo
be9b07a4cf
Merge branch 'master' into difficulty-adjustment-extension
2021-02-10 20:42:08 +09:00
Dean Herbert
4e3bb27cd5
Merge branch 'master' into fix-mod-settings-fuckery
2021-02-09 16:47:39 +09:00
Dean Herbert
1cb51fa8d2
Merge branch 'master' into autoplay-rate-independence
2021-02-09 16:05:34 +09:00
Dean Herbert
8204d360a8
Always reset local user settings when a mod is deselected in ModSelectOverlay
2021-02-09 13:44:42 +09:00
Dean Herbert
be379e0e3c
Change CopyFrom to always overwrite all settings with incoming values
2021-02-09 13:44:11 +09:00
smoogipoo
f4a31287bf
Add/use IHitObjectContainer interface instead of IEnumerables
2021-02-08 20:11:06 +09:00
Bartłomiej Dach
0229851c9c
Apply rounding to ModTimeRamp to improve SPM consistency
2021-02-07 19:02:09 +01:00
Bartłomiej Dach
7daeacaff2
Add and implement IApplicableToRate interface
2021-02-07 18:35:34 +01:00
Bartłomiej Dach
68c20a2a37
Allow autoplay score generation to access mod list
2021-02-07 18:35:34 +01:00
Dean Herbert
06a3a72e43
Merge pull request #11670 from smoogipoo/mania-constant-speed-mod
...
Implement mania constant speed mod
2021-02-05 00:26:04 +09:00
smoogipoo
8295fb9081
Implement mania constant speed mod
2021-02-03 16:28:22 +09:00
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
Salman Ahmed
41b79d938b
Fix wrong checks..
2020-12-28 15:30:52 +03:00
Salman Ahmed
5efcdbd431
Fix IMod now using reference equality as well
2020-12-28 15:19:28 +03:00
Salman Ahmed
43f8f3638a
Fix mod using reference equality unless casted to IMod
2020-12-27 02:42:13 +03: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
PercyDan54
2babb7ecb0
Fix CI
2020-12-18 18:33:38 +08:00
PercyDan54
560a0174df
Make auto restart toggleable
2020-12-18 17:54:09 +08: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
Dean Herbert
9dfa4249e0
Make Apply non-virtual
2020-11-17 14:05:13 +09:00
Bartłomiej Dach
8da40ce2dc
Reduce duplication by extracting ModEasyWithExtraLives
2020-11-16 19:54:00 +01:00
Bartłomiej Dach
128adce017
Merge branch 'master' into change-taiko-ez
2020-11-16 19:37:47 +01:00
Bartłomiej Dach
72a8734f93
Merge branch 'master' into add-back-initiallifetimeoffset
2020-11-16 18:54:37 +01:00
smoogipoo
e8dbc190f1
Remove ability to pool DHOs in parent playfields
2020-11-16 23:30:24 +09:00
smoogipoo
cead67d512
Add back removed InitialLifetimeOffset removal
2020-11-16 21:49:29 +09:00
PercyDan54
f2ef7bee5d
Fix checks
2020-11-16 18:17:50 +08:00
PercyDan54
d7acfd5413
Remove retires from ModEasy
2020-11-16 18:15:15 +08: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
Dean Herbert
6706840b54
Merge pull request #10853 from bdach/add-to-legacy-conversion-tests
2020-11-16 15:22:04 +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
5d44286d38
Add missing generic mappings to legacy mods
2020-11-15 15:35:06 +01:00
Bartłomiej Dach
5ace7abaa8
Add abstract non-generic ModNightcore to pattern-match over
2020-11-15 15:32:02 +01:00
Bartłomiej Dach
f8cabbdd21
Clear result when freeing pooled hitobject
2020-11-14 21:09:22 +01:00
Bartłomiej Dach
610ed99ae3
Add null checks to unguarded resolved-as-null fields
2020-11-14 14:52:58 +01:00
smoogipoo
21b015d63a
Remove explicit public
2020-11-14 01:06:38 +09: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
f093acc9d5
Merge pull request #10823 from smoogipoo/pooling-editor-support
...
Add pooling support to the editor
2020-11-13 19:58:46 +09:00
smoogipoo
d83b479c81
Internalise lifetime extensions and events too
2020-11-13 19:21:45 +09:00
smoogipoo
4a4219fd11
Add region
2020-11-13 19:21:45 +09:00
smoogipoo
92189e35cc
Make playfield KeepAlive methods internal
2020-11-13 19:21:45 +09:00
smoogipoo
688a442fb3
Add missing dictionary
2020-11-13 17:26:46 +09:00
smoogipoo
942ecde0e1
Merge branch 'master' into pooling-editor-support
2020-11-13 17:23:35 +09:00
smoogipoo
3957697c48
Add pooling support to the editor
2020-11-13 17:08:20 +09:00
smoogipoo
4ef2e9548c
Pass HitObjectComposer to BlueprintContainer via ctor
2020-11-13 16:59:37 +09:00
Dean Herbert
06fd0d08d1
Merge branch 'master' into nested-hitobject-pooling
2020-11-13 16:53:20 +09:00
smoogipoo
4236dd826d
Improve documentation and make abstract again
2020-11-13 14:57:09 +09:00
smoogipoo
a07d4a7915
Remove unnecessary dictionary for now
2020-11-13 14:42:41 +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
8aaa500431
Add lifetime extensions
2020-11-12 18:34:50 +09:00
smoogipoo
243e913e4a
Add hitobject usage events
2020-11-12 18:32:20 +09:00
smoogipoo
fe347c8661
Add playfield support for keeping hitobjects alive
2020-11-12 18:30:32 +09:00
smoogipoo
7548db7ecc
Fix hitobjects sometimes not fading in completely with HD mod
2020-11-12 18:29:22 +09:00
smoogipoo
a8c2b798ad
Add support for nested hitobject pooling
2020-11-12 17:43:51 +09:00
smoogipoo
e44a8b3934
Resort as early as possible
2020-11-12 17:07:20 +09:00
Dean Herbert
41a1730927
Merge pull request #10794 from smoogipoo/fix-osu-hd-mod
2020-11-12 17:06:04 +09:00
smoogipoo
cf91962865
Fix test failures due to on-the-fly starttime changes
2020-11-12 16:58:40 +09:00
smoogipoo
974390bda7
Make Add() + Remove() virtual
2020-11-12 15:36:02 +09:00
smoogipoo
72a6b75626
Add back removed event
2020-11-12 15:34:51 +09:00
smoogipoo
4e43235955
Fix double bind leading to test failures
2020-11-12 15:33:49 +09:00
smoogipoo
653f5bce67
Reword xmldocs
2020-11-12 15:00:58 +09:00
smoogipoo
16e4e8d032
Fix possible nullref
2020-11-12 14:54:33 +09:00
smoogipoo
1f8d376b85
Replace CreatePool() with non-virtual RegisterPool() overload
2020-11-12 14:17:33 +09:00
smoogipoo
5dbbe11fc6
Remove PoolHitObjects, use return value of CreateDrawableRepresentation() instead
2020-11-12 14:04:16 +09:00
smoogipoo
f652eb9982
Remove GetDrawableRepresentation() override, add null hinting
2020-11-12 13:18:44 +09:00
smoogipoo
d7d77460fb
Small refactorings
2020-11-12 12:55:42 +09:00
smoogipoo
a8929b0764
Revert unnecessary change of casting
2020-11-11 19:27:07 +09:00
smoogipoo
7fdaf69903
Add some more xmldocs
2020-11-11 19:12:12 +09:00
smoogipoo
606cfacedf
Fix state update exception in a better way
2020-11-11 19:01:12 +09:00
smoogipoo
7d02018134
Remove some unnecessary implementations for now
2020-11-11 18:54:40 +09:00
smoogipoo
d7bee80d4e
Merge branch 'fix-incorrect-framestability-value' into hitobject-pooling-base
2020-11-11 18:52:51 +09:00
smoogipoo
90499329bd
Fix frame stable playback not being set correctly
2020-11-11 18:50:38 +09:00
smoogipoo
6f7a1dd57d
Merge branch 'master' into hitobject-pooling-base
2020-11-11 17:09:18 +09:00
smoogipoo
5d55af5818
Fix hitobjects sometimes not fading in completely with HD mod
2020-11-11 16:35:48 +09:00
Dean Herbert
8706b51b77
Merge pull request #10717 from smoogipoo/dho-apply
2020-11-11 10:54:24 +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
99e5450af3
Cache DrawableRuleset
2020-11-11 00:22:36 +09:00
smoogipoo
66213f2ed0
Add pooling support to DrawableRuleset + Playfield
2020-11-10 23:56:32 +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
45e9f16f6b
Add initial DrawableRuleset interface
2020-11-10 19:27:08 +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
Bartłomiej Dach
109abc0e29
Always store standardised score when populating ScoreInfo
2020-11-10 08:41:00 +01: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
Dean Herbert
d93cf08570
Merge branch 'master' into dho-apply
2020-11-07 01:18:46 +09:00
smoogipoo
91c627c22d
Revert HOC changes
2020-11-07 00:57:33 +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
Dan Balasescu
f230250faf
Merge branch 'master' into editor-slider-control-point-quick-delete
2020-11-06 21:47:37 +09:00
Dan Balasescu
44c6457c85
Merge branch 'master' into add-spinner-spin
2020-11-06 15:40:40 +09:00
Dan Balasescu
71a1165209
Merge branch 'master' into drawable-hit-object-hit-state-fix
2020-11-06 13:19:25 +09:00
Dean Herbert
a0b3379909
Fix judgement offsets being zero when windows are empty
2020-11-05 18:58:37 +09:00
Dean Herbert
2bbdbfda5c
Merge pull request #10696 from smoogipoo/visibility-adjustment-mod
2020-11-05 18:18:57 +09:00
Dean Herbert
2d50a7b616
Fix a few xmldoc typos
2020-11-05 17:38:02 +09:00
Dean Herbert
0cadb31947
Merge branch 'master' into drawable-hit-object-hit-state-fix
2020-11-05 17:07:52 +09:00
smoogipoo
9d5b1ec28c
Add removal dates
2020-11-05 17:04:11 +09:00
smoogipoo
cc518feca7
Make methods abstract
2020-11-05 16:03:10 +09:00
smoogipoo
a219aa7ba2
Add xmldoc
2020-11-05 15:53:35 +09:00
smoogipoo
628b8be15d
Implement ModWithVisibilityAdjustment
2020-11-05 15:40:25 +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
Dean Herbert
9f333ac58a
Add the ability to delete slider control points using shift+right click
...
Closes https://github.com/ppy/osu/issues/10672 .
In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Dan Balasescu
04178e9458
Merge branch 'master' into spectator-replay-watcher
2020-11-02 14:54:51 +09:00
Dan Balasescu
1b53e6c782
Merge branch 'master' into sample-lookup-improvements
2020-11-02 13:04:35 +09:00
Bartłomiej Dach
2b0bea535e
Resolve CA1805 inspections
...
"Member is explicitly initialized to its default value"
2020-11-01 18:47:40 +01:00
Bartłomiej Dach
b7696c85ad
Add more xmldocs
2020-11-01 15:23:03 +01:00
Dean Herbert
b4e5311014
Move initial state set inside updateClock
2020-10-30 20:39:25 +09:00
Dean Herbert
1bd461f229
Move clock logic back to inside updateClock method
2020-10-30 20:21:14 +09:00
Dean Herbert
32e68a6a3c
Fix FramedReplayInputHandler incorrectly blocking in streaming mode when time requested is before the first frame
...
Most of this is just tidying up the logic to (hopefully) be better to
follow, again (again (again)).
The actual fix is that we now allow interpolation/playback when the
incoming time is less than the first frame's time, regardless of
receiving status.
2020-10-30 16:09:03 +09:00
Dean Herbert
0f997386ae
Fix direction and IsRunning not updating on first frame after becoming valid
...
The parent clock will not unpause until WaitingForFrames becomes false,
so I've moved the set of that before we start to propagate its values
across. Doesn't fix any visible issue but should make propagation one
game loop faster.
2020-10-30 15:26:23 +09:00
Dean Herbert
326fd03525
Fix loop not exiting after first valid frame
2020-10-30 15:25:53 +09:00
Dean Herbert
8e6c803900
Avoid running full updateClock loop when waiting on frames
2020-10-30 12:39:11 +09:00
Dean Herbert
2ea4aa0a37
Fix incorrect specification on some sample lookups
2020-10-30 11:59:41 +09:00
Dean Herbert
87be7d162b
Merge branch 'master' into spectator-replay-watcher
2020-10-30 00:25:17 +09:00
Dean Herbert
335d150a13
Fix aim time being mutated inside update loop
2020-10-29 18:11:50 +09:00
Dean Herbert
2671d371da
Move clock retrieval to new correct location
2020-10-29 15:28:39 +09:00
Dean Herbert
3ea27e23e8
Update namespace references
2020-10-29 15:20:10 +09:00
Dean Herbert
db2b00068f
Avoid sourcing parent clock when in a paused state
2020-10-29 14:48:56 +09:00
Dean Herbert
d91456dc29
Move initial validity check out of loop for clarity
2020-10-29 14:25:47 +09:00
Dean Herbert
2e5a8b2287
Fix xmldoc to read better in new context
2020-10-29 13:16:31 +09:00
Dan Balasescu
a022b869eb
Merge branch 'master' into frame-stability-clean-up
2020-10-29 13:02:17 +09:00
Bartłomiej Dach
a1696942f0
Merge branch 'master' into right-click-circle-delete
2020-10-28 22:12:14 +01:00
Bartłomiej Dach
202fe09306
Group selection actions back up in SelectionHandler
2020-10-28 22:06:48 +01:00
Dean Herbert
6eddd76bdc
Simplify FramedReplayInputHandler's SetFrame implementation
2020-10-28 16:03:23 +09:00
Dean Herbert
09da75b143
Merge branch 'frame-stability-clean-up' into spectator-replay-watcher
2020-10-28 15:34:46 +09:00
Dean Herbert
2b1e79a4e8
Simplify state changes further
2020-10-28 15:32:20 +09:00
Dean Herbert
c9515653b3
Restore previous directionality logic to avoid logic differences
2020-10-28 15:31:57 +09:00
Dean Herbert
77d807d0f5
Merge branch 'frame-stability-clean-up' into spectator-replay-watcher
2020-10-28 15:26:02 +09:00
Dean Herbert
59e9c2639a
Remove try-finally
2020-10-28 15:16:56 +09:00
Dean Herbert
a06516c900
Extract out frame stability state into enum for (hopefully) better clarity
2020-10-28 15:15:15 +09:00
Dean Herbert
8c9bda2ded
Split out replay update method
2020-10-28 15:14:06 +09:00
Dean Herbert
9b9a41596f
Split out frame stability calculation to own method
2020-10-28 15:14:06 +09:00
Dean Herbert
3e5322541d
Make direction setting more clear
2020-10-28 14:35:42 +09:00
Dean Herbert
b3d793a505
Fix gameplay proceeding when no frames have been received yet
2020-10-27 18:58:37 +09:00