aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/kfile.cpp')
-rw-r--r--engines/sci/engine/kfile.cpp66
1 files changed, 33 insertions, 33 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index c03e69c6d0..a028671140 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -196,7 +196,7 @@ void file_open(EngineState *s, const char *filename, int mode) {
}
reg_t kFOpen(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *name = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *name = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
int mode = argv[1].toUint16();
debug(3, "kFOpen(%s,0x%x)", name, mode);
@@ -249,7 +249,7 @@ void fwrite_wrapper(EngineState *s, int handle, char *data, int length) {
reg_t kFPuts(EngineState *s, int funct_nr, int argc, reg_t *argv) {
int handle = argv[0].toUint16();
- char *data = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *data = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
fwrite_wrapper(s, handle, data, strlen(data));
return s->r_acc;
@@ -306,7 +306,7 @@ static void fseek_wrapper(EngineState *s, int handle, int offset, int whence) {
}
reg_t kFGets(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *dest = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *dest = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
int maxsize = argv[1].toUint16();
int handle = argv[2].toUint16();
@@ -319,7 +319,7 @@ reg_t kFGets(EngineState *s, int funct_nr, int argc, reg_t *argv) {
* Writes the cwd to the supplied address and returns the address in acc.
*/
reg_t kGetCWD(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *targetaddr = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *targetaddr = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
// We do not let the scripts see the file system, instead pretending
// we are always in the same directory.
@@ -355,8 +355,8 @@ reg_t kDeviceInfo(EngineState *s, int funct_nr, int argc, reg_t *argv) {
switch (mode) {
case K_DEVICE_INFO_GET_DEVICE:
- input_s = kernel_dereference_char_pointer(s, argv[1], 0);
- output_s = kernel_dereference_char_pointer(s, argv[2], 0);
+ input_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
+ output_s = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
assert(input_s != output_s);
strcpy(output_s, "/");
@@ -364,15 +364,15 @@ reg_t kDeviceInfo(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
case K_DEVICE_INFO_GET_CURRENT_DEVICE:
- output_s = kernel_dereference_char_pointer(s, argv[1], 0);
+ output_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
strcpy(output_s, "/");
debug(3, "K_DEVICE_INFO_GET_CURRENT_DEVICE() -> %s", output_s);
break;
case K_DEVICE_INFO_PATHS_EQUAL: {
- char *path1_s = kernel_dereference_char_pointer(s, argv[1], 0);
- char *path2_s = kernel_dereference_char_pointer(s, argv[2], 0);
+ char *path1_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
+ char *path2_s = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
debug(3, "K_DEVICE_INFO_PATHS_EQUAL(%s,%s)", path1_s, path2_s);
return make_reg(0, Common::matchString(path2_s, path1_s, true));
@@ -380,7 +380,7 @@ reg_t kDeviceInfo(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
case K_DEVICE_INFO_IS_FLOPPY:
- input_s = kernel_dereference_char_pointer(s, argv[1], 0);
+ input_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
debug(3, "K_DEVICE_INFO_IS_FLOPPY(%s)", input_s);
return NULL_REG; /* Never */
@@ -389,8 +389,8 @@ reg_t kDeviceInfo(EngineState *s, int funct_nr, int argc, reg_t *argv) {
** for more information on our workaround for this.
*/
case K_DEVICE_INFO_GET_SAVECAT_NAME: {
- output_s = kernel_dereference_char_pointer(s, argv[1], 0);
- game_prefix = kernel_dereference_char_pointer(s, argv[2], 0);
+ output_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
+ game_prefix = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
sprintf(output_s, "__throwaway");
debug(3, "K_DEVICE_INFO_GET_SAVECAT_NAME(%s) -> %s", game_prefix, output_s);
@@ -398,8 +398,8 @@ reg_t kDeviceInfo(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
case K_DEVICE_INFO_GET_SAVEFILE_NAME: {
- output_s = kernel_dereference_char_pointer(s, argv[1], 0);
- game_prefix = kernel_dereference_char_pointer(s, argv[2], 0);
+ output_s = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
+ game_prefix = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
int savegame_id = argv[3].toUint16();
sprintf(output_s, "__throwaway");
debug(3, "K_DEVICE_INFO_GET_SAVEFILE_NAME(%s,%d) -> %s", game_prefix, savegame_id, output_s);
@@ -421,7 +421,7 @@ reg_t kGetSaveDir(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kCheckFreeSpace(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *path = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *path = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
debug(3, "kCheckFreeSpace(%s)", path);
// We simply always pretend that there is enough space.
@@ -479,7 +479,7 @@ void listSavegames(Common::Array<SavegameDesc> &saves) {
}
reg_t kCheckSaveGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *game_id = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *game_id = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
int savedir_nr = argv[1].toUint16();
debug(3, "kCheckSaveGame(%s, %d)", game_id, savedir_nr);
@@ -515,10 +515,10 @@ reg_t kCheckSaveGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kGetSaveFiles(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *game_id = kernel_dereference_char_pointer(s, argv[0], 0);
- char *nametarget = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *game_id = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
+ char *nametarget = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
reg_t nametarget_base = argv[1];
- reg_t *nameoffsets = kernel_dereference_reg_pointer(s, argv[2], 0);
+ reg_t *nameoffsets = kernel_dereference_reg_pointer(s->segmentManager, argv[2], 0);
debug(3, "kGetSaveFiles(%s,%s)", game_id, nametarget);
@@ -565,11 +565,11 @@ reg_t kGetSaveFiles(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kSaveGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *game_id = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *game_id = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
int savedir_nr = argv[1].toUint16();
int savedir_id; // Savegame ID, derived from savedir_nr and the savegame ID list
- char *game_description = kernel_dereference_char_pointer(s, argv[2], 0);
- char *version = argc > 3 ? strdup(kernel_dereference_char_pointer(s, argv[3], 0)) : NULL;
+ char *game_description = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
+ char *version = argc > 3 ? strdup(kernel_dereference_char_pointer(s->segmentManager, argv[3], 0)) : NULL;
debug(3, "kSaveGame(%s,%d,%s,%s)", game_id, savedir_nr, game_description, version);
s->game_version = version;
@@ -638,7 +638,7 @@ reg_t kSaveGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kRestoreGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- char *game_id = kernel_dereference_char_pointer(s, argv[0], 0);
+ char *game_id = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
int savedir_nr = argv[1].toUint16();
debug(3, "kRestoreGame(%s,%d)", game_id, savedir_nr);
@@ -677,7 +677,7 @@ reg_t kRestoreGame(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
reg_t kValidPath(EngineState *s, int funct_nr, int argc, reg_t *argv) {
- const char *path = kernel_dereference_char_pointer(s, argv[0], 0);
+ const char *path = kernel_dereference_char_pointer(s->segmentManager, argv[0], 0);
// FIXME: For now, we only accept the (fake) root dir "/" as a valid path.
s->r_acc = make_reg(0, 0 == strcmp(path, "/"));
@@ -728,7 +728,7 @@ void DirSeeker::nextFile() {
return;
}
- char *mem = kernel_dereference_char_pointer(_vm, _outbuffer, 0);
+ char *mem = kernel_dereference_char_pointer(_vm->segmentManager, _outbuffer, 0);
memset(mem, 0, 13);
// TODO: Transform the string back into a format usable by the SCI scripts.
@@ -749,7 +749,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
switch (func_nr) {
case K_FILEIO_OPEN : {
- char *name = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *name = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
int mode = argv[2].toUint16();
file_open(s, name, mode);
@@ -765,7 +765,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
case K_FILEIO_READ_RAW : {
int handle = argv[1].toUint16();
- char *dest = kernel_dereference_char_pointer(s, argv[2], 0);
+ char *dest = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
int size = argv[3].toUint16();
debug(3, "K_FILEIO_READ_RAW(%d,%d)", handle, size);
@@ -774,7 +774,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
}
case K_FILEIO_WRITE_RAW : {
int handle = argv[1].toUint16();
- char *buf = kernel_dereference_char_pointer(s, argv[2], 0);
+ char *buf = kernel_dereference_char_pointer(s->segmentManager, argv[2], 0);
int size = argv[3].toUint16();
debug(3, "K_FILEIO_WRITE_RAW(%d,%d)", handle, size);
@@ -782,7 +782,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case K_FILEIO_UNLINK : {
- char *name = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *name = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
debug(3, "K_FILEIO_UNLINK(%s)", name);
Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
@@ -793,7 +793,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case K_FILEIO_READ_STRING : {
- char *dest = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *dest = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
int size = argv[2].toUint16();
int handle = argv[3].toUint16();
debug(3, "K_FILEIO_READ_STRING(%d,%d)", handle, size);
@@ -804,7 +804,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
case K_FILEIO_WRITE_STRING : {
int handle = argv[1].toUint16();
int size = argv[3].toUint16();
- char *buf = kernel_dereference_char_pointer(s, argv[2], size);
+ char *buf = kernel_dereference_char_pointer(s->segmentManager, argv[2], size);
debug(3, "K_FILEIO_WRITE_STRING(%d,%d)", handle, size);
// FIXME: What is the difference between K_FILEIO_WRITE_STRING and
@@ -825,7 +825,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case K_FILEIO_FIND_FIRST : {
- char *mask = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *mask = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
reg_t buf = argv[2];
int attr = argv[3].toUint16(); // We won't use this, Win32 might, though...
debug(3, "K_FILEIO_FIND_FIRST(%s,0x%x)", mask, attr);
@@ -844,7 +844,7 @@ reg_t kFileIO(EngineState *s, int funct_nr, int argc, reg_t *argv) {
break;
}
case K_FILEIO_FILE_EXISTS : {
- char *name = kernel_dereference_char_pointer(s, argv[1], 0);
+ char *name = kernel_dereference_char_pointer(s->segmentManager, argv[1], 0);
// Check for regular file
bool exists = Common::File::exists(name);