[Scummvm-cvs-logs] scummvm branch-1-8 -> 61cd09f49086daf6ed91f4a7232ddd5737139ba2

sev- sev at scummvm.org
Mon Mar 28 00:07:11 CEST 2016


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

Summary:
f7a9c82e0f EVENTRECORDER: Fix incorrect check which prevented records from replay
07dc5bdad0 OS X: Implement saving recent games list to user preferences
eae40af3c3 OS X: Implement a Dock Tile Plugin to display recent games menu in dock
b7237df392 OS X: Add missing includes for recently introduced taskbar code
56245e7e8f OS X: Fix access to NSArray items with older SDKs
7531013858 OS X: Clean taskbar code
dab828a818 CONFIGURE: Only check Sparkle and NSDockTilePlugIn availability on OS X
9010587f12 SAGA: Added German fan-translated IHNM detection. Bug #7091
199d2d25ec UPDATES: Added our public Sparkle key
8449c447b1 UPDATES: Update Sparkle appcast with 1.8.0.
2cfd432c3f UPDATES: Rename Sparkle appcast to common name
e29c257565 UPDATES: Update Sparkle Appcast URL in the bundle plist
821c29c7b6 BUILD: Add target for uploading Sparkle appcast
5239e3522b I18N: Fix wording in Russian localization
49246c4414 I18N: Fix wording in Ukrainian localization
c5e391f1e6 I18N: Regenerated translations.dat
1bd48c55f3 NEWS: List recent games in dock menu on OS X.
61cd09f490 NEWS/DE: List recent games in dock menu on OS X.


Commit: f7a9c82e0f1d5e97a04a96ca67d1579429bb639e
    https://github.com/scummvm/scummvm/commit/f7a9c82e0f1d5e97a04a96ca67d1579429bb639e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
EVENTRECORDER: Fix incorrect check which prevented records from replay

Changed paths:
    gui/EventRecorder.cpp



diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp
index d0371f5..3f91cfa 100644
--- a/gui/EventRecorder.cpp
+++ b/gui/EventRecorder.cpp
@@ -330,7 +330,7 @@ bool EventRecorder::openRecordFile(const Common::String &fileName) {
 }
 
 bool EventRecorder::checkGameHash(const ADGameDescription *gameDesc) {
-	if (_playbackFile->getHeader().hashRecords.size() != 0) {
+	if (_playbackFile->getHeader().hashRecords.size() == 0) {
 		warning("Engine doesn't contain description table");
 		return false;
 	}
@@ -676,4 +676,3 @@ void EventRecorder::deleteTemporarySave() {
 } // End of namespace GUI
 
 #endif // ENABLE_EVENTRECORDER
-


Commit: 07dc5bdad0b1fd1c2146299f916a4bb263b69706
    https://github.com/scummvm/scummvm/commit/07dc5bdad0b1fd1c2146299f916a4bb263b69706
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
OS X: Implement saving recent games list to user preferences

Changed paths:
    backends/taskbar/macosx/macosx-taskbar.h
    backends/taskbar/macosx/macosx-taskbar.mm



diff --git a/backends/taskbar/macosx/macosx-taskbar.h b/backends/taskbar/macosx/macosx-taskbar.h
index 5d5b9d0..55bb97a 100644
--- a/backends/taskbar/macosx/macosx-taskbar.h
+++ b/backends/taskbar/macosx/macosx-taskbar.h
@@ -37,6 +37,7 @@ public:
 	virtual void setProgressValue(int completed, int total);
 	virtual void setProgressState(TaskbarProgressState state);
 	virtual void setCount(int count);
+	virtual void addRecent(const Common::String &name, const Common::String &description);
 	virtual void notifyError();
 	virtual void clearError();
 	
diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index ae087df..1b19ea0 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -29,9 +29,6 @@
 // NSDockTile was introduced with Mac OS X 10.5.
 // Try provide backward compatibility by avoiding NSDockTile symbols.
 
-// TODO: Implement recent list, maybe as a custom menu on dock tile when app is not running
-// See Dock Tile plug-in at https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html
-
 #include "backends/taskbar/macosx/macosx-taskbar.h"
 #include "common/config-manager.h"
 #include "common/file.h"
@@ -234,5 +231,80 @@ return (path); \
 	return "";
 }
 
+void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::String &description) {
+	// TODO: Implement recent list, maybe as a custom menu on dock tile when app is not running
+	// See Dock Tile plug-in at https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html
+
+	//warning("[MacOSXTaskbarManager::addRecent] Adding recent list entry: %s (%s)", name.c_str(), description.c_str());
+	
+	if (_dockTile == nil)
+		return;
+	
+	// Store the game, description and icon in user preferences.
+	// The NSDockTilePlugin will retrieve them there to list them in the dock tile menu.
+	
+	CFStringRef gameName = CFStringCreateWithCString(0, name.c_str(), kCFStringEncodingASCII);
+	CFStringRef desc = CFStringCreateWithCString(0, description.c_str(), kCFStringEncodingASCII);
+	
+	// First build the dictionary for this game.
+	NSMutableDictionary *dict = [[NSMutableDictionary  alloc] init];
+	[dict setObject:(NSString *)gameName forKey:@"game"];
+	[dict setObject:(NSString *)desc forKey:@"description"];
+	
+	// Icon
+	Common::String iconPath = getIconPath(name);
+	if (!iconPath.empty()) {
+		CFStringRef icon = CFStringCreateWithCString(0, iconPath.c_str(), kCFStringEncodingASCII);
+		[dict setObject:(NSString *)icon forKey:@"icon"];
+		CFRelease(icon);
+	}
+	
+	// Retrieve the current list of recent items and update it.
+	NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+	NSArray* oldArray = [defaults arrayForKey:@"recentGames"];
+	if (oldArray == nil) {
+		[defaults setObject:[NSArray arrayWithObject:dict] forKey:@"recentGames"];
+	} else {
+		NSMutableArray* newArray = [[NSMutableArray alloc] initWithArray:oldArray];
+		// Insert the new game at the start
+		[newArray insertObject:dict atIndex:0];
+		// If the game was already present in the array, remove it
+		for (int i = 1 ; i < [newArray count] ; ++i) {
+			NSDictionary* oldDict = newArray[i];
+			if (oldDict == nil)
+				continue;
+			NSString* oldGame = [oldDict valueForKey:@"game"];
+			if (oldGame != nil && [oldGame isEqualToString:(NSString*)gameName]) {
+				[newArray removeObjectAtIndex:i];
+				break;
+			}
+		}
+		// And make sure we limit the size of the array to 5 games
+		if ([newArray count] > 5)
+			[newArray removeLastObject];
+		[defaults setObject:newArray forKey:@"recentGames"];
+		[newArray release];
+	}
+
+	// Finally release the dictionary
+	[dict release];
+	CFRelease(gameName);
+	CFRelease(desc);
+	
+	
+	// The command to use would be "open " + path + " --args " + game.
+	// NSString *cmdString = [NSString stringWithFormat:@"open %@ --args %@", bundlePath, gameName];
+	// We could use [[NSBundle mainBundle] bundlePath] to get the path here and then store it in the user preferences.
+	// Or we can let the NSDockTilePlugin find the path with:
+	// NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"];
+	// We can then also use NSWorkspace to launch the app.
+	// if (scummVMPath == nil)
+	//		return;
+	// NSURL* url = [NSURL fileURLWithPath:scummVMPath];
+	// [NSWorkspace launchApplicationAtURL:url options: configuration: error:] to start the application with some arguments
+
+}
+
+
 
 #endif


Commit: eae40af3c38028de7e9a8d155cacec308f8aecc7
    https://github.com/scummvm/scummvm/commit/eae40af3c38028de7e9a8d155cacec308f8aecc7
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
OS X: Implement a Dock Tile Plugin to display recent games menu in dock

This allows to start a recently played game directly from the dock. The
ScummVM.app application should have been permanently added to the
dock and the menu is only present when ScummVM is not running. The
list of recently played game is written by the taskbar code in ScummVM.
The Dock Tile Plugin only reads that list to populate the menu.

Changed paths:
  A dists/macosx/dockplugin/Info.plist
  A dists/macosx/dockplugin/Info.plist.in
  A dists/macosx/dockplugin/dockplugin.m
    .gitignore
    backends/taskbar/macosx/macosx-taskbar.mm
    configure
    devtools/update-version.pl
    dists/macosx/Info.plist
    dists/macosx/Info.plist.in
    ports.mk



diff --git a/.gitignore b/.gitignore
index 03e3393..3e80289 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ lib*.a
 /config.log
 /scummvm
 /scummvm-static
+/ScummVMDockTilePlugin*
 /config.h
 /config.mk
 /.gdb_history
@@ -19,6 +20,7 @@ lib*.a
 /MT32_CONTROL.ROM
 /MT32_PCM.ROM
 /ScummVM.app
+/scummvm.docktileplugin
 /scummvm-ps3.pkg
 /*.ipk
 /.project
diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index 1b19ea0..0b1f6b9 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -232,9 +232,6 @@ return (path); \
 }
 
 void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::String &description) {
-	// TODO: Implement recent list, maybe as a custom menu on dock tile when app is not running
-	// See Dock Tile plug-in at https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html
-
 	//warning("[MacOSXTaskbarManager::addRecent] Adding recent list entry: %s (%s)", name.c_str(), description.c_str());
 	
 	if (_dockTile == nil)
@@ -290,19 +287,6 @@ void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::S
 	[dict release];
 	CFRelease(gameName);
 	CFRelease(desc);
-	
-	
-	// The command to use would be "open " + path + " --args " + game.
-	// NSString *cmdString = [NSString stringWithFormat:@"open %@ --args %@", bundlePath, gameName];
-	// We could use [[NSBundle mainBundle] bundlePath] to get the path here and then store it in the user preferences.
-	// Or we can let the NSDockTilePlugin find the path with:
-	// NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"];
-	// We can then also use NSWorkspace to launch the app.
-	// if (scummVMPath == nil)
-	//		return;
-	// NSURL* url = [NSURL fileURLWithPath:scummVMPath];
-	// [NSWorkspace launchApplicationAtURL:url options: configuration: error:] to start the application with some arguments
-
 }
 
 
diff --git a/configure b/configure
index 88b8456..6867563 100755
--- a/configure
+++ b/configure
@@ -128,6 +128,7 @@ _timidity=auto
 _zlib=auto
 _mpeg2=auto
 _sparkle=auto
+_osxdockplugin=auto
 _jpeg=auto
 _png=auto
 _theoradec=auto
@@ -985,6 +986,8 @@ Optional Libraries:
   --with-sparkle-prefix=DIR   Prefix where sparkle is installed (Mac OS X only - optional)
   --disable-sparkle        disable sparkle automatic update support [Mac OS X only - autodetect]
 
+  --disable-osx-dock-plugin disable the NSDockTilePlugin support [Mac OS X only - autodetect]
+
   --with-sdl-prefix=DIR    Prefix where the sdl-config script is
                            installed (optional)
 
@@ -1047,6 +1050,8 @@ for ac_option in $@; do
 	--disable-zlib)           _zlib=no        ;;
 	--enable-sparkle)         _sparkle=yes    ;;
 	--disable-sparkle)        _sparkle=no     ;;
+	--enable-osx-dock-plugin) _osxdockplugin=yes;;
+	--disable-osx-dock-plugin) _osxdockplugin=no;;
 	--enable-nasm)            _nasm=yes       ;;
 	--disable-nasm)           _nasm=no        ;;
 	--enable-mpeg2)           _mpeg2=yes      ;;
@@ -3935,6 +3940,24 @@ fi
 echo "$_sparkle"
 
 #
+# Check is NSDockTilePlugIn protocol is supported
+#
+# NSDockTilePlugIn was added in OS X 10.6, so will not be available when compiling on older OS X versions.
+echocheck "DockTilePlugin"
+if test "$_osxdockplugin" = auto ; then
+	_osxdockplugin=no
+	cat > $TMPC << EOF
+#include <Cocoa/Cocoa.h>
+ at interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> {
+}
+ at end
+EOF
+	cc_check -c -ObjC++ && _osxdockplugin=yes
+fi
+define_in_config_if_yes "$_osxdockplugin" 'USE_DOCKTILEPLUGIN'
+echo "$_osxdockplugin"
+
+#
 # Check for FluidSynth
 #
 echocheck "FluidSynth"
diff --git a/devtools/update-version.pl b/devtools/update-version.pl
index 337bad3..3b5f892 100755
--- a/devtools/update-version.pl
+++ b/devtools/update-version.pl
@@ -37,6 +37,7 @@ my @subs_files = qw(
 	dists/scummvm.rc
 	dists/slackware/scummvm.SlackBuild
 	dists/macosx/Info.plist
+	dists/macosx/dockplugin/Info.plist
 	dists/iphone/Info.plist
 	dists/ios7/Info.plist
 	dists/irix/scummvm.spec
diff --git a/dists/macosx/Info.plist b/dists/macosx/Info.plist
index b91af0f..1e1e84a 100644
--- a/dists/macosx/Info.plist
+++ b/dists/macosx/Info.plist
@@ -54,6 +54,8 @@
 	<string>NSApplication</string>
 	<key>SUFeedURL</key>
 	<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+	<key>NSDockTilePlugIn</key>
+	<string>scummvm.docktileplugin</string>
 	<key>SUPublicDSAKeyFile</key>
 	<string>dsa_pub.pem</string>
 </dict>
diff --git a/dists/macosx/Info.plist.in b/dists/macosx/Info.plist.in
index 55be27d..7ba49f2 100644
--- a/dists/macosx/Info.plist.in
+++ b/dists/macosx/Info.plist.in
@@ -54,6 +54,8 @@
 	<string>NSApplication</string>
 	<key>SUFeedURL</key>
 	<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+	<key>NSDockTilePlugIn</key>
+	<string>scummvm.docktileplugin</string>
 	<key>SUPublicDSAKeyFile</key>
 	<string>dsa_pub.pem</string>
 </dict>
diff --git a/dists/macosx/dockplugin/Info.plist b/dists/macosx/dockplugin/Info.plist
new file mode 100644
index 0000000..c66f96a
--- /dev/null
+++ b/dists/macosx/dockplugin/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>ScummVMDockTilePlugin</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.scummvm.scummvm.DockTilePlugin</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.9.0git</string>
+	<key>CFBundleVersion</key>
+	<string>1.9.0git</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 2001-2016 The ScummVM Team</string>
+	<key>NSPrincipalClass</key>
+	<string>ScummVMDockTilePlugIn</string>
+</dict>
+</plist>
diff --git a/dists/macosx/dockplugin/Info.plist.in b/dists/macosx/dockplugin/Info.plist.in
new file mode 100644
index 0000000..851fc70
--- /dev/null
+++ b/dists/macosx/dockplugin/Info.plist.in
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>ScummVMDockTilePlugin</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.scummvm.scummvm.DockTilePlugin</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>@VERSION@</string>
+	<key>CFBundleVersion</key>
+	<string>@VERSION@</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 2001-2016 The ScummVM Team</string>
+	<key>NSPrincipalClass</key>
+	<string>ScummVMDockTilePlugIn</string>
+</dict>
+</plist>
diff --git a/dists/macosx/dockplugin/dockplugin.m b/dists/macosx/dockplugin/dockplugin.m
new file mode 100644
index 0000000..9bf0b9b
--- /dev/null
+++ b/dists/macosx/dockplugin/dockplugin.m
@@ -0,0 +1,125 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <Cocoa/Cocoa.h>
+
+ at interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> {
+	NSMenu* recentGamesMenu;
+}
+ at end
+
+ at interface StartGameMenuItem : NSMenuItem {
+	NSString* game;
+}
+- (IBAction) startGame;
+- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile;
+ at end
+
+ at implementation ScummVMDockTilePlugIn
+
+- (id)init {
+	self = [super init];
+	if (self) {
+		recentGamesMenu = nil;
+	}
+	return self;
+}
+
+- (void)dealloc {
+	[recentGamesMenu release];
+	[super dealloc];
+}
+
+
+- (void)setDockTile:(NSDockTile *)dockTile {
+}
+
+- (NSMenu*)dockMenu {
+	// Get the list or recent games
+	CFPreferencesAppSynchronize(CFSTR("org.scummvm.scummvm"));
+	NSArray* array = CFPreferencesCopyAppValue(CFSTR("recentGames"), CFSTR("org.scummvm.scummvm"));
+	if (array == nil)
+		return nil;
+
+	// Create the menu
+	if (recentGamesMenu == nil)
+		recentGamesMenu = [[NSMenu alloc] init];
+	else
+		[recentGamesMenu removeAllItems];
+
+	NSEnumerator *enumerator = [array objectEnumerator];
+	NSDictionary* recentGame;
+	while (recentGame = [enumerator nextObject]) {
+		NSString* gameId = [recentGame valueForKey:@"game"];
+		NSString* desc = [recentGame valueForKey:@"description"];
+		NSString* iconFile = [recentGame valueForKey:@"icon"];
+		
+		StartGameMenuItem* menuItem = [[StartGameMenuItem alloc] initWithGame:gameId description:desc icon:iconFile];
+		[recentGamesMenu addItem:menuItem];
+		[menuItem release];
+	}
+
+	return recentGamesMenu;
+}
+
+ at end
+
+ at implementation StartGameMenuItem
+
+- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile {
+	self = [super initWithTitle:(desc == nil ? gameId : desc) action:@selector(startGame) keyEquivalent:@""];
+	[self setTarget:self];
+	
+	if (iconFile != nil) {
+		NSImage* image = [[NSImage alloc] initWithContentsOfFile:iconFile];
+		[self setImage:image];
+		[image release];
+	}
+
+	game = gameId;
+	[game retain];
+	
+	return self;
+}
+
+- (void)dealloc {
+	[game release];
+	[super dealloc];
+}
+
+- (IBAction) startGame {
+	NSLog(@"Starting Game %@...", game);
+	
+	NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"];
+	if (scummVMPath == nil) {
+		NSLog(@"Cannot find ScummVM.app!");
+		return;
+	}
+	// Start ScummVM.app with the game ID as argument
+	NSURL* url = [NSURL fileURLWithPath:scummVMPath];
+	NSMutableDictionary* args = [[NSMutableDictionary alloc] init];
+	[args setObject:[NSArray arrayWithObject:game] forKey:NSWorkspaceLaunchConfigurationArguments];
+	[[NSWorkspace sharedWorkspace] launchApplicationAtURL:url options:NSWorkspaceLaunchDefault configuration:args error:nil];
+	[args release];
+}
+
+ at end
diff --git a/ports.mk b/ports.mk
index fa38084..c891eca 100644
--- a/ports.mk
+++ b/ports.mk
@@ -53,8 +53,43 @@ ifdef DYNAMIC_MODULES
 endif
 
 # Special target to create a application wrapper for Mac OS X
+
+ifdef USE_DOCKTILEPLUGIN
+
+# The NsDockTilePlugIn needs to be compiled in both 32 and 64 bits irrespective of how ScummVM itself is compiled.
+# Therefore do not use $(CXXFLAGS) and $(LDFLAGS).
+
+ScummVMDockTilePlugin32.o:
+	$(CXX) -mmacosx-version-min=10.6 -arch i386 -O2 -c $(srcdir)/dists/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin32.o
+
+ScummVMDockTilePlugin32: ScummVMDockTilePlugin32.o
+	$(CXX) -mmacosx-version-min=10.6 -arch i386 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin32.o -o ScummVMDockTilePlugin32
+
+ScummVMDockTilePlugin64.o:
+	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -O2 -c $(srcdir)/dists/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin64.o
+	
+ScummVMDockTilePlugin64: ScummVMDockTilePlugin64.o
+	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin64.o -o ScummVMDockTilePlugin64
+	
+ScummVMDockTilePlugin: ScummVMDockTilePlugin32 ScummVMDockTilePlugin64
+	lipo -create ScummVMDockTilePlugin32 ScummVMDockTilePlugin64 -output ScummVMDockTilePlugin
+
+dockplugin: ScummVMDockTilePlugin
+	mkdir -p scummvm.docktileplugin/Contents
+	cp $(srcdir)/dists/macosx/dockplugin/Info.plist scummvm.docktileplugin/Contents
+	mkdir -p scummvm.docktileplugin/Contents/MacOS
+	cp ScummVMDockTilePlugIn scummvm.docktileplugin/Contents/MacOS/
+	chmod 644 scummvm.docktileplugin/Contents/MacOS/ScummVMDockTilePlugIn
+	
+endif
+
 bundle_name = ScummVM.app
+
+ifdef USE_DOCKTILEPLUGIN
+bundle: scummvm-static dockplugin
+else
 bundle: scummvm-static
+endif
 	mkdir -p $(bundle_name)/Contents/MacOS
 	mkdir -p $(bundle_name)/Contents/Resources
 	echo "APPL????" > $(bundle_name)/Contents/PkgInfo
@@ -75,6 +110,10 @@ endif
 	cp scummvm-static $(bundle_name)/Contents/MacOS/scummvm
 	chmod 755 $(bundle_name)/Contents/MacOS/scummvm
 	$(STRIP) $(bundle_name)/Contents/MacOS/scummvm
+ifdef USE_DOCKTILEPLUGIN
+	mkdir -p $(bundle_name)/Contents/PlugIns
+	cp -r scummvm.docktileplugin $(bundle_name)/Contents/PlugIns/
+endif
 
 iphonebundle: iphone
 	mkdir -p $(bundle_name)


Commit: b7237df39215f38aafd07865f0c5b7841f0f1e63
    https://github.com/scummvm/scummvm/commit/b7237df39215f38aafd07865f0c5b7841f0f1e63
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
OS X: Add missing includes for recently introduced taskbar code

Changed paths:
    backends/taskbar/macosx/macosx-taskbar.mm



diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index 0b1f6b9..fd0bb23 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -36,6 +36,9 @@
 #include <AppKit/NSApplication.h>
 #include <AppKit/NSImage.h>
 #include <Foundation/NSString.h>
+#include <Foundation/NSDictionary.h>
+#include <Foundation/NSArray.h>
+#include <Foundation/NSUserDefaults.h>
 #include <AppKit/NSImageView.h>
 #include <AppKit/NSColor.h>
 #include <AppKit/NSBezierPath.h>


Commit: 56245e7e8f8d5e2a69ea015d0ebdcd32d3009162
    https://github.com/scummvm/scummvm/commit/56245e7e8f8d5e2a69ea015d0ebdcd32d3009162
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
OS X: Fix access to NSArray items with older SDKs

Changed paths:
    backends/taskbar/macosx/macosx-taskbar.mm



diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index fd0bb23..4e3ce70 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -270,7 +270,7 @@ void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::S
 		[newArray insertObject:dict atIndex:0];
 		// If the game was already present in the array, remove it
 		for (int i = 1 ; i < [newArray count] ; ++i) {
-			NSDictionary* oldDict = newArray[i];
+			NSDictionary* oldDict = [newArray objectAtIndex:i];
 			if (oldDict == nil)
 				continue;
 			NSString* oldGame = [oldDict valueForKey:@"game"];


Commit: 7531013858ce05ec07a6d02247c29e3969056a2b
    https://github.com/scummvm/scummvm/commit/7531013858ce05ec07a6d02247c29e3969056a2b
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:55:23+02:00

Commit Message:
OS X: Clean taskbar code

This involves moving the NSDockTilePlugIn code to backend/taskbar
and fixing style to follow our coding conventions. One make target
was also renamed. All in all there is no change in functionality with this
commit.

Changed paths:
  A backends/taskbar/macosx/dockplugin/dockplugin.m
  R dists/macosx/dockplugin/dockplugin.m
    backends/taskbar/macosx/macosx-taskbar.mm
    ports.mk



diff --git a/backends/taskbar/macosx/dockplugin/dockplugin.m b/backends/taskbar/macosx/dockplugin/dockplugin.m
new file mode 100644
index 0000000..9d864ef
--- /dev/null
+++ b/backends/taskbar/macosx/dockplugin/dockplugin.m
@@ -0,0 +1,125 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <Cocoa/Cocoa.h>
+
+ at interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> {
+	NSMenu *recentGamesMenu;
+}
+ at end
+
+ at interface StartGameMenuItem : NSMenuItem {
+	NSString *game;
+}
+- (IBAction) startGame;
+- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile;
+ at end
+
+ at implementation ScummVMDockTilePlugIn
+
+- (id)init {
+	self = [super init];
+	if (self) {
+		recentGamesMenu = nil;
+	}
+	return self;
+}
+
+- (void)dealloc {
+	[recentGamesMenu release];
+	[super dealloc];
+}
+
+
+- (void)setDockTile:(NSDockTile *)dockTile {
+}
+
+- (NSMenu*)dockMenu {
+	// Get the list or recent games
+	CFPreferencesAppSynchronize(CFSTR("org.scummvm.scummvm"));
+	NSArray *array = CFPreferencesCopyAppValue(CFSTR("recentGames"), CFSTR("org.scummvm.scummvm"));
+	if (array == nil)
+		return nil;
+
+	// Create the menu
+	if (recentGamesMenu == nil)
+		recentGamesMenu = [[NSMenu alloc] init];
+	else
+		[recentGamesMenu removeAllItems];
+
+	NSEnumerator *enumerator = [array objectEnumerator];
+	NSDictionary *recentGame;
+	while (recentGame = [enumerator nextObject]) {
+		NSString *gameId = [recentGame valueForKey:@"game"];
+		NSString *desc = [recentGame valueForKey:@"description"];
+		NSString *iconFile = [recentGame valueForKey:@"icon"];
+		
+		StartGameMenuItem *menuItem = [[StartGameMenuItem alloc] initWithGame:gameId description:desc icon:iconFile];
+		[recentGamesMenu addItem:menuItem];
+		[menuItem release];
+	}
+
+	return recentGamesMenu;
+}
+
+ at end
+
+ at implementation StartGameMenuItem
+
+- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile {
+	self = [super initWithTitle:(desc == nil ? gameId : desc) action:@selector(startGame) keyEquivalent:@""];
+	[self setTarget:self];
+	
+	if (iconFile != nil) {
+		NSImage *image = [[NSImage alloc] initWithContentsOfFile:iconFile];
+		[self setImage:image];
+		[image release];
+	}
+
+	game = gameId;
+	[game retain];
+	
+	return self;
+}
+
+- (void)dealloc {
+	[game release];
+	[super dealloc];
+}
+
+- (IBAction) startGame {
+	NSLog(@"Starting Game %@...", game);
+	
+	NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"];
+	if (scummVMPath == nil) {
+		NSLog(@"Cannot find ScummVM.app!");
+		return;
+	}
+	// Start ScummVM.app with the game ID as argument
+	NSURL *url = [NSURL fileURLWithPath:scummVMPath];
+	NSMutableDictionary *args = [[NSMutableDictionary alloc] init];
+	[args setObject:[NSArray arrayWithObject:game] forKey:NSWorkspaceLaunchConfigurationArguments];
+	[[NSWorkspace sharedWorkspace] launchApplicationAtURL:url options:NSWorkspaceLaunchDefault configuration:args error:nil];
+	[args release];
+}
+
+ at end
diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index 4e3ce70..577320b 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -120,7 +120,7 @@ void MacOSXTaskbarManager::setOverlayIcon(const Common::String &name, const Comm
 	initOverlayIconView();
 
 	CFStringRef imageFile = CFStringCreateWithCString(0, path.c_str(), kCFStringEncodingASCII);
-	NSImage* image = [[NSImage alloc] initWithContentsOfFile:(NSString *)imageFile];
+	NSImage *image = [[NSImage alloc] initWithContentsOfFile:(NSString *)imageFile];
 	[_overlayIconView setImage:image];
 	[image release];
 	CFRelease(imageFile);
@@ -261,19 +261,19 @@ void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::S
 	
 	// Retrieve the current list of recent items and update it.
 	NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-	NSArray* oldArray = [defaults arrayForKey:@"recentGames"];
+	NSArray *oldArray = [defaults arrayForKey:@"recentGames"];
 	if (oldArray == nil) {
 		[defaults setObject:[NSArray arrayWithObject:dict] forKey:@"recentGames"];
 	} else {
-		NSMutableArray* newArray = [[NSMutableArray alloc] initWithArray:oldArray];
+		NSMutableArray *newArray = [[NSMutableArray alloc] initWithArray:oldArray];
 		// Insert the new game at the start
 		[newArray insertObject:dict atIndex:0];
 		// If the game was already present in the array, remove it
 		for (int i = 1 ; i < [newArray count] ; ++i) {
-			NSDictionary* oldDict = [newArray objectAtIndex:i];
+			NSDictionary *oldDict = [newArray objectAtIndex:i];
 			if (oldDict == nil)
 				continue;
-			NSString* oldGame = [oldDict valueForKey:@"game"];
+			NSString *oldGame = [oldDict valueForKey:@"game"];
 			if (oldGame != nil && [oldGame isEqualToString:(NSString*)gameName]) {
 				[newArray removeObjectAtIndex:i];
 				break;
diff --git a/dists/macosx/dockplugin/dockplugin.m b/dists/macosx/dockplugin/dockplugin.m
deleted file mode 100644
index 9bf0b9b..0000000
--- a/dists/macosx/dockplugin/dockplugin.m
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include <Cocoa/Cocoa.h>
-
- at interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> {
-	NSMenu* recentGamesMenu;
-}
- at end
-
- at interface StartGameMenuItem : NSMenuItem {
-	NSString* game;
-}
-- (IBAction) startGame;
-- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile;
- at end
-
- at implementation ScummVMDockTilePlugIn
-
-- (id)init {
-	self = [super init];
-	if (self) {
-		recentGamesMenu = nil;
-	}
-	return self;
-}
-
-- (void)dealloc {
-	[recentGamesMenu release];
-	[super dealloc];
-}
-
-
-- (void)setDockTile:(NSDockTile *)dockTile {
-}
-
-- (NSMenu*)dockMenu {
-	// Get the list or recent games
-	CFPreferencesAppSynchronize(CFSTR("org.scummvm.scummvm"));
-	NSArray* array = CFPreferencesCopyAppValue(CFSTR("recentGames"), CFSTR("org.scummvm.scummvm"));
-	if (array == nil)
-		return nil;
-
-	// Create the menu
-	if (recentGamesMenu == nil)
-		recentGamesMenu = [[NSMenu alloc] init];
-	else
-		[recentGamesMenu removeAllItems];
-
-	NSEnumerator *enumerator = [array objectEnumerator];
-	NSDictionary* recentGame;
-	while (recentGame = [enumerator nextObject]) {
-		NSString* gameId = [recentGame valueForKey:@"game"];
-		NSString* desc = [recentGame valueForKey:@"description"];
-		NSString* iconFile = [recentGame valueForKey:@"icon"];
-		
-		StartGameMenuItem* menuItem = [[StartGameMenuItem alloc] initWithGame:gameId description:desc icon:iconFile];
-		[recentGamesMenu addItem:menuItem];
-		[menuItem release];
-	}
-
-	return recentGamesMenu;
-}
-
- at end
-
- at implementation StartGameMenuItem
-
-- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile {
-	self = [super initWithTitle:(desc == nil ? gameId : desc) action:@selector(startGame) keyEquivalent:@""];
-	[self setTarget:self];
-	
-	if (iconFile != nil) {
-		NSImage* image = [[NSImage alloc] initWithContentsOfFile:iconFile];
-		[self setImage:image];
-		[image release];
-	}
-
-	game = gameId;
-	[game retain];
-	
-	return self;
-}
-
-- (void)dealloc {
-	[game release];
-	[super dealloc];
-}
-
-- (IBAction) startGame {
-	NSLog(@"Starting Game %@...", game);
-	
-	NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"];
-	if (scummVMPath == nil) {
-		NSLog(@"Cannot find ScummVM.app!");
-		return;
-	}
-	// Start ScummVM.app with the game ID as argument
-	NSURL* url = [NSURL fileURLWithPath:scummVMPath];
-	NSMutableDictionary* args = [[NSMutableDictionary alloc] init];
-	[args setObject:[NSArray arrayWithObject:game] forKey:NSWorkspaceLaunchConfigurationArguments];
-	[[NSWorkspace sharedWorkspace] launchApplicationAtURL:url options:NSWorkspaceLaunchDefault configuration:args error:nil];
-	[args release];
-}
-
- at end
diff --git a/ports.mk b/ports.mk
index c891eca..ac6ccc3 100644
--- a/ports.mk
+++ b/ports.mk
@@ -60,13 +60,13 @@ ifdef USE_DOCKTILEPLUGIN
 # Therefore do not use $(CXXFLAGS) and $(LDFLAGS).
 
 ScummVMDockTilePlugin32.o:
-	$(CXX) -mmacosx-version-min=10.6 -arch i386 -O2 -c $(srcdir)/dists/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin32.o
+	$(CXX) -mmacosx-version-min=10.6 -arch i386 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin32.o
 
 ScummVMDockTilePlugin32: ScummVMDockTilePlugin32.o
 	$(CXX) -mmacosx-version-min=10.6 -arch i386 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin32.o -o ScummVMDockTilePlugin32
 
 ScummVMDockTilePlugin64.o:
-	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -O2 -c $(srcdir)/dists/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin64.o
+	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin64.o
 	
 ScummVMDockTilePlugin64: ScummVMDockTilePlugin64.o
 	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin64.o -o ScummVMDockTilePlugin64
@@ -74,7 +74,7 @@ ScummVMDockTilePlugin64: ScummVMDockTilePlugin64.o
 ScummVMDockTilePlugin: ScummVMDockTilePlugin32 ScummVMDockTilePlugin64
 	lipo -create ScummVMDockTilePlugin32 ScummVMDockTilePlugin64 -output ScummVMDockTilePlugin
 
-dockplugin: ScummVMDockTilePlugin
+scummvm.docktileplugin: ScummVMDockTilePlugin
 	mkdir -p scummvm.docktileplugin/Contents
 	cp $(srcdir)/dists/macosx/dockplugin/Info.plist scummvm.docktileplugin/Contents
 	mkdir -p scummvm.docktileplugin/Contents/MacOS
@@ -86,7 +86,7 @@ endif
 bundle_name = ScummVM.app
 
 ifdef USE_DOCKTILEPLUGIN
-bundle: scummvm-static dockplugin
+bundle: scummvm-static scummvm.docktileplugin
 else
 bundle: scummvm-static
 endif


Commit: dab828a818a7e6ace3c878a5fdc928a0e80813dd
    https://github.com/scummvm/scummvm/commit/dab828a818a7e6ace3c878a5fdc928a0e80813dd
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2016-03-27T23:59:07+02:00

Commit Message:
CONFIGURE: Only check Sparkle and NSDockTilePlugIn availability on OS X

Changed paths:
    configure



diff --git a/configure b/configure
index 6867563..8d8f134 100755
--- a/configure
+++ b/configure
@@ -3918,44 +3918,61 @@ echo "$_mpeg2"
 #
 # Check for Sparkle if updates support is enabled
 #
-echocheck "Sparkle"
-if test "$_updates" = no; then
-	_sparkle=no
-else
-if test "$_sparkle" = auto ; then
-	_sparkle=no
-	cat > $TMPC << EOF
+#
+# Check is NSDockTilePlugIn protocol is supported
+#
+case $_host_os in
+	darwin*)
+		echocheck "Sparkle"
+		if test "$_updates" = no; then
+			_sparkle=no
+		else
+		if test "$_sparkle" = auto ; then
+			_sparkle=no
+			cat > $TMPC << EOF
 #include <Cocoa/Cocoa.h>
 #include <Sparkle/Sparkle.h>
 int main(void) { SUUpdater *updater = [SUUpdater sharedUpdater]; return 0; }
 EOF
-	cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes
-fi
-if test "$_sparkle" = yes ; then
-	append_var LIBS "$SPARKLE_LIBS -framework Sparkle"
-	append_var INCLUDES "$SPARKLE_CFLAGS"
-fi
-define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
-fi
-echo "$_sparkle"
+			cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes
+		fi
+		if test "$_sparkle" = yes ; then
+			append_var LIBS "$SPARKLE_LIBS -framework Sparkle"
+			append_var INCLUDES "$SPARKLE_CFLAGS"
+		fi
+		define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
+		fi
+		echo "$_sparkle"
+	;;
+	*)
+		_sparkle=no
+	;;
+esac
 
 #
 # Check is NSDockTilePlugIn protocol is supported
 #
-# NSDockTilePlugIn was added in OS X 10.6, so will not be available when compiling on older OS X versions.
-echocheck "DockTilePlugin"
-if test "$_osxdockplugin" = auto ; then
-	_osxdockplugin=no
-	cat > $TMPC << EOF
+case $_host_os in
+	darwin*)
+		# NSDockTilePlugIn was added in OS X 10.6, so will not be available when compiling on older OS X versions.
+		echocheck "DockTilePlugin"
+		if test "$_osxdockplugin" = auto ; then
+			_osxdockplugin=no
+			cat > $TMPC << EOF
 #include <Cocoa/Cocoa.h>
 @interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> {
 }
 @end
 EOF
-	cc_check -c -ObjC++ && _osxdockplugin=yes
-fi
-define_in_config_if_yes "$_osxdockplugin" 'USE_DOCKTILEPLUGIN'
-echo "$_osxdockplugin"
+			cc_check -c -ObjC++ && _osxdockplugin=yes
+		fi
+		define_in_config_if_yes "$_osxdockplugin" 'USE_DOCKTILEPLUGIN'
+		echo "$_osxdockplugin"
+	;;
+	*)
+		_osxdockplugin=no
+	;;
+esac
 
 #
 # Check for FluidSynth


Commit: 9010587f121a19078ed308d1d2301a88ee9e4e2a
    https://github.com/scummvm/scummvm/commit/9010587f121a19078ed308d1d2301a88ee9e4e2a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
SAGA: Added German fan-translated IHNM detection. Bug #7091

Changed paths:
    engines/saga/detection_tables.h



diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index 8b3a0e5..f570c5e 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -741,6 +741,36 @@ static const SAGAGameDescription gameDescriptions[] = {
 		NULL,
 	},
 
+	// I Have No Mouth And I Must Scream - German fan CD translation
+	// English CD version with German text patch (with Nimdok)
+	// (English speech - German text)
+	{
+		{
+			"ihnm",
+			"fan-made",
+			{
+	{"musicfm.res",	GAME_MUSICFILE_FM,					"0439083e3dfdc51b486071d45872ae52", 302676},
+	{"musicgm.res",	GAME_MUSICFILE_GM,					"80f875a1fb384160d1f4b27166eef583", 314020},
+	{"scream.res",	GAME_RESOURCEFILE,					"46bbdc65d164ba7e89836a0935eec8e6", 79219797},
+	{"scripts.res",	GAME_SCRIPTFILE,					"be38bbc5a26be809dbf39f13befebd01", 523800},
+	{"patch.re_",	GAME_PATCHFILE | GAME_RESOURCEFILE,	"58b79e61594779513c7f2d35509fa89e", 5038599},
+	{"sfx.res",		GAME_SOUNDFILE,						"1c610d543f32ec8b525e3f652536f269", 22561056},
+	{ NULL, 0, NULL, 0}
+			},
+			Common::DE_DEU,
+			Common::kPlatformDOS,
+			ADGF_NO_FLAGS,
+			GUIO1(GUIO_NOASPECT)
+		},
+		GID_IHNM,
+		0,
+		IHNM_DEFAULT_SCENE,
+		&IHNM_Resources,
+		ARRAYSIZE(IHNMCD_GameFonts),
+		IHNMCD_GameFonts,
+		NULL,
+	},
+
 	// I Have No Mouth And I Must Scream - Sp CD version
 	{
 		{


Commit: 199d2d25ec43160037f16fa9c3233d8664304300
    https://github.com/scummvm/scummvm/commit/199d2d25ec43160037f16fa9c3233d8664304300
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
UPDATES: Added our public Sparkle key

Changed paths:
  A dists/macosx/dsa_pub.pem



diff --git a/dists/macosx/dsa_pub.pem b/dists/macosx/dsa_pub.pem
new file mode 100644
index 0000000..13eb862
--- /dev/null
+++ b/dists/macosx/dsa_pub.pem
@@ -0,0 +1,36 @@
+-----BEGIN PUBLIC KEY-----
+MIIGOjCCBC0GByqGSM44BAEwggQgAoICAQDMnJLkF6tYuyGHM92pO49c0SV927yl
+g4uteavJXH/AgJlSr/YmouiK5KrWBPoe5gQsxbFjmrt9L8ocwu9OCxNZHlifv7l0
+V4GbBfk11usFjRZXuIS/7N4RPBe0VDuhBoMdViGPBLCUsC/cmOOz4VtiyS1kW0WL
+G2AwWzBT/Zzo4/cDMCys8VBIZjZnjyzxi9u374GdZYNlQ7ts6DbvIxheFBuFG7cg
++XeuB4fz9no1riKM9zEhXtbJJG18/61yvcUj4rOcEYPBFbUXesvuZalVVzYGzZ1G
+p39tuAOK6S7W/AzWeDlAGYAOaMvAukAWTSIj/UeuAPPlnaXQLeZ59+7Fbcc7dvMc
+SIngNszKbmqTPCAOjE1RWUbFoujxEMcoog0iBKNLvgnC9HEL9sfMNma2107xulf6
+ywcHFLC3f8O8RfTBnU4Q8jwI6pY46w5nZ3lmcDpVqF3OGE71z+OPBkVBJpyiRwFJ
+tuCBy4Fc/Vza0QFixoxhREAfxNVza1wrN7DNIFnuhvUM1BwPHx9QvvGAOYJGr+E5
+lrnbpmqYW5icWT/LW+1wlSYTnZeXGTSJFq6Chi6nUyeUov5KdCfJbBu17V727Sj2
+6TKM2HCrE8VmTYSBG99i+2QHhXkV6gOv6reT5lzvzz0BPWRpx9jr48yWU8FxskSE
+5z+GxzBYjqY0+QIVAO2l1PedCvhUPXWR7W4cLPo7na3dAoICACW1k1Omwf60vLnG
+wmxb6hRV44k3UQ/7pwAIGTsepO0caU/5t5lWnmkPnGliXAe7MkJ5Is3aQFdV0kA8
+b0pBsZCpDW3qnJmSJtnO+21n5HMv2b3MFuzvEOCKXNt8RkJxeK/HaLSPQcMH/1GT
+4tCfX7FXZi2VsrV5HxllEVdhMzGC3HBmgXxmO98iVAT9rTfmxqEPwysL/i5DrTXr
+6SCLLYF7BR3bRVjp8y4jmIrGCDS+zqUgbWZR81sd3XcO05TLZr/xxBlY/jZYDbjr
+VG53lIzHTnWp5nugl9CyXrcnzyvDpM/UaiPXxGPXYuK5X4+Kjo937ZegyNWULx6G
++CbcAbFy6R5KtObj9sInnnLjAt2+pIkUxhl8YZnOTraiRBWgnFAxVjTzEYjwlUF8
+gbg8NnAmLQkr/uWtpxdZ2d81pvlrIj0Y3ltzVPx7h5KyXpKItWm08HdPcYiCSXz8
+TIrioSTUcN0ISspsaujmNlAXMeMidrWLXUwL5fMuZ00p7w8gakgUMqbmeEvTkyJO
+iGX5cMqXLp7AXEVFpKzCWg9ebuAWZTkI2v8Kkf466EhIB6OUeeHwWTXpU5Ar8ckU
+MCc+FV9cpe+wQv7AN6SdXamUyJySJ07zcDwXHxpXIq32bANAWO/ZrebcLi5AUOs0
+rmiOk+ET2LzzfJjnmBnb0lELrvzbA4ICBQACggIAXh4VEPZbBDyfCvGDTGIjxxs9
+0uApTVBVyAzHTQ+J9OKsaoqbMF8QADczTXaE0ycaZZDcq1jHeAkL/UwAfm1gRyhn
+jIWX+quZHv1hI2r114gxkvwa8FNvQKffkeYZ9r7NsCyuhBlSHbFuNgYbByTZ16v6
+s0KfMPgTVMb5LANDD6SwUhb8ggvbEnWrO8l6Cn8tKaCwSVfYF37cECCoqc+yLW+S
+0rvJxr/aULAGuEBTA3uwuFOMhWveRNbRqOOfqvOkdGFyUL1zjmNEHNx7qJNU2sni
+BbU2DQd01s6uPyWQOXXm77VG1TQo4Z2+OVZSvS8oyNRJaXmqfKf72rW14GERSb40
+qEL6RlltWjPw5Kezv/OdOrE6vKO2uprvpSkOARm9W2jJbJm9hpXvyHUljxJOkYR2
+VxCMVO74DbhDKFuh115wMy2g/FoDy/QbbvgsKOWgBNkgp+xbclo4bJdmvzihwScy
+hCeCKKzQDZtu9JSaUnOMvx3hjL7hMAzjRP92Cmly0YoRNuLqzX4OqPTr/Si5au0C
+/IiySlBxPUkoP1HQVXm9vU4pI4D/ViDJpXx2UKN9/nFQW1exC/n1TeGavnuT4HY1
+vAt/3wPz3asTCBIULmqGOEsgOo3nN3pfnBmmGDjUWg8i79RNCbLgLkcMtJ0F1xvq
+pYCWvL3Wewrmz0Yc790=
+-----END PUBLIC KEY-----


Commit: 8449c447b1ec18a49b1b66edd26f98d587e33064
    https://github.com/scummvm/scummvm/commit/8449c447b1ec18a49b1b66edd26f98d587e33064
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
UPDATES: Update Sparkle appcast with 1.8.0.

It will not work, of course since we were not distributing files
with our public key yet.

Changed paths:
    dists/macosx/scummvm_osx_appcast.xml



diff --git a/dists/macosx/scummvm_osx_appcast.xml b/dists/macosx/scummvm_osx_appcast.xml
index 455b062..cf4cbcd 100644
--- a/dists/macosx/scummvm_osx_appcast.xml
+++ b/dists/macosx/scummvm_osx_appcast.xml
@@ -2,24 +2,30 @@
 <rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle"  xmlns:dc="http://purl.org/dc/elements/1.1/">
 	<channel>
 		<title>ScummVM Changelog</title>
-		<link>http://scummvm.org/scummvm_appcast.xml</link>
+		<link>https://scummvm.org/scummvm_appcast.xml</link>
 		<description>Most recent changes with links to updates.</description>
 		<language>en</language>
 		<item>
-			<title>Version 1.2.1 (3 bugs fixed; 2 new features)</title>
+			<title>Version 1.8.0</title>
 			<sparkle:releaseNotesLink>
-				http://sourceforge.net/projects/scummvm/files/scummvm/1.2.1/ReleaseNotes/view
+				https://scummvm.org/frs/scummvm/1.8.0/ReleaseNotes
 			</sparkle:releaseNotesLink>
-			<pubDate>Sun, 19 Dec 2010 12:20:11 +0000</pubDate>
-			<enclosure url="http://scummvm.org/ScummVM 1.2.1-Test.zip" sparkle:version="1.2.1" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
+			<pubDate>Sat, 5 Mar 2016 20:16:00 +0000</pubDate>
+			<enclosure url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-macosx.dmg"
+						sparkle:version="1.8.0" length="14085288" type="application/octet-stream"
+						sparkle:dsaSignature="MC0CFQDNy2yox7vklthHaZcMto8L4EuLwQIUY8cuevlTpLtuJ9nPOlrj4vo55lY=" />
+			<enclosure sparkle:os="windows"
+						url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-win32.exe"
+						sparkle:version="1.8.0" length="9081062" type="application/octet-stream"
+						sparkle:dsaSignature="MC0CFQCaG7Oo+Nc2EWVmc7GjUBJLKRvt3QIUQcZTMe2FQhfvrrofX4HLTldDHyY=" />
 		</item>
 		<item>
-			<title>Version 1.2.0</title>
+			<title>Version 1.7.0</title>
 			<sparkle:releaseNotesLink>
-				http://sourceforge.net/projects/scummvm/files/scummvm/1.2.0/ReleaseNotes/view
+				https://scummvm.org/frs/scummvm/1.7.0/ReleaseNotes
 			</sparkle:releaseNotesLink>
-			<pubDate>Fri, 15 Oct 2010 12:20:11 +0000</pubDate>
-			<enclosure url="http://scummvm.org/ScummVM 1.2.0-Test.zip" sparkle:version="1.2.0" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
+			<pubDate>Tue, 29 Jul 2014 07:58:00 +0000</pubDate>
+			<link>https://www.scummvm.org/frs/scummvm/1.7.0/</link>
 		</item>
 	</channel>
 </rss>


Commit: 2cfd432c3f7bf03d9ee7efb358374e86e38851c0
    https://github.com/scummvm/scummvm/commit/2cfd432c3f7bf03d9ee7efb358374e86e38851c0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
UPDATES: Rename Sparkle appcast to common name

Changed paths:
  A dists/macosx/scummvm_appcast.xml
  R dists/macosx/scummvm_osx_appcast.xml



diff --git a/dists/macosx/scummvm_appcast.xml b/dists/macosx/scummvm_appcast.xml
new file mode 100644
index 0000000..cf4cbcd
--- /dev/null
+++ b/dists/macosx/scummvm_appcast.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle"  xmlns:dc="http://purl.org/dc/elements/1.1/">
+	<channel>
+		<title>ScummVM Changelog</title>
+		<link>https://scummvm.org/scummvm_appcast.xml</link>
+		<description>Most recent changes with links to updates.</description>
+		<language>en</language>
+		<item>
+			<title>Version 1.8.0</title>
+			<sparkle:releaseNotesLink>
+				https://scummvm.org/frs/scummvm/1.8.0/ReleaseNotes
+			</sparkle:releaseNotesLink>
+			<pubDate>Sat, 5 Mar 2016 20:16:00 +0000</pubDate>
+			<enclosure url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-macosx.dmg"
+						sparkle:version="1.8.0" length="14085288" type="application/octet-stream"
+						sparkle:dsaSignature="MC0CFQDNy2yox7vklthHaZcMto8L4EuLwQIUY8cuevlTpLtuJ9nPOlrj4vo55lY=" />
+			<enclosure sparkle:os="windows"
+						url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-win32.exe"
+						sparkle:version="1.8.0" length="9081062" type="application/octet-stream"
+						sparkle:dsaSignature="MC0CFQCaG7Oo+Nc2EWVmc7GjUBJLKRvt3QIUQcZTMe2FQhfvrrofX4HLTldDHyY=" />
+		</item>
+		<item>
+			<title>Version 1.7.0</title>
+			<sparkle:releaseNotesLink>
+				https://scummvm.org/frs/scummvm/1.7.0/ReleaseNotes
+			</sparkle:releaseNotesLink>
+			<pubDate>Tue, 29 Jul 2014 07:58:00 +0000</pubDate>
+			<link>https://www.scummvm.org/frs/scummvm/1.7.0/</link>
+		</item>
+	</channel>
+</rss>
diff --git a/dists/macosx/scummvm_osx_appcast.xml b/dists/macosx/scummvm_osx_appcast.xml
deleted file mode 100644
index cf4cbcd..0000000
--- a/dists/macosx/scummvm_osx_appcast.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle"  xmlns:dc="http://purl.org/dc/elements/1.1/">
-	<channel>
-		<title>ScummVM Changelog</title>
-		<link>https://scummvm.org/scummvm_appcast.xml</link>
-		<description>Most recent changes with links to updates.</description>
-		<language>en</language>
-		<item>
-			<title>Version 1.8.0</title>
-			<sparkle:releaseNotesLink>
-				https://scummvm.org/frs/scummvm/1.8.0/ReleaseNotes
-			</sparkle:releaseNotesLink>
-			<pubDate>Sat, 5 Mar 2016 20:16:00 +0000</pubDate>
-			<enclosure url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-macosx.dmg"
-						sparkle:version="1.8.0" length="14085288" type="application/octet-stream"
-						sparkle:dsaSignature="MC0CFQDNy2yox7vklthHaZcMto8L4EuLwQIUY8cuevlTpLtuJ9nPOlrj4vo55lY=" />
-			<enclosure sparkle:os="windows"
-						url="https://scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-win32.exe"
-						sparkle:version="1.8.0" length="9081062" type="application/octet-stream"
-						sparkle:dsaSignature="MC0CFQCaG7Oo+Nc2EWVmc7GjUBJLKRvt3QIUQcZTMe2FQhfvrrofX4HLTldDHyY=" />
-		</item>
-		<item>
-			<title>Version 1.7.0</title>
-			<sparkle:releaseNotesLink>
-				https://scummvm.org/frs/scummvm/1.7.0/ReleaseNotes
-			</sparkle:releaseNotesLink>
-			<pubDate>Tue, 29 Jul 2014 07:58:00 +0000</pubDate>
-			<link>https://www.scummvm.org/frs/scummvm/1.7.0/</link>
-		</item>
-	</channel>
-</rss>


Commit: e29c2575653f779f74fdb6b305cb71b3ea07d4e7
    https://github.com/scummvm/scummvm/commit/e29c2575653f779f74fdb6b305cb71b3ea07d4e7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
UPDATES: Update Sparkle Appcast URL in the bundle plist

Changed paths:
    dists/macosx/Info.plist
    dists/macosx/Info.plist.in



diff --git a/dists/macosx/Info.plist b/dists/macosx/Info.plist
index 1e1e84a..3b45e5d 100644
--- a/dists/macosx/Info.plist
+++ b/dists/macosx/Info.plist
@@ -53,7 +53,7 @@
 	<key>NSPrincipalClass</key>
 	<string>NSApplication</string>
 	<key>SUFeedURL</key>
-	<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+	<string>https://scummvm.org/scummvm_appcast.xml</string>
 	<key>NSDockTilePlugIn</key>
 	<string>scummvm.docktileplugin</string>
 	<key>SUPublicDSAKeyFile</key>
diff --git a/dists/macosx/Info.plist.in b/dists/macosx/Info.plist.in
index 7ba49f2..6393900 100644
--- a/dists/macosx/Info.plist.in
+++ b/dists/macosx/Info.plist.in
@@ -53,7 +53,7 @@
 	<key>NSPrincipalClass</key>
 	<string>NSApplication</string>
 	<key>SUFeedURL</key>
-	<string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+	<string>https://scummvm.org/scummvm_appcast.xml</string>
 	<key>NSDockTilePlugIn</key>
 	<string>scummvm.docktileplugin</string>
 	<key>SUPublicDSAKeyFile</key>


Commit: 821c29c7b663c179963eca1e36b1723a4da95850
    https://github.com/scummvm/scummvm/commit/821c29c7b663c179963eca1e36b1723a4da95850
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
BUILD: Add target for uploading Sparkle appcast

Changed paths:
    ports.mk



diff --git a/ports.mk b/ports.mk
index ac6ccc3..d9a80d5 100644
--- a/ports.mk
+++ b/ports.mk
@@ -400,6 +400,9 @@ osxsnap: bundle
 					ScummVM-snapshot.dmg
 	rm -rf ScummVM-snapshot
 
+publish-appcast:
+	scp dists/macosx/scummvm_appcast.xml www.scummvm.org:/var/www/html/
+
 #
 # Windows specific
 #


Commit: 5239e3522b04cb350352e4927ec8a6790c86d42a
    https://github.com/scummvm/scummvm/commit/5239e3522b04cb350352e4927ec8a6790c86d42a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
I18N: Fix wording in Russian localization

Changed paths:
    po/ru_RU.po



diff --git a/po/ru_RU.po b/po/ru_RU.po
index b9e2444..3d07730 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -2310,7 +2310,7 @@ msgstr ""
 
 #: backends/updates/macosx/macosx-updates.mm:67
 msgid "Check for Updates..."
-msgstr "¿àÞÒÕàïî ÞÑÝÞÒÛÕÝØï..."
+msgstr "¿àÞÒÕàØâì ÞÑÝÞÒÛÕÝØï..."
 
 #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70
 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47


Commit: 49246c4414bf34e0146de33fa90f7a846b73aca6
    https://github.com/scummvm/scummvm/commit/49246c4414bf34e0146de33fa90f7a846b73aca6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:08+02:00

Commit Message:
I18N: Fix wording in Ukrainian localization

Changed paths:
    po/uk_UA.po



diff --git a/po/uk_UA.po b/po/uk_UA.po
index 8bd0631..8acb5bf 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -2307,7 +2307,7 @@ msgstr ""
 
 #: backends/updates/macosx/macosx-updates.mm:67
 msgid "Check for Updates..."
-msgstr "¿ÕàÕÒöàïî ÞÝÞÒÛÕÝÝï..."
+msgstr "¿ÕàÕÒöàØâØ ÞÝÞÒÛÕÝÝï..."
 
 #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70
 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47


Commit: c5e391f1e665c5bd1dd1f338f118356eb3bba586
    https://github.com/scummvm/scummvm/commit/c5e391f1e665c5bd1dd1f338f118356eb3bba586
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-27T23:59:41+02:00

Commit Message:
I18N: Regenerated translations.dat

Changed paths:
    gui/themes/translations.dat



diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index fce850f..75960ce 100644
Binary files a/gui/themes/translations.dat and b/gui/themes/translations.dat differ


Commit: 1bd48c55f3a8c77b3c975dcc06a95f994ffe0918
    https://github.com/scummvm/scummvm/commit/1bd48c55f3a8c77b3c975dcc06a95f994ffe0918
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-28T00:06:40+02:00

Commit Message:
NEWS: List recent games in dock menu on OS X.

Changed paths:
    NEWS



diff --git a/NEWS b/NEWS
index 62c7996..632bc08 100644
--- a/NEWS
+++ b/NEWS
@@ -48,6 +48,10 @@ For a more comprehensive changelog of the latest experimental code, see:
    - Fixed bug in MIDI device listing affecting cases where MIDI devices were
      not usable.
 
+ Mac OS X port:
+   - Dock menu for ScummVM now lists recently played games when ScummVM is
+     not running and allows starting those games.
+
 1.8.0 (2016-03-04)
  New Games:
    - Added support for Rex Nebular and the Cosmic Gender Bender.


Commit: 61cd09f49086daf6ed91f4a7232ddd5737139ba2
    https://github.com/scummvm/scummvm/commit/61cd09f49086daf6ed91f4a7232ddd5737139ba2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-28T00:06:47+02:00

Commit Message:
NEWS/DE: List recent games in dock menu on OS X.

Changed paths:
    doc/de/Neues



diff --git a/doc/de/Neues b/doc/de/Neues
index 5cba9a3..9e62f7e 100644
--- a/doc/de/Neues
+++ b/doc/de/Neues
@@ -36,10 +36,13 @@ Programmcodes finden Sie auf Englisch unter:
    - Ressourcen-Freigabe beim Beenden des Spiels korrigiert.
    - Fehler beim Neustart des Spiels nach dem Wechsel der Spiel-Sprache behoben.
    - Flackern im Hauptmenü behoben.
-   
+
  Windows-Portierung:
    - Absturz im Zusammenhang mit nicht-funktionierenden MIDI-Geräten behoben.
 
+ Mac OS X-Portierung:
+   - Das Dock-Menü für ScummVM enthält nun eine Liste der zuletzt gespielten Spiele,
+     wenn ScummVM nicht läuft, und ermöglicht den direkten Start dieser Spiele.
 
 1.8.0 (04.03.2016)
  Neue Spiele:






More information about the Scummvm-git-logs mailing list