[Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.146,1.147
Marcus Comstedt
marcus_c at users.sourceforge.net
Sun Aug 10 13:51:04 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv7983/scumm
Modified Files:
script_v5.cpp
Log Message:
Replaced use of File with use of SaveFileManager where appropriate.
Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -d -r1.146 -r1.147
--- script_v5.cpp 8 Aug 2003 11:32:40 -0000 1.146
+++ script_v5.cpp 10 Aug 2003 20:50:50 -0000 1.147
@@ -1757,7 +1757,7 @@
break;
case 13:{ /* save-string */
- File file;
+ SaveFile *file;
char filename[256], *s;
a = getVarOrDirectByte(0x80);
@@ -1765,16 +1765,19 @@
s = filename;
while ((*s++ = fetchScriptByte()));
- file.open(filename, getSavePath(), File::kFileWriteMode);
- if (file.isOpen()) {
+ SaveFileManager *mgr = _system->get_savefile_manager();
+ file = mgr->open_savefile(filename, getSavePath(), true);
+ if (file != NULL) {
byte *ptr;
ptr = getResourceAddress(rtString, a);
- file.write(ptr, resStrLen(ptr) + 1);
+ file->write(ptr, resStrLen(ptr) + 1);
+ delete file;
}
+ delete mgr;
break;
}
case 14:{ /* load-string */
- File file;
+ SaveFile *file;
char filename[256], *s;
a = getVarOrDirectByte(0x80);
@@ -1782,12 +1785,18 @@
s = filename;
while ((*s++ = fetchScriptByte()));
- file.open(filename, getSavePath(), File::kFileReadMode);
- if (file.isOpen()) {
+ SaveFileManager *mgr = _system->get_savefile_manager();
+ file = mgr->open_savefile(filename, getSavePath(), false);
+ if (file != NULL) {
byte *ptr;
- int len = file.size();
- ptr = (byte *)calloc(len + 1, 1); // Create a zero terminated buffer
- file.read(ptr, len); // Read in the data
+ int len = 256, cnt = 0;
+ ptr = (byte *)malloc(len);
+ while (ptr) {
+ int r = file->read(ptr+cnt, len-cnt);
+ if ((cnt += r) < len) break;
+ ptr = (byte *)realloc(ptr, len<<=1);
+ }
+ ptr[cnt] = '\0';
loadPtrToResource(rtString, a, ptr);
free(ptr);
}
More information about the Scummvm-git-logs
mailing list