#pragma once #include "Asset/IZoneAssetCreationState.h" #include "Game/IW4/IW4.h" #include namespace IW4 { class MenuConversionZoneState final : public IZoneAssetCreationState { Zone* m_zone; std::vector m_functions; std::map m_function_by_name; std::vector m_static_dvars; std::map m_dvars_by_name; std::vector m_strings; std::map m_strings_by_value; public: std::map*>> m_menus_by_filename; ExpressionSupportingData* m_supporting_data; MenuConversionZoneState(); void SetZone(Zone* zone) override; Statement_s* FindFunction(const std::string& functionName); Statement_s* AddFunction(const std::string& functionName, Statement_s* function); size_t AddStaticDvar(const std::string& dvarName); const char* AddString(const std::string& str); void AddLoadedFile(std::string loadedFileName, std::vector*> menusOfFile); void FinalizeSupportingData() const; }; } // namespace IW4