The tile element should be determined the same way as is done when checking if the footpath is blocked by a vehicle.
Also added some extra safety checks and made the code a bit more efficient / reusable. For example: when the staff member is not a mechanic, the tile element doesn't have to determined.
If peeps approached a railway crossing from downhill, they would not stop for a passing train. This was because the exact destination z is determined too late. To always get the correct path, get the first footpath at the previous z index, or one step above.
Co-authored-by: Gymnasiast <m.o.steenbeek@gmail.com>
Backported from my map size refactors.
These functions previously scanned the whole map,
so this might also provide a slight performance boost (not tested).
This already revealed some places where implicit conversions were done, including some where its use was nonsense (MouseInput.cpp).
The changes to the Intent class were necessary to keep things working, and this splits things up more neatly.
* Fix#16392: Scenery on sloped surface is placed at wrong height.
* fix SceneryQuadrantOffset
* fix valley land height
* Bump network version
* update replays
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Implement profiling API
* Add console commands for the profiler
* Remove accidental line
* Correct csv output
* Add copyright notice
* Add missing override
* Add default virtual destructor
* Explicitly pass template argument
* Use static
* Add plugin API for profiler
* Add more profile calls
* Workaround for GCC hopefully
* Add missing static keyword
* Use uint64 for call count
* Reduce name length see if CI passes
* Improve handling of function names
* Work around (broken) static inline variables
* Fix missing include
* Disable profiler for clang 5 and older
* Update copyright date
* Profile UpdateAllMiscEntities
* Apply review suggestions
Co-authored-by: Ted John <ted@brambles.org>
* Refactor to result GameActions::Result as copy instead of unique_ptr
* Remove alias GameActions::Result::Ptr
* Remove MakeResult wrapper
* Remove type forwarder in TileInspector
For most of these cases, adding a trailing comma to the array block makes clang-format put each item on a new line, and clang-format exception blocks could be reduced where clang-format does not handle them properly.