aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/dreamgen.cpp50
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/dreamweb.cpp5
3 files changed, 49 insertions, 7 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 10766a7599..604ff90aaf 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -7,6 +7,7 @@ void allocatebuffers(Context &context);
void clearbuffers(Context &context);
void clearpalette(Context &context);
void readsetdata(Context &context);
+void scanfornames(Context &context);
void loadpalfromiff(Context &context);
void titles(Context &context);
void credits(Context &context);
@@ -16374,7 +16375,6 @@ void loadposition(Context & context) {
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);
@@ -16452,6 +16452,54 @@ foundlen:
return;
}
+void scanfornames(Context & context) {
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 8350;
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 8469;
+ context.cx = 7;
+scanloop:
+ context.push(context.es);
+ context.push(context.ds);
+ context.push(context.di);
+ context.push(context.dx);
+ context.push(context.cx);
+ openfilenocheck(context);
+ if (context.flags.c()) goto notexist;
+ context.cx = context.pop();
+ context._add(context.ch, 1);
+ context.push(context.cx);
+ context.push(context.di);
+ context.push(context.es);
+ context.dx = context.data;
+ context.ds = context.dx;
+ context.dx = 5862;
+ context.cx = (5958-5862);
+ savefileread(context);
+ context.dx = context.data;
+ context.es = context.dx;
+ context.di = 5912;
+ context.ds = context.pop();
+ context.dx = context.pop();
+ loadseg(context);
+ context.bx = context.data.word(kHandle);
+ closefile(context);
+notexist:
+ context.cx = context.pop();
+ context.dx = context.pop();
+ context.di = context.pop();
+ context.ds = context.pop();
+ context.es = context.pop();
+ context._add(context.dx, 13);
+ context._add(context.di, 17);
+ context._sub(context.cl, 1);
+ if (!context.flags.z()) goto scanloop;
+ context.al = context.ch;
+ return;
+}
+
void decide(Context & context) {
setmode(context);
loadpalfromiff(context);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index d2db7f2ae6..da4bbb6610 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -57,7 +57,6 @@ namespace dreamgen {
void loadsecondsample(Context &context);
void loadsample(Context &context);
void loadspeech(Context &context);
- void scanfornames(Context &context);
void saveseg(Context &context);
void loadseg(Context &context);
void savefileread(Context &context);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 817496d73b..26c7afe294 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -591,11 +591,6 @@ void loadspeech(Context &context) {
::error("loadspeech");
}
-void scanfornames(Context &context) {
- warning("scanfornames: STUB");
- context.ch = 0;
-}
-
void saveseg(Context &context) {
context.cx = context.es.word(context.di);
context._add(context.di, 2);