aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-12-02 12:07:53 +0100
committerBertrand Augereau2011-12-02 13:09:01 +0100
commit95a8cdd36cb43c576232b50a0dd8dbbb676e39f0 (patch)
tree1779bdb57bd7866a249db1024d1d9d145774acea
parent3bfb412694c911c60fffb715fb9bbe82a456ebb0 (diff)
downloadscummvm-rg350-95a8cdd36cb43c576232b50a0dd8dbbb676e39f0.tar.gz
scummvm-rg350-95a8cdd36cb43c576232b50a0dd8dbbb676e39f0.tar.bz2
scummvm-rg350-95a8cdd36cb43c576232b50a0dd8dbbb676e39f0.zip
DREAMWEB: 'singleKey' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover1
-rw-r--r--engines/dreamweb/dreamgen.cpp17
-rw-r--r--engines/dreamweb/dreamgen.h1
-rw-r--r--engines/dreamweb/keypad.cpp14
-rw-r--r--engines/dreamweb/stubs.h2
5 files changed, 17 insertions, 18 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index ebf036f9e7..68e883fad4 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -341,6 +341,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'gamer',
'eden',
'sparky',
+ 'singlekey',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 1c2c4ce038..11163ee9d2 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9465,23 +9465,6 @@ gotlight:
showFrame();
}
-void DreamGenContext::singleKey() {
- STACK_CHECK;
- _cmp(data.byte(kGraphicpress), al);
- if (!flags.z())
- goto gotkey;
- _add(al, 11);
- _cmp(data.byte(kPresscount), 8);
- if (!flags.c())
- goto gotkey;
- _sub(al, 11);
-gotkey:
- ds = data.word(kTempgraphics);
- _sub(al, 20);
- ah = 0;
- showFrame();
-}
-
void DreamGenContext::dumpKeypad() {
STACK_CHECK;
di = (36+112)-3;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f84b037a64..f6c482b082 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -915,7 +915,6 @@ public:
void quitSymbol();
void setTopRight();
void findSetObject();
- void singleKey();
void hangOne();
void carParkDrip();
void useDiary();
diff --git a/engines/dreamweb/keypad.cpp b/engines/dreamweb/keypad.cpp
index 0867ffd2ab..dc19d97bd2 100644
--- a/engines/dreamweb/keypad.cpp
+++ b/engines/dreamweb/keypad.cpp
@@ -32,5 +32,19 @@ void DreamGenContext::putUnderMenu() {
multiPut(segRef(data.word(kBuffers)).ptr(kUndertimedtext, 0), kMenux, kMenuy, 48, 48);
}
+void DreamGenContext::singleKey(uint8 key, uint16 x, uint16 y) {
+ if (key == data.byte(kGraphicpress)) {
+ key += 11;
+ if (data.byte(kPresscount) < 8)
+ key -= 11;
+ }
+ key -= 20;
+ showFrame(tempGraphics(), x, y, key, 0);
+}
+
+void DreamGenContext::singleKey() {
+ singleKey(al, di, bx);
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 60231c4e6e..25b2b531f9 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -382,4 +382,6 @@
void gamer(ReelRoutine &routine);
void eden(ReelRoutine &routine);
void sparky(ReelRoutine &routine);
+ void singleKey(uint8 key, uint16 x, uint16 y);
+ void singleKey();