mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #4191 from janisozaur/integrate2
Integrate various bits to try and improve 64-bit compatibility.
This commit is contained in:
commit
e80bc86377
|
@ -80,7 +80,7 @@ if (FORCE64)
|
||||||
set(TARGET_M "-m64")
|
set(TARGET_M "-m64")
|
||||||
set(OBJ_FORMAT "elf64-x86-64")
|
set(OBJ_FORMAT "elf64-x86-64")
|
||||||
set(LINKER_SCRIPT "ld_script_x86_64.xc")
|
set(LINKER_SCRIPT "ld_script_x86_64.xc")
|
||||||
list(APPEND CMAKE_C_FLAGS "-Wno-error=pointer-to-int-cast -Wno-error=int-to-pointer-cast")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=pointer-to-int-cast -Wno-error=int-to-pointer-cast")
|
||||||
else ()
|
else ()
|
||||||
set(TARGET_M "-m32")
|
set(TARGET_M "-m32")
|
||||||
set(OBJ_FORMAT "elf32-i386")
|
set(OBJ_FORMAT "elf32-i386")
|
||||||
|
|
|
@ -144,7 +144,7 @@ void load_palette(){
|
||||||
|
|
||||||
uint32 palette = 0x5FC;
|
uint32 palette = 0x5FC;
|
||||||
|
|
||||||
if ((sint32)water_type != -1){
|
if ((intptr_t)water_type != -1){
|
||||||
palette = water_type->image_id;
|
palette = water_type->image_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -160,7 +160,7 @@ int gfx_load_g2()
|
||||||
|
|
||||||
// Fix entry data offsets
|
// Fix entry data offsets
|
||||||
for (i = 0; i < g2.header.num_entries; i++)
|
for (i = 0; i < g2.header.num_entries; i++)
|
||||||
g2.elements[i].offset += (int)g2.data;
|
g2.elements[i].offset += (uintptr_t)g2.data;
|
||||||
|
|
||||||
// Successful
|
// Successful
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -563,7 +563,7 @@ void FASTCALL gfx_draw_sprite_palette_set_software(rct_drawpixelinfo *dpi, int i
|
||||||
source_pointer = g1_source->offset;
|
source_pointer = g1_source->offset;
|
||||||
uint8* new_source_pointer_start = malloc(total_no_pixels);
|
uint8* new_source_pointer_start = malloc(total_no_pixels);
|
||||||
uint8* new_source_pointer = new_source_pointer_start;// 0x9E3D28;
|
uint8* new_source_pointer = new_source_pointer_start;// 0x9E3D28;
|
||||||
int ebx, ecx;
|
intptr_t ebx, ecx;
|
||||||
while (total_no_pixels>0){
|
while (total_no_pixels>0){
|
||||||
sint8 no_pixels = *source_pointer;
|
sint8 no_pixels = *source_pointer;
|
||||||
if (no_pixels >= 0){
|
if (no_pixels >= 0){
|
||||||
|
@ -582,8 +582,8 @@ void FASTCALL gfx_draw_sprite_palette_set_software(rct_drawpixelinfo *dpi, int i
|
||||||
eax = (eax & 0xFF00) + *(source_pointer+1);
|
eax = (eax & 0xFF00) + *(source_pointer+1);
|
||||||
total_no_pixels -= ecx;
|
total_no_pixels -= ecx;
|
||||||
source_pointer += 2;
|
source_pointer += 2;
|
||||||
ebx = (uint32)new_source_pointer - eax;
|
ebx = (uintptr_t)new_source_pointer - eax;
|
||||||
eax = (uint32)source_pointer;
|
eax = (uintptr_t)source_pointer;
|
||||||
source_pointer = (uint8*)ebx;
|
source_pointer = (uint8*)ebx;
|
||||||
ebx = eax;
|
ebx = eax;
|
||||||
eax = 0;
|
eax = 0;
|
||||||
|
|
|
@ -142,7 +142,7 @@ void update_palette_effects()
|
||||||
// change palette to lighter colour during lightning
|
// change palette to lighter colour during lightning
|
||||||
int palette = 1532;
|
int palette = 1532;
|
||||||
|
|
||||||
if ((sint32)water_type != -1) {
|
if ((intptr_t)water_type != -1) {
|
||||||
palette = water_type->image_id;
|
palette = water_type->image_id;
|
||||||
}
|
}
|
||||||
rct_g1_element g1_element = g1Elements[palette];
|
rct_g1_element g1_element = g1Elements[palette];
|
||||||
|
@ -161,7 +161,7 @@ void update_palette_effects()
|
||||||
// change palette back to normal after lightning
|
// change palette back to normal after lightning
|
||||||
int palette = 1532;
|
int palette = 1532;
|
||||||
|
|
||||||
if ((sint32)water_type != -1) {
|
if ((intptr_t)water_type != -1) {
|
||||||
palette = water_type->image_id;
|
palette = water_type->image_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ void update_palette_effects()
|
||||||
uint32 j = gPaletteEffectFrame;
|
uint32 j = gPaletteEffectFrame;
|
||||||
j = (((uint16)((~j / 2) * 128) * 15) >> 16);
|
j = (((uint16)((~j / 2) * 128) * 15) >> 16);
|
||||||
int p = 1533;
|
int p = 1533;
|
||||||
if ((sint32)water_type != -1) {
|
if ((intptr_t)water_type != -1) {
|
||||||
p = water_type->var_06;
|
p = water_type->var_06;
|
||||||
}
|
}
|
||||||
rct_g1_element g1_element = g1Elements[q + p];
|
rct_g1_element g1_element = g1Elements[q + p];
|
||||||
|
@ -207,7 +207,7 @@ void update_palette_effects()
|
||||||
}
|
}
|
||||||
|
|
||||||
p = 1536;
|
p = 1536;
|
||||||
if ((sint32)water_type != -1) {
|
if ((intptr_t)water_type != -1) {
|
||||||
p = water_type->var_0A;
|
p = water_type->var_0A;
|
||||||
}
|
}
|
||||||
g1_element = g1Elements[q + p];
|
g1_element = g1Elements[q + p];
|
||||||
|
|
|
@ -1062,7 +1062,7 @@ void process_mouse_over(int x, int y)
|
||||||
|
|
||||||
int widgetId;
|
int widgetId;
|
||||||
int cursorId;
|
int cursorId;
|
||||||
int ebx, esi, edi, ebp;
|
int ebx, edi;
|
||||||
|
|
||||||
cursorId = CURSOR_ARROW;
|
cursorId = CURSOR_ARROW;
|
||||||
set_map_tooltip_format_arg(0, rct_string_id, STR_NONE);
|
set_map_tooltip_format_arg(0, rct_string_id, STR_NONE);
|
||||||
|
@ -1087,13 +1087,11 @@ void process_mouse_over(int x, int y)
|
||||||
gCurrentToolWidget.window_classification,
|
gCurrentToolWidget.window_classification,
|
||||||
gCurrentToolWidget.window_number
|
gCurrentToolWidget.window_number
|
||||||
);
|
);
|
||||||
ebp = (int)subWindow;
|
|
||||||
if (subWindow == NULL)
|
if (subWindow == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ebx = 0;
|
ebx = 0;
|
||||||
edi = cursorId;
|
edi = cursorId;
|
||||||
esi = (int)subWindow;
|
|
||||||
// Window event WE_UNKNOWN_0E was called here, but no windows actually implemented a handler and
|
// Window event WE_UNKNOWN_0E was called here, but no windows actually implemented a handler and
|
||||||
// its not known what it was for
|
// its not known what it was for
|
||||||
cursorId = edi;
|
cursorId = edi;
|
||||||
|
|
|
@ -1244,7 +1244,8 @@ static bool sub_679074(rct_drawpixelinfo *dpi, int imageId, sint16 x, sint16 y)
|
||||||
uint8 *source_pointer = image->offset;
|
uint8 *source_pointer = image->offset;
|
||||||
uint8 *new_source_pointer_start = malloc(total_no_pixels);
|
uint8 *new_source_pointer_start = malloc(total_no_pixels);
|
||||||
uint8 *new_source_pointer = (*&new_source_pointer_start);// 0x9E3D28;
|
uint8 *new_source_pointer = (*&new_source_pointer_start);// 0x9E3D28;
|
||||||
int ebx1, ecx;
|
intptr_t ebx1;
|
||||||
|
int ecx;
|
||||||
while (total_no_pixels > 0) {
|
while (total_no_pixels > 0) {
|
||||||
sint8 no_pixels = *source_pointer;
|
sint8 no_pixels = *source_pointer;
|
||||||
if (no_pixels >= 0) {
|
if (no_pixels >= 0) {
|
||||||
|
@ -1263,8 +1264,8 @@ static bool sub_679074(rct_drawpixelinfo *dpi, int imageId, sint16 x, sint16 y)
|
||||||
eax = (eax & 0xFF00) + *(source_pointer + 1);
|
eax = (eax & 0xFF00) + *(source_pointer + 1);
|
||||||
total_no_pixels -= ecx;
|
total_no_pixels -= ecx;
|
||||||
source_pointer += 2;
|
source_pointer += 2;
|
||||||
ebx1 = (uint32) new_source_pointer - eax;
|
ebx1 = (uintptr_t) new_source_pointer - eax;
|
||||||
eax = (uint32) source_pointer;
|
eax = (uintptr_t) source_pointer;
|
||||||
source_pointer = (uint8 *) ebx1;
|
source_pointer = (uint8 *) ebx1;
|
||||||
ebx1 = eax;
|
ebx1 = eax;
|
||||||
eax = 0;
|
eax = 0;
|
||||||
|
@ -1273,7 +1274,7 @@ static bool sub_679074(rct_drawpixelinfo *dpi, int imageId, sint16 x, sint16 y)
|
||||||
source_pointer = (uint8 *) ebx1;
|
source_pointer = (uint8 *) ebx1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool output = sub_679236_679662_679B0D_679FF1(ebx, image, new_source_pointer_start + (uint32) offset);
|
bool output = sub_679236_679662_679B0D_679FF1(ebx, image, new_source_pointer_start + (uintptr_t) offset);
|
||||||
free(new_source_pointer_start);
|
free(new_source_pointer_start);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
|
|
@ -2508,7 +2508,7 @@ void textinput_cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void window_start_textbox(rct_window *call_w, int call_widget, rct_string_id existing_text, uint32 existing_args, int maxLength)
|
void window_start_textbox(rct_window *call_w, int call_widget, rct_string_id existing_text, char * existing_args, int maxLength)
|
||||||
{
|
{
|
||||||
if (gUsingWidgetTextBox)
|
if (gUsingWidgetTextBox)
|
||||||
window_cancel_textbox();
|
window_cancel_textbox();
|
||||||
|
|
|
@ -686,7 +686,7 @@ void window_themes_open();
|
||||||
void window_title_editor_open(int tab);
|
void window_title_editor_open(int tab);
|
||||||
void window_title_command_editor_open(int command, bool insert);
|
void window_title_command_editor_open(int command, bool insert);
|
||||||
void window_tile_inspector_open();
|
void window_tile_inspector_open();
|
||||||
void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, rct_string_id existing_text, uint32 existing_args, int maxLength);
|
void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, rct_string_id existing_text, uintptr_t existing_args, int maxLength);
|
||||||
void window_text_input_raw_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, utf8string existing_text, int maxLength);
|
void window_text_input_raw_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, utf8string existing_text, int maxLength);
|
||||||
rct_window *window_mapgen_open();
|
rct_window *window_mapgen_open();
|
||||||
rct_window *window_loadsave_open(int type, char *defaultName);
|
rct_window *window_loadsave_open(int type, char *defaultName);
|
||||||
|
@ -748,7 +748,7 @@ void textinput_cancel();
|
||||||
void window_move_and_snap(rct_window *w, int newWindowX, int newWindowY, int snapProximity);
|
void window_move_and_snap(rct_window *w, int newWindowX, int newWindowY, int snapProximity);
|
||||||
int window_can_resize(rct_window *w);
|
int window_can_resize(rct_window *w);
|
||||||
|
|
||||||
void window_start_textbox(rct_window *call_w, int call_widget, rct_string_id existing_text, uint32 existing_args, int maxLength);
|
void window_start_textbox(rct_window *call_w, int call_widget, rct_string_id existing_text, char *existing_args, int maxLength);
|
||||||
void window_cancel_textbox();
|
void window_cancel_textbox();
|
||||||
void window_update_textbox_caret();
|
void window_update_textbox_caret();
|
||||||
void window_update_textbox();
|
void window_update_textbox();
|
||||||
|
|
192
src/peep/peep.c
192
src/peep/peep.c
|
@ -350,6 +350,168 @@ static const ride_rating NauseaMaximumThresholds[] = {
|
||||||
300, 600, 800, 1000
|
300, 600, 800, 1000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Has to use signed types
|
||||||
|
static const rct_xy16 _97e1bc_21[64] = {
|
||||||
|
{ 56, 8 },
|
||||||
|
{ 8, 8 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 32, 32 },
|
||||||
|
{ 8, 8 },
|
||||||
|
{ 8, 8 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 32, 32 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 32, 32 },
|
||||||
|
{ 8, 56 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 8, 32 },
|
||||||
|
{ 32, 32 },
|
||||||
|
{ 56, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 0 },
|
||||||
|
{ 56, -24 },
|
||||||
|
{ 56, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 0 },
|
||||||
|
{ 8, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 0 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 24 },
|
||||||
|
{ 32, 0 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 24, -24 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ -24, -24 },
|
||||||
|
{ 24, -24 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 24, 24 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 24, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 24, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 32 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 32 },
|
||||||
|
{ -24, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 32 },
|
||||||
|
{ -24, 56 },
|
||||||
|
{ -24, 8 },
|
||||||
|
{ 0, 8 },
|
||||||
|
{ 0, 32 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const rct_xy16 * _97e1bc[91] = {
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_97e1bc_21, // RIDE_TYPE_SPIRAL_SLIDE
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int peep_get_staff_count()
|
int peep_get_staff_count()
|
||||||
{
|
{
|
||||||
uint16 spriteIndex;
|
uint16 spriteIndex;
|
||||||
|
@ -2163,10 +2325,10 @@ static void peep_update_ride_sub_state_1(rct_peep* peep){
|
||||||
x *= 32;
|
x *= 32;
|
||||||
y *= 32;
|
y *= 32;
|
||||||
|
|
||||||
sint8* edx = peep->var_37 * 2 + RCT2_ADDRESS(0x97E1BC, sint8*)[ride->type];
|
const rct_xy16 edx = _97e1bc[ride->type][peep->var_37];
|
||||||
|
|
||||||
x += edx[0];
|
x += edx.x;
|
||||||
y += edx[1];
|
y += edx.y;
|
||||||
|
|
||||||
peep->destination_x = x;
|
peep->destination_x = x;
|
||||||
peep->destination_y = y;
|
peep->destination_y = y;
|
||||||
|
@ -3071,10 +3233,10 @@ static void peep_update_ride_sub_state_14(rct_peep* peep){
|
||||||
|
|
||||||
x *= 32;
|
x *= 32;
|
||||||
y *= 32;
|
y *= 32;
|
||||||
sint8* edx = peep->var_37 * 2 + RCT2_ADDRESS(0x97E1BC, sint8*)[ride->type];
|
|
||||||
|
|
||||||
x += edx[0];
|
const rct_xy16 edx = _97e1bc[ride->type][peep->var_37];
|
||||||
y += edx[1];
|
x += edx.x;
|
||||||
|
y += edx.y;
|
||||||
|
|
||||||
peep->destination_x = x;
|
peep->destination_x = x;
|
||||||
peep->destination_y = y;
|
peep->destination_y = y;
|
||||||
|
@ -3089,10 +3251,10 @@ static void peep_update_ride_sub_state_14(rct_peep* peep){
|
||||||
|
|
||||||
x *= 32;
|
x *= 32;
|
||||||
y *= 32;
|
y *= 32;
|
||||||
sint8* edx = peep->var_37 * 2 + RCT2_ADDRESS(0x97E1BC, sint8*)[ride->type];
|
|
||||||
|
|
||||||
x += edx[0];
|
const rct_xy16 edx = _97e1bc[ride->type][peep->var_37];
|
||||||
y += edx[1];
|
x += edx.x;
|
||||||
|
y += edx.y;
|
||||||
|
|
||||||
peep->destination_x = x;
|
peep->destination_x = x;
|
||||||
peep->destination_y = y;
|
peep->destination_y = y;
|
||||||
|
@ -3175,10 +3337,10 @@ static void peep_update_ride_sub_state_15(rct_peep* peep){
|
||||||
|
|
||||||
x *= 32;
|
x *= 32;
|
||||||
y *= 32;
|
y *= 32;
|
||||||
sint8* edx = peep->var_37 * 2 + RCT2_ADDRESS(0x97E1BC, sint8*)[ride->type];
|
|
||||||
|
|
||||||
x += edx[0];
|
const rct_xy16 edx = _97e1bc[ride->type][peep->var_37];
|
||||||
y += edx[1];
|
x += edx.x;
|
||||||
|
y += edx.y;
|
||||||
|
|
||||||
peep->destination_x = x;
|
peep->destination_x = x;
|
||||||
peep->destination_y = y;
|
peep->destination_y = y;
|
||||||
|
@ -3213,10 +3375,10 @@ static void peep_update_ride_sub_state_16(rct_peep* peep){
|
||||||
|
|
||||||
x *= 32;
|
x *= 32;
|
||||||
y *= 32;
|
y *= 32;
|
||||||
sint8* edx = peep->var_37 * 2 + RCT2_ADDRESS(0x97E1BC, sint8*)[ride->type];
|
|
||||||
|
|
||||||
x += edx[0];
|
const rct_xy16 edx = _97e1bc[ride->type][peep->var_37];
|
||||||
y += edx[1];
|
x += edx.x;
|
||||||
|
y += edx.y;
|
||||||
|
|
||||||
peep->destination_x = x;
|
peep->destination_x = x;
|
||||||
peep->destination_y = y;
|
peep->destination_y = y;
|
||||||
|
|
|
@ -883,6 +883,16 @@ enum {
|
||||||
RIDE_SETTING_RIDE_TYPE,
|
RIDE_SETTING_RIDE_TYPE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct rct_ride_properties {
|
||||||
|
uint32 flags;
|
||||||
|
uint8 min_value;
|
||||||
|
uint8 max_value;
|
||||||
|
uint8 max_brakes_speed;
|
||||||
|
uint8 acceleration;
|
||||||
|
} rct_ride_properties;
|
||||||
|
|
||||||
|
extern const rct_ride_properties RideProperties[91];
|
||||||
|
|
||||||
#define MAX_RIDES 255
|
#define MAX_RIDES 255
|
||||||
|
|
||||||
#define MAX_RIDE_MEASUREMENTS 8
|
#define MAX_RIDE_MEASUREMENTS 8
|
||||||
|
|
|
@ -1729,3 +1729,508 @@ const rating_tuple RideRatings[91] = {
|
||||||
{ 50, 30, 30 }, // RIDE_TYPE_59
|
{ 50, 30, 30 }, // RIDE_TYPE_59
|
||||||
{ 50, 30, 10 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
{ 50, 30, 10 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// rct2: 0x0097CF40
|
||||||
|
const rct_ride_properties RideProperties[91] = {
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 17}, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
7, 27, 0, 0}, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
7, 27, 0, 0}, // RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINIATURE_RAILWAY
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MONORAIL
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINI_SUSPENDED_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_6 |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_BOAT_RIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_WOODEN_WILD_MOUSE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_STEEPLECHASE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_CAR_RIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_20 |
|
||||||
|
RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 40, 0, 0}, // RIDE_TYPE_LAUNCHED_FREEFALL
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_BOBSLEIGH_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_OBSERVATION_TOWER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 26, 18}, // RIDE_TYPE_LOOPING_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_DINGHY_SLIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINE_TRAIN_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
1, 4, 0, 0}, // RIDE_TYPE_CHAIRLIFT
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 12, 30, 25}, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK,
|
||||||
|
1, 16, 0, 0}, // RIDE_TYPE_MAZE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_18 |
|
||||||
|
RIDE_TYPE_FLAG_FLAT_RIDE,
|
||||||
|
1, 5, 0, 0}, // RIDE_TYPE_SPIRAL_SLIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
1, 10, 0, 0}, // RIDE_TYPE_GO_KARTS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_LOG_FLUME
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_RIVER_RAPIDS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_26,
|
||||||
|
20, 180, 0, 0}, // RIDE_TYPE_DODGEMS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 |
|
||||||
|
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
7, 25, 0, 0}, // RIDE_TYPE_PIRATE_SHIP
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 |
|
||||||
|
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
7, 15, 0, 0}, // RIDE_TYPE_SWINGING_INVERTER_SHIP
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_FOOD,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_FOOD_STALL
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_FOOD,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_1D
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_DRINKS,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_DRINK_STALL
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_DRINKS,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_1F
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SHOP
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_26,
|
||||||
|
4, 25, 0, 0}, // RIDE_TYPE_MERRY_GO_ROUND
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_22
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_INFORMATION_KIOSK
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_IS_BATHROOM,
|
||||||
|
4, 4, 0, 0}, // RIDE_TYPE_TOILETS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_26,
|
||||||
|
1, 3, 0, 0}, // RIDE_TYPE_FERRIS_WHEEL
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_26,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MOTION_SIMULATOR
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_3D_CINEMA
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 |
|
||||||
|
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_TOP_SPIN
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SPACE_RINGS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
7, 30, 30, 40}, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 |
|
||||||
|
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_29 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_LIFT
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 26, 18}, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_CASH_MACHINE
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_26,
|
||||||
|
3, 6, 0, 0}, // RIDE_TYPE_TWIST
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_IN_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_HAUNTED_HOUSE
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE,
|
||||||
|
8, 8, 0, 0}, // RIDE_TYPE_FIRST_AID
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_CIRCUS_SHOW
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_GHOST_TRAIN
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 17}, // RIDE_TYPE_TWISTER_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_WOODEN_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_WILD_MOUSE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_38
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_FLYING_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_3A
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_VIRGINIA_REEL
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SPLASH_BOATS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINI_HELICOPTERS
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SUSPENDED_MONORAIL
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_40
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINI_GOLF
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 17}, // RIDE_TYPE_GIGA_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_20 |
|
||||||
|
RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_ROTO_DROP
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_3 |
|
||||||
|
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_NO_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
20, 180, 0, 0}, // RIDE_TYPE_FLYING_SAUCERS
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_IN_RIDE,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_CROOKED_HOUSE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MONORAIL_CYCLES
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
7, 27, 0, 0}, // RIDE_TYPE_COMPACT_INVERTED_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_WATER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
30, 50, 30, 40}, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 |
|
||||||
|
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_26,
|
||||||
|
7, 15, 0, 0}, // RIDE_TYPE_MAGIC_CARPET
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_6 | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_SUBMARINE_RIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING |
|
||||||
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_RIVER_RAFTS
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_FOOD,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_50
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_16 | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26,
|
||||||
|
10, 20, 0, 0}, // RIDE_TYPE_ENTERPRISE
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_DRINKS,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_52
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_FOOD,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_53
|
||||||
|
{RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 |
|
||||||
|
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_18 | RIDE_TYPE_FLAG_FLAT_RIDE |
|
||||||
|
RIDE_TYPE_FLAG_SELLS_DRINKS,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_54
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 27, 30, 25}, // RIDE_TYPE_55
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 33, 30, 25}, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINI_ROLLER_COASTER
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_MINE_RIDE
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
0, 0, 0, 0}, // RIDE_TYPE_59
|
||||||
|
{RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL |
|
||||||
|
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
|
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |
|
||||||
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
|
||||||
|
RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 |
|
||||||
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR,
|
||||||
|
10, 31, 26, 18}, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||||
|
};
|
||||||
|
|
|
@ -622,7 +622,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||||
enabledTrackPieces |= rideEntry->enabledTrackPiecesB & gResearchedTrackTypesB[ride->type];
|
enabledTrackPieces |= rideEntry->enabledTrackPiecesB & gResearchedTrackTypesB[ride->type];
|
||||||
enabledTrackPieces <<= 32;
|
enabledTrackPieces <<= 32;
|
||||||
enabledTrackPieces |= rideEntry->enabledTrackPiecesA & gResearchedTrackTypesA[ride->type];
|
enabledTrackPieces |= rideEntry->enabledTrackPiecesA & gResearchedTrackTypesA[ride->type];
|
||||||
uint32 rideTypeFlags = RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8), uint32);
|
uint32 rideTypeFlags = RideProperties[ride->type].flags;
|
||||||
RCT2_GLOBAL(0x00F44068, uint32) = rideTypeFlags;
|
RCT2_GLOBAL(0x00F44068, uint32) = rideTypeFlags;
|
||||||
|
|
||||||
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) && type == 1) {
|
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) && type == 1) {
|
||||||
|
|
|
@ -260,7 +260,7 @@ static rct_track_td6 *track_design_open_from_buffer(uint8 *src, size_t srcLength
|
||||||
|
|
||||||
td6->var_50 = min(
|
td6->var_50 = min(
|
||||||
td6->var_50,
|
td6->var_50,
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + 5 + (td6->type * 8), uint8)
|
RideProperties[td6->type].max_value
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set the element helper pointers
|
// Set the element helper pointers
|
||||||
|
|
|
@ -702,7 +702,7 @@ void vehicle_sounds_update()
|
||||||
vehicle_sound++;
|
vehicle_sound++;
|
||||||
i++;
|
i++;
|
||||||
if (i >= countof(gVehicleSoundList)) {
|
if (i >= countof(gVehicleSoundList)) {
|
||||||
vehicle_sound_params = (rct_vehicle_sound_params*)((int)vehicle_sound_params + 10);
|
vehicle_sound_params = (rct_vehicle_sound_params*)((uintptr_t)vehicle_sound_params + 10);
|
||||||
goto label28;
|
goto label28;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2079,11 +2079,12 @@ typedef struct rct_synchronised_vehicle {
|
||||||
assert_struct_size(rct_synchronised_vehicle, 4);
|
assert_struct_size(rct_synchronised_vehicle, 4);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
// 8 synchronised vehicle info
|
#define SYNCHRONISED_VEHICLE_COUNT 8
|
||||||
rct_synchronised_vehicle *_synchronisedVehicles = (rct_synchronised_vehicle*)0x00F64E4C;
|
|
||||||
|
|
||||||
#define _lastSynchronisedVehicle RCT2_GLOBAL(0x00F64E48, rct_synchronised_vehicle*)
|
// 8 synchronised vehicle info
|
||||||
#define MaxSynchronisedVehicle ((rct_synchronised_vehicle*)0x00F64E6C)
|
rct_synchronised_vehicle _synchronisedVehicles[SYNCHRONISED_VEHICLE_COUNT] = { 0 };
|
||||||
|
|
||||||
|
static rct_synchronised_vehicle* _lastSynchronisedVehicle = NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a map position contains a synchronised ride station and adds the vehicle
|
* Checks if a map position contains a synchronised ride station and adds the vehicle
|
||||||
|
@ -2168,7 +2169,7 @@ static bool vehicle_can_depart_synchronised(rct_vehicle *vehicle)
|
||||||
int direction = (mapElement->type + 1) & 3;
|
int direction = (mapElement->type + 1) & 3;
|
||||||
_lastSynchronisedVehicle = _synchronisedVehicles;
|
_lastSynchronisedVehicle = _synchronisedVehicles;
|
||||||
|
|
||||||
while (_lastSynchronisedVehicle < MaxSynchronisedVehicle) {
|
while (_lastSynchronisedVehicle < &_synchronisedVehicles[SYNCHRONISED_VEHICLE_COUNT - 1]) {
|
||||||
x += TileDirectionDelta[direction].x;
|
x += TileDirectionDelta[direction].x;
|
||||||
y += TileDirectionDelta[direction].y;
|
y += TileDirectionDelta[direction].y;
|
||||||
if (!try_add_synchronised_station(x, y, z)) {
|
if (!try_add_synchronised_station(x, y, z)) {
|
||||||
|
@ -2176,7 +2177,7 @@ static bool vehicle_can_depart_synchronised(rct_vehicle *vehicle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (_lastSynchronisedVehicle < MaxSynchronisedVehicle) {
|
while (_lastSynchronisedVehicle < &_synchronisedVehicles[SYNCHRONISED_VEHICLE_COUNT - 1]) {
|
||||||
x += TileDirectionDelta[direction].x;
|
x += TileDirectionDelta[direction].x;
|
||||||
y += TileDirectionDelta[direction].y;
|
y += TileDirectionDelta[direction].y;
|
||||||
if (!try_add_synchronised_station(x, y, z)) {
|
if (!try_add_synchronised_station(x, y, z)) {
|
||||||
|
@ -7201,7 +7202,7 @@ loc_6DAEB9:
|
||||||
if ((trackType == TRACK_ELEM_FLAT && ride->type == RIDE_TYPE_REVERSE_FREEFALL_COASTER) ||
|
if ((trackType == TRACK_ELEM_FLAT && ride->type == RIDE_TYPE_REVERSE_FREEFALL_COASTER) ||
|
||||||
(trackType == TRACK_ELEM_POWERED_LIFT)
|
(trackType == TRACK_ELEM_POWERED_LIFT)
|
||||||
) {
|
) {
|
||||||
vehicle->acceleration = RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 7, uint8) << 16;
|
vehicle->acceleration = RideProperties[ride->type].acceleration << 16;
|
||||||
}
|
}
|
||||||
if (trackType == TRACK_ELEM_BRAKE_FOR_DROP) {
|
if (trackType == TRACK_ELEM_BRAKE_FOR_DROP) {
|
||||||
if (!vehicle->is_child) {
|
if (!vehicle->is_child) {
|
||||||
|
|
|
@ -218,7 +218,7 @@ void scenario_begin()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rct_stex_entry* stex = g_stexEntries[0];
|
rct_stex_entry* stex = g_stexEntries[0];
|
||||||
if ((int)stex != -1) {
|
if ((intptr_t)stex != -1) {
|
||||||
char *buffer = (char*)RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER;
|
char *buffer = (char*)RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER;
|
||||||
|
|
||||||
// Set localised park name
|
// Set localised park name
|
||||||
|
@ -453,7 +453,7 @@ static void scenario_week_update()
|
||||||
|
|
||||||
rct_water_type* water_type = (rct_water_type*)object_entry_groups[OBJECT_TYPE_WATER].chunks[0];
|
rct_water_type* water_type = (rct_water_type*)object_entry_groups[OBJECT_TYPE_WATER].chunks[0];
|
||||||
|
|
||||||
if (month <= MONTH_APRIL && (sint32)water_type != -1 && water_type->var_0E & 1) {
|
if (month <= MONTH_APRIL && (intptr_t)water_type != -1 && water_type->var_0E & 1) {
|
||||||
// 100 attempts at finding some water to create a few ducks at
|
// 100 attempts at finding some water to create a few ducks at
|
||||||
for (int i = 0; i < 100; i++) {
|
for (int i = 0; i < 100; i++) {
|
||||||
if (scenario_create_ducks())
|
if (scenario_create_ducks())
|
||||||
|
@ -666,7 +666,7 @@ int scenario_prepare_for_save()
|
||||||
s6Info->entry.flags = 255;
|
s6Info->entry.flags = 255;
|
||||||
|
|
||||||
rct_stex_entry* stex = g_stexEntries[0];
|
rct_stex_entry* stex = g_stexEntries[0];
|
||||||
if ((int)stex != 0xFFFFFFFF) {
|
if ((intptr_t)stex != -1) {
|
||||||
format_string(buffer, stex->scenario_name, NULL);
|
format_string(buffer, stex->scenario_name, NULL);
|
||||||
safe_strcpy(s6Info->name, buffer, sizeof(s6Info->name));
|
safe_strcpy(s6Info->name, buffer, sizeof(s6Info->name));
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ static void research_rides_setup(){
|
||||||
|
|
||||||
for (uint8 rideType = 0; rideType < object_entry_group_counts[OBJECT_TYPE_RIDE]; rideType++){
|
for (uint8 rideType = 0; rideType < object_entry_group_counts[OBJECT_TYPE_RIDE]; rideType++){
|
||||||
rct_ride_entry* master_ride = get_ride_entry(rideType);
|
rct_ride_entry* master_ride = get_ride_entry(rideType);
|
||||||
if (master_ride == NULL || (uint32)master_ride == 0xFFFFFFFF)
|
if (master_ride == NULL || (intptr_t)master_ride == -1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (master_ride->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE)
|
if (master_ride->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE)
|
||||||
|
|
|
@ -846,7 +846,7 @@ static void window_editor_object_selection_mouseup(rct_window *w, int widgetInde
|
||||||
break;
|
break;
|
||||||
case WIDX_FILTER_STRING_BUTTON:
|
case WIDX_FILTER_STRING_BUTTON:
|
||||||
//window_text_input_open(w, widgetIndex, STR_OBJECT_SEARCH, STR_OBJECT_SEARCH_DESC, STR_STRING, (uint32)_filter_string, 40);
|
//window_text_input_open(w, widgetIndex, STR_OBJECT_SEARCH, STR_OBJECT_SEARCH_DESC, STR_STRING, (uint32)_filter_string, 40);
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_filter_string, 40);
|
window_start_textbox(w, widgetIndex, STR_STRING, _filter_string, 40);
|
||||||
break;
|
break;
|
||||||
case WIDX_FILTER_CLEAR_BUTTON:
|
case WIDX_FILTER_CLEAR_BUTTON:
|
||||||
memset(_filter_string, 0, sizeof(_filter_string));
|
memset(_filter_string, 0, sizeof(_filter_string));
|
||||||
|
@ -1694,7 +1694,7 @@ static void window_editor_object_selection_manage_tracks()
|
||||||
gS6Info->editor_step = EDITOR_STEP_TRACK_DESIGNS_MANAGER;
|
gS6Info->editor_step = EDITOR_STEP_TRACK_DESIGNS_MANAGER;
|
||||||
|
|
||||||
int entry_index = 0;
|
int entry_index = 0;
|
||||||
for (; ((int)object_entry_groups[0].chunks[entry_index]) == -1; ++entry_index);
|
for (; ((intptr_t)object_entry_groups[0].chunks[entry_index]) == -1; ++entry_index);
|
||||||
|
|
||||||
rct_ride_entry* ride_entry = get_ride_entry(entry_index);
|
rct_ride_entry* ride_entry = get_ride_entry(entry_index);
|
||||||
uint8* ride_type_array = &ride_entry->ride_type[0];
|
uint8* ride_type_array = &ride_entry->ride_type[0];
|
||||||
|
|
|
@ -289,7 +289,7 @@ static void window_loadsave_mouseup(rct_window *w, int widgetIndex)
|
||||||
w->no_list_items = _listItemsCount;
|
w->no_list_items = _listItemsCount;
|
||||||
break;
|
break;
|
||||||
case WIDX_NEW:
|
case WIDX_NEW:
|
||||||
window_text_input_open(w, WIDX_NEW, STR_NONE, STR_FILEBROWSER_NAME_PROMPT, STR_STRING, (uint32)&_defaultName, 64);
|
window_text_input_open(w, WIDX_NEW, STR_NONE, STR_FILEBROWSER_NAME_PROMPT, STR_STRING, (uintptr_t)&_defaultName, 64);
|
||||||
break;
|
break;
|
||||||
case WIDX_BROWSE:
|
case WIDX_BROWSE:
|
||||||
if (browse(isSave, path))
|
if (browse(isSave, path))
|
||||||
|
@ -477,12 +477,10 @@ static void window_loadsave_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||||
static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex)
|
static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex)
|
||||||
{
|
{
|
||||||
int i, y;
|
int i, y;
|
||||||
rct_string_id stringId, templateStringId = STR_PLACEHOLDER;
|
rct_string_id stringId;
|
||||||
char *templateString;
|
|
||||||
|
|
||||||
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light);
|
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light);
|
||||||
|
|
||||||
templateString = (char*)language_get_string(templateStringId);
|
|
||||||
for (i = 0; i < w->no_list_items; i++) {
|
for (i = 0; i < w->no_list_items; i++) {
|
||||||
y = i * 10;
|
y = i * 10;
|
||||||
if (y > dpi->y + dpi->height)
|
if (y > dpi->y + dpi->height)
|
||||||
|
@ -497,8 +495,9 @@ static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, i
|
||||||
gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031);
|
gfx_fill_rect(dpi, 0, y, 800, y + 9, 0x2000031);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(templateString, _listItems[i].name);
|
set_format_arg(0, rct_string_id, STR_STRING);
|
||||||
gfx_draw_string_left(dpi, stringId, &templateStringId, 0, 0, y - 1);
|
set_format_arg(2, char*, _listItems[i].name);
|
||||||
|
gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, 0, 0, y - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -682,8 +681,8 @@ static void window_loadsave_select(rct_window *w, const char *path)
|
||||||
if (_stricmp(extension, ".sv6") != 0 && _stricmp(extension, ".sc6") != 0)
|
if (_stricmp(extension, ".sv6") != 0 && _stricmp(extension, ".sc6") != 0)
|
||||||
strcat(newName, ".sv6");
|
strcat(newName, ".sv6");
|
||||||
if (title_sequence_save_exists(gCurrentTitleSequence, newName)) {
|
if (title_sequence_save_exists(gCurrentTitleSequence, newName)) {
|
||||||
set_format_arg(0, uint32, (uint32)&_listItems[w->selected_list_item].name);
|
set_format_arg(0, uint32, (intptr_t)&_listItems[w->selected_list_item].name);
|
||||||
window_text_input_open(w, WIDX_SCROLL, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING, (uint32)_listItems[w->selected_list_item].name, TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1);
|
window_text_input_open(w, WIDX_SCROLL, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING, (uintptr_t)_listItems[w->selected_list_item].name, TITLE_SEQUENCE_MAX_SAVE_LENGTH - 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
title_sequence_add_save(gCurrentTitleSequence, path, newName);
|
title_sequence_add_save(gCurrentTitleSequence, path, newName);
|
||||||
|
|
|
@ -3136,8 +3136,8 @@ static void window_ride_mode_tweak_increase(rct_window *w)
|
||||||
{
|
{
|
||||||
rct_ride *ride = get_ride(w->number);
|
rct_ride *ride = get_ride(w->number);
|
||||||
|
|
||||||
uint8 maxValue = RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 5, uint8);
|
uint8 maxValue = RideProperties[ride->type].max_value;
|
||||||
uint8 minValue = gCheatsFastLiftHill ? 0 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 4, uint8);
|
uint8 minValue = gCheatsFastLiftHill ? 0 : RideProperties[ride->type].min_value;
|
||||||
if (ride->mode == RIDE_MODE_MAZE) {
|
if (ride->mode == RIDE_MODE_MAZE) {
|
||||||
// Allow 64 people in mazes under non-cheat settings. The old maximum of 16 was too little for even moderately big mazes.
|
// Allow 64 people in mazes under non-cheat settings. The old maximum of 16 was too little for even moderately big mazes.
|
||||||
maxValue = 64;
|
maxValue = 64;
|
||||||
|
@ -3159,8 +3159,8 @@ static void window_ride_mode_tweak_decrease(rct_window *w)
|
||||||
{
|
{
|
||||||
rct_ride *ride = get_ride(w->number);
|
rct_ride *ride = get_ride(w->number);
|
||||||
|
|
||||||
uint8 maxValue = RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 5, uint8);
|
uint8 maxValue = RideProperties[ride->type].max_value;
|
||||||
uint8 minValue = gCheatsFastLiftHill ? 0 : RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + (ride->type * 8) + 4, uint8);
|
uint8 minValue = gCheatsFastLiftHill ? 0 : RideProperties[ride->type].min_value;
|
||||||
if (ride->mode == RIDE_MODE_MAZE) {
|
if (ride->mode == RIDE_MODE_MAZE) {
|
||||||
// Allow 64 people in mazes under non-cheat settings. The old maximum of 16 was too little for even moderately big mazes.
|
// Allow 64 people in mazes under non-cheat settings. The old maximum of 16 was too little for even moderately big mazes.
|
||||||
maxValue = 64;
|
maxValue = 64;
|
||||||
|
|
|
@ -1511,7 +1511,7 @@ static void window_ride_construction_mousedown(int widgetIndex, rct_window *w, r
|
||||||
uint8 maxBrakesSpeed = 30;
|
uint8 maxBrakesSpeed = 30;
|
||||||
if (RCT2_GLOBAL(0x00F440D3, uint8) != 1) {
|
if (RCT2_GLOBAL(0x00F440D3, uint8) != 1) {
|
||||||
brakesSpeedPtr = (uint8*)0x00F440CE;
|
brakesSpeedPtr = (uint8*)0x00F440CE;
|
||||||
maxBrakesSpeed = RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + 6 + (ride->type * 8), uint8);
|
maxBrakesSpeed = RideProperties[ride->type].max_brakes_speed;
|
||||||
}
|
}
|
||||||
uint8 brakesSpeed = *brakesSpeedPtr + 2;
|
uint8 brakesSpeed = *brakesSpeedPtr + 2;
|
||||||
if (brakesSpeed <= maxBrakesSpeed) {
|
if (brakesSpeed <= maxBrakesSpeed) {
|
||||||
|
|
|
@ -210,7 +210,7 @@ static void window_server_list_mouseup(rct_window *w, int widgetIndex)
|
||||||
window_close(w);
|
window_close(w);
|
||||||
break;
|
break;
|
||||||
case WIDX_PLAYER_NAME_INPUT:
|
case WIDX_PLAYER_NAME_INPUT:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_playerName, 63);
|
window_start_textbox(w, widgetIndex, STR_STRING, _playerName, 63);
|
||||||
break;
|
break;
|
||||||
case WIDX_LIST:{
|
case WIDX_LIST:{
|
||||||
int serverIndex = w->selected_list_item;
|
int serverIndex = w->selected_list_item;
|
||||||
|
|
|
@ -173,13 +173,13 @@ static void window_server_start_mouseup(rct_window *w, int widgetIndex)
|
||||||
window_close(w);
|
window_close(w);
|
||||||
break;
|
break;
|
||||||
case WIDX_PORT_INPUT:
|
case WIDX_PORT_INPUT:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_port, 6);
|
window_start_textbox(w, widgetIndex, STR_STRING, _port, 6);
|
||||||
break;
|
break;
|
||||||
case WIDX_NAME_INPUT:
|
case WIDX_NAME_INPUT:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_name, 64);
|
window_start_textbox(w, widgetIndex, STR_STRING, _name, 64);
|
||||||
break;
|
break;
|
||||||
case WIDX_PASSWORD_INPUT:
|
case WIDX_PASSWORD_INPUT:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)_password, 32);
|
window_start_textbox(w, widgetIndex, STR_STRING, _password, 32);
|
||||||
break;
|
break;
|
||||||
case WIDX_MAXPLAYERS_INCREASE:
|
case WIDX_MAXPLAYERS_INCREASE:
|
||||||
if (gConfigNetwork.maxplayers < 255) {
|
if (gConfigNetwork.maxplayers < 255) {
|
||||||
|
|
|
@ -96,7 +96,7 @@ rct_windownumber calling_number = 0;
|
||||||
int calling_widget = 0;
|
int calling_widget = 0;
|
||||||
int _maxInputLength;
|
int _maxInputLength;
|
||||||
|
|
||||||
void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, rct_string_id existing_text, uint32 existing_args, int maxLength)
|
void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id title, rct_string_id description, rct_string_id existing_text, uintptr_t existing_args, int maxLength)
|
||||||
{
|
{
|
||||||
_maxInputLength = maxLength;
|
_maxInputLength = maxLength;
|
||||||
|
|
||||||
|
|
|
@ -258,13 +258,13 @@ static void window_title_command_editor_mouseup(rct_window *w, int widgetIndex)
|
||||||
window_close(w);
|
window_close(w);
|
||||||
break;
|
break;
|
||||||
case WIDX_TEXTBOX_FULL:
|
case WIDX_TEXTBOX_FULL:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox1Buffer, 4);
|
window_start_textbox(w, widgetIndex, STR_STRING, textbox1Buffer, 4);
|
||||||
break;
|
break;
|
||||||
case WIDX_TEXTBOX_X:
|
case WIDX_TEXTBOX_X:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox1Buffer, 4);
|
window_start_textbox(w, widgetIndex, STR_STRING, textbox1Buffer, 4);
|
||||||
break;
|
break;
|
||||||
case WIDX_TEXTBOX_Y:
|
case WIDX_TEXTBOX_Y:
|
||||||
window_start_textbox(w, widgetIndex, STR_STRING, (uint32)textbox2Buffer, 4);
|
window_start_textbox(w, widgetIndex, STR_STRING, textbox2Buffer, 4);
|
||||||
break;
|
break;
|
||||||
case WIDX_GET:
|
case WIDX_GET:
|
||||||
if (command.command == TITLE_SCRIPT_LOCATION) {
|
if (command.command == TITLE_SCRIPT_LOCATION) {
|
||||||
|
|
Loading…
Reference in New Issue