aboutsummaryrefslogtreecommitdiff
path: root/engines/teenagent/teenagent.cpp
diff options
context:
space:
mode:
authorVladimir Menshakov2009-10-18 12:13:58 +0000
committerVladimir Menshakov2009-10-18 12:13:58 +0000
commit343bd3fb4d0eef928fe06c6cbc488e84d7a4185b (patch)
treef237f3e8e4260c04b6d60e714ea7aecdd3c9d676 /engines/teenagent/teenagent.cpp
parent783198941e25459c113945a0e39dc4d6775eb79d (diff)
downloadscummvm-rg350-343bd3fb4d0eef928fe06c6cbc488e84d7a4185b.tar.gz
scummvm-rg350-343bd3fb4d0eef928fe06c6cbc488e84d7a4185b.tar.bz2
scummvm-rg350-343bd3fb4d0eef928fe06c6cbc488e84d7a4185b.zip
added thumbnails for the save states. removed snprintf's.
svn-id: r45219
Diffstat (limited to 'engines/teenagent/teenagent.cpp')
-rw-r--r--engines/teenagent/teenagent.cpp16
1 files changed, 10 insertions, 6 deletions
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;
}