DREAMWEB: 'getreelframeax' ported to C++

This commit is contained in:
Bertrand Augereau 2011-08-11 23:10:30 +02:00
parent c8d8056777
commit 01ccadf7c1
5 changed files with 13 additions and 19 deletions

View file

@ -75,6 +75,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'startloading',
'showreelframe',
'showgamereel',
'getreelframeax',
'findsource',
'walking',
'autosetwalk',

View file

@ -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;

View file

@ -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();

View file

@ -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;

View file

@ -101,6 +101,7 @@
void showgamereel();
void showreelframe();
void showreelframe(Reel *reel);
void getreelframeax();
void turnpathonCPP(uint8 param);
void turnpathoffCPP(uint8 param);
void getroomspaths();