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) | void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object) | ||||||
| { | { | ||||||
| 	Object->SetActorHiddenInGame(!bEnabled); | 	Object->SetActorHiddenInGame(!bEnabled); | ||||||
|  | |||||||
| @ -22,6 +22,8 @@ public: | |||||||
| 
 | 
 | ||||||
| 	void ReturnObject(AActor* Object); | 	void ReturnObject(AActor* Object); | ||||||
| 
 | 
 | ||||||
|  | 	void ReturnAllObjects(); | ||||||
|  | 
 | ||||||
| protected: | protected: | ||||||
| 	// Called when the game starts or when spawned
 | 	// Called when the game starts or when spawned
 | ||||||
| 	virtual void BeginPlay() override; | 	virtual void BeginPlay() override; | ||||||
|  | |||||||
| @ -159,6 +159,21 @@ void AVampireGameMode::AddRandomEnemyTypeToPool() | |||||||
| void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo) | void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo) | ||||||
| { | { | ||||||
| 	GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate); | 	GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate); | ||||||
|  | 
 | ||||||
|  | 	if (EnemyObjectPoolManager) | ||||||
|  | 	{ | ||||||
|  | 		EnemyObjectPoolManager->ReturnAllObjects(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (ProjectileObjectPoolManager) | ||||||
|  | 	{ | ||||||
|  | 		ProjectileObjectPoolManager->ReturnAllObjects(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (PickupObjectPoolManager) | ||||||
|  | 	{ | ||||||
|  | 		PickupObjectPoolManager->ReturnAllObjects(); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void AVampireGameMode::EndGame() | void AVampireGameMode::EndGame() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user