diff options
author | Max Horn | 2002-07-15 01:38:52 +0000 |
---|---|---|
committer | Max Horn | 2002-07-15 01:38:52 +0000 |
commit | 13d1357b213fc918dbc05cfd62685f19e0e9de1c (patch) | |
tree | f4d5392ff9d73596990d6b32298509a6120b8053 | |
parent | f3e2b98c47cf8023e0788e6a922989d12a39c4b5 (diff) | |
download | scummvm-rg350-13d1357b213fc918dbc05cfd62685f19e0e9de1c.tar.gz scummvm-rg350-13d1357b213fc918dbc05cfd62685f19e0e9de1c.tar.bz2 scummvm-rg350-13d1357b213fc918dbc05cfd62685f19e0e9de1c.zip |
fixed pause mode; changed semantics of getRandomNumber slightly
svn-id: r4544
-rw-r--r-- | actor.h | 4 | ||||
-rw-r--r-- | script_v1.cpp | 4 | ||||
-rw-r--r-- | script_v2.cpp | 4 | ||||
-rw-r--r-- | scummvm.cpp | 18 |
4 files changed, 17 insertions, 13 deletions
@@ -63,7 +63,9 @@ struct CostumeData { for (int i = 0; i < 16; i++) { active[i] = 0; curpos[i] = start[i] = end[i] = frame[i] = 0xFFFF; -}}}; + } + } +}; class Actor { diff --git a/script_v1.cpp b/script_v1.cpp index b2d54d3135..422083291e 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -783,7 +783,7 @@ void Scumm::o5_actorSet() getWordVararg(args); for (i = 0; i < 16; i++) if (args[i] != 0xFF) - a->palette[i] = args[i] /* & 0x0F */; + a->palette[i] = args[i]; #endif break; case 16: /* width */ @@ -1393,7 +1393,7 @@ void Scumm::o5_getObjectState() void Scumm::o5_getRandomNr() { getResultPos(); - setResult(getRandomNumber(getVarOrDirectByte(0x80) + 1)); + setResult(getRandomNumber(getVarOrDirectByte(0x80))); } void Scumm::o5_getScriptRunning() diff --git a/script_v2.cpp b/script_v2.cpp index b8d8b3bfed..37ff8be4e9 100644 --- a/script_v2.cpp +++ b/script_v2.cpp @@ -1511,7 +1511,7 @@ void Scumm::o6_loadRoomWithEgo() void Scumm::o6_getRandomNumber() { int rnd; - rnd = getRandomNumber(pop() + 1); + rnd = getRandomNumber(pop()); _vars[VAR_V6_RANDOM_NR] = rnd; push(rnd); } @@ -1520,7 +1520,7 @@ void Scumm::o6_getRandomNumberRange() { int max = pop(); int min = pop(); - int rnd = getRandomNumber(max - min + 1) + min; + int rnd = getRandomNumberRng(min, max); _vars[VAR_V6_RANDOM_NR] = rnd; push(rnd); } diff --git a/scummvm.cpp b/scummvm.cpp index cd017ff794..3dbe9f813d 100644 --- a/scummvm.cpp +++ b/scummvm.cpp @@ -47,12 +47,12 @@ uint Scumm::getRandomNumber(uint max) /* TODO: my own random number generator */ _randSeed1 = 0xDEADBEEF * (_randSeed1 + 1); _randSeed1 = (_randSeed1 >> 13) | (_randSeed1 << 19); - return _randSeed1 % max; + return _randSeed1 % (max + 1); } uint Scumm::getRandomNumberRng(uint min, uint max) { - return getRandomNumber(max - min + 1) + min; + return getRandomNumber(max - min) + min; } @@ -1260,6 +1260,14 @@ void Scumm::waitForTimer(int msec_delay) { for(;;) { while (_system->poll_event(&event)) { + + // if newgui is running, copy event to EventList, and let the GUI handle it itself + // we might consider this approach for ScummLoop as well, and clean up the current mess + if (_newgui->isActive()) { + _newgui->handleEvent(event); + continue; + } + switch(event.event_code) { case OSystem::EVENT_KEYDOWN: if (event.kbd.keycode >= '0' && event.kbd.keycode<='9' @@ -1315,12 +1323,6 @@ void Scumm::waitForTimer(int msec_delay) { _rightBtnPressed &= ~msDown; break; } - - // if newgui is running, copy event to EventList, and let the GUI handle it itself - // we might consider this approach for ScummLoop as well, and clean up the current mess - if (_newgui->isActive()) - _newgui->handleEvent(event); - } #ifdef COMPRESSED_SOUND_FILE if (updateMP3CD() == -1) |