fixed pause mode; changed semantics of getRandomNumber slightly
svn-id: r4544
This commit is contained in:
parent
f3e2b98c47
commit
13d1357b21
4 changed files with 17 additions and 13 deletions
4
actor.h
4
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 {
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
18
scummvm.cpp
18
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue