// 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 maintient une entree valide (composant de focus invisible) et vide Vector2Ds // quand le tableau est vide, pour eviter le desync AddMarker. Aucun Blueprint n'est modifie. #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; };