[Scummvm-git-logs] scummvm master -> 490297dc8cc3972b38704f6dddb8ae1bf2f53bca
bluegr
noreply at scummvm.org
Sat Nov 19 14:24:36 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c48989abdc NEVERHOOD: Enable Japanese version.
490297dc8c NEWS: Add an entry for Japanese Neverhood
Commit: c48989abdc1d284ea47c13a46536dcbb9c19ca71
https://github.com/scummvm/scummvm/commit/c48989abdc1d284ea47c13a46536dcbb9c19ca71
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2022-11-19T16:24:31+02:00
Commit Message:
NEVERHOOD: Enable Japanese version.
It was choking on missing "Making of". I tested by going through
first couple of puzzles and main menu. Menu is fully translated
but the puzzles are textless so far.
Changed paths:
engines/neverhood/blbarchive.cpp
engines/neverhood/blbarchive.h
engines/neverhood/detection.cpp
engines/neverhood/neverhood.cpp
engines/neverhood/resourceman.cpp
engines/neverhood/resourceman.h
diff --git a/engines/neverhood/blbarchive.cpp b/engines/neverhood/blbarchive.cpp
index 29c963d4e28..1f9aaf88fe2 100644
--- a/engines/neverhood/blbarchive.cpp
+++ b/engines/neverhood/blbarchive.cpp
@@ -54,14 +54,17 @@ BlbArchive::~BlbArchive() {
delete[] _extData;
}
-void BlbArchive::open(const Common::String &filename) {
+bool BlbArchive::open(const Common::String &filename, bool isOptional) {
BlbHeader header;
uint16 *extDataOffsets;
_entries.clear();
- if (!_fd.open(filename))
- error("BlbArchive::open() Could not open %s", filename.c_str());
+ if (!_fd.open(filename)) {
+ if (!isOptional)
+ error("BlbArchive::open() Could not open %s", filename.c_str());
+ return false;
+ }
header.id1 = _fd.readUint32LE();
header.id2 = _fd.readUint16LE();
@@ -69,8 +72,10 @@ void BlbArchive::open(const Common::String &filename) {
header.fileSize = _fd.readUint32LE();
header.fileCount = _fd.readUint32LE();
- if (header.id1 != 0x2004940 || header.id2 != 7 || header.fileSize != _fd.size())
+ if (header.id1 != 0x2004940 || header.id2 != 7 || header.fileSize != _fd.size()) {
error("BlbArchive::open() %s seems to be corrupt", filename.c_str());
+ return false;
+ }
debug(4, "%s: fileCount = %d", filename.c_str(), header.fileCount);
@@ -111,6 +116,7 @@ void BlbArchive::open(const Common::String &filename) {
delete[] extDataOffsets;
+ return true;
}
void BlbArchive::load(uint index, byte *buffer, uint32 size) {
diff --git a/engines/neverhood/blbarchive.h b/engines/neverhood/blbarchive.h
index d9033435ae2..575d9d1fba1 100644
--- a/engines/neverhood/blbarchive.h
+++ b/engines/neverhood/blbarchive.h
@@ -54,7 +54,7 @@ class BlbArchive {
public:
BlbArchive();
~BlbArchive();
- void open(const Common::String &filename);
+ bool open(const Common::String &filename, bool isOptional);
void load(uint index, byte *buffer, uint32 size);
void load(BlbArchiveEntry *entry, byte *buffer, uint32 size);
byte *getEntryExtData(uint index);
diff --git a/engines/neverhood/detection.cpp b/engines/neverhood/detection.cpp
index 8c85308832c..fa6d9c76f90 100644
--- a/engines/neverhood/detection.cpp
+++ b/engines/neverhood/detection.cpp
@@ -117,11 +117,11 @@ static const ADGameDescription gameDescriptions[] = {
// Bugreport #11074
{
"neverhood",
- _s("Missing game code"), // Reason for being unsupported
+ "",
AD_ENTRY1s("hd.blb", "c791725bbbc23c0f8bf78eece4555565", 4308928),
Common::JA_JPN,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | ADGF_UNSUPPORTED,
+ ADGF_DROPPLATFORM,
GUIO1(GUIO_NONE)
},
diff --git a/engines/neverhood/neverhood.cpp b/engines/neverhood/neverhood.cpp
index 498ee4d143e..eb89bf80e96 100644
--- a/engines/neverhood/neverhood.cpp
+++ b/engines/neverhood/neverhood.cpp
@@ -94,7 +94,8 @@ Common::Error NeverhoodEngine::run() {
_res->addArchive("c.blb");
_res->addArchive("hd.blb");
_res->addArchive("i.blb");
- _res->addArchive("m.blb");
+ // Japanese version is missing "making of".
+ _res->addArchive("m.blb", getLanguage() == Common::Language::JA_JPN);
_res->addArchive("s.blb");
_res->addArchive("t.blb");
}
diff --git a/engines/neverhood/resourceman.cpp b/engines/neverhood/resourceman.cpp
index cb90f539d41..76f6dc6507d 100644
--- a/engines/neverhood/resourceman.cpp
+++ b/engines/neverhood/resourceman.cpp
@@ -36,9 +36,10 @@ ResourceMan::ResourceMan() {
ResourceMan::~ResourceMan() {
}
-void ResourceMan::addArchive(const Common::String &filename) {
+void ResourceMan::addArchive(const Common::String &filename, bool isOptional) {
BlbArchive *archive = new BlbArchive();
- archive->open(filename);
+ if (!archive->open(filename, isOptional))
+ return;
_archives.push_back(archive);
debug(3, "ResourceMan::addArchive(%s) %d files", filename.c_str(), archive->getCount());
for (uint archiveEntryIndex = 0; archiveEntryIndex < archive->getCount(); archiveEntryIndex++) {
diff --git a/engines/neverhood/resourceman.h b/engines/neverhood/resourceman.h
index c39a99c1518..339e02aa1c8 100644
--- a/engines/neverhood/resourceman.h
+++ b/engines/neverhood/resourceman.h
@@ -70,7 +70,7 @@ class ResourceMan {
public:
ResourceMan();
~ResourceMan();
- void addArchive(const Common::String &filename);
+ void addArchive(const Common::String &filename, bool isOptional = false);
ResourceFileEntry *findEntrySimple(uint32 fileHash);
ResourceFileEntry *findEntry(uint32 fileHash, ResourceFileEntry **firstEntry = NULL);
Common::SeekableReadStream *createStream(uint32 fileHash);
Commit: 490297dc8cc3972b38704f6dddb8ae1bf2f53bca
https://github.com/scummvm/scummvm/commit/490297dc8cc3972b38704f6dddb8ae1bf2f53bca
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2022-11-19T16:24:31+02:00
Commit Message:
NEWS: Add an entry for Japanese Neverhood
Changed paths:
NEWS.md
diff --git a/NEWS.md b/NEWS.md
index 4871a922643..87837569b1c 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -33,6 +33,9 @@ For a more comprehensive changelog of the latest experimental code, see:
MADS:
- Added support for original floppy installer file layout for Rex Nebular.
+ Neverhood:
+ - Added support for Japanese version of Neverhood.
+
Queen:
- Added option for using a better font in Hebrew version.
More information about the Scummvm-git-logs
mailing list