From 25d66981ec0d546c04dbec6478796b26da69f202 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Mon, 23 Apr 2007 06:27:02 +0000 Subject: [PATCH] Mount StepMania.app/Contents/Resources/SMData.smzip, if it exists. This makes SM installable as a single drag and drop application bundle. --- stepmania/src/arch/ArchHooks/ArchHooks_darwin.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/stepmania/src/arch/ArchHooks/ArchHooks_darwin.cpp b/stepmania/src/arch/ArchHooks/ArchHooks_darwin.cpp index d9d18f03e0..aff833f438 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks_darwin.cpp +++ b/stepmania/src/arch/ArchHooks/ArchHooks_darwin.cpp @@ -362,9 +362,21 @@ static void PathForFolderType( char dir[PATH_MAX], OSType folderType ) void ArchHooks::MountInitialFilesystems( const RString &sDirOfExecutable ) { char dir[PATH_MAX]; - + CFURLRef dataUrl = CFBundleCopyResourceURL( CFBundleGetMainBundle(), CFSTR("SMData"), CFSTR("smzip"), NULL ); + FILEMAN->Mount( "dir", sDirOfExecutable, "/" ); + if( dataUrl ) + { + CFStringRef dataPath = CFURLCopyFileSystemPath( dataUrl, kCFURLPOSIXPathStyle ); + CFStringGetCString( dataPath, dir, PATH_MAX, kCFStringEncodingUTF8 ); + + if( strncmp(sDirOfExecutable, dir, sDirOfExecutable.length()) == 0 ) + FILEMAN->Mount( "zip", dir + sDirOfExecutable.length(), "/" ); + CFRelease( dataPath ); + CFRelease( dataUrl ); + } + // /Save -> ~/Library/Application Support/PRODUCT_ID PathForFolderType( dir, kPreferencesFolderType ); FILEMAN->Mount( "dir", ssprintf("%s/" PRODUCT_ID, dir), "/Save" );