aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2002-07-15 01:38:52 +0000
committerMax Horn2002-07-15 01:38:52 +0000
commit13d1357b213fc918dbc05cfd62685f19e0e9de1c (patch)
treef4d5392ff9d73596990d6b32298509a6120b8053
parentf3e2b98c47cf8023e0788e6a922989d12a39c4b5 (diff)
downloadscummvm-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.h4
-rw-r--r--script_v1.cpp4
-rw-r--r--script_v2.cpp4
-rw-r--r--scummvm.cpp18
4 files changed, 17 insertions, 13 deletions
diff --git a/actor.h b/actor.h
index d2a4f8fdf2..461af3a620 100644
--- a/actor.h
+++ b/actor.h
@@ -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)