1#include "ObjectItemboxLine.hh"
3#include "game/field/obj/ObjectItemboxPress.hh"
4#include "game/field/obj/ObjectPress.hh"
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 = std::span<ObjectItemboxPress *>(
new ObjectItemboxPress *[pressCount], pressCount);
23 for (
auto *&press : m_press) {
24 press =
new ObjectItemboxPress(params);
26 press->setSenko(senko);
31ObjectItemboxLine::~ObjectItemboxLine() {
33 delete[] m_press.data();
37void ObjectItemboxLine::init() {
38 u32 timer =
static_cast<u32>(m_mapObj->setting(4));
41 timer =
static_cast<u32>(m_mapObj->setting(5));
44 m_stompCooldown = timer;
49void ObjectItemboxLine::calc() {
50 if (--m_stompCooldown > 0) {
54 m_stompCooldown =
static_cast<u32>(m_mapObj->setting(5));
56 m_press[m_curPressIdx]->startPress();
57 m_curPressIdx = (m_curPressIdx + 1) % m_press.size();