diff options
Diffstat (limited to 'engines/cine')
-rw-r--r-- | engines/cine/cine.cpp | 4 | ||||
-rw-r--r-- | engines/cine/cine.h | 2 | ||||
-rw-r--r-- | engines/cine/script.cpp | 2 | ||||
-rw-r--r-- | engines/cine/various.cpp | 2 |
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); |