diff options
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 50 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamweb.cpp | 5 |
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); |