aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/people.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/people.cpp')
-rw-r--r--engines/dreamweb/people.cpp66
1 files changed, 62 insertions, 4 deletions
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index 84f6543a19..caaea26d0d 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -29,13 +29,13 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
NULL, NULL,
NULL, NULL,
NULL, NULL,
- &DreamGenContext::receptionist, NULL,
+ NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
&DreamGenContext::heavy, NULL,
NULL, NULL,
- &DreamGenContext::bartender, NULL,
+ NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL,
@@ -61,13 +61,13 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
&DreamGenContext::eden, &DreamGenContext::edenInBath,
&DreamGenContext::sparky, &DreamGenContext::smokeBloke,
&DreamGenContext::manAsleep, &DreamGenContext::drunk,
- /*&DreamGenContext::receptionist*/NULL, &DreamGenContext::genericPerson /*maleFan*/,
+ &DreamGenContext::receptionist, &DreamGenContext::genericPerson /*maleFan*/,
&DreamGenContext::genericPerson /*femaleFan*/, &DreamGenContext::louis,
&DreamGenContext::louisChair, &DreamGenContext::soldier1,
&DreamGenContext::bossMan, &DreamGenContext::interviewer,
/*&DreamGenContext::heavy*/NULL, &DreamGenContext::manAsleep /*manAsleep2*/,
&DreamGenContext::genericPerson /*manSatStill*/, &DreamGenContext::drinker,
- /*&DreamGenContext::bartender*/NULL, &DreamGenContext::genericPerson /*otherSmoker*/,
+ &DreamGenContext::bartender, &DreamGenContext::genericPerson /*otherSmoker*/,
&DreamGenContext::genericPerson /*tattooMan*/, &DreamGenContext::attendant,
&DreamGenContext::keeper, &DreamGenContext::candles1,
&DreamGenContext::smallCandle, &DreamGenContext::security,
@@ -777,4 +777,62 @@ void DreamGenContext::soldier1(ReelRoutine &routine) {
addToPeopleList(&routine);
}
+void DreamGenContext::receptionist(ReelRoutine &routine) {
+ if (checkSpeed(routine)) {
+ if (data.byte(kCardpassflag) == 1) {
+ // Set card
+ data.byte(kCardpassflag)++;
+ routine.b7 = 1;
+ routine.b3 = 64;
+ }
+
+ if (routine.b3 != 58) {
+ // notdes1
+ if (routine.b3 != 60) {
+ // notdes2
+ if (routine.b3 != 88)
+ routine.b3++; // not end card
+ else
+ routine.b3 = 53;
+ } else if (engine->randomNumber() >= 240) {
+ routine.b3 = 53;
+ }
+ } else if (engine->randomNumber() >= 30) {
+ routine.b3 = 55;
+ } else {
+ // notdes2
+ if (routine.b3 != 88)
+ routine.b3++; // not end card
+ else
+ routine.b3 = 53;
+ }
+ }
+
+ showGameReel(&routine);
+ addToPeopleList(&routine);
+ if (routine.b7 & 128)
+ data.byte(kTalkedtorecep) = 1;
+}
+
+void DreamGenContext::bartender(ReelRoutine &routine) {
+ if (checkSpeed(routine)) {
+ if (routine.b3 == 86) {
+ if (engine->randomNumber() >= 18)
+ routine.b3 = 81;
+ else
+ routine.b3++; // notsmoket2
+ } else if (routine.b3 == 103) {
+ routine.b3 = 81; // notsmoket1
+ } else {
+ routine.b3++; // notsmoket2
+ }
+ }
+
+ showGameReel(&routine);
+ if (data.byte(kGunpassflag) == 1)
+ routine.b7 = 9; // got gun
+
+ addToPeopleList(&routine);
+}
+
} // End of namespace DreamGen