aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction_br.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-02-02 22:45:31 +0000
committerNicola Mettifogo2008-02-02 22:45:31 +0000
commit899fdcb3677925a8c1d9b4c9335ae17a2f1cccff (patch)
treefdf7aeab1c5099d6167e814881070234b76c96a0 /engines/parallaction/parallaction_br.cpp
parentd8349d66ff6199dcbd6c2412dcdc90a98380ffb4 (diff)
downloadscummvm-rg350-899fdcb3677925a8c1d9b4c9335ae17a2f1cccff.tar.gz
scummvm-rg350-899fdcb3677925a8c1d9b4c9335ae17a2f1cccff.tar.bz2
scummvm-rg350-899fdcb3677925a8c1d9b4c9335ae17a2f1cccff.zip
Enabled rudimentary location switch in BRA.
svn-id: r30748
Diffstat (limited to 'engines/parallaction/parallaction_br.cpp')
-rw-r--r--engines/parallaction/parallaction_br.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp
index 01b3815e6d..60f6bfe329 100644
--- a/engines/parallaction/parallaction_br.cpp
+++ b/engines/parallaction/parallaction_br.cpp
@@ -181,20 +181,41 @@ void Parallaction_br::startPart() {
strcpy(_location._name, partFirstLocation[_part]);
parseLocation("common");
- parseLocation(_location._name);
-
changeLocation(_location._name);
}
+void Parallaction_br::runPendingZones() {
+ Zone *z;
+
+ if (_activeZone) {
+ z = _activeZone; // speak Zone or sound
+ _activeZone = NULL;
+ runZone(z);
+ }
+
+ if (_activeZone2) {
+ z = _activeZone2; // speak Zone or sound
+ _activeZone2 = NULL;
+ runZone(z);
+ }
+}
+
+
void Parallaction_br::changeLocation(char *location) {
- runCommands(_location._commands);
+ // free open location stuff
+ clearSubtitles();
-// doLocationEnterTransition();
+ freeLocation();
+ // load new location
+ parseLocation(location);
+ runCommands(_location._commands);
+// doLocationEnterTransition();
runCommands(_location._aCommands);
+ _engineFlags &= ~kEngineChangeLocation;
}
void Parallaction_br::changeCharacter(const char *name) {