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.cpp45
1 files changed, 39 insertions, 6 deletions
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index 0c83b7b3eb..31020cd6c4 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -32,9 +32,9 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
&DreamGenContext::receptionist, NULL,
NULL, NULL,
&DreamGenContext::louisChair, &DreamGenContext::soldier1,
- &DreamGenContext::bossMan, &DreamGenContext::interviewer,
+ &DreamGenContext::bossMan, NULL,
&DreamGenContext::heavy, NULL,
- NULL, &DreamGenContext::drinker,
+ NULL, NULL,
&DreamGenContext::bartender, NULL,
NULL, NULL,
NULL, NULL,
@@ -50,7 +50,7 @@ static void (DreamGenContext::*reelCallbacks[57])() = {
&DreamGenContext::introMonks2, NULL,
&DreamGenContext::monkAndRyan, &DreamGenContext::endGameSeq,
&DreamGenContext::priest, NULL,
- NULL, &DreamGenContext::alleyBarkSound,
+ NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL
@@ -64,9 +64,9 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
/*&DreamGenContext::receptionist*/NULL, &DreamGenContext::genericPerson /*maleFan*/,
&DreamGenContext::genericPerson /*femaleFan*/, &DreamGenContext::louis,
/*&DreamGenContext::louisChair*/NULL, /*&DreamGenContext::soldier1*/NULL,
- /*&DreamGenContext::bossMan*/NULL, /*&DreamGenContext::interviewer*/NULL,
+ /*&DreamGenContext::bossMan*/NULL, &DreamGenContext::interviewer,
/*&DreamGenContext::heavy*/NULL, &DreamGenContext::manAsleep /*manAsleep2*/,
- &DreamGenContext::genericPerson /*manSatStill*/, /*&DreamGenContext::drinker*/NULL,
+ &DreamGenContext::genericPerson /*manSatStill*/, &DreamGenContext::drinker,
/*&DreamGenContext::bartender*/NULL, &DreamGenContext::genericPerson /*otherSmoker*/,
&DreamGenContext::genericPerson /*tattooMan*/, &DreamGenContext::attendant,
&DreamGenContext::keeper, &DreamGenContext::candles1,
@@ -82,7 +82,7 @@ static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {
/*&DreamGenContext::intromonks2*/NULL, &DreamGenContext::handClap,
/*&DreamGenContext::monkAndRyan*/NULL, /*&DreamGenContext::endGameSeq*/NULL,
/*&DreamGenContext::priest*/NULL, &DreamGenContext::madman,
- &DreamGenContext::madmansTelly, /*&DreamGenContext::alleyBarkSound*/NULL,
+ &DreamGenContext::madmansTelly, &DreamGenContext::alleyBarkSound,
&DreamGenContext::foghornSound, &DreamGenContext::carParkDrip,
&DreamGenContext::carParkDrip, &DreamGenContext::carParkDrip,
&DreamGenContext::carParkDrip
@@ -376,6 +376,39 @@ void DreamGenContext::drunk(ReelRoutine &routine) {
addToPeopleList(&routine);
}
+void DreamGenContext::interviewer(ReelRoutine &routine) {
+ if (data.word(kReeltowatch) == 68)
+ routine.incReelPointer();
+
+ if (routine.reelPointer() != 250 && routine.reelPointer() != 259 && checkSpeed(routine))
+ routine.incReelPointer();
+
+ showGameReel(&routine);
+}
+
+void DreamGenContext::drinker(ReelRoutine &routine) {
+ if (checkSpeed(routine)) {
+ routine.incReelPointer();
+
+ if ( routine.reelPointer() == 115 ||
+ (routine.reelPointer() == 106 && engine->randomNumber() >= 3))
+ routine.setReelPointer(105);
+ }
+
+ showGameReel(&routine);
+ addToPeopleList(&routine);
+}
+
+void DreamGenContext::alleyBarkSound(ReelRoutine &routine) {
+ uint16 prevReelPointer = routine.reelPointer() - 1;
+ if (prevReelPointer == 0) {
+ playChannel1(14);
+ routine.setReelPointer(1000);
+ } else {
+ routine.setReelPointer(prevReelPointer);
+ }
+}
+
void DreamGenContext::introMagic1(ReelRoutine &routine) {
if (checkSpeed(routine)) {
uint16 nextReelPointer = routine.reelPointer() + 1;