diff options
Diffstat (limited to 'devtools/create_kyradat')
-rw-r--r-- | devtools/create_kyradat/create_kyradat.cpp | 41 | ||||
-rw-r--r-- | devtools/create_kyradat/create_kyradat.h | 5 | ||||
-rw-r--r-- | devtools/create_kyradat/extract.cpp | 31 | ||||
-rw-r--r-- | devtools/create_kyradat/games.cpp | 102 | ||||
-rw-r--r-- | devtools/create_kyradat/tables.cpp | 60 |
5 files changed, 198 insertions, 41 deletions
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index 3b90ad0d85..1a3d406af1 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -47,7 +47,7 @@ #include <map> enum { - kKyraDatVersion = 83 + kKyraDatVersion = 84 }; const ExtractFilename extractFilenames[] = { @@ -606,7 +606,7 @@ const ExtractFilename extractFilenames[] = { // LANDS OF LORE // Ingame - { kLoLIngamePakFiles, kTypeStringList, false }, + { kLoLIngamePakFiles, k2TypeSfxList, false }, { kLoLCharacterDefs, kLoLTypeCharData, true }, { kLoLIngameSfxFiles, k2TypeSfxList, false }, @@ -625,7 +625,10 @@ const ExtractFilename extractFilenames[] = { { kLoLCharDefsKieran, kLoLTypeRaw16, false }, { kLoLCharDefsAkshel, kLoLTypeRaw16, false }, { kLoLExpRequirements, kLoLTypeRaw32, false }, - { kLoLMonsterModifiers, kLoLTypeRaw16, false }, + { kLoLMonsterModifiers1, kLoLTypeRaw16, false }, + { kLoLMonsterModifiers2, kLoLTypeRaw16, false }, + { kLoLMonsterModifiers3, kLoLTypeRaw16, false }, + { kLoLMonsterModifiers4, kLoLTypeRaw16, false }, { kLoLMonsterShiftOffsets, kTypeRawData, false }, { kLoLMonsterDirFlags, kTypeRawData, false }, { kLoLMonsterScaleY, kTypeRawData, false }, @@ -633,8 +636,8 @@ const ExtractFilename extractFilenames[] = { { kLoLMonsterScaleWH, kLoLTypeRaw16, false }, { kLoLFlyingObjectShp, kLoLTypeFlightShpData, false }, { kLoLInventoryDesc, kLoLTypeRaw16, false }, - { kLoLLevelShpList, kTypeStringList, false }, - { kLoLLevelDatList, kTypeStringList, false }, + { kLoLLevelShpList, k2TypeSfxList, false }, + { kLoLLevelDatList, k2TypeSfxList, false }, { kLoLCompassDefs, kLoLTypeCompassData, false }, { kLoLItemPrices, kLoLTypeRaw16, false }, { kLoLStashSetup, kTypeRawData, false }, @@ -671,14 +674,14 @@ const ExtractFilename extractFilenames[] = { { kLoLScrollYBottom, k3TypeRaw16to8, false }, { kLoLButtonDefs, kLoLTypeButtonDef, false }, - { kLoLButtonList1, kLoLTypeRaw16, false }, - { kLoLButtonList2, kLoLTypeRaw16, false }, - { kLoLButtonList3, kLoLTypeRaw16, false }, - { kLoLButtonList4, kLoLTypeRaw16, false }, - { kLoLButtonList5, kLoLTypeRaw16, false }, - { kLoLButtonList6, kLoLTypeRaw16, false }, - { kLoLButtonList7, kLoLTypeRaw16, false }, - { kLoLButtonList8, kLoLTypeRaw16, false }, + { kLoLButtonList1, k3TypeRaw16to8, false }, + { kLoLButtonList2, k3TypeRaw16to8, false }, + { kLoLButtonList3, k3TypeRaw16to8, false }, + { kLoLButtonList4, k3TypeRaw16to8, false }, + { kLoLButtonList5, k3TypeRaw16to8, false }, + { kLoLButtonList6, k3TypeRaw16to8, false }, + { kLoLButtonList7, k3TypeRaw16to8, false }, + { kLoLButtonList8, k3TypeRaw16to8, false }, { kLoLLegendData, kTypeRawData, false }, { kLoLMapCursorOvl, kTypeRawData, false }, @@ -2111,8 +2114,14 @@ const char *getIdString(const int id) { return "kLoLCharDefsAkshel"; case kLoLExpRequirements: return "kLoLExpRequirements"; - case kLoLMonsterModifiers: - return "kLoLMonsterModifiers"; + case kLoLMonsterModifiers1: + return "kLoLMonsterModifiers1"; + case kLoLMonsterModifiers2: + return "kLoLMonsterModifiers2"; + case kLoLMonsterModifiers3: + return "kLoLMonsterModifiers3"; + case kLoLMonsterModifiers4: + return "kLoLMonsterModifiers4"; case kLoLMonsterShiftOffsets: return "kLoLMonsterShiftOffsets"; case kLoLMonsterDirFlags: @@ -2229,6 +2238,8 @@ const char *getIdString(const int id) { return "kLoLLightningDefs"; case kLoLFireballCoords: return "kLoLFireballCoords"; + case kLoLCredits: + return "kLoLCredits"; case kLoLHistory: return "kLoLHistory"; default: diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index c2a69cfd79..6d5059cabe 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -606,7 +606,10 @@ enum kExtractID { kLoLCharDefsKieran, kLoLCharDefsAkshel, kLoLExpRequirements, - kLoLMonsterModifiers, + kLoLMonsterModifiers1, + kLoLMonsterModifiers2, + kLoLMonsterModifiers3, + kLoLMonsterModifiers4, kLoLMonsterShiftOffsets, kLoLMonsterDirFlags, kLoLMonsterScaleY, diff --git a/devtools/create_kyradat/extract.cpp b/devtools/create_kyradat/extract.cpp index 7388a32769..748bd36248 100644 --- a/devtools/create_kyradat/extract.cpp +++ b/devtools/create_kyradat/extract.cpp @@ -53,6 +53,7 @@ bool extractMrShapeAnimData(PAKFile &out, const ExtractInformation *info, const bool extractRaw16(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); bool extractRaw32(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); bool extractLoLButtonDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); +bool extractLoLFlyingShpDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); bool extractEoB2SeqData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); bool extractEoB2ShapeData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id); @@ -81,7 +82,7 @@ const ExtractType extractTypeTable[] = { { kLoLTypeCharData, extractRaw }, { kLoLTypeSpellData, extractRaw }, { kLoLTypeCompassData, extractRaw16to8 }, - { kLoLTypeFlightShpData, extractRaw16to8 }, + { kLoLTypeFlightShpData, extractLoLFlyingShpDefs }, { kLoLTypeRaw16, extractRaw16 }, { kLoLTypeRaw32, extractRaw32 }, { kLoLTypeButtonDef, extractLoLButtonDefs }, @@ -978,6 +979,10 @@ bool extractPaddedStrings(PAKFile &out, const ExtractInformation *info, const by } bool extractRaw16to8(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) { + // Hack for some LOL FM-Towns entries + if (info->platform == Common::kPlatformFMTowns && ((id >= kLoLButtonList1 && id <= kLoLButtonList8) || id == kLoLCharInvIndex)) + return extractRaw(out, info, data, size, filename, id); + int outsize = size >> 1; uint8 *buffer = new uint8[outsize]; const uint8 *src = data; @@ -1050,6 +1055,30 @@ bool extractLoLButtonDefs(PAKFile &out, const ExtractInformation *info, const by return out.addFile(filename, buffer, outsize); } +bool extractLoLFlyingShpDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) { + if (info->platform != Common::kPlatformFMTowns) + return extractRaw16to8(out, info, data, size, filename, id); + + int outsize = size / 9 * 5; + uint8 *buffer = new uint8[outsize]; + const uint8 *src = data; + uint8 *dst = buffer; + + for (int i = outsize / 5; i; --i) { + *dst++ = *src++; + src++; + *dst++ = *src++; + src++; + *dst++ = *src++; + src++; + *dst++ = *src++; + *dst++ = *src++; + src++; + } + + return out.addFile(filename, buffer, outsize); +} + bool extractEoB2SeqData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) { int num = size / 11; uint8 *buffer = new uint8[size]; diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index 89229eb4f2..1b62155da0 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -124,6 +124,9 @@ const Game lolGames[] = { // PC98 (no language specifc strings) { kLoL, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } }, + // FM-Towns (no language specifc strings) + { kLoL, { JA_JPN, -1, -1 }, kPlatformFMTowns, kNoSpecial, { "a281c7143bf2b6c5d4daa107a4b0427e", "34b4cecce179990e3bcaaa2d31484a90"} }, + // DOS CD (multi language version, with no language specific strings) { kLoL, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } }, { kLoL, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "f2af366e00f79dbf832fa19701d71ed9" } }, // Italian fan translation @@ -800,7 +803,9 @@ const int lolFloppyNeed[] = { kLoLCharDefsKieran, kLoLCharDefsAkshel, kLoLExpRequirements, - kLoLMonsterModifiers, + kLoLMonsterModifiers1, + kLoLMonsterModifiers2, + kLoLMonsterModifiers3, kLoLMonsterShiftOffsets, kLoLMonsterDirFlags, kLoLMonsterScaleY, @@ -844,7 +849,6 @@ const int lolFloppyNeed[] = { kLoLButtonDefs, kLoLButtonList1, - kLoLButtonList1, kLoLButtonList2, kLoLButtonList3, kLoLButtonList4, @@ -882,7 +886,9 @@ const int lolPC98Need[] = { kLoLCharDefsKieran, kLoLCharDefsAkshel, kLoLExpRequirements, - kLoLMonsterModifiers, + kLoLMonsterModifiers1, + kLoLMonsterModifiers2, + kLoLMonsterModifiers3, kLoLMonsterShiftOffsets, kLoLMonsterDirFlags, kLoLMonsterScaleY, @@ -926,6 +932,89 @@ const int lolPC98Need[] = { kLoLButtonDefs, kLoLButtonList1, + kLoLButtonList2, + kLoLButtonList3, + kLoLButtonList4, + kLoLButtonList5, + kLoLButtonList6, + kLoLButtonList7, + kLoLButtonList8, + + kLoLLegendData, + kLoLMapStringId, + + kLoLSpellbookAnim, + kLoLSpellbookCoords, + kLoLHealShapeFrames, + kLoLLightningDefs, + kLoLFireballCoords, + + kLoLCredits, + + -1 +}; + +const int lolFMTownsNeed[] = { + kLoLIngamePakFiles, + + kLoLCharacterDefs, + kLoLIngameSfxFiles, + kLoLIngameSfxIndex, + kLoLSpellProperties, + kLoLGameShapeMap, + kLoLSceneItemOffs, + kLoLCharInvIndex, + kLoLCharInvDefs, + kLoLCharDefsMan, + kLoLCharDefsWoman, + kLoLCharDefsKieran, + kLoLCharDefsAkshel, + kLoLExpRequirements, + kLoLMonsterModifiers1, + kLoLMonsterModifiers2, + kLoLMonsterModifiers3, + kLoLMonsterShiftOffsets, + kLoLMonsterDirFlags, + kLoLMonsterScaleY, + kLoLMonsterScaleX, + kLoLMonsterScaleWH, + kLoLFlyingObjectShp, + kLoLInventoryDesc, + + kLoLLevelShpList, + kLoLLevelDatList, + kLoLCompassDefs, + kLoLStashSetup, + kLoLDscWalls, + kRpgCommonDscShapeIndex, + kLoLDscOvlMap, + kLoLDscScaleWidthData, + kLoLDscScaleHeightData, + kRpgCommonDscX, + kLoLDscY, + kRpgCommonDscTileIndex, + kRpgCommonDscUnk2, + kRpgCommonDscDoorShapeIndex, + kRpgCommonDscDimData1, + kRpgCommonDscDimData2, + kRpgCommonDscBlockMap, + kRpgCommonDscDimMap, + kLoLDscOvlIndex, + kRpgCommonDscBlockIndex, + kRpgCommonDscDoorY2, + kRpgCommonDscDoorFrameY1, + kRpgCommonDscDoorFrameY2, + kLoLDscDoorScale, + kLoLDscDoor4, + kLoLDscDoorX, + kLoLDscDoorY, + + kLoLScrollXTop, + kLoLScrollYTop, + kLoLScrollXBottom, + kLoLScrollYBottom, + + kLoLButtonDefs, kLoLButtonList1, kLoLButtonList2, kLoLButtonList3, @@ -968,7 +1057,10 @@ const int lolCDNeed[] = { kLoLCharDefsKieran, kLoLCharDefsAkshel, kLoLExpRequirements, - kLoLMonsterModifiers, + kLoLMonsterModifiers1, + kLoLMonsterModifiers2, + kLoLMonsterModifiers3, + kLoLMonsterModifiers4, kLoLMonsterShiftOffsets, kLoLMonsterDirFlags, kLoLMonsterScaleY, @@ -1013,7 +1105,6 @@ const int lolCDNeed[] = { kLoLButtonDefs, kLoLButtonList1, - kLoLButtonList1, kLoLButtonList2, kLoLButtonList3, kLoLButtonList4, @@ -1695,6 +1786,7 @@ const GameNeed gameNeedTable[] = { { kLoL, kPlatformPC, kNoSpecial, lolFloppyNeed }, { kLoL, kPlatformPC98, kNoSpecial, lolPC98Need }, + { kLoL, kPlatformFMTowns, kNoSpecial, lolFMTownsNeed }, { kLoL, kPlatformPC, kTalkieVersion, lolCDNeed }, diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp index 19b69d9410..09d70bc448 100644 --- a/devtools/create_kyradat/tables.cpp +++ b/devtools/create_kyradat/tables.cpp @@ -3341,7 +3341,7 @@ const ExtractEntrySearchData kEoB2WallOfForceShpIdProvider[] = { const ExtractEntrySearchData kLoLIngamePakFilesProvider[] = { { UNK_LANG, kPlatformPC, { 0x00000088, 0x0000224F, { { 0xDA, 0x24, 0x18, 0xA3, 0xEF, 0x16, 0x70, 0x8F, 0xA8, 0xC2, 0x2E, 0xC2, 0xED, 0x39, 0x03, 0xD1 } } } }, { UNK_LANG, kPlatformPC98, { 0x00000084, 0x00002125, { { 0x7A, 0x89, 0xE2, 0x36, 0xEC, 0x6F, 0x52, 0x2B, 0xEF, 0xBA, 0x3D, 0x28, 0x54, 0xDA, 0xFB, 0x72 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x0000009D, 0x00002179, { { 0x7D, 0x7A, 0xE1, 0xD9, 0x69, 0x23, 0x9D, 0xFF, 0x83, 0x39, 0x73, 0xEC, 0xF4, 0x26, 0x20, 0x8E } } } }, EXTRACT_END_ENTRY }; @@ -3356,6 +3356,7 @@ const ExtractEntrySearchData kLoLCharacterDefsProvider[] = { { RU_RUS, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD { IT_ITA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD { JA_JPN, kPlatformPC98, { 0x00000492, 0x00005893, { { 0x7C, 0x7E, 0xFB, 0x80, 0xD9, 0xB6, 0x16, 0x87, 0x80, 0xB7, 0x46, 0x9B, 0x96, 0x1A, 0x6A, 0xBE } } } }, + { JA_JPN, kPlatformFMTowns, { 0x00000492, 0x00005041, { { 0xAB, 0x07, 0x37, 0xFE, 0xC2, 0x4B, 0x5D, 0x16, 0xE4, 0xC4, 0x2C, 0x8C, 0xC3, 0x78, 0xCB, 0xCB } } } }, EXTRACT_END_ENTRY }; @@ -3364,7 +3365,7 @@ const ExtractEntrySearchData kLoLIngameSfxFilesProvider[] = { { UNK_LANG, kPlatformPC, { 0x000008F2, 0x0001E5B6, { { 0x63, 0x5E, 0x37, 0xAA, 0x27, 0x80, 0x4C, 0x85, 0xB1, 0x9D, 0x7B, 0x1D, 0x64, 0xA3, 0xEB, 0x97 } } } }, // floppy { UNK_LANG, kPlatformPC, { 0x000008F2, 0x0001E5B7, { { 0x9E, 0xC8, 0xE8, 0x19, 0x2F, 0x58, 0x0B, 0xC7, 0x2D, 0x41, 0x72, 0xE7, 0xF4, 0x80, 0x03, 0xCB } } } }, // CD { UNK_LANG, kPlatformPC98, { 0x000008EF, 0x0001E585, { { 0x85, 0x81, 0x5C, 0xA4, 0x34, 0x44, 0xF4, 0x58, 0xF9, 0x82, 0xEE, 0x0F, 0x6A, 0x0D, 0xA2, 0x7F } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x000008F0, 0x0001E585, { { 0xB7, 0x82, 0xFF, 0xAB, 0x71, 0x54, 0xEB, 0x52, 0x8D, 0xAC, 0x9A, 0xB4, 0x9E, 0x33, 0x00, 0x95 } } } }, EXTRACT_END_ENTRY }; @@ -3419,6 +3420,7 @@ const ExtractEntrySearchData kLoLSceneItemOffsProvider[] = { const ExtractEntrySearchData kLoLCharInvIndexProvider[] = { { UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x00000006, { { 0x19, 0x79, 0x4E, 0xFC, 0x05, 0x14, 0x89, 0x23, 0xEB, 0xCA, 0x94, 0x50, 0xE8, 0xD3, 0x81, 0x24 } } } }, + { UNK_LANG, kPlatformFMTowns, { 0x00000005, 0x00000006, { { 0x54, 0x11, 0x01, 0x79, 0x4D, 0xED, 0xF9, 0xEA, 0xDF, 0x03, 0x51, 0xAB, 0x8D, 0x9D, 0x2F, 0x34 } } } }, EXTRACT_END_ENTRY }; @@ -3459,10 +3461,24 @@ const ExtractEntrySearchData kLoLExpRequirementsProvider[] = { EXTRACT_END_ENTRY }; -const ExtractEntrySearchData kLoLMonsterModifiersProvider[] = { - { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x000002C6, { { 0x38, 0x9A, 0x8B, 0x50, 0xD2, 0x9B, 0x95, 0x38, 0x91, 0x02, 0xA9, 0xBE, 0x78, 0xE5, 0x89, 0x65 } } } }, // floppy + PC98 - { UNK_LANG, kPlatformPC, { 0x00000018, 0x000002EE, { { 0x4E, 0x37, 0x56, 0xE3, 0x42, 0xB3, 0x15, 0x2C, 0x7E, 0x9B, 0x7E, 0x50, 0x32, 0x91, 0x55, 0xBE } } } }, // CD +const ExtractEntrySearchData kLoLMonsterModifiers1Provider[] = { + { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x00000142, { { 0x62, 0x4B, 0x5E, 0x46, 0x64, 0xA4, 0x3A, 0xB7, 0x11, 0x14, 0xA8, 0x41, 0xAF, 0x4E, 0xE6, 0x58 } } } }, // floppy + PC98 + FM-TOWNS + { UNK_LANG, kPlatformPC, { 0x00000006, 0x000000E8, { { 0x94, 0xCB, 0xD2, 0xE4, 0xF4, 0xA8, 0x4D, 0x46, 0x2E, 0x84, 0x8C, 0x6F, 0xF9, 0x75, 0xD7, 0x28 } } } }, // CD + EXTRACT_END_ENTRY +}; +const ExtractEntrySearchData kLoLMonsterModifiers2Provider[] = { + { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x000000C2, { { 0x89, 0x12, 0xA7, 0x0D, 0xD9, 0xC7, 0x5B, 0x03, 0xD4, 0x21, 0x6F, 0x0A, 0x1D, 0x83, 0x1B, 0x98 } } } }, + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kLoLMonsterModifiers3Provider[] = { + { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x000000C2, { { 0x56, 0x4D, 0x82, 0xCC, 0x2C, 0x00, 0x1E, 0x9D, 0xF7, 0x64, 0xB7, 0x60, 0x63, 0x0A, 0x03, 0xD7 } } } }, + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kLoLMonsterModifiers4Provider[] = { + { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000082, { { 0xA8, 0xFC, 0xBB, 0x1B, 0xC0, 0x85, 0x3B, 0xEF, 0xDB, 0xDE, 0xB0, 0x98, 0x58, 0x34, 0x75, 0xE9 } } } }, // CD EXTRACT_END_ENTRY }; @@ -3487,6 +3503,7 @@ const ExtractEntrySearchData kLoLMonsterScaleYProvider[] = { const ExtractEntrySearchData kLoLMonsterScaleXProvider[] = { { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000918, { { 0xF6, 0x14, 0xE6, 0x48, 0x4E, 0x5B, 0x43, 0xCC, 0xCE, 0x4E, 0x98, 0x71, 0x5A, 0xC2, 0x00, 0x1E } } } }, { UNK_LANG, kPlatformPC98, { 0x0000001D, 0x000008D2, { { 0x1C, 0x25, 0x38, 0xE2, 0xBB, 0xB2, 0xDB, 0x93, 0x1B, 0x25, 0xB6, 0x89, 0xA9, 0x9B, 0x0A, 0xFE } } } }, + { UNK_LANG, kPlatformFMTowns, { 0x0000001D, 0x000008D2, { { 0x1C, 0x25, 0x38, 0xE2, 0xBB, 0xB2, 0xDB, 0x93, 0x1B, 0x25, 0xB6, 0x89, 0xA9, 0x9B, 0x0A, 0xFE } } } }, EXTRACT_END_ENTRY }; @@ -3499,6 +3516,7 @@ const ExtractEntrySearchData kLoLMonsterScaleWHProvider[] = { const ExtractEntrySearchData kLoLFlyingObjectShpProvider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000082, 0x00000252, { { 0xDE, 0x9D, 0x89, 0xAF, 0x0F, 0x50, 0x14, 0x60, 0x68, 0xAF, 0x19, 0xD8, 0x54, 0x8A, 0x36, 0x27 } } } }, + { UNK_LANG, kPlatformFMTowns, { 0x00000075, 0x00000252, { { 0xD7, 0xE5, 0x13, 0x67, 0xDB, 0x9C, 0xD4, 0x12, 0x0E, 0x99, 0x0D, 0x2A, 0x70, 0x17, 0x95, 0x89 } } } }, EXTRACT_END_ENTRY }; @@ -3511,13 +3529,13 @@ const ExtractEntrySearchData kLoLInventoryDescProvider[] = { const ExtractEntrySearchData kLoLLevelShpListProvider[] = { { UNK_LANG, kPlatformUnknown, { 0x0000007F, 0x00002090, { { 0x17, 0x31, 0x8A, 0xB5, 0x9B, 0x3A, 0xDA, 0x16, 0x9E, 0xE3, 0xD1, 0x5F, 0xB4, 0x7B, 0xB2, 0x25 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000091, 0x00002090, { { 0x51, 0x79, 0x1D, 0x60, 0xB0, 0x71, 0xB8, 0xF2, 0xDD, 0xD4, 0x36, 0x1B, 0xF8, 0x15, 0xBF, 0xB7 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLLevelDatListProvider[] = { - { UNK_LANG, kPlatformUnknown, { 0x0000007F, 0x00001FB8, { { 0xF6, 0xE9, 0x98, 0x79, 0x51, 0xCA, 0xA0, 0x35, 0xE4, 0xD0, 0xA1, 0xCD, 0x23, 0x89, 0x7D, 0x11 } } } }, // floppy + PC98 - { UNK_LANG, kPlatformPC, { 0x000000FF, 0x000047EC, { { 0x0D, 0xA5, 0xFD, 0x8A, 0x33, 0xDB, 0x93, 0x43, 0xE2, 0x57, 0x35, 0xEC, 0xA6, 0xCF, 0x7A, 0xA1 } } } }, // CD + { UNK_LANG, kPlatformUnknown, { 0x0000007F, 0x00001FB8, { { 0xF6, 0xE9, 0x98, 0x79, 0x51, 0xCA, 0xA0, 0x35, 0xE4, 0xD0, 0xA1, 0xCD, 0x23, 0x89, 0x7D, 0x11 } } } }, + { UNK_LANG, kPlatformFMTowns, { 0x00000091, 0x00001FB8, { { 0x65, 0x1A, 0x3E, 0x96, 0x96, 0xA9, 0x94, 0xD6, 0xD5, 0x21, 0xBE, 0x60, 0xB5, 0x83, 0xF0, 0xE5 } } } }, EXTRACT_END_ENTRY }; @@ -3680,7 +3698,7 @@ const ExtractEntrySearchData kLoLDscDoorScaleProvider[] = { const ExtractEntrySearchData kLoLDscDoor4Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000008, 0x00000103, { { 0x29, 0xC0, 0x4B, 0x7F, 0x36, 0x23, 0xBB, 0x38, 0x4C, 0x83, 0xC6, 0x9D, 0xB4, 0x8F, 0x29, 0x2E } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000008, 0x0000000F, { { 0x9C, 0x6B, 0xAF, 0x69, 0x42, 0xC9, 0xC9, 0xA0, 0xD9, 0xF3, 0x54, 0xD9, 0x9A, 0xAF, 0xCF, 0xD8 } } } }, EXTRACT_END_ENTRY }; @@ -3725,55 +3743,56 @@ const ExtractEntrySearchData kLoLButtonDefsProvider[] = { { UNK_LANG, kPlatformPC, { 0x0000082A, 0x0000C34E, { { 0x7F, 0x9A, 0x0F, 0x28, 0x1A, 0x8F, 0x03, 0x46, 0x48, 0xEB, 0xC9, 0xB9, 0x23, 0x29, 0x5E, 0x50 } } } }, // floppy { UNK_LANG, kPlatformPC, { 0x0000082A, 0x0000C47B, { { 0xDF, 0x1A, 0x18, 0x1F, 0x58, 0x05, 0x1F, 0x56, 0xD8, 0x6D, 0xBB, 0x93, 0xEC, 0x35, 0x9D, 0xA5 } } } }, // CD { UNK_LANG, kPlatformPC98, { 0x0000082A, 0x0000AB58, { { 0xDD, 0x2B, 0xA9, 0x54, 0x60, 0x25, 0x2C, 0x74, 0xF8, 0x5D, 0xC6, 0xD2, 0x2C, 0x1A, 0x24, 0x44 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x0000082A, 0x0000D271, { { 0xAF, 0xAD, 0x11, 0xF9, 0xDC, 0x41, 0x94, 0xB3, 0x0E, 0x48, 0x69, 0xB3, 0x32, 0x89, 0x7C, 0xDD } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList1Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000050, 0x00000A37, { { 0x0F, 0x73, 0xEC, 0xDD, 0xAB, 0xFF, 0x49, 0x46, 0x5E, 0x8F, 0x0D, 0xC3, 0xE7, 0x1B, 0x89, 0x51 } } } }, + { UNK_LANG, kPlatformFMTowns, { 0x00000028, 0x00000938, { { 0x4B, 0xD9, 0x4A, 0x57, 0x58, 0xEC, 0x01, 0xE5, 0xA1, 0x25, 0x6A, 0x1A, 0x9C, 0x5D, 0x79, 0x19 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList2Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x00000522, { { 0xEA, 0x41, 0x46, 0xE2, 0xFE, 0xAA, 0x7D, 0x5E, 0x89, 0x7F, 0xBF, 0x9B, 0x30, 0x60, 0x74, 0xF3 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x0000000F, 0x00000423, { { 0xD3, 0xA8, 0xD4, 0xFB, 0x1A, 0x56, 0x21, 0x8C, 0x01, 0xED, 0xF8, 0x54, 0xA9, 0xC5, 0x97, 0x04 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList3Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x0000023E, { { 0x70, 0xAA, 0xCA, 0xAC, 0x5C, 0x21, 0xCF, 0xA5, 0xBF, 0x7F, 0x5F, 0xBC, 0xF1, 0x24, 0x8A, 0xAF } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000002, 0x0000013F, { { 0xDF, 0xE4, 0x3D, 0x18, 0x94, 0x18, 0xA5, 0x74, 0xBA, 0x26, 0x7B, 0x31, 0x87, 0xAE, 0xEE, 0x22 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList4Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x0000054D, { { 0x19, 0x2A, 0xBE, 0x7F, 0x94, 0x10, 0xA0, 0x60, 0x2A, 0x33, 0xD6, 0x11, 0x85, 0xF0, 0xA4, 0xA9 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x0000000F, 0x0000044E, { { 0x18, 0x1E, 0xBB, 0x7D, 0xAC, 0xA1, 0x87, 0x0F, 0x32, 0xA3, 0xBF, 0x5F, 0xBC, 0xBB, 0x90, 0xA4 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList5Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x0000045D, { { 0xE3, 0x7C, 0xC2, 0x36, 0x21, 0x46, 0xDB, 0xF3, 0xDD, 0x38, 0x4B, 0x40, 0xE0, 0x35, 0x09, 0xC3 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000010, 0x0000035E, { { 0x4E, 0xE2, 0xD6, 0x93, 0xA3, 0xEF, 0xD0, 0xEA, 0x28, 0xE6, 0xE7, 0xDD, 0xFC, 0x44, 0xE2, 0xB9 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList6Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x0000001C, 0x000004C4, { { 0x21, 0x7C, 0x29, 0x3F, 0x95, 0x6F, 0x91, 0x8C, 0xB2, 0x30, 0x09, 0xA6, 0x7B, 0x48, 0x44, 0x8F } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x0000000E, 0x000003C5, { { 0x05, 0x10, 0x83, 0x1E, 0x18, 0x11, 0xC4, 0x43, 0x01, 0xE3, 0xE0, 0xD7, 0x79, 0x29, 0xA5, 0x86 } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList7Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x0000021D, { { 0xDC, 0xCE, 0x1B, 0xEB, 0x11, 0x6D, 0xDE, 0x37, 0x17, 0xC8, 0x06, 0x51, 0xC3, 0x0C, 0xCB, 0xA6 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000003, 0x0000011E, { { 0xCF, 0x37, 0xEF, 0x83, 0xEC, 0x0D, 0x65, 0x41, 0xC8, 0x1D, 0xD1, 0x20, 0x82, 0x6B, 0xB5, 0x9B } } } }, EXTRACT_END_ENTRY }; const ExtractEntrySearchData kLoLButtonList8Provider[] = { { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000253, { { 0x0C, 0x7B, 0x10, 0x99, 0x93, 0xD0, 0x33, 0xCA, 0xAB, 0x8D, 0x7E, 0x24, 0xE5, 0x7E, 0x6C, 0x91 } } } }, - + { UNK_LANG, kPlatformFMTowns, { 0x00000002, 0x00000154, { { 0xE9, 0x6B, 0x8A, 0xD7, 0x8E, 0xCF, 0x66, 0x07, 0xDC, 0xF1, 0xC0, 0xAA, 0x81, 0x88, 0xB8, 0xB9 } } } }, EXTRACT_END_ENTRY }; @@ -3828,7 +3847,7 @@ const ExtractEntrySearchData kLoLFireballCoordsProvider[] = { const ExtractEntrySearchData kLoLCreditsProvider[] = { { JA_JPN , kPlatformPC98, { 0x000005E7, 0x0001A1B0, { { 0x2A, 0xD0, 0x38, 0x84, 0x0C, 0x38, 0xCB, 0x52, 0x5D, 0x82, 0xBE, 0x03, 0x76, 0xFA, 0x0A, 0x4A } } } }, - + { JA_JPN , kPlatformFMTowns, { 0x000005EC, 0x0001A219, { { 0x03, 0xBC, 0x67, 0x19, 0xA1, 0x99, 0x70, 0x10, 0x7A, 0x73, 0x85, 0xDA, 0xB4, 0x59, 0x49, 0xB0 } } } }, EXTRACT_END_ENTRY }; @@ -4377,7 +4396,10 @@ const ExtractEntry extractProviders[] = { { kLoLCharDefsKieran, kLoLCharDefsKieranProvider }, { kLoLCharDefsAkshel, kLoLCharDefsAkshelProvider }, { kLoLExpRequirements, kLoLExpRequirementsProvider }, - { kLoLMonsterModifiers, kLoLMonsterModifiersProvider }, + { kLoLMonsterModifiers1, kLoLMonsterModifiers1Provider }, + { kLoLMonsterModifiers2, kLoLMonsterModifiers2Provider }, + { kLoLMonsterModifiers3, kLoLMonsterModifiers3Provider }, + { kLoLMonsterModifiers4, kLoLMonsterModifiers4Provider }, { kLoLMonsterShiftOffsets, kLoLMonsterShiftOffsetsProvider }, { kLoLMonsterDirFlags, kLoLMonsterDirFlagsProvider }, { kLoLMonsterScaleY, kLoLMonsterScaleYProvider }, |