Opened 21 years ago

Closed 20 years ago

Last modified 20 years ago

#1091 closed defect (fixed)

SAM: Conroy doesn't stop singing when escaping cutscene

Reported by: eriktorbjorn Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Sam and Max


English CD "talkie" version, latest CVS snapshot.

If I hit escape during the Conroy cutscene, after he has started singing, the cutscene ends in the sense that Conroy leaves the stage. But his song keeps going to the bitter end.

(I thought for sure that this had to be a regression, but apparently it isn't. I guess I must have hit escape *before* he started singing every time before.)

Ticket imported from: #780922. Ticket imported from: bugs/1091.

Attachments (3)

samnmax.s12 (67.6 KB ) - added by eriktorbjorn 21 years ago.
Savegame right before going to Bumpusville
sound.txt (2.6 KB ) - added by Kirben 20 years ago.
song.txt (3.2 KB ) - added by Kirben 20 years ago.
New Patch

Download all attachments as: .zip

Change History (13)

by eriktorbjorn, 21 years ago

Attachment: samnmax.s12 added

Savegame right before going to Bumpusville

comment:1 by Kirben, 20 years ago

It seems like sound calls via unkMessage1() should only stop the previous sound, if VAR(VAR_V6_SOUNDMODE) = 1. But that is based on just looking at the Conroy Bumpus song, I don't know what other areas require the previous sounds to be stopped, so this could cause regressions. Please try the attached patch and see if it causes regressions in other scenes that would be effected.

comment:2 by Kirben, 20 years ago

Owner: set to Kirben

by Kirben, 20 years ago

Attachment: sound.txt added


comment:3 by eriktorbjorn, 20 years ago

The only case I can remember off-hand in Sam & Max where I think the previous sound effect ought to be stopped is early in the game, when some guy gets thrown out of Flint's office. With this patch, the "stretching" sound isn't stopped.

comment:4 by eriktorbjorn, 20 years ago

I forgot to say that I have no idea how this scene sounds with the original interpreter, so I can't say for certain what is right and what is wrong.

by Kirben, 20 years ago

Attachment: song.txt added

New Patch

comment:5 by Kirben, 20 years ago

I think VAR(9) refers to the sound channel. So we should keep sound effects on two different channels, stopping only the sound channel required and not all sound effects. Try this new patch.

comment:6 by eriktorbjorn, 20 years ago

Seems to work. At least for the two particular scenes we've discussed so far.

comment:7 by fingolfin, 20 years ago

Any particular reason you added two PlayingSoundHandle vars, instead of using sound IDs (like the code currently does) ? I.e. you could simply use two different IDs (like 77777 and 77778) depending on the channel. Something like this: if (mode == 1 && (_vm->_gameId == GID_TENTACLE || (_vm->_gameId == GID_SAMNMAX))) { id = 777777 + _curSndMode; _vm->_mixer->stopID(id); } Also, since you yourself say it refers to a sound *channel*, why not name the vars accordingly? Instead of "_curSndMode" call it "_talk_sound_channel" (that way it'll also match the name of the other "talk_sound_*" variables).

comment:8 by Kirben, 20 years ago

Status: newclosed

comment:9 by Kirben, 20 years ago

Thanks for the suggestions, they made the patch much more simpler. I added altered patch to ScummVM cvs.

comment:10 by Kirben, 20 years ago

Resolution: fixed
Note: See TracTickets for help on using tickets.