mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-11 15:28:11 -05:00
refactor: make LoadDependency and LoadIndirectAssetReference functions work with Asset template types
This commit is contained in:
@ -52,7 +52,7 @@ bool AssetLoaderGfxLightDef::LoadFromRaw(
|
||||
file.m_stream->read(&imageName[0], static_cast<size_t>(imageNameSize));
|
||||
file.m_stream->read(reinterpret_cast<char*>(&lmapLookupStart), sizeof(int8_t));
|
||||
|
||||
auto* imageDependency = reinterpret_cast<XAssetInfo<GfxImage>*>(manager->LoadDependency(ASSET_TYPE_IMAGE, imageName));
|
||||
auto* imageDependency = manager->LoadDependency<AssetImage>(imageName);
|
||||
|
||||
if (!imageDependency)
|
||||
{
|
||||
|
@ -808,7 +808,7 @@ namespace IW4
|
||||
|
||||
void SetTechniqueSet(const std::string& techsetName)
|
||||
{
|
||||
auto* techset = reinterpret_cast<XAssetInfo<MaterialTechniqueSet>*>(m_manager->LoadDependency(ASSET_TYPE_TECHNIQUE_SET, techsetName));
|
||||
auto* techset = m_manager->LoadDependency<AssetTechniqueSet>(techsetName);
|
||||
|
||||
if (techset == nullptr)
|
||||
{
|
||||
@ -994,7 +994,7 @@ namespace IW4
|
||||
break;
|
||||
}
|
||||
|
||||
auto* image = reinterpret_cast<XAssetInfo<GfxImage>*>(m_manager->LoadDependency(ASSET_TYPE_IMAGE, textureName));
|
||||
auto* image = m_manager->LoadDependency<AssetImage>(textureName);
|
||||
|
||||
if (image == nullptr)
|
||||
{
|
||||
|
@ -391,7 +391,7 @@ namespace IW4
|
||||
ss << materialStreamSourceAbbreviation[stream.source] << materialStreamDestinationAbbreviation[stream.dest];
|
||||
}
|
||||
|
||||
pass.m_vertex_decl_asset = reinterpret_cast<XAssetInfo<MaterialVertexDeclaration>*>(m_manager->LoadDependency(ASSET_TYPE_VERTEXDECL, ss.str()));
|
||||
pass.m_vertex_decl_asset = m_manager->LoadDependency<AssetVertexDecl>(ss.str());
|
||||
}
|
||||
|
||||
bool AcceptEndPass(std::string& errorMessage) override
|
||||
@ -461,7 +461,7 @@ namespace IW4
|
||||
|
||||
bool AcceptVertexShader(const std::string& vertexShaderName, std::string& errorMessage) override
|
||||
{
|
||||
auto* vertexShaderDependency = m_manager->LoadDependency(ASSET_TYPE_VERTEXSHADER, vertexShaderName);
|
||||
auto* vertexShaderDependency = m_manager->LoadDependency<AssetVertexShader>(vertexShaderName);
|
||||
if (vertexShaderDependency == nullptr)
|
||||
{
|
||||
std::ostringstream ss;
|
||||
@ -472,7 +472,7 @@ namespace IW4
|
||||
|
||||
assert(!m_passes.empty());
|
||||
auto& pass = m_passes.at(m_passes.size() - 1);
|
||||
pass.m_vertex_shader = reinterpret_cast<XAssetInfo<MaterialVertexShader>*>(vertexShaderDependency);
|
||||
pass.m_vertex_shader = vertexShaderDependency;
|
||||
|
||||
if (pass.m_vertex_shader->Asset()->name && pass.m_vertex_shader->Asset()->name[0] == ',')
|
||||
{
|
||||
@ -501,7 +501,7 @@ namespace IW4
|
||||
|
||||
bool AcceptPixelShader(const std::string& pixelShaderName, std::string& errorMessage) override
|
||||
{
|
||||
auto* pixelShaderDependency = m_manager->LoadDependency(ASSET_TYPE_PIXELSHADER, pixelShaderName);
|
||||
auto* pixelShaderDependency = m_manager->LoadDependency<AssetPixelShader>(pixelShaderName);
|
||||
if (pixelShaderDependency == nullptr)
|
||||
{
|
||||
std::ostringstream ss;
|
||||
@ -512,7 +512,7 @@ namespace IW4
|
||||
|
||||
assert(!m_passes.empty());
|
||||
auto& pass = m_passes.at(m_passes.size() - 1);
|
||||
pass.m_pixel_shader = reinterpret_cast<XAssetInfo<MaterialPixelShader>*>(pixelShaderDependency);
|
||||
pass.m_pixel_shader = pixelShaderDependency;
|
||||
|
||||
if (pass.m_pixel_shader->Asset()->name && pass.m_pixel_shader->Asset()->name[0] == ',')
|
||||
{
|
||||
|
@ -137,7 +137,7 @@ namespace
|
||||
if (ConvertString(value, field.iOffset))
|
||||
{
|
||||
if (!value.empty())
|
||||
m_indirect_asset_references.emplace(m_loading_manager->LoadIndirectAssetReference(ASSET_TYPE_XANIMPARTS, value));
|
||||
m_indirect_asset_references.emplace(m_loading_manager->LoadIndirectAssetReference<AssetXAnim>(value));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user