refactor: JA_Sound_t RAII — buffer amb unique_ptr + SDLFreeDeleter, elimina JA_NewSound
This commit is contained in:
@@ -161,18 +161,31 @@ std::vector<char> file_readfile(const char* resourcename) {
|
||||
// Accepta rutes amb subdirectoris (ex: "jailgames/aee") i crea tota la jerarquia.
|
||||
void file_setconfigfolder(const char* foldername) {
|
||||
#ifdef _WIN32
|
||||
config_folder = std::string(getenv("APPDATA")) + "/" + foldername;
|
||||
const char* base = getenv("APPDATA");
|
||||
if (!base) base = "C:/";
|
||||
config_folder = std::string(base) + "/" + foldername;
|
||||
#elif __APPLE__
|
||||
struct passwd* pw = getpwuid(getuid());
|
||||
const char* homedir = pw->pw_dir;
|
||||
const char* homedir = (pw && pw->pw_dir) ? pw->pw_dir : nullptr;
|
||||
if (!homedir) homedir = getenv("HOME");
|
||||
if (!homedir) homedir = "/tmp";
|
||||
config_folder = std::string(homedir) + "/Library/Application Support/" + foldername;
|
||||
#elif __linux__
|
||||
// Nota emscripten: `__linux__` també està definit, però `getpwuid` no
|
||||
// troba cap /etc/passwd al MEMFS i retorna nullptr. Amb els fallbacks
|
||||
// HOME → /tmp evitem crashejar al primer arranque dins del navegador.
|
||||
// La config no persistirà entre recàrregues de la pàgina (MEMFS és
|
||||
// volàtil); caldria IDBFS si volguéssem persistència a web.
|
||||
struct passwd* pw = getpwuid(getuid());
|
||||
const char* homedir = pw->pw_dir;
|
||||
const char* homedir = (pw && pw->pw_dir) ? pw->pw_dir : nullptr;
|
||||
if (!homedir) homedir = getenv("HOME");
|
||||
if (!homedir) homedir = "/tmp";
|
||||
config_folder = std::string(homedir) + "/.config/" + foldername;
|
||||
#endif
|
||||
|
||||
std::filesystem::create_directories(config_folder);
|
||||
if (!config_folder.empty()) {
|
||||
std::filesystem::create_directories(config_folder);
|
||||
}
|
||||
}
|
||||
|
||||
const char* file_getconfigfolder() {
|
||||
|
||||
Reference in New Issue
Block a user