Fix snd/sndcurve not using original assets as fallback, bump IW4Of (#791)
This commit is contained in:
parent
1d59a63c71
commit
7cf8f14f49
2
deps/iw4-open-formats
vendored
2
deps/iw4-open-formats
vendored
@ -1 +1 @@
|
|||||||
Subproject commit f25d31a8946a259d96cbed2e0e432e649f3d24cf
|
Subproject commit c517856ce3db12557cf77bf53e27d7a411f03e12
|
@ -8,6 +8,8 @@ namespace Assets
|
|||||||
if (!header->data) this->loadEfx(header, name, builder); // Check if we have an editor fx
|
if (!header->data) this->loadEfx(header, name, builder); // Check if we have an editor fx
|
||||||
if (!header->data) this->loadFromIW4OF(header, name, builder); // Check if we need to import a new one into the game
|
if (!header->data) this->loadFromIW4OF(header, name, builder); // Check if we need to import a new one into the game
|
||||||
if (!header->data /*&& !builder->isPrimaryAsset()*/) this->loadNative(header, name, builder); // Check if there is a native one
|
if (!header->data /*&& !builder->isPrimaryAsset()*/) this->loadNative(header, name, builder); // Check if there is a native one
|
||||||
|
|
||||||
|
assert(header->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IFxEffectDef::loadFxElemVisuals(Game::FxElemVisuals* visuals, char elemType, Components::ZoneBuilder::Zone* builder, Utils::Stream::Reader* reader)
|
void IFxEffectDef::loadFxElemVisuals(Game::FxElemVisuals* visuals, char elemType, Components::ZoneBuilder::Zone* builder, Utils::Stream::Reader* reader)
|
||||||
|
@ -12,7 +12,10 @@ namespace Assets
|
|||||||
if (!header->data) this->loadFromDisk(header, name, builder); // Check if we need to import a new one into the game
|
if (!header->data) this->loadFromDisk(header, name, builder); // Check if we need to import a new one into the game
|
||||||
if (!header->data) this->loadNative(header, name, builder); // Check if there is a native one
|
if (!header->data) this->loadNative(header, name, builder); // Check if there is a native one
|
||||||
|
|
||||||
assert(header->data);
|
if (!header->data)
|
||||||
|
{
|
||||||
|
AssertUnreachable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IMaterialTechniqueSet::loadNative(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* /*builder*/)
|
void IMaterialTechniqueSet::loadNative(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* /*builder*/)
|
||||||
|
@ -26,5 +26,10 @@ namespace Assets
|
|||||||
void ISndCurve::load(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* builder)
|
void ISndCurve::load(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* builder)
|
||||||
{
|
{
|
||||||
header->sndCurve = builder->getIW4OfApi()->read<Game::SndCurve>(Game::XAssetType::ASSET_TYPE_SOUND_CURVE, name);
|
header->sndCurve = builder->getIW4OfApi()->read<Game::SndCurve>(Game::XAssetType::ASSET_TYPE_SOUND_CURVE, name);
|
||||||
|
|
||||||
|
if (!header->sndCurve)
|
||||||
|
{
|
||||||
|
header->sndCurve = Components::AssetHandler::FindOriginalAsset(Game::XAssetType::ASSET_TYPE_SOUND_CURVE, name.data()).sndCurve;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,11 @@ namespace Assets
|
|||||||
void Isnd_alias_list_t::load(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* builder)
|
void Isnd_alias_list_t::load(Game::XAssetHeader* header, const std::string& name, Components::ZoneBuilder::Zone* builder)
|
||||||
{
|
{
|
||||||
header->sound = builder->getIW4OfApi()->read<Game::snd_alias_list_t>(Game::XAssetType::ASSET_TYPE_SOUND, name);
|
header->sound = builder->getIW4OfApi()->read<Game::snd_alias_list_t>(Game::XAssetType::ASSET_TYPE_SOUND, name);
|
||||||
|
|
||||||
|
if (!header->sound)
|
||||||
|
{
|
||||||
|
header->sound = Components::AssetHandler::FindOriginalAsset(Game::XAssetType::ASSET_TYPE_SOUND_CURVE, name.data()).sound;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Isnd_alias_list_t::mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder)
|
void Isnd_alias_list_t::mark(Game::XAssetHeader header, Components::ZoneBuilder::Zone* builder)
|
||||||
|
@ -761,7 +761,9 @@ namespace Components
|
|||||||
|
|
||||||
iw4of::params_t ZoneBuilder::Zone::getIW4OfApiParams()
|
iw4of::params_t ZoneBuilder::Zone::getIW4OfApiParams()
|
||||||
{
|
{
|
||||||
iw4of::params_t params;
|
iw4of::params_t params{};
|
||||||
|
|
||||||
|
params.write_only_once = true;
|
||||||
|
|
||||||
params.find_other_asset = [this](int type, const std::string& name) -> void*
|
params.find_other_asset = [this](int type, const std::string& name) -> void*
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user