/** * * rct2: 0x006CD48C */ static void window_maze_construction_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget *widget) { 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; } }
static void window_maze_construction_entrance_mouseup(rct_window *w, rct_widgetindex widgetIndex){ if (tool_set(w, widgetIndex, TOOL_CROSSHAIR)) return; gRideEntranceExitPlaceType = widgetIndex == WIDX_MAZE_ENTRANCE ? ENTRANCE_TYPE_RIDE_ENTRANCE : ENTRANCE_TYPE_RIDE_EXIT; gRideEntranceExitPlaceRideIndex = (uint8)w->number; gRideEntranceExitPlaceStationIndex = 0; input_set_flag(INPUT_FLAG_6, true); ride_construction_invalidate_current_track(); // ??? uint8 old_state = _rideConstructionState; _rideConstructionState = RIDE_CONSTRUCTION_STATE_ENTRANCE_EXIT; if (old_state != RIDE_CONSTRUCTION_STATE_ENTRANCE_EXIT) _rideConstructionState = old_state; window_maze_construction_update_pressed_widgets(); }
static void window_maze_construction_entrance_mouseup(rct_window *w, sint32 widgetIndex){ if (tool_set(w, widgetIndex, 12)) return; gRideEntranceExitPlaceType = widgetIndex == WIDX_MAZE_ENTRANCE ? ENTRANCE_TYPE_RIDE_ENTRANCE : ENTRANCE_TYPE_RIDE_EXIT; gRideEntranceExitPlaceRideIndex = (uint8)w->number; gRideEntranceExitPlaceStationIndex = 0; gInputFlags |= INPUT_FLAG_6; sub_6C9627(); // ??? uint8 old_state = _rideConstructionState; _rideConstructionState = 5; if (old_state != 5) _rideConstructionState = old_state; window_maze_construction_update_pressed_widgets(); }
/** * * rct2: 0x006CD767 */ static void window_maze_construction_update(rct_window *w) { rct_ride *ride = get_ride(_currentRideIndex); if (ride == NULL || ride->status != RIDE_STATUS_CLOSED) { window_close(w); return; } switch (_rideConstructionState) { case RIDE_CONSTRUCTION_STATE_PLACE: if (!widget_is_active_tool(w, WIDX_MAZE_DIRECTION_GROUPBOX)) { window_close(w); return; } break; case RIDE_CONSTRUCTION_STATE_ENTRANCE_EXIT: if (!widget_is_active_tool(w, WIDX_MAZE_ENTRANCE) && !widget_is_active_tool(w, WIDX_MAZE_EXIT)) { _rideConstructionState = gRideEntranceExitPlacePreviousRideConstructionState; window_maze_construction_update_pressed_widgets(); } break; } switch (_rideConstructionState) { case RIDE_CONSTRUCTION_STATE_FRONT: case RIDE_CONSTRUCTION_STATE_BACK: case RIDE_CONSTRUCTION_STATE_SELECTED: if ( (input_test_flag(INPUT_FLAG_TOOL_ACTIVE)) && gCurrentToolWidget.window_classification == WC_RIDE_CONSTRUCTION ) { tool_cancel(); } break; } sub_6C94D8(); }