#include "RawLoaderZBarrierT6.h" #include "Game/T6/ObjConstantsT6.h" #include "Game/T6/T6.h" #include "InfoString/InfoString.h" #include "InfoStringLoaderZBarrierT6.h" #include "Utils/Logging/Log.h" #include "ZBarrier/ZBarrierCommon.h" #include #include #include using namespace T6; namespace { class RawLoaderZBarrier final : public AssetCreator { public: RawLoaderZBarrier(MemoryManager& memory, ISearchPath& searchPath, Zone& zone) : m_search_path(searchPath), m_info_string_loader(memory, searchPath, zone) { } AssetCreationResult CreateAsset(const std::string& assetName, AssetCreationContext& context) override { const auto fileName = z_barrier::GetFileNameForAssetName(assetName); const auto file = m_search_path.Open(fileName); if (!file.IsOpen()) return AssetCreationResult::NoAction(); InfoString infoString; if (!infoString.FromStream(ObjConstants::INFO_STRING_PREFIX_ZBARRIER, *file.m_stream)) { con::error("Could not parse as info string file: \"{}\"", fileName); return AssetCreationResult::Failure(); } return m_info_string_loader.CreateAsset(assetName, infoString, context); } private: ISearchPath& m_search_path; z_barrier::InfoStringLoaderT6 m_info_string_loader; }; } // namespace namespace z_barrier { std::unique_ptr> CreateRawLoaderT6(MemoryManager& memory, ISearchPath& searchPath, Zone& zone) { return std::make_unique(memory, searchPath, zone); } } // namespace z_barrier