[Scummvm-cvs-logs] SF.net SVN: scummvm: [30796] scummvm/trunk/engines/parallaction
peres001 at users.sourceforge.net
peres001 at users.sourceforge.net
Tue Feb 5 10:30:58 CET 2008
Revision: 30796
http://scummvm.svn.sourceforge.net/scummvm/?rev=30796&view=rev
Author: peres001
Date: 2008-02-05 01:30:58 -0800 (Tue, 05 Feb 2008)
Log Message:
-----------
Fixes to make BRA introduction run:
- fixed location command parser
- implemented stop command
- temporary disabled speak zones (audio is not yet supported)
Modified Paths:
--------------
scummvm/trunk/engines/parallaction/exec_br.cpp
scummvm/trunk/engines/parallaction/objects.cpp
scummvm/trunk/engines/parallaction/parallaction_br.cpp
scummvm/trunk/engines/parallaction/parser_br.cpp
scummvm/trunk/engines/parallaction/parser_ns.cpp
Modified: scummvm/trunk/engines/parallaction/exec_br.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/exec_br.cpp 2008-02-05 09:26:28 UTC (rev 30795)
+++ scummvm/trunk/engines/parallaction/exec_br.cpp 2008-02-05 09:30:58 UTC (rev 30796)
@@ -150,7 +150,7 @@
}
DECLARE_COMMAND_OPCODE(stop) {
- warning("Parallaction_br::cmdOp_stop not yet implemented");
+ _cmdRunCtxt.cmd->u._animation->_flags &= ~kFlagsActing;
}
Modified: scummvm/trunk/engines/parallaction/objects.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/objects.cpp 2008-02-05 09:26:28 UTC (rev 30795)
+++ scummvm/trunk/engines/parallaction/objects.cpp 2008-02-05 09:30:58 UTC (rev 30796)
@@ -222,7 +222,18 @@
}
Instruction::Instruction() {
- memset(this, 0, sizeof(Instruction));
+ _index = 0;
+ _flags = 0;
+
+ // common
+ _a = 0;
+ _z = 0;
+ _immediate = 0;
+
+ // BRA specific
+ _text = 0;
+ _text2 = 0;
+ _y = 0;
}
Instruction::~Instruction() {
Modified: scummvm/trunk/engines/parallaction/parallaction_br.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction_br.cpp 2008-02-05 09:26:28 UTC (rev 30795)
+++ scummvm/trunk/engines/parallaction/parallaction_br.cpp 2008-02-05 09:30:58 UTC (rev 30796)
@@ -191,7 +191,7 @@
if (_activeZone) {
z = _activeZone; // speak Zone or sound
_activeZone = NULL;
- runZone(z);
+// runZone(z); // FIXME: BRA doesn't handle sound yet
}
if (_activeZone2) {
Modified: scummvm/trunk/engines/parallaction/parser_br.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parser_br.cpp 2008-02-05 09:26:28 UTC (rev 30795)
+++ scummvm/trunk/engines/parallaction/parser_br.cpp 2008-02-05 09:30:58 UTC (rev 30796)
@@ -322,17 +322,19 @@
_locParseCtxt.nextToken++;
if (_tokens[_locParseCtxt.nextToken][0] != '\0') {
- _locParseCtxt.cmd->u._startPos.x = atoi(_tokens[_locParseCtxt.nextToken]);
- _locParseCtxt.nextToken++;
- _locParseCtxt.cmd->u._startPos.y = atoi(_tokens[_locParseCtxt.nextToken]);
- _locParseCtxt.nextToken++;
- }
+ if (isdigit(_tokens[_locParseCtxt.nextToken][0]) || _tokens[_locParseCtxt.nextToken][0] == '-') {
+ _locParseCtxt.cmd->u._startPos.x = atoi(_tokens[_locParseCtxt.nextToken]);
+ _locParseCtxt.nextToken++;
+ _locParseCtxt.cmd->u._startPos.y = atoi(_tokens[_locParseCtxt.nextToken]);
+ _locParseCtxt.nextToken++;
+ }
- if (_tokens[_locParseCtxt.nextToken][0] != '\0') {
- _locParseCtxt.cmd->u._startPos2.x = atoi(_tokens[_locParseCtxt.nextToken]);
- _locParseCtxt.nextToken++;
- _locParseCtxt.cmd->u._startPos2.y = atoi(_tokens[_locParseCtxt.nextToken]);
- _locParseCtxt.nextToken++;
+ if (isdigit(_tokens[_locParseCtxt.nextToken][0]) || _tokens[_locParseCtxt.nextToken][0] == '-') {
+ _locParseCtxt.cmd->u._startPos2.x = atoi(_tokens[_locParseCtxt.nextToken]);
+ _locParseCtxt.nextToken++;
+ _locParseCtxt.cmd->u._startPos2.y = atoi(_tokens[_locParseCtxt.nextToken]);
+ _locParseCtxt.nextToken++;
+ }
}
parseCommandFlags();
Modified: scummvm/trunk/engines/parallaction/parser_ns.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parser_ns.cpp 2008-02-05 09:26:28 UTC (rev 30795)
+++ scummvm/trunk/engines/parallaction/parser_ns.cpp 2008-02-05 09:30:58 UTC (rev 30796)
@@ -613,9 +613,11 @@
} else
if (!scumm_strnicmp(_tokens[_si], "no", 2)) {
byte _al = _localFlagNames->lookup(&_tokens[_si][2]);
+ assert(_al != Table::notFound);
cmd->_flagsOff |= 1 << (_al - 1);
} else {
byte _al = _localFlagNames->lookup(_tokens[_si]);
+ assert(_al != Table::notFound);
cmd->_flagsOn |= 1 << (_al - 1);
}
@@ -638,9 +640,11 @@
} else
if (!scumm_strnicmp(_tokens[_si], "no", 2)) {
byte _al = _globalTable->lookup(&_tokens[_si][2]);
+ assert(_al != Table::notFound);
cmd->_flagsOff |= 1 << (_al - 1);
} else {
byte _al = _globalTable->lookup(_tokens[_si]);
+ assert(_al != Table::notFound);
cmd->_flagsOn |= 1 << (_al - 1);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list