* Update the UI at screen refresh rate
* Decouple input from ticks, fix scroll at high frame rates
* Fix holding down mouse button on buttons causing too many events
* Subtract the initial delay to keep the same behavior as before
* Guard against the rare case where the value might be 0
* Fix right click not working correctly
* Fix odd behavior when using right click to scroll lists
* Make touch work again, fix mouse panning in fullscreen (borderless)
* Update changelog.txt
* Remove unused generate_string_file() declaration
* Move IsUserStringID() to RCT12.h
The function is only used by RCT1/2 code, and the implementation is in RCT12.cpp
* Move ScenarioTranslate() to ScenarioRepository.cpp
Seems to have ended up in ObjectRepository.cpp by accident.
* Fix#19823. Disallow overriding with wrong object type
Some community objects have been made incorrectly and override small scenery objects with large scenery objects. This prevents that overload from being allowed.
* Bump network version and add changelog
* Refactor FileScanner to lift a MAX_PATH limit
* Replace Platform::EnsureDirectoryExists with Path::CreateDirectory
* Remove MAX_PATH from Platform.Posix.cpp
* Split off path addition paint calls
* Replace occurences of “path bit” with “path addition”
* Replace occurences of “footpath item“ with “path addition”
- Feature: [#18713] Block brakes have speed control and brakes slower than adjacent block brakes copy block brake speed when block brake open.
- Feature: [#19276] Add Powered Lifthill to Giga Coaster.
- Feature: [#19305] Add new Reversed Trains ride setting to run trains backwards, granting a bonus to ride ratings.
- Feature: [#19305] [Plugin] Add “Car.isReversed” to allow individual ride vehicles to run backwards.
- Feature: [#19446] Add new color options to color dropdown.
- Feature: [#19547] Add large sloped turns to hybrid coaster and single rail coaster.
- Feature: [#19930] Add plugin APIs for research.
- Feature: [OpenMusic#25] Added Prehistoric ride music style.
- Feature: [OpenMusic#26] Fairground Organ style 2 with new recordings from Herman's 35er Voigt (Previously known as Bressingham Voigt).
- Feature: [OpenMusic#28] Add Ragtime style 2 ride music.
- Improved: [#17739] Raise water and land height limits to 254 units/182m/600ft.
- Improved: [#18490] Reduce guests walking through trains on level crossing next to station.
- Improved: [#18996] When marketing campaigns are disabled, disable the Marketing tab in the Finances window.
- Improved: [#19764] Miscellaneous scenery tab now grouped next to the all-scenery tab.
- Improved: [#19830] “Highlight path issues” will now hide wall elements.
- Improved: [#19905] Add prompt before resetting shortcut keys.
- Improved: [#19952] Add colour preset to Spiral Slide using the new colour options.
- Improved: [#19953] Add keyboard shortcut to Keyboard Shortcuts window.
- Improved: [#20055] Performance improvement for the software renderer.
- Change: [OpenSFX#17] Update Hybrid RC lifthill loop.
- Fix: [#12598] Number of holes is not set correctly when saving track designs.
- Fix: [#13130] Android always defaulting to UK locale for language, currency and temperature.
- Fix: [#13397] Ride simulation causes strange station behaviour and makes the ride unusable in some cases.
- Fix: [#16791] Rotodrop top piece replicates when walls are placed around it and clearance checks are disabled (original bug).
- Fix: [#18583] Land dropdown is incorrect if there are surface entry index holes.
- Fix: [#18895] Responding mechanic blocked at level crossing.
- Fix: [#19231] Crash due to null pointer to previously deleted banner in tile copy/paste functionality.
- Fix: [#19296] Crash due to a race condition for parallel object loading.
- Fix: [#19733] Favorite ride of X guests integer overflow.
- Fix: [#19756] Crash with title sequences containing no commands.
- Fix: [#19767] No message when path is not connected to ride exit and is therefore unreachable for mechanics.
- Fix: [#19800] Crash when displaying station stats with more than 62 stations.
- Fix: [#19801] The in-game load/save window cannot be resized anymore.
- Fix: [#19854] Looping Coaster trains clipping through steep quarter turns down.
- Fix: [#19858] Issue drawing simulate flag icon on alternate colour palettes.
- Fix: [#19901] Random shop colours never assigning last colour.
- Fix: [#19911] Guests stuck at certain railway crossings.
- Fix: [#19924] Destructible cheat does not allow partial ride modification.
- Fix: [#19950] Mine train block brake supports drawn incorrectly.
- Fix: [#19955] Mine Train Roller Coaster has incorrect supports on the sloped left small turn (original bug).
- Fix: [#19987] [Plugin] ‘SetCheatAction’ has wrong ID in plugin API.
- Fix: [#20016] The group box for small scenery details in the Tile Inspector window has unused empty space.
- Fix: [#20018] Shops not calculating up-keep cost.
- Fix: [#20033] Asset packs cannot reference game data.
- Fix: [#20104] [Plugin] Some network APIs use player index and group index.
- Fix: [#20099] Some scrollbar is glitched or have incorrect size when open window for the first time
- Fix: [#20134] Grass length being updated for tiles in the void, causing unneccesary drawing operations.
* Use precompiled headers for libopenrct2 with MSVC
* Exclude PCH from duktape
duktape needs all the warnings turned off and forcing PCH also enables
warnings. As there is nothing duktape would consume from our header,
remove forcing inclusion of that header into duktape.
* Provide msbuild parameter for using PCH only in CI
Part 2 of #19922Fixes#19964
There are a lot of files changed, so this PR is structured to be easy to follow by looking at individual commits.
This PR refactors how the special track element list is created. The refactors include:
Divorces creating the list from RideConstructionWindow for modularity, including potential plugin API
Adds list of special track elements which can be re-ordered for more sensible organization
Same-named track elements will collapse into as few entries as possible
Separates up helixes from down helixes in track flags
Track flag separation was done to remove special code related to alpine coaster. Refactors to ride construction window were tested against and confirmed working with:
alpine coaster
suspended swinging coaster
hybrid coaster
inverted coaster
* Fix initial scroll size of server list and change cast to int32_t
* set actual width for server list too
* add indentation
* fix pixel size of other scroll
* revert unnecessary changes
* add changelog entry
* Add ratings modifier for reversed trains
* Add test save file and ratings for this
* Changelog entry
* Bump network version
* Modify changelog
* Changelog edit
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
* Refactor window to class: Research (#13794)
- Update Research window to new window class
- Refactor dependant windows (Finances and NewRides)
* Refactor window to class: Research (#13794)
- Refactor all shared logic for both pages in research window. Reused by Finances and NewRides windows.
* Refactor window to class: Research (#13794)
- Fix style issues
* Refactor window to class: Research
- Fix style issues, again
* Refactor window to class: Research
- Override Window class methods
* Refactor window to class: Research
- Remove old method comments
* Refactor window to class: Research
- Addresses code review comments
* Refactor window to class: Research
- Adds ResearchWindow ctor
* Refactor window to class: Research
- Hide funding dropdown in no money scenarios
- Addresses code review comments
* spiral lifthill down paintcode
* rename string anyway
* add some stuff I forgot and add documentation
* use static assert on SpriteGroupMultiplier
* add slope to list of opposite slopes
* bump scripting version
* update openrct2.d.ts
* improve documentation
* Fix#19800. Crash when more than 62 stations on a ride
This is a bit of a temporary fix. The crash happens due to exhausting the space in the formatter but the format string only ever handled 4 stations so it was still not going to work for 5 <=> 62 stations. So for the time being capped the output at 4 stations.
* Add changelog entry
* Apply review comment
* Use new enum in MiniatureRailway.cpp
* Add new paint functions for Wooden B supports
* Update and consolidate Wooden B supports calls for Minetrain RC
* Consolidate Wooden A supports calls for Minetrain RC
* Replace some unnecessary calls to PaintAddImageAsParentRotated()
* Always use carEntry 0 for friction sound
* Use front car entry for sound index
* Add note for carEntry sound properties
* Bump network version
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
* Move dropdown functions to dropdown code
* Use a map for the colour tip
* Keep dropdownidx and colour seperated
* Allow number of rows to match vanilla
* Apply review comment
* Bump network version
* Initial commit for backwards-facing trains
* Allow persistence for reversed cars across save/load
* Make log flume turntable compatible with new reversal implementation
* Style fixes + Better implementation of inverted bank angles
* Further Style Fixes
* Code cleanup from PR feedback
* Fix GetBankRotationForDrawing function declaration
* Use update flag for reversed state
* Replace modulo operation with bit mask
* Correct guest pathing destination when entering reversed cars
* More style fixes
* Add plugin support for reversed vehicles
* Fix formatting error
* Derive reversal from ride mode for car spawning
* Formatting
* Rename function to GetPaintBankRotation
* Add reversed trains modes to Multi Dimension Coaster
* Change name of isReversed plugin API parameter for consistency
* Replace reversal operating modes with separate ride setting
* Add ALLOW_REVERSED_TRAINS flag to more ride types
* Make clang-format happy
* More Formatting
* Fix ALLOW_REVERSED_TRAINS flag on a couple rides
* Exclude flat rides from Reverse Trains tickbox when cheats are enabled
* Formatting
* Use Disable Vehicle Limits cheat for checkbox appearance condition
* Use correct swinging sprites when cars are reversed
* Update changelog and Plugin/Network/Park version numbers
* Formatting
* Add separate error String ID for clarity
* Add name to contributors.md
* Fix ride vehicle preview window with reversed trains for RCT1 train types
* Bump version numbers again
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
* Raise water and land height limits to 254 units/182m/600ft
New parks load correctly in older versions, but cannot be altered there.
Fixes#17739
* Add changelog, bump network and park file version
In continuous circuit operating mode, not only the train head should be used for (un)blocking path. Because of this change, a previous change regarding which trailing track blocks should be unblocked has been reverted, as to prevent path being unblocked too soon.
When an item began initial research, it was moved to the invented list. This is not intuitive for plugins, so move it once the item is fully researched.
Issue caused by the unload image function not resetting the image id back to invalid. Also noticed that water wasn't correctly cleaning up.
Fix#19918, #19926, #19927, #19928, #19929, #19931
* reset branch and readd changes to clear unnecessary commits
* Apply suggestions from code review
Will include another commit addressing more in depth comments
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
* continued PR cleanup
* Clang formatting
* remainder of PR feedback corrections
* return from function to destroy window
* PR Feedback
* Apply minor feedback points
---------
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
Co-authored-by: Hielke Morsink <hielke.morsink@gmail.com>
* Fix#19733: Favorite ride of X guests integer overflow
Changed the variable for the number of guests favoring a ride to
match the maximum number of guests able to be in a park.
* Bump network stream and park file versions
* Added changelog entry for #19733 fix
* Reorder changelog entry
The main issue was that the min/max sizes of the window were set in the constructor, then being overwritten by the WindowCreate function. That function calls the OnOpen function, which can be used to set them properly.
The other two changes are just minor cleanups; a pixel difference in padding on the right side, and an overriden function that's identical to the base.
* Fix land marker palettes
* Appease Clang
* Remove one more magic number
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
* Setup for extended palette
* Define order for color picker cells
* Init G2 Palettes in ColoursInitMaps
* Add Glass Palettes
* Use special sprite for Invisible color
* Set up new cheat for special colors
* Add glass palettes to palette_to_g1_offset
* Add entries for new colors in TranslucentWindowPalettes
* Finish implementation of special colors cheat
* Some cleanup
* New colors almost work
* Correct g2 palette loading indices
* Invisible color sprite displays properly
* Repaint works with large scenery and walls
* Prevent random shop items from overflowing to junk palettes
* More cleanup
* Fix glass palettes
* Add mapping of new colors to original colors for UI themes
* Fix junk palettes for random shop items
* Fix missing highlight color in software renderer
* Convert small scenery support flag to allow use of new colors
* Progress on displaying new colors in software renderer
* Fix invisible color scheme sprite
* Formatting cleanup
* Resolve comparison of integer expressions of different signedness
* Index g2 palette maps to fix visible chain lift
* Progress on fixing new colors in software renderer
* Fix station and support colors
* Fix dropdown selected index
* Get invisible color (mostly) working in software renderer
* Use forceBmp for palette resources
* Remove test function definition left in by mistake
* Remove some obsolete range checks for original color values
* Add changelog entry
* Reorder color dropdown based on NE user feedback
* Some cleanup
* Further cleanup
* Formatting
* Add include for GetPaletteMapIndexForColour
* Fix a couple things I broke
* Fix function placement
* Revert "Add include for GetPaletteMapIndexForColour"
This reverts commit 0af9611e6656d792adb7a36efe7dbf3387a4a759.
* Use color constants for color order list
* Make remappable colors contiguous
* turn off clang format for ordered color list
* Appease clang
* Use all colors for random shop item animation
* Improvements to palette map resources
* Fix chain lifts again + adjustments to a few colors
* Update changelog and contributors.md
* Revert changes to S4 and S6 importers which are no longer needed
* Bump network, plugin, and minimum park versions
* Revert "Progress on displaying new colors in software renderer"
This reverts commit 337602e4a7.
* Remove unnecessary comment
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
Merry-go-round doesn't receive its vehicle until it gets tested/opened,
but tries painting non-existent guests anyway, leading to reference
binding to nullptr.
* Implement large sloped turns
* Fix formatting
* Add sprites
* Fix large turns button being active on steep slopes
* Remove bad comment
* Increment network,plugin,park version numbers
* Update changelog
* Increment park file version again