mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 18:19:55 +00:00
Fall back to 'warrior' for not found class images (Fixes #3228)
This commit is contained in:
parent
8052225460
commit
92c2a10de4
6 changed files with 28 additions and 3 deletions
|
@ -353,6 +353,7 @@ namespace MWBase
|
||||||
virtual std::string correctIconPath(const std::string& path) = 0;
|
virtual std::string correctIconPath(const std::string& path) = 0;
|
||||||
virtual std::string correctBookartPath(const std::string& path, int width, int height) = 0;
|
virtual std::string correctBookartPath(const std::string& path, int width, int height) = 0;
|
||||||
virtual std::string correctTexturePath(const std::string& path) = 0;
|
virtual std::string correctTexturePath(const std::string& path) = 0;
|
||||||
|
virtual bool textureExists(const std::string& path) = 0;
|
||||||
|
|
||||||
virtual void removeCell(MWWorld::CellStore* cell) = 0;
|
virtual void removeCell(MWWorld::CellStore* cell) = 0;
|
||||||
virtual void writeFog(MWWorld::CellStore* cell) = 0;
|
virtual void writeFog(MWWorld::CellStore* cell) = 0;
|
||||||
|
|
|
@ -55,7 +55,9 @@ namespace MWGui
|
||||||
void GenerateClassResultDialog::setClassId(const std::string &classId)
|
void GenerateClassResultDialog::setClassId(const std::string &classId)
|
||||||
{
|
{
|
||||||
mCurrentClassId = classId;
|
mCurrentClassId = classId;
|
||||||
mClassImage->setImageTexture(std::string("textures\\levelup\\") + mCurrentClassId + ".dds");
|
|
||||||
|
setClassImage(mClassImage, mCurrentClassId);
|
||||||
|
|
||||||
mClassName->setCaption(MWBase::Environment::get().getWorld()->getStore().get<ESM::Class>().find(mCurrentClassId)->mName);
|
mClassName->setCaption(MWBase::Environment::get().getWorld()->getStore().get<ESM::Class>().find(mCurrentClassId)->mName);
|
||||||
|
|
||||||
center();
|
center();
|
||||||
|
@ -257,7 +259,7 @@ namespace MWGui
|
||||||
ToolTips::createSkillToolTip(mMajorSkill[i], klass->mData.mSkills[i][1]);
|
ToolTips::createSkillToolTip(mMajorSkill[i], klass->mData.mSkills[i][1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
mClassImage->setImageTexture(std::string("textures\\levelup\\") + mCurrentClassId + ".dds");
|
setClassImage(mClassImage, mCurrentClassId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* InfoBoxDialog */
|
/* InfoBoxDialog */
|
||||||
|
@ -903,4 +905,15 @@ namespace MWGui
|
||||||
eventDone(this);
|
eventDone(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setClassImage(MyGUI::ImageBox* imageBox, const std::string &classId)
|
||||||
|
{
|
||||||
|
std::string classImage = std::string("textures\\levelup\\") + classId + ".dds";
|
||||||
|
if (!MWBase::Environment::get().getWindowManager()->textureExists(classImage))
|
||||||
|
{
|
||||||
|
std::cout << "No class image for " << classId << ", falling back to default" << std::endl;
|
||||||
|
classImage = "textures\\levelup\\warrior.dds";
|
||||||
|
}
|
||||||
|
imageBox->setImageTexture(classImage);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
void setClassImage(MyGUI::ImageBox* imageBox, const std::string& classId);
|
||||||
|
|
||||||
class InfoBoxDialog : public WindowModal
|
class InfoBoxDialog : public WindowModal
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "../mwmechanics/npcstats.hpp"
|
#include "../mwmechanics/npcstats.hpp"
|
||||||
#include "../mwmechanics/actorutil.hpp"
|
#include "../mwmechanics/actorutil.hpp"
|
||||||
|
|
||||||
|
#include "class.hpp"
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
const unsigned int LevelupDialog::sMaxCoins = 3;
|
const unsigned int LevelupDialog::sMaxCoins = 3;
|
||||||
|
@ -154,7 +156,7 @@ namespace MWGui
|
||||||
cls = &*it;
|
cls = &*it;
|
||||||
}
|
}
|
||||||
|
|
||||||
mClassImage->setImageTexture ("textures\\levelup\\" + cls->mId + ".dds");
|
setClassImage(mClassImage, cls->mId);
|
||||||
|
|
||||||
int level = creatureStats.getLevel ()+1;
|
int level = creatureStats.getLevel ()+1;
|
||||||
mLevelText->setCaptionWithReplacing("#{sLevelUpMenu1} " + MyGUI::utility::toString(level));
|
mLevelText->setCaptionWithReplacing("#{sLevelUpMenu1} " + MyGUI::utility::toString(level));
|
||||||
|
|
|
@ -2002,6 +2002,12 @@ namespace MWGui
|
||||||
return Misc::ResourceHelpers::correctTexturePath(path, mResourceSystem->getVFS());
|
return Misc::ResourceHelpers::correctTexturePath(path, mResourceSystem->getVFS());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WindowManager::textureExists(const std::string &path)
|
||||||
|
{
|
||||||
|
std::string corrected = Misc::ResourceHelpers::correctTexturePath(path, mResourceSystem->getVFS());
|
||||||
|
return mResourceSystem->getVFS()->exists(corrected);
|
||||||
|
}
|
||||||
|
|
||||||
void WindowManager::createCursors()
|
void WindowManager::createCursors()
|
||||||
{
|
{
|
||||||
MyGUI::ResourceManager::EnumeratorPtr enumerator = MyGUI::ResourceManager::getInstance().getEnumerator();
|
MyGUI::ResourceManager::EnumeratorPtr enumerator = MyGUI::ResourceManager::getInstance().getEnumerator();
|
||||||
|
|
|
@ -374,6 +374,7 @@ namespace MWGui
|
||||||
virtual std::string correctIconPath(const std::string& path);
|
virtual std::string correctIconPath(const std::string& path);
|
||||||
virtual std::string correctBookartPath(const std::string& path, int width, int height);
|
virtual std::string correctBookartPath(const std::string& path, int width, int height);
|
||||||
virtual std::string correctTexturePath(const std::string& path);
|
virtual std::string correctTexturePath(const std::string& path);
|
||||||
|
virtual bool textureExists(const std::string& path);
|
||||||
|
|
||||||
void removeCell(MWWorld::CellStore* cell);
|
void removeCell(MWWorld::CellStore* cell);
|
||||||
void writeFog(MWWorld::CellStore* cell);
|
void writeFog(MWWorld::CellStore* cell);
|
||||||
|
|
Loading…
Reference in a new issue