diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp index 8978f40d..94a5dad4 100644 --- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp @@ -39,8 +39,16 @@ void AGadgetManager::SpawnGadget(TSubclassOf GadgetClass, USceneCom AActor* SpawnedActor = GetWorld()->SpawnActor(GadgetClass, GetActorLocation(), GetActorRotation(), SpawnParams); - if (SpawnedActor->IsA(AReconGadget::StaticClass())) ReconGadget = Cast(SpawnedActor); - else if (SpawnedActor->IsA(ACombatGadget::StaticClass())) CombatGadget = Cast(SpawnedActor); + if (SpawnedActor->IsA(AReconGadget::StaticClass())) + { + if (IsValid(ReconGadget)) ReconGadget->Destroy(); + ReconGadget = Cast(SpawnedActor); + } + else if (SpawnedActor->IsA(ACombatGadget::StaticClass())) + { + if (IsValid(CombatGadget)) CombatGadget->Destroy(); + CombatGadget = Cast(SpawnedActor); + } else UE_LOG(LogTemp, Fatal, TEXT("Passed sub class of gadget base is neither a combat or recon gadget, check the gadget class you're passing through or contact Rafal")); AGadgetBase* BaseGadget = Cast(SpawnedActor);