Skip to content

Commit

Permalink
DREAMWEB: 'commandonly' ported to C++
Browse files Browse the repository at this point in the history
  • Loading branch information
tramboi committed Aug 17, 2011
1 parent 1f47b87 commit 7eab6a7
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 40 deletions.
1 change: 1 addition & 0 deletions devtools/tasmrecover/tasm-recover
Expand Up @@ -123,6 +123,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'getmapad',
'calcfrframe',
'finalframe',
'commandonly',
], skip_output = [
# These functions are processed but not output
'dreamweb',
Expand Down
36 changes: 0 additions & 36 deletions engines/dreamweb/dreamgen.cpp
Expand Up @@ -16566,41 +16566,6 @@ void DreamGenContext::examineobtext() {
commandwithob();
}

void DreamGenContext::commandonly() {
STACK_CHECK;
push(ax);
push(bx);
push(cx);
push(dx);
push(es);
push(ds);
push(si);
push(di);
deltextline();
di = pop();
si = pop();
ds = pop();
es = pop();
dx = pop();
cx = pop();
bx = pop();
ax = pop();
ah = 0;
_add(ax, ax);
bx = ax;
es = data.word(kCommandtext);
ax = es.word(bx);
_add(ax, (66*2));
si = ax;
di = data.word(kTextaddressx);
bx = data.word(kTextaddressy);
dl = data.byte(kTextlen);
al = 0;
ah = 0;
printdirect();
data.byte(kNewtextline) = 1;
}

void DreamGenContext::printmessage() {
STACK_CHECK;
push(dx);
Expand Down Expand Up @@ -19326,7 +19291,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_obname: obname(); break;
case addr_finishedwalking: finishedwalking(); break;
case addr_examineobtext: examineobtext(); break;
case addr_commandonly: commandonly(); break;
case addr_printmessage: printmessage(); break;
case addr_printmessage2: printmessage2(); break;
case addr_blocknametext: blocknametext(); break;
Expand Down
7 changes: 3 additions & 4 deletions engines/dreamweb/dreamgen.h
Expand Up @@ -123,7 +123,6 @@ class DreamGenContext : public Context {
static const uint16 addr_blocknametext = 0xca34;
static const uint16 addr_printmessage2 = 0xca30;
static const uint16 addr_printmessage = 0xca2c;
static const uint16 addr_commandonly = 0xca28;
static const uint16 addr_examineobtext = 0xca20;
static const uint16 addr_finishedwalking = 0xca1c;
static const uint16 addr_obname = 0xca18;
Expand Down Expand Up @@ -1321,7 +1320,7 @@ class DreamGenContext : public Context {
void wornerror();
void putundercentre();
void checkobjectsize();
void commandonly();
//void commandonly();
void adjustlen();
void deallocatemem();
void checkforemm();
Expand Down Expand Up @@ -1594,7 +1593,7 @@ class DreamGenContext : public Context {
//void finalframe();
void receptionist();
void selectslot();
void edenscdplayer();
void openfilenocheck();
//void readoneblock();
void fadeupmon();
void paltoendpal();
Expand Down Expand Up @@ -1827,7 +1826,7 @@ class DreamGenContext : public Context {
//void makesprite();
void dreamweb();
void droperror();
void openfilenocheck();
void edenscdplayer();
void calledensdlift();
void checkinside();
void gates();
Expand Down
14 changes: 14 additions & 0 deletions engines/dreamweb/stubs.cpp
Expand Up @@ -920,6 +920,20 @@ void DreamGenContext::deltextline() {
multiput(segRef(data.word(kBuffers)).ptr(kTextunder, 0), x, y, kUndertextsizex, kUndertextsizey);
}

void DreamGenContext::commandonly() {
commandonly(al);
}

void DreamGenContext::commandonly(uint8 command) {
deltextline();
uint16 index = command * 2;
uint16 offset = kTextstart + segRef(data.word(kCommandtext)).word(index);
uint16 y = data.word(kTextaddressy);
const uint8 *string = segRef(data.word(kCommandtext)).ptr(offset, 0);
printdirect(&string, data.word(kTextaddressx), &y, data.byte(kTextlen), (bool)(data.byte(kTextlen) & 1));
data.byte(kNewtextline) = 1;
}

void DreamGenContext::autosetwalk() {
al = data.byte(kManspath);
if (data.byte(kFinaldest) == al)
Expand Down
2 changes: 2 additions & 0 deletions engines/dreamweb/stubs.h
Expand Up @@ -117,6 +117,8 @@
void crosshair();
void showrain();
void deltextline();
void commandonly();
void commandonly(uint8 command);
void doblocks();
void checkifperson();
bool checkifperson(uint8 x, uint8 y);
Expand Down

0 comments on commit 7eab6a7

Please sign in to comment.