From 5398807e697532480f01e58617ca6a6d3dd6a720 Mon Sep 17 00:00:00 2001 From: puchik <48544263+puchik@users.noreply.github.com> Date: Sat, 4 Jan 2025 13:26:15 -0800 Subject: [PATCH] Fix 5.5 errors and warnings caused by GetSubsystemArray Replaced `GetSubsystemArray` access with `SubsystemCollection.ForEachSubsystem()` iteration in the BeginPlay and EndPlay triggers in ExtendableGameStateBase to address 5.5 depreciation warnings and errors. --- Source/Runtime/Private/ExtendableGameStateBase.cpp | 8 ++++---- Source/Runtime/Public/ExtendableGameStateBase.h | 11 ----------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/Source/Runtime/Private/ExtendableGameStateBase.cpp b/Source/Runtime/Private/ExtendableGameStateBase.cpp index 38457d2..5ae530f 100644 --- a/Source/Runtime/Private/ExtendableGameStateBase.cpp +++ b/Source/Runtime/Private/ExtendableGameStateBase.cpp @@ -28,19 +28,19 @@ void AExtendableGameStateBase::BeginPlay() { Super::BeginPlay(); - for(UGameStateSubsystem* Subsystem : GetSubsystemArray()) + SubsystemCollection.ForEachSubsystem([this](UGameStateSubsystem* Subsystem) { AddReplicatedSubObject(Subsystem); Subsystem->BeginPlay(); - } + }, UGameStateSubsystem::StaticClass()); } void AExtendableGameStateBase::EndPlay(const EEndPlayReason::Type EndPlayReason) { - for(UGameStateSubsystem* Subsystem : GetSubsystemArray()) + SubsystemCollection.ForEachSubsystem([this](UGameStateSubsystem* Subsystem) { RemoveReplicatedSubObject(Subsystem); - } + }, UGameStateSubsystem::StaticClass()); SubsystemCollection.Deinitialize(); diff --git a/Source/Runtime/Public/ExtendableGameStateBase.h b/Source/Runtime/Public/ExtendableGameStateBase.h index 4ea03b2..e783af0 100644 --- a/Source/Runtime/Public/ExtendableGameStateBase.h +++ b/Source/Runtime/Public/ExtendableGameStateBase.h @@ -57,17 +57,6 @@ class GAMESTATESUBSYSTEM_API AExtendableGameStateBase : public AGameStateBase return nullptr; } - /** - * Get all Subsystem of specified type, this is only necessary for interfaces that can have multiple implementations instanced at a time. - * - * Do not hold onto this Array reference unless you are sure the lifetime is less than that of AExtendableGameStateBase - */ - template - const TArray& GetSubsystemArray() const - { - return SubsystemCollection.GetSubsystemArray(TSubsystemClass::StaticClass()); - } - private: FObjectSubsystemCollection SubsystemCollection;