#pragma once #include "core/note.h" class ClassicNote : public kku::Note { public: enum State { NONE, FLYING, DYING, DEAD }; explicit ClassicNote(const kku::microsec& perfect_offset); virtual ~ClassicNote() override = default; virtual bool isActive(const kku::microsec& offset) const override = 0; virtual void update(const kku::microsec &music_offset) override = 0; virtual void input(kku::GameEvent&& input) override = 0; void setState(State state) noexcept; State getState() const noexcept; protected: State _state; };