prime/include/MetroidPrime/ScriptObjects/CScriptStreamedAudio.hpp

40 lines
1.2 KiB
C++

#ifndef _CSCRIPTSTREAMEDAUDIO
#define _CSCRIPTSTREAMEDAUDIO
#include "MetroidPrime/CEntity.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 IsDSPFile(const rstl::string& fileName);
static int 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 // _CSCRIPTSTREAMEDAUDIO