[Scummvm-git-logs] scummvm master -> 93630ba6218b72916838593f1f52315425c011f3
fracturehill
noreply at scummvm.org
Wed Nov 27 10:06:45 UTC 2024
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
809bd16cb1 NANCY: Fix console command in The Vampire Diaries
211815a566 NANCY: Fix language support
37aca37208 DEVTOOLS: Fix languages in create_nancy
93630ba621 DISTS: Update nancy.dat
Commit: 809bd16cb11ba9554af1366a004d35d3a59ca883
https://github.com/scummvm/scummvm/commit/809bd16cb11ba9554af1366a004d35d3a59ca883
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-11-27T11:04:29+01:00
Commit Message:
NANCY: Fix console command in The Vampire Diaries
The scan_ar_type command didn't take into account loose
.iff files
Changed paths:
engines/nancy/console.cpp
diff --git a/engines/nancy/console.cpp b/engines/nancy/console.cpp
index b17ed36c6aa..9f92d134c36 100644
--- a/engines/nancy/console.cpp
+++ b/engines/nancy/console.cpp
@@ -713,6 +713,12 @@ bool NancyConsole::Cmd_scanForActionRecordType(int argc, const char **argv) {
char descBuf[0x30];
+ Common::ArchiveMemberList searchManList;
+ SearchMan.listMatchingMembers(searchManList, "*.iff");
+ for (auto &i : searchManList) {
+ list.push_back(i->getPathInArchive());
+ }
+
for (Common::Path &cifName : list) {
Common::String name = cifName.baseName();
if (name.hasSuffixIgnoreCase(".iff")) {
Commit: 211815a56605542dbe55fc3db937944676468ab6
https://github.com/scummvm/scummvm/commit/211815a56605542dbe55fc3db937944676468ab6
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-11-27T11:04:29+01:00
Commit Message:
NANCY: Fix language support
The data in nancy.dat was reliant on the ordering of
the Common::Language enum, which this broke Russian
game variants. This commit adds support for a new
chunk type that defines a custom enumeration instead.
Changed paths:
engines/nancy/commontypes.cpp
diff --git a/engines/nancy/commontypes.cpp b/engines/nancy/commontypes.cpp
index ed5747bd30f..8aaa38983d3 100644
--- a/engines/nancy/commontypes.cpp
+++ b/engines/nancy/commontypes.cpp
@@ -410,7 +410,7 @@ void StaticData::readData(Common::SeekableReadStream &stream, Common::Language l
break;
case MKTAG('L', 'A', 'N', 'G') :
- // Order of languages inside game data
+ // Not used anymore
num = stream.readUint16LE();
languageID = -1;
for (uint16 i = 0; i < num; ++i) {
@@ -424,6 +424,42 @@ void StaticData::readData(Common::SeekableReadStream &stream, Common::Language l
}
break;
+ case MKTAG('L', 'A', 'N', '2') : {
+ // Order of languages inside game data
+ enum GameLanguage : byte { kEnglish = 0, kRussian = 1, kGerman = 2, kFrench = 3 };
+
+ num = stream.readUint16LE();
+ languageID = -1;
+ GameLanguage expectedLang = kEnglish;
+ switch (language) {
+ case Common::Language::EN_ANY:
+ languageID = kEnglish;
+ break;
+ case Common::Language::RU_RUS:
+ languageID = kRussian;
+ break;
+ case Common::Language::DE_DEU:
+ languageID = kGerman;
+ break;
+ case Common::Language::FR_FRA:
+ languageID = kFrench;
+ break;
+ default:
+ break;
+ }
+
+ for (uint16 i = 0; i < num; ++i) {
+ if (stream.readByte() == expectedLang) {
+ languageID = expectedLang;
+ }
+ }
+
+ if (languageID == -1) {
+ error("Language not present in nancy.dat");
+ }
+
+ break;
+ }
case MKTAG('C', 'D', 'L', 'G') :
// Conditional dialogue
num = stream.readUint16LE();
Commit: 37aca372088991a24e2f1e56c9fe00a7c267dcbb
https://github.com/scummvm/scummvm/commit/37aca372088991a24e2f1e56c9fe00a7c267dcbb
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-11-27T11:04:29+01:00
Commit Message:
DEVTOOLS: Fix languages in create_nancy
Replace Common::Language with a custom enum.
Changed paths:
devtools/create_nancy/create_nancy.cpp
devtools/create_nancy/nancy1_data.h
devtools/create_nancy/nancy2_data.h
devtools/create_nancy/nancy3_data.h
devtools/create_nancy/nancy4_data.h
devtools/create_nancy/nancy5_data.h
devtools/create_nancy/nancy6_data.h
devtools/create_nancy/nancy7_data.h
devtools/create_nancy/nancy8_data.h
devtools/create_nancy/tvd_data.h
devtools/create_nancy/types.h
diff --git a/devtools/create_nancy/create_nancy.cpp b/devtools/create_nancy/create_nancy.cpp
index 6f1b8f34013..61ff971d663 100644
--- a/devtools/create_nancy/create_nancy.cpp
+++ b/devtools/create_nancy/create_nancy.cpp
@@ -44,7 +44,7 @@
* 2 bytes Number of games (ignoring multiple languages)
* 4 bytes per game File offsets for every game's data
* Rest of file Game data
- *
+ *
* Game data contents:
* Various data sections, depending on title;
* e.g.: only nancy1 has a hint section, since later
@@ -53,14 +53,14 @@
* 4 bytes Offset to next section
* 4 bytes Section tag (generated using MKTAG macro)
* variable Section data
- *
+ *
* Arrays in the game data are variable-size.
* All arrays are preceded by a 2-byte size property.
* 2D arrays with strings (e.g conditional dialogue) are also preceded
* by a list of 4-byte offsets (one per language).
* All offsets are absolute (relative to start of file).
* All data is little endian.
- *
+ *
* Game order:
* The Vampire Diaries
* Nancy Drew: Secrets Can Kill
@@ -108,8 +108,8 @@ void writeSoundChannels(File &output, const SoundChannelInfo &soundChannelInfo)
writeToFile(output, soundChannelInfo.sfxChannels);
}
-void writeLanguages(File &output, const Common::Array<Common::Language> &languages) {
- output.writeUint32(MKTAG('L', 'A', 'N', 'G'));
+void writeLanguages(File &output, const Common::Array<GameLanguage> &languages) {
+ output.writeUint32(MKTAG('L', 'A', 'N', '2'));
writeToFile(output, languages);
}
@@ -209,7 +209,7 @@ int main(int argc, char *argv[]) {
WRAPWITHOFFSET(writeGoodbyes(output, _tvdGoodbyes, _tvdGoodbyeTexts))
WRAPWITHOFFSET(writeEmptySaveTexts(output, _tvdEmptySaveStrings))
WRAPWITHOFFSET(writeEventFlagNames(output, _tvdEventFlagNames))
-
+
// Nancy Drew: Secrets Can Kill data
gameOffsets.push_back(output.pos());
WRAPWITHOFFSET(writeConstants(output, _nancy1Constants))
@@ -222,7 +222,7 @@ int main(int argc, char *argv[]) {
WRAPWITHOFFSET(writeRingingTexts(output, _nancy1TelephoneRinging))
WRAPWITHOFFSET(writeEmptySaveTexts(output, _nancy1EmptySaveStrings))
WRAPWITHOFFSET(writeEventFlagNames(output, _nancy1EventFlagNames))
-
+
// Nancy Drew: Stay Tuned for Danger data
gameOffsets.push_back(output.pos());
WRAPWITHOFFSET(writeConstants(output, _nancy2Constants))
@@ -235,7 +235,7 @@ int main(int argc, char *argv[]) {
WRAPWITHOFFSET(writeEventFlagNames(output, _nancy2EventFlagNames))
WRAPWITHOFFSET(writePatchFile(output, 3, nancy2PatchSrcFiles, "files/nancy2"))
WRAPWITHOFFSET(writePatchAssociations(output, nancy2PatchAssociations))
-
+
// Nancy Drew: Message in a Haunted Mansion data
gameOffsets.push_back(output.pos());
WRAPWITHOFFSET(writeConstants(output, _nancy3Constants))
@@ -248,7 +248,7 @@ int main(int argc, char *argv[]) {
WRAPWITHOFFSET(writeEventFlagNames(output, _nancy3EventFlagNames))
WRAPWITHOFFSET(writePatchFile(output, 4, nancy3PatchSrcFiles, "files/nancy3"))
WRAPWITHOFFSET(writePatchAssociations(output, nancy3PatchAssociations))
-
+
// Nancy Drew: Treasure in the Royal Tower data
gameOffsets.push_back(output.pos());
WRAPWITHOFFSET(writeConstants(output, _nancy4Constants))
diff --git a/devtools/create_nancy/nancy1_data.h b/devtools/create_nancy/nancy1_data.h
index 2f1286a9c3c..3edf5b02dc5 100644
--- a/devtools/create_nancy/nancy1_data.h
+++ b/devtools/create_nancy/nancy1_data.h
@@ -39,9 +39,9 @@ const Common::Array<uint16> _nancy1MapAccessSceneIDs = {
9, 10, 11, 666, 888, 1200, 1250, 1666
};
-const Common::Array<Common::Language> _nancy1LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy1LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy1ConditionalDialogue = {
@@ -84,7 +84,7 @@ const Common::Array<Common::Array<ConditionalDialogue>> _nancy1ConditionalDialog
{ { kEv, 0x1E, kFalse }, { kEv, 0x63, kTrue }, { kEv, 0x78, kFalse } } }
},
{ // Connie, 10 responses
- { 26, 233, "CIC1",
+ { 26, 233, "CIC1",
{ { kEv, 0x1D, kTrue }, { kEv, 0x18, kFalse } } },
{ 25, 234, "CIC2",
{ { kEv, 0x1F, kTrue }, { kEv, 0x19, kFalse } } },
@@ -97,7 +97,7 @@ const Common::Array<Common::Array<ConditionalDialogue>> _nancy1ConditionalDialog
{ 21, 238, "CIC6",
{ { kEv, 2, kTrue }, { kEv, 3, kTrue }, { kEv, 0x17, kFalse } } },
{ 13, 239, "DIC5",
- { { kEv, 0x64, kTrue }, { kEv, 0x16, kFalse } } },
+ { { kEv, 0x64, kTrue }, { kEv, 0x16, kFalse } } },
{ 20, 240, "CIC8",
{ { kEv, 0x5, kTrue }, { kEv, 0x14, kFalse } } },
{ 19, 245, "CIC9",
diff --git a/devtools/create_nancy/nancy2_data.h b/devtools/create_nancy/nancy2_data.h
index 6dc14e2dc87..e7791701abe 100644
--- a/devtools/create_nancy/nancy2_data.h
+++ b/devtools/create_nancy/nancy2_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy2Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy2LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy2LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy2ConditionalDialogue = {
diff --git a/devtools/create_nancy/nancy3_data.h b/devtools/create_nancy/nancy3_data.h
index 2d82b992f59..b8f9b558fc9 100644
--- a/devtools/create_nancy/nancy3_data.h
+++ b/devtools/create_nancy/nancy3_data.h
@@ -42,9 +42,9 @@ const SoundChannelInfo _nancy3andUpSoundChannelInfo = {
{ 4, 5, 6, 7, 8, 9, 10, 11, 17, 18, 20, 21, 22, 23, 24, 25, 31 }
};
-const Common::Array<Common::Language> _nancy3LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy3LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy3ConditionalDialogue = {
@@ -212,7 +212,7 @@ const Common::Array<Common::Array<ConditionalDialogue>> _nancy3ConditionalDialog
},
{ // Ned, 0 responses
},
-{ // Rose,
+{ // Rose,
{ 75, 1750, "NRM17",
{ { kEv, 211, true }, { kEv, 186, false } } },
{ 76, 1751, "NRM18",
diff --git a/devtools/create_nancy/nancy4_data.h b/devtools/create_nancy/nancy4_data.h
index 984a40cc1d0..433dc9a342e 100644
--- a/devtools/create_nancy/nancy4_data.h
+++ b/devtools/create_nancy/nancy4_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy4Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy4LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy4LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy4ConditionalDialogue = {
@@ -300,7 +300,7 @@ const Common::Array<Common::Array<const char *>> _nancy4ConditionalDialogueTexts
"How can I get to that secret door when the elevator's always in the way?<h><n>", // NDN24a
// 65
"According to the decoder, the symbols in the stained glass window mean 'Purple Rose Holds Diamond Key of Queen.'<h><n>", // NDN25a
- "How do you think Ezra Wickford got his hands on Marie Antoinette's red medallion?<h><n>", // NDN26
+ "How do you think Ezra Wickford got his hands on Marie Antoinette's red medallion?<h><n>", // NDN26
"How do you think Professor Hotchkiss ended up with Marie Antoinette's green medallion?<h><n>", // NDN27
"What do you think 'hope to those who search' means?<h><n>", // NDN28
"What do you think 'Diamond of misery in my journal' means?<h><n>", // NDN29
diff --git a/devtools/create_nancy/nancy5_data.h b/devtools/create_nancy/nancy5_data.h
index 5cdeaf2cb23..821d478b10d 100644
--- a/devtools/create_nancy/nancy5_data.h
+++ b/devtools/create_nancy/nancy5_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy5Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy5LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy5LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy5ConditionalDialogue = {
diff --git a/devtools/create_nancy/nancy6_data.h b/devtools/create_nancy/nancy6_data.h
index b0074b9d654..c30e645e53e 100644
--- a/devtools/create_nancy/nancy6_data.h
+++ b/devtools/create_nancy/nancy6_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy6Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy6LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy6LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy6ConditionalDialogue = {
diff --git a/devtools/create_nancy/nancy7_data.h b/devtools/create_nancy/nancy7_data.h
index 0d9278a3ab1..04e9a31e481 100644
--- a/devtools/create_nancy/nancy7_data.h
+++ b/devtools/create_nancy/nancy7_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy7Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy7LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy7LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy7ConditionalDialogue = {
diff --git a/devtools/create_nancy/nancy8_data.h b/devtools/create_nancy/nancy8_data.h
index 4a2c127cd1d..0f1b44359f6 100644
--- a/devtools/create_nancy/nancy8_data.h
+++ b/devtools/create_nancy/nancy8_data.h
@@ -35,9 +35,9 @@ const GameConstants _nancy8Constants ={
32 // wonGameFlagID
};
-const Common::Array<Common::Language> _nancy8LanguagesOrder = {
- Common::Language::EN_ANY,
- Common::Language::RU_RUS
+const Common::Array<GameLanguage> _nancy8LanguagesOrder = {
+ GameLanguage::kEnglish,
+ GameLanguage::kRussian
};
const Common::Array<Common::Array<ConditionalDialogue>> _nancy8ConditionalDialogue = {
diff --git a/devtools/create_nancy/tvd_data.h b/devtools/create_nancy/tvd_data.h
index 11f5ae6bf92..65833cd91cb 100644
--- a/devtools/create_nancy/tvd_data.h
+++ b/devtools/create_nancy/tvd_data.h
@@ -44,8 +44,8 @@ const SoundChannelInfo _tvdToNancy2SoundChannelInfo = {
{ 3, 4, 5, 6, 17, 18, 20, 21, 22, 23, 24, 25, 26, 31 }
};
-const Common::Array<Common::Language> _tvdLanguagesOrder = {
- Common::Language::EN_ANY
+const Common::Array<GameLanguage> _tvdLanguagesOrder = {
+ GameLanguage::kEnglish
};
const Common::Array<Common::Array<ConditionalDialogue>> _tvdConditionalDialogue = {
diff --git a/devtools/create_nancy/types.h b/devtools/create_nancy/types.h
index 1b30ddf7f28..fbd0cf4d442 100644
--- a/devtools/create_nancy/types.h
+++ b/devtools/create_nancy/types.h
@@ -30,6 +30,7 @@
enum NancyFlag : byte { kFalse = 1, kTrue = 2 };
enum ConditionType : byte { kEv = 0, kIn = 1, kDi = 2 };
+enum GameLanguage : byte { kEnglish = 0, kRussian = 1, kGerman = 2, kFrench = 3 };
struct GameConstants {
uint16 numItems;
Commit: 93630ba6218b72916838593f1f52315425c011f3
https://github.com/scummvm/scummvm/commit/93630ba6218b72916838593f1f52315425c011f3
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-11-27T11:04:29+01:00
Commit Message:
DISTS: Update nancy.dat
Fix language support.
Changed paths:
dists/engine-data/nancy.dat
diff --git a/dists/engine-data/nancy.dat b/dists/engine-data/nancy.dat
index b31a621f200..a151d65ff77 100644
Binary files a/dists/engine-data/nancy.dat and b/dists/engine-data/nancy.dat differ
More information about the Scummvm-git-logs
mailing list