From fe8ba41531e5368038bc15d2b426e9bca316a643 Mon Sep 17 00:00:00 2001 From: Robert Jordan Date: Tue, 12 May 2015 14:34:34 -0400 Subject: [PATCH] Added bounds rounding for text size inputs. --- src/windows/clear_scenery.c | 4 +++- src/windows/land.c | 4 +++- src/windows/map.c | 8 ++++++-- src/windows/water.c | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/windows/clear_scenery.c b/src/windows/clear_scenery.c index 2999aee463..baa2168dc4 100644 --- a/src/windows/clear_scenery.c +++ b/src/windows/clear_scenery.c @@ -184,7 +184,9 @@ static void window_clear_scenery_textinput() return; size = strtol(text, &end, 10); - if (size >= 1 && size <= 7 && *end == '\0') { + if (*end == '\0') { + if (size < 1) size = 1; + if (size > 7) size = 7; RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; window_invalidate(w); } diff --git a/src/windows/land.c b/src/windows/land.c index 236013e8a2..bb27acb054 100644 --- a/src/windows/land.c +++ b/src/windows/land.c @@ -330,7 +330,9 @@ static void window_land_textinput() return; size = strtol(text, &end, 10); - if (size >= 0 && size <= 64 && *end == '\0') { + if (*end == '\0') { + if (size < 0) size = 0; + if (size > 64) size = 64; RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; window_invalidate(w); } diff --git a/src/windows/map.c b/src/windows/map.c index 974e9d27ce..9003a26f27 100644 --- a/src/windows/map.c +++ b/src/windows/map.c @@ -409,14 +409,18 @@ static void window_map_textinput() if (result) { if (widgetIndex == WIDX_LAND_TOOL) { size = strtol(text, &end, 10); - if (size >= 1 && size <= 64 && *end == '\0') { + if (*end == '\0') { + if (size < 1) size = 1; + if (size > 64) size = 64; RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; window_invalidate(w); } } else if (widgetIndex == WIDX_MAP_SIZE_SPINNER) { size = strtol(text, &end, 10); - if (size >= 50 && size <= 256 && *end == '\0') { + if (*end == '\0') { + if (size < 50) size = 50; + if (size > 256) size = 256; int currentSize = RCT2_GLOBAL(RCT2_ADDRESS_MAP_SIZE, uint16); while (size < currentSize) { RCT2_CALLPROC_X(0x0068D6B4, 0, 0, 0, widgetIndex, (int)w, 0, 0); diff --git a/src/windows/water.c b/src/windows/water.c index 1defcbfca4..31a3ea44fc 100644 --- a/src/windows/water.c +++ b/src/windows/water.c @@ -185,7 +185,9 @@ static void window_water_textinput() return; size = strtol(text, &end, 10); - if (size >= 1 && size <= 64 && *end == '\0') { + if (*end == '\0') { + if (size < 1) size = 1; + if (size > 64) size = 64; RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; window_invalidate(w); }