diff options
author | Bertrand Augereau | 2011-08-11 23:10:30 +0200 |
---|---|---|
committer | Bertrand Augereau | 2011-08-15 22:30:16 +0200 |
commit | 01ccadf7c12a2675ced62ec6f89873bf821b4c6a (patch) | |
tree | f3c1d84f85cd608d13a60a26d5610090f4279a48 | |
parent | c8d8056777e61f1ee3e56fcf00679c16aa3ebd6d (diff) | |
download | scummvm-rg350-01ccadf7c12a2675ced62ec6f89873bf821b4c6a.tar.gz scummvm-rg350-01ccadf7c12a2675ced62ec6f89873bf821b4c6a.tar.bz2 scummvm-rg350-01ccadf7c12a2675ced62ec6f89873bf821b4c6a.zip |
DREAMWEB: 'getreelframeax' ported to C++
-rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 17 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 3 | ||||
-rw-r--r-- | engines/dreamweb/sprite.cpp | 10 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
5 files changed, 13 insertions, 19 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index f2dbd1d80f..209ae38006 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -75,6 +75,7 @@ generator = cpp(context, "DreamGen", blacklist = [ 'startloading', 'showreelframe', 'showgamereel', + 'getreelframeax', 'findsource', 'walking', 'autosetwalk', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 72f7069686..2964d6fdf0 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -2688,22 +2688,6 @@ notinthisroom: goto updateloop; } -void DreamGenContext::getreelframeax() { - STACK_CHECK; - push(ds); - data.word(kCurrentframe) = ax; - findsource(); - es = ds; - ds = pop(); - ax = data.word(kCurrentframe); - _sub(ax, data.word(kTakeoff)); - _add(ax, ax); - cx = ax; - _add(ax, ax); - _add(ax, cx); - bx = ax; -} - void DreamGenContext::reelsonscreen() { STACK_CHECK; reconstruct(); @@ -19483,7 +19467,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_doorway: doorway(); break; case addr_widedoor: widedoor(); break; case addr_updatepeople: updatepeople(); break; - case addr_getreelframeax: getreelframeax(); break; case addr_reelsonscreen: reelsonscreen(); break; case addr_soundonreels: soundonreels(); break; case addr_reconstruct: reconstruct(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index b08732c859..b5f6a5fc3c 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -631,7 +631,6 @@ public: static const uint16 addr_reconstruct = 0xc1ac; static const uint16 addr_soundonreels = 0xc1a8; static const uint16 addr_reelsonscreen = 0xc1a0; - static const uint16 addr_getreelframeax = 0xc19c; static const uint16 addr_updatepeople = 0xc198; static const uint16 addr_widedoor = 0xc18c; static const uint16 addr_doorway = 0xc188; @@ -1928,7 +1927,7 @@ public: void fadecalculation(); void waitframes(); void clearrest(); - void getreelframeax(); + //void getreelframeax(); void barwoman(); void roomname(); void credits(); diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index a970af9fe3..be74be6c5f 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -570,6 +570,16 @@ void DreamGenContext::showgamereel() { es.word(bx+3) = data.word(kReelpointer); } +void DreamGenContext::getreelframeax() { + push(ds); + data.word(kCurrentframe) = ax; + findsource(); + es = ds; + ds = pop(); + cx = (data.word(kCurrentframe) - data.word(kTakeoff)) * 2; + bx = (data.word(kCurrentframe) - data.word(kTakeoff)) * 6; +} + void DreamGenContext::showrain() { ds = data.word(kMainsprites); si = 6*58; diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index d3602501f1..79f71ba8c8 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -101,6 +101,7 @@ void showgamereel(); void showreelframe(); void showreelframe(Reel *reel); + void getreelframeax(); void turnpathonCPP(uint8 param); void turnpathoffCPP(uint8 param); void getroomspaths(); |