Compare commits

..
2 Commits
3 changed files with 24 additions and 10 deletions

No files matched your search

+19 -6
View File
@@ -69,8 +69,9 @@ Director::Director() {
std::exit(1); std::exit(1);
} }
// Prepara la carpeta de sistema (~/.config/jailgames/aee_arcade/) i carrega // Prepara la carpeta de sistema (per plataforma: %APPDATA% a Windows,
// les opcions; si no existeix config.yaml el crea amb els defaults. // ~/Library/Application Support a macOS, ~/.config a Linux) i carrega les
// opcions; si no existeix config.yaml el crea amb els defaults.
createSystemFolder(); createSystemFolder();
// Gamepad: descobreix mandos presents silenciosament. Cal fer-ho ABANS // Gamepad: descobreix mandos presents silenciosament. Cal fer-ho ABANS
@@ -331,17 +332,29 @@ Director::~Director() {
} }
void Director::createSystemFolder() { void Director::createSystemFolder() {
// Volem la config a $XDG_CONFIG_HOME/jailgames/aee_arcade/ (defecte // Carpeta de configuració per plataforma:
// ~/.config/jailgames/aee_arcade/). SDL_GetPrefPath apunta a XDG_DATA_HOME // - Windows: %APPDATA%\jailgames\aee_arcade\
// (.local/share), que és el lloc per a dades, no per a configuració. // - macOS: ~/Library/Application Support/jailgames/aee_arcade/
const char* xdg = std::getenv("XDG_CONFIG_HOME"); // - Linux: $XDG_CONFIG_HOME/jailgames/aee_arcade/ (defecte
// ~/.config/jailgames/aee_arcade/)
// No fem servir SDL_GetPrefPath: a Linux apunta a XDG_DATA_HOME
// (~/.local/share), que és per a dades, no per a configuració.
std::string base; std::string base;
#ifdef _WIN32
const char* appdata = std::getenv("APPDATA");
base = (appdata != nullptr && *appdata != '\0') ? std::string(appdata) : ".";
#elif defined(__APPLE__)
const char* home = std::getenv("HOME");
base = (home != nullptr) ? std::string(home) + "/Library/Application Support" : ".";
#else
const char* xdg = std::getenv("XDG_CONFIG_HOME");
if (xdg != nullptr && *xdg != '\0') { if (xdg != nullptr && *xdg != '\0') {
base = xdg; base = xdg;
} else { } else {
const char* home = std::getenv("HOME"); const char* home = std::getenv("HOME");
base = (home != nullptr) ? std::string(home) + "/.config" : "."; base = (home != nullptr) ? std::string(home) + "/.config" : ".";
} }
#endif
system_folder_ = base + "/jailgames/aee_arcade/"; system_folder_ = base + "/jailgames/aee_arcade/";
std::error_code error; std::error_code error;
+4 -3
View File
@@ -5,9 +5,10 @@
#include <string> #include <string>
// Configuració personal de desenvolupament, carregada de `debug.yaml` dins la // Configuració personal de desenvolupament, carregada de `debug.yaml` dins la
// carpeta de sistema (`$XDG_CONFIG_HOME/jailgames/aee_arcade/debug.yaml`). No es // carpeta de sistema del joc (vegeu `Director::createSystemFolder` per la
// versiona: cada dev el crea a la seua màquina. Si no existeix, s'aplica el // ubicació real per plataforma). No es versiona: cada dev el crea a la seua
// valor per defecte (GAME) sense warning de nivell error. // màquina. Si no existeix, s'aplica el valor per defecte (GAME) sense warning
// de nivell error.
namespace DebugConfig { namespace DebugConfig {
enum class StartScene : std::uint8_t { LOGO, enum class StartScene : std::uint8_t { LOGO,
+1 -1
View File
@@ -3,7 +3,7 @@
namespace Texts { namespace Texts {
constexpr const char* WINDOW_TITLE = "© 2026 Aventures en Egipte ARCADE — JailDesigner"; constexpr const char* WINDOW_TITLE = "© 2026 Aventures en Egipte ARCADE — JailDesigner";
constexpr const char* COPYRIGHT = "© 2026 JailDesigner"; constexpr const char* COPYRIGHT = "© 2026 JailDesigner";
constexpr const char* VERSION = "0.37.0"; // Single source of truth — Makefile el grep constexpr const char* VERSION = "0.38.0"; // Single source of truth — Makefile el grep
} // namespace Texts } // namespace Texts
namespace GameCanvas { namespace GameCanvas {