From 28465d73bbb7a5f7e23f4baa3fa34db097c80a03 Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Sun, 29 Mar 2009 10:18:09 +0000 Subject: Merged CommandData into Command. svn-id: r39732 --- engines/parallaction/exec_br.cpp | 101 ++++++++++++++++++------------------- engines/parallaction/exec_ns.cpp | 54 ++++++++++---------- engines/parallaction/objects.cpp | 16 +++++- engines/parallaction/objects.h | 29 +++-------- engines/parallaction/parser_br.cpp | 54 ++++++++++---------- engines/parallaction/parser_ns.cpp | 24 ++++----- 6 files changed, 139 insertions(+), 139 deletions(-) (limited to 'engines/parallaction') diff --git a/engines/parallaction/exec_br.cpp b/engines/parallaction/exec_br.cpp index a8b89b353e..8821db4e3c 100644 --- a/engines/parallaction/exec_br.cpp +++ b/engines/parallaction/exec_br.cpp @@ -117,68 +117,68 @@ void Parallaction_br::clearSubtitles() { DECLARE_COMMAND_OPCODE(location) { warning("Parallaction_br::cmdOp_location command not yet implemented"); - _vm->_location._startPosition = ctxt._cmd->u._startPos; + _vm->_location._startPosition = ctxt._cmd->_startPos; _vm->_location._startFrame = 0; // TODO: verify this against the disassembly!f - _vm->_location._followerStartPosition = ctxt._cmd->u._startPos2; + _vm->_location._followerStartPosition = ctxt._cmd->_startPos2; _vm->_location._followerStartFrame = 0; // TODO: handle startPos and startPos2 - _vm->scheduleLocationSwitch(ctxt._cmd->u._string); + _vm->scheduleLocationSwitch(ctxt._cmd->_string); } DECLARE_COMMAND_OPCODE(open) { - _vm->updateDoor(ctxt._cmd->u._zone, false); + _vm->updateDoor(ctxt._cmd->_zone, false); } DECLARE_COMMAND_OPCODE(close) { - _vm->updateDoor(ctxt._cmd->u._zone, true); + _vm->updateDoor(ctxt._cmd->_zone, true); } DECLARE_COMMAND_OPCODE(on) { - _vm->showZone(ctxt._cmd->u._zone, true); + _vm->showZone(ctxt._cmd->_zone, true); } DECLARE_COMMAND_OPCODE(off) { - _vm->showZone(ctxt._cmd->u._zone, false); + _vm->showZone(ctxt._cmd->_zone, false); } DECLARE_COMMAND_OPCODE(call) { - _vm->callFunction(ctxt._cmd->u._callable, &ctxt._z); + _vm->callFunction(ctxt._cmd->_callable, &ctxt._z); } DECLARE_COMMAND_OPCODE(drop) { - _vm->dropItem(ctxt._cmd->u._object); + _vm->dropItem(ctxt._cmd->_object); } DECLARE_COMMAND_OPCODE(move) { - _vm->scheduleWalk(ctxt._cmd->u._move.x, ctxt._cmd->u._move.y, false); + _vm->scheduleWalk(ctxt._cmd->_move.x, ctxt._cmd->_move.y, false); suspend(); } DECLARE_COMMAND_OPCODE(start) { - ctxt._cmd->u._zone->_flags |= kFlagsActing; + ctxt._cmd->_zone->_flags |= kFlagsActing; } DECLARE_COMMAND_OPCODE(stop) { - ctxt._cmd->u._zone->_flags &= ~kFlagsActing; + ctxt._cmd->_zone->_flags &= ~kFlagsActing; } DECLARE_COMMAND_OPCODE(character) { - debugC(9, kDebugExec, "Parallaction_br::cmdOp_character(%s)", ctxt._cmd->u._string); - _vm->changeCharacter(ctxt._cmd->u._string); + debugC(9, kDebugExec, "Parallaction_br::cmdOp_character(%s)", ctxt._cmd->_string); + _vm->changeCharacter(ctxt._cmd->_string); } DECLARE_COMMAND_OPCODE(followme) { - Common::String s(ctxt._cmd->u._string); + Common::String s(ctxt._cmd->_string); if (!s.compareToIgnoreCase("NULL")) { s.clear(); } @@ -197,26 +197,26 @@ DECLARE_COMMAND_OPCODE(offmouse) { DECLARE_COMMAND_OPCODE(add) { - _vm->addInventoryItem(ctxt._cmd->u._object); + _vm->addInventoryItem(ctxt._cmd->_object); } DECLARE_COMMAND_OPCODE(leave) { - ZonePtr z = ctxt._cmd->u._zone; + ZonePtr z = ctxt._cmd->_zone; _vm->dropItem(z->u._getIcon); _vm->showZone(z, true); } DECLARE_COMMAND_OPCODE(inc) { - int v = _vm->getCounterValue(ctxt._cmd->u._counterName); - _vm->setCounterValue(ctxt._cmd->u._counterName, v + ctxt._cmd->u._counterValue); + int v = _vm->getCounterValue(ctxt._cmd->_counterName); + _vm->setCounterValue(ctxt._cmd->_counterName, v + ctxt._cmd->_counterValue); } DECLARE_COMMAND_OPCODE(dec) { - int v = _vm->getCounterValue(ctxt._cmd->u._counterName); - _vm->setCounterValue(ctxt._cmd->u._counterName, v - ctxt._cmd->u._counterValue); + int v = _vm->getCounterValue(ctxt._cmd->_counterName); + _vm->setCounterValue(ctxt._cmd->_counterName, v - ctxt._cmd->_counterValue); } // these definitions must match those in parser_br.cpp @@ -225,20 +225,20 @@ DECLARE_COMMAND_OPCODE(dec) { #define CMD_TEST_LT 27 DECLARE_COMMAND_OPCODE(ifeq) { - _vm->testCounterCondition(ctxt._cmd->u._counterName, CMD_TEST, ctxt._cmd->u._counterValue); + _vm->testCounterCondition(ctxt._cmd->_counterName, CMD_TEST, ctxt._cmd->_counterValue); } DECLARE_COMMAND_OPCODE(iflt) { - _vm->testCounterCondition(ctxt._cmd->u._counterName, CMD_TEST_LT, ctxt._cmd->u._counterValue); + _vm->testCounterCondition(ctxt._cmd->_counterName, CMD_TEST_LT, ctxt._cmd->_counterValue); } DECLARE_COMMAND_OPCODE(ifgt) { - _vm->testCounterCondition(ctxt._cmd->u._counterName, CMD_TEST_GT, ctxt._cmd->u._counterValue); + _vm->testCounterCondition(ctxt._cmd->_counterName, CMD_TEST_GT, ctxt._cmd->_counterValue); } DECLARE_COMMAND_OPCODE(let) { - _vm->setCounterValue(ctxt._cmd->u._counterName, ctxt._cmd->u._counterValue); + _vm->setCounterValue(ctxt._cmd->_counterName, ctxt._cmd->_counterValue); } @@ -248,26 +248,26 @@ DECLARE_COMMAND_OPCODE(music) { DECLARE_COMMAND_OPCODE(fix) { - ctxt._cmd->u._zone->_flags |= kFlagsFixed; + ctxt._cmd->_zone->_flags |= kFlagsFixed; } DECLARE_COMMAND_OPCODE(unfix) { - ctxt._cmd->u._zone->_flags &= ~kFlagsFixed; + ctxt._cmd->_zone->_flags &= ~kFlagsFixed; } DECLARE_COMMAND_OPCODE(zeta) { - _vm->_location._zeta0 = ctxt._cmd->u._zeta0; - _vm->_location._zeta1 = ctxt._cmd->u._zeta1; - _vm->_location._zeta2 = ctxt._cmd->u._zeta2; + _vm->_location._zeta0 = ctxt._cmd->_zeta0; + _vm->_location._zeta1 = ctxt._cmd->_zeta1; + _vm->_location._zeta2 = ctxt._cmd->_zeta2; } DECLARE_COMMAND_OPCODE(scroll) { Common::Point p; _vm->_gfx->getScrollPos(p); - _vm->_gfx->initiateScroll(ctxt._cmd->u._counterValue - p.x, 0); + _vm->_gfx->initiateScroll(ctxt._cmd->_counterValue - p.x, 0); } @@ -282,8 +282,7 @@ DECLARE_COMMAND_OPCODE(give) { DECLARE_COMMAND_OPCODE(text) { - CommandData *data = &ctxt._cmd->u; - _vm->setupSubtitles(data->_string, data->_string2, data->_zeta0); + _vm->setupSubtitles(ctxt._cmd->_string, ctxt._cmd->_string2, ctxt._cmd->_zeta0); } @@ -317,40 +316,40 @@ DECLARE_INSTRUCTION_OPCODE(invalid) { } DECLARE_COMMAND_OPCODE(clear) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags &= ~ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags &= ~ctxt._cmd->_flags; } else { - _vm->clearLocationFlags(ctxt._cmd->u._flags); + _vm->clearLocationFlags(ctxt._cmd->_flags); } } DECLARE_COMMAND_OPCODE(speak) { // WORKAROUND: this avoids crashing when the zone is not parsed, like in the case // of script bug in ticket #2718449. - if (!ctxt._cmd->u._zone) { + if (!ctxt._cmd->_zone) { return; } - if (ACTIONTYPE(ctxt._cmd->u._zone) == kZoneSpeak) { - _vm->enterDialogueMode(ctxt._cmd->u._zone); + if (ACTIONTYPE(ctxt._cmd->_zone) == kZoneSpeak) { + _vm->enterDialogueMode(ctxt._cmd->_zone); } else { - _vm->_activeZone = ctxt._cmd->u._zone; + _vm->_activeZone = ctxt._cmd->_zone; } } DECLARE_COMMAND_OPCODE(get) { - ctxt._cmd->u._zone->_flags &= ~kFlagsFixed; - _vm->runZone(ctxt._cmd->u._zone); + ctxt._cmd->_zone->_flags &= ~kFlagsFixed; + _vm->runZone(ctxt._cmd->_zone); } DECLARE_COMMAND_OPCODE(toggle) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags ^= ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags ^= ctxt._cmd->_flags; } else { - _vm->toggleLocationFlags(ctxt._cmd->u._flags); + _vm->toggleLocationFlags(ctxt._cmd->_flags); } } @@ -363,11 +362,11 @@ DECLARE_COMMAND_OPCODE(invalid) { } DECLARE_COMMAND_OPCODE(set) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags |= ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags |= ctxt._cmd->_flags; } else { - _vm->setLocationFlags(ctxt._cmd->u._flags); + _vm->setLocationFlags(ctxt._cmd->_flags); } } diff --git a/engines/parallaction/exec_ns.cpp b/engines/parallaction/exec_ns.cpp index 4c17f4910a..c8a5ee1548 100644 --- a/engines/parallaction/exec_ns.cpp +++ b/engines/parallaction/exec_ns.cpp @@ -198,86 +198,86 @@ DECLARE_COMMAND_OPCODE(invalid) { } DECLARE_COMMAND_OPCODE(set) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags |= ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags |= ctxt._cmd->_flags; } else { - _vm->setLocationFlags(ctxt._cmd->u._flags); + _vm->setLocationFlags(ctxt._cmd->_flags); } } DECLARE_COMMAND_OPCODE(clear) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags &= ~ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags &= ~ctxt._cmd->_flags; } else { - _vm->clearLocationFlags(ctxt._cmd->u._flags); + _vm->clearLocationFlags(ctxt._cmd->_flags); } } DECLARE_COMMAND_OPCODE(start) { - ctxt._cmd->u._zone->_flags |= kFlagsActing; + ctxt._cmd->_zone->_flags |= kFlagsActing; } DECLARE_COMMAND_OPCODE(speak) { - if (ACTIONTYPE(ctxt._cmd->u._zone) == kZoneSpeak) { - _vm->enterDialogueMode(ctxt._cmd->u._zone); + if (ACTIONTYPE(ctxt._cmd->_zone) == kZoneSpeak) { + _vm->enterDialogueMode(ctxt._cmd->_zone); } else { - _vm->_activeZone = ctxt._cmd->u._zone; + _vm->_activeZone = ctxt._cmd->_zone; } } DECLARE_COMMAND_OPCODE(get) { - ctxt._cmd->u._zone->_flags &= ~kFlagsFixed; - _vm->runZone(ctxt._cmd->u._zone); + ctxt._cmd->_zone->_flags &= ~kFlagsFixed; + _vm->runZone(ctxt._cmd->_zone); } DECLARE_COMMAND_OPCODE(location) { - _vm->scheduleLocationSwitch(ctxt._cmd->u._string); + _vm->scheduleLocationSwitch(ctxt._cmd->_string); } DECLARE_COMMAND_OPCODE(open) { - _vm->updateDoor(ctxt._cmd->u._zone, false); + _vm->updateDoor(ctxt._cmd->_zone, false); } DECLARE_COMMAND_OPCODE(close) { - _vm->updateDoor(ctxt._cmd->u._zone, true); + _vm->updateDoor(ctxt._cmd->_zone, true); } DECLARE_COMMAND_OPCODE(on) { - _vm->showZone(ctxt._cmd->u._zone, true); + _vm->showZone(ctxt._cmd->_zone, true); } DECLARE_COMMAND_OPCODE(off) { - _vm->showZone(ctxt._cmd->u._zone, false); + _vm->showZone(ctxt._cmd->_zone, false); } DECLARE_COMMAND_OPCODE(call) { - _vm->callFunction(ctxt._cmd->u._callable, &ctxt._z); + _vm->callFunction(ctxt._cmd->_callable, &ctxt._z); } DECLARE_COMMAND_OPCODE(toggle) { - if (ctxt._cmd->u._flags & kFlagsGlobal) { - ctxt._cmd->u._flags &= ~kFlagsGlobal; - _globalFlags ^= ctxt._cmd->u._flags; + if (ctxt._cmd->_flags & kFlagsGlobal) { + ctxt._cmd->_flags &= ~kFlagsGlobal; + _globalFlags ^= ctxt._cmd->_flags; } else { - _vm->toggleLocationFlags(ctxt._cmd->u._flags); + _vm->toggleLocationFlags(ctxt._cmd->_flags); } } DECLARE_COMMAND_OPCODE(drop){ - _vm->dropItem( ctxt._cmd->u._object ); + _vm->dropItem( ctxt._cmd->_object ); } @@ -287,12 +287,12 @@ DECLARE_COMMAND_OPCODE(quit) { DECLARE_COMMAND_OPCODE(move) { - _vm->scheduleWalk(ctxt._cmd->u._move.x, ctxt._cmd->u._move.y, false); + _vm->scheduleWalk(ctxt._cmd->_move.x, ctxt._cmd->_move.y, false); } DECLARE_COMMAND_OPCODE(stop) { - ctxt._cmd->u._zone->_flags &= ~kFlagsActing; + ctxt._cmd->_zone->_flags &= ~kFlagsActing; } CommandExec_ns::CommandExec_ns(Parallaction_ns* vm) : CommandExec(vm), _vm(vm) { diff --git a/engines/parallaction/objects.cpp b/engines/parallaction/objects.cpp index 9c6d3cb96c..a417efaecc 100644 --- a/engines/parallaction/objects.cpp +++ b/engines/parallaction/objects.cpp @@ -34,10 +34,24 @@ Command::Command() { _id = 0; _flagsOn = 0; _flagsOff = 0; + + _flags = 0; + _string = 0; + _callable = 0; + _object = 0; + _counterValue = 0; + _zeta0 = 0; + _zeta1 = 0; + _zeta2 = 0; + _characterId = 0; + _string2 = 0; + _musicCommand = 0; + _musicParm = 0; } Command::~Command() { - + free(_string); + free(_string2); } diff --git a/engines/parallaction/objects.h b/engines/parallaction/objects.h index 393913edeb..52f3d62a59 100644 --- a/engines/parallaction/objects.h +++ b/engines/parallaction/objects.h @@ -108,8 +108,15 @@ enum CommandFlags { kFlagsTestTrue = 2 }; +struct Command { + uint16 _id; + uint32 _flagsOn; + uint32 _flagsOff; -struct CommandData { + Command(); + ~Command(); + + // Common fields uint32 _flags; ZonePtr _zone; char* _string; @@ -129,26 +136,6 @@ struct CommandData { char* _string2; int _musicCommand; int _musicParm; - - - CommandData() { - memset(this, 0, sizeof(CommandData)); - } - - ~CommandData() { - free(_string); - free(_string2); - } -}; - -struct Command { - uint16 _id; - CommandData u; - uint32 _flagsOn; - uint32 _flagsOff; - - Command(); - ~Command(); }; typedef Common::SharedPtr CommandPtr; diff --git a/engines/parallaction/parser_br.cpp b/engines/parallaction/parser_br.cpp index b1bdaa751f..618bba254e 100644 --- a/engines/parallaction/parser_br.cpp +++ b/engines/parallaction/parser_br.cpp @@ -519,23 +519,23 @@ DECLARE_COMMAND_PARSER(location) { createCommand(_parser->_lookup); - ctxt.cmd->u._string = strdup(_tokens[1]); + ctxt.cmd->_string = strdup(_tokens[1]); ctxt.nextToken++; - ctxt.cmd->u._startPos.x = -1000; - ctxt.cmd->u._startPos2.x = -1000; + ctxt.cmd->_startPos.x = -1000; + ctxt.cmd->_startPos2.x = -1000; if (_tokens[ctxt.nextToken][0] != '\0') { if (isdigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { - ctxt.cmd->u._startPos.x = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_startPos.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; - ctxt.cmd->u._startPos.y = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_startPos.y = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; } if (isdigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { - ctxt.cmd->u._startPos2.x = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_startPos2.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; - ctxt.cmd->u._startPos2.y = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_startPos2.y = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; } } @@ -550,7 +550,7 @@ DECLARE_COMMAND_PARSER(string) { createCommand(_parser->_lookup); - ctxt.cmd->u._string = strdup(_tokens[1]); + ctxt.cmd->_string = strdup(_tokens[1]); ctxt.nextToken++; parseCommandFlags(); @@ -566,9 +566,9 @@ DECLARE_COMMAND_PARSER(math) { error("counter '%s' doesn't exists", _tokens[1]); } - ctxt.cmd->u._counterName = _tokens[1]; + ctxt.cmd->_counterName = _tokens[1]; ctxt.nextToken++; - ctxt.cmd->u._counterValue = atoi(_tokens[2]); + ctxt.cmd->_counterValue = atoi(_tokens[2]); ctxt.nextToken++; parseCommandFlags(); @@ -589,8 +589,8 @@ DECLARE_COMMAND_PARSER(test) { error("unknown counter '%s' in test opcode", _tokens[1]); } } else { - ctxt.cmd->u._counterName = _tokens[1]; - ctxt.cmd->u._counterValue = atoi(_tokens[3]); + ctxt.cmd->_counterName = _tokens[1]; + ctxt.cmd->_counterValue = atoi(_tokens[3]); ctxt.nextToken++; if (_tokens[2][0] == '>') { @@ -612,11 +612,11 @@ DECLARE_COMMAND_PARSER(music) { createCommand(_parser->_lookup); - ctxt.cmd->u._musicCommand = _audioCommandsNames->lookup(_tokens[1]); + ctxt.cmd->_musicCommand = _audioCommandsNames->lookup(_tokens[1]); ctxt.nextToken++; if (_tokens[2][0] != '\0' && scumm_stricmp("flags", _tokens[2]) && scumm_stricmp("gflags", _tokens[2])) { - ctxt.cmd->u._musicParm = atoi(_tokens[2]); + ctxt.cmd->_musicParm = atoi(_tokens[2]); ctxt.nextToken++; } @@ -630,16 +630,16 @@ DECLARE_COMMAND_PARSER(zeta) { createCommand(_parser->_lookup); - ctxt.cmd->u._zeta0 = atoi(_tokens[1]); + ctxt.cmd->_zeta0 = atoi(_tokens[1]); ctxt.nextToken++; - ctxt.cmd->u._zeta1 = atoi(_tokens[2]); + ctxt.cmd->_zeta1 = atoi(_tokens[2]); ctxt.nextToken++; if (_tokens[3][0] != '\0') { - ctxt.cmd->u._zeta2 = atoi(_tokens[3]); + ctxt.cmd->_zeta2 = atoi(_tokens[3]); ctxt.nextToken++; } else { - ctxt.cmd->u._zeta2 = 50; + ctxt.cmd->_zeta2 = 50; } parseCommandFlags(); @@ -652,17 +652,17 @@ DECLARE_COMMAND_PARSER(give) { createCommand(_parser->_lookup); - ctxt.cmd->u._object = 4 + atoi(_tokens[1]); + ctxt.cmd->_object = 4 + atoi(_tokens[1]); ctxt.nextToken++; if (!scumm_stricmp("dino", _tokens[2])) { - ctxt.cmd->u._characterId = 1; + ctxt.cmd->_characterId = 1; } else if (!scumm_stricmp("doug", _tokens[2])) { - ctxt.cmd->u._characterId = 2; + ctxt.cmd->_characterId = 2; } else if (!scumm_stricmp("donna", _tokens[2])) { - ctxt.cmd->u._characterId = 3; + ctxt.cmd->_characterId = 3; } else error("unknown recipient '%s' in give command", _tokens[2]); @@ -679,17 +679,17 @@ DECLARE_COMMAND_PARSER(text) { createCommand(_parser->_lookup); if (isdigit(_tokens[1][1])) { - ctxt.cmd->u._zeta0 = atoi(_tokens[1]); + ctxt.cmd->_zeta0 = atoi(_tokens[1]); ctxt.nextToken++; } else { - ctxt.cmd->u._zeta0 = -1; + ctxt.cmd->_zeta0 = -1; } - ctxt.cmd->u._string = strdup(_tokens[ctxt.nextToken]); + ctxt.cmd->_string = strdup(_tokens[ctxt.nextToken]); ctxt.nextToken++; if (_tokens[ctxt.nextToken][0] != '\0' && scumm_stricmp("flags", _tokens[ctxt.nextToken])) { - ctxt.cmd->u._string2 = strdup(_tokens[ctxt.nextToken]); + ctxt.cmd->_string2 = strdup(_tokens[ctxt.nextToken]); ctxt.nextToken++; } @@ -704,7 +704,7 @@ DECLARE_COMMAND_PARSER(unary) { createCommand(_parser->_lookup); - ctxt.cmd->u._counterValue = atoi(_tokens[1]); + ctxt.cmd->_counterValue = atoi(_tokens[1]); ctxt.nextToken++; parseCommandFlags(); diff --git a/engines/parallaction/parser_ns.cpp b/engines/parallaction/parser_ns.cpp index 6184f3765d..10405f1244 100644 --- a/engines/parallaction/parser_ns.cpp +++ b/engines/parallaction/parser_ns.cpp @@ -608,15 +608,15 @@ DECLARE_COMMAND_PARSER(flags) { do { char _al = _vm->_localFlagNames->lookup(_tokens[ctxt.nextToken]); ctxt.nextToken++; - ctxt.cmd->u._flags |= 1 << (_al - 1); + ctxt.cmd->_flags |= 1 << (_al - 1); } while (!scumm_stricmp(_tokens[ctxt.nextToken++], "|")); ctxt.nextToken--; } else { - ctxt.cmd->u._flags |= kFlagsGlobal; + ctxt.cmd->_flags |= kFlagsGlobal; do { char _al = _vm->_globalFlagsNames->lookup(_tokens[1]); ctxt.nextToken++; - ctxt.cmd->u._flags |= 1 << (_al - 1); + ctxt.cmd->_flags |= 1 << (_al - 1); } while (!scumm_stricmp(_tokens[ctxt.nextToken++], "|")); ctxt.nextToken--; } @@ -631,8 +631,8 @@ DECLARE_COMMAND_PARSER(zone) { createCommand(_parser->_lookup); - ctxt.cmd->u._zone = _vm->_location.findZone(_tokens[ctxt.nextToken]); - if (!ctxt.cmd->u._zone) { + ctxt.cmd->_zone = _vm->_location.findZone(_tokens[ctxt.nextToken]); + if (!ctxt.cmd->_zone) { saveCommandForward(_tokens[ctxt.nextToken], ctxt.cmd); } ctxt.nextToken++; @@ -647,7 +647,7 @@ DECLARE_COMMAND_PARSER(location) { createCommand(_parser->_lookup); - ctxt.cmd->u._string = strdup(_tokens[ctxt.nextToken]); + ctxt.cmd->_string = strdup(_tokens[ctxt.nextToken]); ctxt.nextToken++; parseCommandFlags(); @@ -660,7 +660,7 @@ DECLARE_COMMAND_PARSER(invObject) { createCommand(_parser->_lookup); - ctxt.cmd->u._object = 4 + _vm->_objectsNames->lookup(_tokens[ctxt.nextToken]); + ctxt.cmd->_object = 4 + _vm->_objectsNames->lookup(_tokens[ctxt.nextToken]); ctxt.nextToken++; parseCommandFlags(); @@ -673,7 +673,7 @@ DECLARE_COMMAND_PARSER(call) { createCommand(_parser->_lookup); - ctxt.cmd->u._callable = _vm->_callableNames->lookup(_tokens[ctxt.nextToken]) - 1; + ctxt.cmd->_callable = _vm->_callableNames->lookup(_tokens[ctxt.nextToken]) - 1; ctxt.nextToken++; parseCommandFlags(); @@ -695,9 +695,9 @@ DECLARE_COMMAND_PARSER(move) { createCommand(_parser->_lookup); - ctxt.cmd->u._move.x = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_move.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; - ctxt.cmd->u._move.y = atoi(_tokens[ctxt.nextToken]); + ctxt.cmd->_move.y = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; parseCommandFlags(); @@ -790,8 +790,8 @@ void LocationParser_ns::saveCommandForward(const char *name, CommandPtr cmd) { void LocationParser_ns::resolveCommandForwards() { for (uint i = 0; i < _numForwardedCommands; i++) { - _forwardedCommands[i].cmd->u._zone = _vm->_location.findZone(_forwardedCommands[i].name); - if (_forwardedCommands[i].cmd->u._zone == 0) { + _forwardedCommands[i].cmd->_zone = _vm->_location.findZone(_forwardedCommands[i].name); + if (_forwardedCommands[i].cmd->_zone == 0) { warning("Cannot find zone '%s' into current location script. This may be a bug in the original scripts.\n", _forwardedCommands[i].name); } } -- cgit v1.2.3