From a8e561d88566013bc4bfdff9f04ea4ec83d94f63 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Fri, 2 Sep 2022 07:04:02 +0300 Subject: [PATCH] Avoid issues with saved games that have no screenshot data --- apps/openmw/mwgui/savegamedialog.cpp | 8 +++++++- components/esm3/savedgame.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwgui/savegamedialog.cpp b/apps/openmw/mwgui/savegamedialog.cpp index 86295e3e82..eeb3f39d91 100644 --- a/apps/openmw/mwgui/savegamedialog.cpp +++ b/apps/openmw/mwgui/savegamedialog.cpp @@ -430,7 +430,13 @@ namespace MWGui // Decode screenshot const std::vector& data = mCurrentSlot->mProfile.mScreenshot; - Files::IMemStream instream (&data[0], data.size()); + if (!data.size()) + { + Log(Debug::Warning) << "Warning: Selected saved game has no savegame screenshot"; + return; + } + + Files::IMemStream instream (data.data(), data.size()); osgDB::ReaderWriter* readerwriter = osgDB::Registry::instance()->getReaderWriterForExtension("jpg"); if (!readerwriter) diff --git a/components/esm3/savedgame.cpp b/components/esm3/savedgame.cpp index 69da8d087f..5286cda7df 100644 --- a/components/esm3/savedgame.cpp +++ b/components/esm3/savedgame.cpp @@ -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"); }