OpenRCT2/src/openrct2/ride/track_data.h

90 lines
2.8 KiB
C

#pragma region Copyright (c) 2014-2016 OpenRCT2 Developers
/*****************************************************************************
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
*
* OpenRCT2 is the work of many authors, a full list can be found in contributors.md
* For more information, visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* A full copy of the GNU General Public License can be found in licence.txt
*****************************************************************************/
#pragma endregion
#pragma once
#include "../common.h"
#include "track.h"
#include "track_paint.h"
// 0x009968BB, 0x009968BC, 0x009968BD, 0x009968BF, 0x009968C1, 0x009968C3
extern const rct_track_coordinates TrackCoordinates[256];
// 0x009972BB, 0x009972BC, 0x009972BD, 0x009972BF, 0x009972C1, 0x009972C3
extern const rct_track_coordinates FlatTrackCoordinates[253];
extern const uint8 TrackSequenceProperties[256][16];
extern const uint8 FlatRideTrackSequenceProperties[256][16];
extern const uint64 RideTypePossibleTrackConfigurations[RIDE_TYPE_COUNT];
extern const rct_preview_track *TrackBlocks[256];
extern const rct_preview_track *FlatRideTrackBlocks[255];
extern const uint8 TrackPieceLengths[256];
typedef struct track_curve_chain {
uint16 next;
uint16 previous;
} track_curve_chain;
extern const track_curve_chain gTrackCurveChain[256];
extern const track_curve_chain gFlatRideTrackCurveChain[256];
extern const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[RIDE_TYPE_COUNT];
extern const uint32 * RideTypeTrackPaintFunctionsOld[RIDE_TYPE_COUNT];
typedef struct track_descriptor {
bool starts_diagonal;
uint8 slope_start;
uint8 bank_start;
uint8 track_curve;
uint8 slope_end;
uint8 bank_end;
uint8 track_element;
} track_descriptor;
extern const track_descriptor gTrackDescriptors[142];
typedef struct {
uint16 size;
const rct_vehicle_info info[];
} rct_vehicle_info_list;
extern const rct_vehicle_info_list **gTrackVehicleInfo[17];
extern const sint16 AlternativeTrackTypes[256];
extern const money32 TrackPricing[256];
extern const money32 FlatRideTrackPricing[256];
typedef struct dodgems_track_size {
uint8 left;
uint8 top;
uint8 right;
uint8 bottom;
} dodgems_track_size;
extern const dodgems_track_size DodgemsTrackSize[256];
extern const uint8 TrackElementMirrorMap[256];
extern const uint32 TrackHeightMarkerPositions[256];
extern const uint8 TrackSequenceElementAllowedWallEdges[256][16];
extern const uint8 FlatRideTrackSequenceElementAllowedWallEdges[256][16];
extern const uint16 FlatTrackFlags[256];
extern const uint16 TrackFlags[256];