diff --git a/src/ride/track.c b/src/ride/track.c index cf01633a9a..0d46dc8bff 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -1913,8 +1913,8 @@ int sub_6D01B3(uint8 bl, uint8 rideIndex, int x, int y, int z) //0x6D0FE6 if (RCT2_GLOBAL(0x00F440D4, uint8) == 0){ - RCT2_GLOBAL(0x009DE58A, uint16) |= 0x6; - RCT2_GLOBAL(0x009DE58A, uint16) &= ~(1 << 3); + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) |= 0x6; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~(1 << 3); map_invalidate_map_selection_tiles(); } @@ -2587,8 +2587,8 @@ int maze_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* track_ // no need since global vars not used sub_6D01B3(0, 0, 4096, 4096, 0); - RCT2_GLOBAL(0x009DE58A, sint16) &= 0xFFF9; - RCT2_GLOBAL(0x009DE58A, sint16) &= 0xFFF7; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF9; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF7; x = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) - RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16); @@ -2846,8 +2846,8 @@ int tracked_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* tra RCT2_GLOBAL(0x00F44144, sint16) = start_y; RCT2_GLOBAL(0x00F44146, sint16) = start_z; - RCT2_GLOBAL(0x009DE58A, sint16) &= 0xFFF9; - RCT2_GLOBAL(0x009DE58A, sint16) &= 0xFFF7; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF9; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF7; x = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) - RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16); diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index 15eaef3b6d..9a07407735 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -203,6 +203,7 @@ rct_window *window_construction_open() return w; } +/* rct2: 0x006C845D */ void window_construction_close() { rct_window *w; @@ -214,7 +215,11 @@ void window_construction_close() viewport_set_visibility(0); map_invalidate_map_selection_tiles(); - RCT2_GLOBAL(0x9DE58A, uint16) &= 0xFFFD; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~(1 << 1); + + // In order to cancel the yellow arrow correctly the + // selection tool should be cancelled. + tool_cancel(); hide_gridlines(); @@ -242,7 +247,11 @@ void window_construction_maze_close(){ viewport_set_visibility(0); map_invalidate_map_selection_tiles(); - RCT2_GLOBAL(0x9DE58A, uint16) &= 0xFFFD; + RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~(1 << 1); + + // In order to cancel the yellow arrow correctly the + // selection tool should be cancelled. + tool_cancel(); hide_gridlines();