Ticket #8263: sky-intro.diff

File sky-intro.diff, 5.1 KB (added by eriktorbjorn, 21 years ago)

Patch against a July 22 CVS snapshot

  • scummvm/sky/intro.cpp

    diff -ur ScummVM-cvs20030722/scummvm/sky/intro.cpp ScummVM-cvs20030722+hack/scummvm/sky/intro.cpp
    old new  
    4040#define WAITVOICE               13
    4141#define LOADBG                  14 // load new background sound
    4242#define PLAYBG                  15 // play background sound
     43#define LOOPBG                  16 // loop background sound
     44#define STOPBG                  17 // stop background sound
    4345#define SEQEND           65535 // end of intro sequence
    4446
    4547#define IC_PREPARE_TEXT 20 // commands used in COMMANDFLIRT block
     
    235237uint16 SkyIntro::_cdIntroSeq[] = {
    236238        PLAYVOICE,      59500,
    237239        LOADBG,         59499,
    238         PLAYBG,
     240        LOOPBG,
    239241        WAITVOICE,
    240242        PLAYVOICE,      59504,
    241         PLAYBG,
    242243        SHOWSCREEN,     CD_1_LOG,
    243244        FADEUP,         CD_PAL,
    244245        BGFLIRT,        CD_1,
    245246                WAITVOICE,
    246247                PLAYVOICE,      CDV_02,
    247                 PLAYBG,
    248248                WAITVOICE,
    249249        STOPFLIRT,
    250250        BGFLIRT,        CD_2,
    251251                PLAYVOICE,      CDV_03,
    252                 PLAYBG,
    253252                WAITVOICE,
    254253                PLAYVOICE,      CDV_04,
    255                 PLAYBG,
    256254        WAITFLIRT,
    257255        WAITVOICE,
    258256        PLAYVOICE,      CDV_05,
    259         PLAYBG,
    260257        DELAY,          2000,
    261258        BGFLIRT,        CD_3,
    262259                WAITVOICE,
    263260                PLAYVOICE,      CDV_06,
    264                 PLAYBG,
    265261        WAITFLIRT,
    266262        WAITVOICE,
    267263        PLAYVOICE,      CDV_07,
    268264        BGFLIRT,        CD_5,
    269                 PLAYBG,
    270265                WAITVOICE,
    271266                PLAYVOICE,      CDV_08,
    272                 PLAYBG,
    273267                WAITVOICE,
    274268                PLAYVOICE,      CDV_09,
    275                 PLAYBG,
    276269        WAITFLIRT,
    277270        WAITVOICE,
    278271        PLAYVOICE,      CDV_10,
    279272        BGFLIRT,        CD_7,
    280                 PLAYBG,
    281273                WAITVOICE,
    282274                PLAYVOICE,      CDV_11,
    283                 PLAYBG,
    284275        WAITFLIRT,
    285276        FADEDOWN,
    286277        SHOWSCREEN,     CD_11_LOG,
    287278        FADEUP,         CD_11_PAL,
    288279        WAITVOICE,
    289280        PLAYVOICE,      CDV_12,
    290         PLAYBG,
    291281        DELAY,          1600,
    292282        BGFLIRT,        CD_11,
    293283                WAITVOICE,
    294284                PLAYVOICE,      CDV_13,
    295285                WAITVOICE,
    296                 PLAYBG,
    297286    WAITFLIRT,
    298287        WAITVOICE,
    299         LOADBG,         59498, // quite heli
    300288        PLAYVOICE,      CDV_14,
     289        LOADBG,         59498, // fade-in heli
    301290        PLAYBG,
    302291        DOFLIRT,        CD_13,
    303292        WAITVOICE,
    304293    PLAYVOICE,  CDV_15,
    305         PLAYBG,
    306294        FADEDOWN,
    307295        SHOWSCREEN,     CD_15_LOG,
    308296        FADEUP,         CD_15_PAL,
    309297        WAITVOICE,
     298        LOADBG,         59496, // quiet heli
     299        LOOPBG,
    310300        PLAYVOICE,      CDV_16,
    311         PLAYBG,
    312301        WAITVOICE,
    313302        PLAYVOICE,      CDV_17,
    314303        DELAY,          2000,
     
    316305        WAITVOICE,
    317306        BGFLIRT,        CD_17,
    318307                PLAYVOICE,      CDV_18,
    319                 PLAYBG,
     308        LOADBG,         59497, // loud heli
     309        LOOPBG,
    320310        WAITFLIRT,
    321311        WAITVOICE,
    322         LOADBG,         59496, // quiet heli
    323312        FADEDOWN,
    324313        SHOWSCREEN,     CD_19_LOG,
    325314        FADEUP,         CD_19_PAL,
    326315        PLAYVOICE,      CDV_19,
    327         PLAYBG,
    328316        WAITVOICE,
    329         LOADBG,         59496,
    330317        PLAYVOICE,      CDV_20,
    331         PLAYBG,
    332318        FADEDOWN,
    333319        SHOWSCREEN,     CD_20_LOG,
    334320        FADEUP,         CD_19_PAL,
    335         PLAYBG,
    336321        WAITVOICE,
    337322        PLAYVOICE,      CDV_21,
    338         PLAYBG,
    339323        FADEDOWN,
    340324        SHOWSCREEN,     CD_21_LOG,
    341325        FADEUP,         CD_19_PAL,
    342326        WAITVOICE,
    343         LOADBG,         59494, // heli whine
    344327        PLAYVOICE,      CDV_22,
     328        LOADBG,         59494, // heli whine
    345329    PLAYBG,
    346330        WAITVOICE,
    347331        PLAYVOICE,      CDV_23,
     
    729713                        if (!escDelay(200))
    730714                                return false;
    731715                        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);
    733721                        return true;
    734722                case WAITVOICE:
    735723                        while (_voice)
     
    737725                                        return false;
    738726                        return true;
    739727                case LOADBG:
    740                         if (_bgBuf) {
    741                                 if (_bgSfx) {
    742                                         data++;
    743                                         return true;
    744                                 }
     728                        _mixer->stopID(SOUND_BG);
     729                        if (_bgBuf)
    745730                                free(_bgBuf);
    746                         }
    747731                        _bgBuf = _skyDisk->loadFile(*data++, NULL);
    748732                        _bgSize = _skyDisk->_lastLoadedFileSize;
    749733                        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;
    750738                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);
    752744                        return true;
    753745                default:
    754746                        error("Unknown intro command %X", command);
  • scummvm/sky/sound.cpp

    diff -ur ScummVM-cvs20030722/scummvm/sky/sound.cpp ScummVM-cvs20030722+hack/scummvm/sky/sound.cpp
    old new  
    3333#pragma START_PACK_STRUCTS
    3434#endif
    3535
    36 enum {
    37         SOUND_CH0    = 0,
    38         SOUND_CH1    = 1,
    39         SOUND_BG     = 2,
    40         SOUND_VOICE  = 3,
    41         SOUND_SPEECH = 4
    42 };
    43 
    4436struct RoomList {
    4537        uint8 room;
    4638        uint8 adlibVolume;
  • scummvm/sky/sound.h

    diff -ur ScummVM-cvs20030722/scummvm/sky/sound.h ScummVM-cvs20030722+hack/scummvm/sky/sound.h
    old new  
    2626#include "sky/disk.h"
    2727#include "common/engine.h"
    2828
     29enum {
     30        SOUND_CH0    = 0,
     31        SOUND_CH1    = 1,
     32        SOUND_BG     = 2,
     33        SOUND_VOICE  = 3,
     34        SOUND_SPEECH = 4
     35};
     36
    2937struct SfxQueue {
    3038        uint8 count, fxNo, chan, vol;
    3139};