/********************************************************************* * \file SHSystem.h * \author Daniel Chua Yee Chen * \brief Declaration for the SHSytem abstract base class * * \copyright Copyright (c) 2021 DigiPen Institute of Technology. Reproduction or disclosure of this file or its contents without the prior written consent of DigiPen Institute of Technology is prohibited. *********************************************************************/ #pragma once namespace SHADE { class SHSystemManager; class SHSystem { protected: /*!************************************************************************* * \brief * Protected default constructor for SHSytem class ***************************************************************************/ SHSystem()= default; public: /*!************************************************************************* * \brief * Destructor for SHSytem class ***************************************************************************/ virtual ~SHSystem() = default; /*!************************************************************************* * \brief * Pure virtual Init function. Derived class must implement this ***************************************************************************/ virtual void Init() = 0; /*!************************************************************************* * \brief * Pure virtual Run function. Derived class must implement this * \param dt * Delta time ***************************************************************************/ virtual void Run(float dt) = 0; /*!************************************************************************* * \brief * Pure virtual Exit function. Derived class must implement this ***************************************************************************/ virtual void Exit() = 0; protected: }; class SHTestSystem : public SHSystem { public: SHTestSystem() = default; ~SHTestSystem() = default; int value{5}; void Init() { } void Run(float dt) { } void Exit() { } }; }