aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-12 17:11:51 +0400
committerAlyssa Milburn2011-06-15 17:34:18 +0200
commit8ddbbc0c504893dad7fbde6a48b6edb668b249f9 (patch)
treea6ede10ad35fa8e765c6a29906c2b6b70869a495
parentfdcb21ffee2688fec1c1b34ebf4a0a14fe4fcbf1 (diff)
downloadscummvm-rg350-8ddbbc0c504893dad7fbde6a48b6edb668b249f9.tar.gz
scummvm-rg350-8ddbbc0c504893dad7fbde6a48b6edb668b249f9.tar.bz2
scummvm-rg350-8ddbbc0c504893dad7fbde6a48b6edb668b249f9.zip
DREAMWEB: moved out file write/read from sources
-rw-r--r--engines/dreamweb/dreamgen.cpp540
-rw-r--r--engines/dreamweb/dreamgen.h4
-rw-r--r--engines/dreamweb/dreamweb.cpp17
-rw-r--r--engines/dreamweb/dreamweb.h6
4 files changed, 332 insertions, 235 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index cad1987df4..10766a7599 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -178,6 +178,8 @@ void showsaveops(Context &context);
void readkey(Context &context);
void getnamepos(Context &context);
void selectslot(Context &context);
+void loadposition(Context &context);
+void saveposition(Context &context);
void restoreall(Context &context);
void redrawmainscrn(Context &context);
void checkinput(Context &context);
@@ -16308,6 +16310,106 @@ void oldtonames(Context & context) {
return;
}
+void saveposition(Context & context) {
+ makeheader(context);
+ context.al = context.data.byte(kCurrentslot);
+ context.ah = 0;
+ context.push(context.ax);
+ context.cx = 13;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context._add(context.dx, context.ax);
+ openforsave(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefilewrite(context);
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 5912;
+ context.ax = context.pop();
+ context.cx = 17;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8350;
+ context._add(context.dx, context.ax);
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 0;
+ saveseg(context);
+ context.ds = context.data.word(kExtras);
+ context.dx = (0);
+ saveseg(context);
+ context.ds = context.data.word(kBuffers);
+ context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 7750;
+ saveseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 534;
+ saveseg(context);
+fquit:
+ closefile(context);
+ return;
+}
+
+void loadposition(Context & context) {
+ context.data.word(kTimecount) = 0;
+ clearchanges(context);
+ context.al = context.data.byte(kCurrentslot);
+ context.ah = 0;
+ context.push(context.ax);
+ context.cx = 13;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context._add(context.dx, context.ax);
+ openfile(context);
+ context.ah = 0x3f;
+ context.ds = context.cs;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefileread(context);
+ context.es = context.cs;
+ context.di = 5912;
+ context.ax = context.pop();
+ context.cx = 17;
+ context._mul(context.cx);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8350;
+ context._add(context.dx, context.ax);
+ loadseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 0;
+ loadseg(context);
+ context.ds = context.data.word(kExtras);
+ context.dx = (0);
+ loadseg(context);
+ context.ds = context.data.word(kBuffers);
+ context.dx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ loadseg(context);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 7750;
+ loadseg(context);
+ context.ds = context.cs;
+ context.dx = 534;
+ loadseg(context);
+ closefile(context);
+ return;
+}
+
void makeheader(Context & context) {
context.dx = context.data;
context.es = context.dx;
@@ -20779,21 +20881,21 @@ void __start(Context &context) {
0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0x04, 0x01, 0x2c, 0x01, 0x00, 0x00, 0x2c, 0x00,
0x84, 0xc5, 0xd2, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x2c, 0x00, 0xe0, 0xc3, 0x90, 0x00, 0xb0, 0x00,
0x40, 0x00, 0x60, 0x00, 0x84, 0xc3, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0xc8, 0x00, 0x88, 0xc3,
- 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
+ 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01,
0x9d, 0x00, 0xc6, 0x00, 0x48, 0xc3, 0xff, 0x00, 0x26, 0x01, 0x00, 0x00, 0x18, 0x00, 0xcc, 0xc3,
0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00, 0x00, 0x01, 0x9e, 0x00,
0xca, 0x00, 0xe4, 0xc3, 0x50, 0x00, 0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0x9c, 0xc3, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00,
0xc6, 0x00, 0x48, 0xc3, 0xf7, 0x00, 0x2d, 0x01, 0x28, 0x00, 0x38, 0x00, 0x4c, 0xc3, 0x50, 0x00,
0x2c, 0x01, 0x3a, 0x00, 0x92, 0x00, 0xc0, 0xc6, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
+ 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0xf0, 0x00,
0x22, 0x01, 0x02, 0x00, 0x2c, 0x00, 0x98, 0xc4, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00,
- 0x9c, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
- 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
+ 0xa4, 0xca, 0xff, 0xff, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xee, 0x00, 0x02, 0x01, 0x04, 0x00,
0x2c, 0x00, 0xcc, 0xc4, 0x68, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x2c, 0x00, 0xd0, 0xc4, 0x18, 0x01,
0x34, 0x01, 0x04, 0x00, 0x2c, 0x00, 0xb4, 0xc4, 0x68, 0x00, 0xd8, 0x00, 0x8a, 0x00, 0xc0, 0x00,
0xd4, 0xc4, 0x11, 0x01, 0x40, 0x01, 0x9d, 0x00, 0xc6, 0x00, 0x80, 0xc4, 0x00, 0x00, 0x40, 0x01,
- 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
+ 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x45, 0x58, 0x49, 0x54, 0x20, 0x48, 0x45, 0x4c,
0x50, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x4c, 0x4f, 0x47, 0x4f,
0x4e, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20,
0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44,
@@ -20840,28 +20942,28 @@ void __start(Context &context) {
0xc7, 0xc9, 0x00, 0xde, 0x00, 0x71, 0x00, 0x82, 0x00, 0x7c, 0xc7, 0x9d, 0x00, 0xb2, 0x00, 0x83,
0x00, 0x91, 0x00, 0x80, 0xc7, 0xb3, 0x00, 0xde, 0x00, 0x83, 0x00, 0x91, 0x00, 0x84, 0xc7, 0xdc,
0x00, 0xea, 0x00, 0x98, 0x00, 0xa6, 0x00, 0x54, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0xae, 0x00, 0xbc, 0x00, 0x84, 0x00, 0x94, 0x00, 0x54, 0xc7, 0x00,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x18, 0x01, 0x40, 0x01, 0xa0,
0x00, 0xc8, 0x00, 0x54, 0xc7, 0x8f, 0x00, 0x2c, 0x01, 0x06, 0x00, 0xc2, 0x00, 0xbc, 0xc7, 0x00,
0x00, 0x8f, 0x00, 0x06, 0x00, 0xc2, 0x00, 0xc4, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0x68, 0x00, 0x80, 0x00, 0x3a, 0x00, 0x48, 0x00, 0xe0, 0xc7, 0x40,
0x00, 0x74, 0x00, 0x4c, 0x00, 0x6a, 0x00, 0xe4, 0xc7, 0x74, 0x00, 0xa8, 0x00, 0x4c, 0x00, 0x6a,
0x00, 0xe8, 0xc7, 0x40, 0x00, 0x74, 0x00, 0x6a, 0x00, 0x88, 0x00, 0xec, 0xc7, 0x74, 0x00, 0xa8,
- 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c,
+ 0x00, 0x6a, 0x00, 0x88, 0x00, 0xf0, 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4,
0xca, 0xff, 0xff, 0xba, 0x00, 0xca, 0x00, 0x9d, 0x00, 0xad, 0x00, 0x20, 0xc8, 0xf3, 0x00, 0x03,
0x01, 0x83, 0x00, 0x93, 0x00, 0x1c, 0xc8, 0x0c, 0x01, 0x1c, 0x01, 0xa8, 0x00, 0xb8, 0x00, 0x54,
- 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
+ 0xc7, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x77, 0x00, 0xae,
0x00, 0x52, 0x00, 0x80, 0x00, 0x38, 0xc8, 0x46, 0x00, 0x89, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84,
0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x44, 0x00, 0x98, 0x00, 0x50, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00,
- 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
+ 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c,
0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x5c, 0xc8, 0x3e, 0x00, 0x98, 0x00, 0x38,
- 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff,
+ 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff,
0xff, 0x77, 0x00, 0xae, 0x00, 0x52, 0x00, 0x80, 0x00, 0x48, 0xc8, 0x46, 0x00, 0x8b, 0x00, 0x3e,
0x00, 0x6f, 0x00, 0x54, 0xc8, 0xec, 0x00, 0xfc, 0x00, 0x70, 0x00, 0x80, 0x00, 0x4c, 0xc8, 0x00,
- 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
+ 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0xec, 0x00, 0xfc, 0x00, 0x70,
0x00, 0x80, 0x00, 0x4c, 0xc8, 0xbc, 0x00, 0xfa, 0x00, 0x40, 0x00, 0x98, 0x00, 0x58, 0xc8, 0x3e,
0x00, 0x98, 0x00, 0x38, 0x00, 0x85, 0x00, 0x78, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8,
- 0x00, 0x9c, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
+ 0x00, 0xa4, 0xca, 0xff, 0xff, 0x0d, 0x0a, 0x0d, 0x0a, 0x44, 0x72, 0x65, 0x61, 0x6d, 0x77, 0x65,
0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0d,
0x0a, 0x55, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
0x61, 0x74, 0x65, 0x20, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x4d, 0x65, 0x6d,
@@ -20925,18 +21027,18 @@ void __start(Context &context) {
0x0d, 0x0a, 0x24, 0x0d, 0x0a, 0x0d, 0x0a, 0x54, 0x72, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44,
0x72, 0x65, 0x61, 0x6d, 0x77, 0x65, 0x62, 0x20, 0x43, 0x44, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f,
0x75, 0x72, 0x20, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x2e, 0x2e, 0x2e, 0x2e, 0x0d, 0x0a, 0x0d,
- 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xbc, 0xc8, 0x50, 0x00,
+ 0x0a, 0x0d, 0x0a, 0x24, 0x81, 0x00, 0xb8, 0x00, 0x52, 0x00, 0x80, 0x00, 0xc4, 0xc8, 0x50, 0x00,
0x93, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x84, 0xc8, 0xb7, 0x00, 0xfa, 0x00, 0x3e, 0x00, 0x6f, 0x00,
- 0xc0, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x9c, 0xca, 0xff, 0xff, 0x53, 0x50,
+ 0xc8, 0xc8, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xa4, 0xca, 0xff, 0xff, 0x53, 0x50,
0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57,
0x00, 0x87, 0x83, 0x81, 0x82, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00,
0x00, 0x32, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0xe2, 0x00, 0xf4, 0x00, 0x0a, 0x00, 0x1a,
0x00, 0x2c, 0xc8, 0xe2, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04,
- 0x01, 0x64, 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0,
+ 0x01, 0x64, 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8,
0xc9, 0xff, 0xff, 0x2c, 0x00, 0x46, 0x00, 0x20, 0x00, 0x2e, 0x00, 0x74, 0xc4, 0x00, 0x00, 0x32,
0x00, 0x00, 0x00, 0xb4, 0x00, 0x80, 0xc3, 0x12, 0x01, 0x24, 0x01, 0x0a, 0x00, 0x1a, 0x00, 0x2c,
0xc8, 0x12, 0x01, 0x24, 0x01, 0x1a, 0x00, 0x28, 0x00, 0x30, 0xc8, 0xf0, 0x00, 0x04, 0x01, 0x64,
- 0x00, 0x7c, 0x00, 0xc8, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd0, 0xc9, 0xff,
+ 0x00, 0x7c, 0x00, 0xd0, 0xc9, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc8, 0x00, 0xd8, 0xc9, 0xff,
0xff, 0x00, 0x21, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x0a, 0x0f, 0xff, 0x00, 0x16, 0x00, 0x0f, 0xff,
0x00, 0x0b, 0x00, 0x0f, 0xff, 0x00, 0x0b, 0x0a, 0x0f, 0xff, 0x00, 0x00, 0x0a, 0x0f, 0xff, 0x01,
0x2c, 0x0a, 0x06, 0xff, 0x01, 0x2c, 0x00, 0x0d, 0xff, 0x02, 0x21, 0x00, 0x06, 0xff, 0x02, 0x16,
@@ -21720,205 +21822,207 @@ void __dispatch_call(Context &context, unsigned addr) {
case 0xc888: error(context); break;
case 0xc88c: namestoold(context); break;
case 0xc890: oldtonames(context); break;
- case 0xc894: saveposition(context); break;
- case 0xc898: loadposition(context); break;
- case 0xc89c: loadseg(context); break;
- case 0xc8a0: makeheader(context); break;
- case 0xc8a4: storeit(context); break;
- case 0xc8a8: saveseg(context); break;
- case 0xc8ac: findlen(context); break;
- case 0xc8b0: scanfornames(context); break;
- case 0xc8b4: decide(context); break;
- case 0xc8b8: showdecisions(context); break;
- case 0xc8bc: newgame(context); break;
- case 0xc8c0: loadold(context); break;
- case 0xc8c4: loadspeech(context); break;
- case 0xc8c8: createname(context); break;
- case 0xc8cc: loadsample(context); break;
- case 0xc8d0: loadsecondsample(context); break;
- case 0xc8d4: soundstartup(context); break;
- case 0xc8d8: trysoundalloc(context); break;
- case 0xc8dc: setsoundoff(context); break;
- case 0xc8e0: checksoundint(context); break;
- case 0xc8e4: enablesoundint(context); break;
- case 0xc8e8: disablesoundint(context); break;
- case 0xc8ec: interupttest(context); break;
- case 0xc8f0: soundend(context); break;
- case 0xc8f4: out22c(context); break;
- case 0xc8f8: playchannel0(context); break;
- case 0xc8fc: playchannel1(context); break;
- case 0xc900: makenextblock(context); break;
- case 0xc904: volumeadjust(context); break;
- case 0xc908: loopchannel0(context); break;
- case 0xc90c: cancelch0(context); break;
- case 0xc910: cancelch1(context); break;
- case 0xc914: channel0only(context); break;
- case 0xc918: channel1only(context); break;
- case 0xc91c: channel0tran(context); break;
- case 0xc920: bothchannels(context); break;
- case 0xc924: saveems(context); break;
- case 0xc928: restoreems(context); break;
- case 0xc92c: domix(context); break;
- case 0xc930: dmaend(context); break;
- case 0xc934: startdmablock(context); break;
- case 0xc938: setuppit(context); break;
- case 0xc93c: getridofpit(context); break;
- case 0xc940: pitinterupt(context); break;
- case 0xc944: dreamweb(context); break;
- case 0xc948: entrytexts(context); break;
- case 0xc94c: entryanims(context); break;
- case 0xc950: initialinv(context); break;
- case 0xc954: pickupob(context); break;
- case 0xc958: setupemm(context); break;
- case 0xc95c: removeemm(context); break;
- case 0xc960: checkforemm(context); break;
- case 0xc964: checkbasemem(context); break;
- case 0xc968: allocatebuffers(context); break;
- case 0xc96c: clearbuffers(context); break;
- case 0xc970: clearchanges(context); break;
- case 0xc974: clearbeforeload(context); break;
- case 0xc978: clearreels(context); break;
- case 0xc97c: clearrest(context); break;
- case 0xc980: deallocatemem(context); break;
- case 0xc984: allocatemem(context); break;
- case 0xc98c: parseblaster(context); break;
- case 0xc990: startup(context); break;
- case 0xc994: startup1(context); break;
- case 0xc998: screenupdate(context); break;
- case 0xc99c: watchreel(context); break;
- case 0xc9a0: checkforshake(context); break;
- case 0xc9a4: watchcount(context); break;
- case 0xc9a8: showtime(context); break;
- case 0xc9ac: dumpwatch(context); break;
- case 0xc9b0: showbyte(context); break;
- case 0xc9b4: onedigit(context); break;
- case 0xc9b8: twodigitnum(context); break;
- case 0xc9bc: showword(context); break;
- case 0xc9c0: convnum(context); break;
- case 0xc9c4: mainscreen(context); break;
- case 0xc9c8: madmanrun(context); break;
- case 0xc9cc: checkcoords(context); break;
- case 0xc9d0: identifyob(context); break;
- case 0xc9d4: checkifperson(context); break;
- case 0xc9d8: checkifset(context); break;
- case 0xc9dc: checkifex(context); break;
- case 0xc9e0: checkiffree(context); break;
- case 0xc9e4: isitdescribed(context); break;
- case 0xc9e8: findpathofpoint(context); break;
- case 0xc9ec: findfirstpath(context); break;
- case 0xc9f0: turnpathon(context); break;
- case 0xc9f4: turnpathoff(context); break;
- case 0xc9f8: turnanypathon(context); break;
- case 0xc9fc: turnanypathoff(context); break;
- case 0xca00: checkifpathison(context); break;
- case 0xca04: afternewroom(context); break;
- case 0xca08: atmospheres(context); break;
- case 0xca0c: walkintoroom(context); break;
- case 0xca10: afterintroroom(context); break;
- case 0xca14: obname(context); break;
- case 0xca18: finishedwalking(context); break;
- case 0xca1c: examineobtext(context); break;
- case 0xca20: commandwithob(context); break;
- case 0xca24: commandonly(context); break;
- case 0xca28: printmessage(context); break;
- case 0xca2c: printmessage2(context); break;
- case 0xca30: blocknametext(context); break;
- case 0xca34: personnametext(context); break;
- case 0xca38: walktotext(context); break;
- case 0xca3c: getflagunderp(context); break;
- case 0xca40: setwalk(context); break;
- case 0xca44: autosetwalk(context); break;
- case 0xca48: checkdest(context); break;
- case 0xca4c: bresenhams(context); break;
- case 0xca50: workoutframes(context); break;
- case 0xca54: getroomspaths(context); break;
- case 0xca58: copyname(context); break;
- case 0xca5c: findobname(context); break;
- case 0xca60: showicon(context); break;
- case 0xca64: middlepanel(context); break;
- case 0xca68: showman(context); break;
- case 0xca6c: showpanel(context); break;
- case 0xca70: roomname(context); break;
- case 0xca74: usecharset1(context); break;
- case 0xca78: usetempcharset(context); break;
- case 0xca7c: showexit(context); break;
- case 0xca80: panelicons1(context); break;
- case 0xca84: showwatch(context); break;
- case 0xca88: gettime(context); break;
- case 0xca8c: zoomicon(context); break;
- case 0xca90: showblink(context); break;
- case 0xca94: dumpblink(context); break;
- case 0xca98: worktoscreenm(context); break;
- case 0xca9c: blank(context); break;
- case 0xcaa0: allpointer(context); break;
- case 0xcaa4: hangonp(context); break;
- case 0xcaa8: hangonw(context); break;
- case 0xcaac: hangoncurs(context); break;
- case 0xcab0: getunderzoom(context); break;
- case 0xcab4: dumpzoom(context); break;
- case 0xcab8: putunderzoom(context); break;
- case 0xcabc: crosshair(context); break;
- case 0xcac0: showpointer(context); break;
- case 0xcac4: delpointer(context); break;
- case 0xcac8: dumppointer(context); break;
- case 0xcacc: undertextline(context); break;
- case 0xcad0: deltextline(context); break;
- case 0xcad4: dumptextline(context); break;
- case 0xcad8: animpointer(context); break;
- case 0xcadc: setmouse(context); break;
- case 0xcae0: readmouse(context); break;
- case 0xcae4: mousecall(context); break;
- case 0xcae8: readmouse1(context); break;
- case 0xcaec: readmouse2(context); break;
- case 0xcaf0: readmouse3(context); break;
- case 0xcaf4: readmouse4(context); break;
- case 0xcaf8: readkey(context); break;
- case 0xcafc: convertkey(context); break;
- case 0xcb00: randomnum1(context); break;
- case 0xcb04: randomnum2(context); break;
- case 0xcb0c: hangon(context); break;
- case 0xcb10: loadtraveltext(context); break;
- case 0xcb14: loadintotemp(context); break;
- case 0xcb18: loadintotemp2(context); break;
- case 0xcb1c: loadintotemp3(context); break;
- case 0xcb20: loadtempcharset(context); break;
- case 0xcb24: standardload(context); break;
- case 0xcb28: loadtemptext(context); break;
- case 0xcb2c: loadroom(context); break;
- case 0xcb30: loadroomssample(context); break;
- case 0xcb34: getridofreels(context); break;
- case 0xcb38: getridofall(context); break;
- case 0xcb3c: restorereels(context); break;
- case 0xcb40: restoreall(context); break;
- case 0xcb44: sortoutmap(context); break;
- case 0xcb48: startloading(context); break;
- case 0xcb4c: disablepath(context); break;
- case 0xcb50: findxyfrompath(context); break;
- case 0xcb54: findroominloc(context); break;
- case 0xcb58: getroomdata(context); break;
- case 0xcb5c: readheader(context); break;
- case 0xcb60: dontloadseg(context); break;
- case 0xcb64: allocateload(context); break;
- case 0xcb68: fillspace(context); break;
- case 0xcb6c: getridoftemp(context); break;
- case 0xcb70: getridoftemptext(context); break;
- case 0xcb74: getridoftemp2(context); break;
- case 0xcb78: getridoftemp3(context); break;
- case 0xcb7c: getridoftempcharset(context); break;
- case 0xcb80: getridoftempsp(context); break;
- case 0xcb84: readsetdata(context); break;
- case 0xcb88: createfile(context); break;
- case 0xcb8c: openfile(context); break;
- case 0xcb90: openfilenocheck(context); break;
- case 0xcb94: openforsave(context); break;
- case 0xcb98: closefile(context); break;
- case 0xcb9c: readfromfile(context); break;
- case 0xcba0: setkeyboardint(context); break;
- case 0xcba4: resetkeyboard(context); break;
- case 0xcba8: keyboardread(context); break;
- case 0xcbac: walkandexamine(context); break;
- case 0xcbb0: doload(context); break;
- case 0xcbb4: generalerror(context); break;
+ case 0xc894: savefilewrite(context); break;
+ case 0xc898: savefileread(context); break;
+ case 0xc89c: saveposition(context); break;
+ case 0xc8a0: loadposition(context); break;
+ case 0xc8a4: loadseg(context); break;
+ case 0xc8a8: makeheader(context); break;
+ case 0xc8ac: storeit(context); break;
+ case 0xc8b0: saveseg(context); break;
+ case 0xc8b4: findlen(context); break;
+ case 0xc8b8: scanfornames(context); break;
+ case 0xc8bc: decide(context); break;
+ case 0xc8c0: showdecisions(context); break;
+ case 0xc8c4: newgame(context); break;
+ case 0xc8c8: loadold(context); break;
+ case 0xc8cc: loadspeech(context); break;
+ case 0xc8d0: createname(context); break;
+ case 0xc8d4: loadsample(context); break;
+ case 0xc8d8: loadsecondsample(context); break;
+ case 0xc8dc: soundstartup(context); break;
+ case 0xc8e0: trysoundalloc(context); break;
+ case 0xc8e4: setsoundoff(context); break;
+ case 0xc8e8: checksoundint(context); break;
+ case 0xc8ec: enablesoundint(context); break;
+ case 0xc8f0: disablesoundint(context); break;
+ case 0xc8f4: interupttest(context); break;
+ case 0xc8f8: soundend(context); break;
+ case 0xc8fc: out22c(context); break;
+ case 0xc900: playchannel0(context); break;
+ case 0xc904: playchannel1(context); break;
+ case 0xc908: makenextblock(context); break;
+ case 0xc90c: volumeadjust(context); break;
+ case 0xc910: loopchannel0(context); break;
+ case 0xc914: cancelch0(context); break;
+ case 0xc918: cancelch1(context); break;
+ case 0xc91c: channel0only(context); break;
+ case 0xc920: channel1only(context); break;
+ case 0xc924: channel0tran(context); break;
+ case 0xc928: bothchannels(context); break;
+ case 0xc92c: saveems(context); break;
+ case 0xc930: restoreems(context); break;
+ case 0xc934: domix(context); break;
+ case 0xc938: dmaend(context); break;
+ case 0xc93c: startdmablock(context); break;
+ case 0xc940: setuppit(context); break;
+ case 0xc944: getridofpit(context); break;
+ case 0xc948: pitinterupt(context); break;
+ case 0xc94c: dreamweb(context); break;
+ case 0xc950: entrytexts(context); break;
+ case 0xc954: entryanims(context); break;
+ case 0xc958: initialinv(context); break;
+ case 0xc95c: pickupob(context); break;
+ case 0xc960: setupemm(context); break;
+ case 0xc964: removeemm(context); break;
+ case 0xc968: checkforemm(context); break;
+ case 0xc96c: checkbasemem(context); break;
+ case 0xc970: allocatebuffers(context); break;
+ case 0xc974: clearbuffers(context); break;
+ case 0xc978: clearchanges(context); break;
+ case 0xc97c: clearbeforeload(context); break;
+ case 0xc980: clearreels(context); break;
+ case 0xc984: clearrest(context); break;
+ case 0xc988: deallocatemem(context); break;
+ case 0xc98c: allocatemem(context); break;
+ case 0xc994: parseblaster(context); break;
+ case 0xc998: startup(context); break;
+ case 0xc99c: startup1(context); break;
+ case 0xc9a0: screenupdate(context); break;
+ case 0xc9a4: watchreel(context); break;
+ case 0xc9a8: checkforshake(context); break;
+ case 0xc9ac: watchcount(context); break;
+ case 0xc9b0: showtime(context); break;
+ case 0xc9b4: dumpwatch(context); break;
+ case 0xc9b8: showbyte(context); break;
+ case 0xc9bc: onedigit(context); break;
+ case 0xc9c0: twodigitnum(context); break;
+ case 0xc9c4: showword(context); break;
+ case 0xc9c8: convnum(context); break;
+ case 0xc9cc: mainscreen(context); break;
+ case 0xc9d0: madmanrun(context); break;
+ case 0xc9d4: checkcoords(context); break;
+ case 0xc9d8: identifyob(context); break;
+ case 0xc9dc: checkifperson(context); break;
+ case 0xc9e0: checkifset(context); break;
+ case 0xc9e4: checkifex(context); break;
+ case 0xc9e8: checkiffree(context); break;
+ case 0xc9ec: isitdescribed(context); break;
+ case 0xc9f0: findpathofpoint(context); break;
+ case 0xc9f4: findfirstpath(context); break;
+ case 0xc9f8: turnpathon(context); break;
+ case 0xc9fc: turnpathoff(context); break;
+ case 0xca00: turnanypathon(context); break;
+ case 0xca04: turnanypathoff(context); break;
+ case 0xca08: checkifpathison(context); break;
+ case 0xca0c: afternewroom(context); break;
+ case 0xca10: atmospheres(context); break;
+ case 0xca14: walkintoroom(context); break;
+ case 0xca18: afterintroroom(context); break;
+ case 0xca1c: obname(context); break;
+ case 0xca20: finishedwalking(context); break;
+ case 0xca24: examineobtext(context); break;
+ case 0xca28: commandwithob(context); break;
+ case 0xca2c: commandonly(context); break;
+ case 0xca30: printmessage(context); break;
+ case 0xca34: printmessage2(context); break;
+ case 0xca38: blocknametext(context); break;
+ case 0xca3c: personnametext(context); break;
+ case 0xca40: walktotext(context); break;
+ case 0xca44: getflagunderp(context); break;
+ case 0xca48: setwalk(context); break;
+ case 0xca4c: autosetwalk(context); break;
+ case 0xca50: checkdest(context); break;
+ case 0xca54: bresenhams(context); break;
+ case 0xca58: workoutframes(context); break;
+ case 0xca5c: getroomspaths(context); break;
+ case 0xca60: copyname(context); break;
+ case 0xca64: findobname(context); break;
+ case 0xca68: showicon(context); break;
+ case 0xca6c: middlepanel(context); break;
+ case 0xca70: showman(context); break;
+ case 0xca74: showpanel(context); break;
+ case 0xca78: roomname(context); break;
+ case 0xca7c: usecharset1(context); break;
+ case 0xca80: usetempcharset(context); break;
+ case 0xca84: showexit(context); break;
+ case 0xca88: panelicons1(context); break;
+ case 0xca8c: showwatch(context); break;
+ case 0xca90: gettime(context); break;
+ case 0xca94: zoomicon(context); break;
+ case 0xca98: showblink(context); break;
+ case 0xca9c: dumpblink(context); break;
+ case 0xcaa0: worktoscreenm(context); break;
+ case 0xcaa4: blank(context); break;
+ case 0xcaa8: allpointer(context); break;
+ case 0xcaac: hangonp(context); break;
+ case 0xcab0: hangonw(context); break;
+ case 0xcab4: hangoncurs(context); break;
+ case 0xcab8: getunderzoom(context); break;
+ case 0xcabc: dumpzoom(context); break;
+ case 0xcac0: putunderzoom(context); break;
+ case 0xcac4: crosshair(context); break;
+ case 0xcac8: showpointer(context); break;
+ case 0xcacc: delpointer(context); break;
+ case 0xcad0: dumppointer(context); break;
+ case 0xcad4: undertextline(context); break;
+ case 0xcad8: deltextline(context); break;
+ case 0xcadc: dumptextline(context); break;
+ case 0xcae0: animpointer(context); break;
+ case 0xcae4: setmouse(context); break;
+ case 0xcae8: readmouse(context); break;
+ case 0xcaec: mousecall(context); break;
+ case 0xcaf0: readmouse1(context); break;
+ case 0xcaf4: readmouse2(context); break;
+ case 0xcaf8: readmouse3(context); break;
+ case 0xcafc: readmouse4(context); break;
+ case 0xcb00: readkey(context); break;
+ case 0xcb04: convertkey(context); break;
+ case 0xcb08: randomnum1(context); break;
+ case 0xcb0c: randomnum2(context); break;
+ case 0xcb14: hangon(context); break;
+ case 0xcb18: loadtraveltext(context); break;
+ case 0xcb1c: loadintotemp(context); break;
+ case 0xcb20: loadintotemp2(context); break;
+ case 0xcb24: loadintotemp3(context); break;
+ case 0xcb28: loadtempcharset(context); break;
+ case 0xcb2c: standardload(context); break;
+ case 0xcb30: loadtemptext(context); break;
+ case 0xcb34: loadroom(context); break;
+ case 0xcb38: loadroomssample(context); break;
+ case 0xcb3c: getridofreels(context); break;
+ case 0xcb40: getridofall(context); break;
+ case 0xcb44: restorereels(context); break;
+ case 0xcb48: restoreall(context); break;
+ case 0xcb4c: sortoutmap(context); break;
+ case 0xcb50: startloading(context); break;
+ case 0xcb54: disablepath(context); break;
+ case 0xcb58: findxyfrompath(context); break;
+ case 0xcb5c: findroominloc(context); break;
+ case 0xcb60: getroomdata(context); break;
+ case 0xcb64: readheader(context); break;
+ case 0xcb68: dontloadseg(context); break;
+ case 0xcb6c: allocateload(context); break;
+ case 0xcb70: fillspace(context); break;
+ case 0xcb74: getridoftemp(context); break;
+ case 0xcb78: getridoftemptext(context); break;
+ case 0xcb7c: getridoftemp2(context); break;
+ case 0xcb80: getridoftemp3(context); break;
+ case 0xcb84: getridoftempcharset(context); break;
+ case 0xcb88: getridoftempsp(context); break;
+ case 0xcb8c: readsetdata(context); break;
+ case 0xcb90: createfile(context); break;
+ case 0xcb94: openfile(context); break;
+ case 0xcb98: openfilenocheck(context); break;
+ case 0xcb9c: openforsave(context); break;
+ case 0xcba0: closefile(context); break;
+ case 0xcba4: readfromfile(context); break;
+ case 0xcba8: setkeyboardint(context); break;
+ case 0xcbac: resetkeyboard(context); break;
+ case 0xcbb0: keyboardread(context); break;
+ case 0xcbb4: walkandexamine(context); break;
+ case 0xcbb8: doload(context); break;
+ case 0xcbbc: generalerror(context); break;
default: ::error("invalid call to %04x dispatched", (uint16)context.ax);
}
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 40e3539a0d..d2db7f2ae6 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -60,8 +60,8 @@ namespace dreamgen {
void scanfornames(Context &context);
void saveseg(Context &context);
void loadseg(Context &context);
- void loadposition(Context &context);
- void saveposition(Context &context);
+ void savefileread(Context &context);
+ void savefilewrite(Context &context);
void error(Context &context);
void generalerror(Context &context);
void dosreturn(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index db49b74da2..2c03e369e1 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -29,7 +29,7 @@
#include "common/EventRecorder.h"
#include "common/file.h"
#include "common/func.h"
-#include "common/iff_container.h"
+#include "common/savefile.h"
#include "common/system.h"
#include "common/timer.h"
#include "common/util.h"
@@ -290,7 +290,6 @@ void DreamWebEngine::cls() {
_system->fillScreen(0);
}
-
} // End of namespace DreamWeb
@@ -585,6 +584,12 @@ void saveseg(Context &context) {
::error("saveseg");
}
+void savefilewrite(Context &context) {
+}
+
+void savefileread(Context &context) {
+}
+
void loadseg(Context &context) {
context.ax = context.es.word(context.di);
context.di += 2;
@@ -597,14 +602,6 @@ void loadseg(Context &context) {
context.flags._c = false;
}
-void loadposition(Context &context) {
- ::error("loadposition");
-}
-
-void saveposition(Context &context) {
- ::error("saveposition");
-}
-
void error(Context &context) {
::error("error");
}
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 78c8960b79..633d5075e0 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -36,10 +36,6 @@
#include "dreamweb/dreamgen.h"
#include "dreamweb/console.h"
-namespace Graphics {
- class Surface;
-}
-
namespace DreamWeb {
// Engine Debug Flags
@@ -79,7 +75,7 @@ public:
uint8 randomNumber() { return _rnd.getRandomNumber(255); }
void openFile(const Common::String &name);
- uint32 readFromFile(uint8 *dst, unsigned size);
+ uint32 readFromFile(uint8 *data, unsigned size);
uint32 skipBytes(uint32 bytes);
void closeFile();