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.
project-kyoku/src/classicgame/classicnotemanager.h

29 lines
883 B
C++

#pragma once
#include "game/inputtype.h"
#include "classicnote.h"
#include <memory>
class ClassicGraphicsManager;
class ClassicNoteManager
{
public:
explicit ClassicNoteManager(const std::shared_ptr<ClassicGraphicsManager>& manager);
~ClassicNoteManager();
bool isActive(const ClassicNote* note) const;
void update(ClassicNote* note, const microsec &music_offset);
void input(ClassicNote* note, PlayerInput&& inputdata);
void putToGame(ClassicNote* note, const microsec &music_offset);
bool isInGame(const ClassicNote* note) const;
bool shouldRemove(const ClassicNote* note) const;
void draw(const ClassicNote* note) const;
bool allElementsPressed(const ClassicNote* note) const;
bool isPressedAs(const ClassicNote* note, sf::Keyboard::Key key) const;
private:
const std::shared_ptr<ClassicGraphicsManager> _graphics_manager;
};