3.7 KiB
CAM-B2r-IMPL (2026-10-14, session CAM, GO Big Boss : écriture sans UE ni compilation ; compilation en COMMUN-7)
Fiche : CAM-B2r-FICHE.md. Instantané : D:\Game\LifePlay_Backup_5.5\CAM-B2r\ (manifest : .cpp
FE9236BD138A46BBC2B63027977B3CD9, .h 7DA111CB65B267A9E2F7482CBA368BE9).
| Fichier | Avant | Après |
|---|---|---|
Source/LifePlay/LPCameraModeSubsystem.cpp |
FE9236BD…, 503 lignes |
124336D3293EF06BEFCF076D10956234 |
Source/LifePlay/LPCameraModeSubsystem.h |
7DA111CB…, 66 lignes |
61A3E06280BF7226ADB52ECFDD9173DE |
Fins de ligne : LF avant et après (0 CR).
Écritures
LPCameraModeLocal:- nouveaux noms
GICharGenOn,GIMainMenuOn,GIJournalOn,GIContactsOn,PCMoveCamera,MainMenuClass,RoomCameraLabels,LabelC1,PlayerFirstPersonSM,PlayerOccupyingFnt,RoomCamTimer,LeftEyeSocket,RightEyeSocket; - nouvelles constantes
CharGenRepairDelay(10 s),C1Interval(0,5 s),C1LogInterval(1 s),C1MaxEyeDistance(8 cm),C1MaxPitch(25°),C1MaxYawGap(30°) ; - nouvelles fonctions
WriteBool,TimerActive(FTimerHandlepar réflexion,IsTimerActive) etWidgetOnScreen(une classe de widget précise).
- nouveaux noms
#include "TimerManager.h".Tick: appel deRepairAfterCharGen(Label, bMenu, DeltaTime)avant toute sortie ;WitnessC1quand le libellé est C1.- R1
RepairAfterCharGen:- si
CharGenOnest vrai, on arme ; - après CharGen, si le libellé est une caméra de pièce (C1, C2, C3 plafond, C3 ancienne) et qu'aucun menu n'est à
l'écran :
SpaceOnest remis à vrai s'il était faux, etMainMenuOnà faux s'il était vrai sans widgetMainMenu_Cà l'écran ; - une ligne au journal à chaque remise ; une seule réparation ;
- au bout de 10 s sans caméra de pièce : abandon, avec une ligne au journal.
- si
- R2
LogSwitchKey: fin de ligne; MainMenuOn=%d JournalOn=%d ContactsOn=%d CharGenOn=%d MoveCamera=%d. - R3
WitnessC1: toutes les 0,5 s ; une ligne (au plus une par seconde) si la caméra est à plus de 8 cm des yeux, si son tangage dépasse ±25°, ou si son lacet s'écarte de plus de 30° du contrôle. La ligne donne aussi « assis » et l'état de la minuterieRoomCamTimer. .h:RepairAfterCharGen,bCharGenSeen,CharGenRepairTimeout,WitnessC1,C1Cooldown.
Écart à la fiche
-
Le critère « vue = caméra de pièce » utilise le libellé déjà calculé par
ComputeLabel. Il recouvre exactement les quatre cas de la fiche et exclutBirdview(« Camera: Overview »). On n'attend pas non plus la fermeture des menus, pour ne pas écrire pendant un menu. -
R3 : si l'axe de visée de
FirstPerson_Cn'est pas son X local, le témoin écrira une ligne par seconde en C1 (bruit, sans effet sur le jeu). À voir à l'essai ; le seuil se règle dans les constantes. -
Écarts relevés par la VAL (
CAM-B2r-VAL.md, C-1 et C-2), acceptés par l'orchestrateur :- C-1 : les lignes « CharGen : … » donnent aussi l'indicateur (
indicateur '%s'), en plus de la vue ; - C-2 : l'état de la minuterie est lu par
FTimerManager::IsTimerActive(C++), et non parK2_IsTimerActiveHandle(sa version Blueprint). Même résultat, sans passer par Kismet.
- C-1 : les lignes « CharGen : … » donnent aussi l'indicateur (
-
Réserves non bloquantes laissées en l'état (VAL C-3 à C-6) :
- le délai de 10 s s'écoule aussi pendant un menu ;
- le témoin C1 devient bruyant si les douilles des yeux manquent ;
- le test du widget
MainMenu_Cest redondant ; - l'en-tête du fichier porte encore « CAM-B2c ».
On les reprendra si l'essai le demande : modifier le code maintenant changerait les MD5 validés.
Non fait (hors GO)
Compilation (COMMUN-7, sous jeton UE). Aucune autre écriture.