mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-18 05:22:42 +01:00
Allow holding down spinners in tile inspector (#7647)
This basically moves much of the event handling from mouseup to mousedown, and adds a new array with widget indices for the spinners. This automatically enables scrolling for them as well.
This commit is contained in:
@@ -514,9 +514,22 @@ static uint64 PageEnabledWidgets[] = {
|
|||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_N) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_E) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_S) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_W) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_N) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_E) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_S) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_W),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_N) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_E) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_S) | (1ULL << WIDX_SCENERY_CHECK_QUARTER_W) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_N) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_E) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_S) | (1ULL << WIDX_SCENERY_CHECK_COLLISION_W),
|
||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_ENTRANCE_BUTTON_MAKE_USABLE),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_ENTRANCE_BUTTON_MAKE_USABLE),
|
||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_WALL_DROPDOWN_SLOPE) | (1ULL << WIDX_WALL_DROPDOWN_SLOPE_BUTTON),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_WALL_DROPDOWN_SLOPE) | (1ULL << WIDX_WALL_DROPDOWN_SLOPE_BUTTON),
|
||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_DECREASE),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_DECREASE),
|
||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_NE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_SE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_SW) | (1ULL << WIDX_BANNER_CHECK_BLOCK_NW),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_ROTATE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_NE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_SE) | (1ULL << WIDX_BANNER_CHECK_BLOCK_SW) | (1ULL << WIDX_BANNER_CHECK_BLOCK_NW),
|
||||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_CORRUPT_BUTTON_CLAMP),
|
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_BUTTON_CORRUPT) | (1ULL << WIDX_BUTTON_REMOVE) | (1ULL << WIDX_BUTTON_COPY) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_DECREASE) | (1ULL << WIDX_CORRUPT_BUTTON_CLAMP),
|
||||||
|
};
|
||||||
|
|
||||||
|
static uint64 PageHoldDownWidgets[] = {
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_SURFACE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SURFACE_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_PATH_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_PATH_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_TRACK_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_TRACK_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_SCENERY_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_WALL_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_LARGE_SCENERY_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_BANNER_SPINNER_HEIGHT_DECREASE),
|
||||||
|
(1ULL << WIDX_SPINNER_X_INCREASE) | (1ULL << WIDX_SPINNER_X_DECREASE) | (1ULL << WIDX_SPINNER_Y_INCREASE) | (1ULL << WIDX_SPINNER_Y_DECREASE) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_INCREASE) | (1ULL << WIDX_CORRUPT_SPINNER_HEIGHT_DECREASE),
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint64 PageDisabledWidgets[] = {
|
static uint64 PageDisabledWidgets[] = {
|
||||||
@@ -922,22 +935,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
tool_cancel();
|
tool_cancel();
|
||||||
window_close(w);
|
window_close(w);
|
||||||
break;
|
break;
|
||||||
case WIDX_SPINNER_X_INCREASE:
|
|
||||||
windowTileInspectorTileX = Math::Min<uint32>(windowTileInspectorTileX + 1, MAXIMUM_MAP_SIZE_TECHNICAL - 1);
|
|
||||||
window_tile_inspector_load_tile(w, nullptr);
|
|
||||||
break;
|
|
||||||
case WIDX_SPINNER_X_DECREASE:
|
|
||||||
windowTileInspectorTileX = Math::Max<uint32>(windowTileInspectorTileX - 1, 0);
|
|
||||||
window_tile_inspector_load_tile(w, nullptr);
|
|
||||||
break;
|
|
||||||
case WIDX_SPINNER_Y_INCREASE:
|
|
||||||
windowTileInspectorTileY = Math::Min<uint32>(windowTileInspectorTileY + 1, MAXIMUM_MAP_SIZE_TECHNICAL - 1);
|
|
||||||
window_tile_inspector_load_tile(w, nullptr);
|
|
||||||
break;
|
|
||||||
case WIDX_SPINNER_Y_DECREASE:
|
|
||||||
windowTileInspectorTileY = Math::Max<uint32>(windowTileInspectorTileY - 1, 0);
|
|
||||||
window_tile_inspector_load_tile(w, nullptr);
|
|
||||||
break;
|
|
||||||
case WIDX_BUTTON_CORRUPT:
|
case WIDX_BUTTON_CORRUPT:
|
||||||
window_tile_inspector_insert_corrupt_element(w->selected_list_item);
|
window_tile_inspector_insert_corrupt_element(w->selected_list_item);
|
||||||
break;
|
break;
|
||||||
@@ -979,12 +976,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
switch (w->page) {
|
switch (w->page) {
|
||||||
case TILE_INSPECTOR_PAGE_SURFACE:
|
case TILE_INSPECTOR_PAGE_SURFACE:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_SURFACE_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_SURFACE_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_SURFACE_BUTTON_REMOVE_FENCES:
|
case WIDX_SURFACE_BUTTON_REMOVE_FENCES:
|
||||||
window_tile_inspector_surface_show_park_fences(false);
|
window_tile_inspector_surface_show_park_fences(false);
|
||||||
break;
|
break;
|
||||||
@@ -1005,12 +996,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_PATH:
|
case TILE_INSPECTOR_PAGE_PATH:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_PATH_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_PATH_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_PATH_CHECK_SLOPED:
|
case WIDX_PATH_CHECK_SLOPED:
|
||||||
window_tile_inspector_path_set_sloped(w->selected_list_item, !footpath_element_is_sloped(tileElement));
|
window_tile_inspector_path_set_sloped(w->selected_list_item, !footpath_element_is_sloped(tileElement));
|
||||||
break;
|
break;
|
||||||
@@ -1047,22 +1032,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
windowTileInspectorApplyToAll ^= 1;
|
windowTileInspectorApplyToAll ^= 1;
|
||||||
widget_invalidate(w, widgetIndex);
|
widget_invalidate(w, widgetIndex);
|
||||||
break;
|
break;
|
||||||
case WIDX_TRACK_SPINNER_HEIGHT_INCREASE:
|
|
||||||
if (widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL)) {
|
|
||||||
window_tile_inspector_track_block_height_offset(w->selected_list_item, 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WIDX_TRACK_SPINNER_HEIGHT_DECREASE:
|
|
||||||
if (widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL)) {
|
|
||||||
window_tile_inspector_track_block_height_offset(w->selected_list_item, -1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WIDX_TRACK_CHECK_CHAIN_LIFT:
|
case WIDX_TRACK_CHECK_CHAIN_LIFT:
|
||||||
{
|
{
|
||||||
bool entireTrackBlock = widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL);
|
bool entireTrackBlock = widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL);
|
||||||
@@ -1075,12 +1044,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_SCENERY:
|
case TILE_INSPECTOR_PAGE_SCENERY:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_SCENERY_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_SCENERY_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_SCENERY_CHECK_QUARTER_N:
|
case WIDX_SCENERY_CHECK_QUARTER_N:
|
||||||
case WIDX_SCENERY_CHECK_QUARTER_E:
|
case WIDX_SCENERY_CHECK_QUARTER_E:
|
||||||
case WIDX_SCENERY_CHECK_QUARTER_S:
|
case WIDX_SCENERY_CHECK_QUARTER_S:
|
||||||
@@ -1098,48 +1061,14 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_ENTRANCE:
|
case TILE_INSPECTOR_PAGE_ENTRANCE:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_ENTRANCE_BUTTON_MAKE_USABLE:
|
case WIDX_ENTRANCE_BUTTON_MAKE_USABLE:
|
||||||
window_tile_inspector_entrance_make_usable(w->selected_list_item);
|
window_tile_inspector_entrance_make_usable(w->selected_list_item);
|
||||||
break;
|
break;
|
||||||
} // switch widget index
|
} // switch widget index
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_WALL:
|
|
||||||
switch (widgetIndex) {
|
|
||||||
case WIDX_WALL_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_WALL_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
} // switch widget index
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_LARGE_SCENERY:
|
|
||||||
switch (widgetIndex) {
|
|
||||||
case WIDX_LARGE_SCENERY_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_LARGE_SCENERY_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
} // switch widget index
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_BANNER:
|
case TILE_INSPECTOR_PAGE_BANNER:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_BANNER_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_BANNER_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_BANNER_CHECK_BLOCK_NE:
|
case WIDX_BANNER_CHECK_BLOCK_NE:
|
||||||
case WIDX_BANNER_CHECK_BLOCK_SE:
|
case WIDX_BANNER_CHECK_BLOCK_SE:
|
||||||
case WIDX_BANNER_CHECK_BLOCK_SW:
|
case WIDX_BANNER_CHECK_BLOCK_SW:
|
||||||
@@ -1151,12 +1080,6 @@ static void window_tile_inspector_mouseup(rct_window *w, rct_widgetindex widgetI
|
|||||||
|
|
||||||
case TILE_INSPECTOR_PAGE_CORRUPT:
|
case TILE_INSPECTOR_PAGE_CORRUPT:
|
||||||
switch (widgetIndex) {
|
switch (widgetIndex) {
|
||||||
case WIDX_CORRUPT_SPINNER_HEIGHT_INCREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
|
||||||
break;
|
|
||||||
case WIDX_CORRUPT_SPINNER_HEIGHT_DECREASE:
|
|
||||||
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
|
||||||
break;
|
|
||||||
case WIDX_CORRUPT_BUTTON_CLAMP:
|
case WIDX_CORRUPT_BUTTON_CLAMP:
|
||||||
window_tile_inspector_clamp_corrupt(w->selected_list_item);
|
window_tile_inspector_clamp_corrupt(w->selected_list_item);
|
||||||
break;
|
break;
|
||||||
@@ -1181,38 +1104,181 @@ static void window_tile_inspector_resize(rct_window *w)
|
|||||||
|
|
||||||
static void window_tile_inspector_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget)
|
static void window_tile_inspector_mousedown(rct_window *w, rct_widgetindex widgetIndex, rct_widget* widget)
|
||||||
{
|
{
|
||||||
switch (w->page) {
|
switch (widgetIndex)
|
||||||
case TILE_INSPECTOR_PAGE_WALL:
|
{
|
||||||
switch (widgetIndex) {
|
case WIDX_SPINNER_X_INCREASE:
|
||||||
case WIDX_WALL_DROPDOWN_SLOPE_BUTTON:
|
windowTileInspectorTileX = Math::Min<uint32>(windowTileInspectorTileX + 1, MAXIMUM_MAP_SIZE_TECHNICAL - 1);
|
||||||
// Use dropdown instead of dropdown button
|
window_tile_inspector_load_tile(w, nullptr);
|
||||||
widget--;
|
|
||||||
|
|
||||||
// Fill dropdown list
|
|
||||||
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL;
|
|
||||||
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL;
|
|
||||||
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL;
|
|
||||||
gDropdownItemsArgs[0] = STR_TILE_INSPECTOR_WALL_FLAT;
|
|
||||||
gDropdownItemsArgs[1] = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT;
|
|
||||||
gDropdownItemsArgs[2] = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT;
|
|
||||||
window_dropdown_show_text_custom_width(
|
|
||||||
w->x + widget->left,
|
|
||||||
w->y + widget->top,
|
|
||||||
widget->bottom - widget->top + 1,
|
|
||||||
w->colours[1],
|
|
||||||
0,
|
|
||||||
DROPDOWN_FLAG_STAY_OPEN,
|
|
||||||
3,
|
|
||||||
widget->right - widget->left - 3
|
|
||||||
);
|
|
||||||
|
|
||||||
// Set current value as checked
|
|
||||||
rct_tile_element *const tileElement = window_tile_inspector_get_selected_element(w);
|
|
||||||
dropdown_set_checked(tileElement->GetSceneryQuadrant(), true);
|
|
||||||
break;
|
break;
|
||||||
}
|
case WIDX_SPINNER_X_DECREASE:
|
||||||
break;
|
windowTileInspectorTileX = Math::Max<uint32>(windowTileInspectorTileX - 1, 0);
|
||||||
|
window_tile_inspector_load_tile(w, nullptr);
|
||||||
|
break;
|
||||||
|
case WIDX_SPINNER_Y_INCREASE:
|
||||||
|
windowTileInspectorTileY = Math::Min<uint32>(windowTileInspectorTileY + 1, MAXIMUM_MAP_SIZE_TECHNICAL - 1);
|
||||||
|
window_tile_inspector_load_tile(w, nullptr);
|
||||||
|
break;
|
||||||
|
case WIDX_SPINNER_Y_DECREASE:
|
||||||
|
windowTileInspectorTileY = Math::Max<uint32>(windowTileInspectorTileY - 1, 0);
|
||||||
|
window_tile_inspector_load_tile(w, nullptr);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
|
||||||
|
// Only element-specific widgets from now on
|
||||||
|
if (w->page == TILE_INSPECTOR_PAGE_DEFAULT || w->selected_list_item == -1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (w->page)
|
||||||
|
{
|
||||||
|
case TILE_INSPECTOR_PAGE_SURFACE:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_SURFACE_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_SURFACE_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_PATH:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_PATH_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_PATH_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_TRACK:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_TRACK_SPINNER_HEIGHT_INCREASE:
|
||||||
|
if (widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL))
|
||||||
|
{
|
||||||
|
window_tile_inspector_track_block_height_offset(w->selected_list_item, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case WIDX_TRACK_SPINNER_HEIGHT_DECREASE:
|
||||||
|
if (widget_is_pressed(w, WIDX_TRACK_CHECK_APPLY_TO_ALL))
|
||||||
|
{
|
||||||
|
window_tile_inspector_track_block_height_offset(w->selected_list_item, -1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_SCENERY:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_SCENERY_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_SCENERY_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_ENTRANCE:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_ENTRANCE_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_ENTRANCE_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
case WIDX_ENTRANCE_BUTTON_MAKE_USABLE: window_tile_inspector_entrance_make_usable(w->selected_list_item); break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_WALL:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_WALL_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_WALL_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
case WIDX_WALL_DROPDOWN_SLOPE_BUTTON:
|
||||||
|
// Use dropdown instead of dropdown button
|
||||||
|
widget--;
|
||||||
|
|
||||||
|
// Fill dropdown list
|
||||||
|
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL;
|
||||||
|
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL;
|
||||||
|
gDropdownItemsFormat[2] = STR_DROPDOWN_MENU_LABEL;
|
||||||
|
gDropdownItemsArgs[0] = STR_TILE_INSPECTOR_WALL_FLAT;
|
||||||
|
gDropdownItemsArgs[1] = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT;
|
||||||
|
gDropdownItemsArgs[2] = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT;
|
||||||
|
window_dropdown_show_text_custom_width(
|
||||||
|
w->x + widget->left,
|
||||||
|
w->y + widget->top,
|
||||||
|
widget->bottom - widget->top + 1,
|
||||||
|
w->colours[1],
|
||||||
|
0,
|
||||||
|
DROPDOWN_FLAG_STAY_OPEN,
|
||||||
|
3,
|
||||||
|
widget->right - widget->left - 3);
|
||||||
|
|
||||||
|
// Set current value as checked
|
||||||
|
rct_tile_element* const tileElement = window_tile_inspector_get_selected_element(w);
|
||||||
|
dropdown_set_checked(tileElement->GetSceneryQuadrant(), true);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_LARGE_SCENERY:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_LARGE_SCENERY_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_LARGE_SCENERY_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_BANNER:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_BANNER_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_BANNER_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TILE_INSPECTOR_PAGE_CORRUPT:
|
||||||
|
switch (widgetIndex)
|
||||||
|
{
|
||||||
|
case WIDX_CORRUPT_SPINNER_HEIGHT_INCREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, 1);
|
||||||
|
break;
|
||||||
|
case WIDX_CORRUPT_SPINNER_HEIGHT_DECREASE:
|
||||||
|
window_tile_inspector_base_height_offset(w->selected_list_item, -1);
|
||||||
|
break;
|
||||||
|
} // switch widget index
|
||||||
|
} // switch page
|
||||||
}
|
}
|
||||||
|
|
||||||
static void window_tile_inspector_update(rct_window *w)
|
static void window_tile_inspector_update(rct_window *w)
|
||||||
@@ -1372,6 +1438,7 @@ static void window_tile_inspector_set_page(rct_window *w, const TILE_INSPECTOR_P
|
|||||||
w->page = page;
|
w->page = page;
|
||||||
w->widgets = PageWidgets[page];
|
w->widgets = PageWidgets[page];
|
||||||
w->enabled_widgets = PageEnabledWidgets[page];
|
w->enabled_widgets = PageEnabledWidgets[page];
|
||||||
|
w->hold_down_widgets = PageHoldDownWidgets[page];
|
||||||
w->disabled_widgets = PageDisabledWidgets[page];
|
w->disabled_widgets = PageDisabledWidgets[page];
|
||||||
w->pressed_widgets = 0;
|
w->pressed_widgets = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user