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

Merge branch 'savegame' into 'master'

Avoid issues with saved games that have no screenshot data

See merge request OpenMW/openmw!2358
This commit is contained in:
psi29a 2022-09-03 09:05:09 +00:00
commit 7a0a11b30c
2 changed files with 10 additions and 4 deletions

View File

@ -430,19 +430,25 @@ namespace MWGui
// Decode screenshot
const std::vector<char>& data = mCurrentSlot->mProfile.mScreenshot;
Files::IMemStream instream (&data[0], data.size());
if (!data.size())
{
Log(Debug::Warning) << "Selected save file '" << mCurrentSlot->mPath.filename() << "' has no savegame screenshot";
return;
}
Files::IMemStream instream (data.data(), data.size());
osgDB::ReaderWriter* readerwriter = osgDB::Registry::instance()->getReaderWriterForExtension("jpg");
if (!readerwriter)
{
Log(Debug::Error) << "Error: Can't open savegame screenshot, no jpg readerwriter found";
Log(Debug::Error) << "Can't open savegame screenshot, no jpg readerwriter found";
return;
}
osgDB::ReaderWriter::ReadResult result = readerwriter->readImage(instream);
if (!result.success())
{
Log(Debug::Error) << "Error: Failed to read savegame screenshot: " << result.message() << " code " << result.status();
Log(Debug::Error) << "Failed to read savegame screenshot: " << result.message() << " code " << result.status();
return;
}

View File

@ -50,7 +50,7 @@ void SavedGame::save (ESMWriter &esm) const
esm.writeHNString ("DEPE", *iter);
esm.startSubRecord("SCRN");
esm.write(&mScreenshot[0], mScreenshot.size());
esm.write(mScreenshot.data(), mScreenshot.size());
esm.endRecord("SCRN");
}