A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectSandcone.hh
1#pragma once
2
3#include "game/field/obj/ObjectKCL.hh"
4
5namespace Kinoko::Field {
6
7class ObjectSandcone : public ObjectKCL {
8public:
9 ObjectSandcone(const System::MapdataGeoObj &params);
10 ~ObjectSandcone() override;
11
12 void init() override;
13
15 void calc() override {
16 setTransform(getUpdatedMatrix(0));
17 }
18
20 [[nodiscard]] u32 loadFlags() const override {
21 return 1;
22 }
23
24 [[nodiscard]] const EGG::Matrix34f &getUpdatedMatrix(u32 timeOffset) override;
25 [[nodiscard]] bool checkCollision(f32 radius, const EGG::Vector3f &pos,
26 const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info,
27 KCLTypeMask *maskOut, u32 timeOffset) override;
28 [[nodiscard]] bool checkCollisionCached(f32 radius, const EGG::Vector3f &pos,
29 const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info,
30 KCLTypeMask *maskOut, u32 timeOffset) override;
31
32private:
33 f32 m_flowRate;
34 f32 m_finalHeightDelta;
35 u16 m_startFrame;
36 u16 m_duration;
37 EGG::Matrix34f m_baseMtx;
38 EGG::Matrix34f m_currentMtx;
40};
41
42} // namespace Kinoko::Field
A 3 x 4 matrix.
Definition Matrix.hh:10
EGG::Vector3f m_finalPos
Not in base game. Stores position of fully poured sandcone.
Pertains to collision.
A 3D float vector.
Definition Vector.hh:107