• [^] # Re: Emplacement fichiers de config

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Enemy Territory: Legacy, en résistance. Évalué à 10.

    Parce que c’est plus complexe que cela... /o\

    En fait Freedesktop c’est quoi... ce serait la config dans ~/.config/etlegacy, le cache dans ~/.cache/etlegacy, des fichiers partagés dans ~/.local/share/etlegacy. Mais il faut faire avec l’historique, et l’historique, c’est la manière de faire d’Id Software.

    En gros ça marche comme ça

    /dossier_système/fichier_de.conf
    /dossier_système/jeu/archive.pk3
    /dossier_utilisateur/fichier_de.conf
    /dossier_utilisateur/jeu/archive.pk3
    /dossier_utilisateur/mod/archive.pk3
    

    /dossier_utilisateur/ surcharge /dossier_système/.

    Par exemple /dossier_utilisateur/fichier_de.conf surcharge /dossier_système/fichier_de.conf

    Et si tu as

    /dossier_système/jeu/archive1_jeu.pk3
    /dossier_système/mod1/archive_mod1.pk3
    /dossier_utilisateur/jeu/archive2_jeu.pk3
    /dossier_utilisateur/mod2/archive_mod2.pk3
    

    Le jeu voit en fait un dossier unifié :

    fichier_de.conf
    jeu/archive1_jeu.pk3
    jeu/archive2_jeu.pk3
    mod1/archive_mod1.pk3
    mod2/archive_mod2.pk3
    

    Et ça va même plus loin que ça puisque les archives .pk3 sont en fait des zip d’une partie de l’arborescence.

    Par exemple une archive "jeu.pk3" contiendrait :

    map/school.bsp
    map/home.bsp
    map/garden.bsp
    texture/rock.png
    texture/water.png
    sound/voice.ogg
    

    et une archive map-monde.pk3 contiendrait :

    map/map.bsp
    texture/terrain.png
    sound/music.ogg
    

    Le jeu verra :

    fichier_de.conf
    jeu/map/school.bsp
    jeu/map/home.bsp
    jeu/map/garden.bsp
    jeu/map/map.bsp
    jeu/texture/terrain.png
    jeu/texture/rock.png
    jeu/texture/water.png
    jeu/sound/voice.ogg
    jeu/sound/music.ogg
    

    Ici, le dossier système serait par exemple /usr/share/games/etlegacy, et le dossier utilisateur ~/.etlegacy, et les dossiers de jeux/mod seraient etmain (Wolf:ET) et tcetest (TrueCombat:Elite). Les organisations suivantes sont équivalentes :

    1.

    /usr/share/games/etlegacy/
    /usr/share/games/etlegacy/etmain/
    /usr/share/games/etlegacy/etmain/pak0.pk3
    /home/luser/.etlegacy/
    /home/luser/.etlegacy/autoexec.cfg
    /home/luser/.etlegacy/etmain/
    /home/luser/.etlegacy/etmain/map-extra.pk3
    /home/luser/.etlegacy/tcetest/
    /home/luser/.etlegacy/tcetest/pak0.pk3
    

    2.

    /usr/share/games/etlegacy/
    /usr/share/games/etlegacy/etmain/
    /usr/share/games/etlegacy/etmain/pak0.pk3
    /usr/share/games/etlegacy/etmain/map-extra.pk3
    /usr/share/games/etlegacy/tcetest/
    /usr/share/games/etlegacy/tcetest/pak0.pk3
    /home/luser/.etlegacy/
    /home/luser/.etlegacy/autoexec.cfg
    

    Je ne sais pas si ET:Legacy l’utilise, mais il existe une bibliothèque dédiée pour ça, PhysicsFS, que j’avais présenté dans une précédente dépêche.

    Puisqu’il faut rester compatible avec les mods, seulent peuvent être changés les noms de dossier qui contiennent les fichiers du jeu, mais l’organisation de l’arborescence ne peut pas être changée. Au mieux, etlegacy pourrait travailler dans ~/.local/share/etlegacy, mais tout y serait, même la configuration qui devrait être dans ~/.config/etlegacy.

    ce commentaire est sous licence cc by 4 et précédentes