From 0681ba4e04564ee8a276ef20732c4b85fbf4c2ac Mon Sep 17 00:00:00 2001 From: Adakite Systems Date: Wed, 10 Jan 2018 00:26:15 -0600 Subject: [PATCH] Read and set edge scrolling speed via config - For future reference, the default edge scrolling speed value of 12 is retained. --- src/openrct2-ui/input/MouseInput.cpp | 6 ++++-- src/openrct2/config/Config.cpp | 2 ++ src/openrct2/config/Config.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/openrct2-ui/input/MouseInput.cpp b/src/openrct2-ui/input/MouseInput.cpp index 5c4145a314..aa7af82e37 100644 --- a/src/openrct2-ui/input/MouseInput.cpp +++ b/src/openrct2-ui/input/MouseInput.cpp @@ -1596,8 +1596,10 @@ void input_scroll_viewport(sint32 scrollX, sint32 scrollY) rct_window * mainWindow = window_get_main(); rct_viewport * viewport = mainWindow->viewport; - sint32 dx = scrollX * (12 << viewport->zoom); - sint32 dy = scrollY * (12 << viewport->zoom); + const sint32 speed = gConfigGeneral.edge_scrolling_speed; + + sint32 dx = scrollX * (speed << viewport->zoom); + sint32 dy = scrollY * (speed << viewport->zoom); if (scrollX != 0) { diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index 0c35d5c8d5..31a5cb3aea 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -148,6 +148,7 @@ namespace Config model->custom_currency_affix = reader->GetEnum("custom_currency_affix", CURRENCY_SUFFIX, Enum_CurrencySymbolAffix); model->custom_currency_symbol = reader->GetCString("custom_currency_symbol", "Ctm"); model->edge_scrolling = reader->GetBoolean("edge_scrolling", true); + model->edge_scrolling_speed = reader->GetSint32("edge_scrolling_speed", 12); model->fullscreen_mode = reader->GetSint32("fullscreen_mode", 0); model->fullscreen_height = reader->GetSint32("fullscreen_height", -1); model->fullscreen_width = reader->GetSint32("fullscreen_width", -1); @@ -224,6 +225,7 @@ namespace Config writer->WriteEnum("custom_currency_affix", model->custom_currency_affix, Enum_CurrencySymbolAffix); writer->WriteString("custom_currency_symbol", model->custom_currency_symbol); writer->WriteBoolean("edge_scrolling", model->edge_scrolling); + writer->WriteSint32("edge_scrolling_speed", model->edge_scrolling_speed); writer->WriteSint32("fullscreen_mode", model->fullscreen_mode); writer->WriteSint32("fullscreen_height", model->fullscreen_height); writer->WriteSint32("fullscreen_width", model->fullscreen_width); diff --git a/src/openrct2/config/Config.h b/src/openrct2/config/Config.h index 25a8e87cb3..b166f84924 100644 --- a/src/openrct2/config/Config.h +++ b/src/openrct2/config/Config.h @@ -64,6 +64,7 @@ typedef struct GeneralConfiguration // Controls bool edge_scrolling; + sint32 edge_scrolling_speed; bool trap_cursor; bool invert_viewport_drag; bool zoom_to_cursor;