* 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
* 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>
There were a number of issues with this function. It was calling index_is_in_list with invalid SPRITE_LISTs. The spatial index is no longer needed to be correct on save/load as it is rebuilt so that it is kept in order.
This will eventually replace all of the get_sprite and try_get_sprite calls
Further use of GetSprite
Use GetSprite in all remaining easy to use functions
Correct formatting
Rename GetSprite to GetEntity
Make suggested changes
Remove const to allow for building
Fix crashes due to next sprite
This will eventually replace all of the get_sprite and try_get_sprite calls
Further use of GetSprite
Use GetSprite in all remaining easy to use functions
Correct formatting
Rename GetSprite to GetEntity
Make suggested changes
Remove const to allow for building
Fix crashes due to next sprite
* 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 linked list index is only meant to be used for accessing the linked lists. Using the wrong variable is unlikely to cause issues for this exact case but it makes things cleaner.
* Change the spatial insert to make it ordered
This is so that the spatial index can be rebuilt and gauranteed to be in the correct order
* Increment Network Version
* Make review changes
* Remove the gSpriteSpatialIndex from the network
* Use safer get function
* Final little tweak
A single car on a coaster can comprise of multiple vehicles. One of those vehicles will be the car head vehicle. The train can comprise of multiple cars. Therefore not all vehicle->IsHead 's will be in SPRITE_LIST_TRAIN_HEAD. This rename makes that slightly more clear
The warnings reported were:
```
../src/openrct2/peep/GuestPathfinding.cpp: In function ‘Direction peep_pathfind_choose_direction(TileCoordsXYZ, Peep*)’:
../src/openrct2/peep/GuestPathfinding.cpp:1371:81: error: ‘void* memset(void*, int, size_t)’ writing to an object of non-trivial type ‘struct<unnamed>’; use assignment instead [-Werror=class-memaccess]
1371 | std::memset(_peepPathFindHistory, 0xFF, sizeof(_peepPathFindHistory));
| ^
../src/openrct2/peep/GuestPathfinding.cpp:35:1: note: ‘struct<unnamed>’ declared here
35 | {
| ^
../src/openrct2/world/Sprite.cpp: In function ‘void reset_sprite_list()’:
../src/openrct2/world/Sprite.cpp:152:52: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘union rct_sprite’; use assignment or value-initialization instead [-Werror=class-memaccess]
152 | std::memset(_spriteList, 0, sizeof(_spriteList));
| ^
In file included from ../src/openrct2/world/Sprite.cpp:10:
../src/openrct2/world/Sprite.h:117:7: note: ‘union rct_sprite’ declared here
117 | union rct_sprite
| ^~~~~~~~~~
```