#include "classicnote.h"

ClassicNote::ClassicNote(NoteInitializer &&init) :
    Note(init.perfect_offset),
    _evaluator(init.intervals, _perfect_offset),
    _state(State::NONE),
    _context(init.context)
{}

bool ClassicNote::isActive(const microsec& offset) const
{
    return _evaluator.isActive(offset)
        && _state != State::DYING;
}

bool ClassicNote::isInGame() const
{
    return _state == State::FLYING
        || _state == State::DYING;
}

bool ClassicNote::shouldRemove() const
{
    return _state == State::DEAD;
}