From 09f0425c2f929f30935cfb7e9991bfb81e910646 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Wed, 17 May 2017 19:37:28 +0200 Subject: [PATCH] Unify River Rafts and Splash Boats drawing code --- OpenRCT2.xcodeproj/project.pbxproj | 6 - src/openrct2/ride/track_data.c | 2 +- src/openrct2/ride/track_paint.h | 1 - src/openrct2/ride/water/river_rafts.c | 609 ------------------------ src/openrct2/ride/water/splash_boats.c | 578 +++++++++++++++++++++- src/openrct2/ride/water/water_coaster.c | 6 +- test/testpaint/testpaint.vcxproj | 1 - 7 files changed, 577 insertions(+), 626 deletions(-) delete mode 100644 src/openrct2/ride/water/river_rafts.c diff --git a/OpenRCT2.xcodeproj/project.pbxproj b/OpenRCT2.xcodeproj/project.pbxproj index 82fb2485eb..bc60589784 100644 --- a/OpenRCT2.xcodeproj/project.pbxproj +++ b/OpenRCT2.xcodeproj/project.pbxproj @@ -118,7 +118,6 @@ C64FDAA71D6D9A2100F259B9 /* boat_ride.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9031CDBC3B7009F9BFC /* boat_ride.c */; }; C64FDAA81D6D9A2100F259B9 /* dingy_slide.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9041CDBC3B7009F9BFC /* dingy_slide.c */; }; C64FDAA91D6D9A2100F259B9 /* log_flume.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9051CDBC3B7009F9BFC /* log_flume.c */; }; - C64FDAAA1D6D9A2100F259B9 /* river_rafts.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9061CDBC3B7009F9BFC /* river_rafts.c */; }; C64FDAAB1D6D9A2100F259B9 /* river_rapids.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9071CDBC3B7009F9BFC /* river_rapids.c */; }; C64FDAAC1D6D9A2100F259B9 /* splash_boats.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9081CDBC3B7009F9BFC /* splash_boats.c */; }; C64FDAAD1D6D9A2100F259B9 /* submarine_ride.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9091CDBC3B7009F9BFC /* submarine_ride.c */; }; @@ -221,7 +220,6 @@ C686F94E1CDBC3B7009F9BFC /* boat_ride.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9031CDBC3B7009F9BFC /* boat_ride.c */; }; C686F94F1CDBC3B7009F9BFC /* dingy_slide.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9041CDBC3B7009F9BFC /* dingy_slide.c */; }; C686F9501CDBC3B7009F9BFC /* log_flume.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9051CDBC3B7009F9BFC /* log_flume.c */; }; - C686F9511CDBC3B7009F9BFC /* river_rafts.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9061CDBC3B7009F9BFC /* river_rafts.c */; }; C686F9521CDBC3B7009F9BFC /* river_rapids.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9071CDBC3B7009F9BFC /* river_rapids.c */; }; C686F9531CDBC3B7009F9BFC /* splash_boats.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9081CDBC3B7009F9BFC /* splash_boats.c */; }; C686F9541CDBC3B7009F9BFC /* submarine_ride.c in Sources */ = {isa = PBXBuildFile; fileRef = C686F9091CDBC3B7009F9BFC /* submarine_ride.c */; }; @@ -687,7 +685,6 @@ C686F9031CDBC3B7009F9BFC /* boat_ride.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = boat_ride.c; sourceTree = ""; }; C686F9041CDBC3B7009F9BFC /* dingy_slide.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dingy_slide.c; sourceTree = ""; }; C686F9051CDBC3B7009F9BFC /* log_flume.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = log_flume.c; sourceTree = ""; }; - C686F9061CDBC3B7009F9BFC /* river_rafts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = river_rafts.c; sourceTree = ""; }; C686F9071CDBC3B7009F9BFC /* river_rapids.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = river_rapids.c; sourceTree = ""; }; C686F9081CDBC3B7009F9BFC /* splash_boats.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = splash_boats.c; sourceTree = ""; }; C686F9091CDBC3B7009F9BFC /* submarine_ride.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = submarine_ride.c; sourceTree = ""; }; @@ -1492,7 +1489,6 @@ C686F9031CDBC3B7009F9BFC /* boat_ride.c */, C686F9041CDBC3B7009F9BFC /* dingy_slide.c */, C686F9051CDBC3B7009F9BFC /* log_flume.c */, - C686F9061CDBC3B7009F9BFC /* river_rafts.c */, C686F9071CDBC3B7009F9BFC /* river_rapids.c */, C686F9081CDBC3B7009F9BFC /* splash_boats.c */, C686F9091CDBC3B7009F9BFC /* submarine_ride.c */, @@ -2680,7 +2676,6 @@ C64FDAA71D6D9A2100F259B9 /* boat_ride.c in Sources */, C64FDAA81D6D9A2100F259B9 /* dingy_slide.c in Sources */, C64FDAA91D6D9A2100F259B9 /* log_flume.c in Sources */, - C64FDAAA1D6D9A2100F259B9 /* river_rafts.c in Sources */, C606CCC91DB4054000FE4015 /* Utils.cpp in Sources */, C64FDAAB1D6D9A2100F259B9 /* river_rapids.c in Sources */, C64FDAAC1D6D9A2100F259B9 /* splash_boats.c in Sources */, @@ -3037,7 +3032,6 @@ C686F9281CDBC3B7009F9BFC /* wild_mouse.c in Sources */, D44272701CC81B3200D84D28 /* music_credits.c in Sources */, D433A5021E4A861F00D9A6DF /* SawyerChunkWriter.cpp in Sources */, - C686F9511CDBC3B7009F9BFC /* river_rafts.c in Sources */, C686F90E1CDBC3B7009F9BFC /* corkscrew_roller_coaster.c in Sources */, D44272A61CC81B3200D84D28 /* scenery.c in Sources */, C686F9111CDBC3B7009F9BFC /* heartline_twister_coaster.c in Sources */, diff --git a/src/openrct2/ride/track_data.c b/src/openrct2/ride/track_data.c index 768b9f4a3f..11d7fe5544 100644 --- a/src/openrct2/ride/track_data.c +++ b/src/openrct2/ride/track_data.c @@ -6325,7 +6325,7 @@ const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[RIDE_TYPE_COUNT] = get_track_paint_function_inverted_hairpin_rc, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER get_track_paint_function_magic_carpet, // RIDE_TYPE_MAGIC_CARPET get_track_paint_function_submarine_ride, // RIDE_TYPE_SUBMARINE_RIDE - get_track_paint_function_river_rafts, // RIDE_TYPE_RIVER_RAFTS + get_track_paint_function_splash_boats, // RIDE_TYPE_RIVER_RAFTS get_track_paint_function_shop, // RIDE_TYPE_50 get_track_paint_function_enterprise, // RIDE_TYPE_ENTERPRISE get_track_paint_function_shop, // RIDE_TYPE_52 diff --git a/src/openrct2/ride/track_paint.h b/src/openrct2/ride/track_paint.h index bfa13de34f..4f3d0cf71c 100644 --- a/src/openrct2/ride/track_paint.h +++ b/src/openrct2/ride/track_paint.h @@ -384,7 +384,6 @@ TRACK_PAINT_FUNCTION get_track_paint_function_air_powered_vertical_rc(sint32 tra TRACK_PAINT_FUNCTION get_track_paint_function_inverted_hairpin_rc(sint32 trackType, sint32 direction); TRACK_PAINT_FUNCTION get_track_paint_function_magic_carpet(sint32 trackType, sint32 direction); TRACK_PAINT_FUNCTION get_track_paint_function_submarine_ride(sint32 trackType, sint32 direction); -TRACK_PAINT_FUNCTION get_track_paint_function_river_rafts(sint32 trackType, sint32 direction); TRACK_PAINT_FUNCTION get_track_paint_function_enterprise(sint32 trackType, sint32 direction); TRACK_PAINT_FUNCTION get_track_paint_function_inverted_impulse_rc(sint32 trackType, sint32 direction); TRACK_PAINT_FUNCTION get_track_paint_function_mini_rc(sint32 trackType, sint32 direction); diff --git a/src/openrct2/ride/water/river_rafts.c b/src/openrct2/ride/water/river_rafts.c deleted file mode 100644 index 0ba2f36128..0000000000 --- a/src/openrct2/ride/water/river_rafts.c +++ /dev/null @@ -1,609 +0,0 @@ -#pragma region Copyright (c) 2014-2016 OpenRCT2 Developers -/***************************************************************************** - * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. - * - * OpenRCT2 is the work of many authors, a full list can be found in contributors.md - * For more information, visit https://github.com/OpenRCT2/OpenRCT2 - * - * OpenRCT2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * A full copy of the GNU General Public License can be found in licence.txt - *****************************************************************************/ -#pragma endregion - -#include "../../common.h" -#include "../../interface/viewport.h" -#include "../../paint/supports.h" -#include "../../paint/paint.h" -#include "../track.h" -#include "../track_paint.h" - -enum { - SPR_RIVER_RAFTS_FLAT_TOP_SW_NE = 20820, - SPR_RIVER_RAFTS_FLAT_TOP_NW_SE = 20821, - SPR_RIVER_RAFTS_FLAT_TOP_NE_SW = 20822, - SPR_RIVER_RAFTS_FLAT_TOP_SE_NW = 20823, - - SPR_RIVER_RAFTS_FLAT_SIDE_SW_NE = 20824, - SPR_RIVER_RAFTS_FLAT_SIDE_NW_SE = 20825, - SPR_RIVER_RAFTS_FLAT_SIDE_NE_SW = 20826, - SPR_RIVER_RAFTS_FLAT_SIDE_SE_NW = 20827, - - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_0 = 20888, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_2 = 20889, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_3 = 20890, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_5 = 20891, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_6 = 20892, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_0 = 20893, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_2 = 20894, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_3 = 20895, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_5 = 20896, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_6 = 20897, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_0 = 20898, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_2 = 20899, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_3 = 20900, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_5 = 20901, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_6 = 20902, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_0 = 20903, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_2 = 20904, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_3 = 20905, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_5 = 20906, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_6 = 20907, - - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_0 = 20908, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_2 = 20909, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_3 = 20910, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_5 = 20911, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_6 = 20912, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_0 = 20913, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_2 = 20914, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_3 = 20915, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_5 = 20916, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_6 = 20917, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_0 = 20918, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_2 = 20919, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_3 = 20920, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_5 = 20921, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_6 = 20922, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_0 = 20923, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_2 = 20924, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_3 = 20925, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_5 = 20926, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_6 = 20927, - - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_6 = 20908, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_5 = 20909, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_3 = 20910, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_2 = 20911, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_0 = 20912, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_6 = 20913, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_5 = 20914, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_3 = 20915, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_2 = 20916, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_0 = 20917, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_6 = 20918, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_5 = 20919, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_3 = 20920, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_2 = 20921, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_0 = 20922, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_6 = 20923, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_5 = 20924, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_3 = 20925, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_2 = 20926, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_0 = 20927, - - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_6 = 20928, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_5 = 20929, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_3 = 20930, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_2 = 20931, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_0 = 20932, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_6 = 20933, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_5 = 20934, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_3 = 20935, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_2 = 20936, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_0 = 20937, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_6 = 20938, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_5 = 20939, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_3 = 20940, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_2 = 20941, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_0 = 20942, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_6 = 20943, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_5 = 20944, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_3 = 20945, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_2 = 20946, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_0 = 20947, - - SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_0 = 20948, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_1 = 20949, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_2 = 20950, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_3 = 20951, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_0 = 20952, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_1 = 20953, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_2 = 20954, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_3 = 20955, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_0 = 20956, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_1 = 20957, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_2 = 20958, - SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_3 = 20959, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_0 = 20960, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_1 = 20961, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_2 = 20962, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_3 = 20963, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_0 = 20964, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_1 = 20965, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_2 = 20966, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_3 = 20967, - SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_0 = 20968, - SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_1 = 20969, - SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_2 = 20970, - SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_3 = 20971, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_0 = 20972, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_1 = 20973, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_2 = 20974, - SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_3 = 20975, - SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_0 = 20976, - SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_1 = 20977, - SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_2 = 20978, - SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_3 = 20979, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_3 = 20980, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_2 = 20981, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_1 = 20982, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_0 = 20983, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_3 = 20984, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_2 = 20985, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_1 = 20986, - SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_0 = 20987, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_3 = 20988, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_2 = 20989, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_1 = 20990, - SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_0 = 20991, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_3 = 20992, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_2 = 20993, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_1 = 20994, - SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_0 = 20995, -}; - -static const sprite_bb RiverRaftsLeftQuarterTurn5_Top[4][5] = { - { - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_3, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_5, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 34, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SW_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_3, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NW_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_NE_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_TOP_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, - } -}; - -static const sprite_bb RiverRaftsLeftQuarterTurn5_Side[4][5] = { - { - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_3, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_5, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 34, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SW_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_3, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NW_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_3, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_NE_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_LEFT_5_SIDE_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, - } -}; - -static const sprite_bb RiverRaftsRightQuarterTurn5_Top[4][5] = { - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 34, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_3, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NW_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_TOP_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, - } -}; - -static const sprite_bb RiverRaftsRightQuarterTurn5_Side[4][5] = { - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 34, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_3, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, - }, - { - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, - SPR_RIVER_RAFTS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, - } -}; - -/** rct2: 0x0089B170 */ -static void paint_river_rafts_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - uint32 imageId; - - if (direction & 1) { - imageId = (direction == 1 ? SPR_RIVER_RAFTS_FLAT_TOP_NW_SE : SPR_RIVER_RAFTS_FLAT_TOP_SE_NW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 20, 32, 2, height, 6, 0, height, get_current_rotation()); - - imageId = (direction == 1 ? SPR_RIVER_RAFTS_FLAT_SIDE_NW_SE : SPR_RIVER_RAFTS_FLAT_SIDE_SE_NW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 1, 32, 26, height, 27, 0, height, get_current_rotation()); - } else { - imageId = (direction == 0 ? SPR_RIVER_RAFTS_FLAT_TOP_SW_NE : SPR_RIVER_RAFTS_FLAT_TOP_NE_SW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 32, 20, 2, height, 0, 6, height, get_current_rotation()); - - imageId = (direction == 0 ? SPR_RIVER_RAFTS_FLAT_SIDE_SW_NE : SPR_RIVER_RAFTS_FLAT_SIDE_NE_SW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 32, 1, 26, height, 0, 27, height, get_current_rotation()); - } - - wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - if (direction & 1) { - paint_util_push_tunnel_right(height, TUNNEL_6); - } else { - paint_util_push_tunnel_left(height, TUNNEL_6); - } - - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** rct2: 0x0089B1A0 */ -static void paint_river_rafts_station(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - rct_ride *ride = get_ride(rideIndex); - - if (direction & 1) { - uint32 imageId = (direction == 1 ? SPR_RIVER_RAFTS_FLAT_TOP_NW_SE : SPR_RIVER_RAFTS_FLAT_TOP_SE_NW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 20, 32, 1, height, 6, 0, height + 3, get_current_rotation()); - - imageId = SPR_STATION_BASE_B_NW_SE | gTrackColours[SCHEME_MISC]; - sub_98196C(imageId, 0, 0, 32, 32, 1, height, get_current_rotation()); - } else { - uint32 imageId = (direction == 0 ? SPR_RIVER_RAFTS_FLAT_TOP_SW_NE : SPR_RIVER_RAFTS_FLAT_TOP_NE_SW) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 32, 20, 1, height, 0, 6, height + 3, get_current_rotation()); - - imageId = SPR_STATION_BASE_B_SW_NE | gTrackColours[SCHEME_MISC]; - sub_98196C(imageId, 0, 0, 32, 32, 1, height, get_current_rotation()); - } - - wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - track_paint_util_draw_station_platform(ride, direction, height, 7, mapElement); - - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** rct2: 0x0089B1D0 */ -static void paint_river_rafts_track_left_quarter_turn_5_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsLeftQuarterTurn5_Top); - track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsLeftQuarterTurn5_Side); - - if (trackSequence != 1 && trackSequence != 4) { - static const uint8 supportTypes[][7] = { - { 0, 0xFF, 5, 3, 0xFF, 5, 1 }, - { 1, 0xFF, 2, 4, 0xFF, 2, 0 }, - { 0, 0xFF, 3, 5, 0xFF, 3, 1 }, - { 1, 0xFF, 4, 2, 0xFF, 4, 0 }, - }; - uint8 supportType = supportTypes[direction][trackSequence]; - wooden_a_supports_paint_setup(supportType, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - } - - switch (trackSequence) { - case 0: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; - case 1: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); break; - case 2: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C8 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_B4 | SEGMENT_B8 | SEGMENT_D0, direction), 0xFFFF, 0); break; - case 3: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_CC | SEGMENT_D4 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_B4 | SEGMENT_C0 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); break; - case 4: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); break; - case 5: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C8 | SEGMENT_C4 | SEGMENT_D4 | SEGMENT_D0 | SEGMENT_C0 | SEGMENT_B8, direction), 0xFFFF, 0); break; - case 6: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; - } - - switch (trackSequence) { - case 0: - if (direction == 0 || direction == 3) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - break; - case 6: - if (direction == 2 || direction == 3) { - paint_util_push_tunnel_rotated(direction ^ 1, height, TUNNEL_6); - } - break; - } - - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** rct2: 0x0089B1D0 */ -static void paint_river_rafts_track_right_quarter_turn_5_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsRightQuarterTurn5_Top); - track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsRightQuarterTurn5_Side); - - if (trackSequence != 1 && trackSequence != 4) { - static const uint8 supportTypes[][7] = { - { 0, 0xFF, 4, 2, 0xFF, 4, 1 }, - { 1, 0xFF, 5, 3, 0xFF, 5, 0 }, - { 0, 0xFF, 2, 4, 0xFF, 2, 1 }, - { 1, 0xFF, 3, 5, 0xFF, 3, 0 }, - }; - uint8 supportType = supportTypes[direction][trackSequence]; - wooden_a_supports_paint_setup(supportType, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - } - - switch (trackSequence) { - case 0: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; - case 1: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); break; - case 2: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_D4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 0xFFFF, 0); break; - case 3: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_C4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); break; - case 4: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); break; - case 5: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D4 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 0xFFFF, 0); break; - case 6: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; - } - - switch (trackSequence) { - case 0: - if (direction == 0 || direction == 3) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - break; - case 6: - if (direction == 0 || direction == 1) { - paint_util_push_tunnel_rotated(direction ^ 1, height, TUNNEL_6); - } - break; - } - - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** rct2: 0x0089B180 */ -static void paint_river_rafts_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - static const uint32 imageIds[4][4][2] = - { - { { SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_0 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_NW_NE_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_3 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_0 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_SW_NW_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_3 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_3 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_SE_SW_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_NW_NE_SEQ_0 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_3 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_NE_SE_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NW_SW_NW_SEQ_0 } }, - }; - - uint32 imageId = imageIds[direction][trackSequence][0] | gTrackColours[SCHEME_TRACK]; - uint32 frontImageId = imageIds[direction][trackSequence][1] | gTrackColours[SCHEME_TRACK]; - sint16 bboy; - - switch (trackSequence) { - case 0: - sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - break; - case 1: - bboy = (direction == 0 || direction == 1) ? 0 : 6; - sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); - - static const sint32 supportTypes1[] = { 5, 2, 3, 4 }; - wooden_a_supports_paint_setup(supportTypes1[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); - break; - case 2: - bboy = (direction == 2 || direction == 3) ? 0 : 6; - sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); - - static const sint32 supportTypes2[] = { 3, 4, 5, 2 }; - wooden_a_supports_paint_setup(supportTypes2[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); - break; - case 3: - sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - break; - } - - if (trackSequence == 0) { - if (direction == 0 || direction == 3) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - } else if (trackSequence == 3) { - if (direction == 1 || direction == 2) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - } - - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** rct2: 0x0089B190 */ -static void paint_river_rafts_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) -{ - static const uint32 imageIds[4][4][2] = - { - { { SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_0 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NE_SE_NE_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_3 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_0 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SE_SW_SE_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_3 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_3 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_SW_NW_SW_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_NE_SE_NE_SEQ_0 } }, - { { SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_0, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_3 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_1, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_2 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_2, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_1 }, - { SPR_RIVER_RAFTS_S_BEND_TOP_NW_NE_NW_SEQ_3, SPR_RIVER_RAFTS_S_BEND_SIDE_SE_SW_SE_SEQ_0 } }, - }; - - uint32 imageId = imageIds[direction][trackSequence][0] | gTrackColours[SCHEME_TRACK]; - uint32 frontImageId = imageIds[direction][trackSequence][1] | gTrackColours[SCHEME_TRACK]; - sint16 bboy; - - switch (trackSequence) { - case 0: - sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - break; - case 1: - bboy = (direction == 2 || direction == 3) ? 0 : 6; - sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); - - static const sint32 supportTypes1[] = { 4, 5, 2, 3 }; - wooden_a_supports_paint_setup(supportTypes1[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); - break; - case 2: - bboy = (direction == 0 || direction == 1) ? 0 : 6; - sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); - - static const sint32 supportTypes2[] = { 2, 3, 4, 5 }; - wooden_a_supports_paint_setup(supportTypes2[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - - paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); - break; - case 3: - sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - break; - } - - if (trackSequence == 0) { - if (direction == 0 || direction == 3) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - } else if (trackSequence == 3) { - if (direction == 1 || direction == 2) { - paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); - } - } - - paint_util_set_general_support_height(height + 32, 0x20); -} - -/** - * rct2: 0x0089B0C0 - */ -TRACK_PAINT_FUNCTION get_track_paint_function_river_rafts(sint32 trackType, sint32 direction) -{ - switch (trackType) { - case TRACK_ELEM_FLAT: return paint_river_rafts_track_flat; - - case TRACK_ELEM_END_STATION: - case TRACK_ELEM_BEGIN_STATION: - case TRACK_ELEM_MIDDLE_STATION: - return paint_river_rafts_station; - - case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES: return paint_river_rafts_track_left_quarter_turn_5_tiles; - case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES: return paint_river_rafts_track_right_quarter_turn_5_tiles; - - case TRACK_ELEM_S_BEND_LEFT: return paint_river_rafts_track_s_bend_left; - case TRACK_ELEM_S_BEND_RIGHT: return paint_river_rafts_track_s_bend_right; - } - return NULL; -} diff --git a/src/openrct2/ride/water/splash_boats.c b/src/openrct2/ride/water/splash_boats.c index 06942a85c2..5f0bbb74b8 100644 --- a/src/openrct2/ride/water/splash_boats.c +++ b/src/openrct2/ride/water/splash_boats.c @@ -1,4 +1,4 @@ -#pragma region Copyright (c) 2014-2016 OpenRCT2 Developers +#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers /***************************************************************************** * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. * @@ -24,6 +24,16 @@ #include "../vehicle_paint.h" enum { + SPR_SPLASH_BOATS_FLAT_TOP_SW_NE = 20820, + SPR_SPLASH_BOATS_FLAT_TOP_NW_SE = 20821, + SPR_SPLASH_BOATS_FLAT_TOP_NE_SW = 20822, + SPR_SPLASH_BOATS_FLAT_TOP_SE_NW = 20823, + + SPR_SPLASH_BOATS_FLAT_SIDE_SW_NE = 20824, + SPR_SPLASH_BOATS_FLAT_SIDE_NW_SE = 20825, + SPR_SPLASH_BOATS_FLAT_SIDE_NE_SW = 20826, + SPR_SPLASH_BOATS_FLAT_SIDE_SE_NW = 20827, + SPR_SPLASH_BOATS_FLAT_TO_25_DEG_UP_SW_NE = 20828, SPR_SPLASH_BOATS_FLAT_TO_25_DEG_UP_NW_SE = 20829, SPR_SPLASH_BOATS_FLAT_TO_25_DEG_UP_NE_SW = 20830, @@ -84,6 +94,139 @@ enum { SPR_SPLASH_BOATS_60_DEG_UP_FRONT_NW_SE = 20885, SPR_SPLASH_BOATS_60_DEG_UP_FRONT_NE_SW = 20886, SPR_SPLASH_BOATS_60_DEG_UP_FRONT_SE_NW = 20887, + + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_0 = 20888, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_2 = 20889, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_3 = 20890, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_5 = 20891, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_6 = 20892, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_0 = 20893, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_2 = 20894, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_3 = 20895, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_5 = 20896, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_6 = 20897, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_0 = 20898, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_2 = 20899, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_3 = 20900, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_5 = 20901, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_6 = 20902, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_0 = 20903, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_2 = 20904, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_3 = 20905, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_5 = 20906, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_6 = 20907, + + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_0 = 20908, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_2 = 20909, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_3 = 20910, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_5 = 20911, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_6 = 20912, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_0 = 20913, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_2 = 20914, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_3 = 20915, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_5 = 20916, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_6 = 20917, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_0 = 20918, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_2 = 20919, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_3 = 20920, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_5 = 20921, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_6 = 20922, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_0 = 20923, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_2 = 20924, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_3 = 20925, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_5 = 20926, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_6 = 20927, + + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_6 = 20908, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_5 = 20909, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_3 = 20910, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_2 = 20911, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_0 = 20912, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_6 = 20913, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_5 = 20914, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_3 = 20915, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_2 = 20916, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_0 = 20917, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_6 = 20918, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_5 = 20919, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_3 = 20920, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_2 = 20921, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_0 = 20922, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_6 = 20923, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_5 = 20924, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_3 = 20925, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_2 = 20926, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_0 = 20927, + + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_6 = 20928, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_5 = 20929, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_3 = 20930, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_2 = 20931, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_0 = 20932, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_6 = 20933, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_5 = 20934, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_3 = 20935, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_2 = 20936, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_0 = 20937, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_6 = 20938, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_5 = 20939, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_3 = 20940, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_2 = 20941, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_0 = 20942, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_6 = 20943, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_5 = 20944, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_3 = 20945, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_2 = 20946, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_0 = 20947, + + SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_0 = 20948, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_1 = 20949, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_2 = 20950, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_3 = 20951, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_0 = 20952, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_1 = 20953, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_2 = 20954, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_3 = 20955, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_0 = 20956, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_1 = 20957, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_2 = 20958, + SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_3 = 20959, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_0 = 20960, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_1 = 20961, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_2 = 20962, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_3 = 20963, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 = 20964, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 = 20965, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 = 20966, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 = 20967, + SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 = 20968, + SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 = 20969, + SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 = 20970, + SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 = 20971, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 = 20972, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 = 20973, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 = 20974, + SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 = 20975, + SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 = 20976, + SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 = 20977, + SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 = 20978, + SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 = 20979, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_3 = 20980, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_2 = 20981, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_1 = 20982, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_0 = 20983, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_3 = 20984, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_2 = 20985, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_1 = 20986, + SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_0 = 20987, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_3 = 20988, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_2 = 20989, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_1 = 20990, + SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_0 = 20991, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_3 = 20992, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_2 = 20993, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_1 = 20994, + SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_0 = 20995, }; uint32 SplashBoats25DegUpImageId[4] = @@ -230,6 +373,131 @@ uint32 SplashBoats25DegDownToFlatFrontImageId[4] = SPR_SPLASH_BOATS_FLAT_TO_25_DEG_UP_FRONT_NW_SE, }; +static const sprite_bb RiverRaftsLeftQuarterTurn5_Top[4][5] = { + { + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_3, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_5, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 34, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SW_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_3, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NW_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_NE_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_TOP_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, + } +}; + +static const sprite_bb RiverRaftsLeftQuarterTurn5_Side[4][5] = { + { + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_3, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_5, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 34, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SW_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_3, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NW_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_3, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_NE_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_LEFT_5_SIDE_SE_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, + } +}; + +static const sprite_bb RiverRaftsRightQuarterTurn5_Top[4][5] = { + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 34, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_3, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NW_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_TOP_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 }, + } +}; + +static const sprite_bb RiverRaftsRightQuarterTurn5_Side[4][5] = { + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 34, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_3, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NW_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, + }, + { + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 }, + SPR_SPLASH_BOATS_TURN_RIGHT_5_SIDE_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 }, + } +}; + + static void paint_splash_boats_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element *mapElement) { uint32 imageId = SplashBoats25DegUpImageId[direction] | gTrackColours[SCHEME_TRACK]; @@ -419,6 +687,303 @@ static void paint_splash_boats_track_25_deg_down_to_flat(uint8 rideIndex, uint8 paint_util_set_general_support_height(height + 48, 0x20); } +/** Start of elements originally from River Rafts */ +/** rct2: 0x0089B170 */ +static void paint_splash_boats_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + uint32 imageId; + + if (direction & 1) { + imageId = (direction == 1 ? SPR_SPLASH_BOATS_FLAT_TOP_NW_SE : SPR_SPLASH_BOATS_FLAT_TOP_SE_NW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 20, 32, 2, height, 6, 0, height, get_current_rotation()); + + imageId = (direction == 1 ? SPR_SPLASH_BOATS_FLAT_SIDE_NW_SE : SPR_SPLASH_BOATS_FLAT_SIDE_SE_NW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 1, 32, 26, height, 27, 0, height, get_current_rotation()); + } else { + imageId = (direction == 0 ? SPR_SPLASH_BOATS_FLAT_TOP_SW_NE : SPR_SPLASH_BOATS_FLAT_TOP_NE_SW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 32, 20, 2, height, 0, 6, height, get_current_rotation()); + + imageId = (direction == 0 ? SPR_SPLASH_BOATS_FLAT_SIDE_SW_NE : SPR_SPLASH_BOATS_FLAT_SIDE_NE_SW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 32, 1, 26, height, 0, 27, height, get_current_rotation()); + } + + wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction & 1) { + paint_util_push_tunnel_right(height, TUNNEL_6); + } else { + paint_util_push_tunnel_left(height, TUNNEL_6); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +/** rct2: 0x0089B1A0 */ +static void paint_splash_boats_station(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + rct_ride *ride = get_ride(rideIndex); + + if (direction & 1) { + uint32 imageId = (direction == 1 ? SPR_SPLASH_BOATS_FLAT_TOP_NW_SE : SPR_SPLASH_BOATS_FLAT_TOP_SE_NW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 20, 32, 1, height, 6, 0, height + 3, get_current_rotation()); + + imageId = SPR_STATION_BASE_B_NW_SE | gTrackColours[SCHEME_MISC]; + sub_98196C(imageId, 0, 0, 32, 32, 1, height, get_current_rotation()); + } else { + uint32 imageId = (direction == 0 ? SPR_SPLASH_BOATS_FLAT_TOP_SW_NE : SPR_SPLASH_BOATS_FLAT_TOP_NE_SW) | gTrackColours[SCHEME_TRACK]; + sub_98197C(imageId, 0, 0, 32, 20, 1, height, 0, 6, height + 3, get_current_rotation()); + + imageId = SPR_STATION_BASE_B_SW_NE | gTrackColours[SCHEME_MISC]; + sub_98196C(imageId, 0, 0, 32, 32, 1, height, get_current_rotation()); + } + + wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + track_paint_util_draw_station_platform(ride, direction, height, 7, mapElement); + + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +/** rct2: 0x0089B1D0 */ +static void paint_splash_boats_track_left_quarter_turn_5_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsLeftQuarterTurn5_Top); + track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsLeftQuarterTurn5_Side); + + if (trackSequence != 1 && trackSequence != 4) { + static const uint8 supportTypes[][7] = { + { 0, 0xFF, 5, 3, 0xFF, 5, 1 }, + { 1, 0xFF, 2, 4, 0xFF, 2, 0 }, + { 0, 0xFF, 3, 5, 0xFF, 3, 1 }, + { 1, 0xFF, 4, 2, 0xFF, 4, 0 }, + }; + uint8 supportType = supportTypes[direction][trackSequence]; + wooden_a_supports_paint_setup(supportType, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + } + + switch (trackSequence) { + case 0: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; + case 1: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); break; + case 2: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C8 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_B4 | SEGMENT_B8 | SEGMENT_D0, direction), 0xFFFF, 0); break; + case 3: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_CC | SEGMENT_D4 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_B4 | SEGMENT_C0 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); break; + case 4: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); break; + case 5: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C8 | SEGMENT_C4 | SEGMENT_D4 | SEGMENT_D0 | SEGMENT_C0 | SEGMENT_B8, direction), 0xFFFF, 0); break; + case 6: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; + } + + switch (trackSequence) { + case 0: + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + break; + case 6: + if (direction == 2 || direction == 3) { + paint_util_push_tunnel_rotated(direction ^ 1, height, TUNNEL_6); + } + break; + } + + paint_util_set_general_support_height(height + 32, 0x20); +} + +/** rct2: 0x0089B1D0 */ +static void paint_splash_boats_track_right_quarter_turn_5_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsRightQuarterTurn5_Top); + track_paint_util_right_quarter_turn_5_tiles_paint_2(height, direction, get_current_rotation(), trackSequence, gTrackColours[SCHEME_TRACK], RiverRaftsRightQuarterTurn5_Side); + + if (trackSequence != 1 && trackSequence != 4) { + static const uint8 supportTypes[][7] = { + { 0, 0xFF, 4, 2, 0xFF, 4, 1 }, + { 1, 0xFF, 5, 3, 0xFF, 5, 0 }, + { 0, 0xFF, 2, 4, 0xFF, 2, 1 }, + { 1, 0xFF, 3, 5, 0xFF, 3, 0 }, + }; + uint8 supportType = supportTypes[direction][trackSequence]; + wooden_a_supports_paint_setup(supportType, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + } + + switch (trackSequence) { + case 0: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; + case 1: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); break; + case 2: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_D4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 0xFFFF, 0); break; + case 3: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_C4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); break; + case 4: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); break; + case 5: paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D4 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 0xFFFF, 0); break; + case 6: paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); break; + } + + switch (trackSequence) { + case 0: + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + break; + case 6: + if (direction == 0 || direction == 1) { + paint_util_push_tunnel_rotated(direction ^ 1, height, TUNNEL_6); + } + break; + } + + paint_util_set_general_support_height(height + 32, 0x20); +} + +/** rct2: 0x0089B180 */ +static void paint_splash_boats_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4][2] = + { + { { SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_NW_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_SW_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_3 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_SE_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_NW_NE_SEQ_0 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_3 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_NE_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NW_SW_NW_SEQ_0 } }, + }; + + uint32 imageId = imageIds[direction][trackSequence][0] | gTrackColours[SCHEME_TRACK]; + uint32 frontImageId = imageIds[direction][trackSequence][1] | gTrackColours[SCHEME_TRACK]; + sint16 bboy; + + switch (trackSequence) { + case 0: + sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + break; + case 1: + bboy = (direction == 0 || direction == 1) ? 0 : 6; + sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); + + static const sint32 supportTypes1[] = { 5, 2, 3, 4 }; + wooden_a_supports_paint_setup(supportTypes1[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + break; + case 2: + bboy = (direction == 2 || direction == 3) ? 0 : 6; + sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); + + static const sint32 supportTypes2[] = { 3, 4, 5, 2 }; + wooden_a_supports_paint_setup(supportTypes2[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + break; + case 3: + sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + break; + } + + if (trackSequence == 0) { + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + } else if (trackSequence == 3) { + if (direction == 1 || direction == 2) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + } + + paint_util_set_general_support_height(height + 32, 0x20); +} + +/** rct2: 0x0089B190 */ +static void paint_splash_boats_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, uint8 direction, sint32 height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4][2] = + { + { { SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NE_SE_NE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SE_SW_SE_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_3 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_SW_NW_SW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_NE_SE_NE_SEQ_0 } }, + { { SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_0, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_3 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_1, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_2 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_2, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_1 }, + { SPR_SPLASH_BOATS_S_BEND_TOP_NW_NE_NW_SEQ_3, SPR_SPLASH_BOATS_S_BEND_SIDE_SE_SW_SE_SEQ_0 } }, + }; + + uint32 imageId = imageIds[direction][trackSequence][0] | gTrackColours[SCHEME_TRACK]; + uint32 frontImageId = imageIds[direction][trackSequence][1] | gTrackColours[SCHEME_TRACK]; + sint16 bboy; + + switch (trackSequence) { + case 0: + sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + break; + case 1: + bboy = (direction == 2 || direction == 3) ? 0 : 6; + sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); + + static const sint32 supportTypes1[] = { 4, 5, 2, 3 }; + wooden_a_supports_paint_setup(supportTypes1[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + break; + case 2: + bboy = (direction == 0 || direction == 1) ? 0 : 6; + sub_98197C_rotated(direction, imageId, 0, 0, 32, 26, 2, height, 0, bboy, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 26, 0, height, 0, bboy, height + 27); + + static const sint32 supportTypes2[] = { 2, 3, 4, 5 }; + wooden_a_supports_paint_setup(supportTypes2[direction], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + break; + case 3: + sub_98197C_rotated(direction, imageId, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, frontImageId, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + break; + } + + if (trackSequence == 0) { + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + } else if (trackSequence == 3) { + if (direction == 1 || direction == 2) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + } + + paint_util_set_general_support_height(height + 32, 0x20); +} + TRACK_PAINT_FUNCTION get_track_paint_function_splash_boats(sint32 trackType, sint32 direction) { switch (trackType) { @@ -447,18 +1012,21 @@ TRACK_PAINT_FUNCTION get_track_paint_function_splash_boats(sint32 trackType, sin case TRACK_ELEM_25_DEG_DOWN_TO_FLAT: return paint_splash_boats_track_25_deg_down_to_flat; - ////////////////////////////////////////////////////// - // Use River Rafts - ////////////////////////////////////////////////////// + // Originally taken from River Rafts case TRACK_ELEM_FLAT: + return paint_splash_boats_track_flat; case TRACK_ELEM_END_STATION: case TRACK_ELEM_BEGIN_STATION: case TRACK_ELEM_MIDDLE_STATION: + return paint_splash_boats_station; case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES: + return paint_splash_boats_track_left_quarter_turn_5_tiles; case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES: + return paint_splash_boats_track_right_quarter_turn_5_tiles; case TRACK_ELEM_S_BEND_LEFT: + return paint_splash_boats_track_s_bend_left; case TRACK_ELEM_S_BEND_RIGHT: - return get_track_paint_function_river_rafts(trackType, direction); + return paint_splash_boats_track_s_bend_right; } return NULL; diff --git a/src/openrct2/ride/water/water_coaster.c b/src/openrct2/ride/water/water_coaster.c index cbb49b50fc..cdee864791 100644 --- a/src/openrct2/ride/water/water_coaster.c +++ b/src/openrct2/ride/water/water_coaster.c @@ -362,11 +362,11 @@ TRACK_PAINT_FUNCTION get_track_paint_function_water_rc(sint32 trackType, sint32 // Use River Rafts ////////////////////////////////////////////////////// case TRACK_ELEM_FLAT_COVERED: - return get_track_paint_function_river_rafts(TRACK_ELEM_FLAT, direction); + return get_track_paint_function_splash_boats(TRACK_ELEM_FLAT, direction); case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_COVERED: - return get_track_paint_function_river_rafts(TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES, direction); + return get_track_paint_function_splash_boats(TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES, direction); case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_COVERED: - return get_track_paint_function_river_rafts(TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES, direction); + return get_track_paint_function_splash_boats(TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES, direction); } return NULL; } diff --git a/test/testpaint/testpaint.vcxproj b/test/testpaint/testpaint.vcxproj index 91b1d91fd7..52b98206e9 100644 --- a/test/testpaint/testpaint.vcxproj +++ b/test/testpaint/testpaint.vcxproj @@ -170,7 +170,6 @@ -