56 void calc()
override {
57 ObjectPoihanaBase::calc();
61 void enterStateStub() {}
65 m_walkState = WalkState::NeedTarget;
68 void calcStateStub() {}
71 void calcState0And1() {
73 calcPosAndCollision();
74 calcOrthonormalBasis();
75 calcPosAndTransform();
80 return m_workMat.
base(3);
83 void calcCurRot(f32 t);
84 void calcOrthonormalBasis();
96 void calcPosAndTransform() {
97 m_flags.
setBit(eFlags::Matrix);
98 m_transform = m_workMat;
99 m_pos = m_workMat.
base(3);
103 void calcPosAndCollision() {
105 m_workMat.
setBase(3, m_workMat.
base(3) + (m_extVel + m_vel));
111 f32 scale = (v0.z * v1.z + (v0.x * v1.x + v0.y * v1.y)) /
117 static constexpr std::array<StateManagerEntry, 8> STATE_ENTRIES = {{
118 {StateEntry<ObjectPoihana, &ObjectPoihana::enterState0, &ObjectPoihana::calcState0And1>(
121 &ObjectPoihana::calcState0And1>(1)},
123 &ObjectPoihana::calcStateStub>(2)},
125 &ObjectPoihana::calcStateStub>(3)},
127 &ObjectPoihana::calcStateStub>(4)},
129 &ObjectPoihana::calcStateStub>(5)},
131 &ObjectPoihana::calcStateStub>(6)},
133 &ObjectPoihana::calcStateStub>(7)},