LifePlay-Revival/Source/LifePlay/LPCityTraceSubsystem.h
edujiro5972 56dfcfc3d2 LifePlay UE 5.8 : état de développement au 2026-10-20
Tickets : PUB-20261020-T1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 17:35:10 +02:00

47 lines
1.6 KiB
C++

// Lot STM1 (STM1-SPEC-01, T2) : trace du choix de la ville (F3, carte "quelconque" = ville factice 000Dummy).
//
// Lecture seule du GameInstance Blueprint par reflexion, toutes les 0,25 s ; une ligne [LPCity] (categorie LogLPCity)
// seulement quand une valeur change : liste des villes (CITIES), ville sauvegardee et sa correspondance (SAUVEGARDE,
// meme comparaison que GI.GetCityByName), ville demandee (DEMANDE, GI.CityToMoveTo), donnees StreetMap posees
// (STREETMAP) et maillage affiche (POSE). Rien a l'ecran, rien ecrit dans le GI, aucun appel de fonction Blueprint.
// Propriete introuvable : une ligne PROPRIETE ABSENTE, une seule fois. Commande console (non-Shipping) : LP.CityTrace.
// Absent du Shipping : corps sous #if !UE_BUILD_SHIPPING (LPCityTraceSubsystem.cpp).
#pragma once
#include "CoreMinimal.h"
#include "Containers/Ticker.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "LPCityTraceSubsystem.generated.h"
class IConsoleObject;
UCLASS()
class LIFEPLAY_API ULPCityTraceSubsystem : public UGameInstanceSubsystem
{
GENERATED_BODY()
public:
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
virtual void Deinitialize() override;
private:
bool Tick(float DeltaTime);
/** Releve des cinq points de mesure. bForce : ecrit tout, meme sans changement (commande console). */
void Sample(bool bForce);
/** Commande console LP.CityTrace. */
void DumpNow();
FTSTicker::FDelegateHandle TickHandle;
IConsoleObject* ConsoleCommand = nullptr;
double StartSeconds = 0.0;
int32 LastCityCount = -1;
FString LastSave;
FString LastRequest;
FString LastStreetMap;
FString LastPose;
TSet<FString> ReportedMissing;
};