LifePlay-Revival/Docs/Migration/etat/BOSS/COMMUN-20-TESTS.md

112 lines
15 KiB
Markdown
Raw Normal View History

Fiche COMMUN-20-FIT — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-writer (rôle A-DOC) — Skills sk-protocol, lp-doc, lp-lot
# COMMUN-20-TESTS : fiche de tests commune de la build Development COMMUN-20 (KEY2 menu Clavier regroupé, STM1 maisons masquées dans la Tamise, DISC1 lien Discord) (2026-10-20)
Demande de Big Boss (`local_104ff22d`), 2026-10-20, sur ordre de l'utilisateur : « Oui, lance la build Development COMMUN-20 (menu Clavier KEY2, maisons masquées dans la Tamise STM1, lien Discord) et prépare le cahier de tests. » Cette fiche reprend `KEY2-SPEC-02.md` § 0 et `KEY2-VAL-04.md` (réserves R2, R3, points à confirmer), `STM1-SPEC-08.md` et `STM1-B6-FIN.md` § 4 (résultat attendu en jeu), `STM1-O3-LISTE.md`, `DISC1-B1.md` (nouvelle adresse), puis des non-régressions courtes. Fiche **prête** : § 1 (MD5, heure) à compléter par Big Boss à la remise de la build. Rédigée sans copie UE, sans MCP, sans lancer le jeu. Aucun contenu de jeu : chaque action est décrite par sa fonction. Forme reprise de `COMMUN-19-TESTS.md`.
**Hors fiche** : la branche « pièce cachée » et ERR-145 (C1 assis, corps sans tête), reportées ; le libellé de l'axe de zoom (`ScrollDownUp`, réserve R3 de `KEY2-VAL-04.md`) : constaté seulement, jamais un échec ; le code mort d'`AxisLabel` (réserve R2), sans effet à l'écran.
## 1. Build testé
| Élément | Valeur |
|---|---|
| Chemin de la build | `D:\Game\LifePlay_Build_5.8_Development_COM20\Windows\` (lancer `Windows\LifePlay.exe`) ; confirmé par Big Boss à la remise |
| Exe | `Windows\LifePlay\Binaries\Win64\LifePlay.exe` |
| MD5 de l'exe | `9f505bc9dde866a0cfadbcddff251c35` (identique à `Binaries\Win64\LifePlay.exe` du projet), 335 842 304 octets |
| Date de génération | exe lié le 2026-10-20 à 16:30:56 (compilation STM1-B6, après KEY2-BUILD-03) ; paquet `BuildDebug.ps1 -SkipBuild` lancé à 16:59:22, UAT code 0 en 165 s, CheckPackage PASS, cuisson 0 erreur (166 paquets) ; `MainMenu` cuit à 17:00:47 et `CentralLondon_Mask` à 17:00:51 ; journal `Saved\Logs\portage\BuildDebug_Development_20261020-165922.log` |
| Configuration | Development, commune à plusieurs lots |
| Base | HEAD du dépôt + sources et assets non commités de KEY2, STM1 et DISC1 ; la build doit **inclure** le masque `Content/Heavy/StreetMap/Water/CentralLondon_Mask.uasset` (`/Game` cuit en entier) et le `MainMenu` modifié par DISC1 |
| Génération | faite : `etat\BOSS\COMMUN-20\COMMUN-20-BUILD.md` |
MD5 des sources et assets attendus (relevés dans les livrables amont, 8 premiers caractères sauf mention) :
- `LPKeyboardSubsystem.cpp` `0EB6A592` (`KEY2-VAL-04.md` critère 1a) ;
- `LPCityWaterMask.h` `966DC14D`, `LPCityWaterSubsystem.h` `2CDC1001`, `LPCityWaterSubsystem.cpp` `9C0B257E`, `LPBuildCityWaterCommandlet.cpp` `FA6FBB72` (`STM1-B6-FIN.md` § 1) ;
- `CentralLondon_Mask.uasset` `F6F684B2` ; `Water/CentralLondon.uasset` `5BDF4F0A` et `M_LP_Water.uasset` `D413292C` **inchangés** (`STM1-B6-FIN.md` § 3) ;
- `MainMenu.uasset` : valeur d'avant non relevée dans les sources lues ; nouvelle valeur à relever par Big Boss (DISC1) et à citer ici.
Lots et correctifs couverts :
- **KEY2-IMPL-02** (`KEY2-TACHES.md` l. 19 ; `KEY2-SPEC-02.md` § 0) : menu Clavier, affichage seul, 9 sections ; flèches à deux places, même liaison ; Pause dans Time, TestScenes dans System ; libellé « Action Panel (also Alt / middle click) ». VAL statique `KEY2-VAL-04.md` : PASS-STATIC, comportement à l'écran **jamais vu**.
- **STM1-B6** (`STM1-SPEC-08.md`, option D) : les 59 maisons génériques dont le centre est dans l'eau sont mises à l'échelle 0 en jeu, sur la carte de Londres ; arbres et jeeps non touchés. Builds à 0 erreur, masque écrit, **jamais vu en jeu**.
- **DISC1-B1** (`DISC1-B1.md`) : l'adresse du bouton Discord du menu principal passe à `https://discord.gg/TsKJw3Wvja`.
Constantes à connaître : masque = 59 centres sur 49 425 bâtiments ; tolérance de correspondance 50 cm ; seuil d'épargne `SpareAboveAreaM2 = 0` (rien n'est épargné) ; `C1MouseSign = +1`.
## 2. Faisabilité
Machine calme : réserve « mesure » non requise. Sauvegarde et copie d'essai : **à faire à la remise de la build** (copie de la sauvegarde du joueur avant l'essai). Lancement et journal : à compléter à la remise (`Windows\LifePlay\Saved\Logs\LifePlay.log` de la build).
Lecture des témoins :
- `[LPCity] EAU <Ville> : masque n centres ; instances maisons N ; masquees m ; epargnees k (seuil s m2) ; centres sans instance c` : écrite **au changement** seulement (`STM1-SPEC-08.md` § 3), à chaque passe dont le résultat change ; plusieurs lignes possibles tant que la carte charge ses instances ; lire la **dernière**.
- Si `centres sans instance` est élevé, le repère des instances diffère de celui de la carte : à relever pour le BILAN, sans retouche (`STM1-B6-FIN.md` § 4).
| Cas | Fonction ou réglage dans la build ? | Dépend d'un travail non fini ou d'une observation |
|---|---|---|
| .1 à .5 (menu Clavier) | oui (KEY2-IMPL-02, compilée, VAL statique PASS-STATIC) | rendu en jeu jamais vu ; points à confirmer de `KEY2-VAL-04.md` § 6 |
| .6 à .8 (Londres, Bath) | oui (STM1-B6, masque cuit avec `/Game`) | jamais vu en jeu ; le nombre de maisons masquées dépend de la cuisson du masque dans la build |
| .9 (Discord) | oui (DISC1-B1) | l'ouverture du navigateur dépend du poste ; l'adresse seule se vérifie |
| .10 à .12 | oui | non-régressions ; POV de scène : voir COMMUN-19.1 |
## 3. Cas
Contrôle automatique : motif cherché dans le journal de jeu, lancé avant la remise par `Tools\EssaiJournal.ps1` quand il existe. Verdict, Découvreur et Heure restent vides : le BILAN les remplit. « Journal » = `Saved\Logs\LifePlay.log` de la build.
### 3.1 KEY2 : menu Clavier
Prérequis communs : ouvrir le menu **Clavier** des réglages depuis le menu principal ou la pause. Pour le cas .3, noter la touche d'origine de chaque flèche **avant** de la changer.
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
|---|---|---|---|---|---|---|---|---|
| COMMUN-20.1 | KEY2 | KEY2-IMPL-02 ; `KEY2-SPEC-02.md` § 0 point 1 ; `KEY2-VAL-04.md` § 6 | Faire défiler tout le menu Clavier et **noter l'ordre des titres de section** (capture d'écran bienvenue) | **9 sections dans cet ordre** : Movement, Camera, Map & World, Couple (scene), Actions & Interaction, Menus, Time, Favorites, System ; **aucune section « Other »** ; aucune ligne hors section | sans objet : constat visuel | | | |
| COMMUN-20.2 | KEY2 | idem ; `KEY2-SPEC-02.md` § 0 point 3 | Repérer la ligne **Pause** et la ligne **TestScenes** | **Pause** se trouve dans **Time** (avec les vitesses), plus dans Menus ; **TestScenes** se trouve dans **System** (avec les sauvegardes rapides) ; Menus ne contient plus Pause | sans objet : constat visuel | | | |
| COMMUN-20.3 | KEY2 | idem ; option A, `KEY2-SPEC-02.md` § 0 point 2 ; `KEY2-VAL-04.md` § 3.2 | 1. Repérer les flèches dans **Map & World** (« Map Right / Left / Forward / Back ») **et** dans **Couple (scene)** (« Couple Right / Left / Forward / Back ») ; 2. **changer** une flèche dans Map & World (par exemple Map Right) pour une touche libre ; 3. relire la ligne correspondante de Couple (scene) ; 4. changer ensuite une flèche dans Couple (scene) et relire Map & World ; 5. **remettre la touche d'origine** de chaque flèche touchée, ou faire **Reset** ; 6. quitter le menu | Les flèches sont présentes **dans les deux sections**, 4 lignes chacune ; changer l'une **change l'autre** (même liaison, même touche affichée) ; le menu se redessine sans erreur ; après remise ou Reset, les deux lignes retrouvent la valeur d'origine. Noter si un conflit de touche est signalé | motif `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 ; motif `illisible` (ligne « Clavier ») : 0 | | | |
| COMMUN-20.4 | KEY2 | idem ; `KEY2-SPEC-02.md` § 0 point 4 | Dans la section Actions & Interaction, lire le **libellé de l'action du panneau d'actions** | Libellé exact : « Action Panel (also Alt / middle click) » ; la commande Rotation de caméra reste dans **Camera** seulement | sans objet : constat visuel | | | |
| COMMUN-20.5 | KEY2 | Disposition QWERTY / AZERTY (PASS en COMMUN-18.17 et COMMUN-19.11) | Choisir la disposition **AZERTY** (menu Clavier) ; marcher en ZQSD ; fermer le jeu, relancer ; vérifier la disposition | La marche suit la disposition ; **AZERTY conservée** après relance (« Layout: AZERTY ») ; le regroupement ne change ni la disposition ni les touches liées | motif `51 actions et 17 axes relus` (ou équivalent) à la relance ; motif `illisible` (ligne « Clavier ») : 0 ; motif `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 | | | |
### 3.2 STM1 : carte de Londres sans maisons sur la Tamise
Prérequis communs : charger la carte de **Londres** en mode par défaut (partie neuve ou chargée, sans mod). Laisser la carte finir de charger ses bâtiments (quelques secondes) avant de juger. Observer d'en haut (vue de dessus) le long du fleuve, puis au sol près d'un pont.
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
|---|---|---|---|---|---|---|---|---|
| COMMUN-20.6 | STM1 | STM1-B6 ; `STM1-SPEC-08.md` § 2 ; `STM1-B6-FIN.md` § 4 | Carte de Londres : suivre le fleuve de bout en bout en vue de dessus ; regarder ponts, quais, berges, jeeps et arbres sur les ponts ; noter toute maison posée sur l'eau (capture d'écran bienvenue) | **Plus aucune maison générique sur la Tamise** ; **ponts, quais, jeeps et arbres intacts** ; les maisons des berges restent en place ; aucune maison flottante, aucun trou dans les quais | sans objet : constat visuel (voir .7 pour le témoin) | | | |
| COMMUN-20.7 | STM1 | idem ; témoin `[LPCity]` | Après le chargement de Londres, ouvrir le journal de la build et lire la **dernière** ligne `[LPCity] EAU CentralLondon` | Ligne de la forme `masque 59 centres ; instances maisons N ; masquees m ; epargnees 0 (seuil 0 m2) ; centres sans instance c` avec **masque 59 centres**, **masquees ≈ 59**, **epargnees 0** et `centres sans instance` ≈ 0 ; noter N et c | motif `\[LPCity\] EAU CentralLondon : masque 59 centres` : au moins 1 (recopier la dernière ligne au BILAN) ; motif `epargnees 0` sur la dernière ligne ; motif `\[LPCity\].*sans masque` ou équivalent pour Londres : 0 | | | |
| COMMUN-20.8 | STM1 | Non-régression de l'eau sur une autre carte ; `STM1-SPEC-08.md` § 2 point 7 (ville sans masque : rien n'est fait) | Charger la carte de **Bath** ; regarder le fleuve et les bâtiments voisins ; revenir à Londres si besoin pour comparer | Bath **inchangée** : eau en place, bâtiments en place, aucune maison disparue, aucun artefact ; le masque de Londres ne s'applique pas à Bath | motif `\[LPCity\] EAU Bath` : recopier la ligne si elle existe (le texte « sans masque » est admis pour cette ville) ; motif `masque 59 centres` sur Bath : 0 ; motif `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 | | | |
### 3.3 DISC1 : lien Discord
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
|---|---|---|---|---|---|---|---|---|
| COMMUN-20.9 | DISC1 | DISC1-B1 ; `DISC1-B1.md` | Menu principal : cliquer le bouton **Discord** ; **lire l'adresse** affichée dans la barre du navigateur ; fermer l'onglet. **Ne pas rejoindre le serveur** : vérifier seulement l'adresse | Le navigateur s'ouvre sur `https://discord.gg/TsKJw3Wvja` ; ce n'est **plus** l'ancienne adresse (`https://discord.gg/q4689pNSy`) ; aucun message d'erreur dans le jeu. Si le navigateur ne s'ouvre pas : noter le poste (navigateur par défaut) avant de conclure | sans objet : constat visuel (l'ouverture d'un lien n'écrit pas de ligne propre) | | | |
### 3.4 Non-régression
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
|---|---|---|---|---|---|---|---|---|
| COMMUN-20.10 | CAM2 | POV de scène (voir COMMUN-19.1 pour la méthode) | Lancer une **scène** en pièce visible, passer en **POV** (tête du personnage 1) ; souris bouton tenu : haut, bas, gauche, droite ; puis **C** pour le personnage 2 et recommencer | Même comportement que COMMUN-19.1 (POV d'avant) : la vue **bouge** à la souris ; noter les sens. Si le résultat diffère de celui du BILAN de COMMUN-19, le signaler ; le menu Clavier regroupé ne doit rien changer ici | motif `POV souris : ` : au moins 1 ligne par geste ; motif `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 | | | |
| COMMUN-20.11 | CAM2 | `C1MouseSign +1` (PASS en COMMUN-18.1) | Jeu libre, caméra C1 (hors scène) : monter puis descendre la souris ; tourner à l'horizontale | **Souris vers le haut = regarder vers le haut** ; arrêt vers +70° / -60° ; inchangé | motif `C1 souris` : au moins 1 ligne ; quand `CursorY` est positif, `tangage voulu` positif | | | |
| COMMUN-20.12 | KEY2 | V / X, flèches du couple (PASS en COMMUN-18.5 à .7 ; la ligne de flèches a changé de libellé, la liaison est la même) | Scène en pièce **visible** : tenir **V** puis **X**, puis les flèches haut / bas, puis gauche / droite, jusqu'à l'arrêt | V monte, X descend ; flèches : Y puis X du monde, **avec les touches affichées dans Couple (scene)** (celles du .3 si elles n'ont pas été remises : le dire) ; arrêt aux bornes sans saccade ; aucune rotation du couple | motif `Scene : CoupleMoveY \(Z\)=`, `Scene : DownUp \(Y\)=`, `Scene : LeftRight \(X\)=` : une ligne chacun ; motif `ignore \(interieur inconnu\)` : 0 | | | |
Décompte : **12 cas** : menu Clavier 5 (.1 à .5), Londres et Bath 3 (.6 à .8), Discord 1 (.9), non-régression 3 (.10 à .12).
Relevés communs au journal (hors cas) : `Fatal|Unhandled|Critical error|Assertion failed` = 0 ; `Accessed None` : aucun nouveau ; toute ligne `[LPCity]` de la session recopiée au BILAN (la dernière ligne EAU de Londres est la preuve du .7) ; temps de chargement de Londres noté (le masquage ajoute une passe sur les instances ; une gêne perceptible est à signaler, sans verdict).
## 4. Cas témoins
| Cas | VAL statique (chemin) | Verdict statique |
|---|---|---|
| COMMUN-20.1 à .4 | `Docs\Migration\etat\REL\KEY2\KEY2-VAL-04.md` | PASS-STATIC (lecture du diff et des journaux de build) ; rendu à l'écran **non vu** |
| COMMUN-20.5 | `Docs\Migration\etat\REL\KEY2\KEY2-VAL-03.md` | PASS statique ; PASS en jeu en COMMUN-18 (.17) et COMMUN-19 (.11) selon leurs BILANS |
| COMMUN-20.6 à .8 | aucune VAL propre | `STM1-B6-FIN.md` : code et builds à 0 erreur, masque écrit (59 centres), assets de l'eau inchangés ; **jamais vu en jeu** |
| COMMUN-20.9 | `Docs\Migration\etat\REL\DISC1\DISC1-B1.md` | essai à blanc de la commandlet : 1 modification de l'adresse ; ouverture dans le navigateur **non vue** |
| COMMUN-20.10 | `COMMUN-19-TESTS.md` (cas .1) et son BILAN | à relever dans le BILAN de COMMUN-19 |
| COMMUN-20.11 | `COMMUN-18-TESTS.md` (cas .1) | PASS en jeu en COMMUN-18 |
| COMMUN-20.12 | `COMMUN-18-TESTS.md` (cas .5 à .7) | PASS en jeu en COMMUN-18 ; libellés des flèches nouveaux |
Aucune VAL de comportement n'existe pour les cas .1 à .9 : aucun verdict statique ne vaut pour un cas de jeu.
PubCheck : 0 constat(s) (`Tools\PubCheck.ps1 -Fichiers <ce fichier>`, code 0).
Tours : 5 / 40
## Fichiers à commiter
- `Docs/Migration/etat/BOSS/COMMUN-20-TESTS.md` (A).