* Simplify TileElement type conversation
* Introduce TileElementsView
* Move TileElementsView code into TileElementsView.h
* Cleanup code and move into OpenRCT2 namespace
* Use reference instead of pointer
* Fix include
* Make GCC happy
* Move the cast functions into base
* Use the cast function instead of reinterpret_cast
* Add TileElementsView tests
* Fix iterating on TileElementBase, return pointer not reference
* Use std::vector of quadrants
* Prevent ptr invalidation issues
* Remove next_in_quadrant
* Make review changes
* Rebuild next_in_quadrant for S6Export
* Fix formatting
* Constexpr where possible
* Increment network version and update replays
* Implement EntityLists
* Remove dead code
* Use alternative name for iterator
* Add comments
* Increment network version
* Update replays
* Remove further dead code
* Update replays again
* Move type field into sub structures
* Use type for misc_type
* Use type for l_type
* Rename to SubType
* Rename SpriteGeneric to MiscEntity
* Rename generic to misc
* Add extra nullptr checks for compilers that cant understand
* Make review changes
* Increment network version
* Update replays