mirror of
				https://github.com/Zelda64Recomp/Zelda64Recomp.git
				synced 2025-10-30 08:03:03 +00:00 
			
		
		
		
	Use Application Support directory on macOS. (#553)
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				validate-internal / build (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	validate-internal / build (push) Has been cancelled
				
			This commit is contained in:
		
							parent
							
								
									3d3524ffe7
								
							
						
					
					
						commit
						fd16c379ff
					
				
					 4 changed files with 19 additions and 0 deletions
				
			
		|  | @ -122,6 +122,7 @@ You'll probably also want to change the default behavior so that you don't need | ||||||
| #### Where is the savefile stored? | #### Where is the savefile stored? | ||||||
| - Windows: `%LOCALAPPDATA%\Zelda64Recompiled\saves` | - Windows: `%LOCALAPPDATA%\Zelda64Recompiled\saves` | ||||||
| - Linux: `~/.config/Zelda64Recompiled/saves` | - Linux: `~/.config/Zelda64Recompiled/saves` | ||||||
|  | - macOS: `~/Library/Application Support/Zelda64Recompiled/saves` | ||||||
| 
 | 
 | ||||||
| #### How do I choose a different ROM? | #### How do I choose a different ROM? | ||||||
| **You don't.** This project is **only** a port of Majora's Mask (and Ocarina of Time in the future), and it will only accept one specific ROM: the US version of the N64 release of Majora's Mask. ROMs in formats other than .z64 will be automatically converted, as long as it is the correct ROM. **It is not an emulator and it cannot run any arbitrary ROM.**  | **You don't.** This project is **only** a port of Majora's Mask (and Ocarina of Time in the future), and it will only accept one specific ROM: the US version of the N64 release of Majora's Mask. ROMs in formats other than .z64 will be automatically converted, as long as it is the correct ROM. **It is not an emulator and it cannot run any arbitrary ROM.**  | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <functional> | #include <functional> | ||||||
| #include <filesystem> | #include <filesystem> | ||||||
|  | #include <optional> | ||||||
| 
 | 
 | ||||||
| namespace zelda64 { | namespace zelda64 { | ||||||
|     std::filesystem::path get_asset_path(const char* asset); |     std::filesystem::path get_asset_path(const char* asset); | ||||||
|  | @ -12,6 +13,7 @@ namespace zelda64 { | ||||||
| // Apple specific methods that usually require Objective-C. Implemented in support_apple.mm.
 | // Apple specific methods that usually require Objective-C. Implemented in support_apple.mm.
 | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|     void dispatch_on_ui_thread(std::function<void()> func); |     void dispatch_on_ui_thread(std::function<void()> func); | ||||||
|  |     std::optional<std::filesystem::path> get_application_support_directory(); | ||||||
|     std::filesystem::path get_bundle_resource_directory(); |     std::filesystem::path get_bundle_resource_directory(); | ||||||
|     std::filesystem::path get_bundle_directory(); |     std::filesystem::path get_bundle_directory(); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | @ -162,6 +162,13 @@ std::filesystem::path zelda64::get_app_folder_path() { | ||||||
|        return std::filesystem::path{getenv("APP_FOLDER_PATH")}; |        return std::filesystem::path{getenv("APP_FOLDER_PATH")}; | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|  | #if defined(__APPLE__) | ||||||
|  |    const auto supportdir = zelda64::get_application_support_directory(); | ||||||
|  |    if (supportdir) { | ||||||
|  |        return *supportdir / zelda64::program_id; | ||||||
|  |    } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|    const char *homedir; |    const char *homedir; | ||||||
| 
 | 
 | ||||||
|    if ((homedir = getenv("HOME")) == nullptr) { |    if ((homedir = getenv("HOME")) == nullptr) { | ||||||
|  |  | ||||||
|  | @ -12,6 +12,15 @@ namespace zelda64 { | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     std::optional<std::filesystem::path> get_application_support_directory() { | ||||||
|  |         NSArray *dirs = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); | ||||||
|  |         if ([dirs count] > 0) { | ||||||
|  |             NSString *dir = [dirs firstObject]; | ||||||
|  |             return std::filesystem::path([dir UTF8String]); | ||||||
|  |         } | ||||||
|  |         return std::nullopt; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     std::filesystem::path get_bundle_resource_directory() { |     std::filesystem::path get_bundle_resource_directory() { | ||||||
|         NSString *bundlePath = [[NSBundle mainBundle] resourcePath]; |         NSString *bundlePath = [[NSBundle mainBundle] resourcePath]; | ||||||
|         return std::filesystem::path([bundlePath UTF8String]); |         return std::filesystem::path([bundlePath UTF8String]); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 squidbus
						squidbus