#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& ClassicArrowNote::getElements() { return _elements; } auto ClassicArrowNote::calculatePrecision(const kku::microsec& offset) const -> Grade { return _evaluator.calculatePrecision(offset); }