mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-29 16:44:40 -04:00
119 lines
3.6 KiB
C++
119 lines
3.6 KiB
C++
#ifndef JAIBASIC_H
|
||
#define JAIBASIC_H
|
||
|
||
#include "JSystem/JUtility/JUTAssert.h"
|
||
#include "JSystem/JAudio/JAIBankWave.h"
|
||
#include "JSystem/JAudio/JAISound.h"
|
||
#include "dolphin/mtx/mtx.h"
|
||
#include "dolphin/mtx/vec.h"
|
||
|
||
class JKRSolidHeap;
|
||
|
||
namespace JAInter {
|
||
class Actor;
|
||
class Camera;
|
||
}
|
||
|
||
namespace JASystem {
|
||
class TTrack;
|
||
}
|
||
|
||
class JAIBasic {
|
||
public:
|
||
JAIBasic();
|
||
virtual JAISound* makeSound(u32);
|
||
virtual BOOL getMapInfoFxline(u32);
|
||
virtual BOOL getMapInfoGround(u32);
|
||
virtual f32 getMapInfoFxParameter(u32);
|
||
virtual void setSeExtParameter(JAISound*);
|
||
virtual void setRegisterTrackCallback();
|
||
virtual void initStream();
|
||
void initDriver(JKRSolidHeap*, u32, u8);
|
||
void initInterface(u8);
|
||
void initInterfaceMain();
|
||
void initHeap();
|
||
void initArchive();
|
||
void initResourcePath();
|
||
void setCameraInfo(Vec*, Vec*, MtxP, u32);
|
||
void initAudioThread(JKRSolidHeap*, u32, u8);
|
||
void initCamera();
|
||
BOOL initReadFile();
|
||
void processFrameWork();
|
||
void startSoundVec(u32, JAISound**, Vec*, u32, u32, u8);
|
||
void startSoundActor(u32, JAISound**, JAInter::Actor*, u32, u8);
|
||
void startSoundDirectID(u32, JAISound**, JAInter::Actor*, u32, u8);
|
||
void startSoundBasic(u32, JAISound**, JAInter::Actor*, u32, u8, void*);
|
||
void stopSoundHandle(JAISound*, u32);
|
||
void stopPlayingCategoryObjectSe(u8, void*);
|
||
void stopAllSe(u8, void*);
|
||
void stopActorSoundOneBuffer(void*, JAISound*);
|
||
void stopIDSoundOneBuffer(u32, JAISound*);
|
||
void stopIDActorSoundOneBuffer(u32, void*, JAISound*);
|
||
void stopAllSound(void*);
|
||
void stopAllSound(u32);
|
||
void stopAllSound(u32, void*);
|
||
void deleteObject(void*);
|
||
u16 getSoundOffsetNumberFromID(u32);
|
||
void setSeCategoryVolume(u8, u8);
|
||
static u16 setParameterSeqSync(JASystem::TTrack*, u16);
|
||
bool allocStreamBuffer(void*, s32);
|
||
bool deallocStreamBuffer();
|
||
|
||
/* 0x04 */ JAInter::Camera* mAudioCamera;
|
||
/* 0x08 */ JKRSolidHeap* field_0x8;
|
||
/* 0x0C */ u8 initLoadFileSw;
|
||
/* 0x0D */ u8 field_0xd;
|
||
/* 0x0E */ struct {
|
||
u8 flag1 : 1;
|
||
u8 flag2 : 1;
|
||
u8 flag3 : 1;
|
||
u8 flag4 : 1;
|
||
u8 flag5 : 1;
|
||
u8 flag6 : 1;
|
||
u8 flag7 : 1;
|
||
u8 flag8 : 1;
|
||
} field_0xe;
|
||
/* 0x10 */ int field_0x10;
|
||
/* 0x14 */ int field_0x14;
|
||
/* 0x18 */ void* field_0x18;
|
||
/* 0x1C */ u8** field_0x1c;
|
||
|
||
static JAIBasic* getInterface() { return msBasic; }
|
||
static JKRSolidHeap* getCurrentJAIHeap() {
|
||
JUT_ASSERT_MSG(148, msCurrentHeap, "JAIBasicのカレントヒープがありません(mCurrentHeap==NULL)\n");
|
||
return msCurrentHeap;
|
||
}
|
||
|
||
bool checkAllWaveLoadStatus() {
|
||
return JAInter::BankWave::checkAllWaveLoadStatus();
|
||
}
|
||
|
||
// this might be wrong, it matches but the size doesn't seem to match the debug map
|
||
bool checkEnablePrepare(u32 flags) { return !(flags & 0xc0000000) && !(flags & 0x00000c00); }
|
||
|
||
void prepareSoundVec(u32 flags, JAISound** pSound, Vec* pos, u32 r7, u32 r8, u8 r9) {
|
||
startSoundVec(flags, pSound, pos, r7, r8, r9);
|
||
if (*pSound) {
|
||
(*pSound)->setPrepareFlag(1);
|
||
}
|
||
}
|
||
|
||
// TODO
|
||
void addInitOnCodeSeScene(u32, u32) {}
|
||
void getAudioCamera() {}
|
||
void getInitDataInfo() {}
|
||
void getInitOnCodeSeScene() {}
|
||
void getSceneSetFlag() {}
|
||
void getSeSoundHandle() {}
|
||
void getWaveLoadStatus(s32) {}
|
||
void initAudio(JKRSolidHeap*, u32, u8) {}
|
||
void loadSceneWave(s32, s32) {}
|
||
void setInitDataInfo(char*) {}
|
||
void setInitOnCodeSeScene(u32*) {}
|
||
|
||
static JAIBasic* msBasic;
|
||
static JKRSolidHeap* msCurrentHeap;
|
||
};
|
||
|
||
#endif /* JAIBASIC_H */
|