From 801d2ec34132054bb04e05dd9cf1075daad5dde2 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Sat, 25 Jul 2015 17:47:47 +0100 Subject: [PATCH] implement window_maze_construction_mousedown --- src/ride/ride.c | 8 ++++---- src/ride/ride.h | 6 +++--- src/windows/maze_construction.c | 21 +++++++++++++++++---- src/windows/ride_construction.c | 2 +- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/ride/ride.c b/src/ride/ride.c index 27eb49b92f..06de016512 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -1247,9 +1247,9 @@ void sub_6C9627() 1 ); break; - case RIDE_CONSTRUCTION_STATE_6: - case RIDE_CONSTRUCTION_STATE_7: - case RIDE_CONSTRUCTION_STATE_8: + case RIDE_CONSTRUCTION_STATE_MAZE_BUILD: + case RIDE_CONSTRUCTION_STATE_MAZE_MOVE: + case RIDE_CONSTRUCTION_STATE_MAZE_FILL: if (_currentTrackSelectionFlags & 1) { map_invalidate_tile_full( _currentTrackBeginX & 0xFFE0, @@ -1594,7 +1594,7 @@ static int ride_modify_entrance_or_exit(rct_map_element *mapElement, int x, int int ride_modify_maze(rct_map_element *mapElement, int x, int y) { _currentRideIndex = mapElement->properties.track.ride_index; - _rideConstructionState = RIDE_CONSTRUCTION_STATE_6; + _rideConstructionState = RIDE_CONSTRUCTION_STATE_MAZE_BUILD; _currentTrackBeginX = x; _currentTrackBeginY = y; _currentTrackBeginZ = mapElement->base_height * 8; diff --git a/src/ride/ride.h b/src/ride/ride.h index a1c917a321..d802ec541d 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -780,9 +780,9 @@ enum { RIDE_CONSTRUCTION_STATE_SELECTED, RIDE_CONSTRUCTION_STATE_PLACE, RIDE_CONSTRUCTION_STATE_ENTRANCE_EXIT, - RIDE_CONSTRUCTION_STATE_6, - RIDE_CONSTRUCTION_STATE_7, - RIDE_CONSTRUCTION_STATE_8 + RIDE_CONSTRUCTION_STATE_MAZE_BUILD, + RIDE_CONSTRUCTION_STATE_MAZE_MOVE, + RIDE_CONSTRUCTION_STATE_MAZE_FILL }; enum { diff --git a/src/windows/maze_construction.c b/src/windows/maze_construction.c index 9c5c7b63e4..dda47e957c 100644 --- a/src/windows/maze_construction.c +++ b/src/windows/maze_construction.c @@ -242,7 +242,20 @@ static void window_maze_construction_resize(rct_window *w) */ static void window_maze_construction_mousedown(int widgetIndex, rct_window *w, rct_widget *widget) { - RCT2_CALLPROC_X(0x006CD48C, 0, 0, 0, widgetIndex, (int)w, (int)widget, 0); + switch (widgetIndex) { + case WIDX_MAZE_BUILD_MODE: + _rideConstructionState = RIDE_CONSTRUCTION_STATE_MAZE_BUILD; + window_maze_construction_update_pressed_widgets(); + break; + case WIDX_MAZE_MOVE_MODE: + _rideConstructionState = RIDE_CONSTRUCTION_STATE_MAZE_MOVE; + window_maze_construction_update_pressed_widgets(); + break; + case WIDX_MAZE_FILL_MODE: + _rideConstructionState = RIDE_CONSTRUCTION_STATE_MAZE_FILL; + window_maze_construction_update_pressed_widgets(); + break; + } } /** @@ -405,13 +418,13 @@ void window_maze_construction_update_pressed_widgets() pressedWidgets &= ~(1ULL << WIDX_MAZE_FILL_MODE); switch (_rideConstructionState) { - case RIDE_CONSTRUCTION_STATE_6: + case RIDE_CONSTRUCTION_STATE_MAZE_BUILD: pressedWidgets |= (1ULL << WIDX_MAZE_BUILD_MODE); break; - case RIDE_CONSTRUCTION_STATE_7: + case RIDE_CONSTRUCTION_STATE_MAZE_MOVE: pressedWidgets |= (1ULL << WIDX_MAZE_MOVE_MODE); break; - case RIDE_CONSTRUCTION_STATE_8: + case RIDE_CONSTRUCTION_STATE_MAZE_FILL: pressedWidgets |= (1ULL << WIDX_MAZE_FILL_MODE); break; } diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index ed19902a9f..1a112ae70e 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -3456,7 +3456,7 @@ void ride_construction_tooldown_construct(int screenX, int screenY) if (ride->type == RIDE_TYPE_MAZE) { for (int zAttempts = 41; zAttempts >= 0; zAttempts--) { - _rideConstructionState = RIDE_CONSTRUCTION_STATE_6; + _rideConstructionState = RIDE_CONSTRUCTION_STATE_MAZE_BUILD; _currentTrackBeginX = x; _currentTrackBeginY = y; _currentTrackBeginZ = z;