diff options
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 28 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
-rw-r--r-- | engines/dreamweb/monitor.cpp | 13 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
5 files changed, 15 insertions, 29 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index ef7a08d130..b48a053416 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -189,6 +189,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'credits', 'crosshair', 'dealwithspecial', + 'delchar', 'delcurs', 'deletetaken', 'delpointer', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index e0e5809f66..d5efcf7e80 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -5405,34 +5405,6 @@ void DreamGenContext::makeCaps() { _sub(al, 32); } -void DreamGenContext::delChar() { - STACK_CHECK; - _dec(data.word(kCurpos)); - si = data.word(kCurpos); - _add(si, si); - es = cs; - _add(si, 1964); - es.byte(si) = 0; - al = es.byte(si+1); - ah = 0; - _sub(data.word(kMonadx), ax); - _sub(data.word(kCurslocx), ax); - di = data.word(kMonadx); - bx = data.word(kMonady); - ds = data.word(kMapstore); - ax = data.word(kCurpos); - _xchg(al, ah); - si = ax; - cl = 8; - ch = 8; - multiPut(); - di = data.word(kMonadx); - bx = data.word(kMonady); - cl = al; - ch = 8; - multiDump(); -} - void DreamGenContext::execCommand() { STACK_CHECK; es = cs; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index d93136f4f0..bd42cabeb1 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -633,7 +633,6 @@ public: void manAsleep2(); void moreTalk(); void startTalk(); - void delChar(); void getAnyAd(); void endGame(); void usePipe(); diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp index ebd160a98f..fff38d3801 100644 --- a/engines/dreamweb/monitor.cpp +++ b/engines/dreamweb/monitor.cpp @@ -148,6 +148,19 @@ void DreamGenContext::input() { } } +void DreamGenContext::delChar() { + char *inputLine = (char *)cs.ptr(kInputline, 0); + --data.word(kCurpos); + inputLine[data.word(kCurpos) * 2] = 0; + uint8 width = inputLine[data.word(kCurpos) * 2 + 1]; + data.word(kMonadx) -= width; + data.word(kCurslocx) -= width; + uint16 offset = data.word(kCurpos); + offset = ((offset & 0x00ff) << 8) | ((offset & 0xff00) >> 8); + multiPut(getSegment(data.word(kMapstore)).ptr(offset, 0), data.word(kMonadx), data.word(kMonady), 8, 8); + multiDump(data.word(kMonadx), data.word(kMonady), al, 8); +} + void DreamGenContext::printCurs() { uint16 x = data.word(kCurslocx); uint16 y = data.word(kCurslocy); diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index ffc0d4b1b2..e2edd897b6 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -45,6 +45,7 @@ void saveLoad(); void printCurs(); void delCurs(); + void delChar(); void hangOnCurs(uint16 frameCount); void hangOnCurs(); void multiDump(); |