aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction_br.cpp
diff options
context:
space:
mode:
authorChristopher Page2008-06-05 21:20:35 +0000
committerChristopher Page2008-06-05 21:20:35 +0000
commitcae6396ce76991e240b1e23bbcff0b6d6960f9a0 (patch)
tree58ea9c6a42d7bf3655e775e3a26f6739e9daffe1 /engines/parallaction/parallaction_br.cpp
parent18b892e534c9fedf60a57c71e0978965d353fd60 (diff)
parent3c7e0f5f8dc39e27619f7d23d060264db8d906d3 (diff)
downloadscummvm-rg350-cae6396ce76991e240b1e23bbcff0b6d6960f9a0.tar.gz
scummvm-rg350-cae6396ce76991e240b1e23bbcff0b6d6960f9a0.tar.bz2
scummvm-rg350-cae6396ce76991e240b1e23bbcff0b6d6960f9a0.zip
Merged revisions 32507-32513,32516,32518,32520-32521,32523-32524,32526-32548,32550-32562 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk svn-id: r32563
Diffstat (limited to 'engines/parallaction/parallaction_br.cpp')
-rw-r--r--engines/parallaction/parallaction_br.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp
index 06f728f603..b22e1b0f2d 100644
--- a/engines/parallaction/parallaction_br.cpp
+++ b/engines/parallaction/parallaction_br.cpp
@@ -74,7 +74,9 @@ int Parallaction_br::init() {
initCursors();
initOpcodes();
_locationParser = new LocationParser_br(this);
+ _locationParser->init();
_programParser = new ProgramParser_br(this);
+ _programParser->init();
_part = -1;
@@ -203,7 +205,7 @@ void Parallaction_br::runPendingZones() {
if (_activeZone) {
z = _activeZone; // speak Zone or sound
_activeZone = nullZonePtr;
-// runZone(z); // FIXME: BRA doesn't handle sound yet
+ runZone(z); // FIXME: BRA doesn't handle sound yet
}
if (_activeZone2) {
@@ -261,9 +263,34 @@ void Parallaction_br::parseLocation(const char *filename) {
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) {
+ const char *charName = _char.getName();
+ if (!scumm_stricmp(charName, name)) {
+ return;
+ }
+ _char.setName(name);
+ _char._talk = _disk->loadTalk(name);
}