From a3a8484059005205adc9acada902ea6ffbabe9f2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 17 Sep 2016 19:54:44 +0200 Subject: [PATCH] Complete integration of 0x009A3B04 --- src/ride/vehicle.c | 6 ++++-- src/world/duck.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ride/vehicle.c b/src/ride/vehicle.c index 597f70d853..897e5a9817 100644 --- a/src/ride/vehicle.c +++ b/src/ride/vehicle.c @@ -6998,6 +6998,8 @@ static void sub_6DB807(rct_vehicle *vehicle) sprite_move(x, y, z, (rct_sprite*)vehicle); } +extern const rct_xy16 duck_move_offset[]; + /** * Collision Detection * rct2: 0x006DD078 @@ -7100,8 +7102,8 @@ static bool vehicle_update_motion_collision_detection( if (direction < 0x14) continue; - uint32 next_x_diff = abs(x + RCT2_ADDRESS(0x009A3B04, sint16)[((4 + vehicle->sprite_direction) >> 3) * 2] - collideVehicle->x); - uint32 next_y_diff = abs(y + RCT2_ADDRESS(0x009A3B06, sint16)[((4 + vehicle->sprite_direction) >> 3) * 2] - collideVehicle->y); + uint32 next_x_diff = abs(x + duck_move_offset[(4 + vehicle->sprite_direction) >> 3].x - collideVehicle->x); + uint32 next_y_diff = abs(y + duck_move_offset[(4 + vehicle->sprite_direction) >> 3].y - collideVehicle->y); if (next_x_diff + next_y_diff < x_diff + y_diff){ mayCollide = true; diff --git a/src/world/duck.c b/src/world/duck.c index 20fe8da091..ebafc1caf2 100644 --- a/src/world/duck.c +++ b/src/world/duck.c @@ -35,7 +35,7 @@ static void duck_update_double_drink(rct_duck *duck); static void duck_update_fly_away(rct_duck *duck); // rct2: 0x009A3B04 -static const rct_xy16 duck_move_offset[] = { +const rct_xy16 duck_move_offset[] = { { -1, 0 }, { 0, 1 }, { 1, 0 },