scummvm/tools/create_kyradat/create_kyradat.h
Florian Kagerer 8a95f02abf LOL: some work on inventory/item handling
svn-id: r38711
2009-02-21 17:24:50 +00:00

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