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 "../common.h" 13 #include "Location.hpp" 14 #include "Map.h" 15 16 #include <vector> 17 18 #pragma pack(push, 1) 19 struct rct_entrance_type 20 { 21 rct_string_id string_idx; // 0x00 22 uint32_t image_id; // 0x02 23 uint8_t scrolling_mode; // 0x06 24 uint8_t text_height; // 0x07 25 }; 26 assert_struct_size(rct_entrance_type, 8); 27 #pragma pack(pop) 28 29 struct TileElement; 30 31 enum 32 { 33 ENTRANCE_ELEMENT_FLAGS2_LEGACY_PATH_ENTRY = (1 << 0), 34 }; 35 36 constexpr const uint8_t ParkEntranceHeight = 12 * COORDS_Z_STEP; 37 constexpr const uint8_t RideEntranceHeight = 7 * COORDS_Z_STEP; 38 constexpr const uint8_t RideExitHeight = 5 * COORDS_Z_STEP; 39 40 extern bool gParkEntranceGhostExists; 41 extern CoordsXYZD gParkEntranceGhostPosition; 42 43 #define MAX_PARK_ENTRANCES 4 44 45 constexpr int32_t MaxRideEntranceOrExitHeight = 244 * COORDS_Z_STEP; 46 47 using ParkEntranceIndex = uint8_t; 48 constexpr const ParkEntranceIndex PARK_ENTRANCE_INDEX_NULL = 255; 49 50 extern std::vector<CoordsXYZD> gParkEntrances; 51 52 extern CoordsXYZD gRideEntranceExitGhostPosition; 53 extern StationIndex gRideEntranceExitGhostStationIndex; 54 55 void park_entrance_remove_ghost(); 56 money32 park_entrance_place_ghost(const CoordsXYZD& entranceLoc); 57 58 void reset_park_entrance(); 59 void maze_entrance_hedge_replacement(const CoordsXYE& entrance); 60 void maze_entrance_hedge_removal(const CoordsXYE& entrance); 61 62 void fix_park_entrance_locations(); 63