#include "2s2h/resource/importer/scenecommand/SetAlternateHeadersFactory.h" #include "2s2h/resource/type/scenecommand/SetAlternateHeaders.h" #include "libultraship/libultraship.h" namespace SOH { std::shared_ptr SetAlternateHeadersFactory::ReadResource(std::shared_ptr initData, std::shared_ptr reader) { auto setAlternateHeaders = std::make_shared(initData); ReadCommandId(setAlternateHeaders, reader); setAlternateHeaders->numHeaders = reader->ReadUInt32(); setAlternateHeaders->headers.reserve(setAlternateHeaders->numHeaders); for (uint32_t i = 0; i < setAlternateHeaders->numHeaders; i++) { auto headerName = reader->ReadString(); if (!headerName.empty()) { setAlternateHeaders->headers.push_back(std::static_pointer_cast( Ship::Context::GetInstance()->GetResourceManager()->LoadResourceProcess(headerName.c_str()))); } else { setAlternateHeaders->headers.push_back(nullptr); } } return setAlternateHeaders; } } // namespace SOH