Bartłomiej Dach
995338029c
Fix difficulty cache lookups sharing underlying mod instances
...
`DifficultyCacheLookup`s were storing raw `Mod` instances into their
`OrderedMods` field. This could cause the cache lookups to wrongly
succeed in cases of mods with settings. The particular case that
triggered this fix was Difficulty Adjust.
Because the difficulty cache is backed by a dictionary, there are two
stages to the lookup; first `GetHashCode()` is used to find the
appropriate hash bucket to look in, and then items from that hash bucket
are compared against the key being searched for via the implementation
of `Equals()`.
As it turns out, the first hashing step ended up being the saving grace
in most cases, as the hash computation included the values of the mod
settings. But the Difficulty Adjust failure case was triggered by the
quirk that `GetHashCode(0) == GetHashCode(null) == 0`.
In such a case, the `Equals()` fallback was used. But as it turns out,
because the `Mod` instance stored to lookups was not cloned and
therefore potentially externally mutable, it could be polluted after
being stored to the dictionary, and therefore breaking the equality
check. Even though all of the setting values were compared, the hash
bucket didn't match the actual contents of the lookup anymore (because
they were mutated externally, e.g. by the user changing the mod setting
values in the mod settings overlay).
To resolve, clone out the mod structure before creating all difficulty
lookups.
2021-08-21 15:50:33 +02:00
Bartłomiej Dach
f642546d6a
Add failing test case
2021-08-21 15:50:33 +02:00
Bartłomiej Dach
479401e533
Add option to set own computation function in test
2021-08-21 15:50:32 +02:00
Salman Ahmed
b2ee777ceb
Merge pull request #14431 from peppy/fix-setting-section-clickability
...
Fix bottom area of a settings section not being clickable
2021-08-21 15:31:50 +03:00
Salman Ahmed
df5354eba6
Merge branch 'master' into fix-setting-section-clickability
2021-08-21 14:25:28 +03:00
Salman Ahmed
a7e513faed
Merge pull request #14430 from peppy/gameplay-chat-mouse-cursor
...
Use the UI mouse cursor when hovering gameplay chat in an interactive state
2021-08-21 14:25:09 +03:00
Salman Ahmed
216ff07497
Merge branch 'master' into fix-setting-section-clickability
2021-08-21 14:11:55 +03:00
Salman Ahmed
76e1d88028
Merge branch 'master' into gameplay-chat-mouse-cursor
2021-08-21 14:01:30 +03:00
Salman Ahmed
21cc24c1d0
Merge pull request #14429 from peppy/improve-chat-username-effect
...
Improve highlighted chat username shadow effect
2021-08-21 13:57:32 +03:00
Dean Herbert
ae47c5cdb3
Fix bottom area of a settings section not being clickable
2021-08-21 15:08:42 +09:00
Dean Herbert
15d443f6b7
Use the UI mouse cursor when hovering gameplay chat in an interactive state
2021-08-21 14:44:54 +09:00
Dean Herbert
36352d1de4
Improve highlighted chat username shadow effect
2021-08-21 14:34:35 +09:00
Dean Herbert
d3dba296d6
Update resources
2021-08-20 23:47:35 +09:00
Dan Balasescu
9de0729bfc
Merge pull request #14377 from peppy/temporary-directory-test-storage
...
Update test scenes in line with temporary directory changes framework-side
2021-08-20 23:27:39 +09:00
Dean Herbert
e13b516f31
Fix excess blank lines
2021-08-20 22:26:38 +09:00
Dan Balasescu
0c936aec4b
Merge branch 'master' into temporary-directory-test-storage
2021-08-20 22:09:42 +09:00
Dean Herbert
5e234fb746
Add try catch to avoid test failures on windows
2021-08-20 22:07:13 +09:00
Dan Balasescu
30d7817aad
Merge pull request #14384 from peppy/settings-dim-other-sections
...
Dim all but the current settings section
2021-08-20 20:52:07 +09:00
Dan Balasescu
0aea39f5f1
Merge branch 'master' into temporary-directory-test-storage
2021-08-20 20:41:54 +09:00
Dan Balasescu
0a6b678059
Merge branch 'master' into settings-dim-other-sections
2021-08-20 20:22:22 +09:00
Dan Balasescu
c9ac828129
Merge pull request #14405 from LittleEndu/test-section-top-visible
...
Expand `TestSceneSectionsContainer` to test for the scrolled to section being visible
2021-08-20 20:22:15 +09:00
Dan Balasescu
06112fcd79
Merge pull request #14406 from peppy/fix-intro-screen-beatmap-retrieval
...
Allow intro screen to retrieve beatmap even if rulesets is not loaded
2021-08-20 20:19:36 +09:00
Dean Herbert
b9ff94485d
Revert usage of OsuGameTestScene
for TestSceneOsuGame
...
Turns out we likely don't want this, as it means the testing user (using
a visual test browser) will not have access to their beatmaps. Can
revisit at a future date if the temporary files are still an issue.
2021-08-20 19:45:54 +09:00
Dean Herbert
77149044a5
Allow intro screen to retrieve beatmap even if rulesets is not loaded
2021-08-20 19:43:48 +09:00
Dean Herbert
51edb0f073
Merge pull request #14404 from smoogipoo/room-block-click
...
Fix online room being deselected when joined
2021-08-20 18:38:35 +09:00
Endrik Tombak
cbee379f62
Test scrolled to section top is visible
2021-08-20 12:30:49 +03:00
smoogipoo
d304e283e4
Don't deselect online room when joined
2021-08-20 18:14:59 +09:00
Dean Herbert
591ba8cb09
Ensure the final scroll target is used when checking for whether too far down
2021-08-20 17:56:35 +09:00
Dean Herbert
03e6ca5ba9
Adjust scroll behaviour to feel better
2021-08-20 17:40:56 +09:00
Dean Herbert
2d19f37dc6
Add missing new
method in UserTrackingScrollContainer
for scrolling into view
2021-08-20 17:40:41 +09:00
Dean Herbert
139ff2d6e2
Only fade header in when hovering a section
...
Feels less like the controls are interactive when hovering this way.
2021-08-20 17:40:05 +09:00
Dean Herbert
c7266c74a0
Always prefer clicked section when present
2021-08-20 17:00:20 +09:00
Dean Herbert
cff7b1e98f
Ensure the correct fade level is applied over all state changes
2021-08-20 17:00:08 +09:00
Dan Balasescu
3f37d4395f
Merge pull request #14389 from peppy/fix-messagepack-union
...
Fix android not being able to connect to multiplayer server
2021-08-20 16:19:56 +09:00
Dan Balasescu
54bc532f0d
Merge branch 'master' into fix-messagepack-union
2021-08-20 16:01:04 +09:00
Dean Herbert
659ec0c1b8
Merge pull request #14403 from Joehuu/fix-nub-glow
...
Fix nub glow color not having 0 alpha when being set
2021-08-20 15:07:30 +09:00
Dan Balasescu
781a4f997f
Merge pull request #14392 from peppy/fix-login-as-guest
...
Ensure all request failures are correctly handled during login
2021-08-20 14:27:05 +09:00
Dan Balasescu
dcff30ed6e
Merge branch 'master' into fix-login-as-guest
2021-08-20 14:06:28 +09:00
Dan Balasescu
52b9616909
Merge pull request #14350 from LittleEndu/cursor-trail-middle
...
Avoid drawing segments of cursor trail near current cursor position
2021-08-20 13:49:13 +09:00
Dan Balasescu
6128a38054
Merge branch 'master' into cursor-trail-middle
2021-08-20 13:28:51 +09:00
Dean Herbert
98357d51da
Merge pull request #14323 from minetoblend/editor-seek
...
Prevent seeking before mp3 start time while editor is playing
2021-08-20 13:28:20 +09:00
Dan Balasescu
845c374a4a
Merge pull request #14402 from frenzibyte/update-inspections
...
Update code inspection settings to hide "merge into pattern" again
2021-08-20 12:53:34 +09:00
Joseph Madamba
284c871e39
Fix glow color potentially being set incorrectly when glowing
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-08-19 20:33:19 -07:00
Dan Balasescu
dd6337c5a5
Merge branch 'master' into update-inspections
2021-08-20 12:29:08 +09:00
Dan Balasescu
b343f17a52
Merge pull request #14359 from peppy/multiplayer-chat
...
Add chat display during multiplayer gameplay
2021-08-20 12:16:06 +09:00
Dean Herbert
da8eba9996
Return early to avoid updating state and failure count in fail cases
2021-08-20 12:11:41 +09:00
Joseph Madamba
1e02d61b85
Fix nub glow color not having 0 alpha when being set
2021-08-19 20:06:49 -07:00
Dan Balasescu
c95bf735fe
Merge branch 'master' into multiplayer-chat
2021-08-20 11:54:42 +09:00
Dean Herbert
2825e15fd4
Update framework
2021-08-20 11:54:37 +09:00
Dean Herbert
7021133029
Merge branch 'master' into temporary-directory-test-storage
2021-08-20 11:54:33 +09:00