Files

42 lines
1.3 KiB
C++
Raw Permalink Normal View History

2026-03-08 00:37:24 -07:00
#ifndef _CSCRIPTSTREAMEDMUSIC
#define _CSCRIPTSTREAMEDMUSIC
2022-12-22 11:19:00 -03:00
#include "MetroidPrime/CEntity.hpp"
2026-03-08 00:37:24 -07:00
#include "Kyoto/Audio/CStreamAudioManager.hpp"
2022-12-22 11:19:00 -03:00
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);
2023-02-06 12:01:01 -05:00
void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override;
2022-12-22 11:19:00 -03:00
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;
2026-03-08 00:37:24 -07:00
static bool IsAudioTrackNameSoftware(const rstl::string& fileName);
static CStreamAudioManager::ESoftwareChannel IsOneShot(bool);
2022-12-22 11:19:00 -03:00
void StopStream(CStateManager& mgr);
void StartStream(CStateManager& mgr);
void TweakOverride(CStateManager& mgr);
2023-01-05 19:06:10 +02:00
void sub_8020c3f0(CStateManager& mgr);
void sub_8020c414(CStateManager& mgr);
2023-01-06 14:30:08 +02:00
void sub_8020be90();
2022-12-22 11:19:00 -03:00
};
2026-03-08 00:37:24 -07:00
#endif // _CSCRIPTSTREAMEDMUSIC