#ifndef __URDE_IMAIN_HPP__ #define __URDE_IMAIN_HPP__ #include #include #include #include #include #include "RetroTypes.hpp" namespace urde { class CStopWatch; enum class EGameplayResult { None, Win, Lose, Playing }; enum class EFlowState { Zero, One, Two, Three, Four, Five, Six, }; class IMain { public: virtual ~IMain() = default; virtual void RegisterResourceTweaks() {} virtual void ResetGameState()=0; virtual void StreamNewGameState(CBitStreamReader&, u32 idx) {} virtual void CheckTweakManagerDebugOptions() {} virtual void Init(const hecl::Runtime::FileStoreManager& storeMgr, boo::IAudioVoiceEngine* voiceEngine, amuse::IBackendVoiceAllocator& backend)=0; virtual void Draw()=0; virtual bool Proc()=0; virtual void Shutdown()=0; virtual bool CheckReset()=0; virtual bool CheckTerminate()=0; virtual void DrawDebugMetrics(double, CStopWatch&) {} virtual void DoPreDrawMetrics(){} virtual void FillInAssetIDs()=0; virtual void LoadAudio()=0; virtual void ShutdownSubsystems()=0; virtual EGameplayResult GetGameplayResult() const=0; virtual void SetGameplayResult(EGameplayResult wl)=0; virtual void SetFlowState(EFlowState s)=0; virtual EFlowState GetFlowState() const=0; }; } #endif // __URDE_IMAIN_HPP__