1#include "ObjectItemboxLine.hh"
3#include "game/field/obj/ObjectItemboxPress.hh"
4#include "game/field/obj/ObjectPress.hh"
9ObjectItemboxLine::ObjectItemboxLine(
const System::MapdataGeoObj ¶ms)
10 : ObjectCollidable(params) {
11 constexpr u32 DEFAULT_PRESS_COUNT = 5;
13 auto *senko =
new ObjectPressSenko(params);
16 u32 pressCount = params.setting(6);
17 if (pressCount == 0) {
18 pressCount = DEFAULT_PRESS_COUNT;
21 m_press = owning_span<ObjectItemboxPress *>(pressCount);
23 for (
auto *&press : m_press) {
24 press =
new ObjectItemboxPress(params);
26 press->setSenko(senko);
31ObjectItemboxLine::~ObjectItemboxLine() =
default;
34void ObjectItemboxLine::init() {
36 u32 timer =
static_cast<u32
>(m_mapObj->setting(4));
39 timer =
static_cast<u32
>(m_mapObj->setting(5));
42 m_stompCooldown = timer;
47void ObjectItemboxLine::calc() {
48 if (--m_stompCooldown > 0) {
52 m_stompCooldown =
static_cast<u32
>(m_mapObj->setting(5));
54 m_press[m_curPressIdx]->startPress();
55 m_curPressIdx = (m_curPressIdx + 1) % m_press.size();