4.6 KiB
CAM-B2p-E-IMPL : borne dure du couple pendant le sexe (C++, 2026-10-14)
GO : Big Boss, 2026-10-14 (« GO pour B2p-E (E1 à E4) », plafond borné si c'est facile). DIAG :
CAM-COMMUN9-DIAG.md § 4. Écriture sans UE ni compilation ; le lot entre dans COMMUN-10.
Instantané : D:\Game\LifePlay_Backup_5.5\CAM-B2p-E\ (.cpp D6063264…, .h 6585D7F6…, état B2r + B2p-C + B2p-D).
| Fichier | Avant | Après |
|---|---|---|
Source/LifePlay/LPCameraModeSubsystem.cpp |
D60632646BF1CF7D200E3BEA833D8D72, 1044 lignes |
FFF0FBB45D493B931B08780BF09547C8, 1163 lignes (après la reprise B1 ; première version 6192495E…) |
Source/LifePlay/LPCameraModeSubsystem.h |
6585D7F67A7BE3AEA377B8E93CFA14D8, 112 lignes |
0EDC1F76B7EEC0D135EA046DA2269BE0, 121 lignes |
Fins de ligne : LF (0 CR).
1. Écritures
- Constantes :
- tolérance sous le sol : 5 cm (
CoupleFloorTolerance) ; - plafond estimé à 350 cm au-dessus du sol (
CoupleCeilingHeight) ; - seuil du témoin : 5 cm par image (
CoupleMoveWitness) ; - au plus une ligne par seconde (
CoupleBoundsLogInterval).
- tolérance sous le sol : 5 cm (
TickSwitchKey(à chaque image) appelleTickCoupleBoundsaprèsTickSexCamera.TickCoupleBounds(nouveau, E1 et E4) : tant queSexOnest vrai, menus compris.- Pivot = moyenne des
SexPersonsvalides. - E4 : si le pivot a bougé de plus de 5 cm depuis l'image précédente sans prise B2p-D, une ligne
Sexe : couple deplace hors prise de (dx, dy, dz) ; fleches=… Maj=… molette=… ; Room cachee=…. - Si Room est cachée (
IsHidden, scène d'extérieur) ou n'a pas deBox: aucune borne, une ligne par scèneSexe : pas de borne du couple (Room cachee=…, sol …). - E1 :
- pivot XY borné aux limites de
Room.Boxmoins 30 cm (la même marge que B2p-D) ; - Z : la racine du maillage (Z du composant
Mesh) la plus basse du couple ne descend pas sous le dessus deBox− 5 cm. Sinon, le couple est remonté jusqu'au dessus du sol ; - la racine la plus haute ne dépasse pas le dessus de
Box+ 350 cm (plafond estimé). Sinon, le couple est redescendu ; - un seul vecteur de correction pour toutes les
SexPersons; ligneSexe : couple ramene dans la piece de (dx, dy, dz) ; sol …, plafond estime … ; prise=…, au plus une par seconde.
- pivot XY borné aux limites de
- Hors sexe : état oublié, aucune action.
- Pivot = moyenne des
- E2 (dans
TickCoupleMouse, tracé vertical de B2p-D) : au-dessus du sol deRoom.Box(Room non cachée), la surface retenue n'est jamais plus basse que le dessus du sol. Sans impact au-dessus du sol, la surface est le dessus du sol. - E3 (flèches) : aucun changement de Room ; E1 retient le couple au bord.
.h:TickCoupleBounds,LastCouplePivot,bHasLastPivot,bHiddenRoomWarned,CoupleBoundsCooldown,CoupleMoveCooldown.
2. Écarts au DIAG
-
E4 :
Room.bHidden, la molette et Maj sont écrits sur la ligne « couple deplace hors prise », et non sur la ligne « Sexe : touches ». C'est la ligne qui sert à désigner la source ; la ligne des touches reste inchangée. -
Plafond : Room n'expose pas de plafond. On prend une hauteur estimée de 350 cm au-dessus du sol (Maj + molette avait monté le couple à environ 154 cm au-dessus du sol en COMMUN-7). À régler si une pièce est plus haute.
-
La borne s'applique aussi pendant une prise B2p-D, avec la même marge XY : aucun conflit, le glisser est déjà borné.
-
Reprise après la VAL (B1, bloquant) : dans
TickCoupleBounds, le localRootmasquait le membreTSharedPtr<SWidget> Root(C4458, mis en erreur par/we4458enBuildSettingsVersionV7). Il est renomméRootZ, sur 3 lignes. Diff et recherche des autres masquages revus par le même validateur. -
Non déclarés dans la première version, relevés par la VAL :
- l'appel est placé dans
TickSwitchKey, et non à la fin deTickSexCamera. C'est nécessaire, parce queTickSexCameras'arrête pendant les menus ; - la ligne E1 écrit
prise=au lieu d'une « source probable ». La source se lit sur la ligne E4.
- l'appel est placé dans
3. Points à confirmer en VAL et en V7
- Compilation (COMMUN-10) :
AActor::IsHidden,TNumericLimits<double>,FBox(ForceInit). - En jeu :
Box.Bounds.Max.Zest bien le dessus du sol (LPDebug : −102,2) ;- les limites XY de
Boxcouvrent tout le sol de la pièce ; - aucune pose légitime n'est remontée à tort.
- Essais CAM-64 à CAM-68 (
CAM-COMMUN9-DIAG.md§ 5).
4. Fichiers à commiter
A Source/LifePlay/LPCameraModeSubsystem.cpp et .h ; A CAM-COMMUN9-DIAG.md, CAM-B2p-E-IMPL.md,
CAM-B2p-E-VAL.md.