// Copyright (c) 2022 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "game/_DawnGame.hpp"
#include "scene/components/Components.hpp"
#include "save/PokerSaveManager.hpp"

namespace Dawn {
  class DawnGame : public IDawnGame {
    private:
      Scene *sceneToCutTo = nullptr;

    public:
      DawnHost *host;
      RenderManager renderManager;
      AssetManager assetManager;
      InputManager inputManager;
      TimeManager timeManager;
      LocaleManager localeManager;
      PokerSaveManager saveManager;
      AudioManager audioManager;
      
      DawnGame(DawnHost *host);
      int32_t init() override;
      int32_t update(float_t delta) override;
      void sceneCutover(Scene *scene) override;
  };
}