mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-27 05:32:45 +00:00
AVALANCHE: Move 2 enums out of Avalot classes, set private some parser variables
This commit is contained in:
parent
cbe9c151aa
commit
f4e37939c7
@ -771,7 +771,7 @@ void Animation::callSpecial(uint16 which) {
|
||||
_sprites[1].walkTo(2);
|
||||
_sprites[1]._vanishIfStill = true;
|
||||
_sprites[1]._doCheck = true; // One of them must have Check_Me switched on.
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleFriarTuck - 150] = kRoomDummy; // Not here, then.
|
||||
_vm->_avalot->_whereIs[kPeopleFriarTuck - 150] = kRoomDummy; // Not here, then.
|
||||
_vm->_timer->addTimer(364, Timer::kProcHangAround, Timer::kReasonHangingAround);
|
||||
}
|
||||
break;
|
||||
@ -813,7 +813,7 @@ void Animation::callSpecial(uint16 which) {
|
||||
case 10: // _vm->_avalot->special 10: transfer north in catacombs.
|
||||
if ((_vm->_avalot->_catacombX == 4) && (_vm->_avalot->_catacombY == 1)) {
|
||||
// Into Geida's room.
|
||||
if (_vm->_avalot->_objects[Avalot::kObjectKey - 1])
|
||||
if (_vm->_avalot->_objects[kObjectKey - 1])
|
||||
_vm->_dialogs->displayScrollChain('q', 62);
|
||||
else {
|
||||
_vm->_dialogs->displayScrollChain('q', 61);
|
||||
@ -1229,7 +1229,7 @@ void Animation::stopWalking() {
|
||||
*/
|
||||
void Animation::hideInCupboard() {
|
||||
if (_vm->_avalot->_avvysInTheCupboard) {
|
||||
if (_vm->_parser->_wearing == Parser::kNothing) {
|
||||
if (_vm->_parser->_wearing == kObjectDummy) {
|
||||
Common::String tmpStr = Common::String::format("%cAVVY!%cGet dressed first!", Dialogs::kControlItalic, Dialogs::kControlRoman);
|
||||
_vm->_dialogs->displayText(tmpStr);
|
||||
} else {
|
||||
|
@ -126,8 +126,6 @@ void AvalancheEngine::synchronize(Common::Serializer &sz) {
|
||||
_saveNum++;
|
||||
sz.syncAsByte(_saveNum);
|
||||
sz.syncBytes(_avalot->_roomCount, 100);
|
||||
sz.syncAsByte(_parser->_alcoholLevel);
|
||||
sz.syncAsByte(_parser->_playedNim);
|
||||
sz.syncAsByte(_avalot->_wonNim);
|
||||
sz.syncAsByte(_avalot->_wineState);
|
||||
sz.syncAsByte(_avalot->_cwytalotGone);
|
||||
@ -135,7 +133,6 @@ void AvalancheEngine::synchronize(Common::Serializer &sz) {
|
||||
sz.syncAsByte(_avalot->_aylesIsAwake);
|
||||
sz.syncAsByte(_avalot->_drawbridgeOpen);
|
||||
sz.syncAsByte(_avalot->_avariciusTalk);
|
||||
sz.syncAsByte(_parser->_boughtOnion);
|
||||
sz.syncAsByte(_avalot->_rottenOnion);
|
||||
sz.syncAsByte(_avalot->_onionInVinegar);
|
||||
sz.syncAsByte(_avalot->_givenToSpludwick);
|
||||
@ -422,7 +419,7 @@ bool AvalancheEngine::loadGame(const int16 slot) {
|
||||
_background->forgetBackgroundSprites();
|
||||
_avalot->minorRedraw();
|
||||
_menu->setup();
|
||||
_avalot->_whereIs[Avalot::kPeopleAvalot - 150] = _avalot->_room;
|
||||
_avalot->_whereIs[kPeopleAvalot - 150] = _avalot->_room;
|
||||
_avalot->_alive = true;
|
||||
_avalot->refreshObjectList();
|
||||
_animation->updateSpeed();
|
||||
|
@ -371,7 +371,7 @@ void Avalot::setup() {
|
||||
int16 loadSlot = Common::ConfigManager::instance().getInt("save_slot");
|
||||
if (loadSlot >= 0) {
|
||||
_thinks = 2; // You always have money.
|
||||
thinkAbout(Avalot::kObjectMoney, Avalot::kThing);
|
||||
thinkAbout(kObjectMoney, Avalot::kThing);
|
||||
|
||||
_vm->loadGame(loadSlot);
|
||||
} else {
|
||||
@ -380,7 +380,7 @@ void Avalot::setup() {
|
||||
|
||||
_soundFx = !_soundFx;
|
||||
fxToggle();
|
||||
thinkAbout(Avalot::kObjectMoney, Avalot::kThing);
|
||||
thinkAbout(kObjectMoney, Avalot::kThing);
|
||||
|
||||
_vm->_dialogs->displayScrollChain('q', 83); // Info on the game, etc.
|
||||
}
|
||||
@ -727,12 +727,12 @@ void Avalot::enterNewTown() {
|
||||
_spludwickAtHome = true;
|
||||
_crapulusWillTell = false;
|
||||
}
|
||||
if (_boxContent == Avalot::kObjectWine)
|
||||
if (_boxContent == kObjectWine)
|
||||
_wineState = 3; // Vinegar
|
||||
break;
|
||||
}
|
||||
|
||||
if ((_room != kRoomOutsideDucks) && (_objects[Avalot::kObjectOnion - 1]) && !(_onionInVinegar))
|
||||
if ((_room != kRoomOutsideDucks) && (_objects[kObjectOnion - 1]) && !(_onionInVinegar))
|
||||
_rottenOnion = true; // You're holding the onion
|
||||
}
|
||||
|
||||
@ -760,10 +760,10 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
if ((_roomCount[room] == 0) && (!setFlag('S')))
|
||||
incScore(1);
|
||||
|
||||
_whereIs[Avalot::kPeopleAvalot - 150] = _room;
|
||||
_whereIs[kPeopleAvalot - 150] = _room;
|
||||
|
||||
if (_geidaFollows)
|
||||
_whereIs[Avalot::kPeopleGeida - 150] = room;
|
||||
_whereIs[kPeopleGeida - 150] = room;
|
||||
|
||||
_roomTime = 0;
|
||||
|
||||
@ -784,7 +784,7 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
if (ped > 0) {
|
||||
AnimationType *spr1 = &_vm->_animation->_sprites[1];
|
||||
if (!_talkedToCrapulus) {
|
||||
_whereIs[Avalot::kPeopleCrapulus - 150] = kRoomOutsideYours;
|
||||
_whereIs[kPeopleCrapulus - 150] = kRoomOutsideYours;
|
||||
spr1->init(8, false, _vm->_animation); // load Crapulus
|
||||
|
||||
if (_roomCount[kRoomOutsideYours] == 1) {
|
||||
@ -799,7 +799,7 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
spr1->_eachStepProc = Animation::kProcFaceAvvy; // He always faces Avvy.
|
||||
|
||||
} else
|
||||
_whereIs[Avalot::kPeopleCrapulus - 150] = kRoomNowhere;
|
||||
_whereIs[kPeopleCrapulus - 150] = kRoomNowhere;
|
||||
|
||||
if (_crapulusWillTell) {
|
||||
spr1->init(8, false, _vm->_animation);
|
||||
@ -824,13 +824,13 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
if (ped > 0) {
|
||||
spr1->init(2, false, _vm->_animation); // load Spludwick
|
||||
_vm->_animation->appearPed(1, 1);
|
||||
_whereIs[Avalot::kPeopleSpludwick - 150] = kRoomSpludwicks;
|
||||
_whereIs[kPeopleSpludwick - 150] = kRoomSpludwicks;
|
||||
}
|
||||
|
||||
spr1->_callEachStepFl = true;
|
||||
spr1->_eachStepProc = Animation::kProcGeida;
|
||||
} else
|
||||
_whereIs[Avalot::kPeopleSpludwick - 150] = kRoomNowhere;
|
||||
_whereIs[kPeopleSpludwick - 150] = kRoomNowhere;
|
||||
break;
|
||||
|
||||
case kRoomBrummieRoad:
|
||||
@ -838,13 +838,13 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
putGeidaAt(4, ped);
|
||||
if (_cwytalotGone) {
|
||||
_magics[kColorLightred - 1]._operation = Avalot::kMagicNothing;
|
||||
_whereIs[Avalot::kPeopleCwytalot - 150] = kRoomNowhere;
|
||||
_whereIs[kPeopleCwytalot - 150] = kRoomNowhere;
|
||||
} else if (ped > 0) {
|
||||
AnimationType *spr1 = &_vm->_animation->_sprites[1];
|
||||
spr1->init(4, false, _vm->_animation); // 4 = Cwytalot
|
||||
spr1->_callEachStepFl = true;
|
||||
spr1->_eachStepProc = Animation::kProcFollowAvvyY;
|
||||
_whereIs[Avalot::kPeopleCwytalot - 150] = kRoomBrummieRoad;
|
||||
_whereIs[kPeopleCwytalot - 150] = kRoomBrummieRoad;
|
||||
|
||||
if (_roomCount[kRoomBrummieRoad] == 1) { // First time here...
|
||||
_vm->_animation->appearPed(1, 1); // He appears on the right of the screen...
|
||||
@ -891,8 +891,8 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
}
|
||||
|
||||
if (_beenTiedUp) {
|
||||
_whereIs[Avalot::kPeopleRobinHood - 150] = 0;
|
||||
_whereIs[Avalot::kPeopleFriarTuck - 150] = 0;
|
||||
_whereIs[kPeopleRobinHood - 150] = 0;
|
||||
_whereIs[kPeopleFriarTuck - 150] = 0;
|
||||
}
|
||||
|
||||
if (_tiedUp)
|
||||
@ -936,9 +936,9 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
if (ped > 0)
|
||||
zoomOut(_peds[ped]._x, _peds[ped]._y);
|
||||
|
||||
if ((_objects[Avalot::kObjectWine - 1]) && (_wineState != 3)) {
|
||||
if ((_objects[kObjectWine - 1]) && (_wineState != 3)) {
|
||||
_vm->_dialogs->displayScrollChain('q', 9); // Don't want to waste the wine!
|
||||
_objects[Avalot::kObjectWine - 1] = false;
|
||||
_objects[kObjectWine - 1] = false;
|
||||
refreshObjectList();
|
||||
}
|
||||
|
||||
@ -1004,7 +1004,7 @@ void Avalot::enterRoom(byte room, byte ped) {
|
||||
_vm->_graphics->refreshBackground();
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 3);
|
||||
_magics[kColorBrown - 1]._operation = Avalot::kMagicNothing;
|
||||
_whereIs[Avalot::kPeopleJacques - 150] = 0;
|
||||
_whereIs[kPeopleJacques - 150] = 0;
|
||||
}
|
||||
if (ped != 0) {
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 5);
|
||||
@ -1315,7 +1315,7 @@ void Avalot::fxToggle() {
|
||||
void Avalot::refreshObjectList() {
|
||||
_carryNum = 0;
|
||||
if (_thinkThing && !_objects[_thinks - 1])
|
||||
thinkAbout(Avalot::kObjectMoney, Avalot::kThing); // you always have money
|
||||
thinkAbout(kObjectMoney, Avalot::kThing); // you always have money
|
||||
|
||||
for (int i = 0; i < kObjectNum; i++) {
|
||||
if (_objects[i]) {
|
||||
@ -1590,14 +1590,10 @@ void Avalot::resetVariables() {
|
||||
_dnascore = 0;
|
||||
_money = 0;
|
||||
_room = kRoomNowhere;
|
||||
_vm->_parser->_wearing = 0;
|
||||
_vm->_parser->_sworeNum = 0;
|
||||
_vm->_saveNum = 0;
|
||||
for (int i = 0; i < 100; i++)
|
||||
_roomCount[i] = 0;
|
||||
|
||||
_vm->_parser->_alcoholLevel = 0;
|
||||
_vm->_parser->_playedNim = 0;
|
||||
_wonNim = false;
|
||||
_wineState = 0;
|
||||
_cwytalotGone = false;
|
||||
@ -1605,7 +1601,6 @@ void Avalot::resetVariables() {
|
||||
_aylesIsAwake = false;
|
||||
_drawbridgeOpen = 0;
|
||||
_avariciusTalk = 0;
|
||||
_vm->_parser->_boughtOnion = false;
|
||||
_rottenOnion = false;
|
||||
_onionInVinegar = false;
|
||||
_givenToSpludwick = 0;
|
||||
@ -1661,6 +1656,8 @@ void Avalot::resetVariables() {
|
||||
_takenMushroom = false;
|
||||
_givenPenToAyles = false;
|
||||
_askedDogfoodAboutNim = false;
|
||||
|
||||
_vm->_parser->resetVariables();
|
||||
}
|
||||
|
||||
void Avalot::newGame() {
|
||||
|
@ -83,6 +83,56 @@ enum Room {
|
||||
kRoomBossKey = 98, kRoomMap = 99, kRoomDummy = 177 // Dummy room
|
||||
};
|
||||
|
||||
// Objects you can hold:
|
||||
enum Object {
|
||||
kObjectWine = 1,
|
||||
kObjectMoney,
|
||||
kObjectBodkin,
|
||||
kObjectPotion,
|
||||
kObjectChastity,
|
||||
kObjectBolt,
|
||||
kObjectCrossbow,
|
||||
kObjectLute,
|
||||
kObjectBadge,
|
||||
kObjectMushroom,
|
||||
kObjectKey,
|
||||
kObjectBell,
|
||||
kObjectPrescription,
|
||||
kObjectPen,
|
||||
kObjectInk,
|
||||
kObjectClothes,
|
||||
kObjectHabit,
|
||||
kObjectOnion,
|
||||
kObjectDummy = 177
|
||||
};
|
||||
|
||||
// People who hang around this game.
|
||||
enum People {
|
||||
// Boys:
|
||||
kPeopleAvalot = 150,
|
||||
kPeopleSpludwick = 151,
|
||||
kPeopleCrapulus = 152,
|
||||
kPeopleDrDuck = 153,
|
||||
kPeopleMalagauche = 154,
|
||||
kPeopleFriarTuck = 155,
|
||||
kPeopleRobinHood = 156,
|
||||
kPeopleCwytalot = 157,
|
||||
kPeopleDuLustie = 158,
|
||||
kPeopleDuke = 159,
|
||||
kPeopleDogfood = 160,
|
||||
kPeopleTrader = 161,
|
||||
kPeopleIbythneth = 162,
|
||||
kPeopleAyles = 163,
|
||||
kPeoplePort = 164,
|
||||
kPeopleSpurge = 165,
|
||||
kPeopleJacques = 166,
|
||||
// Girls:
|
||||
kPeopleArkata = 175,
|
||||
kPeopleGeida = 176,
|
||||
kPeopleInvisible = 177,
|
||||
kPeopleWisewoman = 178
|
||||
};
|
||||
|
||||
static const byte kObjectNum = 18; // always preface with a #
|
||||
static const int16 kCarryLimit = 12; // carry limit
|
||||
|
||||
@ -133,55 +183,6 @@ struct Sundry { // Things which must be saved over a backtobootstrap, outside DN
|
||||
|
||||
class Avalot {
|
||||
public:
|
||||
// Objects you can hold:
|
||||
enum Object {
|
||||
kObjectWine = 1,
|
||||
kObjectMoney,
|
||||
kObjectBodkin,
|
||||
kObjectPotion,
|
||||
kObjectChastity,
|
||||
kObjectBolt,
|
||||
kObjectCrossbow,
|
||||
kObjectLute,
|
||||
kObjectBadge,
|
||||
kObjectMushroom,
|
||||
kObjectKey,
|
||||
kObjectBell,
|
||||
kObjectPrescription,
|
||||
kObjectPen,
|
||||
kObjectInk,
|
||||
kObjectClothes,
|
||||
kObjectHabit,
|
||||
kObjectOnion
|
||||
};
|
||||
|
||||
// People who hang around this game.
|
||||
enum People {
|
||||
// Boys:
|
||||
kPeopleAvalot = 150,
|
||||
kPeopleSpludwick = 151,
|
||||
kPeopleCrapulus = 152,
|
||||
kPeopleDrDuck = 153,
|
||||
kPeopleMalagauche = 154,
|
||||
kPeopleFriarTuck = 155,
|
||||
kPeopleRobinHood = 156,
|
||||
kPeopleCwytalot = 157,
|
||||
kPeopleDuLustie = 158,
|
||||
kPeopleDuke = 159,
|
||||
kPeopleDogfood = 160,
|
||||
kPeopleTrader = 161,
|
||||
kPeopleIbythneth = 162,
|
||||
kPeopleAyles = 163,
|
||||
kPeoplePort = 164,
|
||||
kPeopleSpurge = 165,
|
||||
kPeopleJacques = 166,
|
||||
// Girls:
|
||||
kPeopleArkata = 175,
|
||||
kPeopleGeida = 176,
|
||||
kPeopleInvisible = 177,
|
||||
kPeopleWisewoman = 178
|
||||
};
|
||||
|
||||
static const int16 kXW = 30;
|
||||
static const int16 kYW = 36; // x width & y whatsit
|
||||
static const int16 kMargin = 5;
|
||||
|
@ -961,10 +961,10 @@ void Dialogs::talkTo(byte whom) {
|
||||
|
||||
if (_vm->_avalot->_subjectNum == 0) {
|
||||
switch (whom) {
|
||||
case Avalot::kPeopleSpludwick:
|
||||
if ((_vm->_avalot->_lustieIsAsleep) & (!_vm->_avalot->_objects[Avalot::kObjectPotion - 1])) {
|
||||
case kPeopleSpludwick:
|
||||
if ((_vm->_avalot->_lustieIsAsleep) & (!_vm->_avalot->_objects[kObjectPotion - 1])) {
|
||||
displayScrollChain('q', 68);
|
||||
_vm->_avalot->_objects[Avalot::kObjectPotion - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectPotion - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->incScore(3);
|
||||
return;
|
||||
@ -988,20 +988,20 @@ void Dialogs::talkTo(byte whom) {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case Avalot::kPeopleIbythneth:
|
||||
case kPeopleIbythneth:
|
||||
if (_vm->_avalot->_givenBadgeToIby) {
|
||||
displayScrollChain('q', 33); // Thanks a lot!
|
||||
return; // And leave the proc.
|
||||
}
|
||||
break; // Or... just continue, 'cos he hasn't got it.
|
||||
case Avalot::kPeopleDogfood:
|
||||
case kPeopleDogfood:
|
||||
if (_vm->_avalot->_wonNim) { // We've won the game.
|
||||
displayScrollChain('q', 6); // "I'm Not Playing!"
|
||||
return; // Zap back.
|
||||
} else
|
||||
_vm->_avalot->_askedDogfoodAboutNim = true;
|
||||
break;
|
||||
case Avalot::kPeopleAyles:
|
||||
case kPeopleAyles:
|
||||
if (!_vm->_avalot->_aylesIsAwake) {
|
||||
displayScrollChain('q', 43); // He's fast asleep!
|
||||
return;
|
||||
@ -1011,11 +1011,11 @@ void Dialogs::talkTo(byte whom) {
|
||||
}
|
||||
break;
|
||||
|
||||
case Avalot::kPeopleJacques:
|
||||
case kPeopleJacques:
|
||||
displayScrollChain('q', 43);
|
||||
return;
|
||||
|
||||
case Avalot::kPeopleGeida:
|
||||
case kPeopleGeida:
|
||||
if (_vm->_avalot->_givenPotionToGeida)
|
||||
_vm->_avalot->_geidaFollows = true;
|
||||
else {
|
||||
@ -1023,7 +1023,7 @@ void Dialogs::talkTo(byte whom) {
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case Avalot::kPeopleSpurge:
|
||||
case kPeopleSpurge:
|
||||
if (!_vm->_avalot->_sittingInPub) {
|
||||
displayScrollChain('q', 71); // Try going over and sitting down.
|
||||
return;
|
||||
@ -1038,7 +1038,7 @@ void Dialogs::talkTo(byte whom) {
|
||||
break;
|
||||
}
|
||||
// On a subject. Is there any reason to block it?
|
||||
} else if ((whom == Avalot::kPeopleAyles) && (!_vm->_avalot->_aylesIsAwake)) {
|
||||
} else if ((whom == kPeopleAyles) && (!_vm->_avalot->_aylesIsAwake)) {
|
||||
displayScrollChain('q', 43); // He's fast asleep!
|
||||
return;
|
||||
}
|
||||
@ -1066,12 +1066,12 @@ void Dialogs::talkTo(byte whom) {
|
||||
if (!_noError)
|
||||
displayScrollChain('n', whom); // File not found!
|
||||
|
||||
if ((_vm->_avalot->_subjectNum == 0) && ((whom + 149) == Avalot::kPeopleCrapulus)) { // Crapulus: get the badge - first time only
|
||||
_vm->_avalot->_objects[Avalot::kObjectBadge - 1] = true;
|
||||
if ((_vm->_avalot->_subjectNum == 0) && ((whom + 149) == kPeopleCrapulus)) { // Crapulus: get the badge - first time only
|
||||
_vm->_avalot->_objects[kObjectBadge - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
displayScrollChain('q', 1); // Circular from Cardiff.
|
||||
_vm->_avalot->_talkedToCrapulus = true;
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleCrapulus - 150] = kRoomDummy; // Crapulus walks off.
|
||||
_vm->_avalot->_whereIs[kPeopleCrapulus - 150] = kRoomDummy; // Crapulus walks off.
|
||||
|
||||
AnimationType *spr = &_vm->_animation->_sprites[1];
|
||||
spr->_vanishIfStill = true;
|
||||
|
@ -263,25 +263,25 @@ Menu::Menu(AvalancheEngine *vm) {
|
||||
|
||||
void Menu::findWhatYouCanDoWithIt() {
|
||||
switch (_vm->_avalot->_thinks) {
|
||||
case Avalot::kObjectWine:
|
||||
case Avalot::kObjectPotion:
|
||||
case Avalot::kObjectInk:
|
||||
case kObjectWine:
|
||||
case kObjectPotion:
|
||||
case kObjectInk:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeDrink;
|
||||
break;
|
||||
case Avalot::kObjectBell:
|
||||
case kObjectBell:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeRing;
|
||||
break;
|
||||
case Avalot::kObjectChastity:
|
||||
case kObjectChastity:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeWear;
|
||||
break;
|
||||
case Avalot::kObjectLute:
|
||||
case kObjectLute:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodePlay;
|
||||
break;
|
||||
case Avalot::kObjectMushroom:
|
||||
case Avalot::kObjectOnion:
|
||||
case kObjectMushroom:
|
||||
case kObjectOnion:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeEat;
|
||||
break;
|
||||
case Avalot::kObjectClothes:
|
||||
case kObjectClothes:
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeWear;
|
||||
break;
|
||||
default:
|
||||
@ -487,7 +487,7 @@ void Menu::setupMenuWith() {
|
||||
// We disable the "give" option if: (a), you haven't selected anybody, (b), the _person you've selected isn't in the room,
|
||||
// or (c), the _person you've selected is YOU!
|
||||
|
||||
if ((_vm->_avalot->_lastPerson == Avalot::kPeopleAvalot) || (_vm->_avalot->_lastPerson == _vm->_parser->kNothing)
|
||||
if ((_vm->_avalot->_lastPerson == kPeopleAvalot) || (_vm->_avalot->_lastPerson == _vm->_parser->kNothing)
|
||||
|| (_vm->_avalot->_whereIs[_vm->_avalot->_lastPerson - 150] != _vm->_avalot->_room))
|
||||
_activeMenuItem.setupOption("Give to...", 'G', "", false); // Not here.
|
||||
else {
|
||||
@ -499,18 +499,18 @@ void Menu::setupMenuWith() {
|
||||
_activeMenuItem.setupOption(Common::String("Talk to h") + selectGender(_vm->_avalot->_thinks), 'T', "", true);
|
||||
_vm->_avalot->_verbStr = Common::String(Parser::kVerbCodeExam) + Parser::kVerbCodeTalk;
|
||||
switch (_vm->_avalot->_thinks) {
|
||||
case Avalot::kPeopleGeida:
|
||||
case Avalot::kPeopleArkata:
|
||||
case kPeopleGeida:
|
||||
case kPeopleArkata:
|
||||
_activeMenuItem.setupOption("Kiss her", 'K', "", true);
|
||||
_vm->_avalot->_verbStr = _vm->_avalot->_verbStr + Parser::kVerbCodeKiss;
|
||||
break;
|
||||
case Avalot::kPeopleDogfood:
|
||||
case kPeopleDogfood:
|
||||
_activeMenuItem.setupOption("Play his game", 'P', "", !_vm->_avalot->_wonNim); // True if you HAVEN'T won.
|
||||
_vm->_avalot->_verbStr = _vm->_avalot->_verbStr + Parser::kVerbCodePlay;
|
||||
break;
|
||||
case Avalot::kPeopleMalagauche: {
|
||||
case kPeopleMalagauche: {
|
||||
bool isSober = !_vm->_avalot->_teetotal;
|
||||
_activeMenuItem.setupOption("Buy some wine", 'w', "", !_vm->_avalot->_objects[Avalot::kObjectWine - 1]);
|
||||
_activeMenuItem.setupOption("Buy some wine", 'w', "", !_vm->_avalot->_objects[kObjectWine - 1]);
|
||||
_activeMenuItem.setupOption("Buy some beer", 'b', "", isSober);
|
||||
_activeMenuItem.setupOption("Buy some whisky", 'h', "", isSober);
|
||||
_activeMenuItem.setupOption("Buy some cider", 'c', "", isSober);
|
||||
@ -518,8 +518,8 @@ void Menu::setupMenuWith() {
|
||||
_vm->_avalot->_verbStr = _vm->_avalot->_verbStr + 101 + 100 + 102 + 103 + 104;
|
||||
}
|
||||
break;
|
||||
case Avalot::kPeopleTrader:
|
||||
_activeMenuItem.setupOption("Buy an onion", 'o', "", !_vm->_avalot->_objects[Avalot::kObjectOnion - 1]);
|
||||
case kPeopleTrader:
|
||||
_activeMenuItem.setupOption("Buy an onion", 'o', "", !_vm->_avalot->_objects[kObjectOnion - 1]);
|
||||
_vm->_avalot->_verbStr = _vm->_avalot->_verbStr + 105;
|
||||
break;
|
||||
}
|
||||
|
@ -893,7 +893,7 @@ void Parser::parse() {
|
||||
_vm->_avalot->_it = _thing;
|
||||
|
||||
if (_person != kPardon) {
|
||||
if (_person < Avalot::kPeopleArkata)
|
||||
if (_person < kPeopleArkata)
|
||||
_vm->_avalot->_him = _person;
|
||||
else
|
||||
_vm->_avalot->_her = _person;
|
||||
@ -904,7 +904,7 @@ void Parser::examineObject() {
|
||||
if (_thing != _vm->_avalot->_thinks)
|
||||
_vm->_avalot->thinkAbout(_thing, Avalot::kThing);
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectWine :
|
||||
case kObjectWine :
|
||||
switch (_vm->_avalot->_wineState) {// 4 is perfect wine. 0 is not holding the wine.
|
||||
case 1:
|
||||
_vm->_dialogs->displayScrollChain('t', 1); // Normal examine wine scroll
|
||||
@ -917,7 +917,7 @@ void Parser::examineObject() {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Avalot::kObjectOnion:
|
||||
case kObjectOnion:
|
||||
if (_vm->_avalot->_rottenOnion)
|
||||
_vm->_dialogs->displayScrollChain('q', 21); // Yucky onion
|
||||
else
|
||||
@ -933,7 +933,7 @@ bool Parser::isPersonHere() { // Person equivalent of "holding".
|
||||
return true;
|
||||
else {
|
||||
Common::String tmpStr;
|
||||
if (_person < Avalot::kPeopleArkata)
|
||||
if (_person < kPeopleArkata)
|
||||
tmpStr = "He isn't around at the moment.";
|
||||
else
|
||||
tmpStr = "She isn't around at the moment.";
|
||||
@ -949,14 +949,14 @@ void Parser::exampers() {
|
||||
|
||||
byte newPerson = _person - 149;
|
||||
|
||||
if ((_person == Avalot::kPeopleDogfood) && _vm->_avalot->_wonNim)
|
||||
if ((_person == kPeopleDogfood) && _vm->_avalot->_wonNim)
|
||||
_vm->_dialogs->displayScrollChain('Q', 8); // "I'm Not Playing!"
|
||||
else if ((_person == Avalot::kPeopleDuLustie) && _vm->_avalot->_lustieIsAsleep)
|
||||
else if ((_person == kPeopleDuLustie) && _vm->_avalot->_lustieIsAsleep)
|
||||
_vm->_dialogs->displayScrollChain('Q', 65); // He's asleep.
|
||||
else
|
||||
_vm->_dialogs->displayScrollChain('p', newPerson);
|
||||
|
||||
if ((_person == Avalot::kPeopleAyles) && !_vm->_avalot->_aylesIsAwake)
|
||||
if ((_person == kPeopleAyles) && !_vm->_avalot->_aylesIsAwake)
|
||||
_vm->_dialogs->displayScrollChain('Q', 13);
|
||||
|
||||
_person = newPerson;
|
||||
@ -1051,7 +1051,7 @@ void Parser::inventory() {
|
||||
|
||||
void Parser::swallow() { // Eat something.
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectWine:
|
||||
case kObjectWine:
|
||||
switch (_vm->_avalot->_wineState) { // 4 is perfect
|
||||
case 1:
|
||||
if (_vm->_avalot->_teetotal) {
|
||||
@ -1061,7 +1061,7 @@ void Parser::swallow() { // Eat something.
|
||||
_vm->_dialogs->displayScrollChain('U', 1);
|
||||
_vm->_pingo->wobble();
|
||||
_vm->_dialogs->displayScrollChain('U', 2);
|
||||
_vm->_avalot->_objects[Avalot::kObjectWine - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectWine - 1] = false;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
drink();
|
||||
break;
|
||||
@ -1071,28 +1071,28 @@ void Parser::swallow() { // Eat something.
|
||||
break; // You can't drink it!
|
||||
}
|
||||
break;
|
||||
case Avalot::kObjectPotion:
|
||||
case kObjectPotion:
|
||||
_vm->_avalot->setBackgroundColor(4);
|
||||
_vm->_dialogs->displayScrollChain('U', 3);
|
||||
_vm->_avalot->gameOver();
|
||||
_vm->_avalot->setBackgroundColor(0);
|
||||
break;
|
||||
case Avalot::kObjectInk:
|
||||
case kObjectInk:
|
||||
_vm->_dialogs->displayScrollChain('U', 4);
|
||||
break;
|
||||
case Avalot::kObjectChastity:
|
||||
case kObjectChastity:
|
||||
_vm->_dialogs->displayScrollChain('U', 5);
|
||||
break;
|
||||
case Avalot::kObjectMushroom:
|
||||
case kObjectMushroom:
|
||||
_vm->_dialogs->displayScrollChain('U', 6);
|
||||
_vm->_avalot->gameOver();
|
||||
break;
|
||||
case Avalot::kObjectOnion:
|
||||
case kObjectOnion:
|
||||
if (_vm->_avalot->_rottenOnion)
|
||||
_vm->_dialogs->displayScrollChain('U', 11);
|
||||
else {
|
||||
_vm->_dialogs->displayScrollChain('U', 8);
|
||||
_vm->_avalot->_objects[Avalot::kObjectOnion - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectOnion - 1] = false;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
}
|
||||
break;
|
||||
@ -1252,8 +1252,8 @@ void Parser::putProc() {
|
||||
|
||||
// Thing is the _thing which you're putting in. _thing2 is where you're putting it.
|
||||
switch (_thing2) {
|
||||
case Avalot::kObjectWine:
|
||||
if (_thing == Avalot::kObjectOnion) {
|
||||
case kObjectWine:
|
||||
if (_thing == kObjectOnion) {
|
||||
if (_vm->_avalot->_rottenOnion)
|
||||
_vm->_dialogs->displayText("That's a bit like shutting the stable door after the horse has bolted!");
|
||||
else { // Put onion into wine?
|
||||
@ -1276,16 +1276,16 @@ void Parser::putProc() {
|
||||
_vm->_dialogs->displayText("There's something in the box already, Avvy. Try taking that out first.");
|
||||
else {
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectMoney:
|
||||
case kObjectMoney:
|
||||
_vm->_dialogs->displayText("You'd better keep some ready cash on you!");
|
||||
break;
|
||||
case Avalot::kObjectBell:
|
||||
case kObjectBell:
|
||||
_vm->_dialogs->displayText("That's a silly place to keep a bell.");
|
||||
break;
|
||||
case Avalot::kObjectBodkin:
|
||||
case kObjectBodkin:
|
||||
_vm->_dialogs->displayText("But you might need it!");
|
||||
break;
|
||||
case Avalot::kObjectOnion:
|
||||
case kObjectOnion:
|
||||
_vm->_dialogs->displayText("Just give it to Spludwick, Avvy!");
|
||||
break;
|
||||
default: // Put the object into the box...
|
||||
@ -1345,8 +1345,8 @@ bool Parser::giveToSpludwick() {
|
||||
}
|
||||
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectOnion:
|
||||
_vm->_avalot->_objects[Avalot::kObjectOnion - 1] = false;
|
||||
case kObjectOnion:
|
||||
_vm->_avalot->_objects[kObjectOnion - 1] = false;
|
||||
if (_vm->_avalot->_rottenOnion)
|
||||
_vm->_dialogs->displayScrollChain('q', 22);
|
||||
else {
|
||||
@ -1357,21 +1357,21 @@ bool Parser::giveToSpludwick() {
|
||||
}
|
||||
_vm->_avalot->refreshObjectList();
|
||||
break;
|
||||
case Avalot::kObjectInk:
|
||||
_vm->_avalot->_objects[Avalot::kObjectInk - 1] = false;
|
||||
case kObjectInk:
|
||||
_vm->_avalot->_objects[kObjectInk - 1] = false;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->_givenToSpludwick++;
|
||||
_vm->_dialogs->displayScrollChain('q', 24);
|
||||
goToCauldron();
|
||||
_vm->_avalot->incScore(3);
|
||||
break;
|
||||
case Avalot::kObjectMushroom:
|
||||
_vm->_avalot->_objects[Avalot::kObjectMushroom - 1] = false;
|
||||
case kObjectMushroom:
|
||||
_vm->_avalot->_objects[kObjectMushroom - 1] = false;
|
||||
_vm->_dialogs->displayScrollChain('q', 25);
|
||||
_vm->_avalot->incScore(5);
|
||||
_vm->_avalot->_givenToSpludwick++;
|
||||
goToCauldron();
|
||||
_vm->_avalot->_objects[Avalot::kObjectPotion - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectPotion - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
break;
|
||||
default:
|
||||
@ -1384,7 +1384,7 @@ bool Parser::giveToSpludwick() {
|
||||
void Parser::drink() {
|
||||
_alcoholLevel += 1;
|
||||
if (_alcoholLevel == 5) {
|
||||
_vm->_avalot->_objects[Avalot::kObjectKey - 1] = true; // Get the key.
|
||||
_vm->_avalot->_objects[kObjectKey - 1] = true; // Get the key.
|
||||
_vm->_avalot->_teetotal = true;
|
||||
_vm->_avalot->_avvyIsAwake = false;
|
||||
_vm->_avalot->_avvyInBed = true;
|
||||
@ -1474,7 +1474,7 @@ void Parser::getProc(char thing) {
|
||||
break;
|
||||
case kRoomInsideCardiffCastle:
|
||||
switch (thing) {
|
||||
case Avalot::kObjectPen:
|
||||
case kObjectPen:
|
||||
if (_vm->_animation->inField(1)) { // Standing on the dais.
|
||||
if (_vm->_avalot->_takenPen)
|
||||
_vm->_dialogs->displayText("It's not there, Avvy.");
|
||||
@ -1483,7 +1483,7 @@ void Parser::getProc(char thing) {
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 3); // No pen there now.
|
||||
_vm->_animation->callSpecial(3); // Zap!
|
||||
_vm->_avalot->_takenPen = true;
|
||||
_vm->_avalot->_objects[Avalot::kObjectPen - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectPen - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_dialogs->displayText("Taken.");
|
||||
}
|
||||
@ -1492,7 +1492,7 @@ void Parser::getProc(char thing) {
|
||||
else
|
||||
_vm->_dialogs->displayScrollChain('q', 51);
|
||||
break;
|
||||
case Avalot::kObjectBolt:
|
||||
case kObjectBolt:
|
||||
_vm->_dialogs->displayScrollChain('q', 52);
|
||||
break;
|
||||
default:
|
||||
@ -1500,12 +1500,12 @@ void Parser::getProc(char thing) {
|
||||
}
|
||||
break;
|
||||
case kRoomRobins:
|
||||
if ((thing == Avalot::kObjectMushroom) & (_vm->_animation->inField(0)) & (_vm->_avalot->_mushroomGrowing)) {
|
||||
if ((thing == kObjectMushroom) & (_vm->_animation->inField(0)) & (_vm->_avalot->_mushroomGrowing)) {
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 2);
|
||||
_vm->_dialogs->displayText("Got it!");
|
||||
_vm->_avalot->_mushroomGrowing = false;
|
||||
_vm->_avalot->_takenMushroom = true;
|
||||
_vm->_avalot->_objects[Avalot::kObjectMushroom - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectMushroom - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->incScore(3);
|
||||
} else
|
||||
@ -1526,7 +1526,7 @@ void Parser::giveGeidaTheLute() {
|
||||
_vm->_dialogs->displayText(tmpStr);
|
||||
return;
|
||||
}
|
||||
_vm->_avalot->_objects[Avalot::kObjectLute - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectLute - 1] = false;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_dialogs->displayScrollChain('q', 64); // She plays it.
|
||||
|
||||
@ -1686,52 +1686,52 @@ void Parser::doThat() {
|
||||
_vm->_dialogs->displayText("Give to whom?");
|
||||
else if (isPersonHere()) {
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectMoney :
|
||||
case kObjectMoney :
|
||||
_vm->_dialogs->displayText("You can't bring yourself to give away your moneybag.");
|
||||
break;
|
||||
case Avalot::kObjectBodkin:
|
||||
case Avalot::kObjectBell:
|
||||
case Avalot::kObjectClothes:
|
||||
case Avalot::kObjectHabit :
|
||||
case kObjectBodkin:
|
||||
case kObjectBell:
|
||||
case kObjectClothes:
|
||||
case kObjectHabit :
|
||||
_vm->_dialogs->displayText("Don't give it away, it might be useful!");
|
||||
break;
|
||||
default:
|
||||
switch (_person) {
|
||||
case Avalot::kPeopleCrapulus:
|
||||
if (_thing == Avalot::kObjectWine) {
|
||||
case kPeopleCrapulus:
|
||||
if (_thing == kObjectWine) {
|
||||
_vm->_dialogs->displayText("Crapulus grabs the wine and gulps it down.");
|
||||
_vm->_avalot->_objects[Avalot::kObjectWine - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectWine - 1] = false;
|
||||
} else
|
||||
heyThanks();
|
||||
break;
|
||||
case Avalot::kPeopleCwytalot:
|
||||
if ((_thing == Avalot::kObjectCrossbow) || (_thing == Avalot::kObjectBolt))
|
||||
case kPeopleCwytalot:
|
||||
if ((_thing == kObjectCrossbow) || (_thing == kObjectBolt))
|
||||
_vm->_dialogs->displayText("You might be able to influence Cwytalot more if you used it!");
|
||||
else
|
||||
heyThanks();
|
||||
break;
|
||||
case Avalot::kPeopleSpludwick:
|
||||
case kPeopleSpludwick:
|
||||
if (giveToSpludwick())
|
||||
heyThanks();
|
||||
break;
|
||||
case Avalot::kPeopleIbythneth:
|
||||
if (_thing == Avalot::kObjectBadge) {
|
||||
case kPeopleIbythneth:
|
||||
if (_thing == kObjectBadge) {
|
||||
_vm->_dialogs->displayScrollChain('q', 32); // Thanks! Wow!
|
||||
_vm->_avalot->incScore(3);
|
||||
_vm->_avalot->_objects[Avalot::kObjectBadge - 1] = false;
|
||||
_vm->_avalot->_objects[Avalot::kObjectHabit - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectBadge - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectHabit - 1] = true;
|
||||
_vm->_avalot->_givenBadgeToIby = true;
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 7);
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 8);
|
||||
} else
|
||||
heyThanks();
|
||||
break;
|
||||
case Avalot::kPeopleAyles:
|
||||
case kPeopleAyles:
|
||||
if (_vm->_avalot->_aylesIsAwake) {
|
||||
if (_thing == Avalot::kObjectPen) {
|
||||
_vm->_avalot->_objects[Avalot::kObjectPen - 1] = false;
|
||||
if (_thing == kObjectPen) {
|
||||
_vm->_avalot->_objects[kObjectPen - 1] = false;
|
||||
_vm->_dialogs->displayScrollChain('q', 54);
|
||||
_vm->_avalot->_objects[Avalot::kObjectInk - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectInk - 1] = true;
|
||||
_vm->_avalot->_givenPenToAyles = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->incScore(2);
|
||||
@ -1740,25 +1740,25 @@ void Parser::doThat() {
|
||||
} else
|
||||
_vm->_dialogs->displayText("But he's asleep!");
|
||||
break;
|
||||
case Avalot::kPeopleGeida:
|
||||
case kPeopleGeida:
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectPotion:
|
||||
_vm->_avalot->_objects[Avalot::kObjectPotion - 1] = false;
|
||||
case kObjectPotion:
|
||||
_vm->_avalot->_objects[kObjectPotion - 1] = false;
|
||||
_vm->_dialogs->displayScrollChain('u', 16); // She drinks it.
|
||||
_vm->_avalot->incScore(2);
|
||||
_vm->_avalot->_givenPotionToGeida = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
break;
|
||||
case Avalot::kObjectLute:
|
||||
case kObjectLute:
|
||||
giveGeidaTheLute();
|
||||
break;
|
||||
default:
|
||||
heyThanks();
|
||||
}
|
||||
break;
|
||||
case Avalot::kPeopleArkata:
|
||||
case kPeopleArkata:
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectPotion:
|
||||
case kObjectPotion:
|
||||
if (_vm->_avalot->_givenPotionToGeida)
|
||||
winSequence();
|
||||
else
|
||||
@ -1839,12 +1839,12 @@ void Parser::doThat() {
|
||||
case kVerbCodeWear:
|
||||
if (isHolding()) { // Wear something.
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectChastity:
|
||||
case kObjectChastity:
|
||||
// \? are used to avoid that ??! is parsed as a trigraph
|
||||
_vm->_dialogs->displayText("Hey, what kind of a weirdo are you\?\?!");
|
||||
break;
|
||||
case Avalot::kObjectClothes:
|
||||
case Avalot::kObjectHabit: { // Change this!
|
||||
case kObjectClothes:
|
||||
case kObjectHabit: { // Change this!
|
||||
if (_wearing != kNothing) {
|
||||
if (_wearing == _thing)
|
||||
_vm->_dialogs->displayText("You're already wearing that.");
|
||||
@ -1857,7 +1857,7 @@ void Parser::doThat() {
|
||||
_vm->_avalot->refreshObjectList();
|
||||
|
||||
byte i;
|
||||
if (_thing == Avalot::kObjectHabit)
|
||||
if (_thing == kObjectHabit)
|
||||
i = 3;
|
||||
else
|
||||
i = 0;
|
||||
@ -1901,7 +1901,7 @@ void Parser::doThat() {
|
||||
|
||||
// You won - strange!
|
||||
_vm->_dialogs->displayScrollChain('Q', 7); // You won! Give us a lute!
|
||||
_vm->_avalot->_objects[Avalot::kObjectLute - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectLute - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->_wonNim = true;
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 0); // Show the settle with no lute on it.
|
||||
@ -1920,13 +1920,13 @@ void Parser::doThat() {
|
||||
}
|
||||
} else if (isHolding()) {
|
||||
switch (_thing) {
|
||||
case Avalot::kObjectLute :
|
||||
case kObjectLute :
|
||||
_vm->_dialogs->displayScrollChain('U', 7);
|
||||
|
||||
if (_vm->_avalot->_whereIs[Avalot::kPeopleCwytalot - 150] == _vm->_avalot->_room)
|
||||
if (_vm->_avalot->_whereIs[kPeopleCwytalot - 150] == _vm->_avalot->_room)
|
||||
_vm->_dialogs->displayScrollChain('U', 10);
|
||||
|
||||
if (_vm->_avalot->_whereIs[Avalot::kPeopleDuLustie - 150] == _vm->_avalot->_room)
|
||||
if (_vm->_avalot->_whereIs[kPeopleDuLustie - 150] == _vm->_avalot->_room)
|
||||
_vm->_dialogs->displayScrollChain('U', 15);
|
||||
break;
|
||||
case 52:
|
||||
@ -1949,7 +1949,7 @@ void Parser::doThat() {
|
||||
break;
|
||||
case kVerbCodeRing:
|
||||
if (isHolding()) {
|
||||
if (_thing == Avalot::kObjectBell) {
|
||||
if (_thing == kObjectBell) {
|
||||
_vm->_dialogs->displayText("Ding, dong, ding, dong, ding, dong, ding, dong...");
|
||||
if ((_vm->_avalot->_bellsAreRinging) & (_vm->_avalot->setFlag('B')))
|
||||
// \? are used to avoid that ??! is parsed as a trigraph
|
||||
@ -2076,8 +2076,8 @@ void Parser::doThat() {
|
||||
case 52:
|
||||
examine();
|
||||
break; // We have a right one here - buy Pepsi??!
|
||||
case Avalot::kObjectWine:
|
||||
if (_vm->_avalot->_objects[Avalot::kObjectWine - 1]) // We've already got the wine!
|
||||
case kObjectWine:
|
||||
if (_vm->_avalot->_objects[kObjectWine - 1]) // We've already got the wine!
|
||||
_vm->_dialogs->displayScrollChain('D', 2); // 1 bottle's shufishent!
|
||||
else {
|
||||
if (_vm->_avalot->_malagauche == 177) { // Already getting us one.
|
||||
@ -2108,8 +2108,8 @@ void Parser::doThat() {
|
||||
|
||||
case kRoomOutsideDucks:
|
||||
if (_vm->_animation->inField(5)) {
|
||||
if (_thing == Avalot::kObjectOnion) {
|
||||
if (_vm->_avalot->_objects[Avalot::kObjectOnion - 1])
|
||||
if (_thing == kObjectOnion) {
|
||||
if (_vm->_avalot->_objects[kObjectOnion - 1])
|
||||
_vm->_dialogs->displayScrollChain('D', 10); // Not planning to juggle with the things!
|
||||
else if (_vm->_avalot->_carryNum >= kCarryLimit)
|
||||
_vm->_dialogs->displayText("Before you ask, you remember that your hands are full.");
|
||||
@ -2121,7 +2121,7 @@ void Parser::doThat() {
|
||||
_vm->_avalot->incScore(3);
|
||||
}
|
||||
_vm->_avalot->decreaseMoney(3); // It costs thruppence.
|
||||
_vm->_avalot->_objects[Avalot::kObjectOnion - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectOnion - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_boughtOnion = true;
|
||||
_vm->_avalot->_rottenOnion = false; // It's OK when it leaves the stall!
|
||||
@ -2142,9 +2142,9 @@ void Parser::doThat() {
|
||||
break;
|
||||
case kVerbCodeAttack:
|
||||
if ((_vm->_avalot->_room == kRoomBrummieRoad) &&
|
||||
((_person == Avalot::kPeopleCwytalot) || (_thing == Avalot::kObjectCrossbow) || (_thing == Avalot::kObjectBolt)) &&
|
||||
(_vm->_avalot->_whereIs[Avalot::kPeopleCwytalot - 150] == _vm->_avalot->_room)) {
|
||||
switch (_vm->_avalot->_objects[Avalot::kObjectBolt - 1] + _vm->_avalot->_objects[Avalot::kObjectCrossbow - 1] * 2) {
|
||||
((_person == kPeopleCwytalot) || (_thing == kObjectCrossbow) || (_thing == kObjectBolt)) &&
|
||||
(_vm->_avalot->_whereIs[kPeopleCwytalot - 150] == _vm->_avalot->_room)) {
|
||||
switch (_vm->_avalot->_objects[kObjectBolt - 1] + _vm->_avalot->_objects[kObjectCrossbow - 1] * 2) {
|
||||
// 0 = neither, 1 = only bolt, 2 = only crossbow, 3 = both.
|
||||
case 0:
|
||||
_vm->_dialogs->displayScrollChain('Q', 10);
|
||||
@ -2159,15 +2159,15 @@ void Parser::doThat() {
|
||||
case 3:
|
||||
_vm->_dialogs->displayScrollChain('Q', 11);
|
||||
_vm->_avalot->_cwytalotGone = true;
|
||||
_vm->_avalot->_objects[Avalot::kObjectBolt - 1] = false;
|
||||
_vm->_avalot->_objects[Avalot::kObjectCrossbow - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectBolt - 1] = false;
|
||||
_vm->_avalot->_objects[kObjectCrossbow - 1] = false;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->_magics[11]._operation = Avalot::kMagicNothing;
|
||||
_vm->_avalot->incScore(7);
|
||||
_vm->_animation->_sprites[1].walkTo(1);
|
||||
_vm->_animation->_sprites[1]._vanishIfStill = true;
|
||||
_vm->_animation->_sprites[1]._callEachStepFl = false;
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleCwytalot - 150] = kRoomDummy;
|
||||
_vm->_avalot->_whereIs[kPeopleCwytalot - 150] = kRoomDummy;
|
||||
break;
|
||||
default:
|
||||
_vm->_dialogs->displayScrollChain('Q', 10); // Please try not to be so violent!
|
||||
@ -2225,19 +2225,19 @@ void Parser::doThat() {
|
||||
_vm->_dialogs->displayText("Kiss whom?");
|
||||
else if (isPersonHere()) {
|
||||
switch (_person) {
|
||||
case Avalot::kPeopleArkata:
|
||||
case kPeopleArkata:
|
||||
_vm->_dialogs->displayScrollChain('U', 12);
|
||||
break;
|
||||
case Avalot::kPeopleGeida:
|
||||
case kPeopleGeida:
|
||||
_vm->_dialogs->displayScrollChain('U', 13);
|
||||
break;
|
||||
case Avalot::kPeopleWisewoman:
|
||||
case kPeopleWisewoman:
|
||||
_vm->_dialogs->displayScrollChain('U', 14);
|
||||
break;
|
||||
default:
|
||||
_vm->_dialogs->displayScrollChain('U', 5); // You WHAT?
|
||||
}
|
||||
} else if ((Avalot::kPeopleAvalot <= _person) && (_person < Avalot::kPeopleArkata))
|
||||
} else if ((kPeopleAvalot <= _person) && (_person < kPeopleArkata))
|
||||
_vm->_dialogs->displayText("Hey, what kind of a weirdo are you??");
|
||||
|
||||
break;
|
||||
@ -2259,7 +2259,7 @@ void Parser::doThat() {
|
||||
if (isPersonHere())
|
||||
switch (_person) {
|
||||
case kPardon:
|
||||
case Avalot::kPeopleAvalot:
|
||||
case kPeopleAvalot:
|
||||
case 0:
|
||||
if (!_vm->_avalot->_avvyIsAwake) {
|
||||
_vm->_avalot->_avvyIsAwake = true;
|
||||
@ -2271,11 +2271,11 @@ void Parser::doThat() {
|
||||
} else
|
||||
_vm->_dialogs->displayText("You're already awake, Avvy!");
|
||||
break;
|
||||
case Avalot::kPeopleAyles:
|
||||
case kPeopleAyles:
|
||||
if (!_vm->_avalot->_aylesIsAwake)
|
||||
_vm->_dialogs->displayText("You can't seem to wake him by yourself.");
|
||||
break;
|
||||
case Avalot::kPeopleJacques: {
|
||||
case kPeopleJacques: {
|
||||
Common::String tmpStr = Common::String::format("Brother Jacques, Brother Jacques, are you asleep?%c1%c" \
|
||||
"Hmmm... that doesn't seem to do any good...", Dialogs::kControlRegister, Dialogs::kControlSpeechBubble);
|
||||
_vm->_dialogs->displayText(tmpStr);
|
||||
@ -2362,9 +2362,20 @@ void Parser::verbOpt(byte verb, Common::String &answer, char &ansKey) {
|
||||
}
|
||||
}
|
||||
|
||||
void Parser::resetVariables() {
|
||||
_wearing = 0;
|
||||
_sworeNum = 0;
|
||||
_alcoholLevel = 0;
|
||||
_playedNim = 0;
|
||||
_boughtOnion = false;
|
||||
}
|
||||
|
||||
void Parser::synchronize(Common::Serializer &sz) {
|
||||
sz.syncAsByte(_wearing);
|
||||
sz.syncAsByte(_sworeNum);
|
||||
sz.syncAsByte(_alcoholLevel);
|
||||
sz.syncAsByte(_playedNim);
|
||||
sz.syncAsByte(_boughtOnion);
|
||||
}
|
||||
|
||||
} // End of namespace Avalanche
|
||||
|
@ -81,10 +81,6 @@ public:
|
||||
bool _cursorState;
|
||||
|
||||
byte _wearing; // what you're wearing
|
||||
byte _sworeNum; // number of times you've sworn
|
||||
byte _alcoholLevel; // Your blood alcohol level.
|
||||
byte _playedNim; // How many times you've played Nim.
|
||||
bool _boughtOnion; // Have you bought an onion yet?
|
||||
|
||||
Parser(AvalancheEngine *vm);
|
||||
|
||||
@ -104,6 +100,7 @@ public:
|
||||
void tryDropdown(); // This asks the parsekey proc in Dropdown if it knows it.
|
||||
int16 getPos(const Common::String &crit, const Common::String &src); // Returns the index of the first appearance of crit in src.
|
||||
|
||||
void resetVariables();
|
||||
void synchronize(Common::Serializer &sz);
|
||||
|
||||
private:
|
||||
@ -116,6 +113,10 @@ private:
|
||||
|
||||
Common::String _thats;
|
||||
byte _thing2;
|
||||
byte _sworeNum; // number of times you've sworn
|
||||
byte _alcoholLevel; // Your blood alcohol level.
|
||||
byte _playedNim; // How many times you've played Nim.
|
||||
bool _boughtOnion; // Have you bought an onion yet?
|
||||
|
||||
byte wordNum(Common::String word);
|
||||
void replace(Common::String oldChars, byte newChar);
|
||||
|
@ -324,7 +324,7 @@ void Timer::hangAround() {
|
||||
|
||||
AnimationType *avvy = &_vm->_animation->_sprites[0];
|
||||
avvy->init(7, true, _vm->_animation); // Robin Hood
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleRobinHood - 150] = kRoomRobins;
|
||||
_vm->_avalot->_whereIs[kPeopleRobinHood - 150] = kRoomRobins;
|
||||
_vm->_animation->appearPed(0, 1);
|
||||
_vm->_dialogs->displayScrollChain('q', 39);
|
||||
avvy->walkTo(6);
|
||||
@ -336,7 +336,7 @@ void Timer::hangAround2() {
|
||||
AnimationType *spr = &_vm->_animation->_sprites[1];
|
||||
spr->_vanishIfStill = false;
|
||||
spr->walkTo(3);
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleFriarTuck - 150] = kRoomRobins;
|
||||
_vm->_avalot->_whereIs[kPeopleFriarTuck - 150] = kRoomRobins;
|
||||
_vm->_dialogs->displayScrollChain('q', 41);
|
||||
_vm->_animation->_sprites[0].remove();
|
||||
spr->remove(); // Get rid of Robin Hood and Friar Tuck.
|
||||
@ -356,7 +356,7 @@ void Timer::afterTheShootemup() {
|
||||
_vm->_animation->_sprites[0].init(0, true, _vm->_animation); // Avalot.
|
||||
_vm->_animation->appearPed(0, 1);
|
||||
_vm->_avalot->_userMovesAvvy = true;
|
||||
_vm->_avalot->_objects[Avalot::kObjectCrossbow - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectCrossbow - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
|
||||
// Same as the added line above: TODO: Remove it later!!!
|
||||
@ -400,7 +400,7 @@ void Timer::jacquesWakesUp() {
|
||||
case 3 : // Gone through the door.
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 1); // Not on the floor, either.
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 3); // He's gone... so the door's open.
|
||||
_vm->_avalot->_whereIs[Avalot::kPeopleJacques - 150] = 0; // Gone!
|
||||
_vm->_avalot->_whereIs[kPeopleJacques - 150] = 0; // Gone!
|
||||
break;
|
||||
}
|
||||
|
||||
@ -489,7 +489,7 @@ void Timer::jump() {
|
||||
else {
|
||||
_vm->_background->drawBackgroundSprite(-1, -1, 1);
|
||||
_vm->_avalot->_arrowInTheDoor = false; // You've got it.
|
||||
_vm->_avalot->_objects[Avalot::kObjectBolt - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectBolt - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_dialogs->displayScrollChain('q', 50);
|
||||
_vm->_avalot->incScore(3);
|
||||
@ -522,7 +522,7 @@ void Timer::buyWine() {
|
||||
_vm->_dialogs->displayScrollChain('D', 1); // It'll be thruppence.
|
||||
if (_vm->_avalot->decreaseMoney(3)) {
|
||||
_vm->_dialogs->displayScrollChain('D', 4); // You paid up.
|
||||
_vm->_avalot->_objects[Avalot::kObjectWine - 1] = true;
|
||||
_vm->_avalot->_objects[kObjectWine - 1] = true;
|
||||
_vm->_avalot->refreshObjectList();
|
||||
_vm->_avalot->_wineState = 1; // OK Wine.
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user