Bartłomiej Dach
9ce2c1f49c
Exclude video events from being accounted for when calculating storyboard time bounds
...
Closes https://github.com/ppy/osu/issues/25263 .
In some circumstances, stable allows skipping twice if a particularly
long storyboarded intro is being displayed:
https://github.com/peppy/osu-stable-reference/blob/master/osu!/GameModes/Play/Player.cs#L1728-L1736
`AllowDoubleSkip` is calculated thus:
3ea48705eb/osu
!/GameModes/Play/Player.cs#L1761-L1770
and `leadInTime` is calculated thus:
3ea48705eb/osu
!/GameModes/Play/Player.cs#L1342-L1351
The key to watch out for here is `{first,last}EventTime`. `EventManager`
will calculate it on-the-fly as it adds storyboard elements:
3ea48705eb/osu
!/GameplayElements/Events/EventManager.cs#L253-L256
However, this pathway is only used for sprite, animation, sample,
and break events. Video and background events use the following pathway:
https://github.com/peppy/osu-stable-reference/blob/master/osu!/GameplayElements/Events/EventManager.cs#L368
Note that this particular overload does not mutate either bound.
Which means that for the purposes of determining where a storyboard
starts and ends temporally, a video event's start time is essentially
ignored.
To reflect that, add a clause that excludes video events from
calculations of `{Earliest,Latest}EventTime`.
2023-10-27 22:24:17 +02:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Bartłomiej Dach
e314913aeb
Handle null texture case
2023-09-27 11:18:38 +02:00
Dean Herbert
a7237e48aa
Merge branch 'master' into fix-storyboard-skin-textures-lookup
2023-09-27 17:17:51 +09:00
Dean Herbert
3705c4c8d5
Avoid potentially incorrect size adjustment when texture doesn't change
2023-09-27 17:16:45 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions
2023-09-26 16:40:32 +09:00
Dean Herbert
567bc8fcd3
Ensure DrawableStoryboardSprite
's texture size propagates corectly on skin change
2023-09-26 14:13:51 +09:00
Dean Herbert
2ca1c684bb
Merge branch 'master' into fix-storyboard-skin-textures-lookup
2023-09-26 14:05:27 +09:00
Dean Herbert
b5e64d933c
Apply same fix to DrawableStoryboardAnimation
2023-09-20 12:54:36 +09:00
Dean Herbert
50adb5f7a7
Remove incorrectly merge conflict resolved
2023-09-20 12:54:28 +09:00
Bartłomiej Dach
641e651bf2
Fix DrawableStoryboardVideo
attempting to unmap path once too much
...
The `StoryboardResourceLookupStore` cached at storyboard level is
supposed to already be handling that; no need for local logic anymore.
2023-09-19 20:18:33 +02:00
Bartłomiej Dach
ba518e1da8
Fix StoryboardResourceLookupStore
dying on failure to unmap path
...
Before the introduction of `StoryboardResourceLookupStore`, missing
files would softly fail by use of null fallbacks. After the
aforementioned class was added, however, the fallbacks would not work
anymore if for whatever reason `GetStoragePathFromStoryboardPath()`
failed to unmap the storyboard asset name to a storage path.
2023-09-19 20:11:16 +02:00
Dean Herbert
4a7dc4d792
Fix storyboard UseSkinSprites
being implemented incorrectly
...
This was implemented as a "fallback", but it's actually intended to be
an "override". As in it allows storyboarders to *prefer* a skin sprite
before falling back to a local version contained within the storyboard.
Can be tested with https://osu.ppy.sh/beatmapsets/832364#osu/1743837 .
Closes https://github.com/ppy/osu/issues/24813 .
2023-09-19 20:20:20 +09:00
Dean Herbert
773ec46989
Expose some storyboard pieces to allow better testability
2023-09-19 20:20:11 +09:00
Dean Herbert
900376b662
Refactor storyboard resource lookup to be more streamlined
2023-09-14 16:15:50 +09:00
Salman Ahmed
6674c70280
Add support for limiting skin texture/animation dimensions
2023-09-03 02:21:47 +03:00
Dean Herbert
20e4e2581a
Change IBeatSyncProvider.Clock
to always be non-null
2023-07-13 22:13:40 +09:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Joseph Madamba
d6fa44240d
Fix storyboard video-only check being inverted
2023-05-16 21:51:32 -07:00
Dean Herbert
1efc78c0f8
Actually use new end time property when setting lifetimes
2023-04-26 13:28:51 +09:00
Dean Herbert
e330052852
Add second definition of EndTime
for storyboard elements to account for loops in lifetime
2023-04-25 15:22:11 +09:00
Dean Herbert
3919400be2
Apply NRT to some storyboard classes
2023-04-25 14:30:01 +09:00
Dean Herbert
2cce785fa5
Fix storyboard videos not fading out on completion
...
Closes https://github.com/ppy/osu/issues/22802 .
Stable uses a 1,000 ms fade-in / out. Rather than matching that, I've
stuck with 500ms (what lazer was already using for the fade-in) because
I think it feels better.
Tested using the beatmap linked in the issue thread.
2023-03-07 15:54:35 +09:00
Dean Herbert
eabd1a0cc1
Remove unused Duration
property to avoid any misunderstandings
2023-02-06 16:42:39 +09:00
Dean Herbert
679ec986d5
Fix storyboard outro time potentially running too long
2023-02-06 16:39:44 +09:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dean Herbert
192536643c
Fix some more inspections
2022-12-16 20:21:19 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dan Balasescu
fd88c92d5a
Merge pull request #21144 from peppy/fix-storyboard-end-start-time
...
Fix incorrect handling of storyboard events with `end_time` before `start_time`
2022-11-10 22:53:45 +09:00
Dean Herbert
0b34340447
Fix sprites not displaying in storyboard if filename extension is missing in script
2022-11-08 14:34:28 +09:00
Dean Herbert
6085120dc5
Fix incorrect handling of storyboard events with end_time
before start_time
2022-11-07 12:25:36 +09:00
Dean Herbert
28185178d6
Add support for weird storyboards which have backwards events
...
Closes https://github.com/ppy/osu/issues/20632 .
Not adding test coverage because this is just weird.
2022-10-10 16:51:55 +09:00
Salman Ahmed
835cae3087
Remove null conditional
2022-09-23 17:06:55 +03:00
Dean Herbert
4e9053b099
Fix crash when storyboard attempts to play at main menu
2022-09-23 20:10:57 +09:00
Dean Herbert
bbf906ee06
Remove unnecessary virtual
spec
2022-09-12 14:20:48 +09:00
Dean Herbert
24138b65a7
Fix storyboard animations not starting their animation playback from the correct point in time
2022-09-12 14:05:16 +09:00
Dean Herbert
824e68dab3
Fix VectorScale
set to 0 still showing some sprites in storyboard
...
This implementation was matching the [framework side implementation of
scale](16d1c2d335/osu.Framework/Graphics/Drawable.cs (L973-L976)
)
but I don't think it's required here.
I'm still not sure if the framework implementation is correct, but
removing it locally does seem to fix broken storyboard cases.
Closes https://github.com/ppy/osu/issues/20155 .
2022-09-07 15:39:19 +09:00
Dean Herbert
a3de5f808e
Fix typo in LoopStartTime
addition
2022-09-06 17:46:03 +09:00
Dean Herbert
677708c5e4
Rewrite logic using a list
2022-09-06 16:58:51 +09:00
Dean Herbert
d667f46830
Refactor alpha check to not overwrite sourced overrides with values from later commands
2022-09-06 16:41:32 +09:00
Dean Herbert
bea42d2862
Handle earliest-alpha-start-time logic in StoryboardSprite
itself
2022-09-06 16:16:58 +09:00
Dean Herbert
a5e57b083c
Remove EarliestDisplayTime
's input to CommandStartTime
2022-09-06 16:16:58 +09:00
Dean Herbert
c8764cb333
Move all usage of GameplayClock
to IGameplayClock
2022-08-15 18:30:53 +09:00
Dean Herbert
ac99c1ad69
Migrate the majority of existing file lookups to use new extension methods
2022-08-10 16:01:16 +09:00
Dan Balasescu
b4e55f7309
Apply IRenderer changes
2022-08-02 19:50:57 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
f23ddfe6cc
Move remaining realm classes out of Stores
namespace
2022-06-15 21:56:00 +09:00