aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
authorNicola Mettifogo2007-08-13 23:17:17 +0000
committerNicola Mettifogo2007-08-13 23:17:17 +0000
commita2a450dfaec31651a8c84fc6aeccab2816375d2a (patch)
tree694b7abd5e31f588f757dac65ad50ef1d23fac9f /engines/parallaction
parent9694215490259a5a7c06d606e909165eb724dd66 (diff)
downloadscummvm-rg350-a2a450dfaec31651a8c84fc6aeccab2816375d2a.tar.gz
scummvm-rg350-a2a450dfaec31651a8c84fc6aeccab2816375d2a.tar.bz2
scummvm-rg350-a2a450dfaec31651a8c84fc6aeccab2816375d2a.zip
Changed Table to return 0 instead of -1 when lookup fails. Lookup already yields 1-based values when the item is found.
svn-id: r28600
Diffstat (limited to 'engines/parallaction')
-rw-r--r--engines/parallaction/animation.cpp11
-rw-r--r--engines/parallaction/commands.cpp2
-rw-r--r--engines/parallaction/debug.cpp2
-rw-r--r--engines/parallaction/dialogue.cpp2
-rw-r--r--engines/parallaction/parallaction.cpp4
-rw-r--r--engines/parallaction/parallaction.h6
-rw-r--r--engines/parallaction/zone.cpp2
7 files changed, 16 insertions, 13 deletions
diff --git a/engines/parallaction/animation.cpp b/engines/parallaction/animation.cpp
index a308b8feba..c532e43bb7 100644
--- a/engines/parallaction/animation.cpp
+++ b/engines/parallaction/animation.cpp
@@ -94,7 +94,7 @@ Animation *Parallaction::parseAnimation(Script& script, AnimationList &list, cha
vD0->_type = ((4 + _objectsNames->lookup(_tokens[2])) << 16) & 0xFFFF0000;
}
int16 _si = _zoneTypeNames->lookup(_tokens[1]);
- if (_si != -1) {
+ if (_si != Table::notFound) {
vD0->_type |= 1 << (_si-1);
if (((vD0->_type & 0xFFFF) != kZoneNone) && ((vD0->_type & 0xFFFF) != kZoneCommand)) {
parseZoneTypeBlock(script, vD0);
@@ -295,8 +295,6 @@ void Parallaction::parseScriptLine(Instruction *inst, Animation *a, LocalVariabl
int16 _si = _instructionNames->lookup(_tokens[0]);
inst->_index = _si;
-// printf("token[0] = %s (%i)\n", _tokens[0], inst->_index);
-
switch (inst->_index) {
case INST_ON: // on
case INST_OFF: // off
@@ -392,9 +390,10 @@ void Parallaction::parseScriptLine(Instruction *inst, Animation *a, LocalVariabl
break;
case INST_CALL: { // call
- int16 _ax = _callableNames->lookup(_tokens[1]);
- inst->_opBase._index = _ax - 1;
- if (_ax - 1 < 0) exit(0);
+ int index = _callableNames->lookup(_tokens[1]);
+ if (index == Table::notFound)
+ error("unknown callable '%s'", _tokens[1]);
+ inst->_opBase._index = index - 1;
}
break;
diff --git a/engines/parallaction/commands.cpp b/engines/parallaction/commands.cpp
index 62cd60b5d4..ba5b89e7e5 100644
--- a/engines/parallaction/commands.cpp
+++ b/engines/parallaction/commands.cpp
@@ -48,7 +48,7 @@ namespace Parallaction {
#define CMD_STOP 16
DECLARE_COMMAND_PARSER(Flags) {
- if (_globalTable->lookup(_tokens[1]) == -1) {
+ if (_globalTable->lookup(_tokens[1]) == Table::notFound) {
do {
char _al = _localFlagNames->lookup(_tokens[_cmdParseCtxt.nextToken]);
_cmdParseCtxt.nextToken++;
diff --git a/engines/parallaction/debug.cpp b/engines/parallaction/debug.cpp
index 95091789a9..c94d0b4a69 100644
--- a/engines/parallaction/debug.cpp
+++ b/engines/parallaction/debug.cpp
@@ -116,7 +116,7 @@ bool Debugger::Cmd_Give(int argc, const char **argv) {
DebugPrintf("give <item name>\n");
} else {
int index = _vm->_objectsNames->lookup(argv[1]);
- if (index != -1)
+ if (index != Table::notFound)
_vm->addInventoryItem(index + 4);
else
DebugPrintf("invalid item name '%s'\n", argv[1]);
diff --git a/engines/parallaction/dialogue.cpp b/engines/parallaction/dialogue.cpp
index 9e0416f493..8d4e8f3e9d 100644
--- a/engines/parallaction/dialogue.cpp
+++ b/engines/parallaction/dialogue.cpp
@@ -151,7 +151,7 @@ Dialogue *Parallaction::parseDialogue(Script &script) {
int16 index = forwards.lookup(answer->_following._name);
free(answer->_following._name);
- if (index == -1)
+ if (index == Table::notFound)
answer->_following._question = 0;
else
answer->_following._question = dialogue->_questions[index - 1];
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index c09ffba97d..1261086d2f 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -837,13 +837,13 @@ void Table::addData(const char* s) {
}
-int16 Table::lookup(const char* s) {
+int Table::lookup(const char* s) {
for (uint16 i = 0; i < _used; i++) {
if (!scumm_stricmp(_data[i], s)) return i + 1;
}
- return -1;
+ return notFound;
}
} // namespace Parallaction
diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h
index 4fe4e7d77d..9907f9a956 100644
--- a/engines/parallaction/parallaction.h
+++ b/engines/parallaction/parallaction.h
@@ -275,9 +275,13 @@ public:
~Table();
+ enum {
+ notFound = 0
+ };
+
void addData(const char* s);
- int16 lookup(const char* s);
+ int lookup(const char* s);
};
struct BackgroundInfo {
diff --git a/engines/parallaction/zone.cpp b/engines/parallaction/zone.cpp
index be55509100..9cc5f28c8a 100644
--- a/engines/parallaction/zone.cpp
+++ b/engines/parallaction/zone.cpp
@@ -81,7 +81,7 @@ void Parallaction::parseZone(Script &script, ZoneList &list, char *name) {
z->_type = (4 + _objectsNames->lookup(_tokens[2])) << 16;
}
int16 _si = _zoneTypeNames->lookup(_tokens[1]);
- if (_si != -1) {
+ if (_si != Table::notFound) {
z->_type |= 1 << (_si - 1);
parseZoneTypeBlock(script, z);
continue;