#pragma once #include "Parsing/IParserLineStream.h" #include "SearchPath/ISearchPath.h" #include "Zone/Definition/ZoneDefinition.h" #include #include #include #include class ZoneDefinitionParserState { public: ZoneDefinitionParserState(std::string targetName, ISearchPath& searchPath, IParserLineStream& underlyingStream); void SetGame(GameId gameId); void SetCustomMap(); void StartIPak(std::string ipakName); void StartIwd(std::string iwdName); void Finalize(); ISearchPath& m_search_path; IParserLineStream& m_underlying_stream; std::unordered_set m_inclusions; std::optional m_game; std::optional m_current_ipak; std::optional m_current_iwd; std::unique_ptr m_definition; };