#pragma once
#include "a83/error.hpp"
#include "game/game-data.hpp"
//! база для объектов сцен
class Scene {
protected:
  static void set_scene(scene_st state) //! макрос для выхода
    { Game::scene_state.push(state); }
public:
  Scene* pPrev = nullptr; ///< предыдущая сцена
  Scene(Scene* pv = nullptr): pPrev(pv) {}
  virtual ~Scene() = default;
  virtual void draw() {}
  virtual constexpr void update(float dt) { (void)dt; }
private:
  nocopy(Scene);
};