diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-27 21:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 21:19:33 -0800 |
| commit | 6f96e665186c87f15acb6f5cb8d27665afee3130 (patch) | |
| tree | 3ea70fe7d635a0f55aae44b1a386814766a46597 /include/Z2AudioLib | |
| parent | 767caeecc3e374779cccc9960b6546b74e7a9e50 (diff) | |
various Z2Audio / JAudio debug cleanup (#2876)
* some JAudio work
* audio cleanup checkpoint
* checkpoint more audio cleanup
* fix symbols
* more z2 cleanup
* fix regression
* fix build
* some fixes
Diffstat (limited to 'include/Z2AudioLib')
| -rw-r--r-- | include/Z2AudioLib/Z2Audience.h | 127 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2AudioArcLoader.h | 6 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2AudioCS.h | 4 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2AudioMgr.h | 14 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2Calc.h | 45 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2Creature.h | 72 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2DebugSys.h | 11 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2EnvSeMgr.h | 70 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2FxLineMgr.h | 10 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2LinkMgr.h | 85 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2Param.h | 36 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SceneMgr.h | 197 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SeMgr.h | 74 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SeqMgr.h | 145 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundHandles.h | 23 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundInfo.h | 31 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundMgr.h | 35 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundObjMgr.h | 35 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundObject.h | 109 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundStarter.h | 13 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2StatusMgr.h | 12 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2WolfHowlMgr.h | 61 |
22 files changed, 648 insertions, 567 deletions
diff --git a/include/Z2AudioLib/Z2Audience.h b/include/Z2AudioLib/Z2Audience.h index ca8099c495..9f1ff17d44 100644 --- a/include/Z2AudioLib/Z2Audience.h +++ b/include/Z2AudioLib/Z2Audience.h @@ -12,36 +12,39 @@ struct Z2Audible; struct Z2AudibleAbsPos { - /* 802BBCDC */ void calc(JGeometry::TVec3<f32> const&); - /* 802BBD18 */ void init(JGeometry::TVec3<f32>*, JGeometry::TVec3<f32> const&, - JGeometry::TVec3<f32> const*); + /* 802BBCDC */ void calc(const JGeometry::TVec3<f32>& pos); + /* 802BBD18 */ void init(JGeometry::TVec3<f32>*, const JGeometry::TVec3<f32>&, + const JGeometry::TVec3<f32>*); /* 0x00 */ JGeometry::TVec3<f32> field_0x0; - /* 0x0C */ JGeometry::TVec3<f32> field_0xc; + /* 0x0C */ JGeometry::TVec3<f32> velocity_; }; struct Z2AudioCamera { /* 802BC758 */ Z2AudioCamera(); /* 802BC788 */ void init(); - /* 802BC8AC */ void setCameraState(f32 (*)[4], Vec&, Vec&, f32, f32, bool, bool); - /* 802BC7DC */ void setCameraState(f32 const (*)[4], Vec&, bool); - /* 802BCBEC */ void convertAbsToRel(Z2Audible*, int); - /* 802BCC7C */ bool convertAbsToRel(Vec&, Vec*) const; + /* 802BC8AC */ void setCameraState(f32 (*)[4], Vec& pos, Vec&, f32, f32, bool, bool); + /* 802BC7DC */ void setCameraState(f32 const (*)[4], Vec& pos, bool); + /* 802BCBEC */ void convertAbsToRel(Z2Audible* audible, int channelNum); + /* 802BCC7C */ bool convertAbsToRel(Vec& src, Vec* dst) const; /* 802BCCC0 */ bool isInSight(Vec&) const; - JGeometry::TVec3<f32>* getPos() { return &mPos; } + + const JGeometry::TVec3<f32>* getPos() const { return &mPos; } f32 getVolCenterZ() const { return mVolCenterZ; } - void setMainCamera() { mSetMainCamera = true; } - void setTargetVolume(f32 volume) { - if (volume < 0.0f) { - volume = 0.0f; + void setMainCamera(bool param_0) { mSetMainCamera = param_0; } + + void setTargetVolume(f32 vol) { + JUT_ASSERT(281, vol <= 1.f); + if (vol < 0.0f) { + vol = 0.0f; } - mTargetVolume = volume; + mTargetVolume = vol; } + f32 getDolbyCenterZ() const { return mDolbyCenterZ; } f32 getFovySin() const { return mFovySin; } const JGeometry::TVec3<f32>* getVel() const { return &mVel; } - /* 0x00 */ JGeometry::TPosition3f32 field_0x0; /* 0x30 */ JGeometry::TVec3<f32> mVel; /* 0x3C */ JGeometry::TVec3<f32> mPos; @@ -58,15 +61,15 @@ struct Z2AudioCamera { struct Z2SpotMic { /* 802BCD28 */ Z2SpotMic(); - /* 802BCDA8 */ void clearMicState(int); - /* 802BCDE8 */ void calcVolumeFactor(int); - /* 802BCE14 */ void setMicState(Z2AudioCamera*, int); - /* 802BCF5C */ f32 calcMicDist(Z2Audible*); + /* 802BCDA8 */ void clearMicState(int camID); + /* 802BCDE8 */ void calcVolumeFactor(int camID); + /* 802BCE14 */ void setMicState(Z2AudioCamera* camera, int camID); + /* 802BCF5C */ f32 calcMicDist(Z2Audible* audible); /* 802BCFE4 */ u32 calcMicPriority(f32); - /* 802BD03C */ f32 calcMicVolume(f32, int, f32); + /* 802BD03C */ f32 calcMicVolume(f32, int camID, f32); - void setPosPtr(Vec* i_posPtr) { mPosPtr = i_posPtr; } - bool isOn() const { return mMicOn; } + void setPosPtr(Vec* posPtr) { mPosPtr = posPtr; } + bool isOn() { return mMicOn; } /* 0x00 */ f32 field_0x0; /* 0x04 */ f32 field_0x4; @@ -79,7 +82,7 @@ struct Z2SpotMic { /* 0x20 */ f32 field_0x20[1]; /* 0x24 */ bool mIgnoreIfOut; /* 0x25 */ bool mMicOn; - /* 0x26 */ u8 field_0x26[1]; + /* 0x26 */ bool field_0x26[1]; }; // Size: 0x28 struct Z2Audience3DSetting { @@ -152,14 +155,14 @@ struct Z2AudibleRelPos { struct Z2AudibleChannel { /* 802BBE74 */ Z2AudibleChannel(); void init() { - field_0x0.init(); + mParams.init(); field_0x28 = -1.0f; mPan = 0.5f; mDolby = 0.0f; field_0x34 = 1.0f; } - /* 0x00 */ JASSoundParams field_0x0; + /* 0x00 */ JASSoundParams mParams; /* 0x14 */ Z2AudibleRelPos field_0x14; /* 0x28 */ f32 field_0x28; /* 0x2c */ f32 mPan; @@ -168,65 +171,71 @@ struct Z2AudibleChannel { }; struct Z2Audible : public JAIAudible, public JASPoolAllocObject<Z2Audible> { - /* 802BBD94 */ Z2Audible(JGeometry::TVec3<f32> const&, JGeometry::TVec3<f32> const*, u32, bool); + /* 802BBD94 */ Z2Audible(const JGeometry::TVec3<f32>& pos, const JGeometry::TVec3<f32>*, u32 channel, bool); /* 802BBE98 */ void calc(); - /* 802BBED0 */ JASSoundParams* getOuterParams(int); - /* 802BBEE4 */ void setOuterParams(JASSoundParams const&, JASSoundParams const&, int); - /* 802BC204 */ Z2AudibleChannel* getChannel(int); + /* 802BBED0 */ JASSoundParams* getOuterParams(int index); + /* 802BBEE4 */ void setOuterParams(const JASSoundParams& outParams, const JASSoundParams& inParams, int index); + /* 802BC204 */ Z2AudibleChannel* getChannel(int index); /* 802BC218 */ u32 getDistVolBit(); /* 802BD510 */ ~Z2Audible(); + bool isDoppler() { - return ((*(u8*)&field_0x10.field_0x0) >> 4) & 0xf; + return ((*(u8*)&mParam.field_0x0) >> 4) & 0xf; } - JAUAudibleParam* getAudibleParam() { return &field_0x10; } - const JAUAudibleParam* getAudibleParam() const { return &field_0x10; } - void setAudibleParam(JAUAudibleParam param) { field_0x10 = param; } - const JGeometry::TVec3<f32>* getVel() const { return &field_0x14.field_0xc; } - - /* 0x10 */ JAUAudibleParam field_0x10; - /* 0x14 */ Z2AudibleAbsPos field_0x14; - /* 0x2C */ Z2AudibleChannel field_0x2c[1]; + + const JGeometry::TVec3<f32>& getPos() const { return mPos; } + + JAUAudibleParam* getAudibleParam() { return &mParam; } + const JAUAudibleParam* getAudibleParam() const { return &mParam; } + void setAudibleParam(JAUAudibleParam param) { mParam.field_0x0.raw = param.field_0x0.raw; } + const JGeometry::TVec3<f32>* getVel() const { return &mAbsPos.velocity_; } + + /* 0x10 */ JAUAudibleParam mParam; + /* 0x14 */ Z2AudibleAbsPos mAbsPos; + /* 0x2C */ Z2AudibleChannel mChannel[1]; /* 0x64 */ f32 field_0x64[1]; }; struct Z2Audience : public JAIAudience, public JASGlobalInstance<Z2Audience> { /* 802BD130 */ Z2Audience(); - /* 802BD2DC */ void setAudioCamera(f32 (*)[4], Vec&, Vec&, f32, f32, bool, int, bool); + /* 802BD2DC */ void setAudioCamera(f32 (*)[4], Vec&, Vec&, f32, f32, bool, int camID, bool); /* 802BD704 */ f32 calcOffMicSound(f32); - /* 802BD90C */ void setTargetVolume(f32, int); - /* 802BD92C */ bool convertAbsToRel(Vec&, Vec*, int); - /* 802BD95C */ f32 calcRelPosVolume(Vec const&, f32, int); - /* 802BDA44 */ f32 calcRelPosPan(Vec const&, int); - /* 802BDB44 */ f32 calcRelPosDolby(Vec const&, int); - /* 802BDBDC */ f32 calcVolume_(f32, int) const; - /* 802BDC44 */ u32 calcDeltaPriority_(f32, int, bool) const; - /* 802BDCB0 */ f32 calcPitchDoppler_(JGeometry::TVec3<f32> const&, - JGeometry::TVec3<f32> const&, - JGeometry::TVec3<f32> const&, f32) const; - /* 802BDD00 */ f32 calcFxMix_(f32, int) const; - /* 802BDD48 */ f32 calcPitch_(Z2AudibleChannel*, Z2Audible const*, Z2AudioCamera const*) const; + /* 802BD90C */ void setTargetVolume(f32 volume, int index); + /* 802BD92C */ bool convertAbsToRel(Vec& src, Vec* dst, int camID); + /* 802BD95C */ f32 calcRelPosVolume(const Vec&, f32, int camID); + /* 802BDA44 */ f32 calcRelPosPan(const Vec&, int camID); + /* 802BDB44 */ f32 calcRelPosDolby(const Vec&, int camID); + /* 802BDBDC */ f32 calcVolume_(f32, int distVolBit) const; + /* 802BDC44 */ u32 calcDeltaPriority_(f32, int distVolBit, bool) const; + /* 802BDCB0 */ f32 calcPitchDoppler_(const JGeometry::TVec3<f32>&, + const JGeometry::TVec3<f32>&, + const JGeometry::TVec3<f32>&, f32) const; + /* 802BDD00 */ f32 calcFxMix_(f32, int distVolBit) const; + /* 802BDD48 */ f32 calcPitch_(Z2AudibleChannel* channel, const Z2Audible* audible, const Z2AudioCamera* camera) const; /* 802BD1FC */ virtual ~Z2Audience(); - /* 802BD338 */ virtual JAIAudible* newAudible(JGeometry::TVec3<f32> const&, JAISoundID, - JGeometry::TVec3<f32> const*, u32); + /* 802BD338 */ virtual JAIAudible* newAudible(const JGeometry::TVec3<f32>& pos, JAISoundID soundID, + const JGeometry::TVec3<f32>*, u32); /* 802BDED4 */ virtual int getMaxChannels(); - /* 802BD4D4 */ virtual void deleteAudible(JAIAudible*); - /* 802BD5B8 */ virtual u32 calcPriority(JAIAudible*); - /* 802BD71C */ virtual void mixChannelOut(JASSoundParams const&, JAIAudible*, int); + /* 802BD4D4 */ virtual void deleteAudible(JAIAudible* audible); + /* 802BD5B8 */ virtual u32 calcPriority(JAIAudible* audible); + /* 802BD71C */ virtual void mixChannelOut(const JASSoundParams& outParams, JAIAudible* audible, int channelNum); Z2SpotMic* getLinkMic() { return mLinkMic; } - JGeometry::TVec3<f32> getAudioCamPos(int idx) { - return *mAudioCamera[idx].getPos(); + JGeometry::TVec3<f32> getAudioCamPos(int camID) { + return *mAudioCamera[camID].getPos(); } Z2Audience3DSetting* getSetting() { return &mSetting; } + const Z2AudioCamera* getAudioCamera(int camID) const { return &mAudioCamera[camID]; } + /* 0x004 */ f32 field_0x4; /* 0x008 */ u8 field_0x8; /* 0x00C */ Z2Audience3DSetting mSetting; /* 0x134 */ Z2AudioCamera mAudioCamera[1]; /* 0x1A8 */ Z2SpotMic mSpotMic[1]; /* 0x1D0 */ Z2SpotMic* mLinkMic; - /* 0x1D4 */ s32 mMaxChannels; + /* 0x1D4 */ s32 mNumPlayers; /* 0x1D8 */ u8 field_0x1d8[4]; /* 0x1DC */ bool mUsingOffMicVol; }; // Size: 0x1E0 diff --git a/include/Z2AudioLib/Z2AudioArcLoader.h b/include/Z2AudioLib/Z2AudioArcLoader.h index 031f191412..af8f87fe5d 100644 --- a/include/Z2AudioLib/Z2AudioArcLoader.h +++ b/include/Z2AudioLib/Z2AudioArcLoader.h @@ -8,9 +8,9 @@ public: Z2AudioArcLoader(JAUSection*); virtual ~Z2AudioArcLoader() {} - virtual bool readCommandMore(u32); - void readBFCA(const void*); - virtual void readBSTN(const void*, u32); + virtual bool readCommandMore(u32 command); + void readBFCA(const void* addr); + virtual void readBSTN(const void* addr, u32); }; #endif /* Z2AUDIOARCLOADER_H */ diff --git a/include/Z2AudioLib/Z2AudioCS.h b/include/Z2AudioLib/Z2AudioCS.h index 9cc975c361..2f9f79fe05 100644 --- a/include/Z2AudioLib/Z2AudioCS.h +++ b/include/Z2AudioLib/Z2AudioCS.h @@ -8,14 +8,14 @@ class JKRArchive; class Z2AudioCS { public: - void newSpkSoundMemPool(); + static void newSpkSoundMemPool(); int init(JKRHeap*, JKRArchive*, s32, s32); void update(); static void connect(s32); static void disconnect(s32); static void extensionProcess(s32, s32); u32 getHandleSoundID(s32); - void start(s32, s32); + static void start(s32, s32); static int startLevel(s32, s32); }; diff --git a/include/Z2AudioLib/Z2AudioMgr.h b/include/Z2AudioLib/Z2AudioMgr.h index 82f814ebfe..7f47400af2 100644 --- a/include/Z2AudioLib/Z2AudioMgr.h +++ b/include/Z2AudioLib/Z2AudioMgr.h @@ -12,6 +12,7 @@ #include "Z2AudioLib/Z2SoundObjMgr.h" #include "Z2AudioLib/Z2SpeechMgr2.h" #include "Z2AudioLib/Z2StatusMgr.h" +#include "Z2AudioLib/Z2DebugSys.h" #include "global.h" class JKRArchive; @@ -21,23 +22,21 @@ class Z2AudioMgr : public Z2SeMgr, public Z2SeqMgr, public Z2SceneMgr, public Z2 public: Z2AudioMgr(); ~Z2AudioMgr() {} - void init(JKRSolidHeap*, u32, void*, JKRArchive*); - void setOutputMode(u32); + void init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive* seqArc); + void setOutputMode(u32 mode); void zeldaGFrameWork(); void gframeProcess(); void resetProcess(u32, bool); void resetRecover(); bool hasReset() const; + bool startLevelSound(JAISoundID soundID, JAISoundHandle* handle, const JGeometry::TVec3<f32>* posPtr); bool isResetting() { return mResettingFlag; } static Z2AudioMgr* getInterface() { return mAudioMgrPtr; } static Z2AudioMgr* mAudioMgrPtr; -#if DEBUG - u8 padding[0xC]; -#endif - /* 0x0514 */ virtual bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*); + /* 0x0514 */ virtual bool startSound(JAISoundID soundID, JAISoundHandle* handle, const JGeometry::TVec3<f32>* posPtr); /* 0x0518 */ bool mResettingFlag; /* 0x0519 */ bool field_0x519; /* 0x051C */ JASAudioReseter mAudioReseter; @@ -47,6 +46,9 @@ public: /* 0x0D4C */ Z2Audience mAudience; /* 0x0F2C */ Z2SpeechMgr2 mSpeechMgr; /* 0x1370 */ Z2FxLineMgr mFxLineMgr; + #if DEBUG + /* 0x13BC */ Z2DebugSys mDebugSys; + #endif }; // Size: 0x138C #if VERSION != VERSION_SHIELD_DEBUG diff --git a/include/Z2AudioLib/Z2Calc.h b/include/Z2AudioLib/Z2Calc.h index efef286d8a..883262ab40 100644 --- a/include/Z2AudioLib/Z2Calc.h +++ b/include/Z2AudioLib/Z2Calc.h @@ -14,35 +14,36 @@ static const Vec cNullVec = {0.0f, 0.0f, 0.0f}; #endif enum CurveSign { - CURVE_SIGN_0 = 0, - CURVE_SIGN_1 = 1, - CURVE_SIGN_2 = 2, + CURVE_NEGATIVE = 0, + CURVE_POSITIVE = 1, + CURVE_LINEAR = 2, }; struct FNoise1f { - FNoise1f(float param_0 = 0.1f, float param_1 = 0.0f, float param_2 = 0.01f) { - unk0 = param_0; - unk4 = param_0; - unk8 = param_2; - unk12 = param_1; + FNoise1f(f32 value = 0.1f, f32 threshold = 0.0f, f32 step = 0.01f) { + value_ = value; + targetValue_ = value; + step_ = step; + threshold_ = threshold; } - void setParam(float, float, float); - float tau(float); - float calcNoise1f(); - - float unk0; - float unk4; - float unk8; - float unk12; + + void setParam(f32 value, f32 threshold, f32 step); + f32 tau(f32 input); + f32 calcNoise1f(); + + f32 value_; + f32 targetValue_; + f32 step_; + f32 threshold_; }; -float linearTransform(float, float, float, float, float, bool); -float getParamByExp(float, float, float, float, float, float, Z2Calc::CurveSign); -float getRandom(float, float, float); -float getRandom_0_1(void); +f32 linearTransform(f32 inValue, f32 inMin, f32 inMax, f32 outMin, f32 outMax, bool noClamp); +f32 getParamByExp(f32 value, f32 inMin, f32 inMax, f32 exponent, f32 outMin, f32 outMax, CurveSign curveSign); +f32 getRandom(f32 magnitude, f32 exponent, f32 bias); +f32 getRandom_0_1(); -extern f32 cEqualCSlope; -extern f32 cEqualPSlope; +extern const f32 cEqualCSlope; +extern const f32 cEqualPSlope; } // namespace Z2Calc #endif /* Z2CALC_H */ diff --git a/include/Z2AudioLib/Z2Creature.h b/include/Z2AudioLib/Z2Creature.h index d71a4e3e98..0d0b9a2f23 100644 --- a/include/Z2AudioLib/Z2Creature.h +++ b/include/Z2AudioLib/Z2Creature.h @@ -9,22 +9,22 @@ public: Z2Creature(); ~Z2Creature(); - void init(Vec*, Vec*, u8, u8); - void init(Vec*, Vec*, Vec*, u8, u8, u8); - void initAnime(void*, bool, f32, f32); + void init(Vec* animePosPtr, Vec* simplePosPtr, u8 animeHandleNum, u8 simpleHandleNum); + void init(Vec* animePosPtr, Vec* simplePosPtr, Vec* simple2PosPtr, u8 animeHandleNum, u8 simpleHandleNum, u8 simple2HandleNum); + void initAnime(void* animation, bool, f32 startFrame, f32); void updateAnime(f32, f32); void stopAnime(); virtual void deleteObject(); - virtual void setSoundStarter(Z2SoundStarter*); - virtual void framework(u32, s8); - virtual Z2SoundHandlePool* startCreatureSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID, s8); - virtual Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID, s8); - virtual Z2SoundHandlePool* startCreatureExtraSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startCreatureExtraSoundLevel(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startCollisionSE(u32, u32); + virtual void setSoundStarter(Z2SoundStarter* soundStarter); + virtual void framework(u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCreatureSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID soundID, s8 reverb); + virtual Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID soundID, s8 reverb); + virtual Z2SoundHandlePool* startCreatureExtraSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCreatureExtraSoundLevel(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCollisionSE(u32 hitID, u32 mapinfo); Vec* getCurrentPos() const { return mpPos; } @@ -38,18 +38,18 @@ class Z2CreatureEnemy : public Z2Creature, public JSULink<Z2CreatureEnemy> { public: /* 802C0F64 */ Z2CreatureEnemy(); /* 802C0FC4 */ virtual void deleteObject(); - /* 802C1094 */ void init(Vec*, Vec*, u8, u8); + /* 802C1094 */ void init(Vec* animePosPtr, Vec* simplePosPtr, u8 animeHandleNum, u8 simpleHandleNum); /* 802C10B4 */ void init(Vec*, Vec*, Vec*, u8, u8, u8); - /* 802C10D4 */ virtual void framework(u32, s8); - /* 802C110C */ virtual Z2SoundHandlePool* startCreatureSound(JAISoundID, u32, s8); - /* 802C136C */ virtual Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID, u32, s8); - /* 802C168C */ virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID, s8); - /* 802C1948 */ virtual Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID, s8); - /* 802C199C */ virtual Z2SoundHandlePool* startCreatureExtraSound(JAISoundID, u32, s8); - /* 802C19D8 */ virtual Z2SoundHandlePool* startCreatureExtraSoundLevel(JAISoundID, u32, s8); - /* 802C1A14 */ virtual Z2SoundHandlePool* startCollisionSE(u32, u32); - /* 802C1B7C */ void setLinkSearch(bool); - /* 802C1B90 */ void setEnemyName(char const*); + /* 802C10D4 */ virtual void framework(u32 mapinfo, s8 reverb); + /* 802C110C */ virtual Z2SoundHandlePool* startCreatureSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + /* 802C136C */ virtual Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID soundID, u32 mapinfo, s8 reverb); + /* 802C168C */ virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID soundID, s8 reverb); + /* 802C1948 */ virtual Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID soundID, s8 reverb); + /* 802C199C */ virtual Z2SoundHandlePool* startCreatureExtraSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + /* 802C19D8 */ virtual Z2SoundHandlePool* startCreatureExtraSoundLevel(JAISoundID soundID, u32 mapinfo, s8 reverb); + /* 802C1A14 */ virtual Z2SoundHandlePool* startCollisionSE(u32 hitID, u32 mapinfo); + /* 802C1B7C */ void setLinkSearch(bool isLinkSearch); + /* 802C1B90 */ void setEnemyName(const char* enemyName); /* 0xA0 */ u8 mEnemyID; /* 0xA1 */ s8 field_0xa1; @@ -61,11 +61,11 @@ class Z2CreatureCitizen : public Z2Creature, public JSULink<Z2CreatureCitizen> { public: /* 802C0C10 */ Z2CreatureCitizen(); /* 802C0C6C */ ~Z2CreatureCitizen(); - /* 802C0CE4 */ void init(Vec*, Vec*, u8, u8); + /* 802C0CE4 */ void init(Vec* animePosPtr, Vec* simplePosPtr, u8 animeHandleNum, u8 simpleHandleNum); /* 802C0D04 */ virtual void deleteObject(); /* 802C0D48 */ void setMdlType(s8, bool, bool); /* 802C0E18 */ void playVoice(int); - /* 802C0ED8 */ virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID, s8); + /* 802C0ED8 */ virtual Z2SoundHandlePool* startCreatureVoice(JAISoundID soundID, s8 reverb); private: /* 0xA0 */ s8 mCitizenID; @@ -77,15 +77,15 @@ private: class Z2CreatureSumomo : public Z2Creature { public: /* 802C1BE8 */ Z2CreatureSumomo(); - /* 802C1C24 */ void playSumomoBgm(u32); + /* 802C1C24 */ void playSumomoBgm(u32 dist); /* 802C1CA0 */ void deleteObject(); }; // Size: 0x90 class Z2SoundObjBeeGroup : public Z2SoundObjBase { public: /* 802C1D10 */ Z2SoundObjBeeGroup(); - /* 802C1D4C */ void init(Vec*, u8); - /* 802C1D6C */ void playBeeGroupSound(JAISoundID, u8); + /* 802C1D4C */ void init(Vec* posPtr, u8 handleNum); + /* 802C1D6C */ void playBeeGroupSound(JAISoundID soundID, u8); }; // Size: 0x20 class Z2CreatureFM : public Z2CreatureEnemy { @@ -93,9 +93,9 @@ public: /* 802C1F54 */ Z2CreatureFM(); /* 802C1FB0 */ void deleteObject(); /* 802C1FFC */ void init(Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, u8, u8, u8, u8, u8, u8); - /* 802C20E8 */ void framework(u32, s8); - /* 802C2194 */ Z2SoundHandlePool* startChainSound(JAISoundID, u8, f32, u32, s8); - /* 802C2290 */ Z2SoundHandlePool* startChainSoundLevel(JAISoundID, u8, f32, u32, s8); + /* 802C20E8 */ void framework(u32 mapinfo, s8 reverb); + /* 802C2194 */ Z2SoundHandlePool* startChainSound(JAISoundID soundID, u8, f32, u32 mapinfo, s8 reverb); + /* 802C2290 */ Z2SoundHandlePool* startChainSoundLevel(JAISoundID soundID, u8, f32, u32 mapinfo, s8 reverb); /* 0x0A4 */ Z2SoundObjSimple field_0xa4; /* 0x0C4 */ Z2SoundObjSimple field_0xc4; @@ -106,7 +106,7 @@ public: class Z2CreatureGob : public Z2Creature { public: /* 802C24B0 */ void init(Vec*, Vec*, Vec*, u8, u8, u8); - /* 802C24D0 */ Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID, s8); + /* 802C24D0 */ Z2SoundHandlePool* startCreatureVoiceLevel(JAISoundID soundID, s8 reverb); }; class Z2CreatureOI : public Z2CreatureEnemy { @@ -115,10 +115,10 @@ public: /* 802C25EC */ void deleteObject(); /* 802C2670 */ void init(Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*); - /* 802C2864 */ void framework(u32, s8); - /* 802C29D4 */ Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID, u32, s8); - /* 802C2C84 */ Z2SoundHandlePool* startTentacleSound(JAISoundID, u8, u32, s8); - /* 802C2CD4 */ Z2SoundHandlePool* startTentacleSoundLevel(JAISoundID, u8, f32, u32, s8); + /* 802C2864 */ void framework(u32 mapinfo, s8 reverb); + /* 802C29D4 */ Z2SoundHandlePool* startCreatureSoundLevel(JAISoundID soundID, u32 mapinfo, s8 reverb); + /* 802C2C84 */ Z2SoundHandlePool* startTentacleSound(JAISoundID soundID, u8, u32 mapinfo, s8 reverb); + /* 802C2CD4 */ Z2SoundHandlePool* startTentacleSoundLevel(JAISoundID soundID, u8, f32, u32 mapinfo, s8 reverb); /* 0x0A4 */ Z2SoundObjSimple field_0xa4; /* 0x0C4 */ Z2SoundObjSimple field_0xc4; diff --git a/include/Z2AudioLib/Z2DebugSys.h b/include/Z2AudioLib/Z2DebugSys.h index 285228d3e1..9172d241ee 100644 --- a/include/Z2AudioLib/Z2DebugSys.h +++ b/include/Z2AudioLib/Z2DebugSys.h @@ -2,9 +2,16 @@ #define Z2DEBUGSYS_H #include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JAudio2/JAISeqDataMgr.h" -// Only here for instance sub. No known code. struct Z2DebugSys : public JASGlobalInstance<Z2DebugSys> { + Z2DebugSys(); + ~Z2DebugSys(); + + void initJAW(); + void initSoundHioNode(); + void debugframework(); + JAISeqDataMgr* initSeSeqDataMgr(const void*); }; -#endif
\ No newline at end of file +#endif diff --git a/include/Z2AudioLib/Z2EnvSeMgr.h b/include/Z2AudioLib/Z2EnvSeMgr.h index 8cf1a95784..77b105a9f1 100644 --- a/include/Z2AudioLib/Z2EnvSeMgr.h +++ b/include/Z2AudioLib/Z2EnvSeMgr.h @@ -12,10 +12,10 @@ enum WindType { }; struct Z2EnvSeBase { - /* 802C589C */ Z2EnvSeBase(Vec* param_0 = NULL); + /* 802C589C */ Z2EnvSeBase(Vec* posPtr = NULL); /* 802C58AC */ ~Z2EnvSeBase(); - /* 802C5908 */ bool startEnvSe(JAISoundID, f32, f32, f32, f32, f32, u32); - /* 802C5AB4 */ bool startEnvSeLevel(JAISoundID, f32, f32, f32, f32, f32, u32); + /* 802C5908 */ bool startEnvSe(JAISoundID soundID, f32 fxMix, f32 volume, f32 pan, f32 dolby, f32 pitch, u32 moveSteps); + /* 802C5AB4 */ bool startEnvSeLevel(JAISoundID soundID, f32 fxMix, f32 volume, f32 pan, f32 dolby, f32 pitch, u32 moveSteps); JAISoundHandle* getHandle() { return &mHandle; } void setPos(Vec* pos) { mPos = pos; } @@ -27,12 +27,12 @@ struct Z2EnvSeBase { struct Z2EnvSeAutoPan : public Z2EnvSeBase { /* 802C5ECC */ Z2EnvSeAutoPan(); /* 802C5F28 */ ~Z2EnvSeAutoPan(); - /* 802C5F7C */ void setPanParam(f32, f32, bool, bool, f32, f32); + /* 802C5F7C */ void setPanParam(f32 pan, f32 dolby, bool, bool, f32, f32); /* 802C5F98 */ void calcPan(); - /* 802C60E0 */ bool startEnvSeAutoPanLevel(JAISoundID, f32, f32, f32); + /* 802C60E0 */ bool startEnvSeAutoPanLevel(JAISoundID soundID, f32 fxMix, f32 volume, f32 pitch); - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; + /* 0x08 */ f32 mPan; + /* 0x0C */ f32 mDolby; /* 0x10 */ f32 field_0x10; /* 0x14 */ f32 field_0x14; /* 0x18 */ bool field_0x18; @@ -40,14 +40,14 @@ struct Z2EnvSeAutoPan : public Z2EnvSeBase { }; // Size: 0x1C struct Z2EnvSeDir : public Z2EnvSeBase { - /* 802C5C9C */ Z2EnvSeDir(Vec* param_0 = NULL); + /* 802C5C9C */ Z2EnvSeDir(Vec* dir = NULL); /* 802C5D1C */ ~Z2EnvSeDir(); - /* 802C5D70 */ void setPanDir(Vec*); + /* 802C5D70 */ void setPanDir(Vec* dir); /* 802C5D9C */ void calcPan(f32); - /* 802C5E90 */ bool startEnvSeDirLevel(JAISoundID, f32, f32); + /* 802C5E90 */ bool startEnvSeDirLevel(JAISoundID soundID, f32 fxMix, f32 volume); - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; + /* 0x08 */ f32 mPan; + /* 0x0C */ f32 mDolby; /* 0x10 */ Vec mPanDir; }; // Size: 0x1C @@ -57,40 +57,40 @@ struct Z2EnvSeMgr : public JASGlobalInstance<Z2EnvSeMgr> { /* 802C66B0 */ void framework(); /* 802C6998 */ void resetScene(); /* 802C699C */ void resetSceneInner(); - /* 802C6AC0 */ void initSceneEnvSe(s32, s8, f32); + /* 802C6AC0 */ void initSceneEnvSe(s32 sceneID, s8 room, f32); /* 802C6C1C */ void playSceneEnvSe(); /* 802C6C84 */ void initStaticEnvSe(u8, u8, u8, u8, Vec*); - /* 802C70C8 */ bool startStaticEnvSe(s8); - /* 802C780C */ void registWindowPos(Vec*); + /* 802C70C8 */ bool startStaticEnvSe(s8 reverb); + /* 802C780C */ void registWindowPos(Vec* posPtr); /* 802C7830 */ bool startRainSe(s32, s8); - /* 802C7CF4 */ void startNearThunderSe(s8); - /* 802C7E68 */ void startFarThunderSe(Vec*, s8); - /* 802C7FB4 */ void setSnowPower(s8); + /* 802C7CF4 */ void startNearThunderSe(s8 reverb); + /* 802C7E68 */ void startFarThunderSe(Vec* posPtr, s8 reverb); + /* 802C7FB4 */ void setSnowPower(s8 reverb); /* 802C7FBC */ void initStrongWindSe(); - /* 802C7FC8 */ void setWindDirection(Vec*); - /* 802C800C */ bool startStrongWindSe(s8); + /* 802C7FC8 */ void setWindDirection(Vec* dir); + /* 802C800C */ bool startStrongWindSe(s8 reverb); /* 802C80F8 */ void initRiverSe(u8, u8, u8, u8); - /* 802C8234 */ void registRiverSePos(Vec*); - /* 802C8258 */ void setHyrulSewerOpen(bool); - /* 802C8300 */ bool startRiverSe(s8); + /* 802C8234 */ void registRiverSePos(Vec* posPtr); + /* 802C8258 */ void setHyrulSewerOpen(bool isSewerOpen); + /* 802C8300 */ bool startRiverSe(s8 reverb); /* 802C8730 */ void initFallSe(u8, u8, u8, u8); - /* 802C886C */ void registFallSePos(Vec*); - /* 802C8890 */ bool startFallSe(s8); + /* 802C886C */ void registFallSePos(Vec* posPtr); + /* 802C8890 */ bool startFallSe(s8 reverb); /* 802C8A90 */ void initEtcSe(u8, u8, u8, u8); - /* 802C8C24 */ void registEtcSePos(Vec*); - /* 802C8C48 */ bool startEtcSe(s8); - /* 802C92C8 */ void registWolfSmellSePos(Vec*); - /* 802C92EC */ bool startFogWipeTrigger(Vec*); - /* 802C93A0 */ void setFogWipeWidth(f32); + /* 802C8C24 */ void registEtcSePos(Vec* posPtr); + /* 802C8C48 */ bool startEtcSe(s8 reverb); + /* 802C92C8 */ void registWolfSmellSePos(Vec* posPtr); + /* 802C92EC */ void startFogWipeTrigger(Vec* pos); + /* 802C93A0 */ void setFogWipeWidth(f32 width); /* 802C93E4 */ f32 getFogDensity(); /* 802C9400 */ bool startFogSe(); /* 802C950C */ void initLv3WaterSe(u8, u8, u8, u8); - /* 802C9F58 */ void registLv3WaterSePos(u8, Vec*); - /* 802CA794 */ void startLv3WaterSe(s8); + /* 802C9F58 */ void registLv3WaterSePos(u8, Vec* posPtr); + /* 802CA794 */ void startLv3WaterSe(s8 reverb); - void setWindType(u8 i_type) { mWindType = i_type; } - void registSmellSePos(Vec* param_0) { registEtcSePos(param_0); } - void startSmellSe(s8 param_0) { startEtcSe(param_0); } + void setWindType(u8 type) { mWindType = type; } + void registSmellSePos(Vec* posPtr) { registEtcSePos(posPtr); } + void startSmellSe(s8 reverb) { startEtcSe(reverb); } void initSmellSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { initEtcSe(param_0, param_1, param_2, param_3); } diff --git a/include/Z2AudioLib/Z2FxLineMgr.h b/include/Z2AudioLib/Z2FxLineMgr.h index 0931742f6e..c88d030b99 100644 --- a/include/Z2AudioLib/Z2FxLineMgr.h +++ b/include/Z2AudioLib/Z2FxLineMgr.h @@ -27,12 +27,12 @@ struct Z2FxLineConfig { struct Z2FxLineMgr : public JASGlobalInstance<Z2FxLineMgr> { /* 802BA7DC */ Z2FxLineMgr(); - /* 802BA7FC */ void initDataArc(JKRArchive*, JKRHeap*); - /* 802BAC28 */ void setLineID(s8, bool, bool); - /* 802BAC74 */ void setLine(Z2FxLineConfig*, bool, bool); + /* 802BA7FC */ void initDataArc(JKRArchive* arc, JKRHeap* heap); + /* 802BAC28 */ void setLineID(s8 fxID, bool, bool); + /* 802BAC74 */ void setLine(Z2FxLineConfig* config, bool, bool); /* 802BAE1C */ void setFxForceOff(bool); - /* 802BAE48 */ void setUnderWaterFx(bool); - /* 802BAEB8 */ void setSceneFx(s32); + /* 802BAE48 */ void setUnderWaterFx(bool isUnderWaterFx); + /* 802BAEB8 */ void setSceneFx(s32 sceneNo); /* 0x00 */ Z2FxLineConfig* mConfig; /* 0x04 */ void* mFxLineBuffer[4]; diff --git a/include/Z2AudioLib/Z2LinkMgr.h b/include/Z2AudioLib/Z2LinkMgr.h index 35b8ebcb71..886226afd9 100644 --- a/include/Z2AudioLib/Z2LinkMgr.h +++ b/include/Z2AudioLib/Z2LinkMgr.h @@ -9,8 +9,10 @@ public: Z2LinkSoundStarter(); inline virtual ~Z2LinkSoundStarter(); - virtual bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*, u32, f32, - f32, f32, f32, f32, u32); + virtual bool startSound(JAISoundID soundID, JAISoundHandle* handle, + const JGeometry::TVec3<f32>* posPtr, u32 mapinfo, + f32 fxMix, f32 pitch, f32 volume, f32 pan, + f32 dolby, u32 moveSteps); }; class Z2CreatureLink : public Z2Creature, public Z2LinkSoundStarter { @@ -19,41 +21,41 @@ public: ~Z2CreatureLink(); void setLinkGroupInfo(u8); - void setLinkHp(s32, s32); - void setLinkSwordType(s32, s32); - void setLinkShieldType(s32, s32); - void setLinkBootsType(s32); + void setLinkHp(s32 linkHp, s32); + void setLinkSwordType(s32 swordType, s32); + void setLinkShieldType(s32 shieldType, s32); + void setLinkBootsType(s32 bootsType); virtual void deleteObject(); - void init(Vec*, Vec*, Vec*); - void initKantera(Vec*); - void deleteKantera(void); - void setKanteraState(u8); - virtual void framework(u32, s8); - void setSinkDepth(s8); - void setRiding(bool); - void setMagnetized(bool); - void setWolfEyeOpen(bool); - Z2SoundHandlePool* startLinkSound(JAISoundID, u32, s8); - JAISoundHandle* startLinkSoundLevel(JAISoundID, u32, s8); - Z2SoundHandlePool* startLinkVoice(JAISoundID, s8); - Z2SoundHandlePool* startLinkVoiceLevel(JAISoundID, s8); - void startLinkSwordSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startCollisionSE(u32, u32); - Z2SoundHandlePool* startHitItemSE(u32, u32, Z2SoundObjBase*, float); - void setResumeAttack(bool); - - void setInWater(bool status) { mInWater = status; } + void init(Vec* animePosPtr, Vec* simplePosPtr, Vec* simple2PosPtr); + void initKantera(Vec* posPtr); + void deleteKantera(); + void setKanteraState(u8 state); + virtual void framework(u32 mapinfo, s8 reverb); + void setSinkDepth(s8 sinkDepth); + void setRiding(bool isRiding); + void setMagnetized(bool isMagnetized); + void setWolfEyeOpen(bool wolfEyeOpen); + Z2SoundHandlePool* startLinkSound(JAISoundID, u32 mapinfo, s8 reverb); + JAISoundHandle* startLinkSoundLevel(JAISoundID, u32 mapinfo, s8 reverb); + Z2SoundHandlePool* startLinkVoice(JAISoundID, s8 reverb); + Z2SoundHandlePool* startLinkVoiceLevel(JAISoundID, s8 reverb); + void startLinkSwordSound(JAISoundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startCollisionSE(u32 hitID, u32 mapinfo); + Z2SoundHandlePool* startHitItemSE(u32 soundID, u32 mapinfo, Z2SoundObjBase* other, f32 speed); + void setResumeAttack(bool resumeAttack); + + void setInWater(bool inWater) { mInWater = inWater; } bool isInWater() { return mInWater; } u8 getLinkState() { return mLinkState; } - u8 getMoveSpeed() const { return mMoveSpeed; } - bool isRiding() const { return mRiding; } - void setLinkState(u8 i_state) { mLinkState = i_state; } + u8 getMoveSpeed() { return mMoveSpeed; } + bool isRiding() { return mRiding; } + void setLinkState(u8 state) { mLinkState = state; } Z2SoundObjSimple& getKantera() { return mKantera; } - u8 getLinkHp() const { return mLinkHp; } + u8 getLinkHp() { return mLinkHp; } u8 getMovingTime() { return mMovingTime; } - u8 isWolfSmellOpen() const { return mWolfEyeOpen; } - void setUsingIronBall(bool i_using) { mUsingIronBall = i_using; } - void setMarkState(u8 i_state) { mMarkState = i_state; } + bool isWolfSmellOpen() { return mWolfEyeOpen; } + void setUsingIronBall(bool isUsingIronBall) { mUsingIronBall = isUsingIronBall; } + void setMarkState(u8 state) { mMarkState = state; } static Z2CreatureLink* mLinkPtr; @@ -63,7 +65,7 @@ public: private: /* 0x90 Z2LinkSoundStarter */ /* 0x94 */ Z2SoundObjSimple mKantera; - /* 0xB4 */ cXyz field_0xb4; + /* 0xB4 */ Vec field_0xb4; /* 0xC0 */ u8 mLinkState; /* 0xC1 */ u8 field_0xc1; /* 0xC2 */ u8 mMarkState; @@ -99,11 +101,12 @@ inline Z2CreatureLink* Z2GetLink() { class Z2CreatureRide; struct Z2RideSoundStarter : public Z2SoundStarter { - /* 802C5234 */ Z2RideSoundStarter(Z2CreatureRide*); + /* 802C5234 */ Z2RideSoundStarter(Z2CreatureRide* ride); - /* 802C5284 */ virtual bool startSound(JAISoundID, JAISoundHandle*, - JGeometry::TVec3<f32> const*, u32, f32, f32, f32, f32, - f32, u32); + /* 802C5284 */ virtual bool startSound(JAISoundID soundID, JAISoundHandle* handle, + const JGeometry::TVec3<f32>* posPtr, u32 mapinfo, + f32 fxMix, f32 pitch, f32 volume, f32 pan, + f32 dolby, u32 moveSteps); /* 0x4 */ Z2CreatureRide* mRide; }; @@ -112,8 +115,8 @@ class Z2CreatureRide : public Z2Creature, public Z2RideSoundStarter { public: Z2CreatureRide(); ~Z2CreatureRide(); - void init(Vec*, Vec*, u8, u8); - void setLinkRiding(bool); + void init(Vec* animePosPtr, Vec* simplePosPtr, u8 animeHandleNum, u8 simpleHandleNum); + void setLinkRiding(bool isRiding); bool isLinkRiding() { return mLinkRiding; } @@ -127,10 +130,10 @@ private: class Z2SoundObjCoach : public Z2SoundObjBase { public: /* 802C54B8 */ Z2SoundObjCoach(); - /* 802C54FC */ void init(Vec*, u8); + /* 802C54FC */ void init(Vec* posPtr, u8 handleNum); /* 802C551C */ Z2SoundHandlePool* startWheelSound(f32); /* 802C56C0 */ Z2SoundHandlePool* startFireSound(u16); - /* 802C57C0 */ Z2SoundHandlePool* startSound(JAISoundID, u32, s8); + /* 802C57C0 */ Z2SoundHandlePool* startSound(JAISoundID soundID, u32 mapinfo, s8 reverb); private: /* 0x20 */ f32 field_0x20; diff --git a/include/Z2AudioLib/Z2Param.h b/include/Z2AudioLib/Z2Param.h index d98289f7ef..541bbb9556 100644 --- a/include/Z2AudioLib/Z2Param.h +++ b/include/Z2AudioLib/Z2Param.h @@ -40,24 +40,28 @@ struct Z2Param { static f32 VOL_SE_ATMOSPHERE_PAUSING; static f32 MIN_DISTANCE_VOLUME; static f32 ENEMY_LASTHIT_MUTE_VOLUME; + + // made up names based on HIO labels + static u8 SCENE_CHANGE_BGM_FADEOUT_TIME; + static u8 BGM_CROSS_FADEIN_TIME; + static u8 BGM_CROSS_FADEOUT_TIME; + static u8 BATTLE_BGM_WAIT_TIME; + + static u8 FOUND_TRACK_FI_TIME; + static u8 FOUND_TRACK_FO_TIME; + static u8 CLOSE_BATTLE_TRACK_FI_TIME; + static u8 CLOSE_BATTLE_TRACK_FO_TIME; + + static u8 ENDING_BLOW_VOL_DOWN_TIME; + static u8 ENDING_BLOW_VOL_LOWER_TIME; + static u8 ENDING_BLOW_VOL_LOWER_RECOVER_TIME; + static u8 ENDING_BLOW_MIN_FINISH_TIME; + + static u8 DARK_SE_FILTER_ON; + static u8 DARK_SE_LOW_PASS_FILTER_SETTING; + static u8 SYSTEM_SE_USE_DARK_SE_SETTING; }; -extern u8 struct_80450860; -extern u8 struct_80450861; -extern u8 struct_80450862; -extern u8 struct_80450863; -extern u8 struct_80450864; -extern u8 struct_80450865; -extern u8 struct_80450866; -extern u8 struct_80450867; -extern u8 struct_80450868; -extern u8 struct_80450869; -extern u8 struct_8045086A; -extern u8 struct_8045086B; extern u8 data_8045086C; -extern u8 struct_80451340; -extern u8 struct_80451341; -extern u8 struct_80451342; - #endif /* Z2PARAM_H */ diff --git a/include/Z2AudioLib/Z2SceneMgr.h b/include/Z2AudioLib/Z2SceneMgr.h index 553ec2d5e8..c1e6402aca 100644 --- a/include/Z2AudioLib/Z2SceneMgr.h +++ b/include/Z2AudioLib/Z2SceneMgr.h @@ -9,12 +9,13 @@ s8 dComIfGp_getReverb(int roomNo); class Z2SceneMgr : public JASGlobalInstance<Z2SceneMgr> { public: Z2SceneMgr(); - void setInDarkness(bool); - void setSceneExist(bool); - void setFadeOutStart(u8); - void setFadeInStart(u8); - void setSceneName(char*, s32, s32); - void sceneChange(JAISoundID, u8, u8, u8, u8, u8, bool); + void setInDarkness(bool inDarkness); + void setSceneExist(bool isSceneExist); + void setFadeOutStart(u8 fadeType); + void setFadeInStart(u8 fadeType); + void setSceneName(char* spot, s32 room, s32 layer); + void sceneChange(JAISoundID bgm, u8 seWave1, u8 seWave2, u8 bgmWave1, u8 bgmWave2, + u8 demoWave, bool); void framework(); void load1stDynamicWave(); void _load1stWaveInner_1(); @@ -24,18 +25,22 @@ public: void sceneBgmStart(); void loadStaticWaves(); BOOL checkFirstWaves(); - bool eraseSeWave(u32); - bool eraseBgmWave(u32); - s32 getWaveLoadStatus(u32, u32); - bool loadSeWave(u32); - bool loadBgmWave(u32); + bool eraseSeWave(u32 wave); + bool eraseBgmWave(u32 wave); + s32 getWaveLoadStatus(u32 wave, u32 bank); + bool loadSeWave(u32 wave); + bool loadBgmWave(u32 wave); + + #if PLATFORM_SHIELD + bool loadSceneWave(u32 wave, u32 bank); + #endif bool isSceneExist() { return sceneExist; } int getCurrentSceneNum() { return sceneNum; } s8 getCurrentRoomNum() { return roomNum; } bool isInGame() { return inGame; } - void setInGame(bool i_inGame) { inGame = i_inGame; } - bool isInDarkness() const { return inDarkness; } + void setInGame(bool isInGame) { inGame = isInGame; } + bool isInDarkness() { return inDarkness_; } s8 getRoomReverb() { return dComIfGp_getReverb(roomNum); } bool isMovieDemo() { return sceneNum == 2 || sceneNum == 8 || sceneNum == 9; } s32 getSeLoadStatus(u32 wave) { return getWaveLoadStatus(wave, 0); } @@ -64,95 +69,95 @@ private: /* 0x1B */ bool field_0x1b; /* 0x1C */ bool inGame; /* 0x1D */ bool sceneExist; - /* 0x1E */ bool inDarkness; + /* 0x1E */ bool inDarkness_; }; // Size = 0x20 inline Z2SceneMgr* Z2GetSceneMgr() { return JASGlobalInstance<Z2SceneMgr>::getInstance(); } -enum Spot { // aka scene - /* 0x00 */ SPOT_ORDON_RANCH, - /* 0x01 */ SPOT_ORDON_VILLAGE, - /* 0x02 */ SPOT_ORDON_INTERIOR, - /* 0x03 */ SPOT_ORDON_SPRING, - /* 0x04 */ SPOT_TWILIGHT_HYRULE_CASTLE, - /* 0x05 */ SPOT_FARON_WOODS, - /* 0x06 */ SPOT_CORO_SHOP, - /* 0x07 */ SPOT_SACRED_GROVE, - /* 0x08 */ SPOT_KAKARIKO_VILLAGE, - /* 0x09 */ SPOT_KAKARIKO_INTERIOR, - /* 0x0A */ SPOT_SANCTUARY_BASEMENT, - /* 0x0B */ SPOT_DEATH_MOUNTAIN, - /* 0x0C */ SPOT_SUMO_HALL, - /* 0x0D */ SPOT_KAKARIKO_GRAVEYARD, - /* 0x0E */ SPOT_HIDDEN_VILLAGE, - /* 0x0F */ SPOT_IMPAZ_HOUSE, - /* 0x10 */ SPOT_LAKE_HYLIA, - /* 0x11 */ SPOT_ZORAS_RIVER, - /* 0x12 */ SPOT_UPPER_ZORAS_RIVER, - /* 0x13 */ SPOT_FISHING_POND, - /* 0x14 */ SPOT_HENA_CABIN, - /* 0x15 */ SPOT_ZORAS_DOMAIN, - /* 0x16 */ SPOT_CASTLE_TOWN, - /* 0x17 */ SPOT_CASTLE_TOWN_INTERIOR, - /* 0x18 */ SPOT_CASTLE_TOWN_SHOPS, - /* 0x19 */ SPOT_STAR_TENT, - /* 0x1A */ SPOT_SNOWPEAK, - /* 0x1B */ SPOT_ARBITERS_GROUNDS_EXTERIOR, - /* 0x1C */ SPOT_GERUDO_DESERT, - /* 0x1D */ SPOT_MIRROR_CHAMBER, - /* 0x1E */ SPOT_HYRULE_FIELD, - /* 0x1F */ SPOT_CASTLE_TOWN_GATES, - /* 0x20 */ SPOT_HYLIA_BRIDGE_BATTLE, - /* 0x21 */ SPOT_SHADES_REALM, - /* 0x22 */ SPOT_ELDIN_BRIDGE_BATTLE, - /* 0x23 */ SPOT_NONE, - /* 0x24 */ SPOT_LIGHT_SPIRIT_CHAMBER, - /* 0x25 */ SPOT_CASTLE_THRONE_ROOM, - /* 0x26 */ SPOT_ENEMY_TEST, - /* 0x27 */ SPOT_FORTRESS, - /* 0x28 */ SPOT_FOREST_TEMPLE, - /* 0x29 */ SPOT_FOREST_TEMPLE_MINIBOSS, - /* 0x2A */ SPOT_FOREST_TEMPLE_BOSS, - /* 0x2B */ SPOT_GORON_MINES, - /* 0x2C */ SPOT_GORON_MINES_MINIBOSS, - /* 0x2D */ SPOT_GORON_MINES_BOSS, - /* 0x2E */ SPOT_LAKEBED_TEMPLE, - /* 0x2F */ SPOT_LAKEBED_TEMPLE_MINIBOSS, - /* 0x30 */ SPOT_LAKEBED_TEMPLE_BOSS, - /* 0x31 */ SPOT_ARBITERS_GROUNDS, - /* 0x32 */ SPOT_ARBITERS_GROUNDS_MINIBOSS, - /* 0x33 */ SPOT_ARBITERS_GROUNDS_BOSS, - /* 0x34 */ SPOT_SNOWPEAK_RUINS, - /* 0x35 */ SPOT_SNOWPEAK_RUINS_MINIBOSS, - /* 0x36 */ SPOT_SNOWPEAK_RUINS_BOSS, - /* 0x37 */ SPOT_TEMPLE_OF_TIME, - /* 0x38 */ SPOT_TEMPLE_OF_TIME_MINIBOSS, - /* 0x39 */ SPOT_TEMPLE_OF_TIME_BOSS, - /* 0x3A */ SPOT_CITY_IN_THE_SKY, - /* 0x3B */ SPOT_CITY_IN_THE_SKY_MINIBOSS, - /* 0x3C */ SPOT_CITY_IN_THE_SKY_BOSS, - /* 0x3D */ SPOT_PALACE_OF_TWILIGHT, - /* 0x3E */ SPOT_PALACE_OF_TWILIGHT_MINIBOSS_A, - /* 0x3F */ SPOT_PALACE_OF_TWILIGHT_MINIBOSS_B, - /* 0x40 */ SPOT_PALACE_OF_TWILIGHT_THRONE_ROOM, - /* 0x41 */ SPOT_PALACE_OF_TWILIGHT_BOSS, - /* 0x42 */ SPOT_HYRULE_CASTLE, - /* 0x43 */ SPOT_FINAL_BATTLE_THRONE_ROOM, - /* 0x44 */ SPOT_FINAL_BATTLE_FIELD, - /* 0x45 */ SPOT_FINAL_BATTLE_CUTSCENE, - /* 0x46 */ SPOT_ICE_BLOCK_PUZZLE, - /* 0x47 */ SPOT_CAVE_OF_ORDEALS, - /* 0x48 */ SPOT_GORGE_LANTERN_CAVE, - /* 0x49 */ SPOT_LAKE_LANTERN_CAVE, - /* 0x4A */ SPOT_ELDIN_MAGNET_CAVE, - /* 0x4B */ SPOT_GROTTO_GRASS_1, - /* 0x4C */ SPOT_GROTTO_GRASS_2, - /* 0x4D */ SPOT_GROTTO_ROCK_1, - /* 0x4E */ SPOT_GROTTO_ROCK_2, - /* 0x4F */ SPOT_GROTTO_POND, - /* 0x50 */ SPOT_FARON_WOODS_CAVE, +enum Z2Scene { + /* 0x00 */ Z2SCENE_ORDON_RANCH, + /* 0x01 */ Z2SCENE_ORDON_VILLAGE, + /* 0x02 */ Z2SCENE_ORDON_INTERIOR, + /* 0x03 */ Z2SCENE_ORDON_SPRING, + /* 0x04 */ Z2SCENE_TWILIGHT_HYRULE_CASTLE, + /* 0x05 */ Z2SCENE_FARON_WOODS, + /* 0x06 */ Z2SCENE_CORO_SHOP, + /* 0x07 */ Z2SCENE_SACRED_GROVE, + /* 0x08 */ Z2SCENE_KAKARIKO_VILLAGE, + /* 0x09 */ Z2SCENE_KAKARIKO_INTERIOR, + /* 0x0A */ Z2SCENE_SANCTUARY_BASEMENT, + /* 0x0B */ Z2SCENE_DEATH_MOUNTAIN, + /* 0x0C */ Z2SCENE_SUMO_HALL, + /* 0x0D */ Z2SCENE_KAKARIKO_GRAVEYARD, + /* 0x0E */ Z2SCENE_HIDDEN_VILLAGE, + /* 0x0F */ Z2SCENE_IMPAZ_HOUSE, + /* 0x10 */ Z2SCENE_LAKE_HYLIA, + /* 0x11 */ Z2SCENE_ZORAS_RIVER, + /* 0x12 */ Z2SCENE_UPPER_ZORAS_RIVER, + /* 0x13 */ Z2SCENE_FISHING_POND, + /* 0x14 */ Z2SCENE_HENA_CABIN, + /* 0x15 */ Z2SCENE_ZORAS_DOMAIN, + /* 0x16 */ Z2SCENE_CASTLE_TOWN, + /* 0x17 */ Z2SCENE_CASTLE_TOWN_INTERIOR, + /* 0x18 */ Z2SCENE_CASTLE_TOWN_SHOPS, + /* 0x19 */ Z2SCENE_STAR_TENT, + /* 0x1A */ Z2SCENE_SNOWPEAK, + /* 0x1B */ Z2SCENE_ARBITERS_GROUNDS_EXTERIOR, + /* 0x1C */ Z2SCENE_GERUDO_DESERT, + /* 0x1D */ Z2SCENE_MIRROR_CHAMBER, + /* 0x1E */ Z2SCENE_HYRULE_FIELD, + /* 0x1F */ Z2SCENE_CASTLE_TOWN_GATES, + /* 0x20 */ Z2SCENE_HYLIA_BRIDGE_BATTLE, + /* 0x21 */ Z2SCENE_SHADES_REALM, + /* 0x22 */ Z2SCENE_ELDIN_BRIDGE_BATTLE, + /* 0x23 */ Z2SCENE_NONE, + /* 0x24 */ Z2SCENE_LIGHT_SPIRIT_CHAMBER, + /* 0x25 */ Z2SCENE_CASTLE_THRONE_ROOM, + /* 0x26 */ Z2SCENE_ENEMY_TEST, + /* 0x27 */ Z2SCENE_FORTRESS, + /* 0x28 */ Z2SCENE_FOREST_TEMPLE, + /* 0x29 */ Z2SCENE_FOREST_TEMPLE_MINIBOSS, + /* 0x2A */ Z2SCENE_FOREST_TEMPLE_BOSS, + /* 0x2B */ Z2SCENE_GORON_MINES, + /* 0x2C */ Z2SCENE_GORON_MINES_MINIBOSS, + /* 0x2D */ Z2SCENE_GORON_MINES_BOSS, + /* 0x2E */ Z2SCENE_LAKEBED_TEMPLE, + /* 0x2F */ Z2SCENE_LAKEBED_TEMPLE_MINIBOSS, + /* 0x30 */ Z2SCENE_LAKEBED_TEMPLE_BOSS, + /* 0x31 */ Z2SCENE_ARBITERS_GROUNDS, + /* 0x32 */ Z2SCENE_ARBITERS_GROUNDS_MINIBOSS, + /* 0x33 */ Z2SCENE_ARBITERS_GROUNDS_BOSS, + /* 0x34 */ Z2SCENE_SNOWPEAK_RUINS, + /* 0x35 */ Z2SCENE_SNOWPEAK_RUINS_MINIBOSS, + /* 0x36 */ Z2SCENE_SNOWPEAK_RUINS_BOSS, + /* 0x37 */ Z2SCENE_TEMPLE_OF_TIME, + /* 0x38 */ Z2SCENE_TEMPLE_OF_TIME_MINIBOSS, + /* 0x39 */ Z2SCENE_TEMPLE_OF_TIME_BOSS, + /* 0x3A */ Z2SCENE_CITY_IN_THE_SKY, + /* 0x3B */ Z2SCENE_CITY_IN_THE_SKY_MINIBOSS, + /* 0x3C */ Z2SCENE_CITY_IN_THE_SKY_BOSS, + /* 0x3D */ Z2SCENE_PALACE_OF_TWILIGHT, + /* 0x3E */ Z2SCENE_PALACE_OF_TWILIGHT_MINIBOSS_A, + /* 0x3F */ Z2SCENE_PALACE_OF_TWILIGHT_MINIBOSS_B, + /* 0x40 */ Z2SCENE_PALACE_OF_TWILIGHT_THRONE_ROOM, + /* 0x41 */ Z2SCENE_PALACE_OF_TWILIGHT_BOSS, + /* 0x42 */ Z2SCENE_HYRULE_CASTLE, + /* 0x43 */ Z2SCENE_FINAL_BATTLE_THRONE_ROOM, + /* 0x44 */ Z2SCENE_FINAL_BATTLE_FIELD, + /* 0x45 */ Z2SCENE_FINAL_BATTLE_CUTSCENE, + /* 0x46 */ Z2SCENE_ICE_BLOCK_PUZZLE, + /* 0x47 */ Z2SCENE_CAVE_OF_ORDEALS, + /* 0x48 */ Z2SCENE_GORGE_LANTERN_CAVE, + /* 0x49 */ Z2SCENE_LAKE_LANTERN_CAVE, + /* 0x4A */ Z2SCENE_ELDIN_MAGNET_CAVE, + /* 0x4B */ Z2SCENE_GROTTO_GRASS_1, + /* 0x4C */ Z2SCENE_GROTTO_GRASS_2, + /* 0x4D */ Z2SCENE_GROTTO_ROCK_1, + /* 0x4E */ Z2SCENE_GROTTO_ROCK_2, + /* 0x4F */ Z2SCENE_GROTTO_POND, + /* 0x50 */ Z2SCENE_FARON_WOODS_CAVE, }; #endif /* Z2SCENEMGR_H */ diff --git a/include/Z2AudioLib/Z2SeMgr.h b/include/Z2AudioLib/Z2SeMgr.h index 4ff8e8f37a..8e07972977 100644 --- a/include/Z2AudioLib/Z2SeMgr.h +++ b/include/Z2AudioLib/Z2SeMgr.h @@ -7,56 +7,50 @@ struct Z2MultiSeMgr { Z2MultiSeMgr(); ~Z2MultiSeMgr(); - s8 registMultiSePos(Vec*); + s8 registMultiSePos(Vec* posPtr); void resetMultiSePos(); f32 getPanPower(); f32 getDolbyPower(); - void setVolumeScale(f32 param_0) { mVolumeScale = param_0; } + void setVolumeScale(f32 volumeScale) { volumeScale_ = volumeScale; } f32 getMaxVolume() { - if (mMaxVolume > 1.0f) { - return 1.0f; - } else if (mMaxVolume < 0.0f) { - return 0.0f; - } else { - return mMaxVolume; - } + return (maxVolume_ > 1.0f) ? 1.0f : (maxVolume_ < 0.0f ? 0.0f : maxVolume_); } f32 getMaxPowR() { - return (mMaxPowR > 1.0f) ? 1.0f : (mMaxPowR < 0.0f ? 0.0f : mMaxPowR); + return (maxPowR_ > 1.0f) ? 1.0f : (maxPowR_ < 0.0f ? 0.0f : maxPowR_); } f32 getMaxPowL() { - return (mMaxPowL > 1.0f) ? 1.0f : (mMaxPowL < 0.0f ? 0.0f : mMaxPowL); + return (maxPowL_ > 1.0f) ? 1.0f : (maxPowL_ < 0.0f ? 0.0f : maxPowL_); } f32 getMaxPowB() { - return (mMaxPowB > 1.0f) ? 1.0f : (mMaxPowB < 0.0f ? 0.0f : mMaxPowB); + return (maxPowB_ > 1.0f) ? 1.0f : (maxPowB_ < 0.0f ? 0.0f : maxPowB_); } f32 getMaxPowF() { - return (mMaxPowF > 1.0f) ? 1.0f : (mMaxPowF < 0.0f ? 0.0f : mMaxPowF); + return (maxPowF_ > 1.0f) ? 1.0f : (maxPowF_ < 0.0f ? 0.0f : maxPowF_); } - s8 getPosCount() { return mPosCount; } + s8 getPosCount() { return posCount_; } - /* 0x00 */ float mVolumeScale; - /* 0x04 */ float mMaxVolume; - /* 0x08 */ float mMaxPowL; - /* 0x0C */ float mMaxPowR; - /* 0x10 */ float mMaxPowF; - /* 0x14 */ float mMaxPowB; - /* 0x18 */ s8 mPosCount; + /* 0x00 */ f32 volumeScale_; + /* 0x04 */ f32 maxVolume_; + /* 0x08 */ f32 maxPowL_; + /* 0x0C */ f32 maxPowR_; + /* 0x10 */ f32 maxPowF_; + /* 0x14 */ f32 maxPowB_; + /* 0x18 */ s8 posCount_; }; // Size = 0x1C struct Z2MultiSeObj : Z2MultiSeMgr { Z2MultiSeObj(); ~Z2MultiSeObj() {} - /* 0x1C */ u32 mSoundID; - /* 0x20 */ s8 field_0x20; + /* 0x1C */ u32 soundID_; + /* 0x20 */ s8 reverb_; }; // Size = 0x24 class Z2SeMgr : public JASGlobalInstance<Z2SeMgr> { @@ -64,23 +58,25 @@ public: /* 802AB64C */ Z2SeMgr(); /* 802AB750 */ void initSe(); /* 802AB80C */ void resetModY(); - /* 802AB830 */ void modHeightAtCamera(Vec const**); + /* 802AB830 */ void modHeightAtCamera(const Vec**); /* 802AB93C */ void incrCrowdSize(); /* 802AB960 */ void decrCrowdSize(); - /* 802AB984 */ bool seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ bool seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AD8B0 */ void seStop(JAISoundID, u32); - /* 802AD94C */ void seStopAll(u32); - /* 802AD9F4 */ void seMoveVolumeAll(f32, u32); + /* 802AB984 */ bool seStart(JAISoundID soundID, const Vec* posPtr, u32, s8 reverb, + f32 pitch, f32 volume, f32 pan, f32 dolby, u8); + /* 802AC50C */ bool seStartLevel(JAISoundID soundID, const Vec* posPtr, u32, s8 reverb, + f32 pitch, f32 volume, f32 pan, f32 dolby, u8); + /* 802AD8B0 */ void seStop(JAISoundID soundID, u32 fadeTime); + /* 802AD94C */ void seStopAll(u32 fadeTime); + /* 802AD9F4 */ void seMoveVolumeAll(f32 volume, u32 moveTime); /* 802ADB14 */ void messageSePlay(u16, Vec*, s8); /* 802ADB50 */ void talkInSe(); /* 802ADC54 */ void talkOutSe(); /* 802ADD58 */ void menuInSe(); - /* 802ADE5C */ void setLevObjSE(u32, Vec*, s8); - /* 802ADFF4 */ void setMultiTriggerSE(u32, Vec*, s8); + /* 802ADE5C */ void setLevObjSE(u32 soundID, Vec* posPtr, s8 reverb); + /* 802ADFF4 */ void setMultiTriggerSE(u32 soundID, Vec* posPtr, s8 reverb); /* 802AE184 */ void processSeFramework(); - /* 802AE524 */ bool isLevelSe(JAISoundID); - /* 802AE5B0 */ bool isSoundCulling(JAISoundID); + /* 802AE524 */ bool isLevelSe(JAISoundID soundID); + /* 802AE5B0 */ bool isSoundCulling(JAISoundID soundID); /* 802B9AC4 */ void resetCrowdSize() { mCrowdSize = 0; } #if PLATFORM_WII || PLATFORM_SHIELD @@ -90,12 +86,19 @@ public: private: /* 0x000 */ JAISoundHandle mSoundHandle[24]; /* 0x060 */ JAISoundHandles mSoundHandles; + #if VERSION == VERSION_SHIELD_DEBUG + /* 0x068 */ JAISoundHandle dbg_field_0x68; + /* 0x06C */ f32 dbg_field_0x6c; + /* 0x070 */ f32 dbg_field_0x70; + /* 0x074 */ f32 dbg_field_0x74; + /* 0x078 */ f32 dbg_field_0x78; + #endif /* 0x068 */ Z2MultiSeObj mLevelObjSe[10]; /* 0x1D0 */ u8 mLevelObjectSeCount; /* 0x1D4 */ Z2MultiSeObj mMultiTriggerSe[10]; /* 0x33C */ u8 mMultiTriggerSeCount; /* 0x340 */ Vec field_0x340[8]; - /* 0x3A0 */ Vec const* mModY[8]; + /* 0x3A0 */ const Vec* mModY[8]; /* 0x3C0 */ u8 field_0x3c0; /* 0x3C1 */ u8 field_0x3c1; /* 0x3C2 */ u8 field_0x3c2; @@ -109,9 +112,6 @@ private: /* 0x3CA */ u8 field_0x3ca; /* 0x3CB */ u8 field_0x3cb; /* 0x3CC */ u8 mCrowdSize; -#if DEBUG - u8 semgr_pad[0x14]; -#endif }; // Size = 0x3D0 inline Z2SeMgr* Z2GetSeMgr() { diff --git a/include/Z2AudioLib/Z2SeqMgr.h b/include/Z2AudioLib/Z2SeqMgr.h index 5edd0f44ec..ede72e55d4 100644 --- a/include/Z2AudioLib/Z2SeqMgr.h +++ b/include/Z2AudioLib/Z2SeqMgr.h @@ -5,89 +5,89 @@ #include "JSystem/JAudio2/JASGadget.h" struct Z2SoundFader { - void move(f32 vol, u32 count) { - if (count != 0) { - mTransition.set(vol, mIntensity, count); + void move(f32 value, u32 moveTime) { + if (moveTime != 0) { + transition_.set(value, intensity_, moveTime); } else { - mIntensity = vol; - mTransition.zero(); + intensity_ = value; + transition_.zero(); } } void forceIn() { - mIntensity = 1.0f; - mTransition.zero(); + intensity_ = 1.0f; + transition_.zero(); } void forceOut() { - mIntensity = 0.0f; - mTransition.zero(); + intensity_ = 0.0f; + transition_.zero(); } - void fadeIn(u32 count) { - if (count != 0) { - mTransition.set(1.0f, mIntensity, count); + void fadeIn(u32 fadeTime) { + if (fadeTime != 0) { + transition_.set(1.0f, intensity_, fadeTime); } else { forceIn(); } } - void fadeOut(u32 count) { - if (count != 0) { - mTransition.set(0.0f, mIntensity, count); + void fadeOut(u32 fadeTime) { + if (fadeTime != 0) { + transition_.set(0.0f, intensity_, fadeTime); } else { forceOut(); } } - void fadeInFromOut(u32 count) { - mIntensity = 0.0f; - fadeIn(count); + void fadeInFromOut(u32 fadeTime) { + intensity_ = 0.0f; + fadeIn(fadeTime); } u32 getCount() { - return mTransition.mCount; + return transition_.remainingSteps_; } - f32 getIntensity() { - return mIntensity; + f32 getIntensity() const { + return intensity_; } f32 getDest() { if (getCount() != 0) { - return mTransition.mDest; + return transition_.targetValue_; } else { - return mIntensity; + return intensity_; } } void calc() { - mIntensity = mTransition.apply(mIntensity); + intensity_ = transition_.apply(intensity_); } f32 get() { return getIntensity(); } - /* 0x0 */ float mIntensity; - /* 0x4 */ JAISoundParamsTransition::TTransition mTransition; + /* 0x0 */ f32 intensity_; + /* 0x4 */ JAISoundParamsTransition::TTransition transition_; }; // Size = 0x10 class Z2SeqMgr : public JASGlobalInstance<Z2SeqMgr> { public: Z2SeqMgr(); - void bgmStart(u32 i_bgmID, u32, s32); - void bgmStop(u32 i_bgmID, s32); - void subBgmStart(u32); + void bgmStart(u32 bgmID, u32 fadeTime, s32); + void bgmStop(u32 fadeTime, s32); + void subBgmStart(u32 bgmID); void subBgmStop(); void subBgmStopInner(); - void bgmStreamPrepare(u32); + void bgmStreamPrepare(u32 bgmID); bool bgmStreamCheckReady(); void bgmStreamPlay(); - void bgmStreamStop(u32); - void changeBgmStatus(s32); - void changeSubBgmStatus(s32); + void bgmStreamStop(u32 fadeTime); + void changeBgmStatus(s32 status); + void changeSubBgmStatus(s32 status); void onVariantBgmJumpEnd(bool); void changeFishingBgm(s32); void talkInBgm(); @@ -96,23 +96,24 @@ public: void menuOutBgm(); void fanfareFramework(); void stopWolfHowlSong(); - void setHeightVolMod(bool, u32); - void setTimeProcVolMod(bool, u32); + void setHeightVolMod(bool isVolMod, u32 fadeTime); + void setTimeProcVolMod(bool isVolMod, u32 fadeTime); void processBgmFramework(); - bool checkBgmIDPlaying(u32); - f32 getChildTrackVolume(JAISoundHandle*, int); - void setChildTrackVolume(JAISoundHandle*, int, float, u32, float, float); + bool checkBgmIDPlaying(u32 bgmID); + f32 getChildTrackVolume(JAISoundHandle* handle, int trackId); + void setChildTrackVolume(JAISoundHandle* handle, int trackId, f32 volume, + u32 moveTime, f32 pan, f32 dolby); void resetBattleBgmParams(); - void setBattleBgmOff(bool); - void setBattleSearched(bool); - void setBattleDistIgnore(bool); - void setBattleGhostMute(bool); - void setBattleDistState(u8); - void setBattleSeqState(u8); - void setBattleLastHit(u8); + void setBattleBgmOff(bool isBgmOff); + void setBattleSearched(bool isBattleSearched); + void setBattleDistIgnore(bool isBattleDistIgnore); + void setBattleGhostMute(bool isBattleGhostMute); + void setBattleDistState(u8 state); + void setBattleSeqState(u8 state); + void setBattleLastHit(u8 lastHit); void battleBgmFramework(); - void startBattleBgm(bool); - void stopBattleBgm(u8, u8); + void startBattleBgm(bool isFadeIn); + void stopBattleBgm(u8 subFadeoutTime, u8 mainFadeinTime); void fieldBgmStart(); void fieldRidingMute(); void onFieldBgmJumpStart(); @@ -120,28 +121,33 @@ public: void fieldBgmFramework(); void mbossBgmMuteProcess(); void bgmSetSwordUsing(s32); - void bgmNowBattle(float); + void bgmNowBattle(f32); void taktModeMute(); void taktModeMuteOff(); + void setFieldBgmPlay(bool value) { mFlags.mFieldBgmPlay = value; } - /* 802B99AC */ void unMuteSceneBgm(u32 count) { + + /* 802B99AC */ void unMuteSceneBgm(u32 fadeTime) { mBgmPause.move(1.0f, 0); - mSceneBgm.move(1.0f, count); + mSceneBgm.move(1.0f, fadeTime); } - /* 802B9A24 */ void muteSceneBgm(u32 count, f32 vol) { mSceneBgm.move(vol, count); } + + /* 802B9A24 */ void muteSceneBgm(u32 fadeTime, f32 vol) { mSceneBgm.move(vol, fadeTime); } + /* 802B9AD0 */ void setTwilightGateVol(f32 vol) { mTwilightGateVol = vol < 0.0f ? 0.0f : vol > 1.0f ? 1.0f : vol; } - /* 802B9AFC */ void setWindStoneVol(f32 vol, u32 count) { mWindStone.move(vol, count); }; + + /* 802B9AFC */ void setWindStoneVol(f32 vol, u32 fadeTime) { mWindStone.move(vol, fadeTime); }; void onEnemyDamage() { setBattleSeqState(2); } - void bgmAllMute(u32 count, f32 val) { - mAllBgmMaster.mTransition.set(val, mAllBgmMaster.mIntensity, count); + void bgmAllMute(u32 fadeTime, f32 val) { + mAllBgmMaster.move(val, fadeTime); } - void bgmAllUnMute(u32 count) { - mAllBgmMaster.move(1.0f, count); + void bgmAllUnMute(u32 fadeTime) { + mAllBgmMaster.move(1.0f, fadeTime); } bool isItemGetDemo() { @@ -149,35 +155,40 @@ public: } u32 getMainBgmID() { + u32 id; if (mMainBgmHandle) { - return mMainBgmHandle->getID(); + id = mMainBgmHandle->getID(); + } else { + id = -1; } - return -1; + return id; } u32 getSubBgmID() { + u32 id; if (mSubBgmHandle) { - return mSubBgmHandle->getID(); + id = mSubBgmHandle->getID(); + } else { + id = -1; } - return -1; + return id; } u32 getStreamBgmID() { + u32 id; if (mStreamBgmHandle) { - return mStreamBgmHandle->getID(); + id = mStreamBgmHandle->getID(); + } else { + id = -1; } - return -1; + return id; } bool checkBgmPlaying() { - bool ret = false; - if (mMainBgmHandle || mStreamBgmHandle) { - ret = true; - } - return ret; + return mMainBgmHandle || mStreamBgmHandle; } u32 checkPlayingSubBgmFlag() { diff --git a/include/Z2AudioLib/Z2SoundHandles.h b/include/Z2AudioLib/Z2SoundHandles.h index 3b97ee2357..2d9d490f5e 100644 --- a/include/Z2AudioLib/Z2SoundHandles.h +++ b/include/Z2AudioLib/Z2SoundHandles.h @@ -14,33 +14,38 @@ public: Z2SoundHandles(); ~Z2SoundHandles(); - void initHandlesPool(u8 pNumHandles); + void initHandlesPool(u8 handleNum); void deleteHandlesPool(); Z2SoundHandlePool* getFreeHandle(); - Z2SoundHandlePool* getLowPrioSound(JAISoundID pSoundId); + Z2SoundHandlePool* getLowPrioSound(JAISoundID soundID); bool isActive() const; - Z2SoundHandlePool* getHandleSoundID(JAISoundID pSoundId); - Z2SoundHandlePool* getHandleUserData(u32 pUserData); + Z2SoundHandlePool* getHandleSoundID(JAISoundID soundID); + Z2SoundHandlePool* getHandleUserData(u32 userData); - void stopAllSounds(u32 fadeout); + void stopAllSounds(u32 fadeTime); - void stopSound(JAISoundID soundID, u32 param_1) { + void stopSound(JAISoundID soundID, u32 fadeTime) { // u32 cast is a fakematch JAISoundHandle* phandle = getHandleSoundID((u32)soundID); if (phandle != NULL) { - (*phandle)->stop(param_1); + (*phandle)->stop(fadeTime); } } void setPos(const JGeometry::TVec3<f32>& pos); int getNumHandles() const { return getNumLinks(); } - Z2SoundHandlePool* getHandle(int index) { return (Z2SoundHandlePool*)getNth(index); } + + Z2SoundHandlePool* getHandle(int index) { + JUT_ASSERT(49, index >= 0); + JUT_ASSERT(50, index < getNumLinks()); + return (Z2SoundHandlePool*)getNth(index); + } private: - /* 0xC */ u8 mNumHandles; + /* 0xC */ u8 handleNum_; }; #endif /* Z2SOUNDHANDLES_H */ diff --git a/include/Z2AudioLib/Z2SoundInfo.h b/include/Z2AudioLib/Z2SoundInfo.h index 668a1164cb..1d65714d8b 100644 --- a/include/Z2AudioLib/Z2SoundInfo.h +++ b/include/Z2AudioLib/Z2SoundInfo.h @@ -4,27 +4,30 @@ #include "JSystem/JAudio2/JAISoundInfo.h" #include "JSystem/JAudio2/JAIStreamDataMgr.h" #include "JSystem/JAudio2/JAUSoundInfo.h" +#include "JSystem/JAudio2/JAUSoundTable.h" class Z2SoundInfo : public JAISoundInfo, public JAUSoundInfo, public JAIStreamDataMgr, public JASGlobalInstance<Z2SoundInfo> { public: Z2SoundInfo() : JAISoundInfo(true), JAUSoundInfo(true), JASGlobalInstance<Z2SoundInfo>(true) {} - /* 802BB448 */ virtual u16 getAudibleSw(JAISoundID) const; - /* 802BB00C */ virtual u16 getBgmSeqResourceID(JAISoundID) const; - /* 802BBA88 */ virtual s32 getStreamFileEntry(JAISoundID); - /* 802BB090 */ virtual int getSoundType(JAISoundID) const; - /* 802BB0D8 */ virtual int getCategory(JAISoundID) const; - /* 802BB0E0 */ virtual u32 getPriority(JAISoundID) const; - /* 802BB6DC */ virtual void getSeInfo(JAISoundID, JAISe*) const; - /* 802BB8B4 */ virtual void getSeqInfo(JAISoundID, JAISeq*) const; - /* 802BB8E0 */ virtual void getStreamInfo(JAISoundID, JAIStream*) const; + /* 802BB448 */ virtual u16 getAudibleSw(JAISoundID soundID) const; + /* 802BB00C */ virtual u16 getBgmSeqResourceID(JAISoundID soundID) const; + /* 802BBA88 */ virtual s32 getStreamFileEntry(JAISoundID soundID); + /* 802BB090 */ virtual int getSoundType(JAISoundID soundID) const; + /* 802BB0D8 */ virtual int getCategory(JAISoundID soundID) const; + /* 802BB0E0 */ virtual u32 getPriority(JAISoundID soundID) const; + /* 802BB6DC */ virtual void getSeInfo(JAISoundID soundID, JAISe* sePtr) const; + /* 802BB8B4 */ virtual void getSeqInfo(JAISoundID soundID, JAISeq* seqPtr) const; + /* 802BB8E0 */ virtual void getStreamInfo(JAISoundID soundID, JAIStream* streamPtr) const; /* 802BBBE0 */ virtual ~Z2SoundInfo() {} - /* 802BB158 */ JAUAudibleParam getAudibleSwFull(JAISoundID); - /* 802BBA10 */ const char* getStreamFilePath(JAISoundID); - /* 802BBAC8 */ int getSwBit(JAISoundID) const; - /* 802BBB48 */ void getSoundInfo_(JAISoundID, JAISound*) const; + /* 802BB158 */ JAUAudibleParam getAudibleSwFull(JAISoundID soundID); + /* 802BBA10 */ const char* getStreamFilePath(JAISoundID soundID); + /* 802BBAC8 */ int getSwBit(JAISoundID soundID) const; + /* 802BBB48 */ void getSoundInfo_(JAISoundID soundID, JAISound* soundPtr) const; - BOOL isValid() const; + BOOL isValid() const { + return JASGlobalInstance<JAUSoundTable>::getInstance() != NULL && JASGlobalInstance<JAUSoundTable>::getInstance()->isValid(); + } }; diff --git a/include/Z2AudioLib/Z2SoundMgr.h b/include/Z2AudioLib/Z2SoundMgr.h index eea9dd8be9..137d2bc8e7 100644 --- a/include/Z2AudioLib/Z2SoundMgr.h +++ b/include/Z2AudioLib/Z2SoundMgr.h @@ -5,39 +5,38 @@ #include "JSystem/JAudio2/JAISeqMgr.h" #include "JSystem/JAudio2/JAIStreamMgr.h" -u16 seqCallback(JASTrack* param_0, u16 param_1); +u16 seqCallback(JASTrack* track, u16 command); class Z2SoundMgr : public JASGlobalInstance<Z2SoundMgr> { public: /* 802A9E80 */ Z2SoundMgr(); /* 802AA1B0 */ void calc(); - /* 802AA270 */ void setIIR(JAISound*, s16 const*); - /* 802AA33C */ void setFilterOff(JAISound*); + /* 802AA270 */ void setIIR(JAISound* sound, const s16* iir); + /* 802AA33C */ void setFilterOff(JAISound* sound); /* 802AA430 */ void resetFilterAll(); /* 802AA528 */ void mixOut(); /* 802AA67C */ void framework(); - /* 802AA6B0 */ void pauseAllGameSound(bool); - /* 802AA7DC */ void stopSoundID(JAISoundID); + /* 802AA6B0 */ void pauseAllGameSound(bool paused); + /* 802AA7DC */ void stopSoundID(JAISoundID soundID); /* 802AA84C */ void stopSync(); /* 802AA8C8 */ void stop(); /* 802AA908 */ void initParams(); - /* 802AA9E8 */ void multiVolumeSoundID(JAISoundID, f32); - /* 802AAAC4 */ bool isPlayingSoundID(JAISoundID); + /* 802AA9E8 */ void multiVolumeSoundID(JAISoundID soundID, f32 volume); + /* 802AAAC4 */ bool isPlayingSoundID(JAISoundID soundID); - /* 802A9EE8 */ virtual bool startSound(JAISoundID, JAISoundHandle*, - JGeometry::TVec3<f32> const*); + /* 802A9EE8 */ virtual bool startSound(JAISoundID soundID, JAISoundHandle* handle, const JGeometry::TVec3<f32>* posPtr); - JAISeMgr* getSeMgr() { return &mSeMgr; } - const JAISeMgr* getSeMgr() const { return &mSeMgr; } - JAISeqMgr* getSeqMgr() { return &mSeqMgr; } - const JAISeqMgr* getSeqMgr() const { return &mSeqMgr; } - JAIStreamMgr* getStreamMgr() { return &mStreamMgr; } + JAISeMgr* getSeMgr() { return &seMgr_; } + const JAISeMgr* getSeMgr() const { return &seMgr_; } + JAISeqMgr* getSeqMgr() { return &seqMgr_; } + const JAISeqMgr* getSeqMgr() const { return &seqMgr_; } + JAIStreamMgr* getStreamMgr() { return &streamMgr_; } private: - /* 0x004 */ JAISeMgr mSeMgr; - /* 0x728 */ JAISeqMgr mSeqMgr; - /* 0x79C */ JAIStreamMgr mStreamMgr; - /* 0x80C */ JAISoundID mSoundID; + /* 0x004 */ JAISeMgr seMgr_; + /* 0x728 */ JAISeqMgr seqMgr_; + /* 0x79C */ JAIStreamMgr streamMgr_; + /* 0x80C */ JAISoundID soundID_; }; // Size: 0x810 #if VERSION != VERSION_SHIELD_DEBUG diff --git a/include/Z2AudioLib/Z2SoundObjMgr.h b/include/Z2AudioLib/Z2SoundObjMgr.h index 0d1ead5e06..c7d5c4cfdf 100644 --- a/include/Z2AudioLib/Z2SoundObjMgr.h +++ b/include/Z2AudioLib/Z2SoundObjMgr.h @@ -3,6 +3,8 @@ #include "JSystem/JAudio2/JASGadget.h" #include "JSystem/JSupport/JSUList.h" +#include "Z2AudioLib/Z2SoundObject.h" +#include "global.h" class Z2CreatureEnemy; @@ -83,32 +85,39 @@ enum Z2EnemyID { class Z2SoundObjMgr : public JASGlobalInstance<Z2SoundObjMgr>, protected JSUList<Z2CreatureEnemy> { public: Z2SoundObjMgr(); - void setForceBattleArea(bool, u16, u16, u16); + void setForceBattleArea(bool forceBattle, u16, u16, u16); void searchEnemy(); - void setGhostEnemyState(u8); - u8 getEnemyID(char const*, JSULink<Z2CreatureEnemy>*); + void setGhostEnemyState(u8 state); + u8 getEnemyID(const char* enemyName, JSULink<Z2CreatureEnemy>* enemyLink); void setBattleInit(); bool checkBattleFinish(); void deleteEnemyAll(); - bool removeEnemy(JSULink<Z2CreatureEnemy>*); + bool removeEnemy(JSULink<Z2CreatureEnemy>* enemyLink); u8 isTwilightBattle(); - u8 getEnemyNumNear() { return mEnemyNumNear; } - u8 getEnemyNumVeryFar() { return mEnemyNumVeryFar; } - bool isForceBattle() { return mForceBattle; } + u8 getEnemyNumNear() const { return enemuNumNear_; } + u8 getEnemyNumVeryFar() { return enemuNumVeryFar_; } + bool isForceBattle() { return forceBattle_; } JSUList<Z2CreatureEnemy>* getEnemyList() { return this; } + #if VERSION == VERSION_SHIELD_DEBUG + JSUList<Z2SoundObjBase>* getAllList() { return &allList_; } + #endif + private: - /* 0x0C */ Z2EnemyArea mEnemyArea; + #if VERSION == VERSION_SHIELD_DEBUG + /* 0x0C */ JSUList<Z2SoundObjBase> allList_; + #endif + /* 0x0C */ Z2EnemyArea enemyArea_; /* 0x14 */ u8 field_0x14; - /* 0x15 */ u8 mEnemyNumNear; + /* 0x15 */ u8 enemuNumNear_; /* 0x16 */ u8 field_0x16; - /* 0x17 */ u8 mEnemyNumVeryFar; + /* 0x17 */ u8 enemuNumVeryFar_; /* 0x18 */ u8 field_0x18; - /* 0x19 */ u8 mGhostEnemyState; + /* 0x19 */ u8 ghostEnemyState_; /* 0x1A */ u8 field_0x1a; - /* 0x1B */ u8 mTwilightBattle; - /* 0x1C */ bool mForceBattle; + /* 0x1B */ u8 twilightBattle_; + /* 0x1C */ bool forceBattle_; }; // Size = 0x20 inline Z2SoundObjMgr* Z2GetSoundObjMgr() { diff --git a/include/Z2AudioLib/Z2SoundObject.h b/include/Z2AudioLib/Z2SoundObject.h index 4bab61402e..9db08cf480 100644 --- a/include/Z2AudioLib/Z2SoundObject.h +++ b/include/Z2AudioLib/Z2SoundObject.h @@ -6,33 +6,33 @@ class Z2SoundStarter; -class Z2SoundObjBase : public Z2SoundHandles { +class Z2SoundObjBase : public Z2SoundHandles +#if VERSION == VERSION_SHIELD_DEBUG +, public JSULink<Z2SoundObjBase> +#endif +{ public: Z2SoundObjBase(); ~Z2SoundObjBase(); void deleteObject(); - Z2SoundHandlePool* startCollisionSE(u32, u32, Z2SoundObjBase*); - - bool isAlive() const { return mIsInitialized; } - void setSoundStarter(Z2SoundStarter* i_soundStarter) { mSoundStarter = i_soundStarter; } + Z2SoundHandlePool* startCollisionSE(u32 hitID, u32 mapinfo, Z2SoundObjBase* other); -#if VERSION == VERSION_SHIELD_DEBUG - /* 0x10 */ u8 unk_0x10[0x20 - 0x10]; -#endif + bool isAlive() { return alive_; } + void setSoundStarter(Z2SoundStarter* soundStarter) { soundStarter_ = soundStarter; } - virtual void framework(u32, s8 reverb); + virtual void framework(u32 mapinfo, s8 reverb); virtual void dispose(); - virtual bool stopOK(Z2SoundHandlePool& pool); - virtual void init(Vec* pSoundPos, u8 pNumHandles); - virtual Z2SoundHandlePool* startSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startLevelSound(JAISoundID, u32, s8); + virtual bool stopOK(Z2SoundHandlePool& handlePool); + virtual void init(Vec* posPtr, u8 handleNum); + virtual Z2SoundHandlePool* startSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startLevelSound(JAISoundID soundID, u32 mapinfo, s8 reverb); - /* 0x14 */ Z2SoundStarter* mSoundStarter; - /* 0x18 */ JGeometry::TVec3<f32>* mSoundPos; + /* 0x14 */ Z2SoundStarter* soundStarter_; + /* 0x18 */ JGeometry::TVec3<f32>* pos_; /* 0x1C */ u16 field_0x1c; - /* 0x1E */ s8 field_0x1e; - /* 0x1F */ bool mIsInitialized; + /* 0x1E */ s8 reverb_; + /* 0x1F */ bool alive_; }; class Z2SoundObjSimple : public Z2SoundObjBase { @@ -40,51 +40,54 @@ public: Z2SoundObjSimple(); ~Z2SoundObjSimple() {} - virtual void init(Vec* pSoundPos, u8 pNumHandles); - virtual Z2SoundHandlePool* startSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startLevelSound(JAISoundID, u32, s8); + virtual void init(Vec* posPtr, u8 handleNum); + virtual Z2SoundHandlePool* startSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startLevelSound(JAISoundID soundID, u32 mapinfo, s8 reverb); }; class Z2SoundObjAnime : public Z2SoundObjBase { public: /* 802BEB94 */ Z2SoundObjAnime(); - /* 802BEBFC */ void initAnime(void*, bool, f32, f32); + /* 802BEBFC */ void initAnime(void* animation, bool, f32 startFrame, f32); /* 802BED68 */ void ageSounds_(); /* 802BEED4 */ void updateAnime(f32, f32); /* 802BF304 */ void updateSoundLifeTime_(f32, f32); - /* 802BF660 */ void startSoundInner(JGeometry::TVec3<f32> const&, f32, Z2SoundStarter*, u32, - s8); - /* 802BF890 */ u32 getSoundID(JAUSoundAnimationSound const*, - JGeometry::TVec3<f32> const&, f32); - /* 802BF898 */ bool playsSound(JAUSoundAnimationSound const*, JGeometry::TVec3<f32> const&, - f32); - - /* 802BEBDC */ virtual void init(Vec*, u8); - - void stopAnime() { mpAnimation = NULL; } - void setLoopStartFrame(f32 i_frame) { - mStartSoundFrame = i_frame; - mStartSoundIndex = mpAnimation->getStartSoundIndex(i_frame); + /* 802BF660 */ void startSoundInner(const JGeometry::TVec3<f32>& pos, f32 param_1, + Z2SoundStarter* soundStarter, u32 mapinfo, s8 reverb); + /* 802BF890 */ u32 getSoundID(const JAUSoundAnimationSound* animationSound, const JGeometry::TVec3<f32>&, f32); + /* 802BF898 */ bool playsSound(const JAUSoundAnimationSound* animationSound, const JGeometry::TVec3<f32>&, f32); + + /* 802BEBDC */ virtual void init(Vec* posPtr, u8 handleNum); + + void stopAnime() { animation_ = NULL; } + + void setLoopStartFrame(f32 frame) { + JUT_ASSERT(119, animation_); + startSoundFrame_ = frame; + startSoundIndex_ = animation_->getStartSoundIndex(frame); } - void setLoopEndFrame(f32 i_frame) { - mEndSoundFrame = i_frame; - mEndSoundIndex = mpAnimation->getEndSoundIndex(i_frame); + + void setLoopEndFrame(f32 frame) { + JUT_ASSERT(125, animation_); + endSoundFrame_ = frame; + endSoundIndex_ = animation_->getEndSoundIndex(frame); } - void setLoopFrame(f32 i_startFrame, f32 i_endFrame) { - setLoopStartFrame(i_startFrame); - setLoopEndFrame(i_endFrame); + + void setLoopFrame(f32 startFrame, f32 endFrame) { + setLoopStartFrame(startFrame); + setLoopEndFrame(endFrame); } - /* 0x20 */ JAUSoundAnimation* mpAnimation; + /* 0x20 */ JAUSoundAnimation* animation_; /* 0x24 */ int field_0x24; - /* 0x28 */ f32 mCurSoundFrame; - /* 0x2C */ f32 mStartSoundFrame; - /* 0x30 */ f32 mEndSoundFrame; - /* 0x34 */ int mStartSoundIndex; - /* 0x38 */ int mEndSoundIndex; + /* 0x28 */ f32 curSoundFrame_; + /* 0x2C */ f32 startSoundFrame_; + /* 0x30 */ f32 endSoundFrame_; + /* 0x34 */ int startSoundIndex_; + /* 0x38 */ int endSoundIndex_; /* 0x3C */ int field_0x3c; - /* 0x40 */ int mCurSoundIndex; - /* 0x44 */ bool mReverse; + /* 0x40 */ int curSoundIndex_; + /* 0x44 */ bool reverse_; }; class Z2DopplerSoundObjBase : public Z2SoundObjBase { @@ -92,10 +95,10 @@ public: Z2DopplerSoundObjBase(); ~Z2DopplerSoundObjBase(); - virtual void framework(u32, s8); - virtual void init(Vec*, u8); - virtual Z2SoundHandlePool* startSound(JAISoundID, u32, s8); - virtual Z2SoundHandlePool* startLevelSound(JAISoundID, u32, s8); + virtual void framework(u32 mapinfo, s8 reverb); + virtual void init(Vec* posPtr, u8 handleNum); + virtual Z2SoundHandlePool* startSound(JAISoundID soundID, u32 mapinfo, s8 reverb); + virtual Z2SoundHandlePool* startLevelSound(JAISoundID soundID, u32 mapinfo, s8 reverb); /* 0x20 */ JGeometry::TVec3<f32> field_0x20; /* 0x2C */ JGeometry::TVec3<f32> field_0x2c; @@ -104,7 +107,7 @@ public: class Z2SoundObjArrow : public Z2DopplerSoundObjBase { public: /* 802BEB38 */ Z2SoundObjArrow(); - /* 802BEB74 */ virtual void init(Vec*, u8); + /* 802BEB74 */ virtual void init(Vec* posPtr, u8 handleNum); }; #endif /* Z2SOUNDOBJECT_H */ diff --git a/include/Z2AudioLib/Z2SoundStarter.h b/include/Z2AudioLib/Z2SoundStarter.h index ece10c7fd7..38f1e514ee 100644 --- a/include/Z2AudioLib/Z2SoundStarter.h +++ b/include/Z2AudioLib/Z2SoundStarter.h @@ -4,14 +4,15 @@ #include "JSystem/JAudio2/JAISoundStarter.h" struct Z2SoundStarter : public JAISoundStarter, public JASGlobalInstance<Z2SoundStarter> { - Z2SoundStarter(bool); - void setPortData(JAISoundHandle*, u32, u16, s8); - u16 getPortData(JAISoundHandle*, u32, s8); + Z2SoundStarter(bool setInstance); + void setPortData(JAISoundHandle* handlePtr, u32 portNum, u16 data, s8 childIndex); + u16 getPortData(JAISoundHandle* handlePtr, u32 portNum, s8 childIndex); virtual ~Z2SoundStarter() {} - virtual bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*); - virtual bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*, u32, float, - float, float, float, float, u32); + virtual bool startSound(JAISoundID soundID, JAISoundHandle* handlePtr, const JGeometry::TVec3<f32>* posPtr); + virtual bool startSound(JAISoundID soundID, JAISoundHandle* handlePtr, + const JGeometry::TVec3<f32>* posPtr, u32 mapinfo, f32 fxMix, + f32 pitch, f32 volume, f32 pan, f32 dolby, u32 moveSteps); }; inline Z2SoundStarter* Z2GetSoundStarter() { diff --git a/include/Z2AudioLib/Z2StatusMgr.h b/include/Z2AudioLib/Z2StatusMgr.h index f3b35f612f..6532801576 100644 --- a/include/Z2AudioLib/Z2StatusMgr.h +++ b/include/Z2AudioLib/Z2StatusMgr.h @@ -2,7 +2,7 @@ #define Z2STATUSMGR_H #include "JSystem/JAudio2/JASGadget.h" -#include "dolphin/mtx.h" +#include <dolphin/mtx.h> struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> { Z2StatusMgr(); @@ -13,13 +13,13 @@ struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> { void menuIn(); void menuOut(); bool isMovieDemo(); - void setDemoName(char*); + void setDemoName(char* demoName); void processTime(); bool checkDayTime(); - void setEventBit(void*); - void setCameraPolygonPos(Vec*); + void setEventBit(void* eventBit); + void setCameraPolygonPos(Vec* polygonPos); void setCameraGroupInfo(u8); - void setCameraInWaterDepth(float); + void setCameraInWaterDepth(f32 depth); u8 getDemoStatus() { return mDemoStatus; } void setHour(s32 hour) { mHour = hour; } @@ -28,7 +28,7 @@ struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> { f32 getCameraInWaterDepth() { return mUnderwaterDepth; } f32 getCameraInWaterDepthRatio() { return mCameraInWaterDepthRatio; } u8 getHour() { return mHour; } - bool isPaused() { return mPauseFlag; } + u8 isPaused() { return mPauseFlag; } bool isHeartGuageOn() { return mHeartGaugeOn; } void getCameraMapInfo(u32 info) { mCameraMapInfo = info; } void setPauseFlag(u8 flag) { mPauseFlag = flag; } diff --git a/include/Z2AudioLib/Z2WolfHowlMgr.h b/include/Z2AudioLib/Z2WolfHowlMgr.h index 3e7a586d04..2b2595d1ea 100644 --- a/include/Z2AudioLib/Z2WolfHowlMgr.h +++ b/include/Z2AudioLib/Z2WolfHowlMgr.h @@ -13,14 +13,33 @@ * The low byte of each u16 line corresponds to length of note */ -struct SongNote { - u8 barType; +struct Z2WolfHowlLine { + u8 type; u8 length; }; +#define HOWL_LINE_HIGH 1 +#define HOWL_LINE_MID 2 +#define HOWL_LINE_LOW 3 + struct Z2WolfHowlData { - u8 mLineNum; - SongNote* mSongData; + u8 lineNum; + Z2WolfHowlLine* lineData; +}; + +enum Z2WolfHowlCurveID { + Z2WOLFHOWL_NONE = -1, + Z2WOLFHOWL_TOBIKUSA, + Z2WOLFHOWL_UMAKUSA, + Z2WOLFHOWL_ZELDASONG, + Z2WOLFHOWL_HEALINGSONG, + Z2WOLFHOWL_SOULREQUIEM, + Z2WOLFHOWL_LIGHTPRELUDE, + Z2WOLFHOWL_NEWSONG1, + Z2WOLFHOWL_NEWSONG2, + Z2WOLFHOWL_NEWSONG3, + + Z2WOLFHOWL_MAX }; class Z2WolfHowlMgr : public JASGlobalInstance<Z2WolfHowlMgr> { @@ -32,32 +51,32 @@ public: f32 getNowPitch(); f32 getNowInputValue(); void calcPitchMod(f32, f32); - s8 startWolfHowlSound(f32, f32, bool, f32); - void setCorrectData(s8, Z2WolfHowlData*); - SongNote getCorrectLine(u8); + s8 startWolfHowlSound(f32, f32 stickValue, bool isHowl, f32); + void setCorrectData(s8 curveID, Z2WolfHowlData* data); + Z2WolfHowlLine getCorrectLine(u8 lineIndex); u8 getCorrectLineNum(); s8 checkLine(); s8 getOnLineNum(); - void startWindStoneSound(s8, Vec*); - int startGuideMelody(bool); + void startWindStoneSound(s8 curveID, Vec* pos); + int startGuideMelody(bool startSound); void skipCorrectDemo(); - void setCorrectCurve(s8 i_curve) { setCorrectData(i_curve, NULL); } + void setCorrectCurve(s8 curveID) { setCorrectData(curveID, NULL); } u32 getTimer() { return mTimer; } u8 getReleaseTimer() { return mReleaseTimer; } u8 getCorrectCurveID() { return mCorrectCurveID; } private: - /* 0x00 */ JAISoundHandle field_0x00; - /* 0x04 */ JAISoundHandle field_0x04; - /* 0x08 */ JAISoundHandle field_0x08; - /* 0x0C */ Z2WolfHowlData* mpCurSong; - /* 0x10 */ Z2WolfHowlData* mpSongList; + /* 0x00 */ JAISoundHandle mWolfHowlHandle; + /* 0x04 */ JAISoundHandle mWindStoneHandle; + /* 0x08 */ JAISoundHandle mGuideHandle; + /* 0x0C */ Z2WolfHowlData* mNowHowlData; + /* 0x10 */ Z2WolfHowlData* mGuideData; /* 0x14 */ f32 mNowInputValue; - /* 0x18 */ f32 field_0x18; + /* 0x18 */ f32 mWolfHowlVolume; /* 0x1C */ f32 field_0x1c; /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; + /* 0x24 */ f32 mNowPitch; /* 0x28 */ f32 field_0x28; /* 0x2C */ u8 field_0x2c[4]; /* 0x30 */ f32 field_0x30; @@ -69,13 +88,13 @@ private: /* 0x8D */ u8 field_0x8d; /* 0x8E */ s8 mCorrectCurveID; /* 0x8F */ u8 field_0x8f; - /* 0x90 */ s16 field_0x90; + /* 0x90 */ s16 mCorrectScore; /* 0x92 */ u16 field_0x92[20]; - /* 0xBA */ u8 field_0xba; + /* 0xBA */ u8 mNowLineIndex; /* 0xBB */ s8 field_0xbb; - /* 0xBC */ u8 field_0xbc; + /* 0xBC */ u8 mNowLineScore; /* 0xBD */ s8 field_0xbd; - /* 0xBE */ u16 field_0xbe; + /* 0xBE */ u16 mFullScore; }; #endif /* Z2WOLFHOWLMGR_H */ |
