diff -ur ScummVM-cvs20030722/scummvm/sky/intro.cpp ScummVM-cvs20030722+hack/scummvm/sky/intro.cpp
old
|
new
|
|
40 | 40 | #define WAITVOICE 13 |
41 | 41 | #define LOADBG 14 // load new background sound |
42 | 42 | #define PLAYBG 15 // play background sound |
| 43 | #define LOOPBG 16 // loop background sound |
| 44 | #define STOPBG 17 // stop background sound |
43 | 45 | #define SEQEND 65535 // end of intro sequence |
44 | 46 | |
45 | 47 | #define IC_PREPARE_TEXT 20 // commands used in COMMANDFLIRT block |
… |
… |
|
235 | 237 | uint16 SkyIntro::_cdIntroSeq[] = { |
236 | 238 | PLAYVOICE, 59500, |
237 | 239 | LOADBG, 59499, |
238 | | PLAYBG, |
| 240 | LOOPBG, |
239 | 241 | WAITVOICE, |
240 | 242 | PLAYVOICE, 59504, |
241 | | PLAYBG, |
242 | 243 | SHOWSCREEN, CD_1_LOG, |
243 | 244 | FADEUP, CD_PAL, |
244 | 245 | BGFLIRT, CD_1, |
245 | 246 | WAITVOICE, |
246 | 247 | PLAYVOICE, CDV_02, |
247 | | PLAYBG, |
248 | 248 | WAITVOICE, |
249 | 249 | STOPFLIRT, |
250 | 250 | BGFLIRT, CD_2, |
251 | 251 | PLAYVOICE, CDV_03, |
252 | | PLAYBG, |
253 | 252 | WAITVOICE, |
254 | 253 | PLAYVOICE, CDV_04, |
255 | | PLAYBG, |
256 | 254 | WAITFLIRT, |
257 | 255 | WAITVOICE, |
258 | 256 | PLAYVOICE, CDV_05, |
259 | | PLAYBG, |
260 | 257 | DELAY, 2000, |
261 | 258 | BGFLIRT, CD_3, |
262 | 259 | WAITVOICE, |
263 | 260 | PLAYVOICE, CDV_06, |
264 | | PLAYBG, |
265 | 261 | WAITFLIRT, |
266 | 262 | WAITVOICE, |
267 | 263 | PLAYVOICE, CDV_07, |
268 | 264 | BGFLIRT, CD_5, |
269 | | PLAYBG, |
270 | 265 | WAITVOICE, |
271 | 266 | PLAYVOICE, CDV_08, |
272 | | PLAYBG, |
273 | 267 | WAITVOICE, |
274 | 268 | PLAYVOICE, CDV_09, |
275 | | PLAYBG, |
276 | 269 | WAITFLIRT, |
277 | 270 | WAITVOICE, |
278 | 271 | PLAYVOICE, CDV_10, |
279 | 272 | BGFLIRT, CD_7, |
280 | | PLAYBG, |
281 | 273 | WAITVOICE, |
282 | 274 | PLAYVOICE, CDV_11, |
283 | | PLAYBG, |
284 | 275 | WAITFLIRT, |
285 | 276 | FADEDOWN, |
286 | 277 | SHOWSCREEN, CD_11_LOG, |
287 | 278 | FADEUP, CD_11_PAL, |
288 | 279 | WAITVOICE, |
289 | 280 | PLAYVOICE, CDV_12, |
290 | | PLAYBG, |
291 | 281 | DELAY, 1600, |
292 | 282 | BGFLIRT, CD_11, |
293 | 283 | WAITVOICE, |
294 | 284 | PLAYVOICE, CDV_13, |
295 | 285 | WAITVOICE, |
296 | | PLAYBG, |
297 | 286 | WAITFLIRT, |
298 | 287 | WAITVOICE, |
299 | | LOADBG, 59498, // quite heli |
300 | 288 | PLAYVOICE, CDV_14, |
| 289 | LOADBG, 59498, // fade-in heli |
301 | 290 | PLAYBG, |
302 | 291 | DOFLIRT, CD_13, |
303 | 292 | WAITVOICE, |
304 | 293 | PLAYVOICE, CDV_15, |
305 | | PLAYBG, |
306 | 294 | FADEDOWN, |
307 | 295 | SHOWSCREEN, CD_15_LOG, |
308 | 296 | FADEUP, CD_15_PAL, |
309 | 297 | WAITVOICE, |
| 298 | LOADBG, 59496, // quiet heli |
| 299 | LOOPBG, |
310 | 300 | PLAYVOICE, CDV_16, |
311 | | PLAYBG, |
312 | 301 | WAITVOICE, |
313 | 302 | PLAYVOICE, CDV_17, |
314 | 303 | DELAY, 2000, |
… |
… |
|
316 | 305 | WAITVOICE, |
317 | 306 | BGFLIRT, CD_17, |
318 | 307 | PLAYVOICE, CDV_18, |
319 | | PLAYBG, |
| 308 | LOADBG, 59497, // loud heli |
| 309 | LOOPBG, |
320 | 310 | WAITFLIRT, |
321 | 311 | WAITVOICE, |
322 | | LOADBG, 59496, // quiet heli |
323 | 312 | FADEDOWN, |
324 | 313 | SHOWSCREEN, CD_19_LOG, |
325 | 314 | FADEUP, CD_19_PAL, |
326 | 315 | PLAYVOICE, CDV_19, |
327 | | PLAYBG, |
328 | 316 | WAITVOICE, |
329 | | LOADBG, 59496, |
330 | 317 | PLAYVOICE, CDV_20, |
331 | | PLAYBG, |
332 | 318 | FADEDOWN, |
333 | 319 | SHOWSCREEN, CD_20_LOG, |
334 | 320 | FADEUP, CD_19_PAL, |
335 | | PLAYBG, |
336 | 321 | WAITVOICE, |
337 | 322 | PLAYVOICE, CDV_21, |
338 | | PLAYBG, |
339 | 323 | FADEDOWN, |
340 | 324 | SHOWSCREEN, CD_21_LOG, |
341 | 325 | FADEUP, CD_19_PAL, |
342 | 326 | WAITVOICE, |
343 | | LOADBG, 59494, // heli whine |
344 | 327 | PLAYVOICE, CDV_22, |
| 328 | LOADBG, 59494, // heli whine |
345 | 329 | PLAYBG, |
346 | 330 | WAITVOICE, |
347 | 331 | PLAYVOICE, CDV_23, |
… |
… |
|
729 | 713 | if (!escDelay(200)) |
730 | 714 | return false; |
731 | 715 | vData = _skyDisk->loadFile(*data++, NULL); |
732 | | _mixer->playRaw(&_voice, vData, _skyDisk->_lastLoadedFileSize, 11025, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_UNSIGNED); |
| 716 | // HACK: Fill the header with silence. We should |
| 717 | // probably use _skySound instead of calling playRaw() |
| 718 | // directly, but this will have to do for now. |
| 719 | memset(vData, 127, sizeof(struct dataFileHeader)); |
| 720 | _mixer->playRaw(&_voice, vData, _skyDisk->_lastLoadedFileSize, 11025, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_UNSIGNED, SOUND_VOICE); |
733 | 721 | return true; |
734 | 722 | case WAITVOICE: |
735 | 723 | while (_voice) |
… |
… |
|
737 | 725 | return false; |
738 | 726 | return true; |
739 | 727 | case LOADBG: |
740 | | if (_bgBuf) { |
741 | | if (_bgSfx) { |
742 | | data++; |
743 | | return true; |
744 | | } |
| 728 | _mixer->stopID(SOUND_BG); |
| 729 | if (_bgBuf) |
745 | 730 | free(_bgBuf); |
746 | | } |
747 | 731 | _bgBuf = _skyDisk->loadFile(*data++, NULL); |
748 | 732 | _bgSize = _skyDisk->_lastLoadedFileSize; |
749 | 733 | return true; |
| 734 | case LOOPBG: |
| 735 | _mixer->stopID(SOUND_BG); |
| 736 | _mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED | SoundMixer::FLAG_LOOP, SOUND_BG); |
| 737 | return true; |
750 | 738 | case PLAYBG: |
751 | | _mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED); |
| 739 | _mixer->stopID(SOUND_BG); |
| 740 | _mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED, SOUND_BG); |
| 741 | return true; |
| 742 | case STOPBG: |
| 743 | _mixer->stopID(SOUND_BG); |
752 | 744 | return true; |
753 | 745 | default: |
754 | 746 | error("Unknown intro command %X", command); |
diff -ur ScummVM-cvs20030722/scummvm/sky/sound.cpp ScummVM-cvs20030722+hack/scummvm/sky/sound.cpp
old
|
new
|
|
33 | 33 | #pragma START_PACK_STRUCTS |
34 | 34 | #endif |
35 | 35 | |
36 | | enum { |
37 | | SOUND_CH0 = 0, |
38 | | SOUND_CH1 = 1, |
39 | | SOUND_BG = 2, |
40 | | SOUND_VOICE = 3, |
41 | | SOUND_SPEECH = 4 |
42 | | }; |
43 | | |
44 | 36 | struct RoomList { |
45 | 37 | uint8 room; |
46 | 38 | uint8 adlibVolume; |
diff -ur ScummVM-cvs20030722/scummvm/sky/sound.h ScummVM-cvs20030722+hack/scummvm/sky/sound.h
old
|
new
|
|
26 | 26 | #include "sky/disk.h" |
27 | 27 | #include "common/engine.h" |
28 | 28 | |
| 29 | enum { |
| 30 | SOUND_CH0 = 0, |
| 31 | SOUND_CH1 = 1, |
| 32 | SOUND_BG = 2, |
| 33 | SOUND_VOICE = 3, |
| 34 | SOUND_SPEECH = 4 |
| 35 | }; |
| 36 | |
29 | 37 | struct SfxQueue { |
30 | 38 | uint8 count, fxNo, chan, vol; |
31 | 39 | }; |