From 343bd3fb4d0eef928fe06c6cbc488e84d7a4185b Mon Sep 17 00:00:00 2001 From: Vladimir Menshakov Date: Sun, 18 Oct 2009 12:13:58 +0000 Subject: added thumbnails for the save states. removed snprintf's. svn-id: r45219 --- engines/teenagent/teenagent.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'engines/teenagent/teenagent.cpp') diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index a1176e04ef..b8a4c059ed 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -33,6 +33,7 @@ #include "teenagent/scene.h" #include "teenagent/objects.h" #include "teenagent/music.h" +#include "graphics/thumbnail.h" namespace TeenAgent { @@ -162,9 +163,10 @@ void TeenAgentEngine::deinit() { Common::Error TeenAgentEngine::loadGameState(int slot) { debug(0, "loading from slot %d", slot); - char slotStr[16]; - snprintf(slotStr, sizeof(slotStr), "teenagent.%d", slot); - Common::InSaveFile *in = _saveFileMan->openForLoading(slotStr); + Common::InSaveFile *in = _saveFileMan->openForLoading(Common::String::printf("teenagent.%02d", slot)); + if (in == NULL) + in = _saveFileMan->openForLoading(Common::String::printf("teenagent.%d", slot)); + if (in == NULL) return Common::kReadPermissionDenied; @@ -172,6 +174,7 @@ Common::Error TeenAgentEngine::loadGameState(int slot) { assert(res->dseg.size() >= 0x6478 + 0x777a); char data[0x777a]; + in->seek(0); if (in->read(data, 0x777a) != 0x777a) { delete in; return Common::kReadingFailed; @@ -193,9 +196,7 @@ Common::Error TeenAgentEngine::loadGameState(int slot) { Common::Error TeenAgentEngine::saveGameState(int slot, const char *desc) { debug(0, "saving to slot %d", slot); - char slotStr[16]; - snprintf(slotStr, sizeof(slotStr), "teenagent.%d", slot); - Common::OutSaveFile *out = _saveFileMan->openForSaving(slotStr); + Common::OutSaveFile *out = _saveFileMan->openForSaving(Common::String::printf("teenagent.%02d", slot)); if (out == NULL) return Common::kWritePermissionDenied; @@ -208,7 +209,10 @@ Common::Error TeenAgentEngine::saveGameState(int slot, const char *desc) { assert(res->dseg.size() >= 0x6478 + 0x777a); strncpy((char *)res->dseg.ptr(0x6478), desc, 0x16); out->write(res->dseg.ptr(0x6478), 0x777a); + if (!Graphics::saveThumbnail(*out)) + warning("saveThumbnail failed"); delete out; + return Common::kNoError; } -- cgit v1.2.3