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

@ -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 */