1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Add generated Inverted impulse RC

This commit is contained in:
Michał Janiszewski
2016-10-09 15:19:53 +02:00
parent 1a0b5b7014
commit 4fa2f4a351
3 changed files with 485 additions and 1 deletions

View File

@@ -13,3 +13,486 @@
* A full copy of the GNU General Public License can be found in licence.txt
*****************************************************************************/
#pragma endregion
#include "../../drawing/drawing.h"
#include "../../paint/supports.h"
#include "../../interface/viewport.h"
#include "../../paint/map_element/map_element.h"
#include "../../paint/paint.h"
#include "../../sprites.h"
#include "../../world/map.h"
#include "../../world/sprite.h"
#include "../ride_data.h"
#include "../track_data.h"
#include "../track_paint.h"
static void inverted_impulse_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19662, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 29);
break;
case 1:
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19663, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 29);
break;
}
if (track_paint_util_should_paint_supports(gPaintMapPosition)) {
metal_a_supports_paint_setup(11, 4, 0, height + 44, gTrackColours[SCHEME_SUPPORTS]);
}
paint_util_push_tunnel_rotated(direction, height, TUNNEL_3);
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 48, 0x20);
}
static void inverted_impulse_rc_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19672, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 45);
if (track_paint_util_should_paint_supports(gPaintMapPosition)) {
metal_a_supports_paint_setup(11, 6, 0, height + 62, gTrackColours[SCHEME_SUPPORTS]);
}
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19673, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 45);
if (track_paint_util_should_paint_supports(gPaintMapPosition)) {
metal_a_supports_paint_setup(11, 8, 0, height + 62, gTrackColours[SCHEME_SUPPORTS]);
}
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19674, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 45);
if (track_paint_util_should_paint_supports(gPaintMapPosition)) {
metal_a_supports_paint_setup(11, 7, 0, height + 62, gTrackColours[SCHEME_SUPPORTS]);
}
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19675, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 45);
if (track_paint_util_should_paint_supports(gPaintMapPosition)) {
metal_a_supports_paint_setup(11, 5, 0, height + 62, gTrackColours[SCHEME_SUPPORTS]);
}
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_4);
} else {
paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 72, 0x20);
}
static void inverted_impulse_rc_track_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19688, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 93);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19689, 0, 0, 32, 2, 81, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19690, 0, 0, 32, 2, 81, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19691, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 93);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_4);
} else {
paint_util_push_tunnel_rotated(direction, height + 56, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 120, 0x20);
}
static void inverted_impulse_rc_track_flat_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19664, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 6, 0, height + 54, gTrackColours[SCHEME_SUPPORTS]);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19665, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 8, 0, height + 54, gTrackColours[SCHEME_SUPPORTS]);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19666, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 7, 0, height + 54, gTrackColours[SCHEME_SUPPORTS]);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19667, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 5, 0, height + 54, gTrackColours[SCHEME_SUPPORTS]);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height, TUNNEL_3);
} else {
paint_util_push_tunnel_rotated(direction, height, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 64, 0x20);
}
static void inverted_impulse_rc_track_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19676, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19680, 0, 0, 32, 10, 49, height + 29, 0, 10, height + 11);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19677, 0, 0, 32, 2, 49, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19681, 0, 0, 32, 10, 49, height + 29, 0, 10, height + 11);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19678, 0, 0, 32, 2, 49, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19679, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_4);
} else {
paint_util_push_tunnel_rotated(direction, height + 24, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 88, 0x20);
}
static void inverted_impulse_rc_track_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19682, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19686, 0, 0, 32, 10, 49, height + 29, 0, 10, height + 11);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19683, 0, 0, 32, 2, 49, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19687, 0, 0, 32, 10, 49, height + 29, 0, 10, height + 11);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19684, 0, 0, 32, 2, 49, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19685, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_4);
} else {
paint_util_push_tunnel_rotated(direction, height + 24, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 88, 0x20);
}
static void inverted_impulse_rc_track_25_deg_up_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19668, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 6, 0, height + 52, gTrackColours[SCHEME_SUPPORTS]);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19669, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 8, 0, height + 52, gTrackColours[SCHEME_SUPPORTS]);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19670, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 7, 0, height + 52, gTrackColours[SCHEME_SUPPORTS]);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19671, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 37);
metal_a_supports_paint_setup(11, 5, 0, height + 52, gTrackColours[SCHEME_SUPPORTS]);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_3);
} else {
paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_13);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 56, 0x20);
}
static void inverted_impulse_rc_track_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_60_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_flat_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_25_deg_up_to_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_25_deg_down_to_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_60_deg_up_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_60_deg_down_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_25_deg_up_to_60_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_flat_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_90_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (trackSequence) {
case 0:
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19700, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19701, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19702, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19703, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 61);
break;
}
paint_util_set_vertical_tunnel(height + 32);
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 32, 0x20);
break;
case 1:
break;
}
}
static void inverted_impulse_rc_track_90_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_90_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_60_deg_up_to_90_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (trackSequence) {
case 0:
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19692, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19693, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19694, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19695, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_4);
}
paint_util_set_vertical_tunnel(height + 48);
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 72, 0x20);
break;
case 1:
break;
}
}
static void inverted_impulse_rc_track_90_deg_down_to_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_60_deg_up_to_90_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_90_deg_up_to_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19696, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19697, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19698, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19699, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
}
switch (direction) {
case 1:
paint_util_push_tunnel_right(height + 48, TUNNEL_5);
break;
case 2:
paint_util_push_tunnel_left(height + 48, TUNNEL_5);
break;
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 96, 0x20);
}
static void inverted_impulse_rc_track_60_deg_down_to_90_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (trackSequence) {
case 0:
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19698, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19699, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19696, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 85);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19697, 0, 0, 32, 2, 55, height + 29, 0, 4, height + 11);
break;
}
if (direction == 0 || direction == 3) {
paint_util_push_tunnel_rotated(direction, height + 48, TUNNEL_5);
}
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 96, 0x20);
break;
case 1:
break;
}
}
static void inverted_impulse_rc_track_left_quarter_turn_1_90_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (trackSequence) {
case 0:
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19708, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19709, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19717, 0, 0, 2, 32, 31, height + 29, 4, 0, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19710, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19718, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19711, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19719, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
}
paint_util_set_vertical_tunnel(height + 96);
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 96, 0x20);
break;
case 1:
break;
}
}
static void inverted_impulse_rc_track_right_quarter_turn_1_90_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
switch (trackSequence) {
case 0:
switch (direction) {
case 0:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19704, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19712, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 1:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19705, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19713, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 2:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19706, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19714, 0, 0, 32, 2, 31, height + 29, 0, 4, height + 11);
break;
case 3:
sub_98197C_rotated(direction, gTrackColours[SCHEME_TRACK] | 19707, 0, 0, 32, 20, 3, height + 29, 0, 6, height + 125);
break;
}
paint_util_set_vertical_tunnel(height + 96);
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0);
paint_util_set_general_support_height(height + 96, 0x20);
break;
case 1:
break;
}
}
static void inverted_impulse_rc_track_left_quarter_turn_1_90_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_right_quarter_turn_1_90_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement);
}
static void inverted_impulse_rc_track_right_quarter_turn_1_90_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
{
inverted_impulse_rc_track_left_quarter_turn_1_90_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement);
}
TRACK_PAINT_FUNCTION get_track_paint_function_inverted_impulse_rc(int trackType, int direction)
{
switch (trackType) {
case TRACK_ELEM_FLAT:
return inverted_impulse_rc_track_flat;
case TRACK_ELEM_25_DEG_UP:
return inverted_impulse_rc_track_25_deg_up;
case TRACK_ELEM_60_DEG_UP:
return inverted_impulse_rc_track_60_deg_up;
case TRACK_ELEM_FLAT_TO_25_DEG_UP:
return inverted_impulse_rc_track_flat_to_25_deg_up;
case TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP:
return inverted_impulse_rc_track_25_deg_up_to_60_deg_up;
case TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP:
return inverted_impulse_rc_track_60_deg_up_to_25_deg_up;
case TRACK_ELEM_25_DEG_UP_TO_FLAT:
return inverted_impulse_rc_track_25_deg_up_to_flat;
case TRACK_ELEM_25_DEG_DOWN:
return inverted_impulse_rc_track_25_deg_down;
case TRACK_ELEM_60_DEG_DOWN:
return inverted_impulse_rc_track_60_deg_down;
case TRACK_ELEM_FLAT_TO_25_DEG_DOWN:
return inverted_impulse_rc_track_flat_to_25_deg_down;
case TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN:
return inverted_impulse_rc_track_25_deg_down_to_60_deg_down;
case TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN:
return inverted_impulse_rc_track_60_deg_down_to_25_deg_down;
case TRACK_ELEM_25_DEG_DOWN_TO_FLAT:
return inverted_impulse_rc_track_25_deg_down_to_flat;
case TRACK_ELEM_90_DEG_UP:
return inverted_impulse_rc_track_90_deg_up;
case TRACK_ELEM_90_DEG_DOWN:
return inverted_impulse_rc_track_90_deg_down;
case TRACK_ELEM_60_DEG_UP_TO_90_DEG_UP:
return inverted_impulse_rc_track_60_deg_up_to_90_deg_up;
case TRACK_ELEM_90_DEG_DOWN_TO_60_DEG_DOWN:
return inverted_impulse_rc_track_90_deg_down_to_60_deg_down;
case TRACK_ELEM_90_DEG_UP_TO_60_DEG_UP:
return inverted_impulse_rc_track_90_deg_up_to_60_deg_up;
case TRACK_ELEM_60_DEG_DOWN_TO_90_DEG_DOWN:
return inverted_impulse_rc_track_60_deg_down_to_90_deg_down;
case TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_UP:
return inverted_impulse_rc_track_left_quarter_turn_1_90_deg_up;
case TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_UP:
return inverted_impulse_rc_track_right_quarter_turn_1_90_deg_up;
case TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_90_DEG_DOWN:
return inverted_impulse_rc_track_left_quarter_turn_1_90_deg_down;
case TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_90_DEG_DOWN:
return inverted_impulse_rc_track_right_quarter_turn_1_90_deg_down;
}
return NULL;
}

View File

@@ -6327,7 +6327,7 @@ const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[91] = {
get_track_paint_function_shop, // RIDE_TYPE_53
get_track_paint_function_shop, // RIDE_TYPE_54
0, // RIDE_TYPE_55
0, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
get_track_paint_function_inverted_impulse_rc, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
0, // RIDE_TYPE_MINI_ROLLER_COASTER
0, // RIDE_TYPE_MINE_RIDE
0, // RIDE_TYPE_59

View File

@@ -328,5 +328,6 @@ TRACK_PAINT_FUNCTION get_track_paint_function_magic_carpet(int trackType, int di
TRACK_PAINT_FUNCTION get_track_paint_function_submarine_ride(int trackType, int direction);
TRACK_PAINT_FUNCTION get_track_paint_function_river_rafts(int trackType, int direction);
TRACK_PAINT_FUNCTION get_track_paint_function_enterprise(int trackType, int direction);
TRACK_PAINT_FUNCTION get_track_paint_function_inverted_impulse_rc(int trackType, int direction);
#endif