#include <ObjectPylon.hh>
The traffic cones on Daisy Circuit.
Definition at line 8 of file ObjectPylon.hh.
Public Member Functions | |
| ObjectPylon (const System::MapdataGeoObj ¶ms) | |
| void | init () override |
| void | calc () override |
| u32 | loadFlags () const override |
| Kart::Reaction | onCollision (Kart::KartObject *kartObj, Kart::Reaction reactionOnKart, Kart::Reaction reactionOnObj, EGG::Vector3f &hitDepth) override |
| Public Member Functions inherited from Kinoko::Field::ObjectCollidable | |
| ObjectCollidable (const System::MapdataGeoObj ¶ms) | |
| ObjectCollidable (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
| void | load () override |
| void | calcCollisionTransform () override |
| f32 | getCollisionRadius () const override |
| Finds the radius that fits fully in a BoxColUnit. | |
| virtual void | loadAABB (f32 maxSpeed) |
| virtual void | loadAABB (f32 radius, f32 maxSpeed) |
| virtual void | processKartReactions (Kart::KartObject *kartObj, Kart::Reaction &reactionOnKart, Kart::Reaction &reactionOnObj) |
| virtual void | onWallCollision (Kart::KartObject *, const EGG::Vector3f &) |
| virtual void | onObjectCollision (Kart::KartObject *) |
| virtual bool | checkCollision (ObjectCollisionBase *lhs, EGG::Vector3f &dist) |
| virtual const EGG::Vector3f & | getCollisionTranslation () const |
| virtual ObjectCollisionBase * | collision () const |
| Public Member Functions inherited from Kinoko::Field::ObjectBase | |
| ObjectBase (const System::MapdataGeoObj ¶ms) | |
| 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 Types | |
| enum | State { Idle = 0 , Moving = 1 , Hide = 2 , ComeBack = 3 , Hiding = 4 , Hit = 5 } |
Private Member Functions | |
| void | checkIntraCollision (const EGG::Vector3f &hitDepth) |
| void | startHit (f32 velFactor, EGG::Vector3f &hitDepth) |
| void | calcHit () |
| void | calcHiding () |
| void | calcHide () |
| void | calcComeBack () |
Private Attributes | |
| State | m_state |
| std::array< ObjectPylon *, 2 > | m_neighbors |
| const EGG::Vector3f | m_initPos |
| const EGG::Vector3f | m_initScale |
| const EGG::Vector3f | m_initRot |
| u32 | m_stateStartFrame |
| Frame when pylon entered the current m_state. | |
| u32 | m_numBounces |
| Number of floor collisions while in Hit state. | |
| EGG::Vector3f | m_vel |
| Velocity used in Hit and ComeBack states. | |
| EGG::Vector3f | m_angVel |
| Added to rotation while in Hit state. | |
Static Private Attributes | |
| static constexpr f32 | RADIUS = 120.0f |
| static constexpr f32 | FALL_VEL = 20.0f |
| static constexpr u32 | STATE_COOLDOWN_FRAMES = 5 |
| Minimum frames before a state change can occur. | |
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::ObjectCollidable | |
| void | createCollision () override |
| virtual const EGG::Vector3f & | collisionCenter () const |
| void | registerManagedObject () |
| 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::ObjectCollidable | |
| ObjectCollisionBase * | m_collision |
| 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 |
|
private |
Definition at line 25 of file ObjectPylon.hh.
|
0x8082CAD8 |
Definition at line 13 of file ObjectPylon.cc.
|
overridedefault0x8082E500 |
|
overridevirtual0x8082D044 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 76 of file ObjectPylon.cc.
|
private |
Definition at line 312 of file ObjectPylon.cc.
|
private |
Definition at line 301 of file ObjectPylon.cc.
|
private |
Definition at line 282 of file ObjectPylon.cc.
|
private |
Definition at line 223 of file ObjectPylon.cc.
|
private0x8082E100 |
Definition at line 169 of file ObjectPylon.cc.
|
overridevirtual0x8082CD60 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 20 of file ObjectPylon.cc.
|
inlinenodiscardoverridevirtual0x8082E4F8 |
Reimplemented from Kinoko::Field::ObjectBase.
Definition at line 17 of file ObjectPylon.hh.
|
overridevirtual0x8082DBEC |
If the player's speed ratio is above 70%, then the pylon enters the "Hit" state where it bounces away. Else, it checks to see the angle of impact between the player and the pylon. If the player's angle falls between 30 and 150 degrees, then the cone will reduce the player's speed down to 82%.
Reimplemented from Kinoko::Field::ObjectCollidable.
Definition at line 105 of file ObjectPylon.cc.
|
private0x8082E3F0 |
Definition at line 210 of file ObjectPylon.cc.
|
staticconstexprprivate |
Definition at line 54 of file ObjectPylon.hh.
|
private |
Added to rotation while in Hit state.
Definition at line 51 of file ObjectPylon.hh.
|
private |
Definition at line 45 of file ObjectPylon.hh.
|
private |
Definition at line 47 of file ObjectPylon.hh.
|
private |
Definition at line 46 of file ObjectPylon.hh.
|
private |
Definition at line 44 of file ObjectPylon.hh.
|
private |
Number of floor collisions while in Hit state.
Definition at line 49 of file ObjectPylon.hh.
|
private |
Definition at line 43 of file ObjectPylon.hh.
|
private |
Frame when pylon entered the current m_state.
Definition at line 48 of file ObjectPylon.hh.
|
private |
Velocity used in Hit and ComeBack states.
Definition at line 50 of file ObjectPylon.hh.
|
staticconstexprprivate |
Definition at line 53 of file ObjectPylon.hh.
|
staticconstexprprivate |
Minimum frames before a state change can occur.
Definition at line 57 of file ObjectPylon.hh.