1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

fix for not loaded images

This commit is contained in:
Laserlicht
2024-11-03 22:17:29 +01:00
committed by GitHub
parent 11b437db62
commit 52aa4aeb82

View File

@ -309,10 +309,24 @@ std::shared_ptr<ISharedImage> RenderHandler::scaleImage(const ImageLocator & loc
std::shared_ptr<IImage> RenderHandler::loadImage(const ImageLocator & locator, EImageBlitMode mode) std::shared_ptr<IImage> RenderHandler::loadImage(const ImageLocator & locator, EImageBlitMode mode)
{ {
if (locator.scalingFactor == 0 && getScalingFactor() != 1 ) ImageLocator loc = locator;
if(loc.defFile && loc.scalingFactor == 0 && loc.preScaledFactor == 1)
{ {
auto unscaledLocator = locator; auto tmp = getScalePath(*loc.defFile);
auto scaledLocator = locator; loc.defFile = AnimationPath::builtin(tmp.first.getName());
loc.preScaledFactor = tmp.second;
}
if(loc.image && loc.scalingFactor == 0 && loc.preScaledFactor == 1)
{
auto tmp = getScalePath(*loc.image);
loc.image = ImagePath::builtin(tmp.first.getName());
loc.preScaledFactor = tmp.second;
}
if (loc.scalingFactor == 0 && getScalingFactor() != 1 )
{
auto unscaledLocator = loc;
auto scaledLocator = loc;
unscaledLocator.scalingFactor = 1; unscaledLocator.scalingFactor = 1;
scaledLocator.scalingFactor = getScalingFactor(); scaledLocator.scalingFactor = getScalingFactor();
@ -321,16 +335,16 @@ std::shared_ptr<IImage> RenderHandler::loadImage(const ImageLocator & locator, E
return std::make_shared<ImageScaled>(scaledLocator, unscaledImage, mode); return std::make_shared<ImageScaled>(scaledLocator, unscaledImage, mode);
} }
if (locator.scalingFactor == 0) if (loc.scalingFactor == 0)
{ {
auto scaledLocator = locator; auto scaledLocator = loc;
scaledLocator.scalingFactor = getScalingFactor(); scaledLocator.scalingFactor = getScalingFactor();
return loadImageImpl(scaledLocator)->createImageReference(mode); return loadImageImpl(scaledLocator)->createImageReference(mode);
} }
else else
{ {
return loadImageImpl(locator)->createImageReference(mode); return loadImageImpl(loc)->createImageReference(mode);
} }
} }
@ -344,9 +358,7 @@ std::shared_ptr<IImage> RenderHandler::loadImage(const AnimationPath & path, int
std::shared_ptr<IImage> RenderHandler::loadImage(const ImagePath & path, EImageBlitMode mode) std::shared_ptr<IImage> RenderHandler::loadImage(const ImagePath & path, EImageBlitMode mode)
{ {
auto tmp = getScalePath(path); ImageLocator locator(path);
ImageLocator locator(ImagePath::builtin(tmp.first.getName()));
locator.preScaledFactor = tmp.second;
return loadImage(locator, mode); return loadImage(locator, mode);
} }