1#include "ObjectSunDS.hh"
3#include "game/system/RaceManager.hh"
9 : ObjectProjectileLauncher(params), StateManager(this),
10 m_revolutionSpeed(static_cast<f32>(params.setting(0))),
11 m_startFrame(static_cast<s32>(params.setting(1))) {}
14ObjectSunDS::~ObjectSunDS() =
default;
17void ObjectSunDS::calc() {
18 if (System::RaceManager::Instance()->timer() <
static_cast<u32>(m_startFrame)) {
22 if (m_railInterpolator->calc() == RailInterpolator::Status::SegmentEnd) {
23 m_railInterpolator->setT(0.0f);
25 u16 setting = m_railInterpolator->curPoint().setting[0];
27 m_stillDuration = setting;
34 m_pos = m_railInterpolator->curPos();
35 m_flags.setBit(eFlags::Position);
39s16 ObjectSunDS::launchPointIdx() {
40 constexpr u16 THROW_DELAY = 30;
42 if (m_currentStateId != 0 || THROW_DELAY != m_currentFrame) {
46 return m_railInterpolator->curPointIdx();