* Merge LitterType into the shop item descriptor
* Merge ConsumptionTime into ShopItem descriptor
* Merge in DiscardContainer into ShopItemDiscriptor
* Simplify itemOrderPreference
* Simplify guest code by using 64bit flags
* Remove operators for ShopItem
* Move PeepThoughtType TooMuch GoodValue into ShopItemDescriptor
* Reorg Get Flags and Has functions to make intention clear
* Constexpr shop item descriptors
* Constexpr shop item descriptors to compile time gen constants
* Fix formatting and spelling
* Revert operator++ removal
* Fix#13495: Add properties for park value, guests and company value
* Add more park attributes to plugin API
* Fix#13431: [Plugin] UI disabled widgets can still be interacted with.
* Fix#13078: [Plugin] Add colour picker widget
* Fix: #13509 [Plugin] Add ability to format strings
* Fix#13510: [Plugin] list view scroll resets when items is set.
* Fix#13512: [Plugin] Add item separators to list view
Eradicate all coded format tokens. All internal strings now contain raw tokens such as `{STRINGID}` and `{RED}`. New iterators have been created to iterate the tokens and the UTF-8 codepoints.
Formatting strings has been re-written and a new template version is available.
* refactor: integrated PEEP_ITEM into SHOP_ITEM
* refactor: converted merged enum to flag
Only former occurrences of PEEP_ITEM
* cleanUp: code cleaned after merging
* refactor: converted ShopItem to strong enum
code reformatting
* refactor: ShopItem enum items renamed
code formatted
* refactor: new getter and setter functions for Item...Flags
* refactor: replaced all occurrences of ItemStandardFlags
with appropriate getter and setter functions.
COMPARE_FIELD macro needs to be commented out or the flag has to stay public.
* refactor: all occurrences of ItemExtraFlags replaced
with proper function calls. COMPARE_FIELD macro issue not resolved.
* refactor: introduced new variable for unified item flags
* refactor: adapted accessor functions
accessor functions were modified to accommodate both standard and extra ShopItem flags
* refactor: ItemExtraFlags accessor functions are replaced
with general functions
* refactor: reverted to original uint32_t flag variables
* refactor: implemented suggested changes
* refactor: integrate additional comments
* refactor: incorporated requested changes
* refactor: incorporated requested changes
added static_cast<PeepThoughtType> in lines 1572 and 1590
* Added some scripting glue to StaffHireNewAction
* Update src/openrct2/scripting/ScriptEngine.cpp
Co-authored-by: Ted John <ted@brambles.org>
* Update plugin api version
Co-authored-by: Ted John <ted@brambles.org>
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
* Part of #12438 Changed RIDE_COMPONENT_TYPE to enum class
(1/3)
Changed the enum RIDE_COMPONENT_TYPE to be enum class in RideData.h.
Shortened the enumerators.
And fixed
I split the changes I did into 3 commits because the enum is used in a total of 85 different files where I just replace the single line where they occur.
The changes in those 85 files are analogous to my change in line 328 in RideData.h in this commit.
* Part of #12438 changed all RIDE_COMPONENT_TYPE enumerators appearances
(2/3)
Changed every appearance of the old RIDE_COMPONENT_TYPE enumerators to the changed enumerators from last commit.
* Part of #12438
(3/3)
Used EnumValue() wherever a field or variable of the type RideComponentType was used as an index.
Havent checked if anything from these 3 commits on this branch got codestyle issues
* Part of #12438
used clang-format
* Closes#12438 Added Accessor function for RideComponentName
Added Accessor function GetRideComponentName to RideData.
to replace the use RideComponentNames[EnumValue(RideComponentType type)]
* Close#12438 moving GetRideComponentName to RideData Headerfile
Moved GetRideComponentName to RideData Headerfile since thats where it should be.
* 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>
* Split FileStream declarations and definitions
* Split JobPool declarations and definitions
* Split StringBuilder declarations and definitions
* Split StringReader declarations and definitions
* Split ZoomLevel declarations and definitions
* Fix missing include in FileClassifier.cpp
* Remove pragma once from source files
* Fix missing include in StringBuilder.h
* Update Xcode project
* Fix compilation of tests
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.
This only happens when a new ride type is added and the park is opened in the older version of the game where the ride type does not exist.
Reworked so that invalid rides are not loadable. Force reload of title if current scenario is corrupted.
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.
* Refactor variable names in window_guest_stats_bars_paint
Change the variables eax/ebp to timeInPark and barColor, respectively.
* Refactor guest stat UI calculations
Simplify guest stat calculations and move them to a new function NormalizeGuestStatValue.
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.
* Use ScreenCoords for tooltip
* Remove temporary variables
* Small refactor
* Fix#13151. Not passing tooltip arguments correctly for ride window
* Fix Server List window version tooltip
* Fix cheats tooltip event
* Add static to function decl
* Remove unreachable break statements in Ride.cpp
* Apply review suggestions
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
* 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>
Remove or improve comments that do not provide information
Use range based for loops when indexes are not necessary
Use more informative variable names
Load tiles starting from the most recently added tile to better mimic
the recursive logic of the original code
Operate on TileState objects rather than overwriting local variables to
simplify the logic in CaptureCurrentTileState and LoadNextTileElement
Use the existing map_is_edge function versus manually checking for
the map edge in the code
Fix edge culling logic to correctly cull all banner edges
Replace incorrect continue with break
Remove level, distanceFromJunction, and junctionTolerance from function
arguments as they are no longer required
Implements vanilla RCT2 behavior when unowning paths
by bypassing the early returns when the UNOWN flag is set
and letting the method continue to unown all connected path tiles
* 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.
It's intended to retrieve a rct_sprite_bounds from the global array
g_peep_animation_entries, given PeepSpriteType and PeepActionSpriteType
as parameters.
It's intended to retrieve a rct_peep_animation_entry from the global
array g_peep_animation_entries, given PeepSpriteType and
PeepActionSpriteType as parameters.
Give a more meaningful name to its private member that caused the
shadowing, as well as in the struct BannerElement.
Reported by PVS-Studio (Warning: V703).
Fix 3/7.
Issue: 12523
* 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>