iw4x-client/iw4/Components/MusicalTalent.cpp

46 lines
1.1 KiB
C++
Raw Normal View History

2015-12-23 16:21:03 -05:00
#include "..\STDInclude.hpp"
namespace Components
{
std::map<std::string, const char*> MusicalTalent::SoundAliasList;
void MusicalTalent::Replace(std::string sound, const char* file)
{
MusicalTalent::SoundAliasList[Utils::StrToLower(sound)] = file;
}
Game::XAssetHeader MusicalTalent::ManipulateAliases(Game::XAssetType type, const char* filename)
{
2015-12-23 21:26:46 -05:00
Game::XAssetHeader header = { 0 };
2015-12-23 16:21:03 -05:00
if (MusicalTalent::SoundAliasList.find(Utils::StrToLower(filename)) != MusicalTalent::SoundAliasList.end())
{
2015-12-23 21:26:46 -05:00
Game::snd_alias_list_t* aliases = Game::DB_FindXAssetHeader(type, filename).aliasList;
2015-12-23 16:21:03 -05:00
if (aliases)
{
if (aliases->aliases->stream->type == 2)
{
aliases->aliases->stream->file = MusicalTalent::SoundAliasList[Utils::StrToLower(filename)];
}
2015-12-23 21:26:46 -05:00
header.aliasList = aliases;
2015-12-23 16:21:03 -05:00
}
}
2015-12-23 21:26:46 -05:00
return header;
2015-12-23 16:21:03 -05:00
}
MusicalTalent::MusicalTalent()
{
AssetHandler::On(Game::XAssetType::ASSET_TYPE_SOUND, MusicalTalent::ManipulateAliases);
MusicalTalent::Replace("music_mainmenu_mp", "hz_boneyard_intro_LR_1.mp3");
}
MusicalTalent::~MusicalTalent()
{
MusicalTalent::SoundAliasList.clear();
}
}