* Add initial implementation of "vehicle.crash" hook for the scripting api
The hook will fire whenever a vehicle crashes, i.e. an individual car
explodes and it's status becomes "Crashed!"
* Update contributors.md
Add name to contributors list under the "Additional implementation (OpenRCT2)" section.
- If the added line needs to be changed or removed entirely let me know
- I added this based off of the Github wiki: "If it's the first time you're contributing with the project, make sure to update the contributors.md file by appending your name at the end of the respective list."
* Move hook code into function
* Rename hook function
Renamed function, "FireVehicleCrashHook" to "InvokeVehicleCrashHook"
* Wrap InvokeVehicleCrashHook in #ifdef
Move the #ifdef from inside the function body to the outside
* Update changelog and api version
- Added entry to changelog
- Increment API version
* Fix whitespace
Replace tab character with four spaces
* Update src/openrct2/scripting/HookEngine.cpp
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
When exiting the Track Design Manager window the user was placed into the scenario editor in a broken state.
User is now returned to the main menu when the window is closed.
- Fix: [#15028] Crash when placing large scenery.
- Fix: [#15048] Crash when removing litter with cheats.
- Fix: [#15052] Crash when using banner window.
- Fix: [#15063] Crash when opening large scenery signs.
- Improved: [#12626] Allow using RCT2 saves to mark RCT Classic (.sea) parks as finished and vice versa.
* Fix#15052. Crash when using banner window
Bug introduced during refactor. Refactor introduces a pointer that will go invalid. When the pointer was invalid the game would crash.
* Update changelog
* Fix#15028, #15042. Crash when placing large scenery
When the fragmented tile element limit is reached whilst placing a large scenery ghost the game will perform a reorg of the map elements invalidating tile element pointers. As large scenery are multi tiled this can happen mid action invalidating the pointer that was allocated for the first tile element. Large scenery actions pass back the first tile element pointer to the calling function for use with ghost removal. When this pointer is invalid it causes the crash. The ultimate fix for this would be to create an undo function for actions. As an interim the function has been modified to return the first tile height.
* Update changelog
- Feature: [#13967] Track List window now displays the path to the design when debugging tools are on.
- Feature: [#14071] “Vandals stopped” statistic for security guards.
- Feature: [#14169] Lighting effects for shops and stalls.
- Feature: [#14296] Allow using early scenario completion in multiplayer.
- Feature: [#14538] [Plugin] Add property for getting current plugin api version.
- Feature: [#14620] [Plugin] Add properties related to guest generation.
- Feature: [#14636] [Plugin] Add properties related to climate and weather.
- Feature: [#14731] Opaque water (like in RCT1).
- Change: [#14496] [Plugin] Rename Object to LoadedObject to fix conflicts with Typescript's Object interface.
- Change: [#14536] [Plugin] Rename ListView to ListViewWidget to make it consistent with names of other widgets.
- Change: [#14751] “No construction above tree height” limitation now allows placing high trees.
- Change: [#14841] Redesign the About window, including new button to copy the current version info.
- Fix: [#11829] Visual glitches and crashes when using RCT1 assets from mismatched or corrupt CSG1.DAT and CSG1i.DAT files.
- Fix: [#12262] Windows can appear off screen with small screens or high scaling.
- Fix: [#13581] Opening the Options menu causes a noticeable drop in FPS.
- Fix: [#13894] Block brakes do not animate.
- Fix: [#13986] OpenGL: Track preview window, flip/rotate button do not update the thumbnail.
- Fix: [#14315] Crash when trying to rename Air Powered Vertical Coaster in Korean.
- Fix: [#14330] join_server uses default_port from config.
- Fix: [#14415] Entrances/exits are removed when built on top of each other.
- Fix: [#14449] Surface smoothing at extra zoom levels not working.
- Fix: [#14468] Cannot close Options window on Android.
- Fix: [#14493] [Plugin] isHidden only works for tile elements up to the first element with a base height of over 32.
- Fix: [#14587] Confusing message when joining server with mismatched network version.
- Fix: [#14604] American-style Steam Trains are not imported correctly from RCT1 saves.
- Fix: [#14638] The “About OpenRCT2” window cannot be themed.
- Fix: [#14682] Crash when painting Swinging Ships with invalid subtype.
- Fix: [#14707] Crash when window is closed during text input.
- Fix: [#14710] Ride/Track Design preview does not show if it costs more money than available.
- Fix: [#14774] Incorrect import of scenery research caused all scenery to be unlocked.
- Fix: [#14806] Incorrect function call in WallPlaceAction plugin code.
- Fix: [#14871] Crash when trying to place track when there are no free tile elements.
- Fix: [#14880] Unable to close changelog window when its content fails to load.
- Fix: [#14945] Incorrect drop height penalty on log flume ride.
- Fix: [#14964] Unable to build in multiplayer as client with "Build while paused" cheat enabled when the host is paused.
- Improved: [#14511] “Unlock operating limits” cheat now also unlocks all music.
- Improved: [#14712, #14716] Improve startup times.
- Improved: [#14982] Add Malgun Gothic and change Nanum Gothic filename for Korean.
* Fix#14774: Incorrect import of scenery research
Mistake during a refactor caused all scenery to be imported as already researched.
* Update changelog
* Update network version
New behaviour of SawyerChunkReader is to skip shrinking the chunk
memory unless persistentChunks is set to true. At the moment all uses
of SawyerChunks created by the reader are temporary and shrinking memory
right before freeing them is a waste of time.
Speeds up loading times and index building
Drastically reduces startup speed because of the
optimization applied to ObjectAsset::GetSize - now the file
size is obtained without reading the entire file into memory.
* Fix#14449: Surface smoothing not working at extra zooms
Caused by two issues. One was spotted by @AaronVanGeffen in that surface smoothing was turned off. The other was caused by a bug in the opengl renderer that went unnoticed due to never being hit during normal play.
* Fix merrygoround and enterprise extra zoom peep drawing
* Add changelog entry
* Add a stat for security guards: Vandals stopped
* Update src/openrct2-ui/windows/Staff.cpp
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
* Update src/openrct2/peep/Guest.cpp
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
* No need to update screenCoords at the last line
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Add changelog entry and bump network version
* Update to new UI code
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
- Feature: [#12110] Add Hybrid Coaster (Rocky Mountain Construction I-Box) track type.
- Feature: [#12999] .sea (RCT Classic) scenarios are now listed in the “New Scenario” dialog.
- Feature: [#13000] objective_options command for console.
- Feature: [#13096] Add Esperanto translation.
- Feature: [#13164] Add 'Objective options' to Cheats menu.
- Change: [#9568] Change lift sounds of Reverser Roller Coaster and Compact Inverted Coaster to better fitting ones.
- Change: [#13160] The lay-out of the Park Cheats tab has been improved.
- Fix: [#1324] Last track piece map selection still visible when placing ride entrance or exit (original bug).
- Fix: [#3200] Close Construction window upon selecting vehicle page.
- Fix: [#4022] Fix Mac cursor offset on launch
- Fix: [#4041] Garbled park option on scenario editor with custom theme.
- Fix: [#4865] Offer an option to disable inhibiting the monitor power.
- Fix: [#5178] Lighting effects cannot be disabled in software mode
- Fix: [#5904] Empty errors on tile inspector base height change.
- Fix: [#6086] Cannot install existing track design with another name.
- Fix: [#6614, #8623] Colours are distorted when using OpenGL with Intel integrated graphics drivers.
- Fix: [#7443] Construction arrows pulse at irregular intervals.
- Fix: [#7518] Water isn't cut down by view clipping tool.
- Fix: [#7748] Tooltips would not timeout for normal UI elements.
- Fix: [#8015] RCT2 files are not found when put into the OpenRCT2 folder.
- Fix: [#8957] Error title missing when building with insufficient funds
- Fix: [#10186] Placing multiple saved rides ignores design name (original bug).
- Fix: [#12368] Desync due to ghost station pieces affecting changing ride settings.
- Fix: [#12940] Windows cause issues with snow drawing.
- Fix: [#13019] Simulated trains sometimes open construction window when they crash.
- Fix: [#13021] Mowed grass and weeds don't show up in extra zoom levels.
- Fix: [#13024] Console cursor does not correctly render at current cursor position.
- Fix: [#13029] Not all Junior Roller Coaster pieces are shown when "Show all track pieces" cheat is enabled.
- Fix: [#13044] Rides in RCT1 saves all have "0 customers per hour".
- Fix: [#13074] Entrance and exit ghosts for mazes not being removed.
- Fix: [#13083] Dialog for renaming conflicting track design crops text out.
- Fix: [#13097] Missing direction arrow for stations
- Fix: [#13098] UI buttons for entrance and exit don't toggle according to them being built.
- Fix: [#13098] Maze can still be constructed while placing entrance and exit (original bug).
- Fix: [#13118] Closing construction window resets ride viewport.
- Fix: [#13129] Missing error message when waiting for train to leave station on the ride measurements graph.
- Fix: [#13138] Fix logical sorting of list windows.
- Fix: [#13158] Cursors are drawn incorrectly in text input fields.
- Fix: [#13222] Vehicle collision causes negative number of passengers (original bug).
- Fix: [#13226, #7280] No error is shown when attempting to load a corrupted save.
- Fix: [#13266] Plugin API: Deleting key of sharedStorage not working.
- Fix: [#13278] Desync caused by ghost tiles changing the ride mode.
- Fix: [#13289] Litter and vomit sometimes not loading with RCT1 saved game or scenario
- Fix: [#13292] Impossible excitement rating requirements with finish building 5 coasters goal
- Improved: [#13023] Made add_news_item console command last argument, assoc, optional.
- Improved: [#13098] Improvements to the maze construction window user interface
- Improved: [#13125] Selecting the RCT2 files now uses localised dialogs.
- add TileElement union type
- add the exact type to each TileElement, overwriting the more general type of BaseTileElement
- use TileElement type in Tile interface (instead of BaseTileElement)
- change single quotes to double quotes
- add type to WidgetBase
* Add isVisible property to widgets so that you can easily show / hide widgets.
* Add new text box widget for text input
* Allow plugin windows to be transparent
* Add `textAlign` property to label widget
* add data to Track.cpp
add data to TrackData.cpp
add import helper functions
fix Booster value
import booster as 256
export booster as 100
add vehicle subposition data
add SV4 import
add TD4 import
add TD6 import
use track_type_t when importing TD6
add TD6 export
change peep tracktype type to auto
fix SV4 track element import
fix import of booster speed
add None enum to TrackElemType
move _legacy RideConstruction functions to Ride.cpp
change _currentPossibleRideConfigurations to use track_type_t
fix booster track category
add booster string tto
expand _currentTrackCurve to 32 bits
expand track_curve_chain to 32 bits
update get_track_element et al. to handle 16 bit track types
run clang-format
remove unused #includes from _legacy.cpp
Revert "remove unused #includes from _legacy.cpp"
This reverts commit 4c4d4b06edb0c130314789d8fe371246be246c9f.
Revert "update get_track_element et al. to handle 16 bit track types"
This reverts commit 73920dafd4a6c9e7c9f0c7ee1098d493f8f5d262.
Revert "move _legacy RideConstruction functions to Ride.cpp"
This reverts commit 2d83a75c1477d387ad77a7a5085f37a28f72a589.
update _legacy functions for 16-bit track types
update ride_construction_reset_current_piece behavior with new enum
fix declaration of _currentTrackCurve to match other track tcurve vars
remove unused include from T4Importer.cpp
move SCT to 256 part 1: RideConstruction.cpp
move SCT to 256 part 2: TrackData.cpp
move SCT to 256 part 3: Ride.h/Ride.cpp
move SCT to 256 Part 4: revert changes to S4Importer.cpp, T4Importer.cpp
fix stations appearing as curves
fix too many initializers in TrackData.cpp
move SCT to 256 part 5: S6/T6 importing and exporting
move SCT to 256 part 6: simplify RCT12.cpp functions
fix comments in S6Exporter.cpp, S6Importer.cpp
fix clang-format on S6Importer.cpp
add missing data to TrackData.cpp
revert new functions for checking if track type is a booster
revert unused include
change trackType to auto and add comment to S6Exporter.cpp
move track type aliasing from TrackDesign.cpp to T6Import.cpp, T6Export.cpp
add comment about sv6 vehicle.track_type
static cast to uint8_t in T6Exporter.cpp`
set type to auto when setting value to _currentTrackCurve
revert moving function in S6Importer.cpp
fix value names in RideData.cpp
revert cahnge to uint16_t return for GetTrackType() in RCT12.cpp
fix GetTrackType return type for real
add changelog entry
bump network version
cast alternate track type to track_type_t
static_cast tuple input value in _legacy.cpp
change _currentTrackCurve to uint32
use TrackElemType::Count to determine length of subposition array
perform some changes
remove padding from rct_trackdefinition
fix alternative type check
remove _boosterTrackSelected
add missing condition for booster speed
add comments for TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop
add missing comments to RideData.cpp
remove extra entry
simplify some things
fix formatting
remove redundant checks todo: fix building the track piece
use TrackElemType::None more
remove git.txt
* bump network version
* make conditional more explicit w/ parentheses
* move booster check to RCT12.cpp
* implement getters and setters for vehicle track type and direction
* fix formatting
* rename RCT12TrackTypeIsBooster to RCT2TrackTypeIsBooster
* add whitespace in RCT2.h
* change the thing I thought I changed
* move booster check function to RCT2.cpp
* move function into if condition
* fix scope issues with setters
* Fix#13409: Clamp peep distances from path centers
The debunch-peeps improvement did not account for the fact that peeps may change direction when they are only at the very edge of a tile - it's not entirely clear to me why this happens, but it does. The previous code would push these peeps back towards the center line over time, but the new behaviour allows them to keep walking along these very edge-y lines, which means they sometimes appear to be walking on the wrong sides of benches, railings, etc.
To fix the problem, do not simply keep the target coordinate constant for the direction the peep is moving in, but clamp it, so that peeps in these outlier positions will get pulled back to a more acceptable position within one tile. Peeps who are already debunched within the reasonable center area of the path are unaffected.
* Update replays for change
* Add changelog entry
* Fix broken hashes
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Fix#12895: only update ride mechanic status when advancing state
* add changelog message
* Change changelog wording
* Bump network version
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Stop guests from being forced to the center line of a path over time
Change the way we apply randomness to peep destinations when moving from one tile to the next, to allow peeps that are moving along a straight path to maintain their perpendicular offset relative to the path direction, instead of being (eventually) forced back to the center line.
* Update test expectations
The changes to guest movement mean that the number of steps taken for these expected paths are now slightly different to before.
- Feature: [#12110] Add Hybrid Coaster (Rocky Mountain Construction I-Box) track type.
- Feature: [#12999] .sea (RCT Classic) scenarios are now listed in the “New Scenario” dialog.
- Feature: [#13000] objective_options command for console.
- Feature: [#13096] Add Esperanto translation.
- Feature: [#13164] Add 'Objective options' to Cheats menu.
- Change: [#9568] Change lift sounds of Reverser Roller Coaster and Compact Inverted Coaster to better fitting ones.
- Change: [#13160] The lay-out of the Park Cheats tab has been improved.
- Fix: [#1324] Last track piece map selection still visible when placing ride entrance or exit (original bug).
- Fix: [#3200] Close Construction window upon selecting vehicle page.
- Fix: [#4022] Fix Mac cursor offset on launch
- Fix: [#4041] Garbled park option on scenario editor with custom theme.
- Fix: [#4865] Offer an option to disable inhibiting the monitor power.
- Fix: [#5178] Lighting effects cannot be disabled in software mode
- Fix: [#5904] Empty errors on tile inspector base height change.
- Fix: [#6086] Cannot install existing track design with another name.
- Fix: [#6614, #8623] Colours are distorted when using OpenGL with Intel integrated graphics drivers.
- Fix: [#7443] Construction arrows pulse at irregular intervals.
- Fix: [#7518] Water isn't cut down by view clipping tool.
- Fix: [#7748] Tooltips would not timeout for normal UI elements.
- Fix: [#8015] RCT2 files are not found when put into the OpenRCT2 folder.
- Fix: [#8957] Error title missing when building with insufficient funds
- Fix: [#10186] Placing multiple saved rides ignores design name (original bug).
- Fix: [#12368] Desync due to ghost station pieces affecting changing ride settings.
- Fix: [#12940] Windows cause issues with snow drawing.
- Fix: [#13019] Simulated trains sometimes open construction window when they crash.
- Fix: [#13021] Mowed grass and weeds don't show up in extra zoom levels.
- Fix: [#13024] Console cursor does not correctly render at current cursor position.
- Fix: [#13029] Not all Junior Roller Coaster pieces are shown when "Show all track pieces" cheat is enabled.
- Fix: [#13044] Rides in RCT1 saves all have "0 customers per hour".
- Fix: [#13074] Entrance and exit ghosts for mazes not being removed.
- Fix: [#13083] Dialog for renaming conflicting track design crops text out.
- Fix: [#13097] Missing direction arrow for stations
- Fix: [#13098] UI buttons for entrance and exit don't toggle according to them being built.
- Fix: [#13098] Maze can still be constructed while placing entrance and exit (original bug).
- Fix: [#13118] Closing construction window resets ride viewport.
- Fix: [#13129] Missing error message when waiting for train to leave station on the ride measurements graph.
- Fix: [#13138] Fix logical sorting of list windows.
- Fix: [#13158] Cursors are drawn incorrectly in text input fields.
- Fix: [#13222] Vehicle collision causes negative number of passengers (original bug).
- Fix: [#13226, #7280] No error is shown when attempting to load a corrupted save.
- Fix: [#13266] Plugin API: Deleting key of sharedStorage not working.
- Fix: [#13278] Desync caused by ghost tiles changing the ride mode.
- Fix: [#13289] Litter and vomit sometimes not loading with RCT1 saved game or scenario
- Fix: [#13292] Impossible excitement rating requirements with finish building 5 coasters goal
- Improved: [#13023] Made add_news_item console command last argument, assoc, optional.
- Improved: [#13098] Improvements to the maze construction window user interface
- Improved: [#13125] Selecting the RCT2 files now uses localised dialogs.
Issue was actually caused by loading RCT1 saves from certain rotations, and fixed by reseting sprite quadrants when loading. Wasn't an issue with RCT2 saves as litter screen coordinates are set directly from the save, rather than calculated based on rotation and sprite width/height.
Windows' left value inside of cosine function is causing glitch-feel
movement for snows but in fact, x_start can simply modified by another magic
numbers.
* Remove 'Park parameters…' button
The scenario options are already accessible through the cheats menu
* Split off Objective group from General group
* Split off new Maintenance group from Staff group
* Shrink 'Force park rating' spinner to make room for label
* Change label 'Force weather' to 'Change weather to'
* Change label "Plants don't age" to 'Disable plants withering'
* Change some strings for consistent capitalisation
* Fix#1324: track selection visible when placing entrance or exit
* Improve maze construction window UX in entrance/exit mode
- Arrows are disabled when entrance and exit are being placed
- Clicking a construction mode will disable the entrance and exit mode
- Previous state restored when leaving entrance/exit construction mode
- Fix entrance/exit buttons not changing when the mode switches after placing the first entrance/exit
Co-authored-by: Simon Jarrett <simonjjarrett@gmail.com>
* Add "Hybrid coaster" ride type
* Add turns
* Add diagonal slopes
* Add bank transitions
* Add diagonal bank transitions
* Add banked turns
* Add sloped turns
* Add sloped bank transitions
* Add sloped banked turns
* Add s bends
* Add helices
* Add barrel rolls
* Add half loops
* Start changing supports to wooden
* Switch diagonals and banked turns to wooden supports
* Finish switching supports to wooden
* Alter default supports for small turns and steep turns
* Split track sprites that were glitching
* Fix incorrect sprite indices on small helices
* Add supports for large flat to steep pieces
* Fix bug with b supports
* Add supports for quarter loops
* Finalize set of track elements
* Fix strange colors when track piece is highlighted
* Update sprites.json
* Add support for corkscrews
* Fix incorrect remap colors and default supports
* Add slope to banked turn transitions
* Add support for preview image in color selection window
* Fix static glitches
* Correct Z offset
* Set segment heights (and fix more static glitches)
* Improve sloped curve supports
* Fix slope to banked turn transitions
* Fix dynamic glitches
* Fix boosters
* Remove corkscrews
* Set ride data and implement ride rating function
* Fix glitches on steep turns and gentle to steep
* Format code
* Add sprites
* Add track color preview image
* Fix formatting
* Add files to MSVC project
* Fix Testpaint
* Revert removal of RIDE_TYPE_50 from GetClassification
* Introduce constant instead of hard coded number
* Fix stray change
* Improve legibility of ride_ratings_calculate_hybrid_coaster()
* Fix comments on byte_97B23C
* Fix two other stray changes
* Fix Xcode project
* Adjust bounding boxes to make clipping behaviour more consistent
* Fix two glitches on medium and large turns
* Address comments from DuncansPumpkin
* Fix incorrect ride ID
* Fix steep turn sprites
* Run PNG images through OptiPNG
* Update changelog
* Fix namespace error
* Use arrays for supports to handle additional elements
* Rename functions to TitleCase and add namespace
* Increment network version
Co-authored-by: Edward Calver <hx010973@reading.ac.uk>
Co-authored-by: tylerleamon <59478575+tylerleamon@users.noreply.github.com>
Co-authored-by: Gymnasiast <m.o.steenbeek@gmail.com>
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>