1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 07:22:57 +08:00
Commit Graph

299 Commits

Author SHA1 Message Date
Salman Ahmed
c9d54834be Fix SkinnableSprites in storyboards not autosizing to their textures 2022-03-14 03:46:13 +03:00
Dean Herbert
c38126ba9d Make mods argument optional for storyboard construction 2022-03-04 12:05:02 +09:00
Salman Ahmed
3630ab2db2 Remove unnecessary nullability of storyboard mods list 2022-03-03 00:09:12 +03:00
Salman Ahmed
cbb8dc2891 Fix storyboard samples rate not adjusted from actual gameplay mods 2022-03-02 20:56:18 +03:00
Dean Herbert
e49da2948d Fix storyboard background replacement logic not working for beatmaps with multiple backgrounds
In the case where the background image of individual difficulties is
different, querying the beatmap *set*'s metadata as we were will cause
issues.

I haven't added test coverage for this but can if required. Can be
manually tested using https://osu.ppy.sh/beatmapsets/1595773#osu/3377474
(specifically the highest difficulty).

Closes https://github.com/ppy/osu/discussions/16873.
2022-02-18 16:24:19 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
Dean Herbert
167c399e8a Fix invalid DI resolution of RealmFileStore 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
e6fdd0e969 Miscellaneous fixes that don't fit elsewhere 2022-01-12 16:39:36 +09:00
Dean Herbert
79dd9674fc Use longer form to read better
Using `l.StartTime` reads like a coding issue, even though if you go
down the call chain looks to be correct.
2021-12-14 17:41:09 +09:00
Dan Balasescu
357a661379 Fix storyboard sprites sometimes starting too early 2021-12-14 13:13:12 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dean Herbert
7c2e79f911 Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Dean Herbert
b80c02b757 Fix crash on gameplay startup if beatmap has no background 2021-11-04 17:24:40 +09:00
Dean Herbert
d1e6d1cb98 Update some other missed incorrect null/empty usages 2021-11-04 14:50:43 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
3faafd7200 Rename parameter to repeatCount and add guards 2021-10-01 18:26:29 +09:00
Sebastian Krajewski
f148fbcc94 Cap LoopCount to at least 1 2021-09-29 00:59:08 +02:00
Dean Herbert
06d1bd971c Default DrawableStoryboard to a completed state to avoid state change on empty storyboards 2021-06-18 16:08:49 +09:00
Dean Herbert
00b3eea840 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-05-31 21:39:04 +09:00
Dean Herbert
631d217f78 Remove no longer necessary conditional access 2021-05-28 15:42:35 +09:00
Dean Herbert
6268bbea85 Merge branch 'master' into fix-skin-sample-lookup 2021-05-28 14:47:35 +09:00
Dean Herbert
70a844ac10 Remove allowFallback parameters completely 2021-05-27 14:50:42 +09:00
Dean Herbert
342acadae2 Change LINQ query for better readability 2021-05-25 18:51:51 +09:00
Dean Herbert
871ca8054f Rename classes as per review feedback 2021-05-25 18:50:33 +09:00
Dean Herbert
5ea948aabe Bypass 640x480 coordinate space for video storyboard elements
This allows the `FillMode.Fill` to take up the full space of the
storyboard container.
2021-05-25 16:17:29 +09:00
Dean Herbert
0c55bba220 Allow storyboards to be widescreen if only a video element exists
This matches stable behaviour, which will allow videos to display
filling the screen if they are the only thing contained within the
"storyboard".
2021-05-25 16:07:19 +09:00
Dean Herbert
e3507d5453 Move DrawableStoryboard's aspect application to inside its own class 2021-05-25 16:06:39 +09:00
Dean Herbert
18779b1d1e Cache last event time value to avoid super expensive LINQ 2021-05-04 16:48:13 +09:00
Dean Herbert
ffc88db47a Implement Duration via the interface 2021-05-04 16:04:59 +09:00
Dean Herbert
bb9fa1a25e
Merge branch 'master' into play-storyboard-outro 2021-05-04 14:01:34 +09:00
smoogipoo
d28eb399a4 Fix storyboard sample lifetimes not set if seeked past 2021-04-20 17:14:48 +09:00
Christine Chen
98460c8feb Rename IStoryboardElementHasDuration, remove unnecessary step in tests, add Duration field 2021-04-18 20:20:14 -04:00
Salman Ahmed
f6a09be62d Add further xmldoc 2021-04-18 07:25:49 +03:00
Christine Chen
97bacbdc76 Show score after the end of the storyboard after it was toggled 2021-04-17 18:10:21 -04:00
Christine Chen
e40cb6797d Use GetEndTime() to get storyboard endtime 2021-04-17 15:27:48 -04:00
Christine Chen
5a015290b9 Add remarks back to LatestEventTime 2021-04-17 12:34:38 -04:00
Christine Chen
b15838b220 Move storyboard outro logic to DrawableStoryboard 2021-04-16 00:59:10 -04:00
Christine Chen
0e545e1ed9 Add IHasDuration interface with EndTime for storyboard elements to implement 2021-04-15 17:17:02 -04:00
Christine Chen
25b8c2f257 Allow skipping storyboard outro
Reuses SkipOverlay by calculating the endtime of the storyboard and using that as a "start point". Upon skipping the outro the score is instantly shown.
When the end of the storyboard is reached the score screen automatically shows up. If the player holds ESC (pause) during the outro, the score is displayed

The storyboard endtime is calculated by getting the latest endtime of the storyboard's elements, or simply returning 0 if there is no storyboard.

Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-15 13:20:40 -04:00
Christine Chen
16d34bcc0a Expose the latest end time of storyboard elements
Co-authored-by: Marlina Bowring <marlina@umich.edu>
2021-04-12 23:08:43 -04:00
Dean Herbert
efb4a366d4
Fix xmldoc explaining incorrect behaviour
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-03-11 12:15:59 +09:00
Dean Herbert
8aaba32431 Fix storyboard commands occurring before the earliest point of visibility delaying gameplay
In osu-stable, storyboard intros start from the first command, but in
the case of storyboard drawables which have an initial hidden state, all
commands before the time at which they become visible (ie. the first
command where `Alpha` increases to a non-zero value) are ignored.

This brings lazer in line with that behaviour. It also removes several
unnecessary LINQ calls.

Note that the alpha check being done in its own pass is important, as
it must be the "minimum present alpha across all command groups,
including loops". This is what makes the implementation slightly
complex.

Closes #11981.
2021-03-09 15:55:12 +09:00
smoogipoo
dff1d80f39 Update HasFlag usages to HasFlagFast 2021-02-25 15:38:56 +09:00
Dean Herbert
05982f42ab Add more comprehensive commenting and simplify base call logic
We can call the base method regardless for better safety. Worst case
it's just going to run `Stop()` twice anyway.
2021-02-01 16:43:54 +09:00
Mysfit
ee89aa159c Removed blank line 2021-01-26 23:12:26 -05:00
Mysfit
690feb1c1e Allow looping storyboard samples to follow the base samplePlaybackDisabled event logic. 2021-01-26 23:08:51 -05:00
Mysfit
3307e8357f DrawableStoryboardSample event method override for SamplePlaybackDisabledChanged 2021-01-26 00:36:32 -05:00
Bartłomiej Dach
b692abd3c2 Simplify condition from two to one operand 2021-01-22 20:35:34 +01:00
Mysfit
e0f8f6a23f introduce overrideable bool instead of copying event logic entirely 2021-01-22 12:09:40 -05:00
Mysfit
5b1bdfbdc5 Use callback method override 2021-01-21 20:06:24 -05:00
Mysfit
07ec0c0e0b Updated DrawableStoryboardSample to use GetBoundCopy() 2021-01-21 17:46:47 -05:00
Mysfit
b220939650 Fix storyboard samples continuing to play when the beatmap is paused or the intro is skipped. 2021-01-21 17:10:11 -05:00
Dean Herbert
9e0c490141 Remove unused using 2021-01-04 15:40:22 +09:00
Dean Herbert
20d04d6933 Fix Storyboard's FirstEventTime not finding the true earliest event 2021-01-04 15:16:01 +09:00
Dean Herbert
a8569fe15c Fix a couple of simple cases of incorrect TextureLoaderStore initialisation 2020-12-21 13:35:46 +09:00
smoogipoo
c29ad8edf8 Better API for dealing with the contained drawable samples 2020-11-30 19:26:25 +09:00
smoogipoo
a53848ef9b Fix storyboard imlpementation 2020-11-19 22:30:41 +09:00
smoogipoo
730b14b5bb Add initial hit sample pooling 2020-11-19 19:51:09 +09:00
Bartłomiej Dach
61093030ee Remove redundant class name qualifier 2020-11-10 12:20:49 +01:00
Bartłomiej Dach
ce837eaba0 Rename variables 2020-11-10 12:20:26 +01:00
cadon0
539806e9d6 Rewrite - Add empty drawable whenever sprite not found 2020-11-10 23:52:37 +13:00
cadon0
6446074976 Fix paths for storyboard animation sprites 2020-11-10 23:52:37 +13:00
Dean Herbert
4f746792fb Fix regression causing storyboard sprites to have incorrect origin support 2020-10-23 15:46:24 +09:00
Dean Herbert
1b84402b96 Centralise and share logic for storyboard frame lookup method 2020-10-23 15:34:00 +09:00
Bartłomiej Dach
58a54c5b6c Utilise UseSkinSprites value in storyboard sprite logic 2020-10-20 23:01:25 +02:00
Bartłomiej Dach
cdd56ece87 Read UseSkinSprites when decoding storyboards 2020-10-20 22:49:56 +02:00
Bartłomiej Dach
e54836a63e Use SkinnableSprite to avoid unnecessary reloads 2020-10-20 22:49:56 +02:00
Sebastian Krajewski
f41fc71e42 Allow storyboard animations to load textures from skins 2020-10-09 18:02:21 +02:00
Sebastian Krajewski
cf76d77762 Fix osu!classic skin elements not showing up in storyboards 2020-10-09 17:34:01 +02:00
Sebastian Krajewski
e0b5ead223
Merge branch 'master' into storyboard-skin-sprites 2020-10-09 16:55:45 +02:00
Dean Herbert
367b35bb10 Merge branch 'master' into fix-storyboard-sample-pausing 2020-09-30 22:42:26 +09:00
Dean Herbert
136843c8e4 Make DrawableStoryboardSample a SkinnableSound
Allows sharing pause logic with gameplay samples.
2020-09-29 14:25:39 +09:00
Dean Herbert
69cb9f3091 Fix potential crash if disposing a DrawableStoryboardSample twice 2020-08-21 18:19:47 +09:00
Sebastian Krajewski
7cf225520f Change from BDL to Resolved 2020-08-08 02:43:39 +02:00
Sebastian Krajewski
e0ae2b3ebf Switch to SkinReloadableDrawable 2020-08-06 17:07:36 +02:00
Sebastian Krajewski
19a0eaade9 Allow storyboard sprites to load textures from skins 2020-08-06 04:41:44 +02:00
Dean Herbert
0a1e6a8273 Fix storyboard video playback when not starting at beginning of beatmap 2020-07-16 14:25:45 +09:00
Ronnie Moir
f2a48a339e Remove unused usings 2020-06-24 16:33:19 +01:00
Ronnie Moir
992ada4670 Revert UserPlaybackRate changes 2020-06-24 16:18:46 +01:00
Ronnie Moir
4c28347686 Adjust sample rate by UserPlaybackRate 2020-06-24 15:34:20 +01:00
Bartłomiej Dach
470d5bfce3 Invert if to reduce nesting 2020-06-19 20:15:14 +02:00
Bartłomiej Dach
53861cdde8 Privatise setter 2020-06-19 20:13:43 +02:00
Ronnie Moir
f04f2d2175 Add test scene 2020-06-18 21:46:32 +01:00
Ronnie Moir
9f4f3ce2cc Handle IApplicableToSample mods 2020-06-16 14:54:50 +01:00
Dean Herbert
978636b90c Fix storyboard sample playback failing when expected to play at 0ms 2020-06-15 09:38:33 +09:00
Bartłomiej Dach
2398f2e537 Expose drawable overlay layer 2020-05-19 19:47:50 +02:00
Bartłomiej Dach
e211785704 Add overlay layer to storyboard definition 2020-05-19 19:47:45 +02:00
Dean Herbert
c5f8bbb25f Fix beatmap background not displaying when video is present 2020-04-14 11:56:37 +09:00
Dean Herbert
b7308f5ed4 Fix storyboard videos being offset incorrectly 2020-04-07 00:26:38 +09:00
Dean Herbert
51db361c32 Update usages of Animation and Video in line with framework changes 2020-04-03 16:00:06 +09:00
Bartłomiej Dach
522bbc1e9c Support widescreen per-layer storyboard masking 2020-03-30 21:51:39 +02:00
Lucas A
01c9112f82 Add a null check to prevent NRE when playing the "no video" version of a beatmap. 2020-03-26 17:09:22 +01:00
voidedWarranties
b8f20831a1 Video no longer modifies storyboard resolution 2020-03-24 20:04:09 -07:00
Dean Herbert
6d81da5419
Merge branch 'master' into video-offset 2020-03-25 11:28:59 +09:00
Dean Herbert
368bf58521 Rename and make fields readonly 2020-03-25 11:08:08 +09:00
voidedWarranties
4bb15a8b93 Allow individual storyboard layers to disable masking 2020-03-23 22:51:37 -07:00
voidedWarranties
c27751050b Switch back to strings and update setting labels 2020-03-12 23:29:11 -07:00
smoogipoo
424f9afbf4 Fix incorrect offset with custom clock 2020-03-11 17:55:20 +09:00
smoogipoo
ae7245a51b Refactor + fix fade in too late 2020-03-11 15:11:54 +09:00
voidedWarranties
6de244389b Use OffsetClock instead of ManualClock 2020-03-10 22:50:20 -07:00
voidedWarranties
5aa99d8b34 Hide background image when video is present 2020-03-09 16:04:23 -07:00
voidedWarranties
4624582703 Revert position offset change for separate pull 2020-03-08 14:40:36 -07:00
voidedWarranties
22dd93a4f6 Code quality, read position offsets 2020-03-08 14:02:39 -07:00
voidedWarranties
48282dea8b Remove individual setting to disable videos, fix tests 2020-03-07 22:08:38 -08:00
voidedWarranties
76c832518f Render video as a part of the storyboard 2020-03-07 21:32:03 -08:00
Dean Herbert
740bdee125 Apply remaining uncaught changes 2020-01-20 23:59:21 +09:00
Dean Herbert
cd5290b030 Enforce using get-only auto property where possible 2020-01-20 13:50:27 +09:00
smoogipoo
91735ff367 Update MathUtils namespace usages 2020-01-09 13:43:44 +09:00
Dean Herbert
ada8efb4ab
Merge branch 'master' into fix-storyboard-crash 2019-12-19 11:44:20 +09:00
smoogipoo
f38853d229 Improve performance of storyboard loading 2019-12-19 00:52:50 +09:00
smoogipoo
8d6987c870 Refactor storyboard timeline to reduce GC / fix crashes 2019-12-18 23:59:48 +09:00
Dean Herbert
69f888fc49
Fix storyboard flipping potentially not having an effect (#7260)
Fix storyboard flipping potentially not having an effect
2019-12-18 17:48:41 +09:00
smoogipoo
5aca523d35 Fix storyboard flipping potentially not having an effect 2019-12-18 17:27:13 +09:00
smoogipoo
602ce698d5 Fix storyboard vectorscale and scale cross-pollution 2019-12-18 17:21:38 +09:00
Huo Yaoyuan
caf3f774ba CA1309: compare strings correctly. 2019-12-17 13:00:15 +08:00
Huo Yaoyuan
40a5c1fd96 Constrain transformable with class. 2019-12-09 17:45:26 +08:00
Huo Yaoyuan
c0fe91a84c Merge branch 'master' into sharpen 2019-11-26 18:21:50 +08:00
Dean Herbert
8d1b11d4bd Add storyboard lead-in tests 2019-11-21 18:50:54 +09:00
Dean Herbert
eee5902851 Merge remote-tracking branch 'upstream/master' into lead-in-fixes 2019-11-15 14:05:31 +09:00
Huo Yaoyuan
31cc0d13da Use 'out var'. 2019-11-12 19:55:26 +08:00
Huo Yaoyuan
bbeab6fa76 Use auto property. 2019-11-12 19:53:25 +08: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
Dean Herbert
4b2cb8854e Fix storyboard samples not stopping on exit 2019-09-03 19:28:10 +09:00
iiSaLMaN
b6b050d5e9 Add sample path to the lookup names 2019-08-23 14:55:06 +03:00
iiSaLMaN
7b04fb1690 StoryboardSample -> StoryboardSampleInfo 2019-08-23 14:54:39 +03:00
Dean Herbert
48716f8f2b Update framework 2019-08-21 13:29:50 +09:00
Dean Herbert
90b1fe81f3 Update cached usage in line with framework changes 2019-08-09 19:12:29 +09:00
Dean Herbert
e03a664970 Fix lead-in logic to match stable
Also adds storyboard event priority support.
2019-05-31 15:51:19 +09:00
smoogipoo
93b26cd026 Reduce unnecessary allocations 2019-05-14 13:04:49 +09:00
smoogipoo
ad4b4f3422 Use nullable cancellation tokens 2019-05-10 17:42:45 +09:00
smoogipoo
f6dfcc4dcf Remove unnecessary Storyboard disposal 2019-05-10 16:31:22 +09:00
smoogipoo
d25d39b315 Add cancellation to storyboard/hitobject loading 2019-05-10 16:31:09 +09:00
Dean Herbert
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
Dean Herbert
92184adef5 Add stable sorting of storyboard elements 2019-03-26 16:37:52 +09:00
David Zhao
acc133896b Correct null check 2019-03-18 18:19:59 +09:00
David Zhao
05147768d3 Permit nulls 2019-03-18 15:50:34 +09:00
David Zhao
6a26972284 DI gameplay clock for Storyboards 2019-03-18 15:25:54 +09:00
Dean Herbert
2dbf7d122c
Merge branch 'master' into use-pattern-matching 2019-02-28 14:53:07 +09:00
Dean Herbert
e2c6a8bc07 Use pattern matching wherever possible 2019-02-28 14:35:00 +09:00
Dean Herbert
0788a7e9f1
Merge branch 'master' into more-inspections 2019-02-28 14:32:57 +09:00
Dean Herbert
42be7857d1 Use expression body for property get/set where possible 2019-02-28 13:58:19 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
a07d797d75 Merge remote-tracking branch 'Joehuu/master' into use-lifetime-optimization 2019-02-27 12:08:43 +09:00
smoogipoo
d8c55bc729 Adjust namespaces 2019-02-21 19:05:52 +09:00
Dan Balasescu
c9c8cccd68
Merge branch 'master' into use-lifetime-optimization 2019-02-18 15:22:34 +09:00
Dean Herbert
ca5c8d37d1 Use leased bindables 2019-02-01 16:44:06 +09:00