diff --git a/distribution/openrct2.d.ts b/distribution/openrct2.d.ts index 24b36a1244..a9bf7f0c80 100644 --- a/distribution/openrct2.d.ts +++ b/distribution/openrct2.d.ts @@ -4874,6 +4874,9 @@ declare global { frameBase: number; frameCount?: number; frameDuration?: number; + primaryColour?: number; + secondaryColour?: number; + tertiaryColour?: number; offset?: ScreenCoordsXY; } diff --git a/src/openrct2-ui/scripting/CustomWindow.cpp b/src/openrct2-ui/scripting/CustomWindow.cpp index c61a1ba233..53ea0a98a4 100644 --- a/src/openrct2-ui/scripting/CustomWindow.cpp +++ b/src/openrct2-ui/scripting/CustomWindow.cpp @@ -218,6 +218,21 @@ namespace OpenRCT2::Ui::Windows result.imageFrameCount = AsOrDefault(dukImage["frameCount"], 0); result.imageFrameDuration = AsOrDefault(dukImage["frameDuration"], 0); + if (dukImage["primaryColour"].type() == DukValue::Type::NUMBER) + { + result.imageFrameBase = result.imageFrameBase.WithPrimary(dukImage["primaryColour"].as_uint()); + + if (dukImage["secondaryColour"].type() == DukValue::Type::NUMBER) + { + result.imageFrameBase = result.imageFrameBase.WithSecondary(dukImage["secondaryColour"].as_uint()); + + if (dukImage["tertiaryColour"].type() == DukValue::Type::NUMBER) + { + result.imageFrameBase = result.imageFrameBase.WithTertiary(dukImage["tertiaryColour"].as_uint()); + } + } + } + auto dukCoord = dukImage["offset"]; if (dukCoord.type() == DukValue::Type::OBJECT) {