From 42e435c604e4ac9af4f29736833f2513ca38d34d Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Wed, 24 Aug 2011 13:22:11 +0200 Subject: [PATCH] DREAMWEB: 'dumpblink' ported to C++ --- devtools/tasmrecover/tasm-recover | 1 + engines/dreamweb/dreamgen.cpp | 22 ---------------------- engines/dreamweb/dreamgen.h | 7 +++---- engines/dreamweb/stubs.cpp | 10 ++++++++++ engines/dreamweb/stubs.h | 1 + 5 files changed, 15 insertions(+), 26 deletions(-) diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 3fe277f62a6..134292cc8b4 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -150,6 +150,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'obname', 'delpointer', 'showblink', + 'dumpblink', ], skip_output = [ # These functions are processed but not output 'dreamweb', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 4da95daadc9..3a819a0a6e2 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -16238,27 +16238,6 @@ void DreamGenContext::zoomicon() { showframe(); } -void DreamGenContext::dumpblink() { - STACK_CHECK; - _cmp(data.byte(kShadeson), 0); - if (!flags.z()) - return /* (nodumpeye) */; - _cmp(data.byte(kBlinkcount), 0); - if (!flags.z()) - return /* (nodumpeye) */; - al = data.byte(kBlinkframe); - _cmp(al, 6); - if (!flags.c()) - return /* (nodumpeye) */; - push(ds); - di = 44; - bx = 32; - cl = 16; - ch = 12; - multidump(); - ds = pop(); -} - void DreamGenContext::worktoscreenm() { STACK_CHECK; animpointer(); @@ -18311,7 +18290,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_showwatch: showwatch(); break; case addr_gettime: gettime(); break; case addr_zoomicon: zoomicon(); break; - case addr_dumpblink: dumpblink(); break; case addr_worktoscreenm: worktoscreenm(); break; case addr_blank: blank(); break; case addr_allpointer: allpointer(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 2b75a8067f4..c770bbb9669 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -98,7 +98,6 @@ public: static const uint16 addr_allpointer = 0xcaa4; static const uint16 addr_blank = 0xcaa0; static const uint16 addr_worktoscreenm = 0xca9c; - static const uint16 addr_dumpblink = 0xca98; static const uint16 addr_zoomicon = 0xca90; static const uint16 addr_gettime = 0xca8c; static const uint16 addr_showwatch = 0xca88; @@ -1376,6 +1375,7 @@ public: //void lockmon(); //void dochange(); void getanyaddir(); + //void dumpblink(); void showsaveops(); void intromonks1(); void resetlocation(); @@ -1510,7 +1510,7 @@ public: void getfreead(); void showarrows(); void walkintoroom(); - void getridoftemptext(); + void usehatch(); void printoutermon(); void setuppit(); void showpcx(); @@ -1647,7 +1647,6 @@ public: void talk(); void usedryer(); void dumpeverything(); - void usehatch(); //void zoom(); void outofinv(); void viewfolder(); @@ -1863,7 +1862,7 @@ public: void issetobonmap(); void getdestinfo(); void drunk(); - void dumpblink(); + void getridoftemptext(); void setuptimeduse(); void grafittidoor(); void input(); diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 1e3fd36a230..ba47f1a9455 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1298,6 +1298,16 @@ void DreamGenContext::showblink() { showframe((Frame *)segRef(data.word(kIcons1)).ptr(0, 0), 44, 32, blinkTab[blinkFrame], 0, &width, &height); } +void DreamGenContext::dumpblink() { + if (data.byte(kShadeson) != 0) + return; + if (data.byte(kBlinkcount) != 0) + return; + if (data.byte(kBlinkframe) >= 6) + return; + multidump(44, 32, 16, 12); +} + bool DreamGenContext::isCD() { // The original sources has two codepaths depending if the game is 'if cd' or not // This is a hack to guess which version to use with the assumption that if we have a cd version diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 1f220317f16..332e8a02a21 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -180,4 +180,5 @@ void obname(uint8 command, uint8 commandType); void delpointer(); void showblink(); + void dumpblink();