diff options
Diffstat (limited to 'engines/kyra/staticres.cpp')
-rw-r--r-- | engines/kyra/staticres.cpp | 676 |
1 files changed, 211 insertions, 465 deletions
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index 0c06bd4035..d28fc573f7 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -35,7 +35,7 @@ namespace Kyra { -#define RESFILE_VERSION 17 +#define RESFILE_VERSION 18 bool StaticResource::checkKyraDat() { Common::File kyraDat; @@ -211,17 +211,47 @@ bool StaticResource::init() { // PALETTE table { kPaletteList, kPaletteTable, "1 33 PALTABLE" }, + // AUDIO files + { kAudioTracks, kStringList, "TRACKS.TXT" }, + { kAudioTracksIntro, kStringList, "TRACKSINT.TXT" }, + // FM-TOWNS specific - { kKyra1TownsSFXTable, kRawData, "SFXTABLE" }, + { kKyra1TownsSFXwdTable, kRawData, "SFXWDTABLE" }, + { kKyra1TownsSFXbtTable, kRawData, "SFXBTTABLE" }, + { kKyra1TownsCDATable, kRawData, "CDATABLE" }, { kCreditsStrings, kRawData, "CREDITS" }, { 0, 0, 0 } }; + static const FilenameTable kyra2StaticRes[] = { + // Sequence Player + { k2SeqplayPakFiles, kStringList, "S_PAKFILES.TXT" }, + { k2SeqplayCredits, kRawData, "S_CREDITS.TXT" }, + { k2SeqplayStrings, kLanguageList, "S_STRINGS." }, + { k2SeqplaySfxFiles, kStringList, "S_SFXFILES.TXT" }, + { k2SeqplayTlkFiles, kLanguageList, "S_TLKFILES." }, + { k2SeqplaySeqData, kRawData, "S_DATA.SEQ" }, + { k2SeqplayIntroTracks, kStringList, "S_INTRO.TRA" }, + { k2SeqplayFinaleTracks, kStringList, "S_FINALE.TRA" }, + { k2SeqplayIntroCDA, kRawData, "S_INTRO.CDA" }, + { k2SeqplayFinaleCDA, kRawData, "S_FINALE.CDA" }, + + // Ingame + { k2IngamePakFiles, kStringList, "I_PAKFILES.TXT" }, + { k2IngameTracks, kStringList, "I_TRACKS.TRA" }, + { k2IngameCDA, kRawData, "I_TRACKS.CDA" }, + + { 0, 0, 0 } + }; + if (_vm->game() == GI_KYRA1) { _builtIn = 0; _filenameTable = kyra1StaticRes; - } else if (_vm->game() == GI_KYRA2 || _vm->game() == GI_KYRA3) { + } else if (_vm->game() == GI_KYRA2) { + _builtIn = 0; + _filenameTable = kyra2StaticRes; + } else if (_vm->game() == GI_KYRA3) { return true; } else { error("unknown game ID"); @@ -601,6 +631,11 @@ void StaticResource::freePaletteTable(void *&ptr, int &size) { uint8 *StaticResource::getFile(const char *name, int &size) { char buffer[64]; const char *ext = ""; + if (_vm->gameFlags().gameID == GI_KYRA2) + ext = ".K2"; + snprintf(buffer, 64, "%s%s", name, ext); + ext = ""; + if (_vm->gameFlags().isTalkie) ext = ".CD"; else if (_vm->gameFlags().isDemo) @@ -609,7 +644,7 @@ uint8 *StaticResource::getFile(const char *name, int &size) { ext = ".TNS"; else if (_vm->gameFlags().platform == Common::kPlatformAmiga) ext = ".AMG"; - snprintf(buffer, 64, "%s%s", name, ext); + strcat(buffer, ext); uint32 tempSize = 0; uint8 *data = _vm->resource()->fileData(buffer, &tempSize); size = tempSize; @@ -680,6 +715,10 @@ void KyraEngine_v1::initStaticResource() { _guiStrings = _staticres->loadStrings(kGUIStrings, _guiStringsSize); _configStrings = _staticres->loadStrings(kConfigStrings, _configStringsSize); + _soundFiles = _staticres->loadStrings(kAudioTracks, _soundFilesSize); + _soundFilesIntro = _staticres->loadStrings(kAudioTracksIntro, _soundFilesIntroSize); + _cdaTrackTable = (const int32*) _staticres->loadRawData(kKyra1TownsCDATable, _cdaTrackTableSize); + // copied static res // room list @@ -707,6 +746,20 @@ void KyraEngine_v1::initStaticResource() { _staticres->unloadId(kDefaultShapes); } + + // audio data tables + static const AudioDataStruct soundData_PC[] = { + { _soundFilesIntro, _soundFilesIntroSize, 0, 0 }, + { _soundFiles, _soundFilesSize, 0, 0 }, + { 0, 0, 0, 0} + }; + + static const AudioDataStruct soundData_TOWNS[] = { + { _soundFiles, _soundFilesSize, _cdaTrackTable, _cdaTrackTableSize }, + { _soundFiles, _soundFilesSize, _cdaTrackTable, _cdaTrackTableSize }, + { 0, 0, 0, 0} + }; + _soundData = (_flags.platform == Common::kPlatformPC) ? soundData_PC : soundData_TOWNS; } void KyraEngine_v1::loadMouseShapes() { @@ -854,6 +907,160 @@ void KyraEngine_v1::loadMainScreen(int page) { _screen->copyRegion(0, 0, 0, 0, 320, 200, page, 0); } +void KyraEngine_v2::initStaticResource() { + int tmp = 0; + + _sequencePakList = _staticres->loadStrings(k2SeqplayPakFiles, _sequencePakListSize); + _ingamePakList = _staticres->loadStrings(k2IngamePakFiles, _ingamePakListSize); + _sequenceStrings = _staticres->loadStrings(k2SeqplayStrings, _sequenceStringsSize); + _sequenceSoundList = _staticres->loadStrings(k2SeqplaySfxFiles, _sequenceSoundListSize); + _musicFileListIntro = _staticres->loadStrings(k2SeqplayIntroTracks, _musicFileListIntroSize); + _musicFileListIngame = _staticres->loadStrings(k2IngameTracks, _musicFileListIngameSize); + _musicFileListFinale = _staticres->loadStrings(k2SeqplayFinaleTracks, _musicFileListFinaleSize); + _cdaTrackTableIntro = _staticres->loadRawData(k2SeqplayIntroCDA, _cdaTrackTableIntroSize); + _cdaTrackTableIngame = _staticres->loadRawData(k2IngameCDA, _cdaTrackTableIngameSize); + _cdaTrackTableFinale = _staticres->loadRawData(k2SeqplayFinaleCDA, _cdaTrackTableFinaleSize); + + // replace sequence talkie files with localized versions and cut off .voc + // suffix from voc files so as to allow compression specific file extensions + // + // FIXME/HACK: this alltogether looks like quite a hack, we should think of making a copy + // of _sequenceSoundList instead of casting away const. + const char* const* tlkfiles = _staticres->loadStrings(k2SeqplayTlkFiles, tmp); + for (int i = 0; i < _sequenceSoundListSize; i++) { + uint32 len = strlen(_sequenceSoundList[i]); + if (_flags.platform == Common::kPlatformPC) + len -= 4; + + if (tlkfiles) { + for (int ii = 0; ii < tmp; ii++) { + if (!scumm_stricmp(&_sequenceSoundList[i][1], &tlkfiles[ii][1])) + strcpy(const_cast<char*>(_sequenceSoundList[i]), tlkfiles[ii]); + } + } + + const_cast<char*>(_sequenceSoundList[i])[len] = 0; + } + tlkfiles = 0; + _staticres->unloadId(k2SeqplayTlkFiles); + + // assign music data + static const char *fmtMusicFileListIntro[] = { "intro" }; + static const char *fmtMusicFileListFinale[] = { "finale" }; + static const char *fmtMusicFileListIngame[] = { "k2" }; + + static const AudioDataStruct soundData_PC[] = { + { _musicFileListIntro, _musicFileListIntroSize, 0, 0 }, + { _musicFileListIngame, _musicFileListIngameSize, 0, 0}, + { _musicFileListFinale, _musicFileListIntroSize, 0, 0 } + }; + + static const AudioDataStruct soundData_TOWNS[] = { + { fmtMusicFileListIntro, 1, _cdaTrackTableIntro, _cdaTrackTableIntroSize >> 1 }, + { fmtMusicFileListIngame, 1, _cdaTrackTableIngame, _cdaTrackTableIngameSize >> 1 }, + { fmtMusicFileListFinale, 1, _cdaTrackTableFinale, _cdaTrackTableFinaleSize >> 1 } + }; + _soundData = (_flags.platform == Common::kPlatformPC) ? soundData_PC : soundData_TOWNS; + + // setup sequence data + const uint8 *seqData = _staticres->loadRawData(k2SeqplaySeqData, tmp); + + static const Seqproc hofSequenceCallbacks[] = { 0, + &KyraEngine_v2::seq_introWestwood, + &KyraEngine_v2::seq_introTitle, &KyraEngine_v2::seq_introOverview, + &KyraEngine_v2::seq_introLibrary, &KyraEngine_v2::seq_introHand, + &KyraEngine_v2::seq_introPoint, &KyraEngine_v2::seq_introZanfaun, + &KyraEngine_v2::seq_finaleFunters, &KyraEngine_v2::seq_finaleFerb, + &KyraEngine_v2::seq_finaleFish, &KyraEngine_v2::seq_finaleFheep, + &KyraEngine_v2::seq_finaleFarmer, &KyraEngine_v2::seq_finaleFuards, + &KyraEngine_v2::seq_finaleFirates, &KyraEngine_v2::seq_finaleFrash + }; + + static const Seqproc hofNestedSequenceCallbacks[] = { + &KyraEngine_v2::seq_finaleFiggle, &KyraEngine_v2::seq_introOver1, + &KyraEngine_v2::seq_introOver2, &KyraEngine_v2::seq_introForest, + &KyraEngine_v2::seq_introDragon, &KyraEngine_v2::seq_introDarm, + &KyraEngine_v2::seq_introLibrary2, &KyraEngine_v2::seq_introLibrary2, + &KyraEngine_v2::seq_introMarco, &KyraEngine_v2::seq_introHand1a, + &KyraEngine_v2::seq_introHand1b, &KyraEngine_v2::seq_introHand1c, + &KyraEngine_v2::seq_introHand2, &KyraEngine_v2::seq_introHand3, 0 + }; + + /*static const Seqproc hofDemoSequenceCallbacks[] = { + 0 // XXX + }; + + static const Seqproc hofDemoNestedSequenceCallbacks[] = { + 0 // XXX + };*/ + + uint16 *hdr = (uint16*) seqData; + uint16 numSeq = READ_LE_UINT16(hdr++); + uint16 hdrSize = READ_LE_UINT16(hdr) - 1; + + const Seqproc *cb = hofSequenceCallbacks; + const Seqproc *ncb = hofNestedSequenceCallbacks; + + _sequences = new Sequence[numSeq]; + for (int i = 0; i < numSeq; i++) { + const uint8 *offset = (const uint8 *)(seqData + READ_LE_UINT16(hdr++)); + _sequences[i].flags = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].wsaFile = (const char *)offset; + offset += 14; + _sequences[i].cpsFile = (const char *)offset; + offset += 14; + _sequences[i].startupCommand = *offset++; + _sequences[i].finalCommand = *offset++; + _sequences[i].stringIndex1 = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].stringIndex2 = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].startFrame = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].numFrames = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].frameDelay = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].xPos = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].yPos = READ_LE_UINT16(offset); + offset += 2; + _sequences[i].duration = READ_LE_UINT16(offset); + _sequences[i].callback = cb[i]; + } + + if (hdr > ((uint16*)(seqData + hdrSize))) + return; + + numSeq = READ_LE_UINT16(hdr++); + _nSequences = new NestedSequence[numSeq]; + for (int i = 0; i < numSeq; i++) { + const uint8 *offset = (const uint8 *)(seqData + READ_LE_UINT16(hdr++)); + _nSequences[i].flags = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].wsaFile = (const char *)offset; + offset += 14; + _nSequences[i].startframe = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].endFrame = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].frameDelay = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].x = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].y = READ_LE_UINT16(offset); + offset += 2; + uint16 ctrlOffs = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].startupCommand = READ_LE_UINT16(offset); + offset += 2; + _nSequences[i].finalCommand = READ_LE_UINT16(offset); + _nSequences[i].callback = ncb[i]; + _nSequences[i].wsaControl = ctrlOffs ? (uint16*) (seqData + ctrlOffs) : 0; + } +} + const ScreenDim Screen::_screenDimTable[] = { { 0x00, 0x00, 0x28, 0xC8, 0x0F, 0x0C, 0x00, 0x00 }, { 0x08, 0x48, 0x18, 0x38, 0x0F, 0x0C, 0x00, 0x00 }, @@ -904,60 +1111,6 @@ const int8 KyraEngine::_addYPosTable[] = { 0, -2, -2, -2, 0, 2, 2, 2 }; -const char *KyraEngine_v1::_soundFiles[] = { - "KYRA1A", - "KYRA1B", - "KYRA2A", - "KYRA3A", - "KYRA4A", - "KYRA4B", - "KYRA5A", - "KYRA5B", - "KYRAMISC", - "INTRO" -}; - -const char *KyraEngine_v1::_soundFilesTowns[] = { - "TW_INTRO.SFX", - "TW_SCEN1.SFX", - "TW_SCEN2.SFX", - "TW_SCEN3.SFX", - "TW_SCEN4.SFX", - "TW_SCEN5.SFX" -}; - -const int32 KyraEngine_v1::_cdaTrackTable[] = { - 0x04000, 1, 0, 0x05480, 1, 6, 0x05E70, 0, 1, - 0x06D90, 1, 3, 0x072C0, 0, -1, 0x075F0, 1, -1, - 0x07880, 1, -1, 0x089C0, 0, -1, 0x09080, 0, -1, - 0x091D0, 1, 4, 0x0A880, 1, 5, 0x0AF50, 0, -1, - 0x0B1A0, 1, -1, 0x0B870, 0, -1, 0x0BCF0, 1, -1, - 0x0C5D0, 1, 7, 0x0D3E0, 1, 8, 0x0e7b0, 1, 2, - 0x0edc0, 0, -1, 0x0eef0, 1, 9, 0x10540, 1, 10, - 0x10d80, 0, -1, 0x10E30, 0, -1, 0x10FC0, 0, -1, - 0x11310, 1, -1, 0x11A20, 1, -1, 0x12380, 0, -1, - 0x12540, 1, -1, 0x12730, 1, -1, 0x12A90, 1, 11, - 0x134D0, 0, -1, 0x00000, 0, -1, 0x13770, 0, -1, - 0x00000, 0, -1, 0x00000, 0, -1, 0x00000, 0, -1, - 0x00000, 0, -1, 0x14710, 1, 12, 0x15DF0, 1, 13, - 0x16030, 1, 14, 0x17030, 0, -1, 0x17650, 0, -1, - 0x134D0, 0, -1, 0x178E0, 1, -1, 0x18200, 0, -1, - 0x18320, 0, -1, 0x184A0, 0, -1, 0x18BB0, 0, -1, - 0x19040, 0, 19, 0x19B50, 0, 20, 0x17650, 0, -1, - 0x1A730, 1, 21, 0x00000, 0, -1, 0x12380, 0, -1, - 0x1B810, 0, -1, 0x1BA50, 0, 15, 0x1C190, 0, 16, - 0x1CA50, 0, 17, 0x1D100, 0, 18 -}; - -const AudioDataStruct KyraEngine_v1::_soundData_PC[] = { - { _soundFiles, ARRAYSIZE(_soundFiles), 0, 0 }, - { 0, 0, 0, 0} -}; - -const AudioDataStruct KyraEngine_v1::_soundData_TOWNS[] = { - { _soundFilesTowns, ARRAYSIZE(_soundFilesTowns), _cdaTrackTable, ARRAYSIZE(_cdaTrackTable) }, - { 0, 0, 0, 0} -}; const int8 KyraEngine_v1::_charXPosTable[] = { 0, 4, 4, 4, 0, -4, -4, -4 }; @@ -1182,355 +1335,6 @@ const char *KyraEngine_v2::_mainMenuStrings[] = { // kyra 2 static res -const char *KyraEngine_v2::_sequenceStrings_PC_EN[] = { - "Kyrandia is disappearing!", - "Rock by rock...", - "...and tree by tree.", - "Kyrandia ceases to exist!", - "The Royal Mystics are baffled.", - "Every reference has been consulted.", - "Even Marko and his new valet have been allowed into the conference.", - "Luckily, the Hand was experienced in these matters.", - "And finally a plan was approved...", - "...that required a magic Anchor Stone...", - "...to be retrieved from the center of the world.", - "Zanthia, youngest of the Kyrandian Mystics, has been selected to retrieve the Stone.", - "Thank you for playing The Hand of Fate.", - "This should be enough blueberries to open a portal to the center of the world.", - " DUMMY STRING... ", - " DUMMY STRING... ", - "Hey! All my equipment has been stolen!", - " DUMMY STRING... ", - "If they think I'm going to walk all the way down there, they're nuts!", - " DUMMY STRING... ", - " DUMMY STRING... ", - "Hurry up Faun!", - - "Boy, that was a close call!", - "You said it pal. I, for one, am never going hunting again!", - "Ribbit.", - "How many times do I have to tell you? You're a toad.", - "Oh no! We're out of cheese!", - "Let's try this earwax. It's orange.", - "Mommy, when do I get the ivy?", - "Get out of here, shoo!", - "You cut, and I'll choose.", - "No. You cut and I'll choose.", - "I still say it was derivative drivel.", - "Aw, you still wouldn't recognize iambic pentameter if it bit you on the butt!", - - "Executive Producer", - "Brett W. Sperry", - "Direction & Design", - "Rick Gush", - "Lead Programmer", - "Michael Legg", - "Art Management", - "Louis Castle", - "Joseph B. Hewitt IV", - "Lead Artist", - "Rick Parks", - "Additional Coding by", - "Philip W. Gorrow", - "Mike Grayford", - "Mark McCubbin", - "Artists", - "Cameron Chun", - "Cary Averett", - "Cindy Chinn", - "Elie Arabian", - "Fei Cheng", - "Ferby Miguel", - "Frank Mendeola", - "Jack Martin", - "Jerry Moore", - "DUMMY STRING... ", - "Judith Peterson", - "Larry Miller", - "Lenny Lee", - "Louise Sandoval", - "Ren Olsen", - "Music & Sounds by", - "Paul Mudra", - "Frank Klepacki", - "Dwight Okahara", - "Pat Collins", - "Quality Assurance by", - "Glenn Sperry", - "Michael Lightner", - "William Foster", - "Jesse Clemit", - "Jeff Fillhaber", - "Manual, Package Design", - "& Fulfillment", - "Eydie Laramore", - "Lisa Marcinko", - "Lauren Rifkin", - "Congratulations!", - "Thank you for playing The Hand of Fate!", - "Guest Coding", - "Producer Liaison", - "Scott Duckett", - "Irvine Testers", - "Chris McFarland", - "Paul Moore", - "Chad Soares", - "Jared Brinkley", - "Jon Willliams", - "Chris Toft", - "Joe Kucan's Hair by", - "Theodore A. Morris", - "Load a game", - "Introduction", - "Start a new game", - "Exit the game", - "Special Thanks, to", - "Sake Joe Bostic-san", - "Tim Fritz", - "Kenny Dunne", - "Thank you for playing \"The Hand of Fate\"." -}; - -const char *KyraEngine_v2::_sequenceStrings_TOWNS_EN[] = { - "Kyrandia is disappearing!", - "Rock by rock...", - "...and tree by tree.", - "Kyrandia ceases to exist!", - "The Royal Mystics are baffled.", - "Every reference has been consulted.", - "Even Marko and his new valet have been allowed into the conference.", - "Luckily, the Hand was experienced in these matters.", - "And finally a plan was approved...", - "...that required a magic Anchor Stone...", - "...to be retrieved from the center of the world.", - "Zanthia, youngest of the Kyrandian Mystics, has been selected to retrieve the Stone.", - "Thank you for playing The Hand of Fate.", - "This should be enough blueberries to open a portal to the center of the world.", - " DUMMY STRING... ", - " DUMMY STRING... ", - "Hey! All my equipment has been stolen!", - " DUMMY STRING... ", - "If they think I'm going to walk all the way down there, they're nuts!", - " DUMMY STRING... ", - " DUMMY STRING... ", - "Hurry up Faun!", - - "Boy, that was a close call!", - "You said it pal. I, for one, am never going hunting again!", - "Ribbit.", - "How many times do I have to tell you? You're a toad.", - "Oh no! We're out of cheese!", - "Let's try this earwax. It's orange.", - "Mommy, when do I get the ivy?", - "Get out of here, shoo!", - "You cut, and I'll choose.", - "No. You cut and I'll choose.", - "I still say it was derivative drivel.", - "Aw, you still wouldn't recognize iambic pentameter if it bit you on the butt!", - - "Executive Producer", - "Brett W. Sperry", - "Designed & Directed by", - "Rick Gush", - "Lead Programmer", - "Michael Legg", - "Art Management", - "Louis Castle", - "Joseph B. Hewitt IV", - "Lead Artist", - "Rick Parks", - "Additional Coding by", - "Philip W. Gorrow", - "Matt Collins", - "Mark McCubbin", - "Artists", - "Cameron Chun", - "Cary Averett", - "Cindy Chinn", - "Elie Arabian", - "Fei Cheng", - "Ferby Miguel", - "Frank Mendeola", - "Jack Martin", - "Jerry Moore", - "", - "Judith Peterson", - "Larry Miller", - "Lenny Lee", - "Louise Sandoval", - "Ren Olsen", - "Music & Sounds by", - "Paul Mudra", - "Frank Klepacki", - "Dwight Okahara", - "Pat Collins", - "Qualilty Assurance by", - "Glenn Sperry", - "Michael Lightner", - "William Foster", - "Jesse Clemit", - "Jeff Fillhaber", - "Manual, Package Design", - "& Fulfillment", - "Eydie Laramore", - "Lisa Marcinko", - "Lauren Rifkin", - "Congratulations!", - "Thank you for playing The Hand of Fate!", - "Guest Coding", - "Producer Liaison", - "Scott Duckett", - "Irvine Testers", - "Chris McFarland", - "Paul Moore", - "Chad Soares", - "Jared Brinkley", - "Jon Willliams", - "Chris Toft", - "Chris's Hair by", - "Cumulo Nimbus", - "Load a game", - "Introduction", - "Start a new game", - "Exit the game", - "Special Thanks to", - "Sake Joe Bostic-san", - "Tim Fritz", - "Kenny Dunne", - "Yukio Sekiguchi (Japan)", - "Takeshi Abo (Japan)" -}; - -const int KyraEngine_v2::_sequenceStringsSize_PC_EN = ARRAYSIZE(KyraEngine_v2::_sequenceStrings_PC_EN); -const int KyraEngine_v2::_sequenceStringsSize_TOWNS_EN = ARRAYSIZE(KyraEngine_v2::_sequenceStrings_TOWNS_EN); - -const char *KyraEngine_v2::_sequenceSoundList_PC[] = { - "eintro1", - "eintro2", - "eintro3", - "eintro4", - "eintro5", - "eintro6", - "eintro7", - "eintro8", - "eintro9", - "eintro10", - "eintro11", - "eintro12", - "eglow", - "0000210", - "0000130", - "0000180", - "0000160", - - "asong", - "crowcaw", - "eyerub2", - "pluck3", - "rodnreel", - "frog1", - "scavmov2", - "lambmom3", - "lambkid1", - "thunder2", - "thunder3", - "wind6", - "h2odrop2", - "gasleak", - "polgulp1", - "hndslap1", - "burp1", - "0000220", - "0000230", - "0000250", - "0000260", - "0000270", - "0000280", - "0000290", - "0000300", - "0000310", - "0000320", - "0000330", - "scream1", - "theend" -}; - -const char *KyraEngine_v2::_sequenceSoundList_PCFLOPPY[] = { - "intro1", - "intro2", - "intro3", - "intro4", - "intro5", - "intro6", - "intro7", - "intro8", - "intro9", - "intro10", - "intro11", - "intro12", - "glow", - - "asong", - "crowcaw", - "eyerub2", - "pluck3", - "rodnreel", - "frog1", - "scavmov2", - "lambmom3", - "lambkid1", - "thunder2", - "thunder3", - "wind6", - "h2odrop2", - "gasleak", - "polgulp1", - "hndslap1", - "burp1", - "scream1", - "theend" -}; - -const char *KyraEngine_v2::_sequenceSoundList_TOWNS[] = { - "intro1.pcm", - "intro2.pcm", - "intro3.pcm", - "intro4.pcm", - "intro5.pcm", - "intro6.pcm", - "intro7.pcm", - "intro8.pcm", - "intro9.pcm", - "intro10.pcm", - "intro11.pcm", - "intro12.pcm", - "glow.pcm", - - "asong.pcm", - "crowcaw.pcm", - "eyerub2.pcm", - "pluck3.pcm", - "rodnreel.pcm", - "frog1.pcm", - "scavmov2.pcm", - "lambmom3.pcm", - "lambkid1.pcm", - "thunder2.pcm", - "thunder3.pcm", - "wind6.pcm", - "h2odrop2.pcm", - "gasleak.pcm", - "polgulp1.pcm", - "hndslap1.pcm", - "burp1.pcm", - "scream1.pcm", - "theend.pcm" -}; - -const int KyraEngine_v2::_sequenceSoundListSize_PC = ARRAYSIZE(KyraEngine_v2::_sequenceSoundList_PC); -const int KyraEngine_v2::_sequenceSoundListSize_PCFLOPPY = ARRAYSIZE(KyraEngine_v2::_sequenceSoundList_PCFLOPPY); -const int KyraEngine_v2::_sequenceSoundListSize_TOWNS = ARRAYSIZE(KyraEngine_v2::_sequenceSoundList_TOWNS); - const uint8 KyraEngine_v2::_seqTextColorPresets[] = { 0x01, 0x01, 0x00, 0x3f, 0x3f, 0x3f }; const char *KyraEngine_v2::_languageExtension[] = { @@ -1586,64 +1390,6 @@ const byte KyraEngine_v2::_itemStringMap[] = { 0, 2, 0, 0, 0, 0, 0, 0 }; -const char *KyraEngine_v2::_dosSoundFileListIntro[] = { "K2INTRO" }; -const char *KyraEngine_v2::_dosSoundFileListFinale[] = { "K2FINALE" }; - -const char *KyraEngine_v2::_dosSoundFileList[] = { - "K2TEST1", - "K2TEST2", - "K2TEST3", - "K2TEST4", - "K2TEST5", - "K2TEST6", - "K2TEST7", - "K2TEST8", - "K2TEST9", - "K2TEST10", - "K2TEST11", - "K2TEST12", - "K2TEST13", - "K2TEST14", - "K2TEST15" -}; - -const char *KyraEngine_v2::_fmtSoundFileListIntro[] = { "intro" }; -const char *KyraEngine_v2::_fmtSoundFileListFinale[] = { "finale" }; -const char *KyraEngine_v2::_fmtSoundFileList[] = { "k2" }; - -const uint8 KyraEngine_v2::_cdaTrackTableIntro[] = { - 0x03, 0x01, 0x04, 0x02, 0x05, 0x03, 0x06, 0x04, 0x07, 0x05, 0x08, 0x06 -}; - -const uint8 KyraEngine_v2::_cdaTrackTableIngame[] = { - 0x02, 0x07, 0x03, 0x08, 0x04, 0x09, 0x07, 0x0A, 0x0C, 0x0B, 0x0D, 0x0C, 0x0E, 0x0D, 0x0F, 0x0E, - 0x10, 0x0F, 0x12, 0x10, 0x13, 0x11, 0x15, 0x12, 0x17, 0x13, 0x18, 0x14, 0x19, 0x15, 0x1A, 0x16, - 0x1B, 0x17, 0x1C, 0x18, 0x1D, 0x19, 0x1E, 0x1A, 0x1F, 0x1B, 0x21, 0x1C, 0x22, 0x1D, 0x23, 0x1E, - 0x24, 0x1F, 0x25, 0x20, 0x26, 0x21, 0x27, 0x22, 0x28, 0x23, 0x29, 0x24, 0x2A, 0x25, 0x2B, 0x26, - 0x2C, 0x27, 0x2D, 0x28, 0x2E, 0x29, 0x2F, 0x2A, 0x30, 0x2B, 0x31, 0x2C, 0x32, 0x2D, 0x33, 0x2E, - 0x34, 0x2F, 0x35, 0x30, 0x36, 0x31, 0x37, 0x32, 0x38, 0x33, 0x39, 0x34, 0x3A, 0x35, 0x3B, 0x36, - 0x3C, 0x37, 0x3D, 0x38, 0x3E, 0x39, 0x3F, 0x3A, 0x40, 0x3B, 0x41, 0x3C, 0x42, 0x3D, 0x43, 0x3E, - 0x44, 0x3F, 0x45, 0x40, 0x46, 0x41, 0x47, 0x42, 0x48, 0x43, 0x49, 0x44, 0x4A, 0x45, 0x4B, 0x46, - 0x4C, 0x47, 0x4D, 0x48, 0x4E, 0x49, 0x4F, 0x4A, 0x50, 0x4B, 0x51, 0x4C, 0x52, 0x4D, 0x53, 0x4E, - 0x54, 0x4F, 0x55, 0x50, 0x56, 0x51, 0x57, 0x52 -}; - -const uint8 KyraEngine_v2::_cdaTrackTableFinale[] = { - 0x03, 0x53, 0x04, 0x54 -}; - -const AudioDataStruct KyraEngine_v2::_soundData_PC[] = { - { _dosSoundFileListIntro, ARRAYSIZE(_dosSoundFileListIntro), 0, 0 }, - { _dosSoundFileList, ARRAYSIZE(_dosSoundFileList), 0, 0}, - { _dosSoundFileListFinale, ARRAYSIZE(_dosSoundFileListFinale), 0, 0 } -}; - -const AudioDataStruct KyraEngine_v2::_soundData_TOWNS[] = { - { _fmtSoundFileListIntro, ARRAYSIZE(_fmtSoundFileListIntro), _cdaTrackTableIntro, ARRAYSIZE(_cdaTrackTableIntro) >> 1 }, - { _fmtSoundFileList, ARRAYSIZE(_fmtSoundFileList),_cdaTrackTableIngame, ARRAYSIZE(_cdaTrackTableIngame) >> 1 }, - { _fmtSoundFileListFinale, ARRAYSIZE(_fmtSoundFileListFinale),_cdaTrackTableFinale, ARRAYSIZE(_cdaTrackTableFinale) >> 1 } -}; - const int KyraEngine_v2::_itemStringMapSize = ARRAYSIZE(KyraEngine_v2::_itemStringMap); const int8 KyraEngine_v2::_dosTrackMap[] = { |