Skip to content

Commit

Permalink
DREAMWEB: 'enterSymbol' ported to C++
Browse files Browse the repository at this point in the history
  • Loading branch information
tramboi committed Dec 3, 2011
1 parent ee0f3bc commit 156d3a9
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 87 deletions.
1 change: 1 addition & 0 deletions devtools/tasmrecover/tasm-recover
Expand Up @@ -160,6 +160,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'eden',
'endpaltostart',
'entercode',
'entersymbol',
'eraseoldobs',
'examineob',
'examineobtext',
Expand Down
69 changes: 0 additions & 69 deletions engines/dreamweb/dreamgen.cpp
Expand Up @@ -9077,75 +9077,6 @@ void DreamGenContext::dumpKeypad() {
multiDump();
}

void DreamGenContext::enterSymbol() {
STACK_CHECK;
data.byte(kManisoffscreen) = 1;
getRidOfReels();
dx = 2007;
loadIntoTemp();
data.byte(kSymboltopx) = 24;
data.byte(kSymboltopdir) = 0;
data.byte(kSymbolbotx) = 24;
data.byte(kSymbolbotdir) = 0;
redrawMainScrn();
showSymbol();
underTextLine();
workToScreenM();
data.byte(kGetback) = 0;
symbolloop:
delPointer();
updateSymbolTop();
updateSymbolBot();
showSymbol();
readMouse();
showPointer();
vSync();
dumpPointer();
dumpTextLine();
dumpSymbol();
bx = offset_symbollist;
checkCoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
goto symbolloop;
_cmp(data.byte(kSymbolbotnum), 3);
if (!flags.z())
goto symbolwrong;
_cmp(data.byte(kSymboltopnum), 5);
if (!flags.z())
goto symbolwrong;
al = 43;
removeSetObject();
al = 46;
placeSetObject();
ah = data.byte(kRoomnum);
_add(ah, 12);
al = 0;
turnAnyPathOn();
data.byte(kManisoffscreen) = 0;
redrawMainScrn();
getRidOfTemp();
restoreReels();
workToScreenM();
al = 13;
playChannel1();
return;
symbolwrong:
al = 46;
removeSetObject();
al = 43;
placeSetObject();
ah = data.byte(kRoomnum);
_add(ah, 12);
al = 0;
turnAnyPathOff();
data.byte(kManisoffscreen) = 0;
redrawMainScrn();
getRidOfTemp();
restoreReels();
workToScreenM();
}

void DreamGenContext::quitSymbol() {
STACK_CHECK;
_cmp(data.byte(kSymboltopx), 24);
Expand Down
6 changes: 2 additions & 4 deletions engines/dreamweb/dreamgen.h
Expand Up @@ -57,7 +57,6 @@ class DreamGenContext : public Context {
static const uint16 offset_gameerror1 = 0x0a7d;
static const uint16 offset_gameerror3 = 0x0b12;
static const uint16 offset_gameerror7 = 0x0c13;
static const uint16 offset_symbollist = 0x09c1;
static const uint16 offset_speechfilename = 0x0ec9;
static const uint16 offset_discopslist = 0x0a53;
static const uint16 offset_atmospherelist = 0x0edc;
Expand Down Expand Up @@ -756,7 +755,6 @@ class DreamGenContext : public Context {
void discOps();
void middlePanel();
void monitorLogo();
void enterSymbol();
void dirFile();
void pickupConts();
void lockLightOff();
Expand Down Expand Up @@ -834,7 +832,7 @@ class DreamGenContext : public Context {
void priest();
void printmessage2();
void loadNews();
void rollEm();
void wearShades();
void hangOnPQ();
void findOpenPos();
void describeOb();
Expand All @@ -848,7 +846,7 @@ class DreamGenContext : public Context {
void getBack1();
void fadeFromWhite();
void useWindow();
void wearShades();
void rollEm();
void delEverything();
void fadeScreenDown();
void poolGuard();
Expand Down
71 changes: 57 additions & 14 deletions engines/dreamweb/stubs.cpp
Expand Up @@ -1711,20 +1711,6 @@ void DreamGenContext::checkCoords() {
checkCoords(destList);
break;
}
case offset_symbollist: {
RectWithCallback symbolList[] = {
{ kSymbolx+40,kSymbolx+64,kSymboly+2,kSymboly+16,&DreamGenContext::quitSymbol },
{ kSymbolx,kSymbolx+52,kSymboly+20,kSymboly+50,&DreamGenContext::setTopLeft },
{ kSymbolx+52,kSymbolx+104,kSymboly+20,kSymboly+50,&DreamGenContext::setTopRight },
{ kSymbolx,kSymbolx+52,kSymboly+50,kSymboly+80,&DreamGenContext::setBotLeft },
{ kSymbolx+52,kSymbolx+104,kSymboly+50,kSymboly+80,&DreamGenContext::setBotRight },
{ 0,320,0,200,&DreamGenContext::blank },
{ 0xFFFF,0,0,0,0 }
};
checkCoords(symbolList);

break;
}
case offset_diarylist: {
RectWithCallback diaryList[] = {
{ kDiaryx+94,kDiaryx+110,kDiaryy+97,kDiaryy+113,&DreamGenContext::diaryKeyN },
Expand Down Expand Up @@ -2082,6 +2068,63 @@ uint8 *DreamGenContext::getObTextStartCPP() {
return result;
}

void DreamGenContext::enterSymbol() {
data.byte(kManisoffscreen) = 1;
getRidOfReels();
loadIntoTemp("DREAMWEB.G12");
data.byte(kSymboltopx) = 24;
data.byte(kSymboltopdir) = 0;
data.byte(kSymbolbotx) = 24;
data.byte(kSymbolbotdir) = 0;
redrawMainScrn();
showSymbol();
underTextLine();
workToScreenM();
data.byte(kGetback) = 0;
do {
delPointer();
updateSymbolTop();
updateSymbolBot();
showSymbol();
readMouse();
showPointer();
vSync();
dumpPointer();
dumpTextLine();
dumpSymbol();
RectWithCallback symbolList[] = {
{ kSymbolx+40,kSymbolx+64,kSymboly+2,kSymboly+16,&DreamGenContext::quitSymbol },
{ kSymbolx,kSymbolx+52,kSymboly+20,kSymboly+50,&DreamGenContext::setTopLeft },
{ kSymbolx+52,kSymbolx+104,kSymboly+20,kSymboly+50,&DreamGenContext::setTopRight },
{ kSymbolx,kSymbolx+52,kSymboly+50,kSymboly+80,&DreamGenContext::setBotLeft },
{ kSymbolx+52,kSymbolx+104,kSymboly+50,kSymboly+80,&DreamGenContext::setBotRight },
{ 0,320,0,200,&DreamGenContext::blank },
{ 0xFFFF,0,0,0,0 }
};
checkCoords(symbolList);
} while (data.byte(kGetback) == 0);
if ((data.byte(kSymbolbotnum) == 3) && (data.byte(kSymboltopnum) == 5)) {
removeSetObject(43);
placeSetObject(46);
turnAnyPathOn(0, data.byte(kRoomnum) + 12);
data.byte(kManisoffscreen) = 0;
redrawMainScrn();
getRidOfTemp();
restoreReels();
workToScreenM();
playChannel1(13);
} else {
removeSetObject(46);
placeSetObject(43);
turnAnyPathOff(0, data.byte(kRoomnum) + 12);
data.byte(kManisoffscreen) = 0;
redrawMainScrn();
getRidOfTemp();
restoreReels();
workToScreenM();
}
}

void DreamGenContext::zoomOnOff() {
if (data.word(kWatchingtime) != 0) {
blank();
Expand Down
1 change: 1 addition & 0 deletions engines/dreamweb/stubs.h
Expand Up @@ -364,6 +364,7 @@
void loadRoomData(const Room &room, bool skipDat);
void restoreAll();
void restoreReels();
void enterSymbol();
void viewFolder();
void checkFolderCoords();
void loadFolder();
Expand Down

0 comments on commit 156d3a9

Please sign in to comment.