1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-05-31 22:59:54 +02:00

allow overlay and shadow also for unscaled images

This commit is contained in:
Laserlicht 2024-11-17 17:09:13 +01:00
parent 3f8f6dc721
commit 8cd77fc5fc

View File

@ -327,6 +327,21 @@ std::shared_ptr<ISharedImage> RenderHandler::scaleImage(const ImageLocator & loc
std::shared_ptr<IImage> RenderHandler::loadImage(const ImageLocator & locator, EImageBlitMode mode)
{
ImageLocator adjustedLocator = locator;
if(adjustedLocator.image)
{
std::string imgPath = (*adjustedLocator.image).getName();
if(adjustedLocator.layer == EImageLayer::OVERLAY)
imgPath += "-OVERLAY";
if(adjustedLocator.layer == EImageLayer::SHADOW)
imgPath += "-SHADOW";
if(CResourceHandler::get()->existsResource(ImagePath::builtin(imgPath)) ||
CResourceHandler::get()->existsResource(ImagePath::builtin(imgPath).addPrefix("DATA/")) ||
CResourceHandler::get()->existsResource(ImagePath::builtin(imgPath).addPrefix("SPRITES/")))
adjustedLocator.image = ImagePath::builtin(imgPath);
}
if(adjustedLocator.defFile && adjustedLocator.scalingFactor == 0)
{
auto tmp = getScalePath(*adjustedLocator.defFile);
@ -360,21 +375,7 @@ std::shared_ptr<IImage> RenderHandler::loadImage(const ImageLocator & locator, E
return loadImageImpl(scaledLocator)->createImageReference(mode);
}
else
{
if(adjustedLocator.image)
{
std::string imgPath = (*adjustedLocator.image).getName();
if(adjustedLocator.layer == EImageLayer::OVERLAY)
imgPath += "-overlay";
if(adjustedLocator.layer == EImageLayer::SHADOW)
imgPath += "-shadow";
if(CResourceHandler::get()->existsResource(ImagePath::builtin(imgPath)))
adjustedLocator.image = ImagePath::builtin(imgPath);
}
return loadImageImpl(adjustedLocator)->createImageReference(mode);
}
}
std::shared_ptr<IImage> RenderHandler::loadImage(const AnimationPath & path, int frame, int group, EImageBlitMode mode)