Commit Graph

3127 Commits

Author SHA1 Message Date
e80c3c317a Rename UnmanagedHitObjectEntry -> SyntheticHitObjectEntry
"Unmanaged" was confusing because its lifetime is still managed by the HitObjectContainer.
2021-04-21 09:23:23 +09:00
c6ee4e900e Ensure a non-null hitobject entry has a non-null Result 2021-04-20 15:18:36 +09:00
8a8b9084ef Make single-argument overloead of DHO.Apply public 2021-04-20 10:11:36 +09:00
1bc63a4c61 Now, DHO.lifetimeEntry can be non-null even it is not fully applied 2021-04-20 09:22:16 +09:00
c1b4aaaa03 Add doc comment 2021-04-20 08:38:02 +09:00
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
5afdc3ff66 Make DHO application logic clearer with Entry/HitObject separation 2021-04-19 19:56:17 +09:00
f824105075 Merge branch 'master' into fix-slider-zero-length 2021-04-16 18:47:22 +09:00
9b95cf227e Merge branch 'master' into apply-ibindable-interface-change 2021-04-16 17:30:35 +09:00
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
d38e294d96 Centralise length validation function 2021-04-16 15:45:24 +09:00
8c4804dd7a Use nameof 2021-04-16 15:40:06 +09:00
d1c72f5e13 Apply changes resulting from IBindable interface updates 2021-04-16 15:10:53 +09:00
91c7d8d26c Introduce StartFrame and EndFrame to simplify the replay interpolation code 2021-04-16 14:13:41 +09:00
84bc81a6de Make FramedReplayInputHandler.CurrentTime non-null 2021-04-16 14:13:41 +09:00
936bde28a3 Remove manual handling of IsActive in RulesetInputManager
Now it is supported in framework
2021-04-16 14:13:41 +09:00
119c9b4294 Fix placement blueprints not being correctly removed after a rolled back placement 2021-04-16 14:11:33 +09:00
ac8e462d32 Merge branch 'master' into refactor-framed-replay-input-hander 2021-04-15 21:48:58 +09:00
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
d8aa436e81 Remove usage of Lazy<List<...>> in NestedPlayfields 2021-04-15 18:26:01 +09:00
50fad47ebc Remove usage of Lazy<List<...>> for NestedHitObjects 2021-04-15 18:26:01 +09:00
346e36d32a Make Mod.Description abstract and add missing descriptions 2021-04-15 14:36:26 +09:00
ba325de595 Merge conditionals for readability 2021-04-15 14:19:59 +09:00
5eaf3ea576 Reorganise and reword comments to make time override behaviour a bit clearer 2021-04-15 14:19:06 +09:00
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
cb4f64133e Add xmldoc to interfaces 2021-04-13 23:30:20 +09:00
1ff4e2076f Merge branch 'master' into verify-tab 2021-04-13 23:05:48 +09:00
69da804f81 Add missing period 2021-04-13 13:57:56 +02:00
0d6890243f Fix typo in xmldoc 2021-04-13 20:18:18 +09:00
03ba04e8ce Split out general checks into its own verifier class (and remove static usage) 2021-04-13 19:50:22 +09:00
aa5fe2e9fc Rename BeatmapVerifier -> IBeatmapVerifier 2021-04-13 11:02:01 +02:00
60c2494b31 Make BeatmapVerifier an interface 2021-04-13 10:40:56 +02:00
36510309d1 Merge EnableUserDim and IgnoreUserSettings to one bindable 2021-04-13 10:58:56 +03:00
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
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
38d10755cb Merge branch 'master' into refactor-framed-replay-input-hander 2021-04-13 13:47:22 +09:00
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
d8088777ea Add Equals method to IssueTemplate
This will be useful in tests.
2021-04-13 01:21:34 +02:00
9679bdfed2 Merge branch 'master' into mod-using-reference-equality 2021-04-12 20:56:24 +03:00
92fab653e1 Take current mod settings value into account on equality comparsion 2021-04-12 20:51:13 +03:00
19a154ddf1 Rename checkOrigin -> check
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
bb720c23a0 Remove check ctors and locals 2021-04-12 17:12:37 +02:00
62c1812282 Remove redundant parameter naming 2021-04-12 23:37:47 +09:00
36bd235021 Move nested classes to bottom of file 2021-04-12 23:36:10 +09:00
6d50d01186 Make IssueTemplate.Check readonly 2021-04-12 16:23:05 +02:00
caaaba5950 Rename Check -> ICheck 2021-04-12 16:20:53 +02:00
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
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
31d3607105 Add TODO comment 2021-04-12 18:54:36 +09:00
359fae895f Rename property 2021-04-12 18:50:25 +09:00