From 5221e8ee9fd10b47231d754862ffc085ad4fef85 Mon Sep 17 00:00:00 2001 From: Basssiiie Date: Tue, 16 Jan 2024 14:04:14 +0000 Subject: [PATCH] Extract plugin widget validation logic to separate function --- src/openrct2-ui/scripting/ScWidget.hpp | 41 +++++++++++++------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/openrct2-ui/scripting/ScWidget.hpp b/src/openrct2-ui/scripting/ScWidget.hpp index eea0ed7c3d..28889ddb75 100644 --- a/src/openrct2-ui/scripting/ScWidget.hpp +++ b/src/openrct2-ui/scripting/ScWidget.hpp @@ -146,22 +146,18 @@ namespace OpenRCT2::Scripting auto buttonWidget = widget + 1; buttonWidget->left += delta; buttonWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); } else if (widget->type == WindowWidgetType::Spinner) { auto upWidget = widget + 1; upWidget->left += delta; upWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); - auto downWidget = widget + 2; downWidget->left += delta; downWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 2); } - Invalidate(); + Invalidate(widget); } } @@ -190,22 +186,18 @@ namespace OpenRCT2::Scripting auto buttonWidget = widget + 1; buttonWidget->top += delta; buttonWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); } else if (widget->type == WindowWidgetType::Spinner) { auto upWidget = widget + 1; upWidget->top += delta; upWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); - auto downWidget = widget + 2; downWidget->top += delta; downWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 2); } - Invalidate(); + Invalidate(widget); } } @@ -233,22 +225,18 @@ namespace OpenRCT2::Scripting auto buttonWidget = widget + 1; buttonWidget->left += delta; buttonWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); } else if (widget->type == WindowWidgetType::Spinner) { auto upWidget = widget + 1; upWidget->left += delta; upWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); - auto downWidget = widget + 2; downWidget->left += delta; downWidget->right += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 2); } - Invalidate(); + Invalidate(widget); } } @@ -275,20 +263,16 @@ namespace OpenRCT2::Scripting { auto buttonWidget = widget + 1; buttonWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); } else if (widget->type == WindowWidgetType::Spinner) { auto upWidget = widget + 1; upWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); - auto downWidget = widget + 2; downWidget->bottom += delta; - WidgetInvalidateByNumber(_class, _number, _widgetIndex + 2); } - Invalidate(); + Invalidate(widget); } } @@ -429,6 +413,23 @@ namespace OpenRCT2::Scripting return false; } + void Invalidate(const Widget* widget) + { + if (widget != nullptr) + { + if (widget->type == WindowWidgetType::DropdownMenu) + { + WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); + } + else if (widget->type == WindowWidgetType::Spinner) + { + WidgetInvalidateByNumber(_class, _number, _widgetIndex + 1); + WidgetInvalidateByNumber(_class, _number, _widgetIndex + 2); + } + } + Invalidate(); + } + void Invalidate() { WidgetInvalidateByNumber(_class, _number, _widgetIndex);