* 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>
* Fix missing error message on ride graph
Mistake made during implementation meant that the ride graph would not show the error message when the ride had not left the station. Another mistake meant that the tertiary colour of the ride window was not set to green. The tertiary colour was only used by this error message though so was not noticed.
* Fix entrance and exit ghosts not being removed for mazes
Co-authored-by: Simon Jarrett <simonjjarrett@gmail.com>
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
- Feature: [#10807] Add 2x and 4x zoom levels (currently limited to OpenGL).
- Feature: [#12703] Add scenario plugin APIs.
- Feature: [#12708] Add plugin-accessible names to all game actions.
- Feature: [#12712] Add TCP / socket plugin APIs.
- Feature: [#12840] Add Park.entranceFee to the plugin API.
- Feature: [#12884] Add BaseTileElement.occupiedQuadrants to the plugin API.
- Feature: [#12885] Add SmallSceneryElement.quadrant to the plugin API.
- Feature: [#12886] Make all scenery placement and remove actions available to the plugin API.
- Feature: [#2350, #12922] Add snow, heavy snow and blizzard to weather types.
- Fix: [#400] Unable to place some saved tracks flush to the ground (original bug).
- Fix: [#5753] Entertainers make themselves happy instead of the guests.
- Fix: [#7037] Unable to save tracks starting with a sloped turn or helix.
- Fix: [#12691] Ride graph tooltip incorrectly used count instead of number string.
- Fix: [#12694] Crash when switching ride types with construction window open.
- Fix: [#12701] Silent NSIS setup flag /S isn't silent, upgrade pop-up appears anyway.
- Fix: [#12737] Space Rings draw the same vehicle 4 times.
- Fix: [#12756] Scenario Editor crashing the game on macOS.
- Fix: [#12764] Rides don't start aged anymore.
- Fix: [#12818] Ride price not ignored in free-rides parks.
- Fix: [#12820] Title menu buttons not invalidating properly
- Fix: [#12845] Deleting ride with active ad campaign creates incorrect notification.
- Fix: [#12857] Incorrect Peep thoughts in imported RCT1 parks.
- Fix: [#12881] Guests' favourite rides are not listed in the guest window.
- Fix: [#12910] Plugin API: getRide sometimes returns null for valid ride IDs.
- Fix: [#12912] Plugin: selectedCell of CustomListView is being ignored on creation.
- Fix: [#12918] Cannot place vanilla TD6 tracks of the Hypercoaster, Monster Trucks, Classic Mini Roller Coaster, Spinning Wild Mouse and Hyper-Twister types.
- Fix: Incomplete loop collision box allowed overlapping track (original bug).
- Improved: [#12806] Add Esperanto diacritics to the sprite font.
- Improved: [#12837] Arabic text is now drawn and shaped correctly on Windows.
- Improved: [#12890] Add stroke to lowercase 'L' to differentiate from capital 'I'.
- Technical: [#12749] The required version of macOS has been lowered to 10.13 (High Sierra).
The track design was recognised as a Corkscrew RC, not as a Hypercoaster. Moved the conversion code from the track design repository to the TD6Importer (where it should have been, really).
This also fixes the issue that Hypercoasters, Monster Trucks, Classic Mini Roller Coasters, Spinning Wild Mouses and Hyper-Twisters placed from a track design have the wrong ride type.
* Add visitors for all scenery placement and removes
This should allow greater flexibility for plugin developers
* Add CoordsXYZ visitor
* Increment plugin API version. Update changelog
The problem with many sans-serif fonts, such as those in RCT2, is that it can be difficult to tell between a lowercase L and an uppercase I, and can be visually ambiguous. What I've done is add a small stroke to the bottom of the lowercase L's so that it will stand out better when it's used next to capital I's.
* add ActionType
* Make all game actions available to plugins
Includes list of game actions in the .d.ts
* Add an overload for internal game actions
This allows things like Visual Studio Code to autocomplete
* action can be a string (custom gameactions)
* Increment OPENRCT2_PLUGIN_API_VERSION
* Add #12708 to changelog and tombomp to contributors.
After identifying guests that are near an entertainer, modify the guest's HappinessTarget and TimeInQueue values instead of the entertainer's own values.
Keep targeting macOS 10.14 for libopenrct2 target. Replace deployment target with macOS 10.13 for other targets, including the OpenRCT2 bundle.
Explicitly type std::arrays, since Xcode refuses to use C++17 array deduction.
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>
Elapsed months after one year was mistakenly said to be 16.
Now it states the correct value at the beginning of the game and the increase every month and year.
* Feature #11817: Show authors field in object selection
- authors field in JSON shows as last line in bottom right on object selection
- authors field added to Object class
- ObjectFileIndex version bump as authors is serialised
* fix sign comparison warning
* Start object selection corner text higher to avoid overlap
* Use references to reduce unneccessary copies
* make GetAuthors const
* Clip drawing of authors string so it doesn't cross widgets
At max length the leftmost aligns exactly with description left
* Add a changelog message
* make SetAuthors use an rvalue reference
* remove unnecessary nullptr check
* Make tile element direction accessible for scripts
Add the direction field from the tile element
class to the ScTileElement class passed to
the script engine.
Co-authored-by: Taylor Stieff <taylor.stieff@heavenhr.de>
* Use stored values of customers to adjust income from on-ride photos
Use stored values of photos sold and total customers to calculate ratio
and use that to predict income per hour for rides that include
on-ride-photo sections.
* Get rid of float
* Fix formatting
* Fix formatting - again
* Review changes
* Fix formatting
* Use new method of checking on-ride photo
* Use constants
* Add a changelog and contributors entry
* Increase randomness when handyman is on queue path
* Add myself to contributors
* Refactor hex variable probabilities
* Add check if queue is connected to a ride
* Update changelog
* Bump network version
* Update replays
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
Mistake made when refactoring transposed two digits. Additional mistake made when removing a variable that was unused that changed the memory layout of the window. This meant that a part of the code that accessed a different variable in a union fetched the wrong memory. This was a mistake ultimately made during implementation.
Unsure when mistake was made but there was a variety of issues with this section of code. The rotation of the entrance was meant to be relative to the track design rotation not the last track pieces rotation. This caused issues for tracks that were not complete circuits. In addition there was a mistake for diagonal track pieces where the location of the end piece was not incremented this caused the diagonal piece to act as though it didn't exist breaking the preview.
* Create a hookable location checking function for actions
* Add location valid to a number of game actions
Actually pass the coordinates to the script
Use LocationValid on further game actions
Add further actions to the LocationValid. Update api
Update remaining actions to use LocationValid
* Fix bug with peep pickup
Adjust api
* Can now pop balloons and quack ducks in title screen.
* Chengelog entry
* Narrow check for misc sprite down to only duck and balloon sprite.
* Update distribution/changelog.txt
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Use the IsBalloon and IsDuck functions instead.
* Update src/openrct2-ui/interface/ViewportInteraction.cpp
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Squash: Bring code up to date.
* Add nullptr check.
* Update src/openrct2-ui/interface/ViewportInteraction.cpp
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>
Add new config option to allow any address to be advertised. This then
doesn't rely on the master server retrieving the server IP address via
the HTTP request which can often be IPv6 by default.
Mistake made when refactoring that meant that null locations were converted into tile 0, 0. I've fixed the general case but it is preferred to try avoid using null states for coordinates if at all possible.
With this field, plug-in creators are encouraged to use `isHidden` rather than spawning corrupt elements to hide other tile elements, and their scripts won't need updating when `isHidden` becomes a real field that does not alter anything other than the element itself.
- Player was not being attached to the game action event args.
- OpenRCT2 was looking for error on the event args object rather than the result sub object.
* Refactor game action binding for plugins
Adds parameter visiting for game actions to reduce code needed for binding game actions to JavaScript objects
* Apply suggestions from code review
Co-Authored-By: Tulio Leao <tupaschoal@gmail.com>
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
This changes the Air Powered Vertical Coaster so that it can be tested and opened without the need for a complete circuit (mirroring RCT1 and RCT3 behaviour). There appears to be no technical reason for RCT2's requirement for having a complete circuit.
The code being removed in the patch tries to fast forward a peep into the ride when it is the second peep for a vehicle that is used in pairs. Problem is that funds checking does not happen, so it happens that a peep may pay against its will.
Lets say a rich peep enters in line and a poor peep enters in line right after.
If the price of the ride is such that the rich peep can pay and the poor peep can't, it will be dragged into the ride because funds checking only happened for the first.
The second part of the patch just adjusts we consider the vehicle a full car if the second position is filled.
Add test to verify that a peep is not dragged into a ride it can't pay
This test puts two peeps in a Ferris Wheel. The first peep is rich and the second peep is poor. When they are both in line, the ride price is raised so that the poor peep can't pay.
Make sure the poor peep turns back and leaves the ride.
During development, a mistake in the logic would have broken all rides other than ferris wheels in a way that multiple guests could enter the same car.
Also add a test to make sure that is never broken.
In the scenario editor and track designer X button in object selector
will now close the object selector window and advance to the next stage
instead of closing the scenario editor and track editor entirely and
returning to the main menu.
Co-authored-by: Gymnasiast <m.o.steenbeek@gmail.com>
Changing footpath type for an existing footpath does not remove elements on it, such as benches, lamps, etc. Also handles changes from and to queue paths properly.
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
Co-authored-by: Michał Janiszewski <janisozaur@gmail.com>
- Feature: [#10925] Show hovered values on finance charts.
- Feature: [#11013] Ctrl+C copies input dialog text to clipboard.
- Feature: [#11218] load_park command for console
- Feature: [#11272] Option for toggling notifications for 'Ride casualties' and 'Stuck or stalled vehicles'.
- Feature: [#11281] add_news_item command for console
- Feature: [#11300] Add powered launch and reverse incline launched shuttle mode to the Stand-Up Roller Coaster (for RCT1 parity).
- Fix: [#475] Water sides drawn incorrectly (original bug).
- Fix: [#6123, #7907, #9472, #11028] Cannot build some track designs with 4 stations (original bug).
- Fix: [#6238] Invalid tile elem iteration in Guest::UpdateUsingBin
- Fix: [#7094] Back wall edge texture in water missing.
- Fix: [#9719] Hacked walls in RCT1 saves are imported incorrectly.
- Fix: [#10372, #10509, #10806] Lift base sections incorrectly exporting, causing various lift related bugs.
- Fix: [#10928] File browser's date column is too narrow.
- Fix: [#10951, #11160] Attempting to place park entrances creates ghost entrances in random locations.
- Fix: [#11005] Company value overflows.
- Fix: [#11027] Third color on walls becomes black when saving.
- Fix: [#11063] Scrolling position persists when switching tabs in the scenery window.
- Fix: [#11106] Crash on getting invalid vehicle index.
- Fix: [#11126] Cannot place Frightmare track design.
- Fix: [#11208] Cannot export parks with RCT2 DLC objects.
- Fix: [#11230] Seat Rotation not imported correctly for hacked rides.
- Fix: [#11225] Replay manager cannot handle track designs.
- Fix: [#11246] Fix Various Import/Export issues with Boat locations, balloon frame number.
- Fix: [#11258] Properly remove format codes from imported strings.
- Fix: [#11286] Fix banner tooltip colour.
- Fix: Small red gardens in RCT1 saves are imported in the wrong colour.
- Improved: [#11157] Slimmer virtual floor lines.
* Fix#11106: Fix crash on bad value prev_vehicle
This allows Thorpe Park to be loaded again. This is ultimately not a great fix. In the future it should be made so that the vehicle pointers are validated on load to ensure there are no loops or bad values.
This patch moves the function that adds coloring to the buffer text into the Buffer struct with a flag.
It also changes both Banner printing and Banner tooltip to use the colored version
The previous code used RCT12::RemoveFormatCodes to remove format codes from RCT strings. But that function uses utf8 methods to identify format codes. In this new version, rct2_to_utf8 is called first to obtain an utf8 string, and then utf8_remove_format_codes can be used.
* Update readme for Discord
This removes the remaining references to Gitter and adds invite links to the relevant Discord channels instead, as well as fixing a few typos.
The replay state was not being passed to all sub actions this prevented the replay from working. Note replays made before this still work its just they couldn't be replayed.
name the flag
Update changelog