#pragma once #include "LanguageScript.h" #include "LuaHandler.h" #include "GameScriptColor.h" #include "GameScriptLevel.h" #include "GameScriptSettings.h" #include "GameScriptAudioTrack.h" enum class TITLE_TYPE { FLYBY, BACKGROUND }; class GameFlow : public LuaHandler { private: GameScriptSettings m_settings; std::unordered_map < std::string, std::vector > m_translationsMap; std::vector m_languageNames; std::map m_itemsMap; public: int FogInDistance{ 0 }; int FogOutDistance{ 0 }; int SelectedLevelForNewGame{ 0 }; int SelectedSaveGame{ 0 }; bool EnableLoadSave{ true }; bool PlayAnyLevel{ true }; bool FlyCheat{ true }; bool DebugMode{ false }; byte GameFarView{ 0 }; TITLE_TYPE TitleType{ TITLE_TYPE::FLYBY }; std::string IntroImagePath{}; std::string TitleScreenImagePath{}; // Selected language set std::vector Levels; GameFlow(sol::state* lua); ~GameFlow(); void AddLevel(GameScriptLevel const& level); void SetAudioTracks(sol::as_table_t>&& src); void LoadGameFlowScript(); char const * GetString(const char* id) const; void SetStrings(sol::nested>> && src); void SetLanguageNames(sol::as_table_t> && src); void SetSettings(GameScriptSettings const & src); GameScriptSettings* GetSettings(); GameScriptLevel* GetLevel(int id); int GetNumLevels() const; bool DoGameflow(); void SetIntroImagePath(std::string const& path); void SetTitleScreenImagePath(std::string const& path); void SetGameFarView(byte val); };