- sprite building would save a file with just the sprite file header
and then immediately open it again at the beginning of compilation
- sprite file generation is now entirely in memory until the final
output file is saved on success
- added validation of no file activity in the failed build test case;
failed builds will not generate a file or edit an existing one
* fix for bug #13611; handled too few sig figs fixed point case
* added unit test cases to cover modified fixed point code
* removed blank line to satistfy clang-format
* sorted includes in formatting tests for clang-format
* removed redundant static_cast
- already a char literal and assigning to char[] so code
is functionally equivalent
* Split up SmallSceneryPlace/Remove
Added undo function for Remove Scenery
* Refactor: Balloon and Banner actions hpp=>h/cpp
* Refactor: rename all action *.hpp files to *.cpp
This is preparation for separation in later commits. Note that without
the complete set of commits in this branch, the code will not build.
* Refactor Clear, Climate, Custom, and Footpath actions hpp=>h/cpp
* VSCode: add src subdirectories to includePath
* Refactor Guest actions hpp=>h/cpp
* Refactor Land actions hpp=>h/cpp
* Refactor LargeScenery actions hpp=>h/cpp
* Refactor Load, Maze, Network actions hpp=>h/cpp
* Refactor Park actions hpp=>h/cpp
* Refactor/style: move private function declarations in actions *.h
Previous action .h files included private function declarations with
private member variables, before public function declarations. This
commit re-orders the header files to the following order:
- public member variables
- private member variables
- public functions
- private functions
* Refactor Pause action hpp=>h/cpp
* Refactor Peep, Place, Player actions hpp=>h/cpp
* Refactor Ride actions hpp=>h/cpp
* Refactor Scenario, Set*, Sign* actions hpp=>h/cpp
* Refactor SmallScenerySetColourAction hpp=>h/cpp
* Refactor Staff actions hpp=>h/cpp
* Refactor Surface, Tile, Track* actions hpp=>h/cpp
* Refactor Wall and Water actions hpp=>h/cpp
* Fix various includes and other compile errors
Update includes for tests.
Move static function declarations to .h files
Add explicit includes to various files that were previously implicit
(the required header was a nested include in an action hpp file, and the
action .h file does not include that header)
Move RideSetStatus string enum to the cpp file to avoid unused imports
* Xcode: modify project file for actions refactor
* Cleanup whitespace and end-of-file newlines
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* 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.
* 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>
* Close#12388, refactor:PeepState to use strong enum
* refactor: refactored file PlayTests.cpp
* refactor: change PEEP_STATE_ to PeepState:: and camel case after merging
chore: code reformatting
Consolidate all the guest pathfinding code from Peep.cpp into GuestPathfinding.cpp, and make a dedicated header for GuestPathfinding to help make it easier to see what the actual public interface is to the pathfinding system.
* Reduce the use of rct_sprite
* Pass the correct types in S4 importer
* Add additional nullptr checks
* Simplify the viewport interaction
* Apply review comments
* Small cleanup of GetEntity
* Fix test paint
* Start removing GET_VEHICLE macro use
* Further work
* Remove further GET_VEHICLE's
* Further removal of GET_VEHICLE
* Remove the last of GET_VEHICLE
* Fix testpaint
* Fix nullptr deref
* Make review changes
Also swapped in helper functions and used a standard patern for iterating the train cars
* Further simplify loops for train cars
* Reduce use of get_sprite
* Update src/openrct2/world/Sprite.cpp
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Fix#12257: Change type of paint x/y to int32_t
This corrects an issue with integer conversions due to signness.
* Change types to 16bit and correct functions parameters
* Fix test paint.
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Fix#11963 - Refactor Peep::OutsideOfPark
Changed the definition of Peep::OutsideOfPark from uint8_t to bool and refactored all its occurences in code accordingly.
* Fix#11963 - Refactor Peep::OutsideOfPark
One forgotten instance of Peep::OutsideOfPark occurrence
* Fix#11963 - Refactor Peep::OutsideOfPark
Fix code according to a review suggestion.
* Rename Peep::destination_tolerance to use TitleCase
* Rename Peep::destination_y to use TitleCase
* Rename Peep::destination_x to use TitleCase
* Rename Peep::trousers_colour to use Title Case
* Rename Peep::tshirt_colour to use TitleCase
* Rename Peep::no_of_rides to use Title Case
* Rename Peep::staff_type to use TitleCase
* Rename Peep::type to use TitleCase
* Rename Peep::sprite_type to use TitleCase
* Rename Peep::sub_state to use TitleCase
* Rename Peep::state to use TitleCase
* Rename Peep::outside_of_park to use TitleCase
* Rename Peep::next_flags to use TitleCase
* Rename Peep::name to use TitleCase
* Rename Peep::NoOfRides to GuestNoOfRides
* Rename Peep::Type to AssignedPeepType
* Rename Peep::GuestNoOfRides to GuestNumRides
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.