1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-19 04:53:12 +01:00

Extract plugin widget validation logic to separate function

This commit is contained in:
Basssiiie
2024-01-16 14:04:14 +00:00
parent 717682a21f
commit 5221e8ee9f

View File

@@ -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);