aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/game.cpp
diff options
context:
space:
mode:
authorStrangerke2012-10-10 08:26:41 +0200
committerStrangerke2012-10-10 08:26:41 +0200
commitb164cbb571fc4e0f2a6f002760a851d8ac592540 (patch)
tree4d25f2e1f8241f6f3352fd9fb1135f5faa36dfd4 /engines/gob/game.cpp
parentb2f2f8d7b08b40e43702e8db325f8136066f10be (diff)
parent1e200620d673af4acdd2d128ed6e390df001aacf (diff)
downloadscummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.tar.gz
scummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.tar.bz2
scummvm-rg350-b164cbb571fc4e0f2a6f002760a851d8ac592540.zip
Merge branch 'master' of github.com:scummvm/scummvm into mortevielle
Conflicts: base/plugins.cpp configure
Diffstat (limited to 'engines/gob/game.cpp')
-rw-r--r--engines/gob/game.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp
index 502a440005..de0c3f2d5c 100644
--- a/engines/gob/game.cpp
+++ b/engines/gob/game.cpp
@@ -64,7 +64,7 @@ void Environments::clear() {
// Deleting unique variables, script and resources
for (uint i = 0; i < kEnvironmentCount; i++) {
- if (_environments[i].variables == _vm->_inter->_variables)
+ if (_vm->_inter && (_environments[i].variables == _vm->_inter->_variables))
continue;
if (!has(_environments[i].variables, i + 1))
@@ -167,6 +167,13 @@ bool Environments::has(Resources *resources, uint8 startEnv, int16 except) const
return false;
}
+void Environments::deleted(Variables *variables) {
+ for (uint i = 0; i < kEnvironmentCount; i++) {
+ if (_environments[i].variables == variables)
+ _environments[i].variables = 0;
+ }
+}
+
bool Environments::clearMedia(uint8 env) {
if (env >= kEnvironmentCount)
return false;
@@ -947,6 +954,10 @@ void Game::switchTotSub(int16 index, int16 function) {
_environments.get(_curEnvironment);
}
+void Game::deletedVars(Variables *variables) {
+ _environments.deleted(variables);
+}
+
void Game::clearUnusedEnvironment() {
if (!_environments.has(_script)) {
delete _script;