From d199329d0fed6c461f09d1b27f9642b9ecb079a2 Mon Sep 17 00:00:00 2001 From: zsilencer Date: Sun, 8 May 2016 18:10:37 -0600 Subject: [PATCH] Decompile vehicle_visual_splash_boats_or_water_coaster --- src/ride/vehicle_paint.c | 2 +- src/ride/vehicle_paint.h | 1 + src/ride/water/splash_boats.c | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ride/vehicle_paint.c b/src/ride/vehicle_paint.c index 7ce611ca13..f8562934e7 100644 --- a/src/ride/vehicle_paint.c +++ b/src/ride/vehicle_paint.c @@ -947,7 +947,7 @@ void vehicle_paint(rct_vehicle *vehicle, int imageDirection) case VEHICLE_VISUAL_MINI_GOLF_PLAYER: RCT2_CALLPROC_X(0x006D42F0, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break; case VEHICLE_VISUAL_MINI_GOLF_BALL: RCT2_CALLPROC_X(0x006D43C6, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break; case VEHICLE_VISUAL_REVERSER: RCT2_CALLPROC_X(0x006D4453, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break; - case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER: RCT2_CALLPROC_X(0x006D4295, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break; + case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER: vehicle_visual_splash_boats_or_water_coaster(x, imageDirection, y, z, vehicle, vehicleEntry); break; case VEHICLE_VISUAL_ROTO_DROP: vehicle_visual_roto_drop(x, imageDirection, y, z, vehicle, vehicleEntry); break; case 10: RCT2_CALLPROC_X(0x006D5600, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break; case VEHICLE_VISUAL_SPLASH_EFFECT: vehicle_visual_splash_effect(x, imageDirection, y, z, vehicle, vehicleEntry); break; diff --git a/src/ride/vehicle_paint.h b/src/ride/vehicle_paint.h index 2dce100bc5..205d3e178e 100644 --- a/src/ride/vehicle_paint.h +++ b/src/ride/vehicle_paint.h @@ -35,6 +35,7 @@ void vehicle_paint(rct_vehicle *vehicle, int imageDirection); void vehicle_visual_roto_drop(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); void vehicle_visual_observation_tower(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); void vehicle_visual_river_rapids(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); +void vehicle_visual_splash_boats_or_water_coaster(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); void vehicle_visual_launched_freefall(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); void vehicle_visual_splash_effect(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); void vehicle_visual_virginia_reel(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry); diff --git a/src/ride/water/splash_boats.c b/src/ride/water/splash_boats.c index 846fd9695d..3136f31bdf 100644 --- a/src/ride/water/splash_boats.c +++ b/src/ride/water/splash_boats.c @@ -13,3 +13,28 @@ * A full copy of the GNU General Public License can be found in licence.txt *****************************************************************************/ #pragma endregion + +#include "../../addresses.h" +#include "../../config.h" +#include "../../interface/viewport.h" +#include "../../world/sprite.h" +#include "../../paint/paint.h" +#include "../vehicle_paint.h" + +/** + * + * rct2: 0x006D4295 + */ +void vehicle_visual_splash_boats_or_water_coaster(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry) +{ + if (vehicle->is_child) { + vehicle = &g_sprite_list[vehicle->prev_vehicle_on_ride].vehicle; + } else { + vehicle = &g_sprite_list[vehicle->next_vehicle_on_ride].vehicle; + } + RCT2_GLOBAL(0x009DE578, rct_vehicle*) = vehicle; + imageDirection = ((get_current_rotation() * 8) + vehicle->sprite_direction) & 0x1F; + RCT2_GLOBAL(0x9DE568, sint16) = vehicle->x; + RCT2_GLOBAL(0x9DE56C, sint16) = vehicle->y; + vehicle_paint(vehicle, imageDirection); +}