Return all pooled objects to pool on player death
This commit is contained in:
parent
d49010ff68
commit
56d4c5f5b4
@ -70,6 +70,19 @@ void AObjectPoolManager::ReturnObject(AActor* Object)
|
||||
}
|
||||
}
|
||||
|
||||
void AObjectPoolManager::ReturnAllObjects()
|
||||
{
|
||||
int ObjectPoolSize = ObjectPool.Num();
|
||||
|
||||
for (int i = 0; i < ObjectPoolSize; i++)
|
||||
{
|
||||
if (!ObjectPool[i]->IsHidden())
|
||||
{
|
||||
ReturnObject(ObjectPool[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object)
|
||||
{
|
||||
Object->SetActorHiddenInGame(!bEnabled);
|
||||
|
@ -22,6 +22,8 @@ public:
|
||||
|
||||
void ReturnObject(AActor* Object);
|
||||
|
||||
void ReturnAllObjects();
|
||||
|
||||
protected:
|
||||
// Called when the game starts or when spawned
|
||||
virtual void BeginPlay() override;
|
||||
|
@ -159,6 +159,21 @@ void AVampireGameMode::AddRandomEnemyTypeToPool()
|
||||
void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo)
|
||||
{
|
||||
GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate);
|
||||
|
||||
if (EnemyObjectPoolManager)
|
||||
{
|
||||
EnemyObjectPoolManager->ReturnAllObjects();
|
||||
}
|
||||
|
||||
if (ProjectileObjectPoolManager)
|
||||
{
|
||||
ProjectileObjectPoolManager->ReturnAllObjects();
|
||||
}
|
||||
|
||||
if (PickupObjectPoolManager)
|
||||
{
|
||||
PickupObjectPoolManager->ReturnAllObjects();
|
||||
}
|
||||
}
|
||||
|
||||
void AVampireGameMode::EndGame()
|
||||
|
Loading…
x
Reference in New Issue
Block a user