Commit Graph

17342 Commits

Author SHA1 Message Date
CodingJellyfish
84dff4423e Guarantee 2048 bones 2024-05-30 02:06:51 +08:00
Alayan
7320f2e70d
Fix a crash in debug mode
The assert for spinner getStringValue not returning empty is unnecessary.
2024-05-28 19:07:29 +02:00
Alayan
d459d45925
When changing base theme, keep the theme variant if possible 2024-05-27 19:25:17 +02:00
Alayan
9271c26576
Minor code cleanup
- Avoid loading the skin spinners in many different places
- Also remove a leftover printf
2024-05-27 19:12:23 +02:00
Alayan
06d503a54b
Use two distinct spinners to select skins
- Use new 'base theme name' and 'variant name' values for skins to determine spinner values
- Ensure the skin is correctly set based on the values of both spinners
- Keep the options in the 'variant' spinners correct when updating the base spinner, as different base themes may have different variants (or no variants)
- Many other small changes to make it all work smoothly.
- Rename the folders of the classic skins, as the order of variants is determined by folder name alphabetic order. Using the same structure as with the cartoon skins ensure the variant order is the same.
- Also remove some redundant comments that were missed in the previous commit.

Remaining:
- Tidying up the code
- Ensure that if a variant exists in both the previous 'base theme' and the new 'base theme', switching the base theme while this variant is active doesn't reset to the default variant.
2024-05-27 18:12:20 +02:00
Benau
3d86d93769 Use forward enum declaration 2024-05-23 08:55:08 +00:00
Alayan
af18315c73
Clean up repetitive CTF code 2024-05-23 00:10:25 +02:00
Alayan
c086a6774d
Misc. improvements
- Fix MSVC compilation
- Improve some repetitive code
2024-05-22 23:24:50 +02:00
Alayan
2923a86cd6
Minor fixes
- The code starting a tutorial race was duplicated in three places. Consolidate it in one place.
- When launching the tutorial from the overworld, use the last used input device instead of the keyboard
- Restore the old cmake policy. The new way to replace that code suggested by the cmake manual fails CI, and debugging MSVC fantasies without a local install is a nightmare.
- Restrict this policy setting to MSVC as that's the only compile path that needs it, avoiding the warning for non-MSVC builds.
- Add missing define guards
- Remove some extraneous includes
2024-05-21 21:35:41 +02:00
Alayan
e165a5680b
Fix #4742 2024-05-21 15:31:46 +02:00
Alayan
97faf4a492
Move the camera files in a subfolder 2024-05-20 12:07:06 +02:00
Alayan
dca91a6ee8
Move the start benchmark function to the profiler
This simplifies its reuse for the recommend video settings function
2024-05-20 11:46:06 +02:00
Alayan
fb3596f699
Fix #3510
- Call autoComputeLevel to make the LoD distance for on-track items (bananas, nitro, gifts, etc.) depend on the user settings
- Ensure that the distance is reasonably high even on the lowest settings
2024-05-19 21:34:06 +02:00
Alayan
61f6f59b12
Fix #5075
A basic restart of the screen does not reinitialize what's needed to properly update anisotropic filtering. Therefore, ensure a full restart is done, but avoid showing the user a resolution confirmation dialog afterwards.

Also use a new applySettings function to avoid having two places to update when changing the code that manages applying updated graphics settings.
2024-05-19 16:12:47 +02:00
Alayan
deff598b6d
Prepare the GUI to recommend video settings
- Add a new dialog that gives some information and asks for the user's preferences
- Ensure that one and only one of the 'Performance', 'Balanced' and 'Graphics quality' checkboxes is active
- Add a new button in video settings to access this dialog
2024-05-19 14:58:58 +02:00
Benau
fcd8cea5cd Remove hardcoded 1 pixel 2024-05-17 12:43:37 +00:00
Benau
02e540ba67 Rename variables to match the coding style 2024-05-17 07:32:42 +00:00
Benau
14c002c7ca Rewrite getSplitscreenWindow to fully occupy the remaining pixels
It fixed render inconsistency when drawing lap
2024-05-17 07:27:18 +00:00
Alayan
37e024f1e1
Make the minimum distance for a LoD transition depend on the object's size
Also:
- Since draw distance is used to account for the object's size, have parameters depending on geometry detail correct for it. The minimum switch distance increases slightly with each geometry detail level.
- Clarify what the formula spreading the distances for each LoD level does
- Adjust slightly the auto-LoD multipliers.
2024-05-14 00:36:47 +02:00
Alayan
91d3bceb03
Ensure the LOD multiplier is applied before the quality limiter 2024-05-13 22:31:05 +02:00
Alayan
10943ac0ff
New auto-LoD formula
Avoid the sudden transitions that characterize the old formula.
2024-05-13 22:05:03 +02:00
Nomagno
0f719d0cc5
Fix #5072 (#5082) 2024-05-12 20:12:56 +02:00
CodingJellyfish
68d9fd2138
Fix #5067 (#5071)
* Blur shadows by distance

* Copy from Bevy
2024-05-12 19:53:47 +02:00
Alayan
ad10bda37e
Add a 7th graphical level preset
Compared to level 6, it increases shadow resolution to 2048 and auto-LoD distances to Ultra.
2024-05-12 18:12:19 +02:00
Alayan
53b6267d9d
Fix #5076 2024-05-12 12:45:26 +02:00
Alayan
3ec2b9a54d
Fix #4166
Based on the alerts for timed challenges:
- Change the timer color when an elimination is coming shortly
- Play a sound when an elimination is coming shortly
2024-05-11 20:39:36 +02:00
Alayan
1c58f0154f
Add graphics settings to the perf report 2024-05-11 20:33:03 +02:00
Benau
f2b61826c9 Allow changing splitscreen layout in race 2024-05-11 17:31:33 +00:00
CodingJellyfish
0542e6b279
Fix #3671 and fix #4254 2024-05-10 12:35:30 +02:00
Alayan
8e49634e77
Move the new quality switch logic to autoComputeLevel
Doing additional checks every frame was wasteful, and this change will also allow to easily adapt this logic to account for an object's size.

Also fix and improve comments
2024-05-08 19:01:55 +02:00
Alayan
e9a75f6c52
Fix #3678
Don't play drive-on sound from materials when the game state is paused.
2024-05-08 17:40:48 +02:00
Alayan
99868d5897
Fix #5026
The SFX manager and SFXOpenAL would check if SFXs are enabled before pausing (looping) sound effects, so disabling SFXs in the options would fail to stop looping SFxs.

Furthermore, 'OnSoundEnabledBack' would pause all looping SFXs. This commit checks for the pause status of the World (if applicable) to decide if the looping SFXs should be immediately resumed (networking) or not (real pause).

Also clean some comments and move some code around.

This patch doesn't address sound resuming when going from the pause menu to the options in networked mode, whereas it doesn't in a normal race. This is what caused the bug to trigger in the first place, but it's very minor by itself and the design of the SFX code could have triggered other future issues too.
2024-05-08 17:21:39 +02:00
Alayan
8dbf0a9922
Add geometry detail to the graphics presets 2024-05-07 18:27:15 +02:00
Alayan
e83fdc9324
Display a basic summary of benchmark results 2024-05-07 17:11:16 +02:00
Alayan
e505d9c686
Show a lower LoD level instead of having a detailled level pop up when very close
- It is visually more pleasant to have a low quality model than to have a sudden popping from the high quality one appearing when already close
- This also boosts performance
2024-05-06 23:24:43 +02:00
Alayan
553595fa63
Prevent geometry level from removing objects
The latest version was bugged as it removed all standard objects, but removing only objects marked by track-makers removed almost nothing of note, and bugs would sometimes remove normal objects. Fix #5052. Fix #5066. This makes #5063 moot.
2024-05-06 22:59:58 +02:00
Alayan
df803c18b8
Various adjustments to auto-LOD
- Increase the effect preventing LoD objects from popping at very short distances
- Add comments to all the steps and other clarifications
- Update the multiplier values to be approximately equally spaced geometrically
2024-05-06 22:51:25 +02:00
Nomagno
e47958f2d3
Fix #5053 (bool vector -> uint8_t vector) (#5073) 2024-05-05 23:21:31 +02:00
Alayan
dae5c49fcc
Add the label widget to common options includes
Should fix compilation on mobile
2024-05-05 18:13:28 +02:00
Alayan
785915770a
Remove code duplication in the help screens
Same approach as with the options screen: managing all the generic includes needed by all help screens in one place and adding a new standalone 'switchTab function
2024-05-05 18:00:45 +02:00
Alayan
fa421b43c7
Move the splitscreen split orientation in the display settings
It makes a lot of sense there too, and it makes the UI settings less crowded. This allows also to put the label as a section title, fixing an overflow that happened with some translations when using the very large font size.
2024-05-05 17:29:14 +02:00
Alayan
ad02608744
Remove code duplication in the options screens
Use a new standalone 'switchTab' function to centralize the activation of the screen matching the selected tab
2024-05-05 17:06:36 +02:00
Alayan
2fc05e94fc
Miscellaneous improvements to the options screens
* Use a new file for includes to reduce redundancy between option files
* Remove some unnecessary includes
* Reorder some includes
* Increase spacing in the graphics settings screen
* Increase spacing in the audio settings screen
2024-05-05 16:16:22 +02:00
Alayan
7ad4040b2d
Add a new 'Display' option tab
The video settings were getting crowded with the benchmark mode, and with large font size the benchmark buttons ended off-screen.
2024-05-05 14:24:56 +02:00
CodingJellyfish
aba99c22b6 Enable new screen resizing code 2024-05-05 13:45:23 +08:00
CodingJellyfish
6e2d528b91 Remove static variable in cutscenes 2024-05-05 13:18:59 +08:00
CodingJellyfish
7d02e57a19 Avoid resetting FOV which caused issue after resizing cutscene 2024-05-05 13:08:35 +08:00
Alayan
0969a173c7
Fix #5069 2024-05-04 20:26:24 +02:00
Alayan
8fd0a0a09d
Split the displaySoccerResults function
Use a 'drawTeamScorers' function to reduce code duplication and make it easier to understand what's going on. Some minor clean-up has also been done, but more could be done, especially regarding variables that had to be recreated in the new separate function.
2024-05-04 20:19:54 +02:00
Alayan
7a75f9e541
Clean up the Race Result GUI code
- Remove excessive indentations in race_result_gui.cpp
- Move the bulk of the displayPostRaceInfo function into new functions: displayHighscores, displayLapDifficulty and displayChallengeInfo
- Add comments for the closing braces of functions, for the closing braces of some large code blocks, and explaining some functions
2024-05-04 19:14:48 +02:00