Impliment what we call 'random guesses' for Sam and Max iMUSE
svn-id: r4271
This commit is contained in:
parent
939f9314fa
commit
ecbf23da72
2 changed files with 29 additions and 10 deletions
|
@ -1652,9 +1652,10 @@ void Scumm::o6_isSoundRunning()
|
|||
{
|
||||
int snd = pop();
|
||||
|
||||
// FIXME: This fixes wak-a-rat until we figure out why
|
||||
// iMUSE fails to locate certain sounds.
|
||||
// FIXME: This fixes wak-a-rat until we correctly implement
|
||||
// sam and max iMUSE
|
||||
if (_gameId == GID_SAMNMAX && _currentRoom == 18 && snd == 23) {
|
||||
stopSound(snd);
|
||||
push(0);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1328,16 +1328,34 @@ int32 IMuseInternal::do_command(int a, int b, int c, int d, int e, int f, int g,
|
|||
return start_sound(b) ? 0 : -1;
|
||||
case 9:
|
||||
return stop_sound(b);
|
||||
|
||||
case 10:
|
||||
|
||||
return stop_all_sounds(); //FIXME
|
||||
return stop_all_sounds(); //FIXME: Sam and Max unknown
|
||||
case 11:
|
||||
return stop_all_sounds();
|
||||
case 13:
|
||||
return get_sound_status(b);
|
||||
case 14:
|
||||
return stop_sound(b); //FIXME should be something like fade off
|
||||
case 14: { // FIXME: Sam and Max command - Total guess
|
||||
int i; // Seems to work as a volume fader
|
||||
Player *player;
|
||||
|
||||
for (i = ARRAYSIZE(_players), player = _players; i != 0; i--, player++) {
|
||||
if (player->_active && player->_id == (uint16)b) {
|
||||
player->fade_vol(e, f);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
case 15: { // FIXME: Sam and Max command - Total guess
|
||||
int i; // Something to do with position?
|
||||
Player *player;
|
||||
for (i = ARRAYSIZE(_players), player = _players; i != 0; i--, player++) {
|
||||
if (player->_active && player->_id == (uint16)b) {
|
||||
player->jump(player->_track_index+1, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
case 16:
|
||||
return set_volchan(b, c);
|
||||
case 17:
|
||||
|
@ -1345,9 +1363,9 @@ int32 IMuseInternal::do_command(int a, int b, int c, int d, int e, int f, int g,
|
|||
case 18:
|
||||
return set_volchan_entry(b, c);
|
||||
case 19:
|
||||
return stop_sound(b); //FIXME
|
||||
return stop_sound(b); //FIXME: Sam and Max unknown
|
||||
case 20:
|
||||
return stop_sound(b); //FIXME
|
||||
return stop_sound(b); //FIXME: Sam and Max unknown
|
||||
case 2:
|
||||
case 3:
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue