44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
|
#include "game/classicarrownote.h"
|
||
|
#include "classicmode/context.h"
|
||
|
|
||
|
ClassicArrowNote::ClassicArrowNote(Init&& init) :
|
||
|
ClassicNote(init.perfect_offset),
|
||
|
_evaluator(init.intervals, init.perfect_offset),
|
||
|
_context(init.context)
|
||
|
{
|
||
|
_elements.resize(init.elements.size());
|
||
|
|
||
|
for (std::size_t i = 0; i < _elements.size(); ++i)
|
||
|
{
|
||
|
_elements[i].keys = init.elements[i].keys;
|
||
|
_elements[i].position = init.elements[i].position;
|
||
|
_elements[i].type = init.elements[i].type;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bool ClassicArrowNote::isActive(const kku::microsec& offset) const
|
||
|
{
|
||
|
return _evaluator.isActive(offset)
|
||
|
&& _state != State::DYING;
|
||
|
}
|
||
|
|
||
|
void ClassicArrowNote::update(const kku::microsec &music_offset)
|
||
|
{
|
||
|
_context->update(this, music_offset);
|
||
|
}
|
||
|
|
||
|
void ClassicArrowNote::input(kku::GameEvent&& input)
|
||
|
{
|
||
|
_context->input(this, std::move(input));
|
||
|
}
|
||
|
|
||
|
std::vector<ArrowElement>& ClassicArrowNote::getElements()
|
||
|
{
|
||
|
return _elements;
|
||
|
}
|
||
|
|
||
|
auto ClassicArrowNote::calculatePrecision(const kku::microsec& offset) const -> Grade
|
||
|
{
|
||
|
return _evaluator.calculatePrecision(offset);
|
||
|
}
|