From a2a450dfaec31651a8c84fc6aeccab2816375d2a Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Mon, 13 Aug 2007 23:17:17 +0000 Subject: 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 --- engines/parallaction/animation.cpp | 11 +++++------ engines/parallaction/commands.cpp | 2 +- engines/parallaction/debug.cpp | 2 +- engines/parallaction/dialogue.cpp | 2 +- engines/parallaction/parallaction.cpp | 4 ++-- engines/parallaction/parallaction.h | 6 +++++- engines/parallaction/zone.cpp | 2 +- 7 files changed, 16 insertions(+), 13 deletions(-) (limited to 'engines/parallaction') 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 \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; -- cgit v1.2.3