1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-25 03:40:40 +00:00

Handle non-string RefIds when displaying a class image

This commit is contained in:
Evil Eye 2023-06-06 17:41:13 +02:00
parent 25c1e6abee
commit 6e39c0336c

View File

@ -888,15 +888,22 @@ namespace MWGui
} }
void setClassImage(MyGUI::ImageBox* imageBox, const ESM::RefId& classId) void setClassImage(MyGUI::ImageBox* imageBox, const ESM::RefId& classId)
{
std::string_view fallback = "textures\\levelup\\warrior.dds";
std::string classImage;
if (const auto* id = classId.getIf<ESM::StringRefId>())
{ {
const VFS::Manager* const vfs = MWBase::Environment::get().getResourceSystem()->getVFS(); const VFS::Manager* const vfs = MWBase::Environment::get().getResourceSystem()->getVFS();
std::string classImage classImage
= Misc::ResourceHelpers::correctTexturePath("textures\\levelup\\" + classId.getRefIdString() + ".dds", vfs); = Misc::ResourceHelpers::correctTexturePath("textures\\levelup\\" + id->getValue() + ".dds", vfs);
if (!vfs->exists(classImage)) if (!vfs->exists(classImage))
{ {
Log(Debug::Warning) << "No class image for " << classId << ", falling back to default"; Log(Debug::Warning) << "No class image for " << classId << ", falling back to default";
classImage = "textures\\levelup\\warrior.dds"; classImage = fallback;
} }
}
else
classImage = fallback;
imageBox->setImageTexture(classImage); imageBox->setImageTexture(classImage);
} }