Skip to content

Commit

Permalink
DREAMWEB: 'standardload' ported to C++
Browse files Browse the repository at this point in the history
  • Loading branch information
tramboi committed Nov 17, 2011
1 parent 6c51635 commit 088ec69
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 21 deletions.
1 change: 1 addition & 0 deletions devtools/tasmrecover/tasm-recover
Expand Up @@ -231,6 +231,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'showoutermenu',
'textforend',
'textformonk',
'standardload',
'twodigitnum',
'readsetdata',
'loadroomssample',
Expand Down
19 changes: 0 additions & 19 deletions engines/dreamweb/dreamgen.cpp
Expand Up @@ -14125,24 +14125,6 @@ void DreamGenContext::loadtempcharset() {
data.word(kTempcharset) = ax;
}

void DreamGenContext::standardload() {
STACK_CHECK;
openfile();
readheader();
bx = es.word(di);
push(bx);
cl = 4;
_shr(bx, cl);
allocatemem();
ds = ax;
cx = pop();
push(ax);
dx = 0;
readfromfile();
closefile();
ax = pop();
}

void DreamGenContext::loadtemptext() {
STACK_CHECK;
standardload();
Expand Down Expand Up @@ -16070,7 +16052,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_loadintotemp2: loadintotemp2(); break;
case addr_loadintotemp3: loadintotemp3(); break;
case addr_loadtempcharset: loadtempcharset(); break;
case addr_standardload: standardload(); break;
case addr_loadtemptext: loadtemptext(); break;
case addr_getridofreels: getridofreels(); break;
case addr_getridofall: getridofall(); break;
Expand Down
3 changes: 1 addition & 2 deletions engines/dreamweb/dreamgen.h
Expand Up @@ -64,7 +64,6 @@ class DreamGenContext : public Context {
static const uint16 addr_getridofall = 0xcb3c;
static const uint16 addr_getridofreels = 0xcb38;
static const uint16 addr_loadtemptext = 0xcb2c;
static const uint16 addr_standardload = 0xcb28;
static const uint16 addr_loadtempcharset = 0xcb24;
static const uint16 addr_loadintotemp3 = 0xcb20;
static const uint16 addr_loadintotemp2 = 0xcb1c;
Expand Down Expand Up @@ -1924,7 +1923,7 @@ class DreamGenContext : public Context {
//void setallchanges();
void newgame();
//void printboth();
void standardload();
//void standardload();
void undertextline();
void findroominloc();
void sitdowninbar();
Expand Down
14 changes: 14 additions & 0 deletions engines/dreamweb/stubs.cpp
Expand Up @@ -208,6 +208,20 @@ static Common::String getFilename(Context &context) {
return Common::String(name);
}

uint16 DreamGenContext::standardload(const char *fileName) {
engine->openFile(fileName);
engine->readFromFile(cs.ptr(kFileheader, kHeaderlen), kHeaderlen);
uint16 sizeInBytes = cs.word(kFiledata);
uint16 result = allocatemem((sizeInBytes + 15) / 16);
engine->readFromFile(segRef(result).ptr(0, 0), sizeInBytes);
engine->closeFile();
return result;
}

void DreamGenContext::standardload() {
ax = standardload((const char *)cs.ptr(dx, 0));
}

void DreamGenContext::seecommandtail() {
data.word(kSoundbaseadd) = 0x220;
data.byte(kSoundint) = 5;
Expand Down
2 changes: 2 additions & 0 deletions engines/dreamweb/stubs.h
Expand Up @@ -23,6 +23,8 @@
uint8 *workspace();
void allocatework();
void clearwork();
void standardload();
uint16 standardload(const char *fileName); // Returns a segment handle which needs to be freed with deallocatemem for symmetry
void multidump();
void multidump(uint16 x, uint16 y, uint8 width, uint8 height);
void frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y);
Expand Down

0 comments on commit 088ec69

Please sign in to comment.