mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 23:08:05 -05:00
chore: address code review comments
This commit is contained in:
@ -8,6 +8,7 @@
|
||||
#include "nlohmann/json.hpp"
|
||||
|
||||
#include <filesystem>
|
||||
#include <format>
|
||||
#include <fstream>
|
||||
#include <unordered_set>
|
||||
|
||||
@ -124,7 +125,7 @@ namespace
|
||||
{
|
||||
std::unordered_map<unsigned int, std::string> result;
|
||||
for (auto i = 0u; i < std::extent_v<decltype(SOUND_CURVES)>; i++)
|
||||
result.emplace(T6::Common::SND_HashName(SOUND_CURVES[i].data()), SOUND_CURVES[i]);
|
||||
result.emplace(T6::Common::SND_HashName(SOUND_CURVES[i]), SOUND_CURVES[i]);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -195,7 +196,7 @@ class AssetDumperSndBank::Internal
|
||||
stream.NextRow();
|
||||
}
|
||||
|
||||
static const char* FindNameForDuck(unsigned int id, const SndBank* bank)
|
||||
static const char* FindNameForDuck(const unsigned int id, const SndBank* bank)
|
||||
{
|
||||
for (auto i = 0u; i < bank->duckCount; i++)
|
||||
{
|
||||
@ -208,7 +209,7 @@ class AssetDumperSndBank::Internal
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string ConvertSndFormatToExtension(snd_asset_format format) const
|
||||
static const char* ExtensionForSndFormat(const snd_asset_format format)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
@ -219,17 +220,19 @@ class AssetDumperSndBank::Internal
|
||||
return ".flac";
|
||||
|
||||
default:
|
||||
assert(false);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
static void WriteAliasToFile(CsvOutputStream& stream, const SndAlias* alias, std::string& extension, const SndBank* bank)
|
||||
static void WriteAliasToFile(CsvOutputStream& stream, const SndAlias* alias, const std::optional<snd_asset_format> maybeFormat, const SndBank* bank)
|
||||
{
|
||||
// name
|
||||
stream.WriteColumn(alias->name);
|
||||
|
||||
// file
|
||||
stream.WriteColumn(alias->assetFileName ? alias->assetFileName + extension : "");
|
||||
const auto* extension = maybeFormat ? ExtensionForSndFormat(*maybeFormat) : "";
|
||||
stream.WriteColumn(alias->assetFileName ? std::format("{}{}", alias->assetFileName, extension) : "");
|
||||
|
||||
// template
|
||||
stream.WriteColumn("");
|
||||
@ -435,7 +438,7 @@ class AssetDumperSndBank::Internal
|
||||
const auto outFile = OpenAssetOutputFile(assetFileName, ".wav");
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound output file: \"" << assetFileName << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound output file: \"{}\"\n", assetFileName);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -462,7 +465,7 @@ class AssetDumperSndBank::Internal
|
||||
const auto outFile = OpenAssetOutputFile(assetFileName, extension);
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound output file: \"" << assetFileName << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound output file: \"{}\"\n", assetFileName);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -499,33 +502,30 @@ class AssetDumperSndBank::Internal
|
||||
case SND_ASSET_FORMAT_WMA:
|
||||
case SND_ASSET_FORMAT_WIIUADPCM:
|
||||
case SND_ASSET_FORMAT_MPC:
|
||||
std::cerr << "Cannot dump sound (Unsupported sound format " << format << "): \"" << alias.assetFileName << "\"\n";
|
||||
std::cerr << std::format("Cannot dump sound (Unknown sound format {}): \"{}\"\n", static_cast<unsigned>(format), alias.assetFileName);
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(false);
|
||||
std::cerr << "Cannot dump sound (Unknown sound format " << format << "): \"" << alias.assetFileName << "\"\n";
|
||||
std::cerr << std::format("Cannot dump sound (Unknown sound format {}): \"{}\"\n", static_cast<unsigned>(format), alias.assetFileName);
|
||||
break;
|
||||
}
|
||||
|
||||
return format;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Could not find data for sound \"" << alias.assetFileName << "\"\n";
|
||||
}
|
||||
|
||||
std::cerr << std::format("Could not find data for sound \"{}\"\n", alias.assetFileName);
|
||||
return {};
|
||||
}
|
||||
|
||||
void DumpSndBankAliases(const SndBank* sndBank) const
|
||||
{
|
||||
std::unordered_map<unsigned int, std::string> dumpedAssets;
|
||||
std::unordered_map<unsigned int, std::optional<snd_asset_format>> dumpedAssets;
|
||||
|
||||
const auto outFile = OpenAssetOutputFile("soundbank/" + std::string(sndBank->name) + ".aliases", ".csv");
|
||||
const auto outFile = OpenAssetOutputFile(std::format("soundbank/{}.aliases", sndBank->name), ".csv");
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound alias output file: \"" << sndBank->name << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound alias output file: \"\"\n", sndBank->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -539,28 +539,23 @@ class AssetDumperSndBank::Internal
|
||||
for (auto j = 0; j < aliasList.count; j++)
|
||||
{
|
||||
const auto& alias = aliasList.head[j];
|
||||
std::string extension = "";
|
||||
std::optional<snd_asset_format> maybeFormat;
|
||||
|
||||
if (alias.assetId && alias.assetFileName)
|
||||
{
|
||||
if (dumpedAssets.find(alias.assetId) == dumpedAssets.end())
|
||||
const auto previouslyDeterminedFormat = dumpedAssets.find(alias.assetId);
|
||||
if (previouslyDeterminedFormat == dumpedAssets.end())
|
||||
{
|
||||
std::optional<snd_asset_format> format = DumpSndAlias(alias);
|
||||
|
||||
if (format.has_value())
|
||||
{
|
||||
extension = ConvertSndFormatToExtension(format.value());
|
||||
}
|
||||
|
||||
dumpedAssets[alias.assetId] = extension;
|
||||
maybeFormat = DumpSndAlias(alias);
|
||||
dumpedAssets[alias.assetId] = maybeFormat;
|
||||
}
|
||||
else
|
||||
{
|
||||
extension = dumpedAssets[alias.assetId];
|
||||
maybeFormat = previouslyDeterminedFormat->second;
|
||||
}
|
||||
}
|
||||
|
||||
WriteAliasToFile(csvStream, &alias, extension, sndBank);
|
||||
WriteAliasToFile(csvStream, &alias, maybeFormat, sndBank);
|
||||
csvStream.NextRow();
|
||||
}
|
||||
}
|
||||
@ -569,14 +564,12 @@ class AssetDumperSndBank::Internal
|
||||
void DumpSoundRadverb(const SndBank* sndBank) const
|
||||
{
|
||||
if (sndBank->radverbCount <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const auto outFile = OpenAssetOutputFile("soundbank/" + std::string(sndBank->name) + ".reverbs", ".csv");
|
||||
const auto outFile = OpenAssetOutputFile(std::format("soundbank/{}.reverbs", sndBank->name), ".csv");
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound reverb output file: \"" << sndBank->name << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound reverb output file: \"{}\"\n", sndBank->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -610,14 +603,12 @@ class AssetDumperSndBank::Internal
|
||||
void DumpSoundDucks(const SndBank* sndBank) const
|
||||
{
|
||||
if (sndBank->duckCount <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const auto outFile = OpenAssetOutputFile("soundbank/" + std::string(sndBank->name) + ".ducklist", ".csv");
|
||||
const auto outFile = OpenAssetOutputFile(std::format("soundbank/{}.ducklist", sndBank->name), ".csv");
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound reverb output file: \"" << sndBank->name << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound reverb output file: \"{}\"\n", sndBank->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -631,10 +622,10 @@ class AssetDumperSndBank::Internal
|
||||
csvStream.WriteColumn(duck.name);
|
||||
csvStream.NextRow();
|
||||
|
||||
const auto duckFile = OpenAssetOutputFile("soundbank/ducks/" + std::string(duck.name), ".duk");
|
||||
const auto duckFile = OpenAssetOutputFile(std::format("soundbank/ducks/{}", duck.name), ".duk");
|
||||
if (!outFile)
|
||||
{
|
||||
std::cerr << "Failed to open sound duck output file: \"" << duck.name << "\"\n";
|
||||
std::cerr << std::format("Failed to open sound duck output file: \"{}\"\n", duck.name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -661,12 +652,12 @@ class AssetDumperSndBank::Internal
|
||||
}
|
||||
|
||||
auto values = std::vector<nlohmann::json>{};
|
||||
for (auto i = 0u; i < 32u; i++)
|
||||
for (auto j = 0u; j < 32u; j++)
|
||||
{
|
||||
values.push_back({
|
||||
{"duckGroup", SOUND_DUCK_GROUPS[i]},
|
||||
{"attenuation", duck.attenuation[i] },
|
||||
{"filter", duck.filter[i] }
|
||||
{"duckGroup", SOUND_DUCK_GROUPS[j]},
|
||||
{"attenuation", duck.attenuation[j] },
|
||||
{"filter", duck.filter[j] }
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user