[Scummvm-cvs-logs] SF.net SVN: scummvm: [32509] scummvm/trunk/engines/parallaction
peres001 at users.sourceforge.net
peres001 at users.sourceforge.net
Tue Jun 3 02:49:28 CEST 2008
Revision: 32509
http://scummvm.svn.sourceforge.net/scummvm/?rev=32509&view=rev
Author: peres001
Date: 2008-06-02 17:49:27 -0700 (Mon, 02 Jun 2008)
Log Message:
-----------
Fixed initialization of parsers, necessary after the latest removal of static arrays.
Modified Paths:
--------------
scummvm/trunk/engines/parallaction/parallaction.h
scummvm/trunk/engines/parallaction/parallaction_br.cpp
scummvm/trunk/engines/parallaction/parallaction_ns.cpp
scummvm/trunk/engines/parallaction/parser.h
Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h 2008-06-02 23:09:19 UTC (rev 32508)
+++ scummvm/trunk/engines/parallaction/parallaction.h 2008-06-03 00:49:27 UTC (rev 32509)
@@ -723,6 +723,7 @@
const Callable *_callables;
void parseLocation(const char* name);
+ void loadProgram(AnimationPtr a, const char *filename);
DECLARE_UNQUALIFIED_COMMAND_OPCODE(location);
DECLARE_UNQUALIFIED_COMMAND_OPCODE(open);
Modified: scummvm/trunk/engines/parallaction/parallaction_br.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction_br.cpp 2008-06-02 23:09:19 UTC (rev 32508)
+++ scummvm/trunk/engines/parallaction/parallaction_br.cpp 2008-06-03 00:49:27 UTC (rev 32509)
@@ -74,7 +74,9 @@
initCursors();
initOpcodes();
_locationParser = new LocationParser_br(this);
+ _locationParser->init();
_programParser = new ProgramParser_br(this);
+ _programParser->init();
_part = -1;
@@ -258,7 +260,26 @@
return;
}
+void Parallaction_br::loadProgram(AnimationPtr a, const char *filename) {
+ debugC(1, kDebugParser, "loadProgram(Animation: %s, script: %s)", a->_name, filename);
+ Script *script = _disk->loadScript(filename);
+ ProgramPtr program(new Program);
+ program->_anim = a;
+
+ _programParser->parse(script, program);
+
+ delete script;
+
+ _vm->_location._programs.push_back(program);
+
+ debugC(1, kDebugParser, "loadProgram() done");
+
+ return;
+}
+
+
+
void Parallaction_br::changeCharacter(const char *name) {
}
Modified: scummvm/trunk/engines/parallaction/parallaction_ns.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction_ns.cpp 2008-06-02 23:09:19 UTC (rev 32508)
+++ scummvm/trunk/engines/parallaction/parallaction_ns.cpp 2008-06-03 00:49:27 UTC (rev 32509)
@@ -137,7 +137,9 @@
initCursors();
initOpcodes();
_locationParser = new LocationParser_ns(this);
+ _locationParser->init();
_programParser = new ProgramParser_ns(this);
+ _programParser->init();
_introSarcData1 = 0;
_introSarcData2 = 1;
Modified: scummvm/trunk/engines/parallaction/parser.h
===================================================================
--- scummvm/trunk/engines/parallaction/parser.h 2008-06-02 23:09:19 UTC (rev 32508)
+++ scummvm/trunk/engines/parallaction/parser.h 2008-06-03 00:49:27 UTC (rev 32509)
@@ -207,7 +207,6 @@
} _forwardedCommands[MAX_FORWARDS];
uint _numForwardedCommands;
- void init();
void clearSet(OpcodeSet &opcodes) {
for (Common::Array<const Opcode*>::iterator i = opcodes.begin(); i != opcodes.end(); ++i)
delete *i;
@@ -216,9 +215,10 @@
public:
LocationParser_ns(Parallaction_ns *vm) : _vm(vm) {
- init();
}
+ virtual void init();
+
virtual ~LocationParser_ns() {
delete _commandsNames;
delete _locationStmt;
@@ -282,13 +282,12 @@
DECLARE_UNQUALIFIED_ANIM_PARSER(moveto);
DECLARE_UNQUALIFIED_ANIM_PARSER(endanimation);
- void init();
-
public:
LocationParser_br(Parallaction_br *vm) : LocationParser_ns((Parallaction_ns*)vm), _vm(vm) {
- init();
}
+ virtual void init();
+
virtual ~LocationParser_br() {
delete _commandsNames;
delete _locationStmt;
@@ -343,7 +342,6 @@
void parseLValue(ScriptVar &var, const char *str);
virtual void parseRValue(ScriptVar &var, const char *str);
- void init();
void clearSet(OpcodeSet &opcodes) {
for (Common::Array<const Opcode*>::iterator i = opcodes.begin(); i != opcodes.end(); ++i)
delete *i;
@@ -352,9 +350,10 @@
public:
ProgramParser_ns(Parallaction_ns *vm) : _vm(vm) {
- init();
}
+ virtual void init();
+
virtual ~ProgramParser_ns() {
delete _instructionNames;
clearSet(_instructionParsers);
@@ -380,13 +379,12 @@
virtual void parseRValue(ScriptVar &var, const char *str);
- void init();
-
public:
ProgramParser_br(Parallaction_br *vm) : ProgramParser_ns((Parallaction_ns*)vm), _vm(vm) {
- init();
}
+ virtual void init();
+
virtual ~ProgramParser_br() {
delete _instructionNames;
delete _parser;
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