Files
2026-03-08 00:37:24 -07:00

42 lines
1.3 KiB
C++

#ifndef _CSCRIPTSTREAMEDMUSIC
#define _CSCRIPTSTREAMEDMUSIC
#include "MetroidPrime/CEntity.hpp"
#include "Kyoto/Audio/CStreamAudioManager.hpp"
class CScriptStreamedMusic : public CEntity {
public:
CScriptStreamedMusic(TUniqueId id, const CEntityInfo& info, const rstl::string& name, bool active,
const rstl::string& fileName, bool noStopOnDeactivate, float fadeIn,
float fadeOut, uint volume, bool loop, bool music);
~CScriptStreamedMusic() {}
void Stop(CStateManager& mgr);
void Play(CStateManager& mgr);
void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override;
private:
rstl::string x34_fileName;
bool x44_noStopOnDeactivate;
bool x45_fileIsDsp; // As opposed to .adp for DTK streaming
bool x46_loop;
bool x47_music;
float x48_fadeIn;
float x4c_fadeOut;
uint x50_volume;
static bool IsAudioTrackNameSoftware(const rstl::string& fileName);
static CStreamAudioManager::ESoftwareChannel IsOneShot(bool);
void StopStream(CStateManager& mgr);
void StartStream(CStateManager& mgr);
void TweakOverride(CStateManager& mgr);
void sub_8020c3f0(CStateManager& mgr);
void sub_8020c414(CStateManager& mgr);
void sub_8020be90();
};
#endif // _CSCRIPTSTREAMEDMUSIC