A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kinoko::Field::ObjectTwistedWay Class Reference

#include <ObjectTwistedWay.hh>

Description

The wavy road in Bowser's Castle.

Behaves as a sine wave with a period of 120 frames and an amplitude which varies depending on your distance from the center.

Definition at line 10 of file ObjectTwistedWay.hh.

Inheritance diagram for Kinoko::Field::ObjectTwistedWay:

Public Member Functions

 ObjectTwistedWay (const System::MapdataGeoObj &params)
void init () override
void calc () override
u32 loadFlags () const override
void createCollision () override
void calcCollisionTransform () override
f32 getCollisionRadius () const override
bool checkPointPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override
bool checkSpherePartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSpherePartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSphereFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSphereFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkPointCachedPartial (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointCachedPartialPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointCachedFull (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override
bool checkPointCachedFullPush (const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut) override
bool checkSphereCachedPartial (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSphereCachedPartialPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSphereCachedFull (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
bool checkSphereCachedFullPush (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset) override
Public Member Functions inherited from Kinoko::Field::ObjectDrivable
 ObjectDrivable (const System::MapdataGeoObj &params)
void load () override
virtual void initCollision ()
virtual void loadAABB (f32 radius)
virtual void narrScLocal (f32, const EGG::Vector3f &, KCLTypeMask, u32)
Public Member Functions inherited from Kinoko::Field::ObjectBase
 ObjectBase (const System::MapdataGeoObj &params)
 ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale)
virtual void calcModel ()
virtual const char * getResources () const
virtual void loadGraphics ()
virtual void loadAnims ()
virtual void loadRail ()
virtual const char * getName () const
virtual const char * getKclName () const
virtual void resize (f32 radius, f32 maxSpeed)
virtual void unregisterCollision ()
virtual void disableCollision () const
virtual void enableCollision () const
virtual const BoxColUnit * getUnit () const
const RailInterpolator * railInterpolator () const
virtual const EGG::Vector3f & getPosition () const
virtual ObjectId id () const
void setPos (const EGG::Vector3f &pos)
void addPos (const EGG::Vector3f &v)
void subPos (const EGG::Vector3f &v)
void setScale (const EGG::Vector3f &scale)
void setScale (f32 scale)
void setRot (const EGG::Vector3f &rot)
void setRotNoFlag (const EGG::Vector3f &rot)
void addRot (const EGG::Vector3f &v)
void subRot (const EGG::Vector3f &v)
void setTransform (const EGG::Matrix34f &mat)
const EGG::Vector3f & pos () const
const EGG::Vector3f & scale () const
const EGG::Vector3f & rot () const
const EGG::Matrix34f & transform () const

Private Member Functions

bool checkSpherePartialImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset)
bool checkSpherePartialPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfoPartial *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset)
bool checkSphereFullImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset)
bool checkSphereFullPushImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, CollisionInfo *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset)
template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool checkSphereImpl (f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, bool push)
 Helper function which contains frequently re-used code. Behavior branches depending on whether it is a full or partial check (call CollisionInfo::updateFloor) or push (push entry in the CollisionDirector).
template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool checkWallCollision (f32 angle, f32 radius, u32 t, const EGG::Vector3f &relPos, T *pInfo, KCLTypeMask *pFlagsOut, bool push)
template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool checkFloorCollision (f32 angle, f32 radius, const EGG::Vector3f &relPos, T *pInfo, KCLTypeMask *pFlagsOut, bool push)
bool checkPoleCollision (f32 radius, f32 angle, const EGG::Vector3f &relPos, EGG::Vector3f &v0, EGG::Vector3f &fnrm, f32 &dist)
f32 calcWave (f32 zPercent, u32 t)

Private Attributes

u32 m_introTimer

Static Private Attributes

static constexpr s32 PERIOD_LENGTH = 120
 Framecount of full oscillation.
static constexpr f32 WIDTH = 2000.0f
static constexpr f32 HALF_DEPTH = 7500.0f
 Half the length of the wavy road.

Additional Inherited Members

Public Types inherited from Kinoko::Field::ObjectBase
enum class  eFlags {
  Position = 0 ,
  Rotation = 1 ,
  Matrix = 2 ,
  Scale = 3
}
typedef EGG::TBitFlag< u16, eFlags > Flags
Protected Member Functions inherited from Kinoko::Field::ObjectBase
void calcTransform ()
void calcRotLock ()
void linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types)
void setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent)
void setMatrixFromOrthonormalBasisAndPos (const EGG::Vector3f &v)
Static Protected Member Functions inherited from Kinoko::Field::ObjectBase
static f32 CheckPointAgainstLineSegment (const EGG::Vector3f &point, const EGG::Vector3f &a, const EGG::Vector3f &b)
 Calculates on what side of line segment ab point lies.
static EGG::Vector3f RotateXZByYaw (f32 angle, const EGG::Vector3f &v)
 Rotates a vector around the Y-axis and returns the XZ-plane portion of the vector.
static EGG::Vector3f RotateAxisAngle (f32 angle, const EGG::Vector3f &axis, const EGG::Vector3f &v1)
static void SetRotTangentHorizontal (EGG::Matrix34f &mat, const EGG::Vector3f &up, const EGG::Vector3f &tangent)
static EGG::Matrix34f OrthonormalBasis (const EGG::Vector3f &v)
static EGG::Matrix34f RailOrthonormalBasis (const RailInterpolator &railInterpolator)
static EGG::Vector3f AdjustVecForward (f32 sidewaysScalar, f32 forwardScalar, f32 minSpeed, const EGG::Vector3f &src, EGG::Vector3f forward)
static f32 CalcParabolicDisplacement (f32 initVel, f32 accel, u32 frame)
 Solves the standard kinematic equation \(y(t) = v_0\, t - \frac{1}{2} a t^{2}\).
static EGG::Vector3f Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1)
Protected Attributes inherited from Kinoko::Field::ObjectBase
Render::DrawMdl * m_drawMdl
Abstract::g3d::ResFile * m_resFile
ObjectId m_id
RailInterpolator * m_railInterpolator
BoxColUnit * m_boxColUnit
const System::MapdataGeoObj * m_mapObj

Constructor & Destructor Documentation

◆ ObjectTwistedWay()

Kinoko::Field::ObjectTwistedWay::ObjectTwistedWay ( const System::MapdataGeoObj & params)
0x80813BD4

Definition at line 12 of file ObjectTwistedWay.cc.

◆ ~ObjectTwistedWay()

Kinoko::Field::ObjectTwistedWay::~ObjectTwistedWay ( )
overridedefault0x80814918

Member Function Documentation

◆ calc()

void Kinoko::Field::ObjectTwistedWay::calc ( )
overridevirtual0x80813CFC

Reimplemented from Kinoko::Field::ObjectBase.

Definition at line 18 of file ObjectTwistedWay.cc.

◆ calcCollisionTransform()

void Kinoko::Field::ObjectTwistedWay::calcCollisionTransform ( )
inlineoverridevirtual0x80814908

Implements Kinoko::Field::ObjectBase.

Definition at line 31 of file ObjectTwistedWay.hh.

◆ calcWave()

f32 Kinoko::Field::ObjectTwistedWay::calcWave ( f32 zPercent,
u32 t )
nodiscardprivate

Definition at line 329 of file ObjectTwistedWay.cc.

◆ checkFloorCollision()

template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool Kinoko::Field::ObjectTwistedWay::checkFloorCollision ( f32 angle,
f32 radius,
const EGG::Vector3f & relPos,
T * pInfo,
KCLTypeMask * pFlagsOut,
bool push )
nodiscardprivate

Definition at line 265 of file ObjectTwistedWay.cc.

◆ checkPointCachedFull()

bool Kinoko::Field::ObjectTwistedWay::checkPointCachedFull ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x80814888

Implements Kinoko::Field::ObjectDrivable.

Definition at line 88 of file ObjectTwistedWay.cc.

◆ checkPointCachedFullPush()

bool Kinoko::Field::ObjectTwistedWay::checkPointCachedFullPush ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x80814898

Implements Kinoko::Field::ObjectDrivable.

Definition at line 94 of file ObjectTwistedWay.cc.

◆ checkPointCachedPartial()

bool Kinoko::Field::ObjectTwistedWay::checkPointCachedPartial ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x80814868

Implements Kinoko::Field::ObjectDrivable.

Definition at line 76 of file ObjectTwistedWay.cc.

◆ checkPointCachedPartialPush()

bool Kinoko::Field::ObjectTwistedWay::checkPointCachedPartialPush ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x80814878

Implements Kinoko::Field::ObjectDrivable.

Definition at line 82 of file ObjectTwistedWay.cc.

◆ checkPointFull()

bool Kinoko::Field::ObjectTwistedWay::checkPointFull ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x808148D8

Implements Kinoko::Field::ObjectDrivable.

Definition at line 37 of file ObjectTwistedWay.cc.

◆ checkPointFullPush()

bool Kinoko::Field::ObjectTwistedWay::checkPointFullPush ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x808148E8

Implements Kinoko::Field::ObjectDrivable.

Definition at line 43 of file ObjectTwistedWay.cc.

◆ checkPointPartial()

bool Kinoko::Field::ObjectTwistedWay::checkPointPartial ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x808148B8

Implements Kinoko::Field::ObjectDrivable.

Definition at line 25 of file ObjectTwistedWay.cc.

◆ checkPointPartialPush()

bool Kinoko::Field::ObjectTwistedWay::checkPointPartialPush ( const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut )
nodiscardoverridevirtual0x808148C8

Implements Kinoko::Field::ObjectDrivable.

Definition at line 31 of file ObjectTwistedWay.cc.

◆ checkPoleCollision()

bool Kinoko::Field::ObjectTwistedWay::checkPoleCollision ( f32 radius,
f32 angle,
const EGG::Vector3f & relPos,
EGG::Vector3f & v0,
EGG::Vector3f & fnrm,
f32 & dist )
nodiscardprivate0x80814270

Definition at line 307 of file ObjectTwistedWay.cc.

◆ checkSphereCachedFull()

bool Kinoko::Field::ObjectTwistedWay::checkSphereCachedFull ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x80814860

Implements Kinoko::Field::ObjectDrivable.

Definition at line 114 of file ObjectTwistedWay.cc.

◆ checkSphereCachedFullPush()

bool Kinoko::Field::ObjectTwistedWay::checkSphereCachedFullPush ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x80814864

Implements Kinoko::Field::ObjectDrivable.

Definition at line 121 of file ObjectTwistedWay.cc.

◆ checkSphereCachedPartial()

bool Kinoko::Field::ObjectTwistedWay::checkSphereCachedPartial ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x80814858

Implements Kinoko::Field::ObjectDrivable.

Definition at line 100 of file ObjectTwistedWay.cc.

◆ checkSphereCachedPartialPush()

bool Kinoko::Field::ObjectTwistedWay::checkSphereCachedPartialPush ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x8081485C

Implements Kinoko::Field::ObjectDrivable.

Definition at line 107 of file ObjectTwistedWay.cc.

◆ checkSphereFull()

bool Kinoko::Field::ObjectTwistedWay::checkSphereFull ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x808148B0

Implements Kinoko::Field::ObjectDrivable.

Definition at line 63 of file ObjectTwistedWay.cc.

◆ checkSphereFullImpl()

bool Kinoko::Field::ObjectTwistedWay::checkSphereFullImpl ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardprivate0x80815444

Definition at line 142 of file ObjectTwistedWay.cc.

◆ checkSphereFullPush()

bool Kinoko::Field::ObjectTwistedWay::checkSphereFullPush ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x808148B4

Implements Kinoko::Field::ObjectDrivable.

Definition at line 69 of file ObjectTwistedWay.cc.

◆ checkSphereFullPushImpl()

bool Kinoko::Field::ObjectTwistedWay::checkSphereFullPushImpl ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfo * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardprivate0x80815D64

Definition at line 149 of file ObjectTwistedWay.cc.

◆ checkSphereImpl()

template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool Kinoko::Field::ObjectTwistedWay::checkSphereImpl ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
T * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset,
bool push )
nodiscardprivate

Helper function which contains frequently re-used code. Behavior branches depending on whether it is a full or partial check (call CollisionInfo::updateFloor) or push (push entry in the CollisionDirector).

Definition at line 160 of file ObjectTwistedWay.cc.

◆ checkSpherePartial()

bool Kinoko::Field::ObjectTwistedWay::checkSpherePartial ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x808148A8

Implements Kinoko::Field::ObjectDrivable.

Definition at line 49 of file ObjectTwistedWay.cc.

◆ checkSpherePartialImpl()

bool Kinoko::Field::ObjectTwistedWay::checkSpherePartialImpl ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardprivate0x80814958

Definition at line 128 of file ObjectTwistedWay.cc.

◆ checkSpherePartialPush()

bool Kinoko::Field::ObjectTwistedWay::checkSpherePartialPush ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardoverridevirtual0x808148AC

Implements Kinoko::Field::ObjectDrivable.

Definition at line 56 of file ObjectTwistedWay.cc.

◆ checkSpherePartialPushImpl()

bool Kinoko::Field::ObjectTwistedWay::checkSpherePartialPushImpl ( f32 radius,
const EGG::Vector3f & v0,
const EGG::Vector3f & v1,
KCLTypeMask flags,
CollisionInfoPartial * pInfo,
KCLTypeMask * pFlagsOut,
u32 timeOffset )
nodiscardprivate0x80814EA8

Definition at line 135 of file ObjectTwistedWay.cc.

◆ checkWallCollision()

template<typename T>
requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
bool Kinoko::Field::ObjectTwistedWay::checkWallCollision ( f32 angle,
f32 radius,
u32 t,
const EGG::Vector3f & relPos,
T * pInfo,
KCLTypeMask * pFlagsOut,
bool push )
nodiscardprivate

Definition at line 191 of file ObjectTwistedWay.cc.

◆ createCollision()

void Kinoko::Field::ObjectTwistedWay::createCollision ( )
inlineoverridevirtual0x8081490C

Implements Kinoko::Field::ObjectBase.

Definition at line 28 of file ObjectTwistedWay.hh.

◆ getCollisionRadius()

f32 Kinoko::Field::ObjectTwistedWay::getCollisionRadius ( ) const
inlinenodiscardoverridevirtual0x808148F8

Reimplemented from Kinoko::Field::ObjectDrivable.

Definition at line 34 of file ObjectTwistedWay.hh.

◆ init()

void Kinoko::Field::ObjectTwistedWay::init ( )
inlineoverridevirtual0x80813C40

Reimplemented from Kinoko::Field::ObjectBase.

Definition at line 16 of file ObjectTwistedWay.hh.

◆ loadFlags()

u32 Kinoko::Field::ObjectTwistedWay::loadFlags ( ) const
inlinenodiscardoverridevirtual0x80814910

Reimplemented from Kinoko::Field::ObjectBase.

Definition at line 23 of file ObjectTwistedWay.hh.

Member Data Documentation

◆ HALF_DEPTH

f32 Kinoko::Field::ObjectTwistedWay::HALF_DEPTH = 7500.0f
staticconstexprprivate

Half the length of the wavy road.

Definition at line 117 of file ObjectTwistedWay.hh.

◆ m_introTimer

u32 Kinoko::Field::ObjectTwistedWay::m_introTimer
private

Definition at line 113 of file ObjectTwistedWay.hh.

◆ PERIOD_LENGTH

s32 Kinoko::Field::ObjectTwistedWay::PERIOD_LENGTH = 120
staticconstexprprivate

Framecount of full oscillation.

Definition at line 115 of file ObjectTwistedWay.hh.

◆ WIDTH

f32 Kinoko::Field::ObjectTwistedWay::WIDTH = 2000.0f
staticconstexprprivate

Definition at line 116 of file ObjectTwistedWay.hh.