LifePlay-Revival/Source/LifePlay/LPMapMarkersGuardSubsystem.h
2026-10-08 01:40:48 +02:00

30 lines
976 B
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 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;
};