mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-21 13:53:49 -07:00
Fixed last remaining audio bugs
This commit is contained in:
parent
c82df705a6
commit
c5df54ae27
9 changed files with 61 additions and 33 deletions
|
@ -10,22 +10,16 @@ void OTRExporter_Audio::WriteSampleEntryReference(ZAudio* audio, SampleEntry* en
|
|||
{
|
||||
writer->Write((uint8_t)(entry != nullptr ? 1 : 0));
|
||||
|
||||
uint32_t addr = 0;
|
||||
|
||||
for (auto pair : samples)
|
||||
{
|
||||
if (pair.second == entry)
|
||||
{
|
||||
addr = pair.first;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (entry != nullptr)
|
||||
{
|
||||
if (audio->sampleOffsets[entry->bankId].find(entry->sampleDataOffset) != audio->sampleOffsets[entry->bankId].end())
|
||||
if (audio->sampleOffsets[entry->bankId].find(entry->sampleLoopOffset) != audio->sampleOffsets[entry->bankId].end())
|
||||
{
|
||||
writer->Write(StringHelper::Sprintf("audio/samples/%s", audio->sampleOffsets[entry->bankId][entry->sampleDataOffset].c_str()));
|
||||
if (audio->sampleOffsets[entry->bankId][entry->sampleLoopOffset].find(entry->sampleDataOffset) != audio->sampleOffsets[entry->bankId][entry->sampleLoopOffset].end())
|
||||
{
|
||||
writer->Write(StringHelper::Sprintf("audio/samples/%s", audio->sampleOffsets[entry->bankId][entry->sampleLoopOffset][entry->sampleDataOffset].c_str()));
|
||||
}
|
||||
else
|
||||
writer->Write(entry->fileName);
|
||||
}
|
||||
else
|
||||
writer->Write(entry->fileName);
|
||||
|
@ -101,8 +95,13 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
|
|||
|
||||
std::string basePath = "";
|
||||
|
||||
if (audio->sampleOffsets[pair.second->bankId].find(pair.second->sampleDataOffset) != audio->sampleOffsets[pair.second->bankId].end())
|
||||
basePath = StringHelper::Sprintf("samples/%s", audio->sampleOffsets[pair.second->bankId][pair.second->sampleDataOffset].c_str());
|
||||
if (audio->sampleOffsets[pair.second->bankId].find(pair.second->sampleLoopOffset) != audio->sampleOffsets[pair.second->bankId].end())
|
||||
{
|
||||
if (audio->sampleOffsets[pair.second->bankId][pair.second->sampleLoopOffset].find(pair.second->sampleDataOffset) != audio->sampleOffsets[pair.second->bankId][pair.second->sampleLoopOffset].end())
|
||||
basePath = StringHelper::Sprintf("samples/%s", audio->sampleOffsets[pair.second->bankId][pair.second->sampleLoopOffset][pair.second->sampleDataOffset].c_str());
|
||||
else
|
||||
basePath = StringHelper::Sprintf("samples/sample_%08X", pair.first);
|
||||
}
|
||||
else
|
||||
basePath = StringHelper::Sprintf("samples/sample_%08X", pair.first);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue