DREAMWEB: 'intro1text', 'intro2text', 'intro3text', 'monks2text' ported to C++. textForMonk() has been converted to C++, too.

This commit is contained in:
Filippos Karapetis 2011-12-06 12:35:47 +02:00
parent 7d9d53d2ba
commit d5b220220f
6 changed files with 98 additions and 304 deletions

View file

@ -335,6 +335,9 @@ generator = cpp(context, "DreamGen", blacklist = [
'initrain',
'input',
'intro',
'intro1text',
'intro2text',
'intro3text',
'intromagic1',
'intromusic',
'inventory',
@ -392,6 +395,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'modifychar',
'monmessage',
'monprint',
'monks2text',
'movemap',
'multidump',
'multiget',

View file

@ -909,212 +909,6 @@ intromonk2fin:
showGameReel();
}
void DreamGenContext::monks2text() {
STACK_CHECK;
_cmp(data.byte(kIntrocount), 1);
if (!flags.z())
goto notmonk2text1;
al = 8;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text1:
_cmp(data.byte(kIntrocount), 4);
if (!flags.z())
goto notmonk2text2;
al = 9;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text2:
_cmp(data.byte(kIntrocount), 7);
if (!flags.z())
goto notmonk2text3;
al = 10;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text3:
_cmp(data.byte(kIntrocount), 10);
if (!flags.z())
goto notmonk2text4;
data.byte(kIntrocount) = 12;
al = 11;
bl = 0;
bh = 105;
cx = 100;
goto gotmonks2text;
notmonk2text4:
_cmp(data.byte(kIntrocount), 13);
if (!flags.z())
goto notmonk2text5;
data.byte(kIntrocount) = 17;
return;
al = 12;
bl = 0;
bh = 120;
cx = 100;
goto gotmonks2text;
notmonk2text5:
_cmp(data.byte(kIntrocount), 16);
if (!flags.z())
goto notmonk2text6;
al = 13;
bl = 0;
bh = 135;
cx = 100;
goto gotmonks2text;
notmonk2text6:
_cmp(data.byte(kIntrocount), 19);
if (!flags.z())
goto notmonk2text7;
al = 14;
bl = 36;
bh = 160;
cx = 100;
dx = 1;
ah = 82;
{ setupTimedTemp(); return; };
notmonk2text7:
_cmp(data.byte(kIntrocount), 22);
if (!flags.z())
goto notmonk2text8;
al = 15;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text8:
_cmp(data.byte(kIntrocount), 25);
if (!flags.z())
goto notmonk2text9;
al = 16;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text9:
_cmp(data.byte(kIntrocount), 27);
if (!flags.z())
goto notmonk2text10;
al = 17;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
notmonk2text10:
_cmp(data.byte(kIntrocount), 31);
if (!flags.z())
return /* (notmonk2text11) */;
al = 18;
bl = 36;
bh = 160;
cx = 100;
goto gotmonks2text;
return;
gotmonks2text:
dx = 1;
cx = 120;
ah = 82;
setupTimedTemp();
}
void DreamGenContext::intro1Text() {
STACK_CHECK;
_cmp(data.byte(kIntrocount), 2);
if (!flags.z())
goto notintro1text1;
al = 40;
bl = 34;
bh = 130;
cx = 90;
goto gotintro1text;
notintro1text1:
_cmp(data.byte(kIntrocount), 4);
if (!flags.z())
goto notintro1text2;
al = 41;
bl = 34;
bh = 130;
cx = 90;
goto gotintro1text;
notintro1text2:
_cmp(data.byte(kIntrocount), 6);
if (!flags.z())
return /* (notintro1text3) */;
al = 42;
bl = 34;
bh = 130;
cx = 90;
goto gotintro1text;
return;
gotintro1text:
dx = 1;
ah = 82;
_cmp(data.byte(kCh1playing), 255);
if (flags.z())
goto oktalk2;
_dec(data.byte(kIntrocount));
return;
oktalk2:
setupTimedTemp();
}
void DreamGenContext::intro2Text() {
STACK_CHECK;
_cmp(ax, 5);
if (!flags.z())
goto notintro2text1;
al = 43;
bl = 34;
bh = 40;
cx = 90;
goto gotintro2text;
notintro2text1:
_cmp(ax, 15);
if (!flags.z())
return /* (notintro2text2) */;
al = 44;
bl = 34;
bh = 40;
cx = 90;
goto gotintro2text;
return;
gotintro2text:
dx = 1;
ah = 82;
setupTimedTemp();
}
void DreamGenContext::intro3Text() {
STACK_CHECK;
_cmp(ax, 107);
if (!flags.z())
goto notintro3text1;
al = 45;
bl = 36;
bh = 56;
cx = 100;
goto gotintro3text;
notintro3text1:
_cmp(ax, 108);
if (!flags.z())
return /* (notintro3text2) */;
al = 46;
bl = 36;
bh = 56;
cx = 100;
goto gotintro3text;
return;
gotintro3text:
dx = 1;
ah = 82;
setupTimedTemp();
}
void DreamGenContext::monkAndRyan() {
STACK_CHECK;
checkSpeed();

View file

@ -627,7 +627,6 @@ public:
void runIntroSeq();
void advisor();
void attendant();
void monks2text();
void clearPalette();
void cantDrop();
void copper();
@ -643,7 +642,6 @@ public:
void workoutFrames();
void dumpSymBox();
void rollEndCredits();
void intro2Text();
void interviewer();
void getKeyAndLogo();
void selectOb();
@ -662,7 +660,6 @@ public:
void introMagic3();
void showDiaryPage();
void dumpSymbol();
void intro1Text();
void transferToEx();
void reExFromInv();
void examineInventory();
@ -730,7 +727,6 @@ public:
void dumpCurrent();
void showDiaryKeys();
void dontLoadSeg();
void intro3Text();
void allocateMem();
void useOpened();
void fillOpen();

View file

@ -742,109 +742,109 @@ void DreamGenContext::initRain() {
rain->x = 0xff;
}
void DreamGenContext::intro1Text() {
if ((data.byte(kIntrocount) == 2 || data.byte(kIntrocount) == 4 || data.byte(kIntrocount) == 6) &&
data.byte(kCh1playing) == 255) {
data.byte(kIntrocount) = data.byte(kIntrocount) - 1;
} else {
if (data.byte(kIntrocount) == 2)
setupTimedTemp(40, 82, 34, 130, 90, 1);
else if (data.byte(kIntrocount) == 4)
setupTimedTemp(41, 82, 34, 130, 90, 1);
else if (data.byte(kIntrocount) == 6)
setupTimedTemp(42, 82, 34, 130, 90, 1);
}
}
void DreamGenContext::intro2Text() {
if (ax == 5)
setupTimedTemp(43, 82, 34, 40, 90, 1);
else if (ax == 15)
setupTimedTemp(44, 82, 34, 40, 90, 1);
}
void DreamGenContext::intro3Text() {
if (ax == 107)
setupTimedTemp(45, 82, 36, 56, 100, 1);
else if (ax == 108)
setupTimedTemp(46, 82, 36, 56, 100, 1);
}
void DreamGenContext::monks2text() {
if (data.byte(kIntrocount) == 1)
setupTimedTemp(8, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 4)
setupTimedTemp(9, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 7)
setupTimedTemp(10, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 10)
setupTimedTemp(11, 82, 0, 105, 120, 1);
else if (data.byte(kIntrocount) == 13)
setupTimedTemp(12, 82, 0, 120, 120, 1);
else if (data.byte(kIntrocount) == 16)
setupTimedTemp(13, 82, 0, 135, 120, 1);
else if (data.byte(kIntrocount) == 19)
setupTimedTemp(14, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 22)
setupTimedTemp(15, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 25)
setupTimedTemp(16, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 27)
setupTimedTemp(17, 82, 36, 160, 120, 1);
else if (data.byte(kIntrocount) == 31)
setupTimedTemp(18, 82, 36, 160, 120, 1);
}
void DreamGenContext::textForEnd() {
if (data.byte(kIntrocount) == 20)
al = 0;
setupTimedTemp(0, 83, 34, 20, 60, 1);
else if (data.byte(kIntrocount) == (isCD() ? 50 : 65))
al = 1;
setupTimedTemp(1, 83, 34, 20, 60, 1);
else if (data.byte(kIntrocount) == (isCD() ? 85 : 110))
al = 2;
else
return;
setupTimedTemp(2, 83, 34, 20, 60, 1);
}
bl = 34;
bh = 20;
cx = 60;
dx = 1;
ah = 83;
setupTimedTemp();
void DreamGenContext::textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
if (isCD() && data.byte(kCh1playing) != 255)
data.byte(kIntrocount)--;
else
setupTimedTemp(textIndex, voiceIndex, x, y, countToTimed, timeCount);
}
void DreamGenContext::textForMonk() {
if (data.byte(kIntrocount) == 1) {
al = 19;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 5) {
al = 20;
bl = 68;
bh = 38;
cx = 120;
} else if (data.byte(kIntrocount) == 9) {
al = 21;
bl = 48;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 13) {
al = 22;
bl = 68;
bh = 38;
cx = 120;
} else if (data.byte(kIntrocount) == (isCD() ? 15 : 17)) {
al = 23;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 21) {
al = 24;
bl = 68;
bh = 38;
cx = 120;
} else if (data.byte(kIntrocount) == 25) {
al = 25;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 29) {
al = 26;
bl = 68;
bh = 38;
cx = 120;
} else if (data.byte(kIntrocount) == 33) {
al = 27;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 37) {
al = 28;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == 41) {
al = 29;
bl = 68;
bh = 38;
cx = 120;
} else if (data.byte(kIntrocount) == 45) {
al = 30;
bl = 68;
bh = 154;
cx = 120;
} else if (data.byte(kIntrocount) == (isCD() ? 52 : 49)) {
al = 31;
bl = 68;
bh = 154;
cx = 220;
} else if (data.byte(kIntrocount) == 53) {
if (data.byte(kIntrocount) == 1)
textForMonkHelper(19, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == 5)
textForMonkHelper(20, 82, 68, 38, 120, 1);
else if (data.byte(kIntrocount) == 9)
textForMonkHelper(21, 82, 48, 154, 120, 1);
else if (data.byte(kIntrocount) == 13)
textForMonkHelper(22, 82, 68, 38, 120, 1);
else if (data.byte(kIntrocount) == (isCD() ? 15 : 17))
textForMonkHelper(23, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == 21)
textForMonkHelper(24, 82, 68, 38, 120, 1);
else if (data.byte(kIntrocount) == 25)
textForMonkHelper(25, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == 29)
textForMonkHelper(26, 82, 68, 38, 120, 1);
else if (data.byte(kIntrocount) == 33)
textForMonkHelper(27, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == 37)
textForMonkHelper(28, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == 41)
textForMonkHelper(29, 82, 68, 38, 120, 1);
else if (data.byte(kIntrocount) == 45)
textForMonkHelper(30, 82, 68, 154, 120, 1);
else if (data.byte(kIntrocount) == (isCD() ? 52 : 49))
textForMonkHelper(31, 82, 68, 154, 220, 1);
else if (data.byte(kIntrocount) == 53) {
fadeScreenDowns();
if (isCD()) {
data.byte(kVolumeto) = 7;
data.byte(kVolumedirection) = 1;
}
return;
} else {
return;
}
dx = 1;
ah = 82;
if (isCD() && data.byte(kCh1playing) != 255) {
data.byte(kIntrocount)--;
return;
}
setupTimedTemp();
}
void DreamGenContext::reelsOnScreen() {

View file

@ -964,10 +964,6 @@ void DreamGenContext::useTimedText() {
data.byte(kNeedtodumptimed) = 1;
}
void DreamGenContext::setupTimedTemp() {
setupTimedTemp(al, ah, bl, bh, cx, dx);
}
void DreamGenContext::setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
#if 1 // if cd
if (voiceIndex != 0) {

View file

@ -82,7 +82,6 @@
void printMessage();
void useTimedText();
void dumpTimedText();
void setupTimedTemp();
void setupTimedTemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
void getUnderTimed();
void putUnderTimed();
@ -302,7 +301,12 @@
void getUnderMenu();
void putUnderMenu();
void textForMonk();
void textForMonkHelper(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
void textForEnd();
void monks2text();
void intro1Text();
void intro2Text();
void intro3Text();
void readSetData();
void loadRoomsSample();
void fadeupYellows();