1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-22 02:09:49 +00:00

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.

(cherry picked from commit 35fa1f5865)
This commit is contained in:
scrawl 2015-11-27 21:45:37 +01:00 committed by cc9cii
parent a1939ae05f
commit 3c02703876
3 changed files with 9 additions and 5 deletions

View file

@ -36,9 +36,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)

View file

@ -68,7 +68,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);
}
}

View file

@ -301,11 +301,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);