Merge pull request #1407 from ThomasdenH/invert-drag

Add option to invert viewport dragging (#1332)
This commit is contained in:
Ted John 2015-06-20 17:57:50 +01:00
commit 0381b0e1f6
6 changed files with 26 additions and 7 deletions

View File

@ -3704,4 +3704,5 @@ STR_5367 :Fast
STR_5368 :Reset crash status
STR_5369 :Park parameters...
STR_5370 :{SMALLFONT}{BLACK}Click this button to modify park{NEWLINE}parameters like restrictions,{NEWLINE}guest generation and money.
STR_5371 :Object Selection
STR_5371 :Object Selection
STR_5372 :Invert right mouse dragging

View File

@ -179,6 +179,7 @@ config_property_definition _generalDefinitions[] = {
{ offsetof(general_configuration, auto_staff_placement), "auto_staff", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(general_configuration, last_run_version), "last_run_version", CONFIG_VALUE_TYPE_STRING, { .value_string = NULL }, NULL },
{ offsetof(general_configuration, title_sequence), "title_sequence", CONFIG_VALUE_TYPE_UINT8, TITLE_SEQUENCE_OPENRCT2, NULL },
{ offsetof(general_configuration, invert_viewport_drag), "invert_viewport_drag", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
};
config_property_definition _interfaceDefinitions[] = {

View File

@ -144,6 +144,7 @@ typedef struct {
uint8 auto_staff_placement;
utf8string last_run_version;
uint8 title_sequence;
uint8 invert_viewport_drag;
} general_configuration;
typedef struct {

View File

@ -436,8 +436,13 @@ static void input_viewport_drag_continue()
RCT2_GLOBAL(0x009DE540, sint16) = 1000;
dx <<= viewport->zoom + 1;
dy <<= viewport->zoom + 1;
w->saved_view_x += dx;
w->saved_view_y += dy;
if (gConfigGeneral.invert_viewport_drag){
w->saved_view_x -= dx;
w->saved_view_y -= dy;
} else {
w->saved_view_x += dx;
w->saved_view_y += dy;
}
}
}

View File

@ -1537,6 +1537,8 @@ enum {
STR_NORMAL = 5366,
STR_FAST = 5367,
STR_INVERT_RIGHT_MOUSE_DRAG = 5372,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768
};

View File

@ -108,6 +108,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX {
// Controls
WIDX_SCREEN_EDGE_SCROLLING = WIDX_PAGE_START,
WIDX_INVERT_DRAG,
WIDX_HOTKEY_DROPDOWN,
WIDX_TOOLBAR_SHOW_FINANCES,
WIDX_TOOLBAR_SHOW_RESEARCH,
@ -199,10 +200,11 @@ static rct_widget window_options_audio_widgets[] = {
static rct_widget window_options_controls_widgets[] = {
MAIN_OPTIONS_WIDGETS,
{ WWT_CHECKBOX, 2, 10, 299, 54, 65, STR_SCREEN_EDGE_SCROLLING, STR_SCREEN_EDGE_SCROLLING_TIP },
{ WWT_DROPDOWN_BUTTON, 1, 26, 185, 69, 80, STR_HOTKEY, STR_HOTKEY_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 84, 95, 5120, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 99, 110, 5121, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 114, 125, 5147, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 69, 80, STR_INVERT_RIGHT_MOUSE_DRAG,STR_NONE },
{ WWT_DROPDOWN_BUTTON, 1, 26, 185, 84, 95, STR_HOTKEY, STR_HOTKEY_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 99, 110, 5120, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 114, 125, 5121, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 129, 140, 5147, STR_NONE },
{ WIDGETS_END },
};
@ -349,6 +351,7 @@ static uint32 window_options_page_enabled_widgets[] = {
MAIN_OPTIONS_ENABLED_WIDGETS |
(1 << WIDX_SCREEN_EDGE_SCROLLING) |
(1 << WIDX_INVERT_DRAG) |
(1 << WIDX_HOTKEY_DROPDOWN) |
(1 << WIDX_TOOLBAR_SHOW_FINANCES) |
(1 << WIDX_TOOLBAR_SHOW_RESEARCH) |
@ -509,6 +512,11 @@ static void window_options_mouseup()
window_invalidate(w);
window_invalidate_by_class(WC_TOP_TOOLBAR);
break;
case WIDX_INVERT_DRAG:
gConfigGeneral.invert_viewport_drag ^= 1;
config_save_default();
window_invalidate(w);
break;
}
break;
@ -1105,6 +1113,7 @@ static void window_options_invalidate()
case WINDOW_OPTIONS_PAGE_CONTROLS:
widget_set_checkbox_value(w, WIDX_SCREEN_EDGE_SCROLLING, gConfigGeneral.edge_scrolling);
widget_set_checkbox_value(w, WIDX_INVERT_DRAG, gConfigGeneral.invert_viewport_drag);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_FINANCES, gConfigInterface.toolbar_show_finances);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_RESEARCH, gConfigInterface.toolbar_show_research);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_CHEATS, gConfigInterface.toolbar_show_cheats);