mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 03:47:43 +00:00
New code style refactor
This commit is contained in:
@@ -7,98 +7,87 @@
|
||||
#include "GameGlobalObjects.hpp"
|
||||
#include "Audio/CStreamAudioManager.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace urde {
|
||||
|
||||
bool CScriptStreamedMusic::IsDSPFile(std::string_view fileName)
|
||||
{
|
||||
if (!CStringExtras::CompareCaseInsensitive(fileName, "sw"))
|
||||
return true;
|
||||
return CStringExtras::IndexOfSubstring(fileName, ".dsp") != -1;
|
||||
bool CScriptStreamedMusic::IsDSPFile(std::string_view fileName) {
|
||||
if (!CStringExtras::CompareCaseInsensitive(fileName, "sw"))
|
||||
return true;
|
||||
return CStringExtras::IndexOfSubstring(fileName, ".dsp") != -1;
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::StopStream(CStateManager& mgr)
|
||||
{
|
||||
CStreamAudioManager::Stop(!x46_loop, x34_fileName);
|
||||
void CScriptStreamedMusic::StopStream(CStateManager& mgr) { CStreamAudioManager::Stop(!x46_loop, x34_fileName); }
|
||||
|
||||
void CScriptStreamedMusic::StartStream(CStateManager& mgr) {
|
||||
CStreamAudioManager::Start(!x46_loop, x34_fileName, x50_volume / 127.f, x47_music, x48_fadeIn, x4c_fadeOut);
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::StartStream(CStateManager& mgr)
|
||||
{
|
||||
CStreamAudioManager::Start(!x46_loop, x34_fileName, x50_volume / 127.f,
|
||||
x47_music, x48_fadeIn, x4c_fadeOut);
|
||||
void CScriptStreamedMusic::TweakOverride(CStateManager& mgr) {
|
||||
const CWorld* wld = mgr.GetWorld();
|
||||
const CGameArea* area = wld->GetAreaAlways(x4_areaId);
|
||||
std::string twkName =
|
||||
hecl::Format("Area %8.8x MusicObject: %s", u32(area->GetAreaAssetId().Value()), x10_name.c_str());
|
||||
if (g_TweakManager->HasTweakValue(twkName)) {
|
||||
const CTweakValue::Audio& audio = g_TweakManager->GetTweakValue(twkName)->GetAudio();
|
||||
x34_fileName = audio.GetFileName();
|
||||
x45_fileIsDsp = IsDSPFile(x34_fileName);
|
||||
x48_fadeIn = audio.GetFadeIn();
|
||||
x4c_fadeOut = audio.GetFadeOut();
|
||||
x50_volume = audio.GetVolume() * 127.f;
|
||||
}
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::TweakOverride(CStateManager& mgr)
|
||||
{
|
||||
const CWorld* wld = mgr.GetWorld();
|
||||
const CGameArea* area = wld->GetAreaAlways(x4_areaId);
|
||||
std::string twkName = hecl::Format("Area %8.8x MusicObject: %s",
|
||||
u32(area->GetAreaAssetId().Value()), x10_name.c_str());
|
||||
if (g_TweakManager->HasTweakValue(twkName))
|
||||
{
|
||||
const CTweakValue::Audio& audio = g_TweakManager->GetTweakValue(twkName)->GetAudio();
|
||||
x34_fileName = audio.GetFileName();
|
||||
x45_fileIsDsp = IsDSPFile(x34_fileName);
|
||||
x48_fadeIn = audio.GetFadeIn();
|
||||
x4c_fadeOut = audio.GetFadeOut();
|
||||
x50_volume = audio.GetVolume() * 127.f;
|
||||
}
|
||||
CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId id, const CEntityInfo& info, std::string_view name, bool active,
|
||||
std::string_view fileName, bool noStopOnDeactivate, float fadeIn,
|
||||
float fadeOut, u32 volume, bool loop, bool music)
|
||||
: CEntity(id, info, active, name)
|
||||
, x34_fileName(fileName)
|
||||
, x44_noStopOnDeactivate(noStopOnDeactivate)
|
||||
, x45_fileIsDsp(IsDSPFile(fileName))
|
||||
, x46_loop(loop)
|
||||
, x47_music(music)
|
||||
, x48_fadeIn(fadeIn)
|
||||
, x4c_fadeOut(fadeOut)
|
||||
, x50_volume(volume) {
|
||||
size_t pos;
|
||||
while ((pos = x34_fileName.find("audio/")) != std::string::npos)
|
||||
x34_fileName.replace(pos, 6, "Audio/");
|
||||
}
|
||||
|
||||
CScriptStreamedMusic::CScriptStreamedMusic(TUniqueId id, const CEntityInfo& info, std::string_view name,
|
||||
bool active, std::string_view fileName, bool noStopOnDeactivate,
|
||||
float fadeIn, float fadeOut, u32 volume, bool loop, bool music)
|
||||
: CEntity(id, info, active, name), x34_fileName(fileName), x44_noStopOnDeactivate(noStopOnDeactivate),
|
||||
x45_fileIsDsp(IsDSPFile(fileName)), x46_loop(loop), x47_music(music),
|
||||
x48_fadeIn(fadeIn), x4c_fadeOut(fadeOut), x50_volume(volume)
|
||||
{
|
||||
size_t pos;
|
||||
while ((pos = x34_fileName.find("audio/")) != std::string::npos)
|
||||
x34_fileName.replace(pos, 6, "Audio/");
|
||||
void CScriptStreamedMusic::Stop(CStateManager& mgr) {
|
||||
if (x45_fileIsDsp)
|
||||
StopStream(mgr);
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::Stop(CStateManager& mgr)
|
||||
{
|
||||
void CScriptStreamedMusic::Play(CStateManager& mgr) {
|
||||
TweakOverride(mgr);
|
||||
if (x45_fileIsDsp)
|
||||
StartStream(mgr);
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
||||
|
||||
void CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) {
|
||||
CEntity::AcceptScriptMsg(msg, objId, stateMgr);
|
||||
switch (msg) {
|
||||
case EScriptObjectMessage::Play:
|
||||
if (x30_24_active)
|
||||
Play(stateMgr);
|
||||
break;
|
||||
case EScriptObjectMessage::Stop:
|
||||
if (x30_24_active)
|
||||
Stop(stateMgr);
|
||||
break;
|
||||
case EScriptObjectMessage::Increment:
|
||||
if (x45_fileIsDsp)
|
||||
StopStream(mgr);
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::Play(CStateManager& mgr)
|
||||
{
|
||||
TweakOverride(mgr);
|
||||
CStreamAudioManager::FadeBackIn(!x46_loop, x48_fadeIn);
|
||||
break;
|
||||
case EScriptObjectMessage::Decrement:
|
||||
if (x45_fileIsDsp)
|
||||
StartStream(mgr);
|
||||
CStreamAudioManager::TemporaryFadeOut(!x46_loop, x4c_fadeOut);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::Accept(IVisitor& visitor)
|
||||
{
|
||||
visitor.Visit(this);
|
||||
}
|
||||
|
||||
void CScriptStreamedMusic::AcceptScriptMsg(EScriptObjectMessage msg,
|
||||
TUniqueId objId, CStateManager& stateMgr)
|
||||
{
|
||||
CEntity::AcceptScriptMsg(msg, objId, stateMgr);
|
||||
switch (msg)
|
||||
{
|
||||
case EScriptObjectMessage::Play:
|
||||
if (x30_24_active)
|
||||
Play(stateMgr);
|
||||
break;
|
||||
case EScriptObjectMessage::Stop:
|
||||
if (x30_24_active)
|
||||
Stop(stateMgr);
|
||||
break;
|
||||
case EScriptObjectMessage::Increment:
|
||||
if (x45_fileIsDsp)
|
||||
CStreamAudioManager::FadeBackIn(!x46_loop, x48_fadeIn);
|
||||
break;
|
||||
case EScriptObjectMessage::Decrement:
|
||||
if (x45_fileIsDsp)
|
||||
CStreamAudioManager::TemporaryFadeOut(!x46_loop, x4c_fadeOut);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user