-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce preloader scene with progress info #21893
Introduce preloader scene with progress info #21893
Conversation
Co-authored-by: ζeh Matt <[email protected]>
Reset screen to a nice background colour
This splits off the initialisation calls to a new InitialiseRepositories function. The SetCompletionScene invocation is moved to the Launch method. When the game is running in headless mode, the preloader is not used. Instead, InitialiseRepositories is called in-thread, and the transition to the 'completion scene' happens immediately after.
e1d0e06
to
803f292
Compare
Add strings for checking and loading title sequence
548c4c8
to
ab7808a
Compare
With the latest changes in, I believe this is now ready for review. NB: I have added delays to loading the object and scenario repositories (80bd69a). These should obviously be removed before merging. |
Progress is passed on to PreloaderScene and NetworkInfo window from there.
This comment was marked as outdated.
This comment was marked as outdated.
Thanks for testing!
That would be due to deliberate delays added to loading the object and scenario repositories (80bd69a).
Thanks for reporting this. That shouldn't happen, of course. Rendering seems to (not) be happening during the object indexing process, for some reason. I can't reproduce it on macOS, but I can reproduce it on my Linux box.
Yes, this is the right way to go about it, indeed. |
ea3c016
to
ab9c525
Compare
Thanks, that's a lot better! Loading times now look similar. 😄
2024-05-06.20-54-36.mp4 |
As we've discussed on Discord in the mean time, this is a side-effect of using OpenGL. Unfortunately, with the current set-up, we cannot force OpenGL to do a redraw. This is possible for the software renderer, though. This means the progress info will be more up-to-date when using the software renderer.
This isn't a trivial change, unfortunately. However, I have pushed some commits with a bodge that I hope will make this possible, still. If this bodge works, I'd like to clean it up a little, though 😅 |
Plugins seem to have some issues in the newest version in the loader scene, but do seem to load properly in the end when opening a park. 2024-05-06.22-51-31.mp4 |
Thanks for testing, @Basssiiie. As I thought, loading them through the preloader will be more difficult. I think it would be better to leave them as they were for now, and add them to the preloader in a follow-up PR. I'll revert the changes related to plugins tomorrow. |
80c04a0
to
974794b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My only ask is for a comment to GetPreloaderScene
, then it's good
974794b
to
f51404d
Compare
Small oversight from #21893.
Small oversight from #21893.
- Feature: [#622] Add option to align the top toolbar buttons horizontally centred (off by default). - Feature: [#20263] Ability to increase the size of the map in the (0, 0) direction. - Feature: [#21714] [Plugin] Costume assignment is now tailored to each staff type. - Feature: [#21853] Enlarged UI mode. - Feature: [#21893, #22065] On launch, the game now indicates what system is being initialised. - Feature: [#21913] [Plugin] Allow precise and safe control of peep animations. - Feature: [#22046] [Plugin] Add interface for crashed vehicle particle. - Feature: [#22085] [Plugin] The result of actions that create banners now includes the bannerIndex. - Feature: [#22087] [Plugin] Expose guests’ favourite rides to the plugin API. - Feature: [#22090] [Plugin] Allow writing of paused state in non-networked settings. - Feature: [#22140] Add option to automatically close dropdown menus if Enlarged UI is enabled. - Feature: [#22150] [Plugin] Expose monthly expenditure history to the plugin API. - Feature: [#22210] [Plugin] Peeps can now be made stationary or completely frozen. - Feature: [#22210] [Plugin] The direction in which a peep is facing can now be manipulated. - Improved: [#19870] Allow using new colours in UI themes. - Improved: [#21774] The Alpine Coaster now supports using the alternative colour schemes. - Improved: [#21853] Dropdowns now automatically use multiple columns if they are too tall for the screen. - Improved: [#21981] Rendering performance of the map window has been improved considerably. - Improved: [#21981] The map window now defaults to showing as much of the map as fits the screen. - Improved: [#21983] Taking a screenshot now shows a message again, closing when taking another. - Improved: [#22026] The options window now stays centred when window scaling is changed. - Improved: [#22060] [Plugin] The scroll wheel can now be used to modify spinner widget values in custom/script windows. - Improved: [#22065] Joining a network game now indicates progress using coaster trains. - Improved: [#22075] [Plugin] Plugins can now use G1 Icons. - Improved: [#22084] The game now temporarily pauses while the load/save window is open. - Improved: [#22217] See-through items are ignored again in viewport/pointer interaction. - Improved: [objects#238] Add preview image for invisible queue. - Improved: [objects#329] Add RCT1AA lay-down coaster trains (for import only). - Change: [#7248] Small mini-maps are now centred in the map window. - Change: [#20240] Heavy snow and blizzards now make guests buy and use umbrellas. - Change: [#21043] The new music styles are no longer added to old parks automatically. - Change: [#21214] Wacky Worlds and Time Twister’s scenario names now match their park names. - Change: [#21991] UI themes JSON now use colour names and a translucency bool, instead of a number (old themes still work). - Change: [#22057] Reorder Time Twister’s scenarios and adjust their difficulty classification. - Change: [#22173] Patrol path selection is visible over existing patrol paths. - Change: [#22196] Make track navigation buttons holdable. - Change: [#22227] [Plugin] Ride prices are now constrained for plugins as well. - Fix: [#13234] Vehicle weight sometimes wrong after using Remove All Guests cheat. - Fix: [#13294] Map corners are cut off in some directions (original bug). - Fix: [#14630] Non-ASCII thousands and decimal separators not processed correctly. - Fix: [#21496] Some RCT1 scenery is hidden after saving and reloading. - Fix: [#21533] Support glitches on Hybrid Coaster. - Fix: [#21974] No reason specified when attempting to place benches, lamps, or bins on path with no unconnected edges (original bug). - Fix: [#21987] [Plugin] API cannot handle negative removal prices. - Fix: [#22008] Uninverted Lay-down roller coaster uses the wrong support type. - Fix: [#22012] [Plugin] Images on ImgButton widgets cannot be updated. - Fix: [#22121] Some news items in the “Recent Messages” window have the wrong text colour. - Fix: [#22152] [Plugin] Negative signed integers are truncated. - Fix: [#22161] Using arrow keys in textboxes crashes the game. - Fix: [#22174] Cheats are reset when starting a server. - Fix: [#22185] Intensity and nausea are incorrectly sorted in the rides list after ratings invalidation. - Fix: [#22226] Red traffic light shows incorrect sprite when pressed. - Fix: [objects#323] Incorrect wall boundaries on large WW/TT scenery objects. - Fix: [objects#331] Incorrect hover car capacity string. - Fix: [objects#334] Incorrect school bus capacity string. - Fix: [objects#337] Swan Boats use an incorrect third remap colour (original bug).
Following up from #21888, this adapts the loading scene from #10180, calling it the
PreloaderScene
instead. This scene is used to display loading messages before the title scene is loaded. For example, when the object index is being built. It should not be merged before #21888, so marking this as a draft.In its current form, it uses the NetworkStatus window to display status messages. I'd like to replace this with a dedicated ProgressBar window, using these same status messages as the window caption.
I'd like this progress bar window to look something like OpenLoco/OpenLoco#2411, with an OpenRCT2 twist. For example, use a roller coaster track to indicate progress. This progress bar window could then be used in-game as well, for example when loading and saving games. (Though not autosaves, ideally.)
Screen.Recording.2024-05-06.at.16.57.30.mp4
To do in this PR:
To do in a follow-up PR: