Cannot declare a TArray of type AIEnemy in AIHordeContainer. Not sure what I need to do.
First…the class.
#pragma once
#include "GameFramework/Character.h"
#include "AIHordeHandler.h"
#include "AIHordeContainer.h"
#include "AIEnemy.generated.h"
/**
*
*/
UCLASS(abstract)
class AAIEnemy : public ACharacter
{
GENERATED_UCLASS_BODY()
AAIHordeHandler * HordeHandler;
AAIHordeContainer * HordeContainer;
enum AIBehavior {WANDER};
enum AIState {NORMAL};
enum AIPersona {LONER, HORDE};
AIBehavior behavior;
AIState state;
AIPersona persona;
AActor * DetectedTarget;
virtual void OnConstruction(const FTransform& Transform) OVERRIDE;
bool GetInHorde();
bool GetIsHorde();
};
Creates a Container to hold members of horde when Horde type Enemies interact.
void AAIHordeHandler::Tick(float DeltaSeconds)
{
Super::Tick(DeltaSeconds);
//GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Red, TEXT("WORKING"));
UWorld* const World = GetWorld();
for (TObjectIterator<AAIEnemy> Itr; Itr; ++Itr)
{
for (TObjectIterator<AAIEnemy> ItrOther; ItrOther; ++ItrOther)
{
float itrDist = Itr->GetDistanceTo(*ItrOther);
if (Itr->GetName() != ItrOther->GetName() && itrDist <= 750) {
if (Itr->GetIsHorde() && ItrOther->GetIsHorde())
{
if (!Itr->GetInHorde() && !ItrOther->GetInHorde()){
Itr->HordeContainer = World->SpawnActor<AAIHordeContainer>();
ItrOther->HordeContainer = Itr->HordeContainer;
//Itr->HordeContainer->AddMember(*ItrOther);
//Itr->HordeContainer->AddMember(*Itr);
//GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Red, Itr->GetName());
//GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Red, ItrOther->GetName());
}
else if (!Itr->GetInHorde() && ItrOther->GetInHorde()){
}
else if (Itr->GetInHorde() && !ItrOther->GetInHorde()){
}
else if (Itr->GetInHorde() && ItrOther->GetInHorde()){
//Check if in same Horde
//Merge Hordes or steal members
}
}
}
}
}
}
AIHordeContainer.h…cannot #include “AIEnemy.h”…results in an error. Cannot declare a TArray of type AIEnemy.
#pragma once
#include "GameFramework/Actor.h"
#include "Array.h"
#include "AIHordeContainer.generated.h"
/**
*
*/
UCLASS()
class AAIHordeContainer : public AActor
{
GENERATED_UCLASS_BODY()
TArray<AAIEnemy> HordeMembers;
uint8 HordeSize;
};