mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-17 23:44:22 +00:00
8a95f02abf
svn-id: r38711
346 lines
5.6 KiB
C
346 lines
5.6 KiB
C
/* ScummVM Tools
|
|
* Copyright (C) 2007 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$
|
|
*
|
|
*/
|
|
|
|
#ifndef CREATE_KYRADAT_H
|
|
#define CREATE_KYRADAT_H
|
|
|
|
#include "util.h"
|
|
#include "pak.h"
|
|
|
|
struct Language {
|
|
int lang;
|
|
const char *ext;
|
|
};
|
|
|
|
enum kExtractID {
|
|
kForestSeq = 1,
|
|
kKallakWritingSeq,
|
|
kKyrandiaLogoSeq,
|
|
kKallakMalcolmSeq,
|
|
kMalcolmTreeSeq,
|
|
kWestwoodLogoSeq,
|
|
|
|
kDemo1Seq,
|
|
kDemo2Seq,
|
|
kDemo3Seq,
|
|
kDemo4Seq,
|
|
|
|
kAmuleteAnimSeq,
|
|
|
|
kOutroReunionSeq,
|
|
|
|
kIntroCPSStrings,
|
|
kIntroCOLStrings,
|
|
kIntroWSAStrings,
|
|
kIntroStrings,
|
|
|
|
kOutroHomeString,
|
|
|
|
kRoomFilenames,
|
|
kRoomList,
|
|
|
|
kCharacterImageFilenames,
|
|
|
|
kAudioTracks,
|
|
kAudioTracksIntro,
|
|
|
|
kItemNames,
|
|
kTakenStrings,
|
|
kPlacedStrings,
|
|
kDroppedStrings,
|
|
kNoDropStrings,
|
|
|
|
kPutDownString,
|
|
kWaitAmuletString,
|
|
kBlackJewelString,
|
|
kPoisonGoneString,
|
|
kHealingTipString,
|
|
kWispJewelStrings,
|
|
kMagicJewelStrings,
|
|
|
|
kThePoisonStrings,
|
|
kFluteStrings,
|
|
|
|
kFlaskFullString,
|
|
kFullFlaskString,
|
|
|
|
kVeryCleverString,
|
|
kNewGameString,
|
|
|
|
kDefaultShapes,
|
|
kHealing1Shapes,
|
|
kHealing2Shapes,
|
|
kPoisonDeathShapes,
|
|
kFluteShapes,
|
|
kWinter1Shapes,
|
|
kWinter2Shapes,
|
|
kWinter3Shapes,
|
|
kDrinkShapes,
|
|
kWispShapes,
|
|
kMagicAnimShapes,
|
|
kBranStoneShapes,
|
|
|
|
kPaletteList1,
|
|
kPaletteList2,
|
|
kPaletteList3,
|
|
kPaletteList4,
|
|
kPaletteList5,
|
|
kPaletteList6,
|
|
kPaletteList7,
|
|
kPaletteList8,
|
|
kPaletteList9,
|
|
kPaletteList10,
|
|
kPaletteList11,
|
|
kPaletteList12,
|
|
kPaletteList13,
|
|
kPaletteList14,
|
|
kPaletteList15,
|
|
kPaletteList16,
|
|
kPaletteList17,
|
|
kPaletteList18,
|
|
kPaletteList19,
|
|
kPaletteList20,
|
|
kPaletteList21,
|
|
kPaletteList22,
|
|
kPaletteList23,
|
|
kPaletteList24,
|
|
kPaletteList25,
|
|
kPaletteList26,
|
|
kPaletteList27,
|
|
kPaletteList28,
|
|
kPaletteList29,
|
|
kPaletteList30,
|
|
kPaletteList31,
|
|
kPaletteList32,
|
|
kPaletteList33,
|
|
|
|
kGUIStrings,
|
|
kConfigStrings,
|
|
|
|
kKyra1TownsSFXwdTable,
|
|
kKyra1TownsSFXbtTable,
|
|
kKyra1TownsCDATable,
|
|
kCreditsStrings,
|
|
|
|
k2SeqplayPakFiles,
|
|
k2SeqplayStrings,
|
|
k2SeqplaySfxFiles,
|
|
k2SeqplayTlkFiles,
|
|
k2SeqplaySeqData,
|
|
k2SeqplayCredits,
|
|
k2SeqplayCreditsSpecial,
|
|
k2SeqplayIntroTracks,
|
|
k2SeqplayFinaleTracks,
|
|
k2SeqplayIntroCDA,
|
|
k2SeqplayFinaleCDA,
|
|
k2SeqplayShapeAnimData,
|
|
|
|
k2IngamePakFiles,
|
|
k2IngameSfxFiles,
|
|
k2IngameSfxFilesTns,
|
|
k2IngameSfxIndex,
|
|
k2IngameTracks,
|
|
k2IngameCDA,
|
|
k2IngameTalkObjIndex,
|
|
k2IngameTimJpStrings,
|
|
k2IngameItemAnimData,
|
|
k2IngameTlkDemoStrings,
|
|
|
|
k3MainMenuStrings,
|
|
k3MusicFiles,
|
|
k3ScoreTable,
|
|
k3SfxFiles,
|
|
k3SfxMap,
|
|
k3ItemAnimData,
|
|
k3ItemMagicTable,
|
|
k3ItemStringMap,
|
|
|
|
lolSeqplayIntroTracks,
|
|
|
|
lolCharacterDefs,
|
|
lolIngameSfxFiles,
|
|
lolIngameSfxIndex,
|
|
lolMusicTrackMap,
|
|
lolGMSfxIndex,
|
|
lolMT32SfxIndex,
|
|
//lolADLSfxIndex,
|
|
lolSpellProperties,
|
|
lolGameShapeMap,
|
|
lolCharInvIndex,
|
|
lolCharInvDefs,
|
|
lolCharDefsMan,
|
|
lolCharDefsWoman,
|
|
lolCharDefsKieran,
|
|
//lolCharDefsUnk,
|
|
lolCharDefsAkshel,
|
|
lolExpRequirements,
|
|
lolInventoryDesc,
|
|
|
|
lolLevelShpList,
|
|
lolLevelDatList,
|
|
lolCompassDefs,
|
|
|
|
lolDscUnk1,
|
|
lolDscShapeIndex1,
|
|
lolDscShapeIndex2,
|
|
lolDscScaleWidthData,
|
|
lolDscScaleHeightData,
|
|
lolDscX,
|
|
lolDscY,
|
|
lolDscTileIndex,
|
|
lolDscUnk2,
|
|
lolDscDoorShapeIndex,
|
|
lolDscDimData1,
|
|
lolDscDimData2,
|
|
lolDscBlockMap,
|
|
lolDscDimMap,
|
|
lolDscShapeOvlIndex,
|
|
lolDscBlockIndex,
|
|
lolDscDoor1,
|
|
lolDscDoorScale,
|
|
lolDscDoor4,
|
|
lolDscDoorX,
|
|
lolDscDoorY,
|
|
|
|
lolScrollXTop,
|
|
lolScrollYTop,
|
|
lolScrollXBottom,
|
|
lolScrollYBottom,
|
|
|
|
lolButtonDefs,
|
|
lolButtonList1,
|
|
lolButtonList2,
|
|
lolButtonList3,
|
|
lolButtonList4,
|
|
lolButtonList5,
|
|
lolButtonList6,
|
|
lolButtonList7,
|
|
lolButtonList8,
|
|
|
|
kMaxResIDs
|
|
};
|
|
|
|
struct ExtractEntry {
|
|
int id;
|
|
uint32 startOff;
|
|
uint32 endOff;
|
|
};
|
|
|
|
struct ExtractFilename {
|
|
int id;
|
|
int type;
|
|
const char *filename;
|
|
};
|
|
|
|
enum kSpecial {
|
|
kTalkieVersion = 0,
|
|
kDemoVersion = 1,
|
|
kFMTownsVersionE = 2,
|
|
kFMTownsVersionJ = 3,
|
|
kAmigaVersion = 4,
|
|
|
|
k2CDFile1E = 5,
|
|
k2CDFile1F = 6,
|
|
k2CDFile1G = 7,
|
|
k2CDFile2E = 8,
|
|
k2CDFile2F = 9,
|
|
k2CDFile2G = 10,
|
|
// Italian fan translation
|
|
k2CDFile1I = 11,
|
|
|
|
k2TownsFile1E = 12,
|
|
k2TownsFile1J = 13,
|
|
k2TownsFile2E = 14,
|
|
k2TownsFile2J = 15,
|
|
|
|
k2FloppyFile1 = 16,
|
|
k2FloppyFile2 = 17,
|
|
|
|
k2DemoVersion = 18,
|
|
k2DemoVersionTlkE = 19,
|
|
k2DemoVersionTlkF = 20,
|
|
k2DemoVersionTlkG = 21,
|
|
k2DemoLol = 22,
|
|
|
|
kLolCD = 23
|
|
};
|
|
|
|
struct SpecialExtension {
|
|
int special;
|
|
const char *ext;
|
|
};
|
|
|
|
enum kGame {
|
|
kKyra1 = 0,
|
|
kKyra2 = 1,
|
|
kKyra3 = 2,
|
|
kLol = 4
|
|
};
|
|
|
|
struct Game {
|
|
int game;
|
|
int lang;
|
|
int special;
|
|
|
|
const char *md5;
|
|
const ExtractEntry *entries;
|
|
};
|
|
|
|
#define GAME_DUMMY_ENTRY { -1, -1, -1, 0, 0 }
|
|
|
|
struct GameNeed {
|
|
int game;
|
|
int special;
|
|
|
|
const int *entries;
|
|
};
|
|
|
|
enum kExtractType {
|
|
kTypeLanguageList = 0,
|
|
kTypeStringList,
|
|
kTypeRoomList,
|
|
kTypeShapeList,
|
|
kTypeRawData,
|
|
|
|
k2TypeSeqData,
|
|
k2TypeShpDataV1,
|
|
k2TypeShpDataV2,
|
|
k2TypeSoundList,
|
|
k2TypeLangSoundList,
|
|
k2TypeSfxList,
|
|
|
|
k3TypeRaw16to8,
|
|
k3TypeShpData,
|
|
|
|
lolTypeRaw16,
|
|
lolTypeRaw32,
|
|
lolTypeButtonDef
|
|
};
|
|
|
|
struct ExtractType {
|
|
int type;
|
|
bool (*extract)(PAKFile &out, const Game *g, const byte *data, const uint32 size, const char *filename, int fmtPatch);
|
|
void (*createFilename)(char *dstFilename, const int gid, const int lang, const int special, const char *filename);
|
|
};
|
|
|
|
#endif
|