2016-05-04 19:24:41 +02:00
|
|
|
#pragma region Copyright (c) 2014-2016 OpenRCT2 Developers
|
2015-02-07 19:38:48 +01:00
|
|
|
/*****************************************************************************
|
2016-05-04 19:24:41 +02:00
|
|
|
* 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
|
2015-06-27 23:53:52 +02:00
|
|
|
|
2015-02-07 19:38:48 +01:00
|
|
|
#include "../common.h"
|
2015-07-17 18:18:01 +02:00
|
|
|
#include "track.h"
|
2015-12-19 13:39:07 +01:00
|
|
|
#include "track_paint.h"
|
2015-02-07 19:38:48 +01:00
|
|
|
|
|
|
|
// 0x009968BB, 0x009968BC, 0x009968BD, 0x009968BF, 0x009968C1, 0x009968C3
|
2015-06-27 23:53:52 +02:00
|
|
|
extern const rct_track_coordinates TrackCoordinates[256];
|
2015-07-04 23:50:48 +02:00
|
|
|
// 0x009972BB, 0x009972BC, 0x009972BD, 0x009972BF, 0x009972C1, 0x009972C3
|
|
|
|
extern const rct_track_coordinates* FlatTrackCoordinates;
|
2015-06-27 23:53:52 +02:00
|
|
|
|
|
|
|
extern const uint64 RideTypePossibleTrackConfigurations[91];
|
|
|
|
extern const rct_preview_track *TrackBlocks[256];
|
|
|
|
extern const rct_preview_track *FlatRideTrackBlocks[255];
|
2015-07-12 16:16:15 +02:00
|
|
|
|
|
|
|
extern const uint8 TrackPieceLengths[256];
|
2015-07-13 13:47:31 +02:00
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct track_curve_chain {
|
2015-07-13 13:47:31 +02:00
|
|
|
uint16 next;
|
|
|
|
uint16 previous;
|
|
|
|
} track_curve_chain;
|
|
|
|
|
|
|
|
extern const track_curve_chain gTrackCurveChain[256];
|
|
|
|
extern const track_curve_chain gFlatRideTrackCurveChain[256];
|
2015-07-17 18:18:01 +02:00
|
|
|
|
2015-12-19 13:39:07 +01:00
|
|
|
extern const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[91];
|
2015-10-18 20:03:51 +02:00
|
|
|
extern const uint32 RideTypeTrackPaintFunctionsOld[91];
|
2016-02-20 17:53:20 +01:00
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct track_descriptor {
|
2016-02-20 17:53:20 +01:00
|
|
|
bool starts_diagonal;
|
|
|
|
uint8 slope_start;
|
|
|
|
uint8 bank_start;
|
|
|
|
uint8 track_curve;
|
|
|
|
uint8 slope_end;
|
|
|
|
uint8 bank_end;
|
|
|
|
uint8 track_element;
|
|
|
|
} track_descriptor;
|
|
|
|
|
2016-04-27 19:54:07 +02:00
|
|
|
extern const track_descriptor gTrackDescriptors[142];
|
2016-05-15 11:30:03 +02:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint16 size;
|
|
|
|
const rct_vehicle_info info[];
|
|
|
|
} rct_vehicle_info_list;
|
|
|
|
|
2016-05-15 18:20:46 +02:00
|
|
|
extern const rct_vehicle_info_list **gTrackVehicleInfo[17];
|
2016-08-06 02:09:28 +02:00
|
|
|
|
|
|
|
extern const sint16 AlternativeTrackTypes[256];
|