DREAMWEB: 'slabdoora', 'slabdoorc', 'slabdoord', 'slabdoore', 'slabdoorf', 'useladder', 'useladderb', ported to C++

This commit is contained in:
Filippos Karapetis 2011-12-06 05:45:36 +02:00
parent b74302f7b0
commit 0d768ebe41
5 changed files with 142 additions and 148 deletions

View file

@ -534,6 +534,11 @@ generator = cpp(context, "DreamGen", blacklist = [
'showword',
'singlekey',
'sitdowninbar',
'slabdoora',
'slabdoorc',
'slabdoord',
'slabdoore',
'slabdoorf',
'smokebloke',
'sortoutmap',
'soundonreels',
@ -576,6 +581,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'useelevator3',
'useelevator4',
'useelevator5',
'useladder',
'useladderb',
'usehatch',
'usemenu',
'usemon',

View file

@ -5761,58 +5761,6 @@ void DreamGenContext::chewy() {
data.byte(kGetback) = 1;
}
void DreamGenContext::useLadder() {
STACK_CHECK;
showFirstUse();
_sub(data.byte(kMapx), 11);
findRoomInLoc();
data.byte(kFacing) = 6;
data.byte(kTurntoface) = 6;
data.byte(kManspath) = 0;
data.byte(kDestination) = 0;
data.byte(kFinaldest) = 0;
findXYFromPath();
data.byte(kResetmanxy) = 1;
data.byte(kGetback) = 1;
}
void DreamGenContext::useLadderB() {
STACK_CHECK;
showFirstUse();
_add(data.byte(kMapx), 11);
findRoomInLoc();
data.byte(kFacing) = 2;
data.byte(kTurntoface) = 2;
data.byte(kManspath) = 1;
data.byte(kDestination) = 1;
data.byte(kFinaldest) = 1;
findXYFromPath();
data.byte(kResetmanxy) = 1;
data.byte(kGetback) = 1;
}
void DreamGenContext::sLabDoorA() {
STACK_CHECK;
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 13;
_cmp(data.byte(kDreamnumber), 3);
if (!flags.z())
goto slabawrong;
_inc(data.byte(kProgresspoints));
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 42;
data.byte(kNewlocation) = 47;
return;
slabawrong:
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 34;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::sLabDoorB() {
STACK_CHECK;
_cmp(data.byte(kDreamnumber), 1);
@ -5853,94 +5801,6 @@ slabbwrong:
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::sLabDoorD() {
STACK_CHECK;
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 75;
_cmp(data.byte(kDreamnumber), 0);
if (!flags.z())
goto slabcwrong;
_inc(data.byte(kProgresspoints));
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 102;
data.byte(kNewlocation) = 47;
return;
slabcwrong:
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 94;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::sLabDoorC() {
STACK_CHECK;
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 108;
_cmp(data.byte(kDreamnumber), 4);
if (!flags.z())
goto slabdwrong;
_inc(data.byte(kProgresspoints));
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 135;
data.byte(kNewlocation) = 47;
return;
slabdwrong:
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 127;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::sLabDoorE() {
STACK_CHECK;
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 141;
_cmp(data.byte(kDreamnumber), 5);
if (!flags.z())
goto slabewrong;
_inc(data.byte(kProgresspoints));
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 168;
data.byte(kNewlocation) = 47;
return;
slabewrong:
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 160;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::sLabDoorF() {
STACK_CHECK;
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 171;
_cmp(data.byte(kDreamnumber), 2);
if (!flags.z())
goto slabfwrong;
_inc(data.byte(kProgresspoints));
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 197;
data.byte(kNewlocation) = 47;
return;
slabfwrong:
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 189;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
}
void DreamGenContext::useSLab() {
STACK_CHECK;
_cmp(data.byte(kWithobject), 255);

View file

@ -575,11 +575,7 @@ public:
void getOpenedSize();
void resetKeyboard();
void soundStartup();
void sLabDoorA();
void sLabDoorC();
void sLabDoorB();
void sLabDoorE();
void sLabDoorD();
void adjustUp();
void fadeScreenDownHalf();
void mouseCall();
@ -587,7 +583,6 @@ public:
void fadeDownMon();
void bartender();
void showDiary();
void sLabDoorF();
void outOfOpen();
void dirCom();
void dumpKeypad();
@ -623,7 +618,6 @@ public:
void heavy();
void useKey();
void lockLightOn();
void useLadderB();
void discOps();
void middlePanel();
void monitorLogo();
@ -709,7 +703,6 @@ public:
void useAxe();
void useElvDoor();
void putBackObStuff();
void useLadder();
void findAllOpen();
void quitSymbol();
void readFromFile();

View file

@ -521,5 +521,12 @@
void openLouis();
void DOSReturn();
void setWalk();
void useLadder();
void useLadderB();
void sLabDoorA();
void sLabDoorC();
void sLabDoorE();
void sLabDoorD();
void sLabDoorF();
#endif

View file

@ -564,5 +564,132 @@ void DreamGenContext::useWall() {
}
}
} /*namespace dreamgen */
void DreamGenContext::useLadder() {
showFirstUse();
data.byte(kMapx) = data.byte(kMapx) - 11;
findRoomInLoc();
data.byte(kFacing) = 6;
data.byte(kTurntoface) = 6;
data.byte(kManspath) = 0;
data.byte(kDestination) = 0;
data.byte(kFinaldest) = 0;
findXYFromPath();
data.byte(kResetmanxy) = 1;
data.byte(kGetback) = 1;
}
void DreamGenContext::useLadderB() {
showFirstUse();
data.byte(kMapx) = data.byte(kMapx) + 11;
findRoomInLoc();
data.byte(kFacing) = 2;
data.byte(kTurntoface) = 2;
data.byte(kManspath) = 1;
data.byte(kDestination) = 1;
data.byte(kFinaldest) = 1;
findXYFromPath();
data.byte(kResetmanxy) = 1;
data.byte(kGetback) = 1;
}
void DreamGenContext::sLabDoorA() {
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 13;
if (data.byte(kDreamnumber) != 3) {
// Wrong
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 34;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
} else {
data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 42;
data.byte(kNewlocation) = 47;
}
}
void DreamGenContext::sLabDoorC() {
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 108;
if (data.byte(kDreamnumber) != 4) {
// Wrong
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 127;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
} else {
data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 135;
data.byte(kNewlocation) = 47;
}
}
void DreamGenContext::sLabDoorD() {
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 75;
if (data.byte(kDreamnumber) != 0) {
// Wrong
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 94;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
} else {
data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 102;
data.byte(kNewlocation) = 47;
}
}
void DreamGenContext::sLabDoorE() {
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 141;
if (data.byte(kDreamnumber) != 5) {
// Wrong
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 160;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
} else {
data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 168;
data.byte(kNewlocation) = 47;
}
}
void DreamGenContext::sLabDoorF() {
showFirstUse();
data.byte(kGetback) = 1;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
data.word(kReeltowatch) = 171;
if (data.byte(kDreamnumber) != 2) {
// Wrong
data.word(kWatchingtime) = 40;
data.word(kEndwatchreel) = 189;
data.byte(kWatchspeed) = 1;
data.byte(kSpeedcount) = 1;
} else {
data.byte(kProgresspoints) = data.byte(kProgresspoints) + 1;
data.word(kWatchingtime) = 60;
data.word(kEndwatchreel) = 197;
data.byte(kNewlocation) = 47;
}
}
} /*namespace dreamgen */