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

127 lines
16 KiB
Markdown
Raw Normal View History

Fiche COMMUN-23-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-23-TESTS : fiche de tests commune de la build Development COMMUN-23 (SET1 réglages en partie, M-Z talons, F8a) (2026-10-20)
Demande de Big Boss (`local_104ff22d`), 2026-10-20, sur ordre de l'utilisateur : « Oui, lance la build Development COMMUN-23 (SET1 réglages en partie, M-Z talons, F8a) et prépare le cahier de tests. » Cette fiche reprend `etat\REL\SET1\SET1-V1-IMPL.md` (§ 5 V1 à V10, § 10), `SET1-V1b-IMPL.md` (§ 5 W1 à W9), `etat\REL\FIX1\FIX1-MZ2-IMPL.md` (§ 5), `FIX1-MES.md` (constat de la séance : talons enfoncés au lever) et `FIX1-F8a-IMPL.md`. Constat de départ côté SET1 (captures de l'utilisateur, avant correctif) : en partie, l'ancienne liste longue des réglages s'affichait, puis était remplacée par les onglets au bout d'environ 30 s, avec une superposition. 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 (doc 27). Forme reprise de `COMMUN-21-TESTS.md`.
**Hors fiche** : E9 de F6 et la redirection des sauvegardes (COMMUN-21) ; la branche « pièce cachée » ; la correction de la page Keyboard au-delà de son affichage ; F7b (animation « look », séance FIX1-MES) ; mesure du délai de 0,5 s de W7 (relevé au journal seulement, pas de verdict de temps de trame).
## 1. Build testé
| Élément | Valeur |
|---|---|
| Chemin de la build | `D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\` (lancer `Windows\LifePlay.exe`) ; confirmé par Big Boss à la remise |
| Exe | `Windows\LifePlay\Binaries\Win64\LifePlay.exe` |
| MD5 de l'exe | `0f7b0a39eb48753d3b6bf436f43032a0` (identique à `Binaries\Win64\LifePlay.exe`, compilation SET1-V1b), 335 855 104 octets |
| Date de génération | exe lié le 2026-10-20 à 21:37:17 ; paquet `BuildDebug.ps1 -SkipBuild` lancé à 21:43:16, UAT code 0 en 119 s, CheckPackage PASS, 0 paquet recuit ; journal `Saved\Logs\portage\BuildDebug_Development_20261020-214316.log` |
| Configuration | Development, commune à plusieurs lots |
| Base | HEAD du dépôt + sources non commitées de SET1 (V1 et V1b) et de FIX1 (MZ2, F8a) |
MD5 des sources attendus (relevés dans les livrables amont) :
- `LPSettingsSubsystem.cpp` `6277a8fc139c05dc10e302f88de0f8d9`, `LPSettingsSubsystem.h` `138350efe8473c430db984db63c8feac`, `LPColorGradeSubsystem.cpp` `5be400543166b6de7a4a88f6097a9d93`, `LPVideoQualitySubsystem.cpp` `c3055197030bdbbce813df4cc6d7cd63`, `LPModInfoSubsystem.cpp` `98206e688308e908b04ae15cf408e1bb` (`SET1-V1b-IMPL.md` § 9) ;
- `LPDirectControlSubsystem.cpp` `86ef519e880989941e033edeadda7c26` (`FIX1-MZ2-IMPL.md` § 1) ;
- `LPCameraModeSubsystem.cpp` `976bf0a458b87f9aecf974fcec3209f0` (`FIX1-F8a-IMPL.md` § 1) ;
- ces MD5 sont ceux des livrables amont, à la date de leurs fiches : si un fichier a bougé depuis, seul le relevé de Big Boss fait foi.
Lots et correctifs couverts :
- **SET1-V1 / V1b** : les onglets des réglages (General, Audio, Video, Keyboard, Lewd, Misc) et les lignes de couleur, de vidéo et de contrôle des mods se posent sur l'instance du menu qui est **à l'écran**, plus sur la première liste trouvée en mémoire (cause établie : une instance neuve du menu à chaque ouverture en partie, les anciennes restent en mémoire jusqu'au ramasse-miettes). Compilé à 0 erreur, 0 avertissement ; **jamais vu en jeu**.
- **FIX1-MZ2** : la correction M-Z (maillage relevé au lever) vise −90 + 12 × HeelHeight au lieu de −90 fixe ; en talons (−80,4 pour 0,8) le maillage est déjà à sa hauteur voulue et M-Z ne se déclenche plus. Valeurs calculées sur les journaux de COM22, **jamais vues en jeu**.
- **FIX1-F8a** : initialisation de `Aim` dans `TickCoupleMouse` (avertissement C4701) ; logique inchangée par construction, aucune exécution (`FIX1-F8a-IMPL.md` C1).
## 2. Faisabilité
Machine calme : réserve « mesure » non requise.
### 2.1 Lignes de lancement
Le PowerShell de l'utilisateur plante au démarrage : donner les deux formes. Elles sont équivalentes.
Forme `cmd` (sans `&`), jeu lancé **sans** argument (cas 1 à 5 et 7) :
```cmd
"D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay.exe"
```
Forme PowerShell (avec `&`) :
```powershell
& "D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay.exe"
```
Forme `cmd` avec le relevé des personnages, **cas 6** (un relevé toutes les 2 s au journal) :
```cmd
"D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay.exe" -LPPersonsLog=2
```
Forme PowerShell :
```powershell
& "D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay.exe" -LPPersonsLog=2
```
Après le chargement, la ligne `LPDebug persons : releve toutes les 2 s` doit être au journal (`LPDebugSubsystem.cpp:649`, cité par `FIX1-MES.md` § 1) ; absente, l'argument n'a pas été pris : arrêter et le dire.
### 2.2 Journal et motifs
« Journal » = `D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay\Saved\Logs\LifePlay.log` du lancement jugé (le jeu en garde un exemplaire horodaté à chaque lancement). Préfixe `LogLifePlay: Display:`. Motifs exacts, lus dans le code :
| Motif (texte exact) | Fichier : ligne | Quand |
|---|---|---|
| `Reglages : onglets General, Audio, Video, Keyboard, Lewd, Misc` | `LPSettingsSubsystem.cpp:938` | à chaque création de barre d'onglets |
| `Reglages : onglets poses sur <MainMenu_C_n> (ecran titre)` ou `(partie)` | `LPSettingsSubsystem.cpp:940` | juste après la précédente |
| `Reglages : onglets retires de <MainMenu_C_k> (instance quittee)` | `LPSettingsSubsystem.cpp:180` | au changement d'instance, avant les deux précédentes |
| `Reglages : entree Settings ajoutee sur l'ecran titre` ; `Reglages : Settings place apres Mod Manager` | `LPSettingsSubsystem.cpp:791`, `:857` | création du bouton Settings de l'écran titre |
| `Couleur : reglages de couleur ajoutes sur <MainMenu_C_n>` | `LPColorGradeSubsystem.cpp:314` | les 5 lignes de couleur viennent d'être ajoutées à la liste de cette instance |
| `Video : controles ajoutes avant les reglages de couleur (sur <MainMenu_C_n>)` | `LPVideoQualitySubsystem.cpp:595` | les lignes de vidéo et Recommended viennent d'être ajoutées |
| `Modules : cases de controle des mods ajoutees a Settings > Misc (moteur a, version min b, version max c) sur <MainMenu_C_n>` | `LPModInfoSubsystem.cpp:303` | les 3 cases de contrôle des mods viennent d'être ajoutées |
| `M-Z : <acteur> maillage relatif Z <avant> -> <cible>[ (talons)] (gabarit <classe>), debout sans meuble ; HeelHeight=<h> ; currentAnimation=<nom> ; -90+12*HeelHeight=<z>` | `LPDirectControlSubsystem.cpp:1268` | une correction M-Z |
| `LPDebug persons : STATE <acteur> coll=… meshZ=… anim=… currentAnimation=…` | `LPDebugSubsystem.cpp:414`, `:580` | un relevé toutes les 2 s avec `-LPPersonsLog=2` |
Relevé commun des réglages (commande prête, à lancer après chaque lancement) :
```powershell
Select-String -Path "D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay\Saved\Logs\LifePlay.log" -Pattern 'onglets (poses|retires)','reglages de couleur ajoutes sur','controles ajoutes avant','cases de controle des mods'
```
Rapprocher ensuite les noms `MainMenu_C_<n>` : pour une instance donnée, les quatre familles de lignes portent le **même** `<n>` (`SET1-V1b-IMPL.md` § 10).
Relevé commun des personnages (cas 6) :
```powershell
$J = "D:\Game\LifePlay_Build_5.8_Development_COM23\Windows\LifePlay\Saved\Logs\LifePlay.log"
Select-String -Path $J -Pattern 'LPDebug persons : STATE PlayerCharacter' | Select-Object LineNumber, Line
Select-String -Path $J -Pattern 'M-Z :'
```
| Cas | Fonction ou réglage dans la build ? | Dépend d'un travail non fini ou d'une observation |
|---|---|---|
| .1 à .5 (SET1) | oui (V1 et V1b, compilées à 0 erreur) | jamais vu en jeu ; `IsInViewport()` vrai pour l'instance de l'écran titre non observé (V6) : si faux, aucun onglet au titre |
| .6 (M-Z) | oui (MZ2, compilée à 0 erreur) | jamais vu en jeu ; demande une tenue à talons (`HeelHeight` > 0), une tenue sans talons, un siège |
| .7 (non-régressions) | oui | F8a jamais exécutée ; menu Clavier et Tamise : voir COMMUN-21 et COMMUN-20 |
## 3. Cas
Contrôle automatique : motif cherché dans le journal de jeu par Big Boss (lancé avant la remise par `Tools\EssaiJournal.ps1` quand il existe). Verdict, Découvreur et Heure restent vides : le BILAN les remplit. « Onglets tout de suite » = les onglets sont visibles dès l'ouverture, **sans** liste longue, **sans** superposition et **sans** attente d'environ 30 s.
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
|---|---|---|---|---|---|---|---|---|
| COMMUN-23.1 | SET1 | SET1-V1 (V1, V4 partiel, V6), SET1-V1b (W3) | Lancer le jeu (ligne § 2.1, sans argument) ; sur l'**écran titre**, cliquer **Settings** | Onglets General, Audio, Video, Keyboard, Lewd, Misc **tout de suite** ; onglet **Video** complet (qualité globale, ombres, textures, effets, anticrénelage, Recommended, puis les cinq réglages de couleur) ; onglet **Misc** complet (les trois cases de contrôle des mods) | `onglets poses sur MainMenu_C_<n> (ecran titre)` : 1 ligne ; `reglages de couleur ajoutes sur`, `controles ajoutes avant`, `cases de controle des mods` : 1 ligne chacune, avec le **même** `<n>` ; symptôme de V6 : aucune de ces lignes au titre | | | |
| COMMUN-23.2 | SET1 | SET1-V1 (V2, V7, V8), SET1-V1b (W1, W9) | **Nouvelle partie** ou Continuer ; en partie, **Échap**, puis **Settings** (première ouverture) ; parcourir **Video**, **Misc** et **Keyboard** | Onglets **tout de suite**, sans liste longue ni superposition, sans attente de 30 s ; **Video** et **Misc** complets (comme .1) ; **Keyboard** s'affiche (la page des touches est présente) | `onglets poses sur MainMenu_C_<n> (partie)` : 1 ligne ; les trois lignes Couleur, Video, Modules avec le même `<n>` ; écart entre `onglets poses` et ces trois lignes ≤ environ 0,5 s (W7) ; motif `already has a parent` : 0 | | | |
| COMMUN-23.3 | SET1 | SET1-V1 (V3, V9, V10), SET1-V1b (W2, W5, W6, W8) | Fermer les réglages (Back), les **rouvrir**, recommencer **2 ou 3 fois** en partie (chaque ouverture crée une instance neuve) ; à chaque fois regarder Video, Misc, Keyboard ; sur **une** ouverture, ouvrir les réglages, **Back**, rouvrir sans quitter l'écran de pause | Onglets **tout de suite** à chaque ouverture, sans liste longue ni superposition ; Video et Misc complets ; curseurs et afficheurs de valeur Video et couleur à leur valeur en cours (pas la valeur par défaut) ; un curseur déplacé met à jour **son** afficheur ; cases ×2 et style sombre sur la nouvelle instance | à chaque nouvelle ouverture : `onglets retires de <ancienne>` puis `onglets poses sur <nouvelle> (partie)`, `<n>` **nouveau** à chaque fois, repris par les trois lignes Couleur, Video, Modules ; une seule ligne par famille et par instance ; réouverture sur la même instance : **aucune** nouvelle ligne de ces familles | | | |
| COMMUN-23.4 | SET1 | SET1-V1 (V4, V5), SET1-V1b (W4) | Depuis la partie, **retourner au titre** ; sur le nouvel écran titre, cliquer **Settings** | Bouton Settings présent dès l'affichage du nouvel écran titre ; réglages ouverts avec les onglets **tout de suite** ; Video et Misc complets | `onglets poses sur MainMenu_C_<m> (ecran titre)` avec `<m>` **différent** de celui du premier titre (.1) ; étiquette `(ecran titre)` exacte (pas `(partie)`) ; trois lignes Couleur, Video, Modules avec `<m>` | | | |
| COMMUN-23.5 | SET1 | SET1-V1 (V1 à V3, persistance) ; réglage de caméra 1 à 7, défaut 3 (`SET1-PRE.md:91`) | En partie, ouvrir Settings, changer la **vitesse de caméra** (Camera Speed) à une valeur qui n'est pas la valeur d'origine (**noter l'ancienne et la nouvelle**) ; fermer les réglages, les **rouvrir** ; puis, si le temps le permet, retourner au titre et rouvrir Settings | La nouvelle valeur est **conservée** à la réouverture (même instance ou instance neuve) ; la caméra réagit à la nouvelle vitesse | sans objet : constat visuel (aucune ligne de journal propre à ce réglage dans les sources relues) ; en cas de doute, rapprocher des lignes `onglets poses` de la réouverture | | | |
| COMMUN-23.6 | FIX1 | FIX1-MZ2 (`FIX1-MZ2-IMPL.md` § 5 points 2 à 6) ; constat `FIX1-MES.md` | Lancer avec la ligne **`-LPPersonsLog=2`** (§ 2.1). **a)** Joueur **en talons** (`HeelHeight` > 0) : noter l'heure, **s'asseoir** sur un siège, rester 10 s, **se lever**, rester debout immobile 10 s, regarder les pieds. **b)** Même séance **sans talons** (tenue plate). **c)** Observer si un personnage non joueur à talons s'assoit et se lève (facultatif) | **a)** Après le lever, pieds **sur le sol** (pas enfoncés, pas suspendus) ; **b)** inchangé par rapport à avant : pieds au sol ; **c)** idem a) | **a)** `STATE PlayerCharacter … meshZ=` égal à −90 + 12 × HeelHeight (−80,4 pour 0,8 ; −85,2 pour 0,4) **avant et après** le lever ; **0** ligne `M-Z :` visant le joueur ; **b)** `meshZ=-90.0`, 0 ligne `M-Z :` ; si une ligne sort sans talons, elle porte `-> -90.0 (gabarit Person_C)` **sans** `(talons)` et `HeelHeight=0.000` ; **toute** ligne `M-Z :` : le `<avant>` est différent de `<cible>` (la ligne **ne sort plus** pour un personnage déjà à sa cible) ; aucune ligne avec `HeelHeight=?` ; `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 | | | |
| COMMUN-23.7 | FIX1 / KEY2 / STM1 | FIX1-F8a (`FIX1-F8a-IMPL.md` C1) ; non-régressions de COMMUN-21 (.12) et COMMUN-20 | **a)** En scène, **glisser** le couple à la souris (saisir, déplacer, relâcher), plusieurs fois. **b)** Ouvrir le menu **Clavier** et faire défiler : noter l'ordre des titres de section. **c)** Charger la carte de **Londres**, suivre la Tamise en vue de dessus | **a)** Le couple se déplace avec le curseur, se pose au relâchement, sans saut ni blocage (logique inchangée par construction) ; **b)** 9 sections dans cet ordre : Movement, Camera, Map & World, Couple (scene), Actions & Interaction, Menus, Time, Favorites, System ; aucune section « Other » ; **c)** plus aucune maison générique sur la Tamise, ponts et quais intacts | **a)** `Fatal\|Unhandled\|Critical error\|Assertion failed` : 0 ; **b)** sans objet : constat visuel (51 actions au départ : `Clavier : 51 actions et 17 axes relus`) ; **c)** `\[LPCity\] EAU CentralLondon : masque 59 centres` : au moins 1, `epargnees 0` sur la dernière ligne | | | |
Décompte : **7 cas** : SET1 5 (.1 à .5), M-Z 1 (.6, trois sous-parties a, b, c dont c facultative), non-régressions 1 (.7, trois sous-parties a, b, c).
Relevés communs au journal (hors cas) : `Fatal|Unhandled|Critical error|Assertion failed` = 0 ; `Accessed None` : aucun nouveau ; avertissements Slate (`already has a parent`, `ensure`) : 0 ; toute ligne `Reglages :` de la session recopiée au BILAN.
## 4. Cas témoins
| Cas | VAL statique (chemin) | Verdict statique |
|---|---|---|
| COMMUN-23.1 à .5 | `Docs\Migration\etat\REL\SET1\SET1-V1-IMPL.md` (§ 5, V1 à V10) et `SET1-V1b-IMPL.md` (§ 5, W1 à W9) | IMPL seulement : compilation à 0 erreur, **aucune VAL** de comportement, preuve « à rejouer sur un build Development » ; V1 à V10 et W1 à W9 **reportés**, aucun essai en jeu |
| COMMUN-23.6 | `Docs\Migration\etat\REL\FIX1\FIX1-MZ2-IMPL.md` (§ 5, points 2 à 6) et `FIX1-MES.md` | IMPL seulement : comportement **calculé** sur les journaux de COM22, jamais observé |
| COMMUN-23.7 a | `Docs\Migration\etat\REL\FIX1\FIX1-F8a-IMPL.md` (C1) | build seule : 0 avertissement, 0 erreur ; aucune exécution du glissé |
| COMMUN-23.7 b, c | `COMMUN-21-TESTS.md` (.12 et .13) et son BILAN | à relever dans le BILAN de COMMUN-21 |
Aucune VAL de comportement n'existe pour les cas .1 à .6 : aucun verdict statique ne vaut pour un cas de jeu.
PubCheck : à lancer par l'auteur après écriture (`pwsh -NoProfile -File Tools/PubCheck.ps1 -Fichiers Docs/Migration/etat/BOSS/COMMUN-23-TESTS.md -Depot "D:/Game/LifePlay-master 5.8"`, stdin sur `/dev/null`) ; résultat cité au compte rendu.
Tours : 5 / 40
## Fichiers à commiter
- `Docs/Migration/etat/BOSS/COMMUN-23-TESTS.md` (A).