From 3f791509d78c234a92e43a1656d6d5ebd3aafb91 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sat, 3 Dec 2011 18:22:09 +0100 Subject: DREAMWEB: people.cpp --- engines/dreamweb/sprite.cpp | 304 -------------------------------------------- 1 file changed, 304 deletions(-) (limited to 'engines/dreamweb/sprite.cpp') diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 67ce7dcbba..5e4822728c 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -565,182 +565,6 @@ void DreamGenContext::showRain() { playChannel1(soundIndex); } -static void (DreamGenContext::*reelCallbacks[57])() = { - NULL, NULL, - NULL, &DreamGenContext::edenInBath, - NULL, &DreamGenContext::smokeBloke, - &DreamGenContext::manAsleep, &DreamGenContext::drunk, - &DreamGenContext::receptionist, NULL, - NULL, &DreamGenContext::louis, - &DreamGenContext::louisChair, &DreamGenContext::soldier1, - &DreamGenContext::bossMan, &DreamGenContext::interviewer, - &DreamGenContext::heavy, &DreamGenContext::manAsleep2, - &DreamGenContext::manSatStill, &DreamGenContext::drinker, - &DreamGenContext::bartender, NULL, - &DreamGenContext::tattooMan, &DreamGenContext::attendant, - &DreamGenContext::keeper, &DreamGenContext::candles1, - &DreamGenContext::smallCandle, &DreamGenContext::security, - &DreamGenContext::copper, &DreamGenContext::poolGuard, - NULL, &DreamGenContext::businessMan, - &DreamGenContext::train, &DreamGenContext::aide, - &DreamGenContext::mugger, &DreamGenContext::helicopter, - &DreamGenContext::introMagic1, &DreamGenContext::introMusic, - &DreamGenContext::introMagic2, &DreamGenContext::candles2, - &DreamGenContext::gates, &DreamGenContext::introMagic3, - &DreamGenContext::introMonks1, &DreamGenContext::candles, - &DreamGenContext::introMonks2, &DreamGenContext::handClap, - &DreamGenContext::monkAndRyan, &DreamGenContext::endGameSeq, - &DreamGenContext::priest, &DreamGenContext::madman, - &DreamGenContext::madmansTelly, &DreamGenContext::alleyBarkSound, - &DreamGenContext::foghornSound, &DreamGenContext::carParkDrip, - &DreamGenContext::carParkDrip, &DreamGenContext::carParkDrip, - &DreamGenContext::carParkDrip -}; - -static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = { - &DreamGenContext::gamer, &DreamGenContext::sparkyDrip, - &DreamGenContext::eden, /*&DreamGenContext::edenInBath*/NULL, - &DreamGenContext::sparky, /*&DreamGenContext::smokeBloke*/NULL, - /*&DreamGenContext::manAsleep*/NULL, /*&DreamGenContext::drunk*/NULL, - /*&DreamGenContext::receptionist*/NULL, &DreamGenContext::maleFan, - &DreamGenContext::femaleFan, /*&DreamGenContext::louis*/NULL, - /*&DreamGenContext::louisChair*/NULL, /*&DreamGenContext::soldier1*/NULL, - /*&DreamGenContext::bossMan*/NULL, /*&DreamGenContext::interviewer*/NULL, - /*&DreamGenContext::heavy*/NULL, /*&DreamGenContext::manAsleep2*/NULL, - /*&DreamGenContext::manSatStill*/NULL, /*&DreamGenContext::drinker*/NULL, - /*&DreamGenContext::bartender*/NULL, &DreamGenContext::otherSmoker, - /*&DreamGenContext::tattooMan*/NULL, /*&DreamGenContext::attendant*/NULL, - /*&DreamGenContext::keeper*/NULL, /*&DreamGenContext::candles1*/NULL, - /*&DreamGenContext::smallcandle*/NULL, /*&DreamGenContext::security*/NULL, - /*&DreamGenContext::copper*/NULL, /*&DreamGenContext::poolGuard*/NULL, - &DreamGenContext::rockstar, /*&DreamGenContext::businessMan*/NULL, - /*&DreamGenContext::train*/NULL, /*&DreamGenContext::aide*/NULL, - /*&DreamGenContext::mugger*/NULL, /*&DreamGenContext::helicopter*/NULL, - /*&DreamGenContext::introMagic1*/NULL, /*&DreamGenContext::introMusic*/NULL, - /*&DreamGenContext::introMagic2*/NULL, /*&DreamGenContext::candles2*/NULL, - /*&DreamGenContext::gates*/NULL, /*&DreamGenContext::introMagic3*/NULL, - /*&DreamGenContext::intromonks1*/NULL, /*&DreamGenContext::candles*/NULL, - /*&DreamGenContext::intromonks2*/NULL, /*&DreamGenContext::handClap*/NULL, - /*&DreamGenContext::monkAndRyan*/NULL, /*&DreamGenContext::endGameSeq*/NULL, - /*&DreamGenContext::priest*/NULL, /*&DreamGenContext::madman*/NULL, - /*&DreamGenContext::madmansTelly*/NULL, /*&DreamGenContext::alleyBarkSound*/NULL, - /*&DreamGenContext::foghornSound*/NULL, /*&DreamGenContext::carParkDrip*/NULL, - /*&DreamGenContext::carParkDrip*/NULL, /*&DreamGenContext::carParkDrip*/NULL, - /*&DreamGenContext::carParkDrip*/NULL -}; - -void DreamGenContext::updatePeople() { - data.word(kListpos) = kPeoplelist; - memset(getSegment(data.word(kBuffers)).ptr(kPeoplelist, 12 * sizeof(People)), 0xff, 12 * sizeof(People)); - ++data.word(kMaintimer); - - // The original callbacks are called with es:bx pointing to their reelRoutine entry. - // The new callbacks take a mutable ReelRoutine parameter. - - es = cs; - ReelRoutine *r = (ReelRoutine *)cs.ptr(kReelroutines, 0); - - for (int i = 0; r[i].reallocation != 255; ++i) { - bx = kReelroutines + 8*i; - if (r[i].reallocation == data.byte(kReallocation) && - r[i].mapX == data.byte(kMapx) && - r[i].mapY == data.byte(kMapy)) { - if (reelCallbacks[i]) { - assert(!reelCallbacksCPP[i]); - (this->*(reelCallbacks[i]))(); - } else { - assert(reelCallbacksCPP[i]); - (this->*(reelCallbacksCPP[i]))(r[i]); - } - } - } -} - -void DreamGenContext::madmanText() { - if (isCD()) { - if (data.byte(kSpeechcount) >= 63) - return; - if (data.byte(kCh1playing) != 255) - return; - al = data.byte(kSpeechcount); - ++data.byte(kSpeechcount); - } else { - if (data.byte(kCombatcount) >= 61) - return; - al = data.byte(kCombatcount); - _and(al, 3); - if (!flags.z()) - return; - al = data.byte(kCombatcount) / 4; - } - setupTimedTemp(47 + al, 82, 72, 80, 90, 1); -} - -void DreamGenContext::madman() { - ReelRoutine *routine = (ReelRoutine *)es.ptr(bx, 0); - data.word(kWatchingtime) = 2; - if (checkSpeed(routine)) { - ax = routine->reelPointer(); - if (ax >= 364) { - data.byte(kMandead) = 2; - showGameReel(routine); - return; - } - if (ax == 10) { - loadTempText("DREAMWEB.T82"); - data.byte(kCombatcount) = (uint8)-1; - data.byte(kSpeechcount) = 0; - } - ++ax; - if (ax == 294) { - if (data.byte(kWongame) == 1) - return; - data.byte(kWongame) = 1; - push(es); - push(bx); - getRidOfTempText(); - bx = pop(); - es = pop(); - return; - } - if (ax == 66) { - ++data.byte(kCombatcount); - push(es); - push(bx); - madmanText(); - bx = pop(); - es = pop(); - ax = 53; - if (data.byte(kCombatcount) >= (isCD() ? 64 : 62)) { - if (data.byte(kCombatcount) == (isCD() ? 70 : 68)) - ax = 310; - else { - if (data.byte(kLastweapon) == 8) { - data.byte(kCombatcount) = isCD() ? 72 : 70; - data.byte(kLastweapon) = (uint8)-1; - data.byte(kMadmanflag) = 1; - ax = 67; - } - } - } - } - routine->setReelPointer(ax); - } - showGameReel(routine); - routine->mapX = data.byte(kMapx); - madMode(); -} - -void DreamGenContext::madMode() { - data.word(kWatchingtime) = 2; - data.byte(kPointermode) = 0; - if (data.byte(kCombatcount) < (isCD() ? 65 : 63)) - return; - if (data.byte(kCombatcount) >= (isCD() ? 70 : 68)) - return; - data.byte(kPointermode) = 2; -} - void DreamGenContext::moveMap(uint8 param) { switch (param) { case 32: @@ -795,20 +619,6 @@ uint8 DreamGenContext::getBlockOfPixel(uint8 x, uint8 y) { return type; } -void DreamGenContext::addToPeopleList() { - addToPeopleList((ReelRoutine *)es.ptr(bx, sizeof(ReelRoutine))); -} - -void DreamGenContext::addToPeopleList(ReelRoutine *routine) { - uint16 routinePointer = (const uint8 *)routine - cs.ptr(0, 0); - - People *people = (People *)getSegment(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(People)); - people->setReelPointer(routine->reelPointer()); - people->setRoutinePointer(routinePointer); - people->b4 = routine->b7; - data.word(kListpos) += sizeof(People); -} - Rain *DreamGenContext::splitIntoLines(uint8 x, uint8 y, Rain *rain) { do { // Look for line start @@ -1060,119 +870,5 @@ void DreamGenContext::reconstruct() { data.byte(kHavedoneobs) = 0; } -void DreamGenContext::checkSpeed() { - ReelRoutine *routine = (ReelRoutine *)es.ptr(bx, sizeof(ReelRoutine)); - flags._z = checkSpeed(routine); -} - -bool DreamGenContext::checkSpeed(ReelRoutine *routine) { - if (data.byte(kLastweapon) != (uint8)-1) - return true; - ++routine->counter; - if (routine->counter != routine->period) - return false; - routine->counter = 0; - return true; -} - -void DreamGenContext::sparkyDrip(ReelRoutine &routine) { - if (checkSpeed(&routine)) - playChannel0(14, 0); -} - -void DreamGenContext::otherSmoker(ReelRoutine &routine) { - showGameReel(&routine); - addToPeopleList(&routine); -} - -void DreamGenContext::gamer(ReelRoutine &routine) { - if (checkSpeed(&routine)) { - uint8 v; - do { - v = 20 + engine->randomNumber() % 5; - } while (v == routine.reelPointer()); - routine.setReelPointer(v); - } - - showGameReel(&routine); - addToPeopleList(&routine); -} - -void DreamGenContext::eden(ReelRoutine &routine) { - if (data.byte(kGeneraldead)) - return; - showGameReel(&routine); - addToPeopleList(&routine); -} - -void DreamGenContext::femaleFan(ReelRoutine &routine) { - showGameReel(&routine); - addToPeopleList(&routine); -} - -void DreamGenContext::maleFan(ReelRoutine &routine) { - showGameReel(&routine); - addToPeopleList(&routine); -} - -void DreamGenContext::sparky(ReelRoutine &routine) { - if (data.word(kCard1money)) - routine.b7 = 3; - if (checkSpeed(&routine)) { - if (routine.reelPointer() != 34) { - if (engine->randomNumber() < 30) - routine.incReelPointer(); - else - routine.setReelPointer(27); - } else { - if (routine.reelPointer() != 48) - routine.incReelPointer(); - else - routine.setReelPointer(27); - } - } - showGameReel(&routine); - addToPeopleList(&routine); - if (routine.b7 & 128) - data.byte(kTalkedtosparky) = 1; -} - -void DreamGenContext::rockstar(ReelRoutine &routine) { - if ((routine.reelPointer() == 303) || (routine.reelPointer() == 118)) { - data.byte(kNewlocation) = 45; - showGameReel(&routine); - return; - } - if (checkSpeed(&routine)) { - uint16 nextReelPointer = routine.reelPointer() + 1; - if (nextReelPointer == 118) { - data.byte(kMandead) = 2; - } else if (nextReelPointer == 79) { - --nextReelPointer; - if (data.byte(kLastweapon) != 1) { - ++data.byte(kCombatcount); - if (data.byte(kCombatcount) == 40) { - data.byte(kCombatcount) = 0; - nextReelPointer = 79; - } - } else { - data.byte(kLastweapon) = -1; - nextReelPointer = 123; - } - } - routine.setReelPointer(nextReelPointer); - } - showGameReel(&routine); - if (routine.reelPointer() == 78) { - addToPeopleList(&routine); - data.byte(kPointermode) = 2; - data.word(kWatchingtime) = 0; - } else { - data.word(kWatchingtime) = 2; - data.byte(kPointermode) = 0; - routine.mapY = data.byte(kMapy); - } -} - } /*namespace dreamgen */ -- cgit v1.2.3