From 8c6e5cd9aedcc97458a7d77b0be89c7030c168bb Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Sat, 2 Apr 2016 23:51:32 +0100 Subject: [PATCH] fix #3224: Maze designs clear fences and walls --- src/ride/ride.c | 9 +++++---- src/ride/track.c | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ride/ride.c b/src/ride/ride.c index 45f79b5c4a..ef667a2cc7 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -5592,9 +5592,10 @@ int ride_get_refund_price(int ride_id) continue; } + // Using GAME_COMMAND_FLAG_2 for below commands as a HACK to stop fences from being removed RCT2_GLOBAL(0x00F4413A, money32) += game_do_command( x, - GAME_COMMAND_FLAG_APPLY | (0 << 8), + GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_2 | (0 << 8), y, ride_id | (2 << 8), GAME_COMMAND_SET_MAZE_TRACK, @@ -5603,7 +5604,7 @@ int ride_get_refund_price(int ride_id) RCT2_GLOBAL(0x00F4413A, money32) += game_do_command( x, - GAME_COMMAND_FLAG_APPLY | (1 << 8), + GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_2 | (1 << 8), y + 16, ride_id | (2 << 8), GAME_COMMAND_SET_MAZE_TRACK, @@ -5612,7 +5613,7 @@ int ride_get_refund_price(int ride_id) RCT2_GLOBAL(0x00F4413A, money32) += game_do_command( x + 16, - GAME_COMMAND_FLAG_APPLY | (2 << 8), + GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_2 | (2 << 8), y + 16, ride_id | (2 << 8), GAME_COMMAND_SET_MAZE_TRACK, @@ -5621,7 +5622,7 @@ int ride_get_refund_price(int ride_id) RCT2_GLOBAL(0x00F4413A, money32) += game_do_command( x + 16, - GAME_COMMAND_FLAG_APPLY | (3 << 8), + GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_2 | (3 << 8), y, ride_id | (2 << 8), GAME_COMMAND_SET_MAZE_TRACK, diff --git a/src/ride/track.c b/src/ride/track.c index 71ecf9af9e..3642609953 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -3420,7 +3420,7 @@ money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry, sint16 } if (flags & GAME_COMMAND_FLAG_APPLY) { - if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) { + if (!(flags & GAME_COMMAND_FLAG_GHOST)) { footpath_remove_litter(x, y, z); map_remove_walls_at(floor2(x, 32), floor2(y, 32), z, z + 32); } @@ -5242,7 +5242,7 @@ money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 r } if ((flags & GAME_COMMAND_FLAG_APPLY) != 0) { - if ((flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) == 0) { + if (!(flags & GAME_COMMAND_FLAG_GHOST) && !(flags & GAME_COMMAND_FLAG_2)) { footpath_remove_litter(x, y, z); map_remove_walls_at(floor2(x, 32), floor2(y, 32), z, z + 32); }