3#include <AiPlugin/AiPluginDLL.h>
4#include <Foundation/Strings/HashedString.h>
5#include <GameEngine/GameEngineDLL.h>
10enum class [[nodiscard]] plAiActionResult
17template <
typename TYPE>
25 TYPE* pType =
nullptr;
41 void Release(TYPE* pType)
44 PL_ASSERT_DEBUG(!m_FreeList.
Contains(pType),
"");
54#define PL_DECLARE_AICMD(OwnType) \
56 static OwnType* Create() \
58 OwnType* pType = s_Allocator.Acquire(); \
59 pType->m_bFromAllocator = true; \
64 virtual void Destroy() override \
67 if (m_bFromAllocator) \
68 s_Allocator.Release(this); \
70 bool m_bFromAllocator = false; \
71 static plAiActionAlloc<OwnType> s_Allocator;
73#define PL_IMPLEMENT_AICMD(OwnType) \
74 plAiActionAlloc<OwnType> OwnType::s_Allocator;
86 virtual void Reset() = 0;
93 virtual void Destroy() = 0;
Definition AiActions.h:20
Definition AiActionQueue.h:9
bool Contains(const T &value) const
Checks whether the given value can be found in the array. O(n) complexity.
Definition ArrayBase_inl.h:191
void PushBack(const T &value)
Pushes value at the end of the array.
Definition ArrayBase_inl.h:333
void PopBack(plUInt32 uiCountToRemove=1)
Removes count elements from the end of the array.
Definition ArrayBase_inl.h:379
T & PeekBack()
Returns the last element of the array.
Definition ArrayBase_inl.h:388
bool IsEmpty() const
Returns true, if the array does not contain any elements.
Definition ArrayBase_inl.h:178
T & ExpandAndGetRef()
Grows the deque by one element and returns a reference to the newly created element.
Definition Deque_inl.h:473
This class represents an object inside the world.
Definition GameObject.h:32
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Base class for all logging classes.
Definition Log.h:77
Provides a simple mechanism for mutual exclusion to prevent multiple threads from accessing a shared ...
Definition Mutex.h:13
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12