[Scummvm-git-logs] scummvm master -> 3f42f212d478c84876db3fb240ae18124f9a7b2b
bgK
bastien.bouclet at gmail.com
Thu Nov 2 19:49:55 CET 2017
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:
9b9600a50f VIDEO: Express VideoDecoder::endOfVideo using easier to understand logic
2f733c812a BASE: Minor command line detection cleanup
f4a0566e37 MOHAWK: RIVEN: Remove the testing flag
3f42f212d4 NEWS: Add important Myst bug fixes
Commit: 9b9600a50f10cdc5dcfc1d43c0ff27a5728a98ef
https://github.com/scummvm/scummvm/commit/9b9600a50f10cdc5dcfc1d43c0ff27a5728a98ef
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2017-11-02T19:49:43+01:00
Commit Message:
VIDEO: Express VideoDecoder::endOfVideo using easier to understand logic
Changed paths:
video/video_decoder.cpp
diff --git a/video/video_decoder.cpp b/video/video_decoder.cpp
index 980138c..6e408ba 100644
--- a/video/video_decoder.cpp
+++ b/video/video_decoder.cpp
@@ -293,9 +293,14 @@ uint32 VideoDecoder::getTimeToNextFrame() const {
}
bool VideoDecoder::endOfVideo() const {
- for (TrackList::const_iterator it = _tracks.begin(); it != _tracks.end(); it++)
- if (!(*it)->endOfTrack() && (!isPlaying() || (*it)->getTrackType() != Track::kTrackTypeVideo || !_endTimeSet || ((VideoTrack *)*it)->getNextFrameStartTime() < (uint)_endTime.msecs()))
+ for (TrackList::const_iterator it = _tracks.begin(); it != _tracks.end(); it++) {
+ const Track *track = *it;
+
+ bool videoEndTimeReached = _endTimeSet && track->getTrackType() == Track::kTrackTypeVideo && ((const VideoTrack *)track)->getNextFrameStartTime() >= (uint)_endTime.msecs();
+ bool endReached = track->endOfTrack() || (isPlaying() && videoEndTimeReached);
+ if (!endReached)
return false;
+ }
return true;
}
@@ -910,9 +915,17 @@ bool VideoDecoder::hasFramesLeft() const {
// This is similar to endOfVideo(), except it doesn't take Audio into account (and returns true if not the end of the video)
// This is only used for needsUpdate() atm so that setEndTime() works properly
// And unlike endOfVideoTracks(), this takes into account _endTime
- for (TrackList::const_iterator it = _tracks.begin(); it != _tracks.end(); it++)
- if ((*it)->getTrackType() == Track::kTrackTypeVideo && !(*it)->endOfTrack() && (!isPlaying() || !_endTimeSet || ((VideoTrack *)*it)->getNextFrameStartTime() < (uint)_endTime.msecs()))
+ for (TrackList::const_iterator it = _tracks.begin(); it != _tracks.end(); it++) {
+ if ((*it)->getTrackType() != Track::kTrackTypeVideo)
+ continue;
+
+ const VideoTrack *track = (const VideoTrack *)*it;
+
+ bool videoEndTimeReached = _endTimeSet && track->getNextFrameStartTime() >= (uint)_endTime.msecs();
+ bool endReached = track->endOfTrack() || (isPlaying() && videoEndTimeReached);
+ if (!endReached)
return true;
+ }
return false;
}
Commit: 2f733c812aaa1726dbba9f987270a585505e9953
https://github.com/scummvm/scummvm/commit/2f733c812aaa1726dbba9f987270a585505e9953
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2017-11-02T19:49:43+01:00
Commit Message:
BASE: Minor command line detection cleanup
Changed paths:
base/commandLine.cpp
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 62219b2..640daa1 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -807,7 +807,7 @@ static void listAudioDevices() {
}
/** Display all games in the given directory, or current directory if empty */
-static GameList getGameList(Common::FSNode dir) {
+static GameList getGameList(const Common::FSNode &dir) {
Common::FSList files;
//Collect all files from directory
@@ -827,7 +827,7 @@ static GameList getGameList(Common::FSNode dir) {
}
static bool addGameToConf(const GameDescriptor &gd) {
- Common::String domain = gd.preferredtarget();
+ const Common::String &domain = gd.preferredtarget();
// If game has already been added, don't add
if (ConfMan.hasGameDomain(domain))
@@ -852,7 +852,7 @@ static bool addGameToConf(const GameDescriptor &gd) {
return true;
}
-static GameList recListGames(Common::FSNode dir, Common::String gameId, bool recursive) {
+static GameList recListGames(const Common::FSNode &dir, const Common::String &gameId, bool recursive) {
GameList list = getGameList(dir);
if (recursive) {
@@ -871,11 +871,8 @@ static GameList recListGames(Common::FSNode dir, Common::String gameId, bool rec
}
/** Display all games in the given directory, return ID of first detected game */
-static Common::String detectGames(Common::String path, Common::String gameId, Common::String recursiveOptStr) {
+static Common::String detectGames(const Common::String &path, const Common::String &gameId, bool recursive) {
bool noPath = path.empty();
- if (noPath)
- path = ".";
- bool recursive = (recursiveOptStr == "true");
//Current directory
Common::FSNode dir(path);
GameList candidates = recListGames(dir, gameId, recursive);
@@ -900,7 +897,7 @@ static Common::String detectGames(Common::String path, Common::String gameId, Co
return candidates[0].gameid();
}
-static int recAddGames(Common::FSNode dir, Common::String game, bool recursive) {
+static int recAddGames(const Common::FSNode &dir, const Common::String &game, bool recursive) {
int count = 0;
GameList list = getGameList(dir);
for (GameList::iterator v = list.begin(); v != list.end(); ++v) {
@@ -927,15 +924,12 @@ static int recAddGames(Common::FSNode dir, Common::String game, bool recursive)
return count;
}
-static bool addGames(Common::String path, Common::String game, Common::String recursiveOptStr) {
- if (path.empty())
- path = ".";
- bool recursive = (recursiveOptStr == "true");
+static bool addGames(const Common::String &path, const Common::String &game, bool recursive) {
//Current directory
Common::FSNode dir(path);
int added = recAddGames(dir, game, recursive);
printf("Added %d games\n", added);
- if (added == 0 && recursive == false) {
+ if (added == 0 && !recursive) {
printf("Consider using --recursive to search inside subdirectories\n");
}
ConfMan.flushToDisk();
@@ -1168,10 +1162,11 @@ bool processSettings(Common::String &command, Common::StringMap &settings, Commo
printf(HELP_STRING, s_appName);
return true;
} else if (command == "auto-detect") {
+ bool resursive = settings["recursive"] == "true";
// If auto-detects fails (returns an empty ID) return true to close ScummVM.
// If we get a non-empty ID, we store it in command so that it gets processed together with the
// other command line options below.
- if (settings["recursive"] == "true") {
+ if (resursive) {
printf("ERROR: Autodetection not supported with --recursive; are you sure you didn't want --detect?\n");
err = Common::kUnknownError;
return true;
@@ -1179,17 +1174,17 @@ bool processSettings(Common::String &command, Common::StringMap &settings, Commo
// From an UX point of view, however, it might get confusing.
// Consider removing this if consensus says otherwise.
} else {
- command = detectGames(settings["path"], settings["game"], settings["recursive"]);
+ command = detectGames(settings["path"], settings["game"], resursive);
if (command.empty()) {
err = Common::kNoGameDataFoundError;
return true;
}
}
} else if (command == "detect") {
- detectGames(settings["path"], settings["game"], settings["recursive"]);
+ detectGames(settings["path"], settings["game"], settings["recursive"] == "true");
return true;
} else if (command == "add") {
- addGames(settings["path"], settings["game"], settings["recursive"]);
+ addGames(settings["path"], settings["game"], settings["recursive"] == "true");
return true;
}
#ifdef DETECTOR_TESTING_HACK
Commit: f4a0566e37c6c97032bd53821ab8c30939063a45
https://github.com/scummvm/scummvm/commit/f4a0566e37c6c97032bd53821ab8c30939063a45
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2017-11-02T19:49:43+01:00
Commit Message:
MOHAWK: RIVEN: Remove the testing flag
Changed paths:
engines/mohawk/detection_tables.h
diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h
index 0cb1204..e35fc84 100644
--- a/engines/mohawk/detection_tables.h
+++ b/engines/mohawk/detection_tables.h
@@ -330,7 +330,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "71145fdecbd68a0cfc292c2fbddf8e08"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -348,7 +348,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "d8ccae34a0e3c709135a73f449b783be"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -366,7 +366,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "249e8c995d191b03ee94c892c0eac775"),
Common::ES_ESP,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -384,7 +384,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "aff2a384aaa9a0e0ec51010f708c5c04"),
Common::FR_FRA,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -402,7 +402,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "0e21e89df7788f32056b6521abf2e81a"),
Common::IT_ITA,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -419,7 +419,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1s("a_Data.MHK", "2a840ed74fe5dc3a388bced674d379d5", 12024358),
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -436,7 +436,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "59bd2e3ccbae2f1faa1b23a18dc316eb"),
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -455,7 +455,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1s("a_Data.MHK", "3a2b4764979dc007a0e6ded64e4b7889", 10014314),
Common::JA_JPN,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -473,7 +473,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "08fcaa5d5a2a01d7a5a6960f497212fe"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -491,7 +491,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "a5fe1c91a6033eb6ee54b287578b74b9"),
Common::DE_DEU,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -509,7 +509,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "733a710cf5f848b441ec72d988ab8a3d"),
Common::PL_POL,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -526,7 +526,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "b5f40e6e6b843bf3abea291faa0911f4"),
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_TESTING,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -544,7 +544,7 @@ static const MohawkGameDescription gameDescriptions[] = {
AD_ENTRY1("a_Data.MHK", "bae6b03bd8d6eb350d35fd13f0e3139f"),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DEMO | ADGF_TESTING,
+ ADGF_DEMO,
GUI_OPTIONS_RIVEN_DEMO
},
GType_RIVEN,
@@ -2856,7 +2856,7 @@ static const MohawkGameDescription fallbackDescs[] = {
AD_ENTRY1(0, 0),
Common::UNK_LANG,
Common::kPlatformWindows,
- ADGF_UNSTABLE,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
@@ -2871,7 +2871,7 @@ static const MohawkGameDescription fallbackDescs[] = {
AD_ENTRY1(0, 0),
Common::UNK_LANG,
Common::kPlatformWindows,
- ADGF_UNSTABLE,
+ ADGF_NO_FLAGS,
GUI_OPTIONS_RIVEN
},
GType_RIVEN,
Commit: 3f42f212d478c84876db3fb240ae18124f9a7b2b
https://github.com/scummvm/scummvm/commit/3f42f212d478c84876db3fb240ae18124f9a7b2b
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2017-11-02T19:49:43+01:00
Commit Message:
NEWS: Add important Myst bug fixes
Changed paths:
NEWS
diff --git a/NEWS b/NEWS
index 02e95d7..fa21476 100644
--- a/NEWS
+++ b/NEWS
@@ -57,6 +57,12 @@ For a more comprehensive changelog of the latest experimental code, see:
MADE:
- Fixed badly distorted sound (bug #9753).
+ MOHAWK:
+ - Added patch to the original data files to correct the vault access
+ instructions in Myst ME.
+ - Fixed situations where Myst could appear to be unresponsive.
+ - Reworked sound handling in Myst to be more accurate.
+
SCI:
- Improved startup speed when using the MT-32 emulator.
- Improved handling of MT-32 reverb in SCI0 games.
More information about the Scummvm-git-logs
mailing list