Summary
Corrige le bug R4GEBetterBuilder où les compositions construites réapparaissent en double état (mesh construit + piques de construction à 0%) après reload de la save Campaign.
Description
=== ATM_R4GEBetterBuilder_Fix ===
Mod correctif pour résoudre un bug de persistance introduit par R4GEBetterBuilder sur les scénarios Conflict / Campaign avec sauvegarde activée.
▬▬▬ LE PROBLÈME ▬▬▬
Sur les serveurs Conflict persistants utilisant R4GEBetterBuilder, les compositions construites par les joueurs (sacs de sable, tentes de commandement, postes mortier, antennes, hôpitaux de campagne, etc.) réapparaissent dans un état incohérent après un redémarrage du serveur ou un reload de la sauvegarde :
• Le mesh visuel est en version CONSTRUITE (la composition finale)
• MAIS le wrapper de construction (piques, barre de progression, marteau) réapparaît également à 0%
• Les joueurs voient deux entités superposées : la composition fonctionnelle ET les piques de construction
• Tenter de reconstruire dessus peut empirer le problème en empilant des doublons
Ce bug touche TOUTES les compositions construites, pas uniquement les bases ou tentes de commandement. Il est spécifique aux serveurs qui combinent R4GEBetterBuilder + persistance Campaign vanilla (SCR_MissionHeaderCampaign avec save activée).
▬▬▬ LA CAUSE ▬▬▬
R4GEBetterBuilder modifie la méthode SpawnCompositionLayout de SCR_CampaignBuildingCompositionComponent en spawnant le wrapper de construction comme ENFANT direct de la composition (via spawnParams.Parent). Le moteur Reforger persiste les hiérarchies parent-enfant lors des sauvegardes Campaign, donc le wrapper est sauvé en cascade avec la composition même après que la construction soit terminée. Au reload, le wrapper réapparaît systématiquement à côté du mesh construit.
▬▬▬ LE FIX ▬▬▬
Ce mod re-override SpawnCompositionLayout dans la chaîne de modding (vanilla → R4GE → ATM_R4GE_Fix) pour :
• Supprimer l'assignation parent fautive
• Restaurer le transform explicite (comportement vanilla d'origine)
• Empêcher la persistance en cascade du wrapper
Le wrapper redevient une entité indépendante, gérée par son propre lifecycle. Quand la construction atteint 100%, il se despawn proprement et n'est plus repersisté. Au reload, seule la composition construite réapparaît, comme attendu.
▬▬▬ COMPATIBILITÉ ▬▬▬
✅ Compatible avec R4GEBetterBuilder (dépendance obligatoire — ce mod ne fait rien sans lui)
✅ Compatible avec tous les s
License
Arma Public License (APL)