Skip to content

Introduce progress/loader window#22065

Merged
AaronVanGeffen merged 9 commits into
OpenRCT2:developfrom
AaronVanGeffen:progress-bars
May 26, 2024
Merged

Introduce progress/loader window#22065
AaronVanGeffen merged 9 commits into
OpenRCT2:developfrom
AaronVanGeffen:progress-bars

Conversation

@AaronVanGeffen

@AaronVanGeffen AaronVanGeffen commented May 19, 2024

Copy link
Copy Markdown
Member

This PR introduces a dedicated ProgressWindow to denote loading progress in a playful, graphical way. This is to be used instead of the NetworkStatus info when progress has measurable increments.

Preloader scene (slowed down):

Screen.Recording.2024-05-21.at.19.11.05.mov

Joining a server:

Screen.Recording.2024-05-21.at.19.11.17.mov

Track style reel:

Screen.Recording.2024-05-20.at.14.59.32.mov

To do:

  • Show supports beneath the tracks
  • Use in the preloader scene
  • Use for downloading maps (multiplayer)
  • Crop and optimise PNGs before merging
  • Use for loading saves -> follow-up PR
  • Use for map generator -> follow-up PR

Comment thread src/openrct2/drawing/ImageImporter.cpp Outdated
@Gymnasiast

Copy link
Copy Markdown
Member

Nice work! One though that I had: since most loading sessions will contain both status updates with just text, and updates with progress, we should maybe make sure that the respective windows look otherwise similar (i.e. use the same colours, be the same size, avoid text jumping around, ...). Doing so would make it look "calmer", for lack of a better word.

@AaronVanGeffen AaronVanGeffen added this to the v0.4.12 milestone May 20, 2024
@AaronVanGeffen AaronVanGeffen added changelog This issue/PR deserves a changelog entry. labels May 20, 2024
@AaronVanGeffen AaronVanGeffen force-pushed the progress-bars branch 2 times, most recently from e33877f to 3aa0f91 Compare May 20, 2024 19:07
Fixup: deal with -Wdeprecated-anon-enum-enum-conversion warning
@AaronVanGeffen AaronVanGeffen marked this pull request as ready for review May 20, 2024 19:42
@Basssiiie

This comment was marked as resolved.

@AaronVanGeffen

AaronVanGeffen commented May 21, 2024

Copy link
Copy Markdown
Member Author

@Basssiiie I've decreased the drawing canvas by 1px on every side, effectively adding a slight margin. Here's what it looks like now:

Screenshot 2024-05-21 at 19 07 30

The demo videos in the OP have been updated to reflect this change.

@AaronVanGeffen

AaronVanGeffen commented May 21, 2024

Copy link
Copy Markdown
Member Author

With the PNGs now cropped and optimised as well, I think this PR is now ready for review.

@Basssiiie Basssiiie left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a quick test after the last changes and functionally it all LGTM! 😄

Comment thread data/language/en-GB.txt
Comment thread src/openrct2-ui/windows/ProgressWindow.cpp Outdated

@Gymnasiast Gymnasiast left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looked over the code and found only a small thing to nag about. Will proceed to test next.

@Gymnasiast Gymnasiast left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing revealed no bugs.

Personally, I would have put the train in the middle for progress bar with indefinite progress, rather than at ~30%, but I’m not willing to let that block my approval.

@AaronVanGeffen AaronVanGeffen force-pushed the progress-bars branch 2 times, most recently from 1740cf3 to c9de564 Compare May 26, 2024 09:38
@AaronVanGeffen

Copy link
Copy Markdown
Member Author

Personally, I would have put the train in the middle for progress bar with indefinite progress, rather than at ~30%, but I’m not willing to let that block my approval.

I am, because the intention was to draw it halfway. Turns out my code was drawing the tip of the vehicle at 50%, rather than centring it there. I've now addressed that, and the result is in 2f05dc9.

@Gymnasiast

Copy link
Copy Markdown
Member

OK, I’m not at home so I cannot test it easily. I’ll just trust you on this one, you can merge as far as I’m concerned ^^

@AaronVanGeffen AaronVanGeffen enabled auto-merge May 26, 2024 10:08
@AaronVanGeffen AaronVanGeffen merged commit f5b5e45 into OpenRCT2:develop May 26, 2024
@AaronVanGeffen AaronVanGeffen deleted the progress-bars branch May 26, 2024 10:19
janisozaur added a commit that referenced this pull request Jul 7, 2024
- 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).
CorySanin added a commit to CorySanin/OpenRCT2 that referenced this pull request Feb 3, 2025
Release v0.4.12

- Feature: [OpenRCT2#622] Add option to align the top toolbar buttons horizontally centred (off by default).
- Feature: [OpenRCT2#20263] Ability to increase the size of the map in the (0, 0) direction.
- Feature: [OpenRCT2#21714] [Plugin] Costume assignment is now tailored to each staff type.
- Feature: [OpenRCT2#21853] Enlarged UI mode.
- Feature: [OpenRCT2#21893, OpenRCT2#22065] On launch, the game now indicates what system is being initialised.
- Feature: [OpenRCT2#21913] [Plugin] Allow precise and safe control of peep animations.
- Feature: [OpenRCT2#22046] [Plugin] Add interface for crashed vehicle particle.
- Feature: [OpenRCT2#22085] [Plugin] The result of actions that create banners now includes the bannerIndex.
- Feature: [OpenRCT2#22087] [Plugin] Expose guests’ favourite rides to the plugin API.
- Feature: [OpenRCT2#22090] [Plugin] Allow writing of paused state in non-networked settings.
- Feature: [OpenRCT2#22140] Add option to automatically close dropdown menus if Enlarged UI is enabled.
- Feature: [OpenRCT2#22150] [Plugin] Expose monthly expenditure history to the plugin API.
- Feature: [OpenRCT2#22210] [Plugin] Peeps can now be made stationary or completely frozen.
- Feature: [OpenRCT2#22210] [Plugin] The direction in which a peep is facing can now be manipulated.
- Improved: [OpenRCT2#19870] Allow using new colours in UI themes.
- Improved: [OpenRCT2#21774] The Alpine Coaster now supports using the alternative colour schemes.
- Improved: [OpenRCT2#21853] Dropdowns now automatically use multiple columns if they are too tall for the screen.
- Improved: [OpenRCT2#21981] Rendering performance of the map window has been improved considerably.
- Improved: [OpenRCT2#21981] The map window now defaults to showing as much of the map as fits the screen.
- Improved: [OpenRCT2#21983] Taking a screenshot now shows a message again, closing when taking another.
- Improved: [OpenRCT2#22026] The options window now stays centred when window scaling is changed.
- Improved: [OpenRCT2#22060] [Plugin] The scroll wheel can now be used to modify spinner widget values in custom/script windows.
- Improved: [OpenRCT2#22065] Joining a network game now indicates progress using coaster trains.
- Improved: [OpenRCT2#22075] [Plugin] Plugins can now use G1 Icons.
- Improved: [OpenRCT2#22084] The game now temporarily pauses while the load/save window is open.
- Improved: [OpenRCT2#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: [OpenRCT2#7248] Small mini-maps are now centred in the map window.
- Change: [OpenRCT2#20240] Heavy snow and blizzards now make guests buy and use umbrellas.
- Change: [OpenRCT2#21043] The new music styles are no longer added to old parks automatically.
- Change: [OpenRCT2#21214] Wacky Worlds and Time Twister’s scenario names now match their park names.
- Change: [OpenRCT2#21991] UI themes JSON now use colour names and a translucency bool, instead of a number (old themes still work).
- Change: [OpenRCT2#22057] Reorder Time Twister’s scenarios and adjust their difficulty classification.
- Change: [OpenRCT2#22173] Patrol path selection is visible over existing patrol paths.
- Change: [OpenRCT2#22196] Make track navigation buttons holdable.
- Change: [OpenRCT2#22227] [Plugin] Ride prices are now constrained for plugins as well.
- Fix: [OpenRCT2#13234] Vehicle weight sometimes wrong after using Remove All Guests cheat.
- Fix: [OpenRCT2#13294] Map corners are cut off in some directions (original bug).
- Fix: [OpenRCT2#14630] Non-ASCII thousands and decimal separators not processed correctly.
- Fix: [OpenRCT2#21496] Some RCT1 scenery is hidden after saving and reloading.
- Fix: [OpenRCT2#21533] Support glitches on Hybrid Coaster.
- Fix: [OpenRCT2#21974] No reason specified when attempting to place benches, lamps, or bins on path with no unconnected edges (original bug).
- Fix: [OpenRCT2#21987] [Plugin] API cannot handle negative removal prices.
- Fix: [OpenRCT2#22008] Uninverted Lay-down roller coaster uses the wrong support type.
- Fix: [OpenRCT2#22012] [Plugin] Images on ImgButton widgets cannot be updated.
- Fix: [OpenRCT2#22121] Some news items in the “Recent Messages” window have the wrong text colour.
- Fix: [OpenRCT2#22152] [Plugin] Negative signed integers are truncated.
- Fix: [OpenRCT2#22161] Using arrow keys in textboxes crashes the game.
- Fix: [OpenRCT2#22174] Cheats are reset when starting a server.
- Fix: [OpenRCT2#22185] Intensity and nausea are incorrectly sorted in the rides list after ratings invalidation.
- Fix: [OpenRCT2#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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog This issue/PR deserves a changelog entry.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants