forked from mirror/openmw-tes3mp
Not found Land Textures are no longer a fatal error (Bug #3037)
Log warning message and show the default texture when encountering invalid ESM::LandTexture references.
This commit is contained in:
parent
4687c4baad
commit
35fa1f5865
3 changed files with 9 additions and 5 deletions
|
@ -37,9 +37,7 @@ namespace CSVRender
|
|||
return ltex;
|
||||
}
|
||||
|
||||
std::stringstream error;
|
||||
error << "Can't find LandTexture " << index << " from plugin " << plugin;
|
||||
throw std::runtime_error(error.str());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void TerrainStorage::getBounds(float &minX, float &maxX, float &minY, float &maxY)
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace MWRender
|
|||
{
|
||||
const MWWorld::ESMStore &esmStore =
|
||||
MWBase::Environment::get().getWorld()->getStore();
|
||||
return esmStore.get<ESM::LandTexture>().find(index, plugin);
|
||||
return esmStore.get<ESM::LandTexture>().search(index, plugin);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -299,11 +299,17 @@ namespace ESMTerrain
|
|||
|
||||
std::string Storage::getTextureName(UniqueTextureId id)
|
||||
{
|
||||
static const std::string defaultTexture = "textures\\_land_default.dds";
|
||||
if (id.first == 0)
|
||||
return "textures\\_land_default.dds"; // Not sure if the default texture really is hardcoded?
|
||||
return defaultTexture; // Not sure if the default texture really is hardcoded?
|
||||
|
||||
// NB: All vtex ids are +1 compared to the ltex ids
|
||||
const ESM::LandTexture* ltex = getLandTexture(id.first-1, id.second);
|
||||
if (!ltex)
|
||||
{
|
||||
std::cerr << "Unable to find land texture index " << id.first-1 << " in plugin " << id.second << ", using default texture instead" << std::endl;
|
||||
return defaultTexture;
|
||||
}
|
||||
|
||||
// this is needed due to MWs messed up texture handling
|
||||
std::string texture = Misc::ResourceHelpers::correctTexturePath(ltex->mTexture, mVFS);
|
||||
|
|
Loading…
Reference in a new issue