fix #3224: Maze designs clear fences and walls

This commit is contained in:
IntelOrca 2016-04-02 23:51:32 +01:00
parent d626d9d5f2
commit 8c6e5cd9ae
2 changed files with 7 additions and 6 deletions

View File

@ -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,

View File

@ -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);
}