#pragma once #include "spritecontainer.h" #include "classicmode/classicactions.h" #include "graphics/classicspritefactory.h" #include class ClassicSprite; class ClassicGraphicsManager : public sf::Drawable { public: virtual ~ClassicGraphicsManager() = default; explicit ClassicGraphicsManager(const microsec& visibility_offset) : _sprite_container({Type::UP, Type::DOWN, Type::LEFT, Type::RIGHT}, std::make_unique()), _visibility_offset(visibility_offset) {} virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const override = 0; virtual void update(const microsec& offset) = 0; protected: SpriteContainer _sprite_container; microsec _visibility_offset; };