aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.cpp
diff options
context:
space:
mode:
authorNorbert Lange2009-08-08 19:09:30 +0000
committerNorbert Lange2009-08-08 19:09:30 +0000
commit0350a1598deea8d1af252ddd96a490699d10e2e2 (patch)
tree11557d7a87ee5da2ee20e6c13e8be7d2607f393c /engines/scumm/scumm.cpp
parentdf06592be1b4c9904acde5a843d3ab3d076c65ac (diff)
parent65a39cc2b0ebb989444330c561743ba0466c1a9c (diff)
downloadscummvm-rg350-0350a1598deea8d1af252ddd96a490699d10e2e2.tar.gz
scummvm-rg350-0350a1598deea8d1af252ddd96a490699d10e2e2.tar.bz2
scummvm-rg350-0350a1598deea8d1af252ddd96a490699d10e2e2.zip
merge with trunk
svn-id: r43134
Diffstat (limited to 'engines/scumm/scumm.cpp')
-rw-r--r--engines/scumm/scumm.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index abf9848451..9d6673d308 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -26,6 +26,7 @@
#include "common/config-manager.h"
#include "common/md5.h"
#include "common/events.h"
+#include "common/EventRecorder.h"
#include "common/system.h"
#include "gui/message.h"
@@ -135,6 +136,8 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
// Init all vars
+ _v0ObjectIndex = false;
+ _v0ObjectInInventory = false;
_imuse = NULL;
_imuseDigital = NULL;
_musicEngine = NULL;
@@ -182,6 +185,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
_mouseAndKeyboardStat = 0;
_leftBtnPressed = 0;
_rightBtnPressed = 0;
+ _lastInputScriptTime = 0;
_bootParam = 0;
_dumpScripts = false;
_debugMode = 0;
@@ -215,7 +219,6 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
_roomResource = 0;
OF_OWNER_ROOM = 0;
_verbMouseOver = 0;
- _inventoryOffset = 0;
_classData = NULL;
_actorToPrintStrFor = 0;
_sentenceNum = 0;
@@ -539,7 +542,7 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
for (int i = 0; i < ARRAYSIZE(debugChannels); ++i)
Common::addDebugChannel(debugChannels[i].flag, debugChannels[i].channel, debugChannels[i].desc);
- syst->getEventManager()->registerRandomSource(_rnd, "scumm");
+ g_eventRec.registerRandomSource(_rnd, "scumm");
}
@@ -645,6 +648,8 @@ ScummEngine_v3old::ScummEngine_v3old(OSystem *syst, const DetectorResult &dr)
ScummEngine_v2::ScummEngine_v2(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v3old(syst, dr) {
+ _inventoryOffset = 0;
+
_activeInventory = 0;
_activeObject = 0;
_activeVerb = 0;
@@ -663,7 +668,17 @@ ScummEngine_v2::ScummEngine_v2(OSystem *syst, const DetectorResult &dr)
ScummEngine_v0::ScummEngine_v0(OSystem *syst, const DetectorResult &dr)
: ScummEngine_v2(syst, dr) {
+ _verbExecuting = false;
+ _verbPickup = false;
_currentMode = 0;
+
+ _activeObject2 = 0;
+ _activeObjectIndex = 0;
+ _activeObject2Index = 0;
+ _activeInvExecute = false;
+ _activeObject2Inv = false;
+ _activeObjectObtained = false;
+ _activeObject2Obtained = false;
}
ScummEngine_v6::ScummEngine_v6(OSystem *syst, const DetectorResult &dr)
@@ -1883,7 +1898,7 @@ void ScummEngine::scummLoop(int delta) {
}
// Trigger autosave if necessary.
- if (!_saveLoadFlag && shouldPerformAutoSave(_lastSaveTime)) {
+ if (!_saveLoadFlag && shouldPerformAutoSave(_lastSaveTime) && canSaveGameStateCurrently()) {
_saveLoadSlot = 0;
sprintf(_saveLoadName, "Autosave %d", _saveLoadSlot);
_saveLoadFlag = 1;