aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche
diff options
context:
space:
mode:
authorStrangerke2013-09-24 21:24:52 +0200
committerStrangerke2013-09-24 21:24:52 +0200
commitb3f6ce975ff7eb50eb775ce3c5113e85e60c1434 (patch)
tree510f3f55b345cdf2c932185b1fb11fa184435277 /engines/avalanche
parent3ae30372bcf3bff39f8d4fd0df65536bc589ae8f (diff)
downloadscummvm-rg350-b3f6ce975ff7eb50eb775ce3c5113e85e60c1434.tar.gz
scummvm-rg350-b3f6ce975ff7eb50eb775ce3c5113e85e60c1434.tar.bz2
scummvm-rg350-b3f6ce975ff7eb50eb775ce3c5113e85e60c1434.zip
AVALANCHE: Use People enum as a type for several variables, modify functions accordingly
Diffstat (limited to 'engines/avalanche')
-rw-r--r--engines/avalanche/avalot.cpp38
-rw-r--r--engines/avalanche/avalot.h85
-rw-r--r--engines/avalanche/dialogs.cpp4
-rw-r--r--engines/avalanche/enums.h107
-rw-r--r--engines/avalanche/menu.cpp14
-rw-r--r--engines/avalanche/parser.cpp58
-rw-r--r--engines/avalanche/parser.h5
7 files changed, 177 insertions, 134 deletions
diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp
index 9abdd9c13c..90d2542136 100644
--- a/engines/avalanche/avalot.cpp
+++ b/engines/avalanche/avalot.cpp
@@ -672,9 +672,9 @@ void Avalot::findPeople(byte room) {
for (int i = 1; i < 29; i++) {
if (_whereIs[i] == room) {
if (i < 25)
- _him = i + 150;
+ _him = (People)(150 + i);
else
- _her = i + 150;
+ _her = (People)(150 + i);
}
}
}
@@ -1434,9 +1434,9 @@ void Avalot::checkClick() {
if (_thinkThing) {
_vm->_parser->_thing = _thinks;
_vm->_parser->_thing += 49;
- _vm->_parser->_person = _vm->_parser->kPardon;
+ _vm->_parser->_person = kPeoplePardon;
} else {
- _vm->_parser->_person = _thinks;
+ _vm->_parser->_person = (People) _thinks;
_vm->_parser->_thing = _vm->_parser->kPardon;
}
callVerb(Parser::kVerbCodeExam);
@@ -1702,10 +1702,10 @@ void Avalot::newGame() {
avvy->appear(300, 117, kDirRight); // Needed to initialize Avalot.
//for (gd = 0; gd <= 30; gd++) for (gm = 0; gm <= 1; gm++) also[gd][gm] = nil;
// fillchar(previous^,sizeof(previous^),#0); { blank out array }
- _him = Parser::kPardon;
- _her = Parser::kPardon;
+ _him = kPeoplePardon;
+ _her = kPeoplePardon;
_it = Parser::kPardon;
- _lastPerson = Parser::kPardon; // = Pardon?
+ _lastPerson = kPeoplePardon; // = Pardon?
_passwordNum = _vm->_rnd->getRandomNumber(30) + 1; //Random(30) + 1;
_userMovesAvvy = false;
_doingSpriteRun = false;
@@ -1743,7 +1743,7 @@ bool Avalot::decreaseMoney(uint16 howmuchby) {
return true;
}
-Common::String Avalot::getName(byte whose) {
+Common::String Avalot::getName(People whose) {
static const Common::String kLads[17] = {
"Avalot", "Spludwick", "Crapulus", "Dr. Duck", "Malagauche", "Friar Tuck",
"Robin Hood", "Cwytalot", "du Lustie", "the Duke of Cardiff", "Dogfood",
@@ -1752,20 +1752,20 @@ Common::String Avalot::getName(byte whose) {
static const Common::String kLasses[4] = {"Arkata", "Geida", "\0xB1", "the Wise Woman"};
- if (whose < 175)
- return kLads[whose - 150];
+ if (whose < kPeopleArkata)
+ return kLads[whose - kPeopleAvalot];
else
- return kLasses[whose - 175];
+ return kLasses[whose - kPeopleArkata];
}
-byte Avalot::getNameChar(byte whose) {
+byte Avalot::getNameChar(People whose) {
static const char kLadChar[] = "ASCDMTRwLfgeIyPu";
static const char kLassChar[] = "kG\0xB1o";
- if (whose < 175)
- return kLadChar[whose - 150];
+ if (whose < kPeopleArkata)
+ return kLadChar[whose - kPeopleAvalot];
else
- return kLassChar[whose - 175];
+ return kLassChar[whose - kPeopleArkata];
}
Common::String Avalot::getThing(byte which) {
@@ -2049,11 +2049,11 @@ void Avalot::openDoor(Room whither, byte ped, byte magicnum) {
_vm->_sequence->startToOpen();
}
-void Avalot::setRoom(byte persId, Room roomId) {
- _whereIs[persId - 150] = roomId;
+void Avalot::setRoom(People persId, Room roomId) {
+ _whereIs[persId - kPeopleAvalot] = roomId;
}
-Room Avalot::getRoom(byte persId) {
- return _whereIs[persId - 150];
+Room Avalot::getRoom(People persId) {
+ return _whereIs[persId - kPeopleAvalot];
}
} // End of namespace Avalanche
diff --git a/engines/avalanche/avalot.h b/engines/avalanche/avalot.h
index 92cc456b22..3999c19f25 100644
--- a/engines/avalanche/avalot.h
+++ b/engines/avalanche/avalot.h
@@ -63,76 +63,6 @@ private:
void chime();
};
-enum Color {
- kColorBlack, kColorBlue, kColorGreen, kColorCyan, kColorRed,
- kColorMagenta, kColorBrown, kColorLightgray, kColorDarkgray, kColorLightblue,
- kColorLightgreen, kColorLightcyan, kColorLightred, kColorLightmagenta, kColorYellow,
- kColorWhite
-};
-
-// CHECKME: kRoomBossKey is a guess
-enum Room {
- kRoomNowhere = 0, kRoomYours = 1, kRoomOutsideYours = 2, kRoomOutsideSpludwicks = 3,
- kRoomYourHall = 5, kRoomMusicRoom = 7, kRoomOutsideArgentPub = 9, kRoomArgentRoad = 10,
- kRoomWiseWomans = 11, kRoomSpludwicks = 12, kRoomInsideAbbey = 13, kRoomOutsideAbbey = 14,
- kRoomAvvysGarden = 15, kRoomAylesOffice = 16, kRoomArgentPub = 19, kRoomBrummieRoad = 20,
- kRoomBridge = 21, kRoomLusties = 22, kRoomLustiesRoom = 23, kRoomWestHall = 25,
- kRoomEastHall = 26, kRoomOubliette = 27, kRoomGeidas = 28, kRoomCatacombs = 29,
- kRoomEntranceHall = 40, kRoomRobins = 42, kRoomOutsideNottsPub = 46, kRoomNottsPub = 47,
- kRoomOutsideDucks = 50, kRoomDucks = 51, kRoomOutsideCardiffCastle = 70, kRoomInsideCardiffCastle = 71,
- 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
@@ -169,7 +99,7 @@ typedef int8 TuneType[31];
struct QuasipedType {
byte _whichPed, _foregroundColor, _room, _backgroundColor;
- uint16 _who;
+ People _who;
};
#if 0
@@ -346,10 +276,11 @@ public:
Common::String _subject; // What you're talking to them about.
byte _subjectNum; // The same thing.
bool _keyboardClick; // Is a keyboard click noise wanted?
- byte _him, _her, _it;
+ People _him, _her;
+ byte _it;
int32 _roomTime; // Set to 0 when you enter a room, added to in every loop.
- byte _lastPerson; // Last person to have been selected using the People menu.
+ People _lastPerson; // Last person to have been selected using the People menu.
bool _doingSpriteRun; // Only set to True if we're doing a sprite_run at this moment. This stops the trippancy system from moving any of the sprites.
bool _holdTheDawn; // If this is true, calling Dawn will do nothing. It's used, for example, at the start, to stop Load from dawning.
bool _isLoaded; // Is it a loaded gamestate?
@@ -404,8 +335,8 @@ public:
bool decreaseMoney(uint16 howmuchby); // Called pennycheck in the original.
void hangAroundForAWhile();
- Common::String getName(byte whose);
- byte getNameChar(byte whose);
+ Common::String getName(People whose);
+ byte getNameChar(People whose);
Common::String getThing(byte which);
char getThingChar(byte which);
Common::String getItem(byte which); // Called get_better in the original.
@@ -414,8 +345,8 @@ public:
void openDoor(Room whither, byte ped, byte magicnum); // Handles slidey-open doors.
void flipRoom(Room room, byte ped);
- void setRoom(byte persId, Room roomId);
- Room getRoom(byte persId);
+ void setRoom(People persId, Room roomId);
+ Room getRoom(People persId);
private:
AvalancheEngine *_vm;
diff --git a/engines/avalanche/dialogs.cpp b/engines/avalanche/dialogs.cpp
index e9d89c2192..68bd2c29b6 100644
--- a/engines/avalanche/dialogs.cpp
+++ b/engines/avalanche/dialogs.cpp
@@ -954,8 +954,8 @@ void Dialogs::speak(byte who, byte subject) {
}
void Dialogs::talkTo(byte whom) {
- if (_vm->_parser->_person == _vm->_parser->kPardon) {
- _vm->_parser->_person = _vm->_avalot->_subjectNum;
+ if (_vm->_parser->_person == kPeoplePardon) {
+ _vm->_parser->_person = (People)_vm->_avalot->_subjectNum;
_vm->_avalot->_subjectNum = 0;
}
diff --git a/engines/avalanche/enums.h b/engines/avalanche/enums.h
new file mode 100644
index 0000000000..9965091eb8
--- /dev/null
+++ b/engines/avalanche/enums.h
@@ -0,0 +1,107 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+/*
+ * This code is based on the original source code of Lord Avalot d'Argent version 1.3.
+ * Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman.
+ */
+
+#ifndef AVALANCHE_ENUMS_H
+#define AVALANCHE_ENUMS_H
+
+namespace Avalanche {
+enum Color {
+ kColorBlack, kColorBlue, kColorGreen, kColorCyan, kColorRed,
+ kColorMagenta, kColorBrown, kColorLightgray, kColorDarkgray, kColorLightblue,
+ kColorLightgreen, kColorLightcyan, kColorLightred, kColorLightmagenta, kColorYellow,
+ kColorWhite
+};
+
+// CHECKME: kRoomBossKey is a guess
+enum Room {
+ kRoomNowhere = 0, kRoomYours = 1, kRoomOutsideYours = 2, kRoomOutsideSpludwicks = 3,
+ kRoomYourHall = 5, kRoomMusicRoom = 7, kRoomOutsideArgentPub = 9, kRoomArgentRoad = 10,
+ kRoomWiseWomans = 11, kRoomSpludwicks = 12, kRoomInsideAbbey = 13, kRoomOutsideAbbey = 14,
+ kRoomAvvysGarden = 15, kRoomAylesOffice = 16, kRoomArgentPub = 19, kRoomBrummieRoad = 20,
+ kRoomBridge = 21, kRoomLusties = 22, kRoomLustiesRoom = 23, kRoomWestHall = 25,
+ kRoomEastHall = 26, kRoomOubliette = 27, kRoomGeidas = 28, kRoomCatacombs = 29,
+ kRoomEntranceHall = 40, kRoomRobins = 42, kRoomOutsideNottsPub = 46, kRoomNottsPub = 47,
+ kRoomOutsideDucks = 50, kRoomDucks = 51, kRoomOutsideCardiffCastle = 70, kRoomInsideCardiffCastle = 71,
+ 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,
+ //
+ kPeoplePardon = 254,
+ kPeopleNone = 0
+};
+
+} // End of namespace Avalanche
+
+#endif // AVALANCHE_ENUMS_H
diff --git a/engines/avalanche/menu.cpp b/engines/avalanche/menu.cpp
index 6af0e79429..0686fbbf44 100644
--- a/engines/avalanche/menu.cpp
+++ b/engines/avalanche/menu.cpp
@@ -451,9 +451,9 @@ void Menu::setupMenuPeople() {
_activeMenuItem.reset();
- for (int i = 150; i <= 178; i++) {
- if (_vm->_avalot->getRoom(i) == _vm->_avalot->_room) {
- _activeMenuItem.setupOption(_vm->_avalot->getName(i), _vm->_avalot->getNameChar(i), "", true);
+ for (int i = kPeopleAvalot; i <= kPeopleWisewoman; i++) {
+ if (_vm->_avalot->getRoom((People)i) == _vm->_avalot->_room) {
+ _activeMenuItem.setupOption(_vm->_avalot->getName((People)i), _vm->_avalot->getNameChar((People)i), "", true);
people += i;
}
}
@@ -582,7 +582,7 @@ void Menu::runMenuAction() {
// Get up, pause game, open door, look, inventory, walk/run.
switch (_activeMenuItem._choiceNum) {
case 0:
- _vm->_parser->_person = _vm->_parser->kPardon;
+ _vm->_parser->_person = kPeoplePardon;
_vm->_parser->_thing = _vm->_parser->kPardon;
f5Does = _vm->_avalot->f5Does();
_vm->_avalot->callVerb(f5Does[0]);
@@ -619,7 +619,7 @@ void Menu::runMenuObjects() {
void Menu::runMenuPeople() {
_vm->_avalot->thinkAbout(people[_activeMenuItem._choiceNum], Avalot::kPerson);
- _vm->_avalot->_lastPerson = people[_activeMenuItem._choiceNum];
+ _vm->_avalot->_lastPerson = (People)people[_activeMenuItem._choiceNum];
}
void Menu::runMenuWith() {
@@ -631,7 +631,7 @@ void Menu::runMenuWith() {
if (_vm->_avalot->_verbStr[_activeMenuItem._choiceNum] == Parser::kVerbCodeGive)
_vm->_parser->_person = _vm->_avalot->_lastPerson;
else
- _vm->_parser->_person = Parser::kPardon;
+ _vm->_parser->_person = kPeoplePardon;
} else {
switch (_vm->_avalot->_verbStr[_activeMenuItem._choiceNum]) {
case 100: // Beer
@@ -659,7 +659,7 @@ void Menu::runMenuWith() {
_vm->_avalot->callVerb(Parser::kVerbCodeBuy);
return;
default:
- _vm->_parser->_person = _vm->_parser->_thing;
+ _vm->_parser->_person = (People)_vm->_parser->_thing;
_vm->_parser->_thing = Parser::kPardon;
_vm->_avalot->_subjectNum = 0;
}
diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp
index 8e60a5654a..3e318558ef 100644
--- a/engines/avalanche/parser.cpp
+++ b/engines/avalanche/parser.cpp
@@ -421,7 +421,7 @@ void Parser::handleReturn() {
void Parser::handleFunctionKey(const Common::Event &event) {
switch (event.kbd.keycode) {
case Common::KEYCODE_F5:
- _person = kPardon;
+ _person = kPeoplePardon;
_thing = kPardon;
_vm->_avalot->callVerb(_vm->_avalot->f5Does()[0]);
break;
@@ -591,7 +591,7 @@ void Parser::displayWhat(byte target, bool animate, bool &ambiguous) {
_vm->_dialogs->displayText("What?");
} else {
if (animate) {
- Common::String tmpStr = Common::String::format("{ %s }", _vm->_avalot->getName(target).c_str());
+ Common::String tmpStr = Common::String::format("{ %s }", _vm->_avalot->getName((People)target).c_str());
_vm->_dialogs->displayText(tmpStr);
} else {
Common::String z = _vm->_avalot->getItem(target);
@@ -713,7 +713,7 @@ void Parser::parse() {
_verb = kPardon;
_thing = kPardon;
_thing2 = kPardon;
- _person = kPardon;
+ _person = kPeoplePardon;
clearWords();
@@ -868,14 +868,15 @@ void Parser::parse() {
}
for (int16 i = _thats.size() - 1; i >= 0; i--) { // Reverse order, so first will be used.
- if (((byte)_thats[i] == 253) || ((byte)_thats[i] == 249) || ((1 <= (byte)_thats[i]) && ((byte)_thats[i] <= 49)))
- _verb = (byte)_thats[i];
- else if ((50 <= (byte)_thats[i]) && ((byte)_thats[i] <= 149)) {
+ byte curChar = (byte)_thats[i];
+ if ((curChar == 253) || (curChar == 249) || ((1 <= curChar) && (curChar <= 49)))
+ _verb = curChar;
+ else if ((50 <= curChar) && (curChar <= 149)) {
_thing2 = _thing;
- _thing = (byte)_thats[i];
- } else if ((150 <= (byte)_thats[i]) && ((byte)_thats[i] <= 199))
- _person = (byte)_thats[i];
- else if ((byte)_thats[i] == 251)
+ _thing = curChar;
+ } else if ((150 <= curChar) && (curChar <= 199))
+ _person = (People)curChar;
+ else if (curChar == 251)
_polite = true;
}
@@ -929,7 +930,7 @@ void Parser::examineObject() {
}
bool Parser::isPersonHere() { // Person equivalent of "holding".
- if ((_person == kPardon) || (_person == 0) || (_vm->_avalot->getRoom(_person) == _vm->_avalot->_room))
+ if ((_person == kPeoplePardon) || (_person == kPeopleNone) || (_vm->_avalot->getRoom(_person) == _vm->_avalot->_room))
return true;
else {
Common::String tmpStr;
@@ -959,7 +960,8 @@ void Parser::exampers() {
if ((_person == kPeopleAyles) && !_vm->_avalot->_aylesIsAwake)
_vm->_dialogs->displayScrollChain('Q', 13);
- _person = newPerson;
+ // CHECKME: Present in the original, but it doesn't make sense.
+ // _person = newPerson;
}
}
@@ -1004,7 +1006,7 @@ void Parser::openBox(bool isOpening) {
void Parser::examine() {
// EITHER it's an object OR it's an Also OR it's a _person OR it's something else.
- if ((_person == kPardon) && (_thing != kPardon)) {
+ if ((_person == kPeoplePardon) && (_thing != kPardon)) {
if (isHolding()) {
// Remember: it's been slipped! Ie subtract 49.
if ((1 <= _thing) && (_thing <= 49)) // Standard object
@@ -1108,7 +1110,7 @@ void Parser::peopleInRoom() {
byte numPeople = 0; // Number of people in the room.
for (int i = 151; i < 179; i++) { // Start at 1 so we don't list Avvy himself!
- if (_vm->_avalot->getRoom(i) == _vm->_avalot->_room)
+ if (_vm->_avalot->getRoom((People)i) == _vm->_avalot->_room)
numPeople++;
}
@@ -1118,14 +1120,14 @@ void Parser::peopleInRoom() {
Common::String tmpStr;
byte actPerson = 0; // Actually listed people.
for (int i = 151; i < 179; i++) {
- if (_vm->_avalot->getRoom(i) == _vm->_avalot->_room) {
+ if (_vm->_avalot->getRoom((People)i) == _vm->_avalot->_room) {
actPerson++;
if (actPerson == 1) // First on the list.
- tmpStr = _vm->_avalot->getName(i + 150);
+ tmpStr = _vm->_avalot->getName((People)i);
else if (actPerson < numPeople) // The middle...
- tmpStr += ", " + _vm->_avalot->getName(i + 150);
+ tmpStr += ", " + _vm->_avalot->getName((People)i);
else // The end.
- tmpStr += " and " + _vm->_avalot->getName(i + 150);
+ tmpStr += " and " + _vm->_avalot->getName((People)i);
}
}
@@ -1185,7 +1187,7 @@ void Parser::openDoor() {
if (_vm->_animation->inField(1)) {
// Opening the box.
_thing = 54; // The box.
- _person = kPardon;
+ _person = kPeoplePardon;
examine();
return;
}
@@ -1551,8 +1553,8 @@ void Parser::winSequence() {
}
Common::String Parser::personSpeaks() {
- if ((_person == kPardon) || (_person == 0)) {
- if ((_vm->_avalot->_him == kPardon) || (_vm->_avalot->getRoom(_vm->_avalot->_him) != _vm->_avalot->_room))
+ if ((_person == kPeoplePardon) || (_person == kPeopleNone)) {
+ if ((_vm->_avalot->_him == kPeoplePardon) || (_vm->_avalot->getRoom(_vm->_avalot->_him) != _vm->_avalot->_room))
_person = _vm->_avalot->_her;
else
_person = _vm->_avalot->_him;
@@ -1642,7 +1644,7 @@ void Parser::doThat() {
else
getProc(_thing);
} else { // Not... ditto.
- if (_person != kPardon)
+ if (_person != kPeoplePardon)
_vm->_dialogs->displayText("You can't sweep folk off their feet!");
else
_vm->_dialogs->displayText("I assure you, you don't need it.");
@@ -1656,7 +1658,7 @@ void Parser::doThat() {
inventory();
break;
case kVerbCodeTalk:
- if (_person == kPardon) {
+ if (_person == kPeoplePardon) {
if (_vm->_avalot->_subjectNum == 99) { // They typed "say password".
Common::String tmpStr = Common::String::format("Yes, but what %cis%c the password?", Dialogs::kControlItalic, Dialogs::kControlRoman);
_vm->_dialogs->displayText(tmpStr);
@@ -1670,9 +1672,9 @@ void Parser::doThat() {
doThat();
return;
} else {
- _person = _vm->_avalot->_subjectNum;
+ _person = (People)_vm->_avalot->_subjectNum;
_vm->_avalot->_subjectNum = 0;
- if ((_person == 0) || (_person == kPardon))
+ if ((_person == kPeopleNone) || (_person == kPeoplePardon))
_vm->_dialogs->displayText("Talk to whom?");
else if (isPersonHere())
_vm->_dialogs->talkTo(_person);
@@ -1682,7 +1684,7 @@ void Parser::doThat() {
break;
case kVerbCodeGive:
if (isHolding()) {
- if (_person == kPardon)
+ if (_person == kPeoplePardon)
_vm->_dialogs->displayText("Give to whom?");
else if (isPersonHere()) {
switch (_thing) {
@@ -2221,7 +2223,7 @@ void Parser::doThat() {
standUp();
break;
case kVerbCodeKiss:
- if (_person == kPardon)
+ if (_person == kPeoplePardon)
_vm->_dialogs->displayText("Kiss whom?");
else if (isPersonHere()) {
switch (_person) {
@@ -2258,7 +2260,7 @@ void Parser::doThat() {
case kVerbCodeWake:
if (isPersonHere())
switch (_person) {
- case kPardon:
+ case kPeoplePardon:
case kPeopleAvalot:
case 0:
if (!_vm->_avalot->_avvyIsAwake) {
diff --git a/engines/avalanche/parser.h b/engines/avalanche/parser.h
index 30b5929fb5..a0e26817d6 100644
--- a/engines/avalanche/parser.h
+++ b/engines/avalanche/parser.h
@@ -28,6 +28,8 @@
#ifndef AVALANCHE_PARSER_H
#define AVALANCHE_PARSER_H
+#include "avalanche/enums.h"
+
#include "common/events.h"
#include "common/scummsys.h"
#include "common/str.h"
@@ -71,7 +73,8 @@ public:
VocabEntry _vocabulary[kParserWordsNum];
Common::String _realWords[11];
- byte _verb, _person, _thing;
+ byte _verb, _thing;
+ People _person;
bool _polite;
Common::String _inputText; // Original name: current
Common::String _inputTextBackup;