Files
2025-05-31 20:09:14 -04:00

71 lines
1.9 KiB
C++

#ifndef JAIANIMATION_H
#define JAIANIMATION_H
#include "dolphin/types.h"
struct Vec;
class JAISound;
class JAIBasic;
namespace JAInter {
class Actor;
};
// BAS sound entry
struct JAIAnimeFrameSoundData {
/* 0x00 */ u32 mSoundID;
/* 0x04 */ f32 mStartFrame;
/* 0x08 */ f32 mEndFrame;
/* 0x0C */ f32 mPitch;
/* 0x10 */ u32 mPlayFlags;
/* 0x14 */ u8 mVolume;
/* 0x15 */ s8 mPitchFactor;
/* 0x16 */ u8 mLoopCount;
/* 0x17 */ u8 mPanning;
/* 0x18 */ s8 mVolumeFactor;
/* 0x19 */ u8 field_0x19[0x20 - 0x19]; // Padding
}; // Size: 0x20
// BAS header
struct JAIAnimeSoundData {
/* 0x00 */ u16 datas; // Entry count
/* 0x02 */ u16 field_0x02;
/* 0x04 */ void* field_0x04;
/* 0x08 */ JAIAnimeFrameSoundData mAfsData[];
};
struct JAIAnimeSound__Slot {
/* 0x0 */ u8 mbIsPlaying;
/* 0x4 */ JAISound* mpSound;
/* 0x8 */ JAIAnimeFrameSoundData* mpAfsData;
};
class JAIAnimeSound {
public:
/* 0x00 */ JAIAnimeSound__Slot mSlots[8];
/* 0x60 */ u32 field_0x60;
/* 0x64 */ u32 field_0x64;
/* 0x68 */ u32 field_0x68;
/* 0x6C */ u32 field_0x6c;
/* 0x70 */ void* field_0x70[2];
/* 0x78 */ u32 mDataCounterInc;
/* 0x7C */ int mDataCounterLimit;
/* 0x80 */ u32 dataCounter;
/* 0x84 */ u32 mLoopCount;
/* 0x88 */ f32 mCurrentTime;
/* 0x8C */ u8 field_0x8c[0x90 - 0x8C];
/* 0x90 */ JAIAnimeSoundData* mpAsData;
/* 0x94 */ /* vtable */
public:
JAIAnimeSound();
void initActorAnimSound(void*, u32, f32);
void setAnimSoundVec(JAIBasic*, Vec*, f32, f32, u32, u8);
void setAnimSoundActor(JAIBasic*, JAInter::Actor*, f32, f32, u8);
void playActorAnimSound(JAIBasic*, JAInter::Actor*, f32, u8);
virtual void startAnimSound(void*, u32, JAISound**, JAInter::Actor*, u8);
virtual void setSpeedModifySound(JAISound*, JAIAnimeFrameSoundData*, f32);
void stop();
}; // Size: 0x98
#endif /* JAIANIMATION_H */