A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
JugemSwitch.cc
1#include "JugemSwitch.hh"
2
3#include "game/kart/KartObjectManager.hh"
4
5#include "game/system/RaceManager.hh"
6
7namespace Kinoko::Field {
8
9void JugemSwitchReverse::calc() {
10 constexpr f32 ACTIVATION_FRAME_STEP = 1.0f / 60.0f;
11
12 if (System::RaceManager::Instance()->player().drivingWrongWay()) {
13 const auto &kartStatus = Kart::KartObjectManager::Instance()->object(0)->status();
14 if (kartStatus.offBit(Kart::eStatus::InAction)) {
15 m_activationPercent += ACTIVATION_FRAME_STEP;
16 }
17
18 if (m_activationPercent > 1.0f && kartStatus.offBit(Kart::eStatus::BeforeRespawn)) {
20 m_isOn = true;
21 }
22 } else {
23 m_activationPercent -= ACTIVATION_FRAME_STEP;
24 if (m_activationPercent < 0.0f) {
26 m_isOn = false;
27 }
28 }
29}
30
31} // namespace Kinoko::Field
f32 m_activationPercent
Lakitu is activated when this reaches 1.0f.
Pertains to collision.
@ BeforeRespawn
Set on respawn collision, cleared on position snap.