Hi guys,
getting an error in my code, and honestly not sure whats going on.
I have attached an image of the error, and if anything is needed, please do help. I can also provide a github link to the project.
The error seems to be somewhere in FSM_State_Idle and FSM_State_GoTo, not being happy to inherit from FSM_State Base. In order the code blurbs are, FSM_State_Base.h
FSM_State_Idle.h, FSM_State_Idle.cpp. I havent included the GoTo, as that should have the same issue, as currently idle and goto have the same functions.
#include "Spy.h"
#include "GOAP/FiniteStateMachine/Finite_State_Machine.h"
class FSM_State_Base
{
public:
FSM_State_Base(AFinite_State_Machine* TheSpy) { Spy = TheSpy; }
virtual ~FSM_State_Base();
virtual void Update() = 0;
virtual FSM_State_Base* ConditionCheck() = 0;
AFinite_State_Machine* SpyOwner() { return Spy; }
AFinite_State_Machine* Spy;
};
#include "GOAP/FiniteStateMachine/FSM_State_Base.h"
class AFiniteStateMachine;
class Planner;
class FSM_State_Idle : public FSM_State_Base
{
public:
FSM_State_Idle(AFinite_State_Machine* TheSpy );
~FSM_State_Idle();
AActor* vTheTarget;
TQueue<GOAP_Action_Base*> vThePLan;
Planner* vThePLanner;
void Update();
FSM_State_Base* ConditionCheck();
};
#include "FSM_State_Idle.h"
#include "GOAP/FiniteStateMachine/FMS_State_GoTo.h"
#include "Spy.h"
#include "GOAP/Planner/Planner.h"
#include "GOAP/FiniteStateMachine/Finite_State_Machine.h"
#include "AIController.h"
#include "Materials/MaterialInstanceDynamic.h"
#include "Engine/Classes/Components/SkeletalMeshComponent.h"
#include "Classes/Blueprint/AIBlueprintHelperLibrary.h"
#include "Engine/Classes/Kismet/GameplayStatics.h"
FSM_State_Idle::FSM_State_Idle(AFinite_State_Machine* TheSpy) : FSM_State_Base (TheSpy)
{
vThePLanner = new Planner();
TSet<TPair<FString, bool>> CurrentState = Cast<ASpy>(TheSpy)->GetPlayersCurrentState();
TSet<TPair<FString, bool>> GoalState = Cast<ASpy>(TheSpy)->GoalState();
//TSet<GOAP_Action_Base*> ActionList = Cast<ASpy>(TheSpy)->GetActionList();
}
FSM_State_Idle::~FSM_State_Idle()
{
if (vThePLanner)
{
delete vThePLanner;
}
}
void FSM_State_Idle::Update()
{
}
FSM_State_Base* FSM_State_Idle::ConditionCheck()
{
return nullptr;
}