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++) {
|
for (int i = 0; i < 16; i++) {
|
||||||
active[i] = 0;
|
active[i] = 0;
|
||||||
curpos[i] = start[i] = end[i] = frame[i] = 0xFFFF;
|
curpos[i] = start[i] = end[i] = frame[i] = 0xFFFF;
|
||||||
}}};
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class Actor {
|
class Actor {
|
||||||
|
|
||||||
|
|
|
@ -783,7 +783,7 @@ void Scumm::o5_actorSet()
|
||||||
getWordVararg(args);
|
getWordVararg(args);
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
if (args[i] != 0xFF)
|
if (args[i] != 0xFF)
|
||||||
a->palette[i] = args[i] /* & 0x0F */;
|
a->palette[i] = args[i];
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 16: /* width */
|
case 16: /* width */
|
||||||
|
@ -1393,7 +1393,7 @@ void Scumm::o5_getObjectState()
|
||||||
void Scumm::o5_getRandomNr()
|
void Scumm::o5_getRandomNr()
|
||||||
{
|
{
|
||||||
getResultPos();
|
getResultPos();
|
||||||
setResult(getRandomNumber(getVarOrDirectByte(0x80) + 1));
|
setResult(getRandomNumber(getVarOrDirectByte(0x80)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scumm::o5_getScriptRunning()
|
void Scumm::o5_getScriptRunning()
|
||||||
|
|
|
@ -1511,7 +1511,7 @@ void Scumm::o6_loadRoomWithEgo()
|
||||||
void Scumm::o6_getRandomNumber()
|
void Scumm::o6_getRandomNumber()
|
||||||
{
|
{
|
||||||
int rnd;
|
int rnd;
|
||||||
rnd = getRandomNumber(pop() + 1);
|
rnd = getRandomNumber(pop());
|
||||||
_vars[VAR_V6_RANDOM_NR] = rnd;
|
_vars[VAR_V6_RANDOM_NR] = rnd;
|
||||||
push(rnd);
|
push(rnd);
|
||||||
}
|
}
|
||||||
|
@ -1520,7 +1520,7 @@ void Scumm::o6_getRandomNumberRange()
|
||||||
{
|
{
|
||||||
int max = pop();
|
int max = pop();
|
||||||
int min = pop();
|
int min = pop();
|
||||||
int rnd = getRandomNumber(max - min + 1) + min;
|
int rnd = getRandomNumberRng(min, max);
|
||||||
_vars[VAR_V6_RANDOM_NR] = rnd;
|
_vars[VAR_V6_RANDOM_NR] = rnd;
|
||||||
push(rnd);
|
push(rnd);
|
||||||
}
|
}
|
||||||
|
|
18
scummvm.cpp
18
scummvm.cpp
|
@ -47,12 +47,12 @@ uint Scumm::getRandomNumber(uint max)
|
||||||
/* TODO: my own random number generator */
|
/* TODO: my own random number generator */
|
||||||
_randSeed1 = 0xDEADBEEF * (_randSeed1 + 1);
|
_randSeed1 = 0xDEADBEEF * (_randSeed1 + 1);
|
||||||
_randSeed1 = (_randSeed1 >> 13) | (_randSeed1 << 19);
|
_randSeed1 = (_randSeed1 >> 13) | (_randSeed1 << 19);
|
||||||
return _randSeed1 % max;
|
return _randSeed1 % (max + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint Scumm::getRandomNumberRng(uint min, uint max)
|
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(;;) {
|
for(;;) {
|
||||||
while (_system->poll_event(&event)) {
|
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) {
|
switch(event.event_code) {
|
||||||
case OSystem::EVENT_KEYDOWN:
|
case OSystem::EVENT_KEYDOWN:
|
||||||
if (event.kbd.keycode >= '0' && event.kbd.keycode<='9'
|
if (event.kbd.keycode >= '0' && event.kbd.keycode<='9'
|
||||||
|
@ -1315,12 +1323,6 @@ void Scumm::waitForTimer(int msec_delay) {
|
||||||
_rightBtnPressed &= ~msDown;
|
_rightBtnPressed &= ~msDown;
|
||||||
break;
|
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
|
#ifdef COMPRESSED_SOUND_FILE
|
||||||
if (updateMP3CD() == -1)
|
if (updateMP3CD() == -1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue