962 lines
20 KiB
C++
962 lines
20 KiB
C++
/* ScummVM Tools
|
|
* Copyright (C) 2009 The ScummVM project
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* $URL$
|
|
* $Id$
|
|
*
|
|
*/
|
|
|
|
#include "create_kyradat.h"
|
|
|
|
// Game tables
|
|
|
|
namespace {
|
|
|
|
const Game kyra1Games[] = {
|
|
// Demos
|
|
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "7b7504c8560ffc914d34c44c71b3094c", 0 } },
|
|
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieDemoVersion, { "226fdba99cb11ef1047131d9a50e6292", 0 } },
|
|
|
|
// Amiga
|
|
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformAmiga, kNoSpecial, { "b620564b6b7e0787b053ca9e35bd9f52", 0 } },
|
|
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformAmiga, kNoSpecial, { "ceddb4bd4df51698e3851e75106d117a", 0 } },
|
|
|
|
// Floppy
|
|
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "76a4fc84e173cadb6369785787e1546e", 0 } },
|
|
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "9442d6f7db6a41f3dd4aa4de5d36e107", 0 } },
|
|
{ kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "aa9d6d78d8b199deaf48efeca6d19af2", 0 } },
|
|
{ kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "5d7550306b369a3492f9f3402702477c", 0 } },
|
|
{ kKyra1, { ES_ESP, -1, -1 }, kPlatformPC, kNoSpecial, { "9ff130d2558bcd674d4074849d93c362", 0 } },
|
|
|
|
// Talkie
|
|
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieVersion, { "1ebc18f3e7fbb72474a55cb0fa089ed4", 0 } },
|
|
{ kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kTalkieVersion, { "c65d381184f98ac26d9efd2d45baef51", 0 } },
|
|
{ kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kTalkieVersion, { "307c5d4a554d9068ac3d326e350ae4a6", 0 } },
|
|
{ kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kTalkieVersion, { "d0f1752098236083d81b9497bd2b6989", 0 } }, // Italian fan translation
|
|
|
|
// FM-TOWNS
|
|
{ kKyra1, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "5a3ad60ccd0f2e29463e0368cd14a60d", 0 } },
|
|
|
|
// PC-98
|
|
{ kKyra1, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "b9c06ac5177f5bf1f1acc0eea3937f6d", 0 } },
|
|
|
|
GAME_DUMMY_ENTRY
|
|
};
|
|
|
|
const Game kyra2Games[] = {
|
|
// demos
|
|
{ kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "a620a37579dd44ab0403482285e3897f", 0 } },
|
|
|
|
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieDemoVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "fa54d8abfe05f9186c05f7de7eaf1480" } },
|
|
|
|
// floppy games
|
|
{ kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "9b0f5e57b5a2ed88b5b989cbb402b6c7", "7c3eadbe5122722cf2e5e1611e19dfb9" } },
|
|
{ kKyra2, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "df31cc9e37e1cf68df2fdc75ddf2d87b", "fc2c6782778e6c6d5a553d1cb73c98ad" } },
|
|
{ kKyra2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0ca4f9a1438264a4c63c3218e064ed3b", "0d9b0eb7b0ad889ec942d74d80dde1bf" } },
|
|
{ kKyra2, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "178d3ab913f61bfba21d2fb196405e8c", "3a61ed6b7c00ddae383a0361799e2ba6" } },
|
|
|
|
// talkie games
|
|
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } },
|
|
{ kKyra2, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "130795aa8f2333250c895dae9028b9bb", "e20d0d2e500f01e399ec588247a7e213" } }, // Italian Fan Translation
|
|
|
|
// FM-TOWNS games
|
|
{ kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "74f50d79c919cc8e7196c24942ce43d7", "a9a7fd4f05d00090e9e8bda073e6d431" } },
|
|
|
|
GAME_DUMMY_ENTRY
|
|
};
|
|
|
|
const Game kyra3Games[] = {
|
|
// DOS CD (multi language version, with no language specific strings)
|
|
{ kKyra3, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } },
|
|
{ kKyra3, { EN_ANY, IT_ITA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
|
|
{ kKyra3, { ES_ESP, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
|
|
|
|
GAME_DUMMY_ENTRY
|
|
};
|
|
|
|
const Game lolGames[] = {
|
|
// DOS demo
|
|
{ kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
|
|
|
|
// DOS floppy (no language specifc strings)
|
|
{ kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
|
|
|
|
// PC98 (no language specifc strings)
|
|
{ kLol, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } },
|
|
|
|
// DOS CD (multi language version, with no language specific strings)
|
|
{ kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
|
|
|
|
GAME_DUMMY_ENTRY
|
|
};
|
|
|
|
} // end of anonymous namespace
|
|
|
|
const Game * const gameDescs[] = {
|
|
kyra1Games,
|
|
kyra2Games,
|
|
kyra3Games,
|
|
lolGames,
|
|
0
|
|
};
|
|
|
|
// Need tables
|
|
|
|
namespace {
|
|
|
|
const int kyra1FloppyNeed[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kRoomList,
|
|
kRoomFilenames,
|
|
kCharacterImageFilenames,
|
|
kDefaultShapes,
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
kAmuleteAnimSeq,
|
|
kSpecialPalette1,
|
|
kSpecialPalette2,
|
|
kSpecialPalette3,
|
|
kSpecialPalette4,
|
|
kSpecialPalette5,
|
|
kSpecialPalette6,
|
|
kSpecialPalette7,
|
|
kSpecialPalette8,
|
|
kSpecialPalette9,
|
|
kSpecialPalette10,
|
|
kSpecialPalette11,
|
|
kSpecialPalette12,
|
|
kSpecialPalette13,
|
|
kSpecialPalette14,
|
|
kSpecialPalette15,
|
|
kSpecialPalette16,
|
|
kSpecialPalette17,
|
|
kSpecialPalette18,
|
|
kSpecialPalette19,
|
|
kSpecialPalette20,
|
|
kSpecialPalette21,
|
|
kSpecialPalette22,
|
|
kSpecialPalette23,
|
|
kSpecialPalette24,
|
|
kSpecialPalette25,
|
|
kSpecialPalette26,
|
|
kSpecialPalette27,
|
|
kSpecialPalette28,
|
|
kSpecialPalette29,
|
|
kSpecialPalette30,
|
|
kSpecialPalette31,
|
|
kSpecialPalette32,
|
|
kSpecialPalette33,
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kHealingTipString,
|
|
kPoisonGoneString,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
kOutroReunionSeq,
|
|
kOutroHomeString,
|
|
kVeryCleverString,
|
|
kGUIStrings,
|
|
kNewGameString,
|
|
kConfigStrings,
|
|
kAudioTracks,
|
|
kAudioTracksIntro,
|
|
-1
|
|
};
|
|
|
|
const int kyra1CDNeed[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kRoomList,
|
|
kRoomFilenames,
|
|
kCharacterImageFilenames,
|
|
kDefaultShapes,
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
kAmuleteAnimSeq,
|
|
kSpecialPalette1,
|
|
kSpecialPalette2,
|
|
kSpecialPalette3,
|
|
kSpecialPalette4,
|
|
kSpecialPalette5,
|
|
kSpecialPalette6,
|
|
kSpecialPalette7,
|
|
kSpecialPalette8,
|
|
kSpecialPalette9,
|
|
kSpecialPalette10,
|
|
kSpecialPalette11,
|
|
kSpecialPalette12,
|
|
kSpecialPalette13,
|
|
kSpecialPalette14,
|
|
kSpecialPalette15,
|
|
kSpecialPalette16,
|
|
kSpecialPalette17,
|
|
kSpecialPalette18,
|
|
kSpecialPalette19,
|
|
kSpecialPalette20,
|
|
kSpecialPalette21,
|
|
kSpecialPalette22,
|
|
kSpecialPalette23,
|
|
kSpecialPalette24,
|
|
kSpecialPalette25,
|
|
kSpecialPalette26,
|
|
kSpecialPalette27,
|
|
kSpecialPalette28,
|
|
kSpecialPalette29,
|
|
kSpecialPalette30,
|
|
kSpecialPalette31,
|
|
kSpecialPalette32,
|
|
kSpecialPalette33,
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kHealingTipString,
|
|
kPoisonGoneString,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
kOutroReunionSeq,
|
|
kOutroHomeString,
|
|
kVeryCleverString,
|
|
kGUIStrings,
|
|
kNewGameString,
|
|
kConfigStrings,
|
|
kAudioTracks,
|
|
kAudioTracksIntro,
|
|
-1
|
|
};
|
|
|
|
const int kyra1DemoNeed[] = {
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kDemo1Seq,
|
|
kDemo2Seq,
|
|
kDemo3Seq,
|
|
kDemo4Seq,
|
|
kAudioTracksIntro,
|
|
-1
|
|
};
|
|
|
|
const int kyra1DemoCDNeed[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kAudioTracksIntro,
|
|
-1
|
|
};
|
|
|
|
const int kyra1TownsNeed[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kRoomList,
|
|
kRoomFilenames,
|
|
kCharacterImageFilenames,
|
|
kDefaultShapes,
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
kAmuleteAnimSeq,
|
|
kSpecialPalette1,
|
|
kSpecialPalette2,
|
|
kSpecialPalette3,
|
|
kSpecialPalette4,
|
|
kSpecialPalette5,
|
|
kSpecialPalette6,
|
|
kSpecialPalette7,
|
|
kSpecialPalette8,
|
|
kSpecialPalette9,
|
|
kSpecialPalette10,
|
|
kSpecialPalette11,
|
|
kSpecialPalette12,
|
|
kSpecialPalette13,
|
|
kSpecialPalette14,
|
|
kSpecialPalette15,
|
|
kSpecialPalette16,
|
|
kSpecialPalette17,
|
|
kSpecialPalette18,
|
|
kSpecialPalette19,
|
|
kSpecialPalette20,
|
|
kSpecialPalette21,
|
|
kSpecialPalette22,
|
|
kSpecialPalette23,
|
|
kSpecialPalette24,
|
|
kSpecialPalette25,
|
|
kSpecialPalette26,
|
|
kSpecialPalette27,
|
|
kSpecialPalette28,
|
|
kSpecialPalette29,
|
|
kSpecialPalette30,
|
|
kSpecialPalette31,
|
|
kSpecialPalette32,
|
|
kSpecialPalette33,
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kHealingTipString,
|
|
kPoisonGoneString,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
kOutroReunionSeq,
|
|
kOutroHomeString,
|
|
kVeryCleverString,
|
|
kGUIStrings,
|
|
kNewGameString,
|
|
kConfigStrings,
|
|
|
|
kTOWNSSfxWDTable,
|
|
kTOWNSSfxBTTable,
|
|
kTOWNSCDATable,
|
|
kAudioTracks,
|
|
kCreditsStrings,
|
|
-1
|
|
};
|
|
|
|
const int kyra1PC98Need[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
kRoomList,
|
|
kRoomFilenames,
|
|
kCharacterImageFilenames,
|
|
kDefaultShapes,
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
kAmuleteAnimSeq,
|
|
kSpecialPalette1,
|
|
kSpecialPalette2,
|
|
kSpecialPalette3,
|
|
kSpecialPalette4,
|
|
kSpecialPalette5,
|
|
kSpecialPalette6,
|
|
kSpecialPalette7,
|
|
kSpecialPalette8,
|
|
kSpecialPalette9,
|
|
kSpecialPalette10,
|
|
kSpecialPalette11,
|
|
kSpecialPalette12,
|
|
kSpecialPalette13,
|
|
kSpecialPalette14,
|
|
kSpecialPalette15,
|
|
kSpecialPalette16,
|
|
kSpecialPalette17,
|
|
kSpecialPalette18,
|
|
kSpecialPalette19,
|
|
kSpecialPalette20,
|
|
kSpecialPalette21,
|
|
kSpecialPalette22,
|
|
kSpecialPalette23,
|
|
kSpecialPalette24,
|
|
kSpecialPalette25,
|
|
kSpecialPalette26,
|
|
kSpecialPalette27,
|
|
kSpecialPalette28,
|
|
kSpecialPalette29,
|
|
kSpecialPalette30,
|
|
kSpecialPalette31,
|
|
kSpecialPalette32,
|
|
kSpecialPalette33,
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kHealingTipString,
|
|
kPoisonGoneString,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
kOutroReunionSeq,
|
|
kOutroHomeString,
|
|
kVeryCleverString,
|
|
kGUIStrings,
|
|
kNewGameString,
|
|
kConfigStrings,
|
|
|
|
kPC98StoryStrings,
|
|
kPC98IntroSfx,
|
|
kCreditsStrings,
|
|
-1
|
|
};
|
|
|
|
const int kyra1AmigaNeed[] = {
|
|
kKallakWritingSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kForestSeq,
|
|
kIntroCPSStrings,
|
|
kIntroWSAStrings,
|
|
kIntroCOLStrings,
|
|
kIntroStrings,
|
|
kRoomList,
|
|
kRoomFilenames,
|
|
kCharacterImageFilenames,
|
|
kDefaultShapes,
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
kAmuleteAnimSeq,
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kHealingTipString,
|
|
kPoisonGoneString,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
kOutroReunionSeq,
|
|
kOutroHomeString,
|
|
kVeryCleverString,
|
|
kGUIStrings,
|
|
kNewGameString,
|
|
kConfigStrings,
|
|
kCreditsStrings,
|
|
kAmigaIntroSFXTable,
|
|
kAmigaGameSFXTable,
|
|
-1
|
|
};
|
|
|
|
const int kyra2CDNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayCredits,
|
|
k2SeqplayCreditsSpecial,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplayTlkFiles,
|
|
k2SeqplaySeqData,
|
|
k2SeqplayIntroTracks,
|
|
k2SeqplayFinaleTracks,
|
|
k2IngameSfxFiles,
|
|
k2IngameSfxIndex,
|
|
k2IngameTracks,
|
|
k2IngameTalkObjIndex,
|
|
k2IngameItemAnimData,
|
|
-1
|
|
};
|
|
|
|
const int kyra2CDDemoNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayCredits,
|
|
k2SeqplayCreditsSpecial,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplayTlkFiles,
|
|
k2SeqplaySeqData,
|
|
k2SeqplayIntroTracks,
|
|
k2SeqplayFinaleTracks,
|
|
k2IngameSfxFiles,
|
|
k2IngameSfxIndex,
|
|
k2IngameTracks,
|
|
k2IngameTalkObjIndex,
|
|
k2IngameItemAnimData,
|
|
k2IngameTlkDemoStrings,
|
|
-1
|
|
};
|
|
|
|
const int kyra2FloppyNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplayIntroTracks,
|
|
k2SeqplayFinaleTracks,
|
|
k2SeqplaySeqData,
|
|
k2IngamePakFiles,
|
|
k2IngameSfxFiles,
|
|
k2IngameSfxIndex,
|
|
k2IngameTracks,
|
|
k2IngameTalkObjIndex,
|
|
k2IngameItemAnimData,
|
|
-1
|
|
};
|
|
|
|
const int kyra2TownsNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplaySeqData,
|
|
k2SeqplayIntroCDA,
|
|
k2SeqplayFinaleCDA,
|
|
k2IngamePakFiles,
|
|
k2IngameSfxFilesTns,
|
|
k2IngameSfxIndex,
|
|
k2IngameCDA,
|
|
k2IngameTalkObjIndex,
|
|
k2IngameTimJpStrings,
|
|
k2IngameItemAnimData,
|
|
-1
|
|
};
|
|
|
|
const int kyra2DemoNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplaySeqData,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplayIntroTracks,
|
|
k2SeqplayShapeAnimData,
|
|
-1
|
|
};
|
|
|
|
const int kyra3Need[] = {
|
|
k3MainMenuStrings,
|
|
k3MusicFiles,
|
|
k3ScoreTable,
|
|
k3SfxFiles,
|
|
k3SfxMap,
|
|
k3ItemAnimData,
|
|
k3ItemMagicTable,
|
|
k3ItemStringMap,
|
|
-1
|
|
};
|
|
|
|
const int lolFloppyNeed[] = {
|
|
kLolIngamePakFiles,
|
|
|
|
kLolCharacterDefs,
|
|
kLolIngameSfxFiles,
|
|
kLolIngameSfxIndex,
|
|
kLolMusicTrackMap,
|
|
kLolGMSfxIndex,
|
|
kLolMT32SfxIndex,
|
|
kLolPcSpkSfxIndex,
|
|
kLolSpellProperties,
|
|
kLolGameShapeMap,
|
|
kLolSceneItemOffs,
|
|
kLolCharInvIndex,
|
|
kLolCharInvDefs,
|
|
kLolCharDefsMan,
|
|
kLolCharDefsWoman,
|
|
kLolCharDefsKieran,
|
|
kLolCharDefsAkshel,
|
|
kLolExpRequirements,
|
|
kLolMonsterModifiers,
|
|
kLolMonsterLevelOffsets,
|
|
kLolMonsterDirFlags,
|
|
kLolMonsterScaleY,
|
|
kLolMonsterScaleX,
|
|
kLolMonsterScaleWH,
|
|
kLolFlyingItemShp,
|
|
kLolInventoryDesc,
|
|
|
|
kLolLevelShpList,
|
|
kLolLevelDatList,
|
|
kLolCompassDefs,
|
|
kLolStashSetup,
|
|
kLolDscUnk1,
|
|
kLolDscShapeIndex1,
|
|
kLolDscShapeIndex2,
|
|
kLolDscScaleWidthData,
|
|
kLolDscScaleHeightData,
|
|
kLolDscX,
|
|
kLolDscY,
|
|
kLolDscTileIndex,
|
|
kLolDscUnk2,
|
|
kLolDscDoorShapeIndex,
|
|
kLolDscDimData1,
|
|
kLolDscDimData2,
|
|
kLolDscBlockMap,
|
|
kLolDscDimMap,
|
|
kLolDscShapeOvlIndex,
|
|
kLolDscBlockIndex,
|
|
kLolDscDoor1,
|
|
kLolDscDoorScale,
|
|
kLolDscDoor4,
|
|
kLolDscDoorX,
|
|
kLolDscDoorY,
|
|
|
|
kLolScrollXTop,
|
|
kLolScrollYTop,
|
|
kLolScrollXBottom,
|
|
kLolScrollYBottom,
|
|
|
|
kLolButtonDefs,
|
|
kLolButtonList1,
|
|
kLolButtonList1,
|
|
kLolButtonList2,
|
|
kLolButtonList3,
|
|
kLolButtonList4,
|
|
kLolButtonList5,
|
|
kLolButtonList6,
|
|
kLolButtonList7,
|
|
kLolButtonList8,
|
|
|
|
kLolLegendData,
|
|
kLolMapCursorOvl,
|
|
kLolMapStringId,
|
|
|
|
kLolSpellbookAnim,
|
|
kLolSpellbookCoords,
|
|
kLolHealShapeFrames,
|
|
kLolLightningDefs,
|
|
kLolFireballCoords,
|
|
|
|
-1
|
|
};
|
|
|
|
const int lolPC98Need[] = {
|
|
kLolIngamePakFiles,
|
|
|
|
kLolCharacterDefs,
|
|
kLolIngameSfxFiles,
|
|
kLolIngameSfxIndex,
|
|
kLolSpellProperties,
|
|
kLolGameShapeMap,
|
|
kLolSceneItemOffs,
|
|
kLolCharInvIndex,
|
|
kLolCharInvDefs,
|
|
kLolCharDefsMan,
|
|
kLolCharDefsWoman,
|
|
kLolCharDefsKieran,
|
|
kLolCharDefsAkshel,
|
|
kLolExpRequirements,
|
|
kLolMonsterModifiers,
|
|
kLolMonsterLevelOffsets,
|
|
kLolMonsterDirFlags,
|
|
kLolMonsterScaleY,
|
|
kLolMonsterScaleX,
|
|
kLolMonsterScaleWH,
|
|
kLolFlyingItemShp,
|
|
kLolInventoryDesc,
|
|
|
|
kLolLevelShpList,
|
|
kLolLevelDatList,
|
|
kLolCompassDefs,
|
|
kLolStashSetup,
|
|
kLolDscUnk1,
|
|
kLolDscShapeIndex1,
|
|
kLolDscShapeIndex2,
|
|
kLolDscScaleWidthData,
|
|
kLolDscScaleHeightData,
|
|
kLolDscX,
|
|
kLolDscY,
|
|
kLolDscTileIndex,
|
|
kLolDscUnk2,
|
|
kLolDscDoorShapeIndex,
|
|
kLolDscDimData1,
|
|
kLolDscDimData2,
|
|
kLolDscBlockMap,
|
|
kLolDscDimMap,
|
|
kLolDscShapeOvlIndex,
|
|
kLolDscBlockIndex,
|
|
kLolDscDoor1,
|
|
kLolDscDoorScale,
|
|
kLolDscDoor4,
|
|
kLolDscDoorX,
|
|
kLolDscDoorY,
|
|
|
|
kLolScrollXTop,
|
|
kLolScrollYTop,
|
|
kLolScrollXBottom,
|
|
kLolScrollYBottom,
|
|
|
|
kLolButtonDefs,
|
|
kLolButtonList1,
|
|
kLolButtonList1,
|
|
kLolButtonList2,
|
|
kLolButtonList3,
|
|
kLolButtonList4,
|
|
kLolButtonList5,
|
|
kLolButtonList6,
|
|
kLolButtonList7,
|
|
kLolButtonList8,
|
|
|
|
kLolLegendData,
|
|
kLolMapStringId,
|
|
|
|
kLolSpellbookAnim,
|
|
kLolSpellbookCoords,
|
|
kLolHealShapeFrames,
|
|
kLolLightningDefs,
|
|
kLolFireballCoords,
|
|
|
|
kLolCredits,
|
|
|
|
-1
|
|
};
|
|
|
|
const int lolCDNeed[] = {
|
|
kLolHistory,
|
|
kLolCharacterDefs,
|
|
kLolIngameSfxFiles,
|
|
kLolIngameSfxIndex,
|
|
kLolMusicTrackMap,
|
|
kLolGMSfxIndex,
|
|
kLolMT32SfxIndex,
|
|
kLolPcSpkSfxIndex,
|
|
kLolSpellProperties,
|
|
kLolGameShapeMap,
|
|
kLolSceneItemOffs,
|
|
kLolCharInvIndex,
|
|
kLolCharInvDefs,
|
|
kLolCharDefsMan,
|
|
kLolCharDefsWoman,
|
|
kLolCharDefsKieran,
|
|
kLolCharDefsAkshel,
|
|
kLolExpRequirements,
|
|
kLolMonsterModifiers,
|
|
kLolMonsterLevelOffsets,
|
|
kLolMonsterDirFlags,
|
|
kLolMonsterScaleY,
|
|
kLolMonsterScaleX,
|
|
kLolMonsterScaleWH,
|
|
kLolFlyingItemShp,
|
|
kLolInventoryDesc,
|
|
|
|
kLolLevelShpList,
|
|
kLolLevelDatList,
|
|
kLolCompassDefs,
|
|
kLolItemPrices,
|
|
kLolStashSetup,
|
|
kLolDscUnk1,
|
|
kLolDscShapeIndex1,
|
|
kLolDscShapeIndex2,
|
|
kLolDscScaleWidthData,
|
|
kLolDscScaleHeightData,
|
|
kLolDscX,
|
|
kLolDscY,
|
|
kLolDscTileIndex,
|
|
kLolDscUnk2,
|
|
kLolDscDoorShapeIndex,
|
|
kLolDscDimData1,
|
|
kLolDscDimData2,
|
|
kLolDscBlockMap,
|
|
kLolDscDimMap,
|
|
kLolDscShapeOvlIndex,
|
|
kLolDscBlockIndex,
|
|
kLolDscDoor1,
|
|
kLolDscDoorScale,
|
|
kLolDscDoor4,
|
|
kLolDscDoorX,
|
|
kLolDscDoorY,
|
|
|
|
kLolScrollXTop,
|
|
kLolScrollYTop,
|
|
kLolScrollXBottom,
|
|
kLolScrollYBottom,
|
|
|
|
kLolButtonDefs,
|
|
kLolButtonList1,
|
|
kLolButtonList1,
|
|
kLolButtonList2,
|
|
kLolButtonList3,
|
|
kLolButtonList4,
|
|
kLolButtonList5,
|
|
kLolButtonList6,
|
|
kLolButtonList7,
|
|
kLolButtonList8,
|
|
|
|
kLolLegendData,
|
|
kLolMapCursorOvl,
|
|
kLolMapStringId,
|
|
|
|
kLolSpellbookAnim,
|
|
kLolSpellbookCoords,
|
|
kLolHealShapeFrames,
|
|
kLolLightningDefs,
|
|
kLolFireballCoords,
|
|
-1
|
|
};
|
|
|
|
const int lolDemoNeed[] = {
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySeqData,
|
|
k2SeqplaySfxFiles,
|
|
kLolSeqplayIntroTracks,
|
|
-1
|
|
};
|
|
|
|
struct GameNeed {
|
|
int game;
|
|
int platform;
|
|
int special;
|
|
|
|
const int *entries;
|
|
};
|
|
|
|
const GameNeed gameNeedTable[] = {
|
|
{ kKyra1, kPlatformPC, kNoSpecial, kyra1FloppyNeed },
|
|
{ kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
|
|
|
|
{ kKyra1, kPlatformPC, kTalkieVersion, kyra1CDNeed },
|
|
|
|
{ kKyra1, kPlatformFMTowns, kNoSpecial, kyra1TownsNeed },
|
|
|
|
{ kKyra1, kPlatformPC98, kNoSpecial, kyra1PC98Need },
|
|
|
|
{ kKyra1, kPlatformPC, kDemoVersion, kyra1DemoNeed },
|
|
|
|
{ kKyra1, kPlatformPC, kTalkieDemoVersion, kyra1DemoCDNeed },
|
|
|
|
{ kKyra2, kPlatformPC, kNoSpecial, kyra2FloppyNeed },
|
|
|
|
{ kKyra2, kPlatformPC, kTalkieVersion, kyra2CDNeed },
|
|
|
|
{ kKyra2, kPlatformPC, kTalkieDemoVersion, kyra2CDDemoNeed },
|
|
|
|
{ kKyra2, kPlatformFMTowns, kNoSpecial, kyra2TownsNeed },
|
|
|
|
{ kKyra2, kPlatformPC, kDemoVersion, kyra2DemoNeed },
|
|
|
|
{ kLol, kPlatformPC, kDemoVersion, lolDemoNeed },
|
|
|
|
{ kKyra3, kPlatformPC, kTalkieVersion, kyra3Need },
|
|
|
|
{ kLol, kPlatformPC, kNoSpecial, lolFloppyNeed },
|
|
{ kLol, kPlatformPC98, kNoSpecial, lolPC98Need },
|
|
|
|
{ kLol, kPlatformPC, kTalkieVersion, lolCDNeed },
|
|
|
|
{ -1, -1, -1, 0 }
|
|
};
|
|
|
|
} // end of anonymous namespace
|
|
|
|
const int *getNeedList(const Game *g) {
|
|
for (const GameNeed *need = gameNeedTable; need->game != -1; ++need) {
|
|
if (need->game == g->game && g->platform == need->platform && need->special == g->special)
|
|
return need->entries;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|