aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorBertrand Augereau2011-07-30 15:25:28 +0200
committerBertrand Augereau2011-07-30 15:33:19 +0200
commit92938f810fc4da74ef4872728ccf19833ad12773 (patch)
tree5360c3ec0b057622340a3515a872a1265a53802d /engines
parent95fa7451d63ad674308f1134e954387c967fb9c8 (diff)
downloadscummvm-rg350-92938f810fc4da74ef4872728ccf19833ad12773.tar.gz
scummvm-rg350-92938f810fc4da74ef4872728ccf19833ad12773.tar.bz2
scummvm-rg350-92938f810fc4da74ef4872728ccf19833ad12773.zip
DREAMWEB: 'showreelframe' ported to C++
Diffstat (limited to 'engines')
-rw-r--r--engines/dreamweb/dreamgen.cpp19
-rw-r--r--engines/dreamweb/dreamgen.h3
-rw-r--r--engines/dreamweb/sprite.cpp10
-rw-r--r--engines/dreamweb/stubs.h1
4 files changed, 12 insertions, 21 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 2157d4e9de..fd497a3567 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3025,24 +3025,6 @@ void DreamGenContext::getreelstart() {
_add(si, (0+(36*144)));
}
-void DreamGenContext::showreelframe() {
- STACK_CHECK;
- al = es.byte(si+2);
- ah = 0;
- di = ax;
- _add(di, data.word(kMapadx));
- al = es.byte(si+3);
- bx = ax;
- _add(bx, data.word(kMapady));
- ax = es.word(si);
- data.word(kCurrentframe) = ax;
- findsource();
- ax = data.word(kCurrentframe);
- _sub(ax, data.word(kTakeoff));
- ah = 8;
- showframe();
-}
-
void DreamGenContext::deleverything() {
STACK_CHECK;
al = data.byte(kMapysize);
@@ -20525,7 +20507,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_dealwithspecial: dealwithspecial(); break;
case addr_movemap: movemap(); break;
case addr_getreelstart: getreelstart(); break;
- case addr_showreelframe: showreelframe(); break;
case addr_deleverything: deleverything(); break;
case addr_dumpeverything: dumpeverything(); break;
case addr_allocatework: allocatework(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index ec4199856b..84f8759381 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -645,7 +645,6 @@ public:
static const uint16 addr_allocatework = 0xc1c8;
static const uint16 addr_dumpeverything = 0xc1c4;
static const uint16 addr_deleverything = 0xc1c0;
- static const uint16 addr_showreelframe = 0xc1bc;
static const uint16 addr_getreelstart = 0xc1b8;
static const uint16 addr_movemap = 0xc1b4;
static const uint16 addr_dealwithspecial = 0xc1b0;
@@ -1684,7 +1683,7 @@ public:
void playguitar();
void lastfolder();
void transfermap();
- void showreelframe();
+ //void showreelframe();
void showmonk();
void diarykeyn();
void set16colpalette();
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index 72c8c1299e..a438356e1c 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -552,5 +552,15 @@ void DreamGenContext::findsource() {
}
}
+void DreamGenContext::showreelframe() {
+ uint16 x = es.byte(si+2) + data.word(kMapadx);
+ uint16 y = es.byte(si+3) + data.word(kMapady);
+ data.word(kCurrentframe) = es.word(si);
+ findsource();
+ uint16 frame = data.word(kCurrentframe) - data.word(kTakeoff);
+ uint8 width, height;
+ showframe(ds.ptr(0, 0), x, y, frame, 8, &width, &height);
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 0c2f4389e0..6dafdc9e14 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -87,6 +87,7 @@
void liftsprite();
void liftsprite(Sprite *sprite, ObjData *objData);
void findsource();
+ void showreelframe();
void turnpathonCPP(uint8 param);
void turnpathoffCPP(uint8 param);
void getroomspaths();