mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 15:01:33 -04:00
86a17bbfb7
* JAIZelInst OK * Clean up some default args
83 lines
3.0 KiB
C++
83 lines
3.0 KiB
C++
#ifndef JSTUDIO_JAUDIO_CONTROL_H
|
|
#define JSTUDIO_JAUDIO_CONTROL_H
|
|
|
|
#include "dolphin/gx/GX.h"
|
|
#include "JSystem/JStudio/JStudio/jstudio-object.h"
|
|
#include "JSystem/JStage/JSGSystem.h"
|
|
|
|
class JAIBasic;
|
|
class JAISound;
|
|
namespace JStudio_JAudio {
|
|
typedef JStudio::TObject* (*JStudioAudioCreateFunc)(const JStudio::stb::data::TParse_TBlock_object&, JAIBasic*);
|
|
typedef void (JAISound::*TVVOSoundSetFunc)(f32, u32); // e.g. JAISound::setDirectVolume, JAISound::setDirectPitch
|
|
|
|
struct TAdaptor_sound : public JStudio::TAdaptor_sound {
|
|
struct TVVOOn_BEGIN_FADE_IN_ : public JStudio::TVariableValue::TOutput {
|
|
void operator()(float, JStudio::TAdaptor*) const;
|
|
virtual ~TVVOOn_BEGIN_FADE_IN_() {}
|
|
};
|
|
|
|
struct TVVOOn_END_FADE_OUT_ : public JStudio::TVariableValue::TOutput {
|
|
void operator()(float, JStudio::TAdaptor*) const;
|
|
virtual ~TVVOOn_END_FADE_OUT_() {}
|
|
};
|
|
|
|
struct TVVOSetValue_ : public JStudio::TVariableValue::TOutput {
|
|
TVVOSetValue_(JStudio::TAdaptor_sound::TEVariableValue idx, TVVOSoundSetFunc func) {
|
|
mValueIndex = idx;
|
|
mSetFunc = func;
|
|
}
|
|
|
|
virtual void operator()(f32, JStudio::TAdaptor*) const;
|
|
virtual ~TVVOSetValue_() {}
|
|
|
|
/* 0x00 */ /* JStudio::TVariableValue::TOutput */
|
|
/* 0x04 */ int mValueIndex;
|
|
/* 0x08 */ TVVOSoundSetFunc mSetFunc;
|
|
}; // Size: 0x14
|
|
|
|
static TVVOOn_BEGIN_FADE_IN_ soVVOOn_BEGIN_FADE_IN_;
|
|
static TVVOOn_END_FADE_OUT_ soVVOOn_END_FADE_OUT_;
|
|
static TVVOSetValue_ saoVVOSetValue_[];
|
|
|
|
TAdaptor_sound(JAIBasic*);
|
|
|
|
virtual ~TAdaptor_sound(); // _08
|
|
virtual void adaptor_do_prepare(const JStudio::TObject*); // _0C
|
|
virtual void adaptor_do_update(const JStudio::TObject*, u32); // _18
|
|
virtual void adaptor_do_SOUND(JStudio::data::TEOperationData, const void*, u32); // _20
|
|
virtual void adaptor_do_LOCATED(JStudio::data::TEOperationData, const void*, u32); // _24
|
|
|
|
void beginSound_fadeIn_(u32);
|
|
void endSound_fadeOut_(u32);
|
|
|
|
/* 0x0E8 */ JAIBasic* mpBasic;
|
|
/* 0x0EC */ JAISound* mpSound;
|
|
/* 0x0F0 */ u32 mSoundID;
|
|
/* 0x0F4 */ Vec* mPosition;
|
|
/* 0x0F8 */ Vec _F8;
|
|
|
|
// u32 _E4;
|
|
// Vec* _E8; // Vector3f* in ghidra, should be Vec* or JGeometry::TVec3* surely
|
|
// Vec _EC; // same as above
|
|
// JStage::TSystem* mSystem;
|
|
// JStage::TObject* _FC;
|
|
// u32 _100;
|
|
// u8 _104;
|
|
}; // Size: 0x104
|
|
|
|
struct TCreateObject : public JStudio::TCreateObject {
|
|
TCreateObject(JAIBasic* jai)
|
|
{
|
|
mSound = jai;
|
|
}
|
|
virtual ~TCreateObject(); // _08
|
|
virtual bool create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data); // _0C
|
|
|
|
/* 0x00 */ /* JStudio::TCreateObject */
|
|
/* 0x0C */ JAIBasic* mSound;
|
|
};
|
|
} // namespace JStudio_JAudio
|
|
|
|
#endif /* JSTUDIO_JAUDIO_CONTROL_H */
|