aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parser_ns.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-08-26 09:01:19 +0000
committerNicola Mettifogo2007-08-26 09:01:19 +0000
commit9c608fcacbfe099f5c23fd457dfe139380e71bf5 (patch)
tree01020ec1e73d3a88be54118210b4359dbeedb0b1 /engines/parallaction/parser_ns.cpp
parent6358d6bb07e12a7f16b2fa9eae7d7a706d638859 (diff)
downloadscummvm-rg350-9c608fcacbfe099f5c23fd457dfe139380e71bf5.tar.gz
scummvm-rg350-9c608fcacbfe099f5c23fd457dfe139380e71bf5.tar.bz2
scummvm-rg350-9c608fcacbfe099f5c23fd457dfe139380e71bf5.zip
Implemented more opcodes.
svn-id: r28746
Diffstat (limited to 'engines/parallaction/parser_ns.cpp')
-rw-r--r--engines/parallaction/parser_ns.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/engines/parallaction/parser_ns.cpp b/engines/parallaction/parser_ns.cpp
index e3ee3157fb..f60479a2c9 100644
--- a/engines/parallaction/parser_ns.cpp
+++ b/engines/parallaction/parser_ns.cpp
@@ -174,7 +174,6 @@ Animation *Parallaction_ns::parseAnimation(Script& script, AnimationList &list,
list.push_front(a);
_locParseCtxt.a = a;
- _locParseCtxt.end = false;
_locParseCtxt.script = &script;
pushParserTables(&_locationAnimParsers, _locationAnimStmt);
@@ -607,7 +606,7 @@ void Parallaction_ns::createCommand(uint id) {
void Parallaction_ns::parseCommands(Script &script, CommandList& list) {
_locParseCtxt.list = &list;
- _locParseCtxt.end = false;
+ _locParseCtxt.endcommands = false;
_locParseCtxt.script = &script;
pushParserTables(&_commandParsers, _commandsNames);
@@ -804,7 +803,7 @@ DECLARE_LOCATION_PARSER(animation) {
DECLARE_LOCATION_PARSER(localflags) {
- int _si = 1; // _localFlagNames[0] = 'visited'
+ int _si = 1;
while (_tokens[_si][0] != '\0') {
_localFlagNames->addData(_tokens[_si]);
_si++;
@@ -869,9 +868,10 @@ DECLARE_LOCATION_PARSER(redundant) {
void Parallaction_ns::parseLocation(const char *filename) {
- debugC(1, kDebugLocation, "parseLocation('%s')", filename);
+ debugC(5, kDebugLocation, "parseLocation('%s')", filename);
allocateLocationSlot(filename);
+ printf("got location slot #%i for %s\n", _currentLocationIndex, filename);
Script *script = _disk->loadLocation(filename);
@@ -885,15 +885,10 @@ void Parallaction_ns::parseLocation(const char *filename) {
_locParseCtxt.filename = filename;
pushParserTables(&_locationParsers, _locationStmt);
-
do {
-
fillBuffers(*script, true);
-
parseStatement();
-
} while (!_locParseCtxt.end);
-
popParserTables();
delete script;
@@ -911,6 +906,8 @@ void Parallaction_ns::parseLocation(const char *filename) {
if ((*it)->_scriptName)
loadProgram(*it, (*it)->_scriptName);
}
+
+ debugC(5, kDebugLocation, "parseLocation('%s') done", filename);
return;
}
@@ -1156,7 +1153,6 @@ void Parallaction_ns::parseZone(Script &script, ZoneList &list, char *name) {
z->_label._text = strdup(name);
_locParseCtxt.z = z;
- _locParseCtxt.end = false;
_locParseCtxt.script = &script;
list.push_front(z);