Move resource mounting to the right place

Fix from Club Fantastic, but adapted for RageFile changes.
This commit is contained in:
Charles Magahern
2020-12-20 00:10:49 -08:00
committed by teejusb
parent 024f3ac96a
commit ab991981fd
+34 -33
View File
@@ -320,6 +320,40 @@ void ArchHooks::MountInitialFilesystems( const RString &sDirOfExecutable )
FILEMAN->Mount("dirro", sDirOfExecutable, "/");
bool portable = DoesFileExist("/Portable.ini");
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
if( resourcePath )
{
const char* resourcePathUTF8String = [resourcePath UTF8String];
FILEMAN->Mount( "dirro", ssprintf("%s/Announcers", resourcePathUTF8String), "/Announcers" );
FILEMAN->Mount( "dirro", ssprintf("%s/BGAnimations", resourcePathUTF8String), "/BGAnimations" );
FILEMAN->Mount( "dirro", ssprintf("%s/BackgroundEffects", resourcePathUTF8String), "/BackgroundEffects" );
FILEMAN->Mount( "dirro", ssprintf("%s/BackgroundTransitions", resourcePathUTF8String), "/BackgroundTransitions" );
FILEMAN->Mount( "dirro", ssprintf("%s/CDTitles", resourcePathUTF8String), "/CDTitles" );
FILEMAN->Mount( "dirro", ssprintf("%s/Characters", resourcePathUTF8String), "/Characters" );
FILEMAN->Mount( "dirro", ssprintf("%s/Courses", resourcePathUTF8String), "/Courses" );
FILEMAN->Mount( "dirro", ssprintf("%s/NoteSkins", resourcePathUTF8String), "/NoteSkins" );
FILEMAN->Mount( "dirro", ssprintf("%s/Packages", resourcePathUTF8String), "/Packages" );
FILEMAN->Mount( "dirro", ssprintf("%s/Songs", resourcePathUTF8String), "/Songs" );
FILEMAN->Mount( "dirro", ssprintf("%s/RandomMovies", resourcePathUTF8String), "/RandomMovies" );
FILEMAN->Mount( "dirro", ssprintf("%s/Themes", resourcePathUTF8String), "/Themes" );
FILEMAN->Mount( "dirro", ssprintf("%s/Data", resourcePathUTF8String), "/Data" );
}
CFURLRef dataUrl = CFBundleCopyResourceURL( CFBundleGetMainBundle(), CFSTR("StepMania"), CFSTR("smzip"), nil);
if( dataUrl )
{
char dir[PATH_MAX];
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 );
}
if (portable)
{
FILEMAN->Mount("dir", sDirOfExecutable + "/Announcers", "/Announcers");
@@ -339,20 +373,6 @@ void ArchHooks::MountInitialFilesystems( const RString &sDirOfExecutable )
FILEMAN->Mount("dir", sDirOfExecutable + "/RandomMovies", "/RandomMovies");
FILEMAN->Mount("dir", sDirOfExecutable + "/Themes", "/Themes");
}
CFURLRef dataUrl = CFBundleCopyResourceURL( CFBundleGetMainBundle(), CFSTR("StepMania"), CFSTR("smzip"), nil);
if( dataUrl )
{
char dir[PATH_MAX];
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 );
}
}
void ArchHooks::MountUserFilesystems( const RString &sDirOfExecutable )
@@ -390,25 +410,6 @@ void ArchHooks::MountUserFilesystems( const RString &sDirOfExecutable )
// /Logs -> ~/Library/Logs/PRODUCT_ID
PathForFolderType( dir, kDomainLibraryFolderType );
FILEMAN->Mount( "dir", ssprintf("%s/Logs/" PRODUCT_ID, dir), "/Logs" );
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
if( resourcePath )
{
const char* resourcePathUTF8String = [resourcePath UTF8String];
FILEMAN->Mount( "dirro", ssprintf("%s/Announcers", resourcePathUTF8String), "/Announcers" );
FILEMAN->Mount( "dirro", ssprintf("%s/BGAnimations", resourcePathUTF8String), "/BGAnimations" );
FILEMAN->Mount( "dirro", ssprintf("%s/BackgroundEffects", resourcePathUTF8String), "/BackgroundEffects" );
FILEMAN->Mount( "dirro", ssprintf("%s/BackgroundTransitions", resourcePathUTF8String), "/BackgroundTransitions" );
FILEMAN->Mount( "dirro", ssprintf("%s/CDTitles", resourcePathUTF8String), "/CDTitles" );
FILEMAN->Mount( "dirro", ssprintf("%s/Characters", resourcePathUTF8String), "/Characters" );
FILEMAN->Mount( "dirro", ssprintf("%s/Courses", resourcePathUTF8String), "/Courses" );
FILEMAN->Mount( "dirro", ssprintf("%s/NoteSkins", resourcePathUTF8String), "/NoteSkins" );
FILEMAN->Mount( "dirro", ssprintf("%s/Packages", resourcePathUTF8String), "/Packages" );
FILEMAN->Mount( "dirro", ssprintf("%s/Songs", resourcePathUTF8String), "/Songs" );
FILEMAN->Mount( "dirro", ssprintf("%s/RandomMovies", resourcePathUTF8String), "/RandomMovies" );
FILEMAN->Mount( "dirro", ssprintf("%s/Themes", resourcePathUTF8String), "/Themes" );
FILEMAN->Mount( "dirro", ssprintf("%s/Data", resourcePathUTF8String), "/Data" );
}
}
static inline int GetIntValue( CFTypeRef r )