56 : m_currentStateId(0), m_nextStateId(-1), m_currentFrame(0), m_obj(obj) {
58 STATIC_ASSERT((std::is_base_of_v<ObjectBase, T>));
59 STATIC_ASSERT((std::is_same_v<
decltype(T::STATE_ENTRIES),
62 m_entryIds = std::span(
new u16[T::STATE_ENTRIES.size()], T::STATE_ENTRIES.size());
65 for (
auto &
id : m_entryIds) {
69 for (
size_t i = 0; i < m_entryIds.size(); ++i) {
70 m_entryIds[T::STATE_ENTRIES[i].id] = i;
73 m_entries = std::span<const StateManagerEntry<T>>(T::STATE_ENTRIES);