Fix missing list header include in zelda_support.h

This commit is contained in:
Wiseguy 2025-04-15 23:25:31 -04:00 committed by Mr-Wiseguy
commit dcaace5b3f
4 changed files with 20 additions and 0 deletions

View file

@ -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?
- Windows: `%LOCALAPPDATA%\Zelda64Recompiled\saves`
- Linux: `~/.config/Zelda64Recompiled/saves`
- macOS: `~/Library/Application Support/Zelda64Recompiled/saves`
#### 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.**

View file

@ -4,6 +4,8 @@
#include <functional>
#include <filesystem>
#include <vector>
#include <optional>
#include <list>
namespace zelda64 {
std::filesystem::path get_asset_path(const char* asset);
@ -14,6 +16,7 @@ namespace zelda64 {
// Apple specific methods that usually require Objective-C. Implemented in support_apple.mm.
#ifdef __APPLE__
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_directory();
#endif

View file

@ -162,6 +162,13 @@ std::filesystem::path zelda64::get_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;
if ((homedir = getenv("HOME")) == nullptr) {

View file

@ -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() {
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
return std::filesystem::path([bundlePath UTF8String]);