[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