[Scummvm-git-logs] scummvm master -> 8b929a584fac5022bfc6d061685326e68e2a5588

bluegr bluegr at gmail.com
Thu Jun 6 06:07:20 CEST 2019


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8b929a584f WINTERMUTE: Show warning on running 2.5D games


Commit: 8b929a584fac5022bfc6d061685326e68e2a5588
    https://github.com/scummvm/scummvm/commit/8b929a584fac5022bfc6d061685326e68e2a5588
Author: lolbot-iichan (lolbot_iichan at mail.ru)
Date: 2019-06-06T07:07:16+03:00

Commit Message:
WINTERMUTE: Show warning on running 2.5D games

This is shown for the 2 games added in
0d8834b5616aa8fc936c750ed92ef4423610d641, as both of them use
ACTOR3DX entities, i.e. 3D models, which are not supported in ScummVM

Changed paths:
    engines/wintermute/POTFILES
    engines/wintermute/base/base_file_manager.cpp
    engines/wintermute/base/base_file_manager.h
    engines/wintermute/base/file/base_package.cpp
    engines/wintermute/wintermute.cpp


diff --git a/engines/wintermute/POTFILES b/engines/wintermute/POTFILES
index e942241..79f5c5d 100644
--- a/engines/wintermute/POTFILES
+++ b/engines/wintermute/POTFILES
@@ -1 +1,2 @@
 engines/wintermute/detection.cpp
+engines/wintermute/wintermute.cpp
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp
index 05830ff..b026bbe 100644
--- a/engines/wintermute/base/base_file_manager.cpp
+++ b/engines/wintermute/base/base_file_manager.cpp
@@ -337,6 +337,10 @@ bool BaseFileManager::hasFile(const Common::String &filename) {
 	return false;
 }
 
+int BaseFileManager::listMatchingMembers(Common::ArchiveMemberList &list, const Common::String &pattern) {
+	return _packages.listMatchingMembers(list, pattern);
+}
+
 //////////////////////////////////////////////////////////////////////////
 Common::SeekableReadStream *BaseFileManager::openFile(const Common::String &filename, bool absPathWarning, bool keepTrackOf) {
 	if (strcmp(filename.c_str(), "") == 0) {
diff --git a/engines/wintermute/base/base_file_manager.h b/engines/wintermute/base/base_file_manager.h
index d953e44..2c67d83 100644
--- a/engines/wintermute/base/base_file_manager.h
+++ b/engines/wintermute/base/base_file_manager.h
@@ -42,6 +42,7 @@ public:
 
 	bool closeFile(Common::SeekableReadStream *File);
 	bool hasFile(const Common::String &filename);
+	int listMatchingMembers(Common::ArchiveMemberList &list, const Common::String &pattern);
 	Common::SeekableReadStream *openFile(const Common::String &filename, bool absPathWarning = true, bool keepTrackOf = true);
 	byte *readWholeFile(const Common::String &filename, uint32 *size = nullptr, bool mustExist = true);
 
diff --git a/engines/wintermute/base/file/base_package.cpp b/engines/wintermute/base/file/base_package.cpp
index ae49553..b80547f 100644
--- a/engines/wintermute/base/file/base_package.cpp
+++ b/engines/wintermute/base/file/base_package.cpp
@@ -206,6 +206,7 @@ PackageSet::PackageSet(Common::FSNode file, const Common::String &filename, bool
 				fileEntry->_length = length;
 				fileEntry->_compressedLength = compLength;
 				fileEntry->_flags = flags;
+				fileEntry->_filename = upcName;
 
 				_files[upcName] = Common::ArchiveMemberPtr(fileEntry);
 			} else {
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index 21e6c58..7ee28f0 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -29,6 +29,7 @@
 #include "common/file.h"
 #include "common/fs.h"
 #include "common/tokenizer.h"
+#include "common/translation.h"
 
 #include "engines/util.h"
 #include "engines/wintermute/ad/ad_game.h"
@@ -149,7 +150,7 @@ int WintermuteEngine::init() {
 	// check dependencies for games with high resolution assets
 	#if not defined(USE_PNG) || not defined(USE_JPEG) || not defined(USE_VORBIS)
 		if (!(_gameDescription->adDesc.flags & GF_LOWSPEC_ASSETS)) {
-			GUI::MessageDialog dialog("This game requires PNG, JPEG and Vorbis support.");
+			GUI::MessageDialog dialog(_("This game requires PNG, JPEG and Vorbis support."));
 			dialog.runModal();
 			delete _game;
 			_game = nullptr;
@@ -157,6 +158,20 @@ int WintermuteEngine::init() {
 		}
 	#endif
 
+	Common::ArchiveMemberList actors3d;
+	if (BaseEngine::instance().getFileManager()->listMatchingMembers(actors3d, "*.act3d")) {
+		GUI::MessageDialog dialog(
+				_("This game requires 3D characters support, which is out of ScummVM's scope."),
+				_("Start anyway"),
+				_("Cancel")
+			);
+		if (dialog.runModal() != GUI::kMessageOK) {
+			delete _game;
+			_game = nullptr;
+			return false;
+		}
+	}
+
 	_game = new AdGame(_targetName);
 	if (!_game) {
 		return 1;





More information about the Scummvm-git-logs mailing list