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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user