A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectKoopaFigure64.hh
1#pragma once
2
3#include "game/field/obj/ObjectCollidable.hh"
4
5namespace Field {
6
10public:
12 ~ObjectKoopaFigure64() override;
13
14 void init() override;
15 void calc() override;
16
19 [[nodiscard]] u32 loadFlags() const override {
20 return 1;
21 }
22
24 void createCollision() override {
25 if (m_isBigStatue) {
26 ObjectCollidable::createCollision();
27 }
28 }
29
30 void calcCollisionTransform() override;
31
33 Kart::Reaction onCollision(Kart::KartObject * /*kartObj*/, Kart::Reaction reactionOnKart,
34 Kart::Reaction /*reactionOnObj*/, EGG::Vector3f &hitDepth) override {
35 hitDepth.setZero();
36 return reactionOnKart;
37 }
38
39private:
40 const bool m_isBigStatue;
41 const u32 m_startDelay;
42 u32 m_cycleFrame;
43
44 static constexpr u32 FIRE_DURATION = 300;
45 static constexpr u32 COOLDOWN_DURATION = 180;
46 static constexpr u32 CYCLE_DURATION = FIRE_DURATION + COOLDOWN_DURATION;
47};
48
49} // namespace Field
The Bowser statues on N64 Bowser's Castle.
const bool m_isBigStatue
Differentiates the first rBC turn statue from tiny statues.
static constexpr u32 FIRE_DURATION
How long the statue shoots fire for in a cycle.
static constexpr u32 COOLDOWN_DURATION
How long fire is disabled for in a cycle.
The highest level abstraction for a kart.
Definition KartObject.hh:11
Pertains to collision.
A 3D float vector.
Definition Vector.hh:88