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

View file

@ -5761,58 +5761,6 @@ void DreamGenContext::chewy() {
data.byte(kGetback) = 1; 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() { void DreamGenContext::sLabDoorB() {
STACK_CHECK; STACK_CHECK;
_cmp(data.byte(kDreamnumber), 1); _cmp(data.byte(kDreamnumber), 1);
@ -5853,94 +5801,6 @@ slabbwrong:
data.byte(kSpeedcount) = 1; 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() { void DreamGenContext::useSLab() {
STACK_CHECK; STACK_CHECK;
_cmp(data.byte(kWithobject), 255); _cmp(data.byte(kWithobject), 255);

View file

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

View file

@ -521,5 +521,12 @@
void openLouis(); void openLouis();
void DOSReturn(); void DOSReturn();
void setWalk(); void setWalk();
void useLadder();
void useLadderB();
void sLabDoorA();
void sLabDoorC();
void sLabDoorE();
void sLabDoorD();
void sLabDoorF();
#endif #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 */