L4-CX-B02 : essai 1 rejete et annule, commandlet LPFixEditableTextBoxFont corrigee
La relecture du diff a montre que CharGen::Make_64 perdait sa police sans rebranchement (coupure de la broche Font du Break avant le releve des Make). Widgets restaures par Tools\Restore.ps1 (MD5 d'origine retrouves). Commandlet : les broches Font ne sont coupees qu'apres le releve complet. Preuves de l'essai archivees dans etat/L4-CX-B02_essai1_rejete/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
20f35ac440
commit
150d8892b2
5 changed files with 44 additions and 8 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -138,3 +138,29 @@ Tag d'entrée `L4-CX-B01-avant`. Sauvegarde : `D:\Game\LifePlay_Backup_5.5\L4-CX
|
|||
| ID | Date | Lot | Fichiers | Raison | Avant → après | Retour arrière |
|
||||
|---|---|---|---|---|---|---|
|
||||
| CHG-018 | 2026-09-29 | L4-CX-B01 | `Content/BPs/GI.uasset` | réimport de CX-B01 (`LPFixAssetRegistryPins`) | MD5 `F4550DA5…` (UE4) → `0AA14EDB…` (UE5, réenregistré par la commandlet) | `Tools\Restore.ps1 -Lot L4-CX-B01` ou `git checkout L4-CX-B01-avant -- Content/BPs/GI.uasset` |
|
||||
|
||||
### Sous-lot L4-CX-B02 — `EditableTextBoxStyle` (ERR-021) : essai 1 **rejeté**
|
||||
|
||||
Tag d'entrée `L4-CX-B02-avant`. Sauvegarde : `D:\Game\LifePlay_Backup_5.5\L4-CX-B02\`.
|
||||
Preuves : `Docs/Migration/etat/L4-CX-B02_essai1_rejete/`.
|
||||
|
||||
| Étape | Résultat |
|
||||
|---|---|
|
||||
| Simulation | 6 nœuds sur 6 attendus |
|
||||
| Application | « 6 traités, 0 liaison non gérée, 0 échec » |
|
||||
| Compilation | 0 erreur (6 avant), 98 avertissements, 0 broche orpheline |
|
||||
| **Relecture du diff** | ❌ `CharGen::Make_64` a perdu sa liaison `Font` **sans** recevoir la liaison `TextStyle` : sa police retombe sur la valeur par défaut (aucune police, couleur magenta). Défaut **silencieux** : compilation et rapport de la commandlet au vert |
|
||||
|
||||
Cause : `LPFixEditableTextBoxFont` coupait la broche `Font` de chaque nœud au fil du parcours. Dans
|
||||
`CharGen`, `Break_62` est parcouru avant `Make_64` : la coupure effaçait aussi la liaison vue depuis
|
||||
`Make_64`, qui n'était plus rebranché. Dépend de l'ordre des nœuds (sans effet dans `StatMenu`). La
|
||||
campagne du 2026-09-07 avait utilisé cette commandlet : le défaut y était très probablement présent.
|
||||
|
||||
| ID | Date | Lot | Fichiers | Raison | Retour arrière |
|
||||
|---|---|---|---|---|---|
|
||||
| CHG-019 | 2026-09-29 | L4-CX-B02 | `Content/UI/StatMenu.uasset`, `CharGen.uasset` | essai 1 appliqué puis **annulé** par `Tools\Restore.ps1 -Lot L4-CX-B02` (MD5 `34807BE0…`, `63CA2A78…` retrouvés) | sans objet |
|
||||
| CHG-020 | 2026-09-29 | L4-CX-B02 | `Source/LifePlayEditorTools/LPFixEditableTextBoxFontCommandlet.cpp` | les broches `Font` ne sont coupées qu'après le relevé complet de la topologie | `git revert` |
|
||||
| CHG-021 | 2026-09-29 | L4 | `Tools/ReimportCorrectif.ps1` (nouveau) | automatisation des étapes 1 à 6 du protocole | `git rm` |
|
||||
|
||||
Enseignement pour le protocole : l'étape 5 (relecture du diff nœud par nœud) est indispensable ; ni la
|
||||
compilation ni le rapport de la commandlet n'ont détecté ce défaut.
|
||||
|
|
|
|||
|
|
@ -29,3 +29,4 @@
|
|||
| ERR-017 | `LogStreaming Failed to read file` (icônes moteur VisionOS, Interchange, Slate) | PIE 09-28 | 37 | cosmétique | — | accepté |
|
||||
| ERR-018 | Assets StreetMap fortement réduits (`CentralLondon` 202 → 13,6 Mo, `00BathCC`) | comparaison des tailles | 4 fichiers | à qualifier | L4 | ouvert |
|
||||
| ERR-019 | Plantages du resave de masse : `BulkData IsUnlocked`, `Array.h:783` (`fnt_new100/111`) | `Saved/Crashes` 09-07 | 2 | à surveiller | L4 | ouvert |
|
||||
| ERR-025 | `LPFixEditableTextBoxFont` : un `Make EditableTextBoxStyle` peut perdre sa police sans rebranchement selon l'ordre de parcours (`CharGen::Make_64`) | relecture du diff L4-CX-B02 | 1 nœud | haute (silencieuse) | L4-CX-B02 | corrigé dans la commandlet (CHG-020) ; présent probablement dans le contenu du 2026-09-07 |
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ int32 ULPFixEditableTextBoxFontCommandlet::Main(const FString& Params)
|
|||
struct FPendingLink { UK2Node_BreakStruct* Break; UK2Node_MakeStruct* Make; };
|
||||
TArray<FPendingLink> PendingLinks;
|
||||
TArray<UEdGraphNode*> NodesToReconstruct;
|
||||
TArray<UEdGraphPin*> FontPinsToClear;
|
||||
|
||||
for (UEdGraph* Graph : Graphs)
|
||||
{
|
||||
|
|
@ -168,14 +169,11 @@ int32 ULPFixEditableTextBoxFontCommandlet::Main(const FString& Params)
|
|||
}
|
||||
}
|
||||
|
||||
// ReconstructNode conserve une broche orpheline dans DEUX cas : si elle
|
||||
// porte des liaisons, et si elle porte une valeur differente du defaut.
|
||||
// C'est le garde-fou d'UE contre la perte de donnees. Il faut donc lever
|
||||
// les deux, APRES avoir releve la topologie et AVANT de reconstruire,
|
||||
// sans quoi la broche Font survit et l'erreur persiste.
|
||||
FontPin->BreakAllPinLinks();
|
||||
GetDefault<UEdGraphSchema_K2>()->ResetPinToAutogeneratedDefaultValue(FontPin, false);
|
||||
|
||||
// Les liaisons ne sont coupees qu'APRES le releve complet (voir plus bas) :
|
||||
// couper ici la broche Font d'un Break effacait aussi la liaison vue depuis
|
||||
// les Make non encore parcourus, qui perdaient alors leur police sans
|
||||
// rebranchement (CharGen, Make_64 - defaut releve le 2026-09-29, L4-CX-B02).
|
||||
FontPinsToClear.AddUnique(FontPin);
|
||||
NodesToReconstruct.AddUnique(GraphNode);
|
||||
|
||||
++NodesFixed;
|
||||
|
|
@ -183,6 +181,17 @@ int32 ULPFixEditableTextBoxFontCommandlet::Main(const FString& Params)
|
|||
}
|
||||
}
|
||||
|
||||
// ReconstructNode conserve une broche orpheline dans DEUX cas : si elle
|
||||
// porte des liaisons, et si elle porte une valeur differente du defaut.
|
||||
// C'est le garde-fou d'UE contre la perte de donnees. Il faut donc lever
|
||||
// les deux, APRES avoir releve toute la topologie et AVANT de reconstruire,
|
||||
// sans quoi la broche Font survit et l'erreur persiste.
|
||||
for (UEdGraphPin* FontPin : FontPinsToClear)
|
||||
{
|
||||
FontPin->BreakAllPinLinks();
|
||||
GetDefault<UEdGraphSchema_K2>()->ResetPinToAutogeneratedDefaultValue(FontPin, false);
|
||||
}
|
||||
|
||||
// La reconstruction invalide les broches : on la fait en bloc, puis on relie.
|
||||
for (UEdGraphNode* Node : NodesToReconstruct)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue