#include <ObjectBird.hh>
Represents all but one of the birds in an @ObjectBird group.
These birds initialize their position based off of the ObjectBirdLeader. They perform collision checks in their calc function to prevent them from flying through floors. We have to implement this class because it can induce a collision transformation matrix update when birds are in close proximity to a moving ObjectKCL.
Definition at line 77 of file ObjectBird.hh.
Public Member Functions | |
ObjectBirdFollower (const System::MapdataGeoObj ¶ms, ObjectBird *bird, u32 idx) | |
void | init () override |
void | calc () override |
![]() | |
ObjectBirdLeader (const System::MapdataGeoObj ¶ms, ObjectBird *bird) | |
void | init () override |
void | calc () override |
u32 | loadFlags () const override |
void | loadAnims () override |
void | createCollision () override |
Not overridden in the base game, but collision mode 0 will cause our assert to fail. | |
![]() | |
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 Kart::Reaction | onCollision (Kart::KartObject *, Kart::Reaction reactionOnKart, Kart::Reaction, EGG::Vector3f &) |
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 |
![]() | |
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 | loadRail () |
virtual const char * | getName () const |
virtual const char * | getKclName () const |
virtual void | resize (f32 radius, f32 maxSpeed) |
virtual void | disableCollision () const |
virtual void | enableCollision () const |
virtual const EGG::Vector3f & | getPosition () const |
virtual ObjectId | id () const |
const EGG::Vector3f & | pos () const |
void | setPos (const EGG::Vector3f &pos) |
void | setScale (const EGG::Vector3f &scale) |
void | setTransform (const EGG::Matrix34f &mat) |
const EGG::Vector3f & | scale () const |
Private Member Functions | |
void | calcPos () |
Private Attributes | |
const u32 | m_idx |
EGG::Vector3f | m_velocity |
f32 | m_baseSpeed |
Additional Inherited Members | |
![]() | |
enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
typedef EGG::TBitFlag< u16, eFlags > | Flags |
![]() | |
void | createCollision () override |
virtual const EGG::Vector3f & | collisionCenter () const |
void | registerManagedObject () |
![]() | |
void | calcTransform () |
void | linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types) |
void | setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
![]() | |
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 | Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1) |
![]() | |
ObjectBird * | m_bird |
![]() | |
ObjectCollisionBase * | m_collision |
![]() | |
Render::DrawMdl * | m_drawMdl |
Abstract::g3d::ResFile * | m_resFile |
ObjectId | m_id |
RailInterpolator * | m_railInterpolator |
BoxColUnit * | m_boxColUnit |
Flags | m_flags |
EGG::Vector3f | m_pos |
EGG::Vector3f | m_rot |
EGG::Vector3f | m_scale |
EGG::Matrix34f | m_transform |
const System::MapdataGeoObj * | m_mapObj |
|
0x8077C580 |
Definition at line 100 of file ObjectBird.cc.
|
overridevirtual0x8077C7F0 |
Reimplemented from Field::ObjectBase.
Definition at line 133 of file ObjectBird.cc.
|
private0x8077C8F4 |
Definition at line 146 of file ObjectBird.cc.
|
overridevirtual0x8077C5E0 |
Reimplemented from Field::ObjectBase.
Definition at line 108 of file ObjectBird.cc.
|
private |
Definition at line 90 of file ObjectBird.hh.
|
private |
Definition at line 88 of file ObjectBird.hh.
|
private |
Definition at line 89 of file ObjectBird.hh.