1 /***************************************************************************** 2 * Copyright (c) 2014-2020 OpenRCT2 developers 3 * 4 * For a complete list of all authors, please refer to contributors.md 5 * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 6 * 7 * OpenRCT2 is licensed under the GNU General Public License version 3. 8 *****************************************************************************/ 9 10 #pragma once 11 12 #include "Track.h" 13 14 #include <cstdint> 15 16 constexpr const size_t VehicleTrackSubpositionSizeDefault = TrackElemType::Count * NumOrthogonalDirections; 17 18 struct rct_vehicle_info; 19 20 enum class VehicleTrackSubposition : uint8_t 21 { 22 Default, 23 // Going out means "moving away from the start". Viewed from Station 1, this is the left hand side of the track. 24 ChairliftGoingOut, 25 ChairliftGoingBack, 26 // End and start bullwheel as viewed from Station 1. 27 ChairliftEndBullwheel, 28 ChairliftStartBullwheel, 29 GoKartsLeftLane, 30 GoKartsRightLane, 31 GoKartsMovingToRightLane, 32 GoKartsMovingToLeftLane, 33 MiniGolfStart9 = 9, 34 MiniGolfPathA9 = 9, 35 MiniGolfBallPathA10, 36 MiniGolfPathB11, 37 MiniGolfBallPathB12, 38 MiniGolfPathC13, 39 MiniGolfBallPathC14, 40 ReverserRCFrontBogie, 41 ReverserRCRearBogie, 42 43 Count, 44 }; 45 46 struct rct_vehicle_info_list 47 { 48 uint16_t size; 49 const rct_vehicle_info* info; 50 }; 51 52 extern const rct_vehicle_info_list* const* const gTrackVehicleInfo[EnumValue(VehicleTrackSubposition::Count)]; 53