You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
853 B
C++

#pragma once
#include <memory>
#include "core/note.h"
class ClassicGraphicsManager;
class ClassicNote : public kku::Note
{
public:
enum State
{
NONE = 0,
INITIAL = 1,
FLYING = 2,
DYING = 3,
DEAD = 4
};
explicit ClassicNote(const kku::microsec& perfect_offset, int id);
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;
virtual void draw(const std::shared_ptr<const ClassicGraphicsManager>& graphics_manager) const = 0;
void setState(State state) noexcept;
State getState() const noexcept;
int getId() const noexcept;
protected:
State _state;
int _id;
};