aboutsummaryrefslogtreecommitdiff
path: root/engines/cine
diff options
context:
space:
mode:
authorEugene Sandulenko2007-09-19 13:55:05 +0000
committerEugene Sandulenko2007-09-19 13:55:05 +0000
commit77eea722afe175003baba3ed5341bfbf8cf988f6 (patch)
treeff95cd001b8929308468d69466623f0c28be476b /engines/cine
parent2254028365cf5f162bd41cf0011b4475ec608f4c (diff)
downloadscummvm-rg350-77eea722afe175003baba3ed5341bfbf8cf988f6.tar.gz
scummvm-rg350-77eea722afe175003baba3ed5341bfbf8cf988f6.tar.bz2
scummvm-rg350-77eea722afe175003baba3ed5341bfbf8cf988f6.zip
Modified patch #1738058: "Action recorder".
svn-id: r28968
Diffstat (limited to 'engines/cine')
-rw-r--r--engines/cine/cine.cpp4
-rw-r--r--engines/cine/cine.h2
-rw-r--r--engines/cine/script.cpp2
-rw-r--r--engines/cine/various.cpp2
4 files changed, 7 insertions, 3 deletions
diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp
index 31c092987b..70be3e821d 100644
--- a/engines/cine/cine.cpp
+++ b/engines/cine/cine.cpp
@@ -23,7 +23,7 @@
*
*/
-
+#include "common/events.h"
#include "common/file.h"
#include "common/savefile.h"
#include "common/config-manager.h"
@@ -62,6 +62,8 @@ CineEngine::CineEngine(OSystem *syst) : Engine(syst) {
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
g_cine = this;
+
+ syst->getEventManager()->registerRandomSource(_rnd, "cine");
}
CineEngine::~CineEngine() {
diff --git a/engines/cine/cine.h b/engines/cine/cine.h
index 209fb926ea..026fb3e54c 100644
--- a/engines/cine/cine.h
+++ b/engines/cine/cine.h
@@ -85,6 +85,8 @@ public:
const CINEGameDescription *_gameDescription;
Common::File _partFileHandle;
+ Common::RandomSource _rnd;
+
private:
void initialize(void);
bool makeLoad(char *saveName);
diff --git a/engines/cine/script.cpp b/engines/cine/script.cpp
index 3b469eda60..813eb0c376 100644
--- a/engines/cine/script.cpp
+++ b/engines/cine/script.cpp
@@ -909,7 +909,7 @@ void o1_loadVar() {
break;
case 5:
debugC(5, kCineDebugScript, "Line: %d: var[%d] = rand mod %d", _currentLine, varIdx, dataIdx);
- _currentScriptElement->localVars[varIdx] = rand() % dataIdx;
+ _currentScriptElement->localVars[varIdx] = g_cine->_rnd.getRandomNumber(dataIdx - 1);
break;
case 8:
debugC(5, kCineDebugScript, "Line: %d: var[%d] = file[%d].packedSize", _currentLine, varIdx, dataIdx);
diff --git a/engines/cine/various.cpp b/engines/cine/various.cpp
index e8b59266db..378437babf 100644
--- a/engines/cine/various.cpp
+++ b/engines/cine/various.cpp
@@ -2355,7 +2355,7 @@ void drawFailureMessage(byte cmd) {
int16 localY;
int16 localWidth;
- byte msgIdx = cmd * 4 + rand() % 4;
+ byte msgIdx = cmd * 4 + g_cine->_rnd.getRandomNumber(3);
const char *messagePtr = failureMessages[msgIdx];
int len = strlen(messagePtr);