LifePlay-Revival/Source/LifePlay/LPMapMarkersGuardSubsystem.h
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

31 lines
1.1 KiB
C++

// Garde ERR-008 : GI.FocusOnMapMarkers lit MapMarkers.WidgetComponents[0] sans test de longueur.
// Apres HideAllMarkers (ou un spawn sans amenite), le tableau est vide → spam log + SetInputMode None.
// Ce sous-systeme retire les entrees detruites, reconstitue le tableau depuis les composants existants et
// vide Vector2Ds quand le tableau est vide, pour eviter le desync AddMarker. Depuis STB-MAP (decision C10,
// option B), il ne cree plus de composant de focus : FocusOnMapMarkers teste le tableau (CHG-282).
#pragma once
#include "CoreMinimal.h"
#include "Containers/Ticker.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "LPMapMarkersGuardSubsystem.generated.h"
class AActor;
UCLASS()
class LIFEPLAY_API ULPMapMarkersGuardSubsystem : public UGameInstanceSubsystem
{
GENERATED_BODY()
public:
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
virtual void Deinitialize() override;
private:
bool Tick(float DeltaTime);
void Guard(AActor* Markers);
FTSTicker::FDelegateHandle TickHandle;
bool bLoggedOnce = false;
};