A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectVolcanoBallLauncher.hh
1#pragma once
2
3#include "game/field/obj/ObjectCollidable.hh"
4
5namespace Kinoko::Field {
6
8
10class ObjectVolcanoBallLauncher final : public ObjectCollidable {
11public:
12 ObjectVolcanoBallLauncher(const System::MapdataGeoObj &params);
13 ~ObjectVolcanoBallLauncher() override;
14
15 void init() override;
16 void calc() override;
17
19 [[nodiscard]] LoadFlags loadFlags() const override {
21 };
22
24 void loadGraphics() override {}
25
27 void createCollision() override {}
28
30 void loadRail() override {}
31
32private:
33 owning_span<ObjectVolcanoBall *> m_balls;
34 const f32 m_initDelay;
35 const f32 m_cycleDuration;
36 u32 m_currBallIdx;
37 bool m_active;
38};
39
40} // namespace Kinoko::Field
EGG::TBitFlag< u8, eLoadFlags > LoadFlags
A bitfield of eLoadFlags that represents the update requirements of the object.
Definition ObjectBase.hh:36
@ Calc
The state of the object should be recalculated every frame.
Definition ObjectBase.hh:30
bool m_active
False when the volcano is dormant, true after m_initDelay.
LoadFlags loadFlags() const override
Returns a bitmask indicating which lifecycle hooks should be called for the object.
Represents a fireball that is launched from the volcanoes on Grumble Volcano.
Pertains to collision.