From adbf14c3c480890dfb155b896d1805e102311aa9 Mon Sep 17 00:00:00 2001 From: athrxx Date: Mon, 13 Jun 2011 17:38:28 +0200 Subject: KYRA: (EOB) - update static resources (menu strings) --- devtools/create_kyradat/create_kyradat.cpp | 58 +++++++++++ devtools/create_kyradat/create_kyradat.h | 20 ++++ devtools/create_kyradat/games.cpp | 37 +++++++ devtools/create_kyradat/tables.cpp | 154 +++++++++++++++++++++++++++++ engines/kyra/eobcommon.h | 22 +++++ engines/kyra/gui_eob.cpp | 28 +++++- engines/kyra/resource.h | 20 ++++ engines/kyra/staticres_eob.cpp | 20 ++++ 8 files changed, 357 insertions(+), 2 deletions(-) diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index d27b5c10fa..d28e5b2e77 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -251,6 +251,26 @@ const ExtractFilename extractFilenames[] = { { kEobBaseCancelStrings, kTypeStringList, true }, { kEobBaseAbortStrings, kTypeStringList, true }, + { kEobBaseMenuStringsMain, kTypeStringList, true }, + { kEobBaseMenuStringsSaveLoad, kTypeStringList, true }, + { kEobBaseMenuStringsOnOff, kTypeStringList, true }, + { kEobBaseMenuStringsSpells, kTypeStringList, true }, + { kEobBaseMenuStringsRest, kTypeStringList, true }, + { kEobBaseMenuStringsDrop, kTypeStringList, true }, + { kEobBaseMenuStringsExit, kTypeStringList, true }, + { kEobBaseMenuStringsStarve, kTypeStringList, true }, + { kEobBaseMenuStringsScribe, kTypeStringList, true }, + { kEobBaseMenuStringsDrop2, kTypeStringList, true }, + { kEobBaseMenuStringsHead, kTypeStringList, true }, + { kEobBaseMenuStringsPoison, kTypeStringList, true }, + { kEobBaseMenuStringsMgc, kTypeStringList, true }, + { kEobBaseMenuStringsPrefs, kTypeStringList, true }, + { kEobBaseMenuStringsRest2, kTypeStringList, true }, + { kEobBaseMenuStringsDefeat, kTypeStringList, true }, + { kEobBaseMenuStringsTransfer, kTypeStringList, true }, + { kEobBaseMenuStringsSpec, kTypeStringList, true }, + { kEobBaseMenuStringsSpellNo, kTypeStringList, false }, + { kEobBaseCharGuiStringsHp, kTypeStringList, true }, { kEobBaseCharGuiStringsWp1, kTypeStringList, true }, { kEobBaseCharGuiStringsWp2, kTypeStringList, true }, @@ -1292,6 +1312,44 @@ const char *getIdString(const int id) { return "kEobBaseCancelStrings"; case kEobBaseAbortStrings: return "kEobBaseAbortStrings"; + case kEobBaseMenuStringsMain: + return "kEobBaseMenuStringsMain"; + case kEobBaseMenuStringsSaveLoad: + return "kEobBaseMenuStringsSaveLoad"; + case kEobBaseMenuStringsOnOff: + return "kEobBaseMenuStringsOnOff"; + case kEobBaseMenuStringsSpells: + return "kEobBaseMenuStringsSpells"; + case kEobBaseMenuStringsRest: + return "kEobBaseMenuStringsRest"; + case kEobBaseMenuStringsDrop: + return "kEobBaseMenuStringsDrop"; + case kEobBaseMenuStringsExit: + return "kEobBaseMenuStringsExit"; + case kEobBaseMenuStringsStarve: + return "kEobBaseMenuStringsStarve"; + case kEobBaseMenuStringsScribe: + return "kEobBaseMenuStringsScribe"; + case kEobBaseMenuStringsDrop2: + return "kEobBaseMenuStringsDrop2"; + case kEobBaseMenuStringsHead: + return "kEobBaseMenuStringsHead"; + case kEobBaseMenuStringsPoison: + return "kEobBaseMenuStringsPoison"; + case kEobBaseMenuStringsMgc: + return "kEobBaseMenuStringsMgc"; + case kEobBaseMenuStringsPrefs: + return "kEobBaseMenuStringsPrefs"; + case kEobBaseMenuStringsRest2: + return "kEobBaseMenuStringsRest2"; + case kEobBaseMenuStringsDefeat: + return "kEobBaseMenuStringsDefeat"; + case kEobBaseMenuStringsTransfer: + return "kEobBaseMenuStringsTransfer"; + case kEobBaseMenuStringsSpec: + return "kEobBaseMenuStringsSpec"; + case kEobBaseMenuStringsSpellNo: + return "kEobBaseMenuStringsSpellNo"; case kEobBaseCharGuiStringsHp: return "kEobBaseCharGuiStringsHp"; case kEobBaseCharGuiStringsWp1: diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index 7ecc4b256d..e9c2c570a1 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -226,6 +226,26 @@ enum kExtractID { kEobBaseCancelStrings, kEobBaseAbortStrings, + kEobBaseMenuStringsMain, + kEobBaseMenuStringsSaveLoad, + kEobBaseMenuStringsOnOff, + kEobBaseMenuStringsSpells, + kEobBaseMenuStringsRest, + kEobBaseMenuStringsDrop, + kEobBaseMenuStringsExit, + kEobBaseMenuStringsStarve, + kEobBaseMenuStringsScribe, + kEobBaseMenuStringsDrop2, + kEobBaseMenuStringsHead, + kEobBaseMenuStringsPoison, + kEobBaseMenuStringsMgc, + kEobBaseMenuStringsPrefs, + kEobBaseMenuStringsRest2, + kEobBaseMenuStringsDefeat, + kEobBaseMenuStringsTransfer, + kEobBaseMenuStringsSpec, + kEobBaseMenuStringsSpellNo, + kEobBaseCharGuiStringsHp, kEobBaseCharGuiStringsWp1, kEobBaseCharGuiStringsWp2, diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index d4c4186e6b..e99c6a8716 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -1077,6 +1077,23 @@ const int eob1FloppyNeed[] = { kEobBaseNpcJoinStrings, kEobBaseCancelStrings, + kEobBaseMenuStringsMain, + kEobBaseMenuStringsSaveLoad, + kEobBaseMenuStringsOnOff, + kEobBaseMenuStringsSpells, + kEobBaseMenuStringsRest, + kEobBaseMenuStringsDrop, + kEobBaseMenuStringsExit, + kEobBaseMenuStringsStarve, + kEobBaseMenuStringsScribe, + kEobBaseMenuStringsDrop2, + kEobBaseMenuStringsHead, + kEobBaseMenuStringsPoison, + kEobBaseMenuStringsMgc, + kEobBaseMenuStringsPrefs, + kEobBaseMenuStringsRest2, + kEobBaseMenuStringsDefeat, + kEobBaseCharGuiStringsHp, kEobBaseCharGuiStringsWp1, kEobBaseCharGuiStringsWr, @@ -1236,6 +1253,26 @@ const int eob2FloppyNeed[] = { kEobBaseCancelStrings, kEobBaseAbortStrings, + kEobBaseMenuStringsMain, + kEobBaseMenuStringsSaveLoad, + kEobBaseMenuStringsOnOff, + kEobBaseMenuStringsSpells, + kEobBaseMenuStringsRest, + kEobBaseMenuStringsDrop, + kEobBaseMenuStringsExit, + kEobBaseMenuStringsStarve, + kEobBaseMenuStringsScribe, + kEobBaseMenuStringsDrop2, + kEobBaseMenuStringsHead, + kEobBaseMenuStringsPoison, + kEobBaseMenuStringsMgc, + kEobBaseMenuStringsPrefs, + kEobBaseMenuStringsRest2, + kEobBaseMenuStringsDefeat, + kEobBaseMenuStringsTransfer, + kEobBaseMenuStringsSpec, + kEobBaseMenuStringsSpellNo, + kEobBaseCharGuiStringsHp, kEobBaseCharGuiStringsWp2, kEobBaseCharGuiStringsWr, diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp index fe4b18a0de..811d74bd79 100644 --- a/devtools/create_kyradat/tables.cpp +++ b/devtools/create_kyradat/tables.cpp @@ -1527,6 +1527,140 @@ const ExtractEntrySearchData kEobBaseAbortStringsProvider[] = { EXTRACT_END_ENTRY }; +const ExtractEntrySearchData kEobBaseMenuStringsMainProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000067, 0x0000245E, { { 0xD9, 0xE0, 0x74, 0x9D, 0x43, 0x96, 0xDC, 0x3B, 0xDF, 0x90, 0x03, 0xDE, 0x91, 0xE6, 0xA0, 0x1E } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000068, 0x000025D9, { { 0x17, 0xEB, 0xAB, 0x4F, 0x95, 0xD1, 0x7F, 0xEB, 0xF4, 0x92, 0x42, 0xD1, 0xD2, 0xA8, 0xC4, 0xA8 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000069, 0x0000265B, { { 0x4C, 0xA9, 0x38, 0x28, 0xE1, 0xD0, 0xE3, 0x35, 0xBB, 0xDC, 0xFB, 0x6B, 0xAB, 0xB1, 0x62, 0x88 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsSaveLoadProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000077, 0x00002513, { { 0x70, 0xD9, 0x48, 0xC2, 0x3A, 0x38, 0x1D, 0xD0, 0x8B, 0x90, 0x08, 0x8D, 0x80, 0xF5, 0x24, 0x59 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000086, 0x00002D2F, { { 0x2B, 0x48, 0x5C, 0x78, 0xF9, 0xB9, 0xD6, 0xA8, 0x1D, 0xF4, 0x97, 0xAC, 0xF1, 0x09, 0x26, 0xA7 } } } }, // EOB1 + { EN_ANY, kPlatformUnknown, { 0x000000A9, 0x00003850, { { 0xC3, 0x09, 0x7B, 0x18, 0xD6, 0x08, 0x0E, 0x2A, 0xB6, 0x66, 0x43, 0x14, 0xD7, 0x59, 0x34, 0xF7 } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x000000A2, 0x00003942, { { 0x6E, 0x10, 0x87, 0x4B, 0x80, 0xE8, 0x89, 0xC4, 0x31, 0xDC, 0xAC, 0xA9, 0xA3, 0x8D, 0x79, 0x41 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsOnOffProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000007, 0x00000178, { { 0x4D, 0xA7, 0x13, 0x00, 0x05, 0xF2, 0x44, 0xCB, 0xF7, 0x12, 0x72, 0x54, 0xDE, 0x35, 0x04, 0xEC } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000007, 0x00000178, { { 0xC7, 0x6F, 0x60, 0x72, 0x47, 0x89, 0x47, 0xF0, 0x29, 0x57, 0x45, 0x41, 0xD5, 0x80, 0x40, 0x7B } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsSpellsProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x000001EF, 0x0000A0D0, { { 0xBA, 0x80, 0x5C, 0xAB, 0x93, 0x19, 0x53, 0x45, 0x17, 0xBC, 0x86, 0x5B, 0x1B, 0x01, 0x3E, 0x98 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x000001EA, 0x00009DE0, { { 0x00, 0xB0, 0x1F, 0xE7, 0x16, 0x48, 0x51, 0x25, 0xE5, 0xD8, 0xA1, 0x31, 0x13, 0x81, 0x8D, 0xB6 } } } }, // EOB1 + { EN_ANY, kPlatformUnknown, { 0x000001FB, 0x0000A658, { { 0xAD, 0x6A, 0xFE, 0x13, 0xE5, 0xEA, 0x6A, 0xD1, 0xC9, 0x80, 0x1C, 0xEE, 0xD7, 0x2A, 0xF8, 0xB2 } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x00000222, 0x0000B1C9, { { 0x24, 0xC8, 0x9B, 0x51, 0xEE, 0x45, 0x14, 0xFC, 0x1B, 0xE4, 0x37, 0x8B, 0xEC, 0x94, 0xD9, 0x0B } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsRestProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x000000B3, 0x00003CED, { { 0x82, 0xF9, 0xA1, 0x74, 0xE6, 0x95, 0xA4, 0xFC, 0xE6, 0x5E, 0xB4, 0x43, 0x7D, 0x10, 0xFD, 0x12 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x000000B3, 0x00003BE4, { { 0x7F, 0xE8, 0xFE, 0xA4, 0xD9, 0x5C, 0x49, 0x66, 0x38, 0x8F, 0x84, 0xB8, 0xF5, 0x03, 0xCD, 0x70 } } } }, // EOB + { DE_DEU, kPlatformUnknown, { 0x000000C0, 0x000040A6, { { 0x05, 0x97, 0x45, 0x72, 0xE2, 0x33, 0xBE, 0xDE, 0x56, 0x26, 0x26, 0x15, 0x3A, 0x56, 0x93, 0xFD } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsDropProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00000FCA, { { 0x88, 0xCB, 0xD2, 0xB3, 0xDA, 0x36, 0x97, 0x3D, 0xB8, 0x75, 0xFF, 0x36, 0xE1, 0x4E, 0xF4, 0x6D } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000039, 0x0000131E, { { 0x74, 0x0B, 0xE9, 0x04, 0x76, 0x26, 0xD2, 0xE8, 0x03, 0x48, 0x38, 0x18, 0xAC, 0x19, 0xBD, 0x7E } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000033, 0x0000119C, { { 0x8F, 0x2B, 0xC3, 0x01, 0xB2, 0xDE, 0x1F, 0xC6, 0x82, 0xC3, 0x58, 0x7C, 0x50, 0x23, 0x37, 0x65 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsExitProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000002B, 0x00000E3D, { { 0x1C, 0xD6, 0x39, 0xA9, 0xC7, 0x3D, 0x32, 0x4A, 0xF2, 0xAE, 0xEC, 0x08, 0x6F, 0xC7, 0xA6, 0x7B } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x0000002D, 0x00000E68, { { 0x4B, 0x2F, 0x65, 0x39, 0x69, 0xE7, 0x3D, 0x7B, 0x10, 0x15, 0x6F, 0x1F, 0xD8, 0x8E, 0xEA, 0x55 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000026, 0x00000CBD, { { 0x0C, 0x5D, 0xE4, 0xD2, 0x6F, 0xA3, 0x91, 0xDA, 0x5F, 0xE2, 0x57, 0x77, 0x74, 0x22, 0xE7, 0x85 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsStarveProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000003D, 0x0000150C, { { 0x40, 0xEB, 0x79, 0xC3, 0x99, 0x4C, 0xEA, 0xCD, 0x8A, 0xB4, 0x54, 0xB8, 0xAA, 0xEC, 0xAD, 0x4F } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000037, 0x00001296, { { 0x51, 0x3C, 0x90, 0x91, 0x4E, 0x1C, 0x73, 0x2F, 0x0C, 0x7A, 0x6D, 0x03, 0x1E, 0x54, 0x65, 0xF1 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000030, 0x00001057, { { 0xF3, 0x5E, 0xFC, 0xC3, 0x9D, 0xB5, 0xFE, 0x4E, 0x66, 0x9D, 0x6A, 0xC6, 0x61, 0xC8, 0x0A, 0x17 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsScribeProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000103, 0x000055E1, { { 0x1B, 0x56, 0xD2, 0x78, 0x3F, 0x67, 0x7A, 0x5B, 0xB6, 0x2B, 0x70, 0x3D, 0x6A, 0xBB, 0x08, 0x0A } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x0000010C, 0x00005B1C, { { 0xD7, 0xBF, 0x37, 0x21, 0xA2, 0x63, 0x8C, 0x6A, 0x02, 0x92, 0x13, 0x32, 0xD6, 0xA6, 0x1C, 0xDC } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000100, 0x0000560F, { { 0x69, 0x15, 0x2C, 0x2D, 0xE7, 0x40, 0x4A, 0xE0, 0x86, 0x0D, 0xC8, 0x66, 0x87, 0x1C, 0x27, 0x0B } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsDrop2Provider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000084, 0x00002ACE, { { 0xAB, 0x78, 0x42, 0x29, 0xFB, 0xC5, 0x34, 0x96, 0x9D, 0x8A, 0x21, 0x46, 0xE7, 0x6B, 0x06, 0xBA } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x0000008C, 0x00002D02, { { 0x11, 0x3F, 0x0C, 0xB2, 0xBF, 0xA7, 0x39, 0x23, 0xDC, 0x00, 0xB4, 0xEA, 0x5E, 0xFE, 0x40, 0xB7 } } } }, // EOB1 + { EN_ANY, kPlatformUnknown, { 0x0000008E, 0x00002FFB, { { 0xCE, 0x7A, 0xCC, 0xA4, 0x02, 0x54, 0x1A, 0x78, 0xF1, 0xFC, 0xE6, 0x6C, 0x76, 0xCD, 0xFD, 0x9E } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x00000090, 0x000031CE, { { 0x01, 0x72, 0x59, 0xBE, 0x62, 0x72, 0xD4, 0x99, 0x76, 0xC9, 0x92, 0x0E, 0xE9, 0x1A, 0xCD, 0x65 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsHeadProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000021, 0x00000B27, { { 0x04, 0x06, 0x01, 0xF8, 0x50, 0x54, 0x11, 0x61, 0xFF, 0xB4, 0xE1, 0x97, 0xFA, 0x08, 0xAA, 0x1B } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000024, 0x00000CF5, { { 0x96, 0xD6, 0xB5, 0xB0, 0x2E, 0x71, 0xA4, 0x0A, 0x34, 0x41, 0x94, 0x02, 0x2F, 0xB0, 0x4C, 0x36 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000025, 0x00000D92, { { 0xE4, 0x73, 0x2D, 0x29, 0xAD, 0x30, 0xE5, 0x8D, 0xAE, 0xC6, 0xD7, 0xF5, 0x35, 0xD8, 0xA4, 0x98 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsPoisonProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00001077, { { 0x14, 0x7E, 0xFC, 0xE0, 0x88, 0xFE, 0x86, 0xA8, 0x96, 0x94, 0xB1, 0x71, 0x90, 0x47, 0x2D, 0x78 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000036, 0x000013A2, { { 0x18, 0xD9, 0x1D, 0xE5, 0x3D, 0xFD, 0x52, 0xB6, 0x18, 0x17, 0x61, 0xE8, 0xA5, 0x32, 0x9F, 0xA8 } } } }, // EOB1 + { EN_ANY, kPlatformUnknown, { 0x0000002D, 0x00001006, { { 0xD6, 0x0B, 0x11, 0x79, 0xAD, 0x61, 0x5B, 0x3A, 0x72, 0x7D, 0x53, 0x6F, 0xA9, 0x08, 0x73, 0xDC } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x00000035, 0x000013BE, { { 0x73, 0x38, 0x76, 0x2C, 0x42, 0x87, 0x43, 0x7E, 0x8E, 0x4C, 0x41, 0x57, 0x3F, 0x04, 0xBA, 0x11 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsMgcProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000020, 0x00000857, { { 0xD1, 0x9E, 0xBF, 0xF7, 0xCF, 0xF7, 0xD0, 0x94, 0x14, 0x56, 0xD2, 0x4F, 0x59, 0x91, 0x57, 0x52 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000020, 0x0000086C, { { 0x12, 0x36, 0x84, 0x2F, 0x00, 0xAD, 0x12, 0x42, 0x3A, 0xA2, 0xC5, 0xC9, 0x59, 0x90, 0x64, 0x5F } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000021, 0x0000090B, { { 0x26, 0xA7, 0x58, 0x7C, 0x0C, 0x9E, 0x67, 0xB9, 0x05, 0xE6, 0x91, 0x59, 0xE3, 0xDF, 0x9C, 0x52 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsPrefsProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000041, 0x00001392, { { 0xB1, 0x7E, 0xE3, 0x73, 0xB2, 0xA2, 0x63, 0x39, 0x20, 0xE8, 0xF3, 0x38, 0x45, 0xB6, 0xAC, 0xC8 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000045, 0x000015F6, { { 0x53, 0xBA, 0x7E, 0x6D, 0x24, 0x88, 0x2C, 0x19, 0x10, 0x71, 0x6F, 0xAB, 0x85, 0x8E, 0x97, 0xF6 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x0000003D, 0x00001246, { { 0x03, 0xFB, 0x7C, 0x80, 0x33, 0x45, 0x6C, 0x27, 0x89, 0x7B, 0x7C, 0xAC, 0x7A, 0xE1, 0xDE, 0x49 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsRest2Provider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000076, 0x00002530, { { 0xAD, 0x7A, 0x80, 0x8B, 0x97, 0x65, 0x67, 0xB2, 0x67, 0xE3, 0xF8, 0xDA, 0x0B, 0x9A, 0x61, 0x26 } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x00000082, 0x000029A1, { { 0x02, 0x83, 0xBC, 0x56, 0xB4, 0xFE, 0xF0, 0x03, 0x3D, 0xFD, 0x2C, 0x3B, 0x14, 0x8F, 0x44, 0x1B } } } }, // EOB + { EN_ANY, kPlatformUnknown, { 0x000000A5, 0x000033C9, { { 0xC4, 0x69, 0x00, 0x7B, 0x93, 0x98, 0x0E, 0xD1, 0x94, 0xF8, 0x39, 0x19, 0xBA, 0x53, 0x37, 0x35 } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x000000A4, 0x000033C1, { { 0x3B, 0x3A, 0x01, 0x8F, 0x3F, 0x9E, 0xC2, 0xC7, 0x70, 0xF8, 0x9C, 0x84, 0x6D, 0xFE, 0xC2, 0x40 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsDefeatProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000006D, 0x00002643, { { 0x94, 0xBA, 0xAC, 0xA4, 0x87, 0x6A, 0xEA, 0x7D, 0x98, 0x6E, 0x09, 0x82, 0xE0, 0x16, 0x65, 0x4F } } } }, // EOB1 + { DE_DEU, kPlatformUnknown, { 0x0000006A, 0x00002456, { { 0xE0, 0x9A, 0x10, 0xE2, 0x73, 0x42, 0xF6, 0x79, 0xCB, 0x65, 0xA2, 0x50, 0xF0, 0x2B, 0xFD, 0x9B } } } }, // EOB1 + { EN_ANY, kPlatformUnknown, { 0x00000056, 0x00001E4F, { { 0x97, 0x07, 0x5F, 0xA2, 0x0D, 0x58, 0xD2, 0xDF, 0xD6, 0x04, 0xA2, 0x16, 0x0B, 0x1F, 0x7E, 0x23 } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x00000042, 0x000016B1, { { 0xCA, 0x57, 0xDC, 0x2B, 0xC6, 0xC7, 0x78, 0x1E, 0x84, 0x0A, 0x10, 0x88, 0xCA, 0xCD, 0xFF, 0x89 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsTransferProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x00000114, 0x00005E09, { { 0xBF, 0xCE, 0x7F, 0xE4, 0x17, 0x15, 0xC6, 0x10, 0xDF, 0x16, 0xF9, 0x3C, 0xDA, 0x29, 0xA0, 0xA6 } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x000000D1, 0x00004811, { { 0x2E, 0x00, 0xD1, 0xA6, 0x9F, 0x53, 0xC5, 0x4B, 0x25, 0x4A, 0xAC, 0x9E, 0x11, 0x6C, 0x58, 0x5E } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsSpecProvider[] = { + { EN_ANY, kPlatformUnknown, { 0x0000006F, 0x00002785, { { 0xAE, 0xC7, 0x88, 0x89, 0x39, 0xB8, 0xF7, 0xB4, 0xD5, 0x82, 0xBC, 0x46, 0xA1, 0xCB, 0x04, 0x1F } } } }, // EOB2 + { DE_DEU, kPlatformUnknown, { 0x00000075, 0x00002871, { { 0xB4, 0x38, 0x0F, 0x94, 0x8B, 0xB1, 0x8D, 0xA3, 0xF8, 0xDA, 0x37, 0x75, 0x6F, 0x39, 0x3E, 0xB5 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + +const ExtractEntrySearchData kEobBaseMenuStringsSpellNoProvider[] = { + { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x000000A5, { { 0x0D, 0x4A, 0x8B, 0x40, 0x70, 0x79, 0xCD, 0xB3, 0x0F, 0x5A, 0x5A, 0x3F, 0x6E, 0xE8, 0xF9, 0x74 } } } }, // EOB2 + EXTRACT_END_ENTRY +}; + const ExtractEntrySearchData kEobBaseCharGuiStringsHpProvider[] = { { EN_ANY, kPlatformUnknown, { 0x0000000F, 0x00000352, { { 0x9C, 0x13, 0x3D, 0x2A, 0x68, 0x11, 0x81, 0xA4, 0x77, 0x54, 0x47, 0x43, 0xA1, 0xDA, 0x55, 0x50 } } } }, { DE_DEU, kPlatformUnknown, { 0x0000000E, 0x000002AC, { { 0xBB, 0xD5, 0x36, 0xB2, 0x8A, 0x60, 0x78, 0x04, 0x46, 0x2D, 0x35, 0x59, 0x3E, 0x42, 0xB9, 0x83 } } } }, // Eob 1 @@ -3229,6 +3363,26 @@ const ExtractEntry extractProviders[] = { { kEobBaseCancelStrings, kEobBaseCancelStringsProvider }, { kEobBaseAbortStrings, kEobBaseAbortStringsProvider }, + { kEobBaseMenuStringsMain, kEobBaseMenuStringsMainProvider }, + { kEobBaseMenuStringsSaveLoad, kEobBaseMenuStringsSaveLoadProvider }, + { kEobBaseMenuStringsOnOff, kEobBaseMenuStringsOnOffProvider }, + { kEobBaseMenuStringsSpells, kEobBaseMenuStringsSpellsProvider }, + { kEobBaseMenuStringsRest, kEobBaseMenuStringsRestProvider }, + { kEobBaseMenuStringsDrop, kEobBaseMenuStringsDropProvider }, + { kEobBaseMenuStringsExit, kEobBaseMenuStringsExitProvider }, + { kEobBaseMenuStringsStarve, kEobBaseMenuStringsStarveProvider }, + { kEobBaseMenuStringsScribe, kEobBaseMenuStringsScribeProvider }, + { kEobBaseMenuStringsDrop2, kEobBaseMenuStringsDrop2Provider }, + { kEobBaseMenuStringsHead, kEobBaseMenuStringsHeadProvider }, + { kEobBaseMenuStringsPoison, kEobBaseMenuStringsPoisonProvider }, + { kEobBaseMenuStringsMgc, kEobBaseMenuStringsMgcProvider }, + { kEobBaseMenuStringsPrefs, kEobBaseMenuStringsPrefsProvider }, + { kEobBaseMenuStringsRest2, kEobBaseMenuStringsRest2Provider }, + { kEobBaseMenuStringsDefeat, kEobBaseMenuStringsDefeatProvider }, + { kEobBaseMenuStringsTransfer, kEobBaseMenuStringsTransferProvider }, + { kEobBaseMenuStringsSpec, kEobBaseMenuStringsSpecProvider }, + { kEobBaseMenuStringsSpellNo, kEobBaseMenuStringsSpellNoProvider }, + { kEobBaseCharGuiStringsHp, kEobBaseCharGuiStringsHpProvider }, { kEobBaseCharGuiStringsWp1, kEobBaseCharGuiStringsWp1Provider }, { kEobBaseCharGuiStringsWp2, kEobBaseCharGuiStringsWp2Provider }, diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h index 8b28e86f2e..9ead3c2408 100644 --- a/engines/kyra/eobcommon.h +++ b/engines/kyra/eobcommon.h @@ -956,6 +956,28 @@ protected: const uint8 *_magicFlightObjectProperties; + // Menu + const char *const *_menuStringsMain; + const char *const *_menuStringsSaveLoad; + const char *const *_menuStringsOnOff; + const char *const *_menuStringsSpells; + const char *const *_menuStringsRest; + const char *const *_menuStringsDrop; + const char *const *_menuStringsExit; + const char *const *_menuStringsStarve; + const char *const *_menuStringsScribe; + const char *const *_menuStringsDrop2; + const char *const *_menuStringsHead; + const char *const *_menuStringsPoison; + const char *const *_menuStringsMgc; + const char *const *_menuStringsPrefs; + const char *const *_menuStringsRest2; + const char *const *_menuStringsDefeat; + + const char *const *_menuStringsTransfer; + const char *const *_menuStringsSpec; + const char *const *_menuStringsSpellNo; + // sound void snd_playSoundEffect(int id, int volume=0xFF); }; diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp index 34ab19034d..02af458d65 100644 --- a/engines/kyra/gui_eob.cpp +++ b/engines/kyra/gui_eob.cpp @@ -834,6 +834,29 @@ int EobCoreEngine::clickedCharPortraitDefault(Button *button) { } int EobCoreEngine::clickedCamp(Button *button) { + gui_updateControls(); + disableSysTimer(2); + int cd = _screen->curDimIndex(); + + for (int i = 0; i < 6; i++) { + if (!testCharacter(i, 1)) + continue; + _characters[i].damageTaken = 0; + _characters[i].slotStatus[0] = _characters[i].slotStatus[1] = 0; + gui_drawCharPortraitWithStats(i); + } + + _screen->copyRegion(0, 120, 0, 0, 176, 24, 0, 14, Screen::CR_NO_P_CHECK); + Screen::FontId of = _screen->setFont(Screen::FID_8_FNT); + + + _screen->setFont(of); + _screen->setCurPage(0); + _screen->setScreenDim(cd); + + enableSysTimer(2); + updateCharacterEvents(true); + return button->arg; } @@ -1317,13 +1340,14 @@ void EobCoreEngine::gui_processWeaponSlotClickRight(int charIndex, int slotIndex case 7: // Food ration - /* don't do anything if mouse control is enabled */ - //eatItemInHand(charIndex); + // Don't do anything if mouse control is enabled (we don't support anything else) + // eatItemInHand(charIndex); break; case 10: if (_flags.gameID == GI_EOB1) vl += _clericSpellOffset; + // drop through case 9: // Mage/Cleric Scroll if (!_currentControlMode) diff --git a/engines/kyra/resource.h b/engines/kyra/resource.h index 2f93adde3c..90a3e74b19 100644 --- a/engines/kyra/resource.h +++ b/engines/kyra/resource.h @@ -299,6 +299,26 @@ enum KyraResources { kEobBaseCancelStrings, kEobBaseAbortStrings, + kEobBaseMenuStringsMain, + kEobBaseMenuStringsSaveLoad, + kEobBaseMenuStringsOnOff, + kEobBaseMenuStringsSpells, + kEobBaseMenuStringsRest, + kEobBaseMenuStringsDrop, + kEobBaseMenuStringsExit, + kEobBaseMenuStringsStarve, + kEobBaseMenuStringsScribe, + kEobBaseMenuStringsDrop2, + kEobBaseMenuStringsHead, + kEobBaseMenuStringsPoison, + kEobBaseMenuStringsMgc, + kEobBaseMenuStringsPrefs, + kEobBaseMenuStringsRest2, + kEobBaseMenuStringsDefeat, + kEobBaseMenuStringsTransfer, + kEobBaseMenuStringsSpec, + kEobBaseMenuStringsSpellNo, + kEobBaseCharGuiStringsHp, kEobBaseCharGuiStringsWp1, kEobBaseCharGuiStringsWp2, diff --git a/engines/kyra/staticres_eob.cpp b/engines/kyra/staticres_eob.cpp index a291a486f4..da4e6752b0 100644 --- a/engines/kyra/staticres_eob.cpp +++ b/engines/kyra/staticres_eob.cpp @@ -366,6 +366,26 @@ void EobCoreEngine::initStaticResource() { _cancelStrings = _staticres->loadStrings(kEobBaseCancelStrings, temp); _abortStrings = _staticres->loadStrings(_flags.gameID == GI_EOB2 ? kEobBaseAbortStrings : kEobBaseCancelStrings, temp); + _menuStringsMain = _staticres->loadStrings(kEobBaseMenuStringsMain, temp); + _menuStringsSaveLoad = _staticres->loadStrings(kEobBaseMenuStringsSaveLoad, temp); + _menuStringsOnOff = _staticres->loadStrings(kEobBaseMenuStringsOnOff, temp); + _menuStringsSpells = _staticres->loadStrings(kEobBaseMenuStringsSpells, temp); + _menuStringsRest = _staticres->loadStrings(kEobBaseMenuStringsRest, temp); + _menuStringsDrop = _staticres->loadStrings(kEobBaseMenuStringsDrop, temp); + _menuStringsExit = _staticres->loadStrings(kEobBaseMenuStringsExit, temp); + _menuStringsStarve = _staticres->loadStrings(kEobBaseMenuStringsStarve, temp); + _menuStringsScribe = _staticres->loadStrings(kEobBaseMenuStringsScribe, temp); + _menuStringsDrop2 = _staticres->loadStrings(kEobBaseMenuStringsDrop2, temp); + _menuStringsHead = _staticres->loadStrings(kEobBaseMenuStringsHead, temp); + _menuStringsPoison = _staticres->loadStrings(kEobBaseMenuStringsPoison, temp); + _menuStringsMgc = _staticres->loadStrings(kEobBaseMenuStringsMgc, temp); + _menuStringsPrefs = _staticres->loadStrings(kEobBaseMenuStringsPrefs, temp); + _menuStringsRest2 = _staticres->loadStrings(kEobBaseMenuStringsRest2, temp); + _menuStringsDefeat = _staticres->loadStrings(kEobBaseMenuStringsDefeat, temp); + _menuStringsTransfer = _staticres->loadStrings(kEobBaseMenuStringsTransfer, temp); + _menuStringsSpec = _staticres->loadStrings(kEobBaseMenuStringsSpec, temp); + _menuStringsSpellNo = _staticres->loadStrings(kEobBaseMenuStringsSpellNo, temp); + _characterGuiStringsHp = _staticres->loadStrings(kEobBaseCharGuiStringsHp, temp); _characterGuiStringsWp = _staticres->loadStrings(_flags.gameID == GI_EOB2 ? kEobBaseCharGuiStringsWp2 : kEobBaseCharGuiStringsWp1, temp); _characterGuiStringsWr = _staticres->loadStrings(kEobBaseCharGuiStringsWr, temp); -- cgit v1.2.3