[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