LifePlay-Revival/Docs/Migration/etat/REL/MAPDL1/MAPDL1-SPEC-05-v2.md
2026-10-22 21:10:39 +02:00

12 KiB
Raw Blame History

Fiche MAPDL1-SPEC-05 (v2) — Niveau N2 — Modèle prévu opus medium | utilisé claude-opus-5-5 — Agent session « Medium · MAPDL1 » — Skills sk-protocol, lp-city, lp-lot

MAPDL1-SPEC-05 v2 : états des villes, accord, licence, « Télécharger uniquement » ou « Installation complète » (2026-10-22)

La v2 révise MAPDL1-SPEC-05.md. Le § 1 (trois états), le § 2 (C1 à C5) et le § 3 de la v1 sont inchangés. Cette version remplace les § 4 à 6.

Réponse de l'utilisateur, citée mot pour mot par Big Boss : « le fichier json contient le lien de téléchargement mega alors on demande l'accord et on montre la licence de la carte avant de téléchargé. On propose 2 choix : téléchargé uniquement ou installation complète ».

Sans code ni jeton.

1. Le fichier Config/LPCityMaps.json : lien Mega et licence de chaque carte

{
  "format": 1,
  "base": ["CentralLondon", "00BathCC"],
  "licences": {
    "osm":  { "titre": "Map data (c) OpenStreetMap contributors, ODbL 1.0", "fichier": "Licenses/OpenStreetMap_Geodata_License.txt" },
    "lifeplay_ancienne": { "titre": "<texte du sec. 4, valide par l'utilisateur>", "fichier": "Licenses/Vinfamy_License.txt" }
  },
  "villes": [
    { "ville": "Tokyo", "pack": "lpm_city_tokyo", "version": "1.0.1",
      "jeu_min": "2026.10.2.2a", "jeu_max": "2026.12.99",
      "zip": "lpm_city_tokyo-1.0.1-for-LifePlay-2026.10.2.2a.zip", "octets": 0, "sha256": "…",
      "lien": "https://mega.nz/file/<id>#<cle>",
      "licences": ["osm", "lifeplay_ancienne"],
      "source": "Tokyo.zip, NEW Maps (2018-08-31), SHA-256 700173a2…318a4a" }
  ]
}
  • lien : le lien Mega du pack, c'est-à-dire de l'archive cuite 5.8 déposée par l'utilisateur sur son Mega (R1). L'utilisateur le fournit après son dépôt.
  • licences : des renvois à des textes communs. Le titre court s'affiche dans la fenêtre, et le texte complet se lit dans le fichier Licenses/… livré avec le jeu.
  • source : la provenance exacte, la même que dans CREDITS.txt.
  • Le fichier est écrit par Tools\IndexCartes.ps1 (C5), à partir de PRODUCTION.csv, des CREDITS des packs et d'une liste « ville ; lien » remplie par l'utilisateur.

2. La fenêtre au clic sur une ville téléchargeable

Fenêtre Slate « City map: », en anglais dans le jeu. Dans l'ordre :

  1. Informations :
    • ville et version du pack ;
    • taille ;
    • source (Mega) ;
    • provenance (« original LifePlay map, 2018 ») ;
    • « active after the next game launch ».
  2. Licence : les titres de licences, plus un bouton « Read the full licence » qui affiche le texte du fichier Licenses/….
  3. Accord : une case « I have read and accept the licence of this map », non cochée au départ. Les deux boutons d'action restent désactivés tant qu'elle n'est pas cochée.
  4. Deux boutons, et « Cancel » :
Bouton Ce qu'il fait
Download only (« Télécharger uniquement ») le zip du pack est obtenu depuis Mega et déposé, sans rien installer ; la fenêtre indique où il se trouve. La ville reste « téléchargeable »
Full install (« Installation complète ») le zip est obtenu et déposé, son SHA-256 est contrôlé contre le JSON, puis le pack est posé en deux arbres, Content/Modules/<pack>/ d'abord et Mods/<pack>/ en dernier, avec retour en arrière si une étape échoue. Une ancienne version du pack est déplacée dans Saved/Downloads/_ancien/, jamais supprimée. La ville passe à « Restart required »

Erreurs, pour les deux boutons : un message clair, rien d'installé, et la ville reste « téléchargeable ». Elles couvrent :

  • un SHA-256 faux (le fichier est déplacé dans Saved/Downloads/_rejet/) ;
  • un disque plein ;
  • un dossier Mods/ non inscriptible ;
  • un fichier introuvable.

3. Comment le jeu obtient le fichier depuis Mega

Les conditions de Mega (version du 02.03.2026, MAPDL1-L2-RECH-01.md) disent qu'une application ne peut utiliser leur API qu'après inscription développeur et approbation de Mega.

(c) Navigateur (b) Client de l'API Mega dans le jeu
Qui télécharge le navigateur du joueur, sur la page Mega du lien : le jeu l'ouvre (LaunchURL), et le joueur clique sur le bouton de téléchargement de Mega le jeu lui-même (HTTP en flux, déchiffrement AES-128, MAC Mega), avec une barre de progression dans la fenêtre
« Download only » possible : le navigateur dépose le zip dans le dossier Téléchargements. Le jeu ne fait rien de plus. Il ne voit le fichier que si le joueur garde la fenêtre ouverte (il peut alors indiquer « file received ») possible : le jeu dépose le zip dans un dossier qu'il connaît (par exemple Saved/Downloads/) et l'indique
« Full install » possible, en deux temps : le joueur télécharge dans le navigateur, puis le jeu repère le zip dans Téléchargements (dossier Windows de l'utilisateur, fichier de la taille attendue dont le SHA-256 correspond, même si le navigateur l'a renommé, par exemple « (1) ») et installe. Recours : « Choose file… » si le fichier est ailleurs possible, en un temps, sans quitter le jeu
Téléchargement vraiment dans le jeu non : il passe toujours par la page Mega dans le navigateur, un clic de plus, avec le quota et les éventuels écrans de Mega oui
Conditions de Mega conformes sans démarche approbation de Mega obligatoire avant publication (inscription développeur, contrat sur demande, à faire par l'utilisateur) ; Mega peut retirer l'accès à tout moment, sans préavis
Coût de C6 ≈ 1,75 j : fenêtre, case d'accord, licence, deux boutons, surveillance de Téléchargements, SHA-256, libzip, pose ≈ 2,5 à 3 j : la même fenêtre, plus le client Mega (non documenté officiellement : schéma relevé dans des clients communautaires)
Délai aucun inconnu : il dépend de la réponse de Mega à la demande d'approbation
Fragilité faible : le site de Mega fait le travail moyenne à élevée : changement d'API sans préavis, retrait possible

Réponse à la question. Les deux choix de l'utilisateur, « Télécharger uniquement » et « Installation complète », sont tous les deux possibles avec (c). Le téléchargement se fait alors dans le navigateur, et le jeu fait la pose. Seule (b) permet un téléchargement vraiment dans le jeu. Elle coûte environ 2,5 à 3 jours, avec un délai inconnu, fixé par Mega, et elle exige que l'utilisateur obtienne l'approbation de Mega.

Une voie mixte est possible : faire (c) maintenant, et ajouter (b) plus tard si Mega l'approuve. La fenêtre, la licence et la pose ne changent pas ; seule la source du fichier change.

À vérifier à l'IMPL, et non tranché ici :

  • libzip dans un module du jeu en Shipping (la bibliothèque est fournie avec le moteur, estimé) ;
  • un sélecteur de fichier Windows en Shipping pour « Choose file… » (celui du moteur n'existe qu'en éditeur ; un appel Win32 direct est à valider) ;
  • l'emplacement du dossier Téléchargements (SHGetKnownFolderPath, dossier connu de Windows).

4. Licence des anciennes cartes : ce que l'on sait

Élément Ce qui est établi Source
Données géographiques Elles viennent d'OpenStreetMap : noms de rues et de bâtiments réels, aménités OSM, importés par le plugin StreetMap, qui ne lit que de l'OSM. Licence : ODbL 1.0, attribution « © OpenStreetMap contributors » contenu lu par LireCarteUE4.py ; Plugins/StreetMap ; Licenses/OpenStreetMap_Geodata_License.txt livré avec le jeu
Provenance de chaque carte Dossier Mega « NEW Maps » (lien fourni par l'utilisateur), nom et SHA-256 du zip, date d'ajout sur Mega STM1-MEGA-CARTES-INDEX.md ; CREDITS.txt de chaque pack
Auteur de la carte (l'asset UE4 de 2018-2022) inconnu. Ni le dossier Mega ni les zips ne nomment d'auteur ; chaque zip ne contient que How_to_install_a_city.txt index Mega § « Ce qui n'a pas pu être lu » ; contenu des zips lus
Licence de l'asset inconnue. Le jeu d'origine met sous MIT les « assets created by me (Vinfamy) » (Licenses/Vinfamy_License.txt). Rien n'établit que ces cartes ont été faites par Vinfamy, ni par qui elles ont été ajoutées au dossier de 2019 à 2022 Licenses/Vinfamy_License.txt

Il n'y a aucune information par ville au-delà de la provenance et de la date. Le texte est donc le même pour toutes.

Texte honnête proposé, à valider par l'utilisateur (licences.lifeplay_ancienne.titre, et une ligne dans chaque CREDITS.txt) :

« Original LifePlay city map (2018–2022), inherited from the original LifePlay game's "NEW Maps" download folder. Author and licence of the original map asset are not recorded in the source. Map data (c) OpenStreetMap contributors, ODbL 1.0. LifePlay code and assets by Vinfamy are under the MIT licence (Licenses/Vinfamy_License.txt). »

Je n'ai rien inventé. Ce texte ne donne pas la carte pour MIT ; il dit seulement ce qui est établi. Si l'utilisateur sait qui a fait ces cartes, ou sous quelle licence, le texte se remplace dans un seul champ du JSON et dans le CREDITS des packs, à leur prochaine version.

5. Effort et plan (modèles réduits)

Étape Agent Modèle Jeton Contenu Effort
E0 lp-inventory haiku non autres appelants de GetAllFilesFromFolder("Heavy/StreetMap"), texte comparé au clic (v1 § 2) 0,25 j
E1 lp-impl sonnet (escalade : lp-impl-max) non C1 à C5 : états, crochet ModdingExtra, tri et grisés, bandeau, JSON et IndexCartes.ps1 2,25 j
E2 lp-builder haiku oui build de l'éditeur et du jeu Development 0,25 j
E3 lp-validator haiku non VAL statique 0,25 j
E4 utilisateur — — essai en jeu des états (cahier de MAPDL1) —
E5 lp-impl sonnet non C6 : fenêtre (informations, licence, case d'accord, deux boutons), puis la source selon D10 : (c) navigateur et surveillance de Téléchargements, ou (b) client Mega après approbation ; SHA-256, libzip, pose en deux arbres (c) 1,75 j ; (b) 2,5 à 3 j
E6 lp-builder, puis lp-validator haiku oui, puis non build et VAL de C6, puis essai en jeu 0,5 j
E7 lp-writer haiku non DOC, et la ligne de licence dans le gabarit de CREDITS de RepriseCarte.ps1 (texte validé) 0,25 j

Total :

  • états et menu : ≈ 3 j ;
  • avec le téléchargement en (c) : ≈ 5,25 j ;
  • avec le téléchargement en (b) : ≈ 6 à 6,5 j, plus le délai de Mega.

Aucun Blueprint n'est modifié (lp-mcp-bp n'est pas prévu). MAPDL1 (opus) garde les fiches, le diagnostic et la relecture.

6. Décisions à soumettre (Big Boss)

# Question Proposition
S5-1 les trois états et leur affichage (v1 § 1 et 3) oui
S5-2 la voie C++ seulement, aucun Blueprint (v1 § 2) oui
S5-3 lancer E0 à E4 (états et menu) avant le téléchargement oui
S5-4 la fenêtre du § 2 : informations, licence, case d'accord non cochée, « Download only » et « Full install » oui (c'est la consigne de l'utilisateur)
D10 (c) navigateur et pose par le jeu, ou (b) téléchargement dans le jeu, qui exige l'approbation de Mega ; ou (c) maintenant, puis (b) plus tard à l'utilisateur
D11 forme du dépôt sur Mega un zip par pack, l'archive produite telle quelle, pour (c) comme pour (b)
S5-5 le texte de licence des anciennes cartes (§ 4) à valider, à corriger ou à compléter par l'utilisateur

7. Compte rendu

  • Résultat : v2 rédigée. Aucun code, aucun jeton.
  • Preuves :
    • Licenses/OpenStreetMap_Geodata_License.txt et Licenses/Vinfamy_License.txt (lus) ;
    • STM1-MEGA-CARTES-INDEX.md ;
    • MAPDL1-L2-RECH-01.md ;
    • MAPDL1-SPEC-05.md (v1).
  • Incertitudes :
    • libzip et le sélecteur de fichier en Shipping ;
    • le renommage du zip par le navigateur (couvert par la recherche par taille et SHA-256) ;
    • le délai d'approbation de Mega.
  • Fichier : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\MAPDL1\MAPDL1-SPEC-05-v2.md (A).