[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