From 79b4847c8cbb1d4afec4111266590471633f8730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Fri, 1 Aug 2025 08:49:42 +0200 Subject: [PATCH] sprite usage improvement --- WickedEngine/wiSprite.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/WickedEngine/wiSprite.cpp b/WickedEngine/wiSprite.cpp index 102423476..34bc54d0b 100644 --- a/WickedEngine/wiSprite.cpp +++ b/WickedEngine/wiSprite.cpp @@ -28,7 +28,25 @@ namespace wi { if (IsHidden()) return; - wi::image::Draw(GetTexture(), params, cmd); + if ((maskResource.IsValid() && params.maskMap == nullptr) || (backgroundResource.IsValid() && params.backgroundMap == nullptr)) + { + // The mask/background resource in sprite is used when it's not specified in params: + // It is mostly a fix for unexpected behaviour in scripts where sprite.SetParams() would overwrite the mask map too + wi::image::Params temp = params; + if (maskResource.IsValid() && params.maskMap == nullptr) + { + temp.setMaskMap(&maskResource.GetTexture()); + } + if (backgroundResource.IsValid() && params.backgroundMap == nullptr) + { + temp.setBackgroundMap(&backgroundResource.GetTexture()); + } + wi::image::Draw(GetTexture(), temp, cmd); + } + else + { + wi::image::Draw(GetTexture(), params, cmd); + } } void Sprite::FixedUpdate()