From f233b89463352c99bda6186c43f8433bc2108bb0 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Mar 2009 03:55:09 +0000 Subject: SCUMM: Modified version of patch #2674880 (FOA: unique filename for IQ-points file) svn-id: r39436 --- engines/scumm/script_v5.cpp | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'engines/scumm') diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp index a50dde5271..b984f56ab0 100644 --- a/engines/scumm/script_v5.cpp +++ b/engines/scumm/script_v5.cpp @@ -2059,15 +2059,20 @@ void ScummEngine_v5::o5_roomOps() { case 13: // SO_SAVE_STRING { - Common::OutSaveFile *file; - char filename[256], *s; + Common::String filename; + char chr; a = getVarOrDirectByte(PARAM_1); - s = filename; - while ((*s++ = fetchScriptByte())) - ; + while ((chr = fetchScriptByte())) + filename += chr; - file = _saveFileMan->openForSaving(filename); + if (filename.hasPrefix("iq-")) { + filename = _targetName + ".iq"; + } else { + error("SO_SAVE_STRING: Unsupported filename %s\n", filename.c_str()); + } + + Common::OutSaveFile *file = _saveFileMan->openForSaving(filename.c_str()); if (file != NULL) { byte *ptr; ptr = getResourceAddress(rtString, a); @@ -2079,15 +2084,20 @@ void ScummEngine_v5::o5_roomOps() { } case 14: // SO_LOAD_STRING { - Common::InSaveFile *file; - char filename[256], *s; + Common::String filename; + char chr; a = getVarOrDirectByte(PARAM_1); - s = filename; - while ((*s++ = fetchScriptByte())) - ; + while ((chr = fetchScriptByte())) + filename += chr; + + if (filename.hasPrefix("iq-")) { + filename = _targetName + ".iq"; + } else { + error("SO_SAVE_STRING: Unsupported filename %s\n", filename.c_str()); + } - file = _saveFileMan->openForLoading(filename); + Common::InSaveFile *file = _saveFileMan->openForLoading(filename.c_str()); if (file != NULL) { byte *ptr; int len = 256, cnt = 0; -- cgit v1.2.3