2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-06-06 08:42:35 +00:00
Files
OpenAssetTools/src/ZoneCommon/Zone/Definition/Parsing/ZoneDefinitionParserState.h
T
2026-05-16 09:44:20 +02:00

37 lines
880 B
C++

#pragma once
#include "Parsing/IParserLineStream.h"
#include "SearchPath/ISearchPath.h"
#include "Zone/Definition/ZoneDefinition.h"
#include <memory>
#include <optional>
#include <string>
#include <unordered_set>
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<std::string> m_inclusions;
std::optional<IGame*> m_game;
std::optional<ZoneDefinitionObjContainer> m_current_ipak;
std::optional<ZoneDefinitionObjContainer> m_current_iwd;
std::unique_ptr<ZoneDefinition> m_definition;
};