From 05a27138744e3d5fe80602c2c97b6bea547863d9 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sun, 11 Dec 2011 15:45:53 +0100 Subject: DREAMWEB: Convert checkInput --- engines/dreamweb/dreamgen.cpp | 62 ------------------------------------------- engines/dreamweb/dreamgen.h | 2 -- engines/dreamweb/saveload.cpp | 37 ++++++++++++++++++++++++++ engines/dreamweb/stubs.h | 1 + 4 files changed, 38 insertions(+), 64 deletions(-) (limited to 'engines') diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index fac388bbf7..8975c26991 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -5509,68 +5509,6 @@ void DreamGenContext::findText1() { si = ax; } -void DreamGenContext::checkInput() { - STACK_CHECK; - _cmp(data.byte(kLoadingorsave), 3); - if (flags.z()) - return /* (nokeypress) */; - readKey(); - al = data.byte(kCurrentkey); - _cmp(al, 0); - if (flags.z()) - return /* (nokeypress) */; - _cmp(al, 13); - if (!flags.z()) - goto notret; - data.byte(kLoadingorsave) = 3; - goto afterkey; -notret: - _cmp(al, 8); - if (!flags.z()) - goto nodel2; - _cmp(data.byte(kCursorpos), 0); - if (flags.z()) - return /* (nokeypress) */; - getNamePos(); - _dec(data.byte(kCursorpos)); - es.byte(bx) = 0; - es.byte(bx+1) = 1; - goto afterkey; -nodel2: - _cmp(data.byte(kCursorpos), 14); - if (flags.z()) - return /* (nokeypress) */; - getNamePos(); - _inc(data.byte(kCursorpos)); - al = data.byte(kCurrentkey); - es.byte(bx+1) = al; - es.byte(bx+2) = 0; - es.byte(bx+3) = 1; - goto afterkey; - return; -afterkey: - showOpBox(); - showNames(); - showSlots(); - showSaveOps(); - workToScreenM(); -} - -void DreamGenContext::getNamePos() { - STACK_CHECK; - al = data.byte(kCurrentslot); - ah = 0; - cx = 17; - _mul(cx); - dx = data; - es = dx; - bx = 1521; - _add(bx, ax); - al = data.byte(kCursorpos); - ah = 0; - _add(bx, ax); -} - void DreamGenContext::selectSlot() { STACK_CHECK; _cmp(data.byte(kCommandtype), 244); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 889a60b357..1df283c997 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -526,7 +526,6 @@ public: #include "stubs.h" // Allow hand-reversed functions to have a signature different than void f() void useWire(); - void getNamePos(); void identifyOb(); void useLighter(); void runEndSeq(); @@ -535,7 +534,6 @@ public: void getObTextStart(); void dumpDiaryKeys(); void entryTexts(); - void checkInput(); void putUnderCentre(); void checkObjectSize(); void findText1(); diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp index 9060a3f000..2a8b8bec3d 100644 --- a/engines/dreamweb/saveload.cpp +++ b/engines/dreamweb/saveload.cpp @@ -481,4 +481,41 @@ void DreamBase::showNames() { } } +void DreamGenContext::checkInput() { + if (data.byte(kLoadingorsave) == 3) + return; + + readKey(); + + char *name = (char *)data.ptr(kSavenames + 17*data.byte(kCurrentslot) + 1, 16); + + if (data.byte(kCurrentkey) == 0) { + return; + } else if (data.byte(kCurrentkey) == 13) { + data.byte(kLoadingorsave) = 3; + } else if (data.byte(kCurrentkey) == 8) { + if (data.byte(kCursorpos) == 0) + return; + + --data.byte(kCursorpos); + name[data.byte(kCursorpos)] = 0; + name[data.byte(kCursorpos)+1] = 1; + } else { + if (data.byte(kCursorpos) == 14) + return; + + name[data.byte(kCursorpos)] = data.byte(kCurrentkey); + name[data.byte(kCursorpos)+1] = 0; + name[data.byte(kCursorpos)+2] = 1; + ++data.byte(kCursorpos); + } + + showOpBox(); + showNames(); + showSlots(); + showSaveOps(); + workToScreenM(); +} + + } // End of namespace DreamGen diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 5d99e231dc..c63b2449d8 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -559,5 +559,6 @@ void quitSymbol(); void diaryKeyP(); void diaryKeyN(); + void checkInput(); #endif -- cgit v1.2.3