25 [[nodiscard]] ObjectId id()
const override {
26 return ObjectId::Escalator;
30 [[nodiscard]]
u32 loadFlags()
const override {
42 [[nodiscard]]
bool checkSpherePartial(f32 radius,
const EGG::Vector3f &pos,
45 [[nodiscard]]
bool checkSpherePartialPush(f32 radius,
const EGG::Vector3f &pos,
48 [[nodiscard]]
bool checkSphereFull(f32 radius,
const EGG::Vector3f &pos,
51 [[nodiscard]]
bool checkSphereFullPush(f32 radius,
const EGG::Vector3f &pos,
55 u32 timeOffset)
override;
56 [[nodiscard]]
bool checkPointCachedPartial(
const EGG::Vector3f &pos,
59 [[nodiscard]]
bool checkPointCachedPartialPush(
const EGG::Vector3f &pos,
64 [[nodiscard]]
bool checkPointCachedFullPush(
const EGG::Vector3f &pos,
67 [[nodiscard]]
bool checkSphereCachedPartial(f32 radius,
const EGG::Vector3f &pos,
70 [[nodiscard]]
bool checkSphereCachedPartialPush(f32 radius,
const EGG::Vector3f &pos,
73 [[nodiscard]]
bool checkSphereCachedFull(f32 radius,
const EGG::Vector3f &pos,
76 [[nodiscard]]
bool checkSphereCachedFullPush(f32 radius,
const EGG::Vector3f &pos,
83 [[nodiscard]] f32 colRadiusAdditionalLength()
const override {
87 [[nodiscard]]
bool checkCollision(f32 radius,
const EGG::Vector3f &pos,
90 [[nodiscard]]
bool checkCollisionCached(f32 radius,
const EGG::Vector3f &pos,
98 requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
102 template <
typename T>
103 requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
107 template <
typename T>
108 requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
109 [[nodiscard]]
bool checkPointImpl(ShouldCheckFunc shouldCheckFunc, CheckPointFunc<T> checkFunc,
113 template <
typename T>
114 requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
115 [[nodiscard]]
bool checkSphereImpl(ShouldCheckFunc shouldCheckFunc,
116 CheckSphereFunc<T> checkFunc, f32 radius,
const EGG::Vector3f &pos,
120 [[nodiscard]] f32 calcStepFactor(
s32 t);
121 [[nodiscard]] f32 calcSpeed(
s32 t);
137 const f32 m_midDuration;
145 static constexpr f32 STANDSTILL_FRAMES = 50.0f;
148 static constexpr f32 MIN_HEIGHT_OFFSET = 0.5f * (17.5f *
STEP_HEIGHT);