From 86a17bbfb726a5f39e23af257ac011af3e1f028c Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 17 May 2026 17:10:52 -0400 Subject: [PATCH] JAIZelInst OK (#1005) * JAIZelInst OK * Clean up some default args --- config/D44J01/symbols.txt | 8 +- config/GZLE01/symbols.txt | 8 +- config/GZLJ01/symbols.txt | 8 +- config/GZLP01/symbols.txt | 8 +- configure.py | 19 +- include/JAZelAudio/JAIZelBasic.h | 4 +- include/JAZelAudio/JAIZelInst.h | 32 +- include/JAZelAudio/JAZelAudio_BGM.h | 6 +- include/JSystem/JAudio/JAIBasic.h | 8 +- .../JSystem/JStudio/JStudio_JAudio/control.h | 2 +- include/JSystem/JUtility/JUTTexture.h | 4 +- include/d/actor/d_a_player_main.h | 16 +- include/d/d_com_inf_game.h | 30 +- include/f_op/f_op_actor.h | 4 +- include/f_op/f_op_actor_mng.h | 8 +- include/m_Do/m_Do_audio.h | 16 +- src/JAZelAudio/JAIZelBasic.cpp | 29 +- src/JAZelAudio/JAIZelInst.cpp | 446 ++++++++++++++++-- src/JAZelAudio/JAIZelScene.cpp | 23 +- src/JAZelAudio/JAIZelSound.cpp | 13 +- src/JSystem/JAudio/JAIBasic.cpp | 2 +- .../JStudio/JStudio_JAudio/object-sound.cpp | 22 +- src/JSystem/JUtility/JUTTexture.cpp | 12 +- src/d/actor/d_a_bdk.cpp | 4 +- src/d/actor/d_a_himo2.cpp | 10 +- src/d/actor/d_a_npc_ji1.cpp | 2 +- src/d/actor/d_a_player_crawl.inc | 2 +- src/d/actor/d_a_player_dproc.inc | 12 +- src/d/actor/d_a_player_fan.inc | 4 +- src/d/actor/d_a_player_main.cpp | 12 +- src/d/actor/d_a_player_ship.inc | 2 +- src/d/actor/d_a_player_sword.inc | 2 +- src/d/actor/d_a_player_vomit.inc | 2 +- src/d/d_cc_uty.cpp | 4 + src/d/d_file_select.cpp | 70 +-- src/d/d_kankyo_rain.cpp | 2 +- src/d/d_menu_option.cpp | 26 +- src/d/d_s_menu.cpp | 16 +- src/d/d_s_name.cpp | 2 +- src/d/d_wood.cpp | 8 +- src/f_op/f_op_actor.cpp | 2 +- 41 files changed, 675 insertions(+), 235 deletions(-) diff --git a/config/D44J01/symbols.txt b/config/D44J01/symbols.txt index bb9634361..7d6b243dd 100644 --- a/config/D44J01/symbols.txt +++ b/config/D44J01/symbols.txt @@ -18334,10 +18334,10 @@ LOOP_BLOCKS__Q27JAInter9StreamLib = .sdata:0x803EA420; // type:object size:0x4 s LOOP_SAMPLESIZE__Q27JAInter9StreamLib = .sdata:0x803EA424; // type:object size:0x4 scope:global align:4 data:4byte outputmode__Q27JAInter9StreamLib = .sdata:0x803EA428; // type:object size:0x4 scope:global align:4 data:4byte jai_rnd_seed = .sdata:0x803EA430; // type:object size:0x4 scope:global align:4 data:4byte -mCPosToNote3__10JAIZelInst = .sdata:0x803EA438; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote4__10JAIZelInst = .sdata:0x803EA440; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote61__10JAIZelInst = .sdata:0x803EA448; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote62__10JAIZelInst = .sdata:0x803EA450; // type:object size:0x5 scope:global align:4 data:string +mCPosToNote3__10JAIZelInst = .sdata:0x803EA438; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote4__10JAIZelInst = .sdata:0x803EA440; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote61__10JAIZelInst = .sdata:0x803EA448; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote62__10JAIZelInst = .sdata:0x803EA450; // type:object size:0x5 scope:global align:4 data:byte SE_REGIST_MAX__11JAIZelParam = .sdata:0x803EA458; // type:object size:0x4 scope:global align:4 data:4byte SOUND_SCENE_MAX__11JAIZelParam = .sdata:0x803EA45C; // type:object size:0x4 scope:global align:4 data:4byte STREAM_DECODED_BUFFERS__11JAIZelParam = .sdata:0x803EA460; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/GZLE01/symbols.txt b/config/GZLE01/symbols.txt index 46113d270..90674e1c3 100644 --- a/config/GZLE01/symbols.txt +++ b/config/GZLE01/symbols.txt @@ -18350,10 +18350,10 @@ LOOP_BLOCKS__Q27JAInter9StreamLib = .sdata:0x803F64F0; // type:object size:0x4 s LOOP_SAMPLESIZE__Q27JAInter9StreamLib = .sdata:0x803F64F4; // type:object size:0x4 scope:global align:4 data:4byte outputmode__Q27JAInter9StreamLib = .sdata:0x803F64F8; // type:object size:0x4 scope:global align:4 data:4byte jai_rnd_seed = .sdata:0x803F6500; // type:object size:0x4 scope:global align:4 data:4byte -mCPosToNote3__10JAIZelInst = .sdata:0x803F6508; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote4__10JAIZelInst = .sdata:0x803F6510; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote61__10JAIZelInst = .sdata:0x803F6518; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote62__10JAIZelInst = .sdata:0x803F6520; // type:object size:0x5 scope:global align:4 data:string +mCPosToNote3__10JAIZelInst = .sdata:0x803F6508; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote4__10JAIZelInst = .sdata:0x803F6510; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote61__10JAIZelInst = .sdata:0x803F6518; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote62__10JAIZelInst = .sdata:0x803F6520; // type:object size:0x5 scope:global align:4 data:byte SE_REGIST_MAX__11JAIZelParam = .sdata:0x803F6528; // type:object size:0x4 scope:global align:4 data:4byte SOUND_SCENE_MAX__11JAIZelParam = .sdata:0x803F652C; // type:object size:0x4 scope:global align:4 data:4byte STREAM_DECODED_BUFFERS__11JAIZelParam = .sdata:0x803F6530; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/GZLJ01/symbols.txt b/config/GZLJ01/symbols.txt index c331b28b5..75e5ee4da 100644 --- a/config/GZLJ01/symbols.txt +++ b/config/GZLJ01/symbols.txt @@ -18265,10 +18265,10 @@ LOOP_BLOCKS__Q27JAInter9StreamLib = .sdata:0x803E99C8; // type:object size:0x4 s LOOP_SAMPLESIZE__Q27JAInter9StreamLib = .sdata:0x803E99CC; // type:object size:0x4 scope:global align:4 data:4byte outputmode__Q27JAInter9StreamLib = .sdata:0x803E99D0; // type:object size:0x4 scope:global align:4 data:4byte jai_rnd_seed = .sdata:0x803E99D8; // type:object size:0x4 scope:global align:4 data:4byte -mCPosToNote3__10JAIZelInst = .sdata:0x803E99E0; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote4__10JAIZelInst = .sdata:0x803E99E8; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote61__10JAIZelInst = .sdata:0x803E99F0; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote62__10JAIZelInst = .sdata:0x803E99F8; // type:object size:0x5 scope:global align:4 data:string +mCPosToNote3__10JAIZelInst = .sdata:0x803E99E0; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote4__10JAIZelInst = .sdata:0x803E99E8; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote61__10JAIZelInst = .sdata:0x803E99F0; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote62__10JAIZelInst = .sdata:0x803E99F8; // type:object size:0x5 scope:global align:4 data:byte SE_REGIST_MAX__11JAIZelParam = .sdata:0x803E9A00; // type:object size:0x4 scope:global align:4 data:4byte SOUND_SCENE_MAX__11JAIZelParam = .sdata:0x803E9A04; // type:object size:0x4 scope:global align:4 data:4byte STREAM_DECODED_BUFFERS__11JAIZelParam = .sdata:0x803E9A08; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/GZLP01/symbols.txt b/config/GZLP01/symbols.txt index 9330a4f56..dc1f2cf15 100644 --- a/config/GZLP01/symbols.txt +++ b/config/GZLP01/symbols.txt @@ -18372,10 +18372,10 @@ LOOP_BLOCKS__Q27JAInter9StreamLib = .sdata:0x803FDCE8; // type:object size:0x4 s LOOP_SAMPLESIZE__Q27JAInter9StreamLib = .sdata:0x803FDCEC; // type:object size:0x4 scope:global align:4 data:4byte outputmode__Q27JAInter9StreamLib = .sdata:0x803FDCF0; // type:object size:0x4 scope:global align:4 data:4byte jai_rnd_seed = .sdata:0x803FDCF8; // type:object size:0x4 scope:global align:4 data:4byte -mCPosToNote3__10JAIZelInst = .sdata:0x803FDD00; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote4__10JAIZelInst = .sdata:0x803FDD08; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote61__10JAIZelInst = .sdata:0x803FDD10; // type:object size:0x5 scope:global align:4 data:string -mCPosToNote62__10JAIZelInst = .sdata:0x803FDD18; // type:object size:0x5 scope:global align:4 data:string +mCPosToNote3__10JAIZelInst = .sdata:0x803FDD00; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote4__10JAIZelInst = .sdata:0x803FDD08; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote61__10JAIZelInst = .sdata:0x803FDD10; // type:object size:0x5 scope:global align:4 data:byte +mCPosToNote62__10JAIZelInst = .sdata:0x803FDD18; // type:object size:0x5 scope:global align:4 data:byte SE_REGIST_MAX__11JAIZelParam = .sdata:0x803FDD20; // type:object size:0x4 scope:global align:4 data:4byte SOUND_SCENE_MAX__11JAIZelParam = .sdata:0x803FDD24; // type:object size:0x4 scope:global align:4 data:4byte STREAM_DECODED_BUFFERS__11JAIZelParam = .sdata:0x803FDD28; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/configure.py b/configure.py index 47b80a4d8..d8827cdf0 100755 --- a/configure.py +++ b/configure.py @@ -552,7 +552,7 @@ config.libs = [ Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cc_d.cpp"), Object(Matching, "d/d_cc_mass_s.cpp"), Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cc_s.cpp"), - Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cc_uty.cpp"), + Object(Matching, "d/d_cc_uty.cpp"), Object(NonMatching, "d/d_cam_param.cpp"), Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cam_type.cpp"), Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cam_style.cpp"), @@ -904,20 +904,23 @@ config.libs = [ Object(Matching, "dolphin/gba/GBAXfer.c"), ], ), - JSystemLib( - "JAZelAudio", - [ + { + "lib": "JAZelAudio", + "mw_version": "GC/1.3.2", + "cflags": cflags_dolzel, + "progress_category": "game", + "host": True, + "objects": [ Object(NonMatching, "JAZelAudio/JAIZelBasic.cpp"), Object(NonMatching, "JAZelAudio/JAIZelAnime.cpp"), Object(NonMatching, "JAZelAudio/JAIZelAtmos.cpp"), - Object(NonMatching, "JAZelAudio/JAIZelInst.cpp"), + Object(Matching, "JAZelAudio/JAIZelInst.cpp"), Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "JAZelAudio/JAIZelParam.cpp"), Object(NonMatching, "JAZelAudio/JAIZelCharVoiceTable.cpp"), - Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "JAZelAudio/JAIZelScene.cpp"), + Object(Matching, "JAZelAudio/JAIZelScene.cpp"), Object(Matching, "JAZelAudio/JAIZelSound.cpp"), ], - progress_category="game", - ), + }, DolphinLib( "gf", [ diff --git a/include/JAZelAudio/JAIZelBasic.h b/include/JAZelAudio/JAIZelBasic.h index 493d07ebf..82e998add 100644 --- a/include/JAZelAudio/JAIZelBasic.h +++ b/include/JAZelAudio/JAIZelBasic.h @@ -22,7 +22,7 @@ public: void gframeProcess(); void resetProcess(); void resetRecover(); - void bgmStreamPrepare(u32); + void bgmStreamPrepare(u32 soundID); void bgmStreamPlay(); void bgmStart(u32, u32, s32); void bgmStop(u32, s32); @@ -60,7 +60,7 @@ public: void startLandingDemo(); void endLandingDemo(); void initSe(); - void seStart(u32, Vec*, u32, s8, f32, f32, f32, f32, u8); + JAISound** seStart(u32, Vec* = NULL, u32 = 0 , s8 = 0, f32 = 1.0f, f32 = 1.0f, f32 = -1.0f, f32 = -1.0f, u8 = 0); void seStop(u32, s32); BOOL checkSePlaying(u32); void seStopActor(Vec*, u32); diff --git a/include/JAZelAudio/JAIZelInst.h b/include/JAZelAudio/JAIZelInst.h index 0759d9580..17209e22e 100644 --- a/include/JAZelAudio/JAIZelInst.h +++ b/include/JAZelAudio/JAIZelInst.h @@ -3,6 +3,8 @@ #include "dolphin/types.h" +class JAISound; + class JAIZelInst { public: JAIZelInst(); @@ -10,30 +12,38 @@ public: void reset(); void playArmSwing(s32, s32); void stopArmSwing(); - void setStickPos(s32, s32); + s32 setStickPos(s32, s32); void play(); void setBeat(s32); void setVolume(f32); - void metronomePlay(s32, s32); + s32 metronomePlay(s32, s32); s32 judge(s32, s32); void ambientPlay(); void armSoundPlay(s32); f32 getMelodyPattern(s32, s32, s32*); - void getMelodyBeat(s32); - void getMelodyGFrames(s32); + s32 getMelodyBeat(s32); + f32 getMelodyGFrames(s32); void melodyPlay(s32); void melodyStop(); u8 getBeat() { return mBeat; } f32 getBeatFrames() { return mBeatFrames; } + static u16 m_note_pattern[][6]; + static u8 m_stick_to_note_table[]; + static u8 mMelodyPattern[][7]; + static u8 mCPosToNote3[]; + static u8 mCPosToNote4[]; + static u8 mCPosToNote61[]; + static u8 mCPosToNote62[]; + public: - /* 0x00 */ int field_0x0; + /* 0x00 */ JAISound* field_0x0; /* 0x04 */ u8 field_0x4[5]; - /* 0x0C */ int field_0xc; + /* 0x0C */ s32 field_0xc; /* 0x10 */ int field_0x10; /* 0x14 */ int field_0x14; - /* 0x18 */ u8 field_0x18[0x1e - 0x18]; + /* 0x18 */ u8 field_0x18[6]; /* 0x1E */ u8 field_0x1e; /* 0x1F */ u8 mBeat; /* 0x20 */ f32 field_0x20; @@ -42,10 +52,10 @@ public: /* 0x2C */ f32 field_0x2c; /* 0x30 */ f32 mBeatFrames; /* 0x34 */ u8 field_0x34; - /* 0x38 */ int field_0x38; - /* 0x3C */ int field_0x3c; - /* 0x40 */ int field_0x40; - /* 0x44 */ int field_0x44; + /* 0x38 */ JAISound** field_0x38; + /* 0x3C */ JAISound** field_0x3c; + /* 0x40 */ JAISound** field_0x40; + /* 0x44 */ JAISound** field_0x44; /* 0x48 */ u8 field_0x48; }; diff --git a/include/JAZelAudio/JAZelAudio_BGM.h b/include/JAZelAudio/JAZelAudio_BGM.h index 2ae5721b1..21271456d 100644 --- a/include/JAZelAudio/JAZelAudio_BGM.h +++ b/include/JAZelAudio/JAZelAudio_BGM.h @@ -2,7 +2,7 @@ #define JAZELAUDIO_BGM_H enum { - // These are official BGM sequence enum names extracted from WWHD. + // These are official BGM sequence enum names extracted from TWWHD. JA_BGM_SE_SEQUENCE = 0x80000800, JA_BGM_ISLAND_LINK = 0x80000001, JA_BGM_ITEM_GET = 0x80000002, @@ -104,7 +104,7 @@ enum { }; enum { - // These are official BGM stream enum names extracted from WWHD. + // These are official BGM stream enum names extracted from TWWHD. JA_STRM_PROLOGUE = 0xC0000000, JA_STRM_DEMO_TETRA_FLY = 0xC0000001, JA_STRM_BTD_START = 0xC0000002, @@ -207,4 +207,4 @@ enum { JA_BGM_UNK_152 = 0x80000152, // 0x4C JA_BGM_PAST_RANE }; -#endif /* JAZELAUDIO_BGM_H */ \ No newline at end of file +#endif /* JAZELAUDIO_BGM_H */ diff --git a/include/JSystem/JAudio/JAIBasic.h b/include/JSystem/JAudio/JAIBasic.h index 443958b80..9856446ee 100644 --- a/include/JSystem/JAudio/JAIBasic.h +++ b/include/JSystem/JAudio/JAIBasic.h @@ -39,7 +39,7 @@ public: void initCamera(); BOOL initReadFile(); void processFrameWork(); - void startSoundVec(u32, JAISound**, Vec*, u32, u32, u8); + void startSoundVec(u32 soundID, 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*); @@ -89,10 +89,10 @@ public: } // 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); } + u32 checkEnablePrepare(u32 soundID) { return (soundID & JAISoundID_TypeMask); } - void prepareSoundVec(u32 flags, JAISound** pSound, Vec* pos, u32 r7, u32 r8, u8 r9) { - startSoundVec(flags, pSound, pos, r7, r8, r9); + void prepareSoundVec(u32 soundID, JAISound** pSound, Vec* pos, u32 r7, u32 r8, u8 r9) { + startSoundVec(soundID, pSound, pos, r7, r8, r9); if (*pSound) { (*pSound)->setPrepareFlag(1); } diff --git a/include/JSystem/JStudio/JStudio_JAudio/control.h b/include/JSystem/JStudio/JStudio_JAudio/control.h index 4e8010ab2..9f1450d72 100644 --- a/include/JSystem/JStudio/JStudio_JAudio/control.h +++ b/include/JSystem/JStudio/JStudio_JAudio/control.h @@ -53,7 +53,7 @@ struct TAdaptor_sound : public JStudio::TAdaptor_sound { /* 0x0E8 */ JAIBasic* mpBasic; /* 0x0EC */ JAISound* mpSound; - /* 0x0F0 */ u32 mFlags; + /* 0x0F0 */ u32 mSoundID; /* 0x0F4 */ Vec* mPosition; /* 0x0F8 */ Vec _F8; diff --git a/include/JSystem/JUtility/JUTTexture.h b/include/JSystem/JUtility/JUTTexture.h index 992485c98..e350103a8 100644 --- a/include/JSystem/JUtility/JUTTexture.h +++ b/include/JSystem/JUtility/JUTTexture.h @@ -70,7 +70,7 @@ public: void setEmbPaletteDelFlag(bool flag) { mFlags = (mFlags & 1) | (flag << 1); } u8 getTlutName() const { return mTlutName; } bool operator==(const JUTTexture& other) { - return mTexInfo == other.mTexInfo && mAttachedPalette == other.mAttachedPalette && + return mTexInfo == other.mTexInfo && mPalette == other.mPalette && mWrapS == other.mWrapS && mWrapT == other.mWrapT && mMinFilter == other.mMinFilter && mMagFilter == other.mMagFilter && mMinLOD == other.mMinLOD && mMinLOD == other.mMinLOD && mLODBias == other.mLODBias; @@ -82,7 +82,7 @@ private: /* 0x20 */ const ResTIMG* mTexInfo; /* 0x24 */ void* mTexData; /* 0x28 */ JUTPalette* mEmbPalette; - /* 0x2C */ JUTPalette* mAttachedPalette; + /* 0x2C */ JUTPalette* mPalette; /* 0x30 */ u8 mWrapS; /* 0x31 */ u8 mWrapT; /* 0x32 */ u8 mMinFilter; diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index b9c1ba1c9..65f0bc666 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -1304,7 +1304,7 @@ public: BOOL dProcOpenTreasure_init(); BOOL dProcOpenTreasure(); #if VERSION > VERSION_DEMO - void setGetItemSound(u16, int); + void setGetItemSound(u16, BOOL); BOOL setGetDemo(); #endif BOOL dProcGetItem_init(); @@ -2156,12 +2156,12 @@ public: /* 0x34CC */ u8 m34CC; /* 0x34CD */ u8 m34CD; /* 0x34CE */ u8 m34CE; - /* 0x34D0 */ s16 m34D0; - /* 0x34D2 */ s16 m34D2; - /* 0x34D4 */ s16 m34D4; - /* 0x34D6 */ s16 m34D6; - /* 0x34D8 */ s16 m34D8; - /* 0x34DA */ s16 m34DA; + /* 0x34D0 */ s16 m34D0; // TODO: procvar + /* 0x34D2 */ s16 m34D2; // TODO: procvar + /* 0x34D4 */ s16 m34D4; // TODO: procvar + /* 0x34D6 */ s16 m34D6; // TODO: procvar + /* 0x34D8 */ s16 m34D8; // TODO: procvar + /* 0x34DA */ s16 m34DA; // TODO: procvar /* 0x34DC */ s16 m34DC; /* 0x34DE */ s16 m34DE; /* 0x34E0 */ s16 m34E0; @@ -2241,7 +2241,7 @@ public: daPy_ANM mDamageAnm; int mBottleItem; } /* 0x3570 */ mProcVar0; - /* 0x3574 */ s32 m3574; + /* 0x3574 */ s32 m3574; // TODO: procvar /* 0x3578 */ int m3578; /* 0x357C */ int m357C; /* 0x3580 */ int m3580; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 549808159..6be1f50c6 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1711,8 +1711,8 @@ inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo) { return g_dComIfG_gameInfo.save.isSwitch(i_no, i_roomNo); } -inline void dComIfGs_revSwitch(int i_no, int i_roomNo) { - g_dComIfG_gameInfo.save.revSwitch(i_no, i_roomNo); +inline BOOL dComIfGs_revSwitch(int i_no, int i_roomNo) { + return g_dComIfG_gameInfo.save.revSwitch(i_no, i_roomNo); } inline void dComIfGs_onItem(int bitNo, int roomNo) { @@ -1782,7 +1782,7 @@ inline u16 dComIfGs_getDate() { } inline void dComIfGs_setDate(u16 i_date) { - return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setDate(i_date); + g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setDate(i_date); } inline f32 dComIfGs_getTime() { @@ -1790,7 +1790,7 @@ inline f32 dComIfGs_getTime() { } inline void dComIfGs_setTime(f32 i_time) { - return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setTime(i_time); + g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setTime(i_time); } inline BOOL dComIfGs_isGetItem(int i_field, u8 i_item) { @@ -1798,7 +1798,7 @@ inline BOOL dComIfGs_isGetItem(int i_field, u8 i_item) { } inline void dComIfGs_onGetItem(int i_field, u8 i_item) { - return g_dComIfG_gameInfo.save.getPlayer().getGetItem().onItem(i_field, i_item); + g_dComIfG_gameInfo.save.getPlayer().getGetItem().onItem(i_field, i_item); } inline BOOL dComIfGs_isGetItemBeast(u8 i_beastIdx) { @@ -1900,11 +1900,11 @@ inline void dComIfGs_setClearCount(u8 count) { } inline void dComIfGs_clearCountUp() { - return g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().clearCountUp(); + g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().clearCountUp(); } inline void dComIfGs_addDeathCount() { - return g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().addDeathCount(); + g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().addDeathCount(); } inline u8 dComIfGs_getRandomSalvagePoint() { @@ -1924,7 +1924,7 @@ inline u8 dComIfGs_getPuzzleInfo() { } inline void dComIfGs_setPuzzleInfo(int i_idx) { - return g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().setPuzzleInfo(i_idx); + g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().setPuzzleInfo(i_idx); } inline u8 dComIfGs_getGbaRupeeCount() { @@ -2644,7 +2644,7 @@ inline s16 dComIfGp_getItemPictureNumCount() { } inline void dComIfGp_setItemPictureNumCount(s16 num) { - return g_dComIfG_gameInfo.play.setItemPictureNumCount(num); + g_dComIfG_gameInfo.play.setItemPictureNumCount(num); } inline void dComIfGp_clearItemPictureNumCount() { @@ -2656,7 +2656,7 @@ inline int dComIfGp_getItemArrowNumCount() { } inline void dComIfGp_setItemArrowNumCount(s16 num) { - return g_dComIfG_gameInfo.play.setItemArrowNumCount(num); + g_dComIfG_gameInfo.play.setItemArrowNumCount(num); } inline void dComIfGp_clearItemArrowNumCount() { @@ -2970,7 +2970,7 @@ inline s16 dComIfGp_getMiniGameRupee() { } inline void dComIfGp_setMiniGameRupee(s16 count) { - return g_dComIfG_gameInfo.play.setMiniGameRupee(count); + g_dComIfG_gameInfo.play.setMiniGameRupee(count); } inline void dComIfGp_plusMiniGameRupee(s16 count) { @@ -3202,7 +3202,7 @@ inline u8 dComIfGp_getAdvanceDirection() { } inline void dComIfGp_setAdvanceDirection(u8 direction) { - return g_dComIfG_gameInfo.play.setDirection(direction); + g_dComIfG_gameInfo.play.setDirection(direction); } /** @@ -3242,7 +3242,7 @@ inline dStage_roomDt_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) { } inline void dComIfGp_roomControl_checkDrawArea() { - return g_dComIfG_gameInfo.play.getRoomControl()->checkDrawArea(); + g_dComIfG_gameInfo.play.getRoomControl()->checkDrawArea(); } inline void dComIfGp_roomControl_setStayNo(int stayNo) { @@ -3581,11 +3581,11 @@ inline int dComIfGp_evmng_cameraPlay() { */ inline void dComIfGp_createDemo() { - return g_dComIfG_gameInfo.play.createDemo(); + g_dComIfG_gameInfo.play.createDemo(); } inline void dComIfGp_removeDemo() { - return g_dComIfG_gameInfo.play.removeDemo(); + g_dComIfG_gameInfo.play.removeDemo(); } inline dDemo_manager_c* dComIfGp_demo_get() { diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index e28f59b7c..0ba53b5fd 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -305,7 +305,7 @@ public: /* 0x26C */ actor_attention_types attention_info; /* 0x284 */ s8 max_health; /* 0x285 */ s8 health; - /* 0x288 */ s32 itemTableIdx; + /* 0x288 */ int itemTableIdx; /* 0x28C */ u8 stealItemBitNo; // For limited items (Blue Chu Jelly), this is the first itemBitNo to set. /* 0x28D */ s8 stealItemLeft; @@ -368,7 +368,7 @@ public: STATIC_ASSERT(sizeof(fopEn_enemy_c) == 0x2AC); -s32 fopAc_IsActor(void* actor); +BOOL fopAc_IsActor(void* actor); extern int g_fopAc_type; extern actor_method_class g_fopAc_Method; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index e54d703af..10ff52872 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -363,22 +363,22 @@ inline cXyz* fopAcM_getCullSizeBoxMin(fopAc_ac_c* actor) { inline void dComIfGs_onSwitch(int i_no, int i_roomNo); inline void dComIfGs_offSwitch(int i_no, int i_roomNo); inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo); -inline void dComIfGs_revSwitch(int i_no, int i_roomNo); +inline BOOL dComIfGs_revSwitch(int i_no, int i_roomNo); inline void dComIfGs_offActor(int i_no, int i_roomNo); inline void fopAcM_onSwitch(fopAc_ac_c* pActor, int sw) { - return dComIfGs_onSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); + dComIfGs_onSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); } inline void fopAcM_offSwitch(fopAc_ac_c* pActor, int sw) { - return dComIfGs_offSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); + dComIfGs_offSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); } inline BOOL fopAcM_isSwitch(fopAc_ac_c* pActor, int sw) { return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); } -inline void fopAcM_revSwitch(fopAc_ac_c* pActor, int sw) { +inline BOOL fopAcM_revSwitch(fopAc_ac_c* pActor, int sw) { return dComIfGs_revSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); } diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 374fa47df..23b14f8ef 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -71,8 +71,8 @@ inline void mDoAud_changeSubBgmStatus(s32 status) { mDoAud_zelAudio_c::getInterface()->changeSubBgmStatus(status); } -inline void mDoAud_bgmStreamPrepare(u32 id) { - mDoAud_zelAudio_c::getInterface()->bgmStreamPrepare(id); +inline void mDoAud_bgmStreamPrepare(u32 soundID) { + mDoAud_zelAudio_c::getInterface()->bgmStreamPrepare(soundID); } inline void mDoAud_bgmStreamPlay() { @@ -158,8 +158,8 @@ inline void mDoAud_seStart(u32 i_seNum, Vec* i_sePos) { mDoAud_zelAudio_c::getInterface()->seStart(i_seNum, i_sePos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } -inline void mDoAud_seStart(u32 i_seNum) { - mDoAud_zelAudio_c::getInterface()->seStart(i_seNum, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); +inline JAISound** mDoAud_seStart(u32 i_seNum) { + return mDoAud_zelAudio_c::getInterface()->seStart(i_seNum, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } inline void mDoAud_messageSePlay(u16 i_seNum, Vec* i_sePos = NULL, s8 i_reverb = 0) { @@ -343,15 +343,15 @@ inline s32 mDoAud_tact_judge(s32 param_1, s32 param_2) { } inline void mDoAud_tact_armSoundPlay(s32 param_1) { - return mDoAud_zelAudio_c::getTact().armSoundPlay(param_1); + mDoAud_zelAudio_c::getTact().armSoundPlay(param_1); } -inline void mDoAud_tact_metronomePlay(s32 param_1, s32 param_2) { - return mDoAud_zelAudio_c::getTact().metronomePlay(param_1, param_2); +inline s32 mDoAud_tact_metronomePlay(s32 now_beat, s32 c_pos) { + return mDoAud_zelAudio_c::getTact().metronomePlay(now_beat, c_pos); } inline void mDoAud_tact_melodyPlay(s32 param_1) { - return mDoAud_zelAudio_c::getTact().melodyPlay(param_1); + mDoAud_zelAudio_c::getTact().melodyPlay(param_1); } inline void mDoAud_tact_melodyStop() {} diff --git a/src/JAZelAudio/JAIZelBasic.cpp b/src/JAZelAudio/JAIZelBasic.cpp index e7725ba73..745ecfbee 100644 --- a/src/JAZelAudio/JAIZelBasic.cpp +++ b/src/JAZelAudio/JAIZelBasic.cpp @@ -254,18 +254,18 @@ void JAIZelBasic::resetRecover() { } /* 802A334C-802A33D0 .text bgmStreamPrepare__11JAIZelBasicFUl */ -void JAIZelBasic::bgmStreamPrepare(u32 param_1) { +void JAIZelBasic::bgmStreamPrepare(u32 soundID) { if (field_0x0063) { return; } - startSoundVec(param_1, &mpStreamBgmSound, NULL, 0, 0, 4); + startSoundVec(soundID, &mpStreamBgmSound, NULL, 0, 0, 4); if (mpStreamBgmSound) { mpStreamBgmSound->setPrepareFlag(1); } - if (param_1 == JA_STRM_BST_START) { + if (soundID == JA_STRM_BST_START) { field_0x00be = 1; } - mStreamBgmNum = param_1; + mStreamBgmNum = soundID; } /* 802A33D0-802A34A4 .text bgmStreamPlay__11JAIZelBasicFv */ @@ -686,7 +686,7 @@ void JAIZelBasic::initSe() { } /* 802A6720-802A8550 .text seStart__11JAIZelBasicFUlP3VecUlScffffUc */ -void JAIZelBasic::seStart(u32 i_seNum, Vec*, u32, s8, f32, f32, f32, f32, u8) { +JAISound** JAIZelBasic::seStart(u32 i_seNum, Vec*, u32, s8, f32, f32, f32, f32, u8) { /* Nonmatching */ // "Kurobo voices should be played in monsSeStart!\n" OSReport("クロボーの声は monsSeStartで!\n"); @@ -794,7 +794,7 @@ void JAIZelBasic::charVoicePlay(s32 param_1, s32 param_2, Vec* param_3, s8 param if (field_0x2060) { field_0x2060->stop(0); } - startSoundVec(0x481f, &field_0x2060, param_3, 0, 0, 4); + startSoundVec(JA_SE_CV_COMMON_PEOPLE, &field_0x2060, param_3, 0, 0, 4); if (field_0x2060) { field_0x2060->setPortData(8, r31); field_0x2060->setPortData(9, param_4); @@ -1357,7 +1357,7 @@ void JAIZelBasic::setScene(s32 sceneNum, s32 roomNo, s32 param_3, s32 layerNo) { /* 802AACE8-802AAD0C .text expandSceneBgmNum__11JAIZelBasicFUl */ u32 JAIZelBasic::expandSceneBgmNum(u32 bgmNum) { - /* Nonmatching - regalloc */ + /* Nonmatching - retail-only regalloc */ if ((bgmNum & 0xF000) == 0x8000) { u32 temp = bgmNum & 0x7FFF; temp |= JAISoundID_Type_Stream; @@ -1590,11 +1590,12 @@ void JAIZelBasic::setEventBit(void* param_1) { /* 802ABE18-802ABE50 .text checkEventBit__11JAIZelBasicFUs */ BOOL JAIZelBasic::checkEventBit(u16 param_1) { if (field_0x0024 == NULL) { - return false; + return FALSE; } - u32 var1 = param_1 & 0xff; u32 var2 = (param_1 & 0xff00) >> 8; - if (u8(field_0x0024[var2] & var1)) { + u32 var1 = param_1 & 0xff; + u8 temp = field_0x0024[var2] & var1; + if (temp) { return TRUE; } else { return FALSE; @@ -1659,9 +1660,13 @@ int JAIZelBasic::checkOnOuterSea(f32* r4) { return 4; } int islandX = ((mIslandRoomNo - 1) % 7) - 3; + f32 f5 = islandX * 100000.0f; int islandY = ((mIslandRoomNo - 1) / 7) - 3; - f32 f6 = sp0C.field_0x0 - (mAudioCamera->field_0x0->x - islandX * 100000.0f); - f32 f0 = sp0C.field_0x8 - (mAudioCamera->field_0x0->z - islandY * 100000.0f); + f32 f1 = islandY * 100000.0f; + f32 f2 = mAudioCamera->field_0x0->x - f5; + f32 f1_2 = mAudioCamera->field_0x0->z - f1; + f32 f6 = sp0C.field_0x0 - f2; + f32 f0 = sp0C.field_0x8 - f1_2; *r4 = f6*f6 + f0*f0; *r4 = std::sqrtf(*r4); diff --git a/src/JAZelAudio/JAIZelInst.cpp b/src/JAZelAudio/JAIZelInst.cpp index d6c48cd2c..923fdc3f3 100644 --- a/src/JAZelAudio/JAIZelInst.cpp +++ b/src/JAZelAudio/JAIZelInst.cpp @@ -4,14 +4,79 @@ // #include "JAZelAudio/JAIZelInst.h" +#include "JAZelAudio/JAZelAudio_SE.h" #include "dolphin/types.h" +#include "m_Do/m_Do_audio.h" + +#define MELODY_COUNT (8) + +u16 JAIZelInst::m_note_pattern[][6] = { + {0x0078, 0x080C, 0x090C, 0x0A0C, 0xFFFF, 0xFFFF}, + {0x0078, 0x0B0C, 0x050C, 0x0C0C, 0x060C, 0xFFFF}, + {0x0078, 0x060C, 0x080C, 0x0518, 0xFFFF, 0xFFFF}, + {0x0078, 0x0E0C, 0x060C, 0x100C, 0x060C, 0xFFFF}, + {0x0078, 0x100C, 0x0D0C, 0x0F0C, 0x0E0C, 0x0618}, + {0x0078, 0x040C, 0x030C, 0x0806, 0x0706, 0x060C}, +}; + +u8 JAIZelInst::m_stick_to_note_table[] = { + 0x00, + 0x04, + 0x18, + 0x02, + 0x16, + 0x03, + 0x06, + 0x12, + 0x0A, + 0x0E, + 0x17, + 0x10, + 0x0C, + 0x14, + 0x08, + 0x01, + 0x09, + 0x0D, + 0x05, + 0x11, + 0x15, + 0x13, + 0x07, + 0x0F, + 0x0B, +}; + +u8 JAIZelInst::mMelodyPattern[MELODY_COUNT][7] = { + {0x03, 0x01, 0x04, 0x02, 0xFF, 0xFF, 0xFF}, + {0x04, 0x03, 0x02, 0x04, 0x01, 0xFF, 0xFF}, + {0x04, 0x04, 0x00, 0x02, 0x00, 0xFF, 0xFF}, + {0x06, 0x03, 0x03, 0x00, 0x02, 0x04, 0x00}, + {0x06, 0x01, 0x01, 0x03, 0x02, 0x04, 0x02}, + {0x03, 0x02, 0x04, 0x03, 0xFF, 0xFF, 0xFF}, + {0x03, 0x01, 0x03, 0x02, 0xFF, 0xFF, 0xFF}, + {0x04, 0x01, 0x02, 0x04, 0x03, 0xFF, 0xFF}, +}; + +u8 JAIZelInst::mCPosToNote3[5] = { + 0x30, 0x3C, 0x39, 0x3E, 0x35, +}; +u8 JAIZelInst::mCPosToNote4[5] = { + 0x3B, 0x3C, 0x39, 0x3E, 0x35, +}; +u8 JAIZelInst::mCPosToNote61[5] = { + 0x3E, 0x45, 0x42, 0x39, 0x40, +}; +u8 JAIZelInst::mCPosToNote62[5] = { + 0x3E, 0x45, 0x42, 0x43, 0x40, +}; /* 802AE04C-802AE0B4 .text __ct__10JAIZelInstFv */ JAIZelInst::JAIZelInst() { - field_0x0 = 0; + field_0x0 = NULL; field_0xc = 0; field_0x10 = -1; - field_0x14 = 0x2f; + field_0x14 = 0x2F; mBeat = 3; field_0x20 = 0.6f; field_0x24 = 3.0f; @@ -25,80 +90,403 @@ JAIZelInst::JAIZelInst() { /* 802AE0B4-802AE1C0 .text reset__10JAIZelInstFv */ void JAIZelInst::reset() { - /* Nonmatching */ + field_0xc = 0; + mBeat = 3; + field_0x20 = 0.6f; + field_0x24 = 3.0f; + field_0x28 = 60.f; + field_0x2c = 1.0f; + mBeatFrames = field_0x2c * 30.0f; + field_0x1e = 0; + field_0x34 = 0x37; + field_0x48 = 0; + mDoAud_seStop(JA_SE_WTAKT_ARM_SWING); + mDoAud_seStop(JA_SE_WTAKT_METRONOME); + mDoAud_seStop(JA_SE_WTAKT_DRONE); + mDoAud_seStop(JA_SE_WTAKT_DRONE_4); + mDoAud_seStop(JA_SE_WTAKT_DRONE_6); + mDoAud_seStop(JA_SE_WTAKT_PULSE_3); + mDoAud_seStop(JA_SE_WTAKT_PULSE_4); + mDoAud_seStop(JA_SE_WTAKT_PULSE_6); + field_0x38 = NULL; + field_0x3c = NULL; + field_0x40 = NULL; + field_0x44 = NULL; } /* 802AE1C0-802AE278 .text playArmSwing__10JAIZelInstFll */ -void JAIZelInst::playArmSwing(s32, s32) { - /* Nonmatching */ +void JAIZelInst::playArmSwing(s32 main_stick, s32 c_stick) { + int pos = (main_stick * 5) + c_stick; + JUT_ASSERT(93, pos < 25); + u32 r31 = 0x2F + m_stick_to_note_table[pos]; + mDoAud_seStart(JA_SE_LK_WTAKT_SWING, NULL, (field_0x14 << 16) + r31); + field_0x14 = r31; } /* 802AE278-802AE2B8 .text stopArmSwing__10JAIZelInstFv */ void JAIZelInst::stopArmSwing() { - /* Nonmatching */ + mDoAud_seStop(JA_SE_LK_WTAKT_SWING); + field_0x14 = 0x2F; } /* 802AE2B8-802AE444 .text setStickPos__10JAIZelInstFll */ -void JAIZelInst::setStickPos(s32, s32) { - /* Nonmatching */ +s32 JAIZelInst::setStickPos(s32 main_stick, s32 c_stick) { + int pos = (main_stick * 5) + c_stick; + JUT_ASSERT(128, pos < 25); + u8 note = m_stick_to_note_table[pos]; + field_0x10 = 0x2F + note; + if (field_0xc >= 5) { + for (int i = 0; i < 5; i++) { + field_0x4[i] = field_0x4[i+1]; + } + field_0xc = 4; + } + field_0x4[field_0xc] = note; + field_0xc++; + if (field_0xc <= 1) { + return -1; + } + for (int r12 = 0 ; r12 < field_0xc; r12++) { + for (int r3 = 0; r3 < 6; r3++) { + int r30 = 0; + for (; r30 < (field_0xc - r12); r30++) { + if (field_0x4[r12 + r30] != ((m_note_pattern[r3][r30 + 1] >> 8) & 0xFF)) { + break; + } + } + if (r30 != (field_0xc - r12)) { + continue; + } + if (r30 >= 5 || m_note_pattern[r3][r30 + 1] == 0xFFFF) { + return r3; + } + } + } + return -1; +} + +static f32 dummy() { + OSReport("[JAIZelInst::playMelody] melody number too large (%d)\n"); + OSReport("[JAIZelInst::getPlayingPattern] too large melody number : %d\n"); + OSReport("[JAIZelInst::getPlayingPattern] too large step : %d\n"); + return 0.0f; } /* 802AE444-802AE4B4 .text play__10JAIZelInstFv */ void JAIZelInst::play() { - /* Nonmatching */ + if (field_0x10 >= 0) { + mDoAud_zelAudio_c::getInterface()->startSoundVec(JA_SE_WINDTAKT_PLAY, &field_0x0, NULL, 0, 0, 4); + if (field_0x0) { + field_0x0->setPortData(8, field_0x10); + } + } } /* 802AE4B4-802AE590 .text setBeat__10JAIZelInstFl */ -void JAIZelInst::setBeat(s32) { - /* Nonmatching */ +void JAIZelInst::setBeat(s32 r4) { + switch (r4) { + case 0: + mBeat = 3; + break; + case 2: + mBeat = 6; + break; + case 4: + mBeat = 4; + break; + default: + return; + } + + switch (mBeat) { + case 3: + field_0x24 = 3.0f; + field_0x28 = 60.0f; + field_0x2c = 1.0f; + break; + case 4: + field_0x24 = 3.42857f; + field_0x28 = 70.0f; + field_0x2c = 0.85714f; // 6/7 + break; + case 6: + field_0x24 = 4.5f; + field_0x28 = 80.0f; + field_0x2c = 0.75f; // 3/4 + break; + } + mBeatFrames = field_0x2c * 30.0f; } /* 802AE590-802AE5D0 .text setVolume__10JAIZelInstFf */ -void JAIZelInst::setVolume(f32) { - /* Nonmatching */ +void JAIZelInst::setVolume(f32 f1) { + f32 f2 = f1 / 0.7071f; + if (f2 > 1.0f) { + f2 = 1.0f; + } + if (f2 < -1.0f) { + f2 = -1.0f; + } + field_0x20 = f2 * 0.45f + 0.55f; } /* 802AE5D0-802AE864 .text metronomePlay__10JAIZelInstFll */ -void JAIZelInst::metronomePlay(s32, s32) { - /* Nonmatching */ +s32 JAIZelInst::metronomePlay(s32 now_beat, s32 c_pos) { + if (c_pos < 0 || c_pos > 4) { + OSReport("[JAIZelInst::metronomePlay] WARNING : c_pos over range!\n"); + return -2; + } + + if (now_beat == 0) { + switch (mBeat) { + case 3: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_DRONE, NULL, 0, 0, 1.0f, field_0x20); + break; + case 4: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_DRONE_4, NULL, 0, 0, 1.0f, field_0x20); + break; + case 6: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_DRONE_6, NULL, 0, 0, 1.0f, field_0x20); + break; + } + } else { + switch (mBeat) { + case 3: + switch (now_beat) { + case 1: + break; + case 2: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_AUFTAKT, NULL, 0, 0, 1.0f, field_0x20); + break; + default: + OSReport("[JAIZelInst::metronomePlay] WARNING : now_beat over range!\n"); + return -2; + } + break; + case 4: + switch (now_beat) { + case 1: + case 2: + break; + case 3: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_AUFTAKT_4, NULL, 0, 0, 1.0f, field_0x20); + break; + default: + OSReport("[JAIZelInst::metronomePlay] WARNING : now_beat over range!\n"); + return -2; + } + break; + case 6: + switch (now_beat) { + case 1: + case 2: + case 3: + case 4: + break; + case 5: + field_0x40 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_AUFTAKT_6, NULL, 0, 0, 1.0f, field_0x20); + break; + default: + OSReport("[JAIZelInst::metronomePlay] WARNING : now_beat over range!\n"); + return -2; + } + break; + default: + return -2; + } + } + + return -1; } /* 802AE864-802AEB5C .text judge__10JAIZelInstFll */ -s32 JAIZelInst::judge(s32, s32) { - /* Nonmatching */ +s32 JAIZelInst::judge(s32 now_beat, s32 c_pos) { + u16 r28 = 100; + if (c_pos < 0 || c_pos > 4) { + OSReport("[JAIZelInst::metronomePlay] WARNING : c_pos over range!\n"); + return -2; + } + + u16 r29 = 0; + switch (mBeat) { + case 3: + r29 = mCPosToNote3[c_pos]; + break; + case 4: + r29 = mCPosToNote4[c_pos]; + break; + case 6: + if (field_0x48 != 0) { + r29 = mCPosToNote62[c_pos]; + } else { + r29 = mCPosToNote61[c_pos]; + } + break; + } + + switch (mBeat) { + case 3: + field_0x44 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_PULSE_3, NULL, r29, 0, 1.0f, field_0x20); + break; + case 4: + field_0x44 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_PULSE_4, NULL, r29, 0, 1.0f, field_0x20); + break; + case 6: + field_0x44 = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_PULSE_6, NULL, r29, 0, 1.0f, field_0x20); + break; + } + + if (now_beat == 0) { + field_0x1e = 0; + field_0x48 = 0; + if (mBeat == 6 && c_pos == 1) { + field_0x48 = 1; + } + } + + r29 += (r28 << 8); + field_0x3c = mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_METRONOME, NULL, r29, 0, 1.0f, field_0x20); + + if (now_beat == 5) { + field_0x48 = 0; + } + + if (field_0x1e < 6) { + field_0x1e++; + } else { + field_0x1e = 6; + for (int i = 0; i < 5; i++) { + field_0x18[i] = field_0x18[i + 1]; + } + } + field_0x18[field_0x1e - 1] = c_pos; + + if (field_0x1e < mBeat) { + return -1; + } + + int r10 = 0; + while (true) { + if (mBeat == mMelodyPattern[r10][0]) { + int r11 = field_0x1e - mBeat; + int r12 = 1; + for (; r11 < field_0x1e; r11++, r12++) { + if (field_0x18[r11] != mMelodyPattern[r10][r12]) { + break; + } + } + if (r12 == 7 || mMelodyPattern[r10][r12] == 0xFF) { + break; + } + } + r10++; + if (r10 < MELODY_COUNT) { + continue; + } else { + r10 = -1; + break; + } + } + if (r10 < 0) { + return -1; + } else { + return r10; + } } /* 802AEB5C-802AEC50 .text ambientPlay__10JAIZelInstFv */ void JAIZelInst::ambientPlay() { - /* Nonmatching */ + mDoAud_zelAudio_c::getInterface()->seStart(JA_SE_WTAKT_AMBIENT, NULL, 0, 0, 1.0f, field_0x20); + + if (field_0x38 && *field_0x38) { + (*field_0x38)->setVolume(field_0x20, 3, SOUNDPARAM_Unk0); + } + if (field_0x3c && *field_0x3c) { + (*field_0x3c)->setVolume(field_0x20, 3, SOUNDPARAM_Unk0); + } + if (field_0x40 && *field_0x40) { + (*field_0x40)->setVolume(field_0x20, 3, SOUNDPARAM_Unk0); + } + if (field_0x44 && *field_0x44) { + (*field_0x44)->setVolume(field_0x20, 3, SOUNDPARAM_Unk0); + } } /* 802AEC50-802AECC0 .text armSoundPlay__10JAIZelInstFl */ -void JAIZelInst::armSoundPlay(s32) { - /* Nonmatching */ +void JAIZelInst::armSoundPlay(s32 c_pos) { + u8 r5 = 0; + switch (mBeat) { + case 3: + r5 = mCPosToNote3[c_pos]; + break; + case 4: + r5 = mCPosToNote4[c_pos]; + break; + case 6: + if (field_0x48 != 0) { + r5 = mCPosToNote62[c_pos]; + } else { + r5 = mCPosToNote61[c_pos]; + } + break; + } + field_0x34 = r5; } /* 802AECC0-802AED48 .text getMelodyPattern__10JAIZelInstFllPl */ -f32 JAIZelInst::getMelodyPattern(s32, s32, s32*) { - /* Nonmatching */ +f32 JAIZelInst::getMelodyPattern(s32 melody_num, s32 r5, s32* r6) { + if (r5 >= getMelodyBeat(melody_num)) { + return 0.0f; + } + u8 r0 = mMelodyPattern[melody_num][r5 + 1]; + if (r0 == 0xFF) { + return 0.0f; + } + *r6 = r0; + return getMelodyGFrames(melody_num); } /* 802AED48-802AEDB8 .text getMelodyBeat__10JAIZelInstFl */ -void JAIZelInst::getMelodyBeat(s32) { - /* Nonmatching */ +s32 JAIZelInst::getMelodyBeat(s32 melody_num) { + JUT_ASSERT(830, melody_num < MELODY_COUNT); + return mMelodyPattern[melody_num][0]; } /* 802AEDB8-802AEE1C .text getMelodyGFrames__10JAIZelInstFl */ -void JAIZelInst::getMelodyGFrames(s32) { - /* Nonmatching */ +f32 JAIZelInst::getMelodyGFrames(s32 r4) { + s32 beat = getMelodyBeat(r4); + f32 f1 = 1.0f; + switch (beat) { + case 3: + f1 = 1.0f; + break; + case 4: + f1 = 0.85714f; // 6/7 + break; + case 6: + f1 = 0.75f; // 3/4 + break; + } + return f1 * 30.0f; } /* 802AEE1C-802AEEA8 .text melodyPlay__10JAIZelInstFl */ -void JAIZelInst::melodyPlay(s32) { - /* Nonmatching */ +void JAIZelInst::melodyPlay(s32 melody_num) { + JUT_ASSERT(870, melody_num < MELODY_COUNT); + u32 seNum = JA_SE_WTAKT_DANCE01 + melody_num; + mDoAud_seStart(seNum); } /* 802AEEA8-802AEF64 .text melodyStop__10JAIZelInstFv */ void JAIZelInst::melodyStop() { - /* Nonmatching */ + mDoAud_seStop(JA_SE_WTAKT_DANCE01); + mDoAud_seStop(JA_SE_WTAKT_DANCE02); + mDoAud_seStop(JA_SE_WTAKT_DANCE03); + mDoAud_seStop(JA_SE_WTAKT_DANCE04); + mDoAud_seStop(JA_SE_WTAKT_DANCE05); + mDoAud_seStop(JA_SE_WTAKT_DANCE06); + mDoAud_seStop(JA_SE_WTAKT_DANCE07); + mDoAud_seStop(JA_SE_WTAKT_DANCE08); + mDoAud_seStop(JA_SE_WTAKT_DANCE09); + mDoAud_seStop(JA_SE_WTAKT_DANCE10); } diff --git a/src/JAZelAudio/JAIZelScene.cpp b/src/JAZelAudio/JAIZelScene.cpp index 555fda700..7717f85f0 100644 --- a/src/JAZelAudio/JAIZelScene.cpp +++ b/src/JAZelAudio/JAIZelScene.cpp @@ -6,7 +6,7 @@ #include "JAZelAudio/JAIZelBasic.h" #include "dolphin/types.h" -u8 JAIZelBasic::m_bgm_wave_info[96] = {}; +u8 JAIZelBasic::m_bgm_wave_info[DEMO_SELECT(0x5C, 0x60)] = {}; u8 JAIZelBasic::m_dy_wave_set_1st[][2] = { {0x00, 0x00}, @@ -53,7 +53,11 @@ u8 JAIZelBasic::m_dy_wave_set_1st[][2] = { {0x0F, 0x3C}, {0x3E, 0x3F}, {0x39, 0x1D}, +#if VERSION == VERSION_DEMO + {0x00, 0x00}, +#else {0x40, 0x00}, +#endif {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, @@ -89,7 +93,11 @@ JAIZelBasic::scene_info_s JAIZelBasic::m_scene_info[] = { {(u16)JA_BGM_D_RYU_MT, 0x01, 0x05}, {(u16)0x0000, 0x01, 0x01}, {(u16)JA_BGM_D_FOREST, 0x03, 0x05}, +#if VERSION == VERSION_DEMO + {(u16)JA_BGM_I_MAJU, 0x02, 0x05}, +#else {(u16)JA_BGM_I_MAJU_2ND, 0x02, 0x05}, +#endif {(u16)JA_BGM_D_GANON_1, 0x17, 0x00}, {(u16)JA_BGM_D_GANON_1, 0x17, 0x00}, {(u16)0x0000, 0x03, 0x02}, @@ -148,7 +156,11 @@ JAIZelBasic::scene_info_s JAIZelBasic::m_scene_info[] = { {(u16)JA_BGM_D_EARTH, 0x12, 0x05}, {(u16)JA_BGM_HOUSE, 0x19, 0x00}, {(u16)JA_BGM_D_FOREST, 0x03, 0x05}, +#if VERSION == VERSION_DEMO + {(u16)JA_BGM_I_MAJU, 0x02, 0x05}, +#else {(u16)JA_BGM_I_MAJU_2ND, 0x02, 0x05}, +#endif {(u16)0x0000, 0x07, 0x04}, {(u16)JA_BGM_D_WIND, 0x08, 0x05}, {(u16)JA_BGM_SUB_DUNGEON, 0x26, 0x00}, @@ -174,8 +186,13 @@ JAIZelBasic::scene_info_s JAIZelBasic::m_scene_info[] = { {(u16)JA_BGM_HOUSE, 0x1B, 0x00}, {(u16)JA_BGM_HOUSE, 0x0C, 0x00}, {(u16)JA_BGM_SUB_DUNGEON, 0x29, 0x00}, +#if VERSION == VERSION_DEMO + {(u16)JA_BGM_HYRULE_ON, 0x14, 0x00}, + {(u16)0x0000, 0x07, 0x00}, +#else {(u16)JA_BGM_HYRULE_ON, 0x14, 0x05}, {(u16)0x0000, 0x2C, 0x00}, +#endif {(u16)0x0000, 0x2A, 0x00}, {(u16)0x0000, 0x20, 0x00}, {(u16)JA_BGM_ELF, 0x24, 0x00}, @@ -378,7 +395,11 @@ const char* JAIZelBasic::spot_dir_name[] = { "SubD71", "SubD43", "SubD42", +#if VERSION == VERSION_DEMO + "dummy", +#else "sea_T", +#endif "dummy", "dummy", "" diff --git a/src/JAZelAudio/JAIZelSound.cpp b/src/JAZelAudio/JAIZelSound.cpp index 8980c5d02..64c174b3e 100644 --- a/src/JAZelAudio/JAIZelSound.cpp +++ b/src/JAZelAudio/JAIZelSound.cpp @@ -13,12 +13,12 @@ JAIZelSound::JAIZelSound() {} f32 JAIZelSound::setDistanceVolumeCommon(f32 f30, u8 r31) { f32 f31; if (field_0x8 != 4) { - f31 = getPositionInfo()[field_0x8].field_0x18; + f31 = mPositionInfo[field_0x8].field_0x18; } else { - f31 = getPositionInfo()[0].field_0x18; + f31 = mPositionInfo[0].field_0x18; for (u8 i = 1; i < JAIGlobalParameter::getParamAudioCameraMax(); i++) { - if (getPositionInfo()[i].field_0x18 < f31) { - f31 = getPositionInfo()[i].field_0x18; + if (mPositionInfo[i].field_0x18 < f31) { + f31 = mPositionInfo[i].field_0x18; } } } @@ -91,7 +91,7 @@ void JAIZelSound::setSeDistanceDolby(u8 r30) { return; } - PositionInfo_t* posInf = &getPositionInfo()[0]; + PositionInfo_t* posInf = &mPositionInfo[0]; f32 f0; if (field_0x28 == 0 || posInf->field_0x8 < JAIGlobalParameter::getParamSeDolbyFrontDistanceMax()) { f0 = 0.0f; @@ -109,6 +109,5 @@ void JAIZelSound::setSeDistanceDolby(u8 r30) { f0 = 127.0f; } - u8 r0 = f0; - setSeInterDolby(SOUNDPARAM_Distance, r0 / 127.0f, r30, 0); + setSeInterDolby(SOUNDPARAM_Distance, (u8)f0 / 127.0f, r30, 0); } diff --git a/src/JSystem/JAudio/JAIBasic.cpp b/src/JSystem/JAudio/JAIBasic.cpp index 5c1113d72..7fa37ef95 100644 --- a/src/JSystem/JAudio/JAIBasic.cpp +++ b/src/JSystem/JAudio/JAIBasic.cpp @@ -210,7 +210,7 @@ void JAIBasic::processFrameWork() { } /* 802904B4-802904EC .text startSoundVec__8JAIBasicFUlPP8JAISoundP3VecUlUlUc */ -void JAIBasic::startSoundVec(u32, JAISound**, Vec*, u32, u32, u8) { +void JAIBasic::startSoundVec(u32 soundID, JAISound**, Vec*, u32, u32, u8) { /* Nonmatching */ } diff --git a/src/JSystem/JStudio/JStudio_JAudio/object-sound.cpp b/src/JSystem/JStudio/JStudio_JAudio/object-sound.cpp index 38a375de7..a83d76d20 100644 --- a/src/JSystem/JStudio/JStudio_JAudio/object-sound.cpp +++ b/src/JSystem/JStudio/JStudio_JAudio/object-sound.cpp @@ -17,7 +17,7 @@ namespace JStudio_JAudio { TAdaptor_sound::TAdaptor_sound(JAIBasic* basic) { mpBasic = basic; mpSound = NULL; - mFlags = ~0; + mSoundID = -1; mPosition = NULL; } @@ -72,18 +72,18 @@ void TAdaptor_sound::adaptor_do_update(const JStudio::TObject* object, u32) { void TAdaptor_sound::adaptor_do_SOUND(JStudio::data::TEOperationData op, const void* data, u32) { switch (op) { case JStudio::data::TEOD_Unknown_19: { - u32 flags = *(s32*)data; - if (flags & 0xc0000000) { + u32 soundID = *(s32*)data; + if (mpBasic->checkEnablePrepare(soundID)) { if (mpSound) { mpSound->stop(0); } - mFlags = flags; - mpBasic->prepareSoundVec(flags, &mpSound, mPosition, 0, 0, 4); + mSoundID = soundID; + mpBasic->prepareSoundVec(soundID, &mpSound, mPosition, 0, 0, 4); if (!mpSound) { return; } } else { - mFlags = *(s32*)data; + mSoundID = *(s32*)data; } break; } @@ -111,22 +111,22 @@ void TAdaptor_sound::adaptor_do_LOCATED(JStudio::data::TEOperationData op, const /* 8027908C-8027915C .text __cl__Q314JStudio_JAudio14TAdaptor_sound21TVVOOn_BEGIN_FADE_IN_CFfPQ27JStudio8TAdaptor */ void TAdaptor_sound::TVVOOn_BEGIN_FADE_IN_::operator()(f32 value, JStudio::TAdaptor* adaptor) const { JStudio_JAudio::TAdaptor_sound* adaptor_sound = (JStudio_JAudio::TAdaptor_sound*)adaptor; - JAISound* sound = adaptor_sound->mpSound; - u32 flags = adaptor_sound->mFlags; - if (adaptor_sound->mFlags & 0xc0000000) { + const u32 soundID = adaptor_sound->mSoundID; + if (adaptor_sound->mpBasic->checkEnablePrepare(soundID)) { if (adaptor_sound->mpSound) { adaptor_sound->mpSound->start(value); } } else { if (adaptor_sound->mpSound) { #if VERSION > VERSION_DEMO - if (!adaptor_sound->mpBasic->checkEnablePrepare(adaptor_sound->mFlags)) + bool temp = !adaptor_sound->mpBasic->checkEnablePrepare(soundID) && !(soundID & 0x00000c00); + if (!temp) #endif { adaptor_sound->mpSound->stop(0); } } - adaptor_sound->mpBasic->startSoundVec(flags, &adaptor_sound->mpSound, adaptor_sound->mPosition, value, 0, 4); + adaptor_sound->mpBasic->startSoundVec(soundID, &adaptor_sound->mpSound, adaptor_sound->mPosition, value, 0, 4); if (!adaptor_sound->mpSound) { return; } diff --git a/src/JSystem/JUtility/JUTTexture.cpp b/src/JSystem/JUtility/JUTTexture.cpp index 5dd2da34c..a52ae0bfb 100644 --- a/src/JSystem/JUtility/JUTTexture.cpp +++ b/src/JSystem/JUtility/JUTTexture.cpp @@ -36,7 +36,7 @@ void JUTTexture::storeTIMG(const ResTIMG* pTimg, u8 param_1) { delete mEmbPalette; } mEmbPalette = NULL; - mAttachedPalette = NULL; + mPalette = NULL; mTlutName = 0; mWrapS = mTexInfo->wrapS; mWrapT = mTexInfo->wrapT; @@ -69,11 +69,11 @@ void JUTTexture::storeTIMG(const ResTIMG* pTimg, u8 param_1) { void JUTTexture::attachPalette(JUTPalette* pPalette) { if (mTexInfo->indexTexture) { if (pPalette == NULL && mEmbPalette != NULL) { - mAttachedPalette = mEmbPalette; + mPalette = mEmbPalette; } else { - mAttachedPalette = pPalette; + mPalette = pPalette; } - GXTlut name = (GXTlut)mAttachedPalette->getTlutName(); + GXTlut name = (GXTlut)mPalette->getTlutName(); initTexObj(name); } } @@ -115,8 +115,8 @@ void JUTTexture::initTexObj(GXTlut tlut) { /* 802C183C-802C188C .text load__10JUTTextureF11_GXTexMapID */ void JUTTexture::load(GXTexMapID id) { - if (mAttachedPalette) { - mAttachedPalette->load(); + if (mPalette) { + mPalette->load(); } GXLoadTexObj(&mTexObj, id); } diff --git a/src/d/actor/d_a_bdk.cpp b/src/d/actor/d_a_bdk.cpp index 09af543f5..282c951da 100644 --- a/src/d/actor/d_a_bdk.cpp +++ b/src/d/actor/d_a_bdk.cpp @@ -2992,7 +2992,7 @@ static void demo_camera(bdk_class* i_this) { i_this->m6100[1] = dComIfGp_particle_set(dPa_name::ID_IT_SN_DK_FUTATOJI_ROCK00, ¢er_pos2, NULL, NULL, 0xFF); } i_this->m25D4 = DEMO_SELECT(REG13_F(18), REG0_F(18)) + 1.5f; - mDoAud_seStart(JA_SE_ATM_MJT_JINARI, 0); + mDoAud_seStart(JA_SE_ATM_MJT_JINARI); cLib_addCalc0(&i_this->m6320, 1.0f, DEMO_SELECT(REG13_F(0), REG0_F(0)) + 1.0f); i_this->m631C += 0.003f + REG0_F(8); r27 = 1; @@ -3023,7 +3023,7 @@ static void demo_camera(bdk_class* i_this) { if (i_this->m25A6 < (s16)(DEMO_SELECT(REG13_S(6), REG0_S(6)) + 0x9B)) { i_this->m25D4 = DEMO_SELECT(REG13_F(5), REG0_F(5)) + 5.0f; - mDoAud_seStart(JA_SE_ATM_MJT_JINARI, 0); + mDoAud_seStart(JA_SE_ATM_MJT_JINARI); } if (i_this->m25A6 == (s16)(DEMO_SELECT(REG13_S(6), REG0_S(6)) + 0x96)) { i_this->m25D8 = 1; diff --git a/src/d/actor/d_a_himo2.cpp b/src/d/actor/d_a_himo2.cpp index 347fba301..9cc883e39 100644 --- a/src/d/actor/d_a_himo2.cpp +++ b/src/d/actor/d_a_himo2.cpp @@ -1401,7 +1401,7 @@ void new_himo2_move(himo2_class* i_this) { case 4: { dKy_custom_colset(0, 4, 1.0f); if (i_this->m029C == (s16)(REG0_S(2) + 57)) { - mDoAud_seStart(JA_SE_CV_DRG_SET_ROPE, 0, 0, 0); + mDoAud_seStart(JA_SE_CV_DRG_SET_ROPE, NULL, 0, 0); } if (i_this->m029C <= 1) { dKy_custom_colset(0, 4, 0.0f); @@ -1446,11 +1446,11 @@ void new_himo2_move(himo2_class* i_this) { case 5: { if (i_this->m029C == 0) { if (i_this->m02E0 == 0) { - mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1, 0, 0, 0); + mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1, NULL, 0, 0); } else if (i_this->m02E0 == 1) { - mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1_2, 0, 0, 0); + mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1_2, NULL, 0, 0); } else if (i_this->m02E0 >= 2) { - mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1_3, 0, 0, 0); + mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_1_3, NULL, 0, 0); i_this->m02E0 = 2; } i_this->m02E0++; @@ -1540,7 +1540,7 @@ void new_himo2_move(himo2_class* i_this) { case 8: { dr->unk_40A = 3; if (i_this->m029C == 200) { - mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_2, 0, 0, 0); + mDoAud_seStart(JA_SE_CV_DRG_ROCKFALL_2, NULL, 0, 0); } if (i_this->m029C == 170) { fopAcM_seStartCurrent((fopAc_ac_c*)dr, JA_SE_CM_BTD_BEF_ROCK_FALL, 0); diff --git a/src/d/actor/d_a_npc_ji1.cpp b/src/d/actor/d_a_npc_ji1.cpp index 491b4bf7e..ad5174ee3 100644 --- a/src/d/actor/d_a_npc_ji1.cpp +++ b/src/d/actor/d_a_npc_ji1.cpp @@ -731,7 +731,7 @@ BOOL daNpc_Ji1_c::kaitenAction(void*) { if(l_msg) { if(actionNo == 2) { dComIfGp_getVibration().StartShock(5, -0x11, cXyz(0.0f, 1.0f, 0.0f)); - mDoAud_seStart(JA_SE_CM_AJ_ANGRY_FOOT, NULL); + mDoAud_seStart(JA_SE_CM_AJ_ANGRY_FOOT); } field_0xC78 += 1; diff --git a/src/d/actor/d_a_player_crawl.inc b/src/d/actor/d_a_player_crawl.inc index 08be62f6c..d9c926245 100644 --- a/src/d/actor/d_a_player_crawl.inc +++ b/src/d/actor/d_a_player_crawl.inc @@ -539,7 +539,7 @@ BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) { m370C = *param_1; m35E4 = 1.0f; mProcVar0.m3570 = param_0; - m34D0 = 0x14; + m34D0 = 20; m34D6 = 300; dComIfGp_setPlayerStatus0(0, daPyStts0_CRAWL_e); setCrawlMoveDirectionArrow(); diff --git a/src/d/actor/d_a_player_dproc.inc b/src/d/actor/d_a_player_dproc.inc index f5bbfb2bc..deec7cdcb 100644 --- a/src/d/actor/d_a_player_dproc.inc +++ b/src/d/actor/d_a_player_dproc.inc @@ -555,7 +555,7 @@ BOOL daPy_lk_c::dProcOpenTreasure() { #if VERSION > VERSION_DEMO /* 8012E28C-8012E418 .text setGetItemSound__9daPy_lk_cFUsi */ -void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) { +void daPy_lk_c::setGetItemSound(u16 param_1, BOOL param_2) { if (param_1 == dItem_GREEN_RUPEE_e || param_1 == dItem_BLUE_RUPEE_e || param_1 == dItem_YELLOW_RUPEE_e || param_1 == dItem_RED_RUPEE_e || param_1 == dItem_PURPLE_RUPEE_e || param_1 == TINCLE_RUPEE1) { @@ -571,7 +571,7 @@ void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) { { mDoAud_subBgmStart(JA_BGM_ITEM_GET_S); dComIfGp_setMesgBgmOn(); - } else if (param_2 != dItem_HEART_e) { + } else if (param_2) { seStartSystem(JA_SE_ME_ITEM_GET_S); dComIfGp_setMesgBgmOn2(); } else { @@ -656,8 +656,8 @@ BOOL daPy_lk_c::setGetDemo() { /* 8012E6B4-8012E8B0 .text dProcGetItem_init__9daPy_lk_cFv */ BOOL daPy_lk_c::dProcGetItem_init() { - BOOL sVar6 = 0; - BOOL sVar5 = 0; + BOOL sVar6 = FALSE; + BOOL sVar5 = FALSE; if (mCurProc == daPyProc_DEMO_GET_ITEM_e) { return true; @@ -666,11 +666,11 @@ BOOL daPy_lk_c::dProcGetItem_init() { m34C2 = 10; mAcch.ClrWallNone(); if (m_anm_heap_under[UNDER_MOVE0_e].mIdx != LKANM_BCK_BOXOPENLINK) { - sVar5 = 1; + sVar5 = TRUE; } } else if (mCurProc == daPyProc_DEMO_OPEN_SALVAGE_TREASURE_e) { m34C2 = 6; - sVar6 = 1; + sVar6 = TRUE; } int iVar2 = checkShipRideUseItem(0); commonProcInit(daPyProc_DEMO_GET_ITEM_e); diff --git a/src/d/actor/d_a_player_fan.inc b/src/d/actor/d_a_player_fan.inc index 978cc44e8..e5e5bf110 100644 --- a/src/d/actor/d_a_player_fan.inc +++ b/src/d/actor/d_a_player_fan.inc @@ -587,8 +587,8 @@ BOOL daPy_lk_c::procFanGlide() { prev = m34F4; cLib_addCalcAngleS(&m34F4, r30, 5, 0x800, 0x100); m34E4 += m34D8; - m34E4 = m34E4 - (s16)(prev - m34F4); - m34D8 = m34D8 + (s16)(prev - m34F4); + m34E4 -= (s16)(prev - m34F4); + m34D8 += (s16)(prev - m34F4); if (m34D8 > 0x380) { m34D8 = 0x380; } else if (m34D8 < -0x380) { diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 4a27ada33..69b4971c7 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -4558,7 +4558,7 @@ BOOL daPy_lk_c::checkIceSlipFall() { return procIceSlipFall_init(); } } else { - m34D0 = 0x14; + m34D0 = 20; } return false; } @@ -6084,7 +6084,7 @@ BOOL daPy_lk_c::procWait_init() { if (mDemo.getDemoMode() == daPy_demo_c::DEMO_KM_WAIT_e && m_tex_scroll_heap.field_0x6 == 0xFFFF) { changeTextureAnime(LKANM_BTP_TMABACC, LKANM_BTK_TEUR, -1); voiceStart(38); - m34D0 = 0x14; + m34D0 = 20; } if (mCurProc == daPyProc_WAIT_e) { return false; @@ -6177,7 +6177,7 @@ BOOL daPy_lk_c::procWait() { m34D0--; } else if (cM_rnd() < 0.05f) { voiceStart(38); - m34D0 = 0x14; + m34D0 = 20; } } if (!dComIfGp_event_runCheck() && m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_WAITS && @@ -6249,7 +6249,7 @@ BOOL daPy_lk_c::procMove_init() { } commonProcInit(daPyProc_MOVE_e); setBlendMoveAnime(m_HIO->mBasic.m.field_0xC); - m34D0 = 0x14; + m34D0 = 20; return true; } @@ -6279,7 +6279,7 @@ BOOL daPy_lk_c::procAtnMove_init() { } commonProcInit(daPyProc_ATN_MOVE_e); setBlendAtnMoveAnime(m_HIO->mBasic.m.field_0xC); - m34D0 = 0x14; + m34D0 = 20; return true; } @@ -6338,7 +6338,7 @@ BOOL daPy_lk_c::procAtnActorMove_init() { } commonProcInit(daPyProc_ATN_ACTOR_MOVE_e); setBlendAtnMoveAnime(m_HIO->mBasic.m.field_0xC); - m34D0 = 0x14; + m34D0 = 20; return true; } diff --git a/src/d/actor/d_a_player_ship.inc b/src/d/actor/d_a_player_ship.inc index 406c8677e..dc9eca69c 100644 --- a/src/d/actor/d_a_player_ship.inc +++ b/src/d/actor/d_a_player_ship.inc @@ -632,7 +632,7 @@ BOOL daPy_lk_c::procShipPaddle_init() { } setShipRidePos(1); dComIfGp_setPlayerStatus0(0, daPyStts0_SHIP_RIDE_e); - m34D0 = (s16)(int)(300.0f + cM_rndF(150.0f)); + m34D0 = 300.0f + cM_rndF(150.0f); return true; } diff --git a/src/d/actor/d_a_player_sword.inc b/src/d/actor/d_a_player_sword.inc index 3808601cc..d58222888 100644 --- a/src/d/actor/d_a_player_sword.inc +++ b/src/d/actor/d_a_player_sword.inc @@ -1696,7 +1696,7 @@ BOOL daPy_lk_c::procCutTurnMove_init() { pcVar4 = checkNormalSwordEquip() ? NULL : (cXyz*)&eff_scale; m32E4.makeEmitter(dPa_name::ID_AK_JN_CHARGEPOWER00, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); m32F0.makeEmitter(dPa_name::ID_AK_JN_CHARGEPOWER01, mpCLModel->getAnmMtx(8), ¤t.pos, pcVar4); - m34D0 = 0x2f; + m34D0 = 47; } else { m34D0 = -1; } diff --git a/src/d/actor/d_a_player_vomit.inc b/src/d/actor/d_a_player_vomit.inc index c241d9f33..5145c1e8d 100644 --- a/src/d/actor/d_a_player_vomit.inc +++ b/src/d/actor/d_a_player_vomit.inc @@ -181,7 +181,7 @@ BOOL daPy_lk_c::procVomitJump_init(int param_0) { } if (param_0 == 1) { gravity = 0.0f; - m34D2 = 0x14; + m34D2 = 20; } else { voiceStart(0); if (param_0 == 3) { diff --git a/src/d/d_cc_uty.cpp b/src/d/d_cc_uty.cpp index f228aeb49..0aea321db 100644 --- a/src/d/d_cc_uty.cpp +++ b/src/d/d_cc_uty.cpp @@ -86,7 +86,9 @@ void def_se_set_p(fopAc_ac_c* actor, cXyz* sePos, cCcD_Obj* obj, unsigned long r /* 800AEBCC-800AEEF8 .text at_power_check__FP8CcAtInfo */ fopAc_ac_c* at_power_check(CcAtInfo* atInfo) { + fopAc_ac_c* player_actor = dComIfGp_getPlayer(0); daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + if (atInfo->mpObj == NULL) { return NULL; } @@ -185,6 +187,8 @@ fopAc_ac_c* at_power_check(CcAtInfo* atInfo) { /* 800AEEF8-800AF368 .text cc_at_check__FP10fopAc_ac_cP8CcAtInfo */ fopAc_ac_c* cc_at_check(fopAc_ac_c* tgActor, CcAtInfo* atInfo) { + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + atInfo->mHitSoundId = 0; atInfo->mpActor = at_power_check(atInfo); diff --git a/src/d/d_file_select.cpp b/src/d/d_file_select.cpp index d8e75781e..be5c785be 100644 --- a/src/d/d_file_select.cpp +++ b/src/d/d_file_select.cpp @@ -425,7 +425,7 @@ int dFile_select_c::closeErrCopy() { void dFile_select_c::dataSelect() { stick2->checkTrigger(); if(CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_START(0)) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); mIconMode = 4; field_0x2fc0[0].pane->hide(); if(field_0x3917[saveSlot]) { @@ -437,7 +437,7 @@ void dFile_select_c::dataSelect() { } else if(stick2->checkUpTrigger()) { if(saveSlot != 0) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); saveSlot--; field_0x3948 = 0.0f; field_0x3923 = 0xFF; @@ -448,7 +448,7 @@ void dFile_select_c::dataSelect() { } else if(stick2->checkDownTrigger()) { if(saveSlot != 2) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); saveSlot++; field_0x3948 = 0.0f; field_0x3923 = 0x1; @@ -773,18 +773,18 @@ void dFile_select_c::menuSelect() { if(CPad_CHECK_TRIG_A(0)) { if(field_0x3928 == 0) { if(field_0x3914[saveSlot]) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); } else if(saveStatus[saveSlot]) { if(field_0x391D[saveSlot]) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); } else { - mDoAud_seStart(JA_SE_MSEL_ENTER_GAME, NULL); + mDoAud_seStart(JA_SE_MSEL_ENTER_GAME); } } else { - mDoAud_seStart(JA_SE_MSEL_ENTER_GAME, NULL); + mDoAud_seStart(JA_SE_MSEL_ENTER_GAME); } field_0x3930 = 0; field_0x30d8.pane->hide(); @@ -793,7 +793,7 @@ void dFile_select_c::menuSelect() { field_0x392b = 0x26; } else if(field_0x3928 == 1) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); field_0x3930 = 0; field_0x30d8.pane->hide(); field_0x3924 = saveSlot; @@ -804,7 +804,7 @@ void dFile_select_c::menuSelect() { field_0x392a = 3; } else if(field_0x3928 == 2) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); field_0x3930 = 0; field_0x30d8.pane->hide(); field_0x3944 = 0.0f; @@ -813,7 +813,7 @@ void dFile_select_c::menuSelect() { field_0x392a = 4; } else if(field_0x3928 == 3) { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); field_0x3930 = 0; field_0x30d8.pane->hide(); field_0x3944 = 0.0f; @@ -823,7 +823,7 @@ void dFile_select_c::menuSelect() { } } else if(CPad_CHECK_TRIG_B(0)){ - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); field_0x3930 = 0; field_0x30d8.pane->hide(); mIconMode = 5; @@ -832,7 +832,7 @@ void dFile_select_c::menuSelect() { } else if(stick->checkRightTrigger()) { if(field_0x3928 != 3) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928++; if( #if VERSION > VERSION_DEMO @@ -849,7 +849,7 @@ void dFile_select_c::menuSelect() { } else if(stick->checkLeftTrigger()) { if(field_0x3928 != 0) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928--; if( #if VERSION > VERSION_DEMO @@ -967,7 +967,7 @@ void dFile_select_c::ToBackPaneMove() { void dFile_select_c::copyDataToSelect() { stick->checkTrigger(); if(CPad_CHECK_TRIG_A(0)) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); switch(field_0x3924) { case 0: @@ -994,7 +994,7 @@ void dFile_select_c::copyDataToSelect() { field_0x392b = 0xA; } else if(CPad_CHECK_TRIG_B(0)){ - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); field_0x2fc0[0].pane->hide(); fopMsgM_messageGet(field_0x38e8[field_0x392d ^ 1], 0x1B); mIconMode = 5; @@ -1002,7 +1002,7 @@ void dFile_select_c::copyDataToSelect() { } else if(stick->checkUpTrigger()) { if(field_0x3925) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3948 = 0.0f; field_0x3923 = -1; field_0x3930 = 0; @@ -1013,7 +1013,7 @@ void dFile_select_c::copyDataToSelect() { } else if(stick->checkDownTrigger()) { if(field_0x3925 != 1) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3948 = 0.0f; field_0x3923 = 1; field_0x3930 = 0; @@ -1670,13 +1670,13 @@ void dFile_select_c::YesNoSelect() { stick->checkTrigger(); if(CPad_CHECK_TRIG_A(0)) { if(field_0x3928 == 0) { - mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_S, NULL); + mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_S); #if VERSION > VERSION_DEMO field_0x3941 = 1; #endif } else { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); mIconMode = 5; } @@ -1685,7 +1685,7 @@ void dFile_select_c::YesNoSelect() { field_0x392b = 0xC; } else if(CPad_CHECK_TRIG_B(0)) { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); mIconMode = 5; field_0x30d8.pane->hide(); field_0x3928 = 1; @@ -1694,7 +1694,7 @@ void dFile_select_c::YesNoSelect() { } else if(stick->checkRightTrigger()) { if(field_0x3928 != 1) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928 = 1; field_0x3930 = 0; yesNoCursorMove(); @@ -1702,7 +1702,7 @@ void dFile_select_c::YesNoSelect() { } else if(stick->checkLeftTrigger()) { if(field_0x3928 != 0) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928 = 0; field_0x3930 = 0; yesNoCursorMove(); @@ -1816,7 +1816,7 @@ void dFile_select_c::CommandExec() { void dFile_select_c::DataEraseWait() { int temp = mDoMemCd_SaveSync(); if(temp) { - mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_E, NULL); + mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_E); if(temp == 2) { field_0x3930 = 0; @@ -1842,7 +1842,7 @@ void dFile_select_c::DataEraseWait() { void dFile_select_c::DataCopyWait() { int temp = mDoMemCd_SaveSync(); if(temp) { - mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_E, NULL); + mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_E); if(temp == 2) { field_0x3929 = 1; @@ -3480,7 +3480,7 @@ void dDlst_FileSel_c::draw() { void dFile_select_c::dataSelectEx() { stick2->checkTrigger(); if(CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_START(0)) { - mDoAud_seStart(JA_SE_MSEL_OK_1, NULL); + mDoAud_seStart(JA_SE_MSEL_OK_1); mIconMode = 4; field_0x2fc0[0].pane->hide(); fopMsgM_messageGet(field_0x38e8[field_0x392d ^ 1], 0x4F); @@ -3488,7 +3488,7 @@ void dFile_select_c::dataSelectEx() { field_0x392b = 0x1B; } else if(CPad_CHECK_TRIG_B(0)) { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); field_0x2fc0[0].pane->hide(); field_0x3930 = 0; field_0x392e = 0; @@ -3498,7 +3498,7 @@ void dFile_select_c::dataSelectEx() { } else if(stick2->checkUpTrigger()) { if(saveSlot != 0) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); saveSlot--; field_0x3948 = 0.0f; field_0x3923 = 0xFF; @@ -3509,7 +3509,7 @@ void dFile_select_c::dataSelectEx() { } else if(stick2->checkDownTrigger()) { if(saveSlot != 2) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); saveSlot++; field_0x3948 = 0.0f; field_0x3923 = 0x1; @@ -3552,7 +3552,7 @@ void dFile_select_c::YesNoSelectEx() { stick->checkTrigger(); if(CPad_CHECK_TRIG_A(0)) { if(field_0x3928 == 0) { - mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_S, NULL); + mDoAud_seStart(JA_SE_MSEL_DATA_MANAGE_S); int result = ExCardCheck(); if(result) { field_0x392e = 1; @@ -3567,7 +3567,7 @@ void dFile_select_c::YesNoSelectEx() { } } else { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); mIconMode = 5; field_0x392b = 0x1D; } @@ -3576,7 +3576,7 @@ void dFile_select_c::YesNoSelectEx() { field_0x38e8[field_0x392d ^ 1][0] = '\0'; } else if(CPad_CHECK_TRIG_B(0)) { - mDoAud_seStart(JA_SE_MSEL_CANCEL_1, NULL); + mDoAud_seStart(JA_SE_MSEL_CANCEL_1); mIconMode = 4; field_0x30d8.pane->hide(); field_0x3928 = 1; @@ -3585,7 +3585,7 @@ void dFile_select_c::YesNoSelectEx() { } else if(stick->checkRightTrigger()) { if(field_0x3928 != 1) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928 = 1; field_0x3930 = 0; yesNoCursorMove(); @@ -3593,7 +3593,7 @@ void dFile_select_c::YesNoSelectEx() { } else if(stick->checkLeftTrigger()) { if(field_0x3928 != 0) { - mDoAud_seStart(JA_SE_MSEL_CURSOR, NULL); + mDoAud_seStart(JA_SE_MSEL_CURSOR); field_0x3928 = 0; field_0x3930 = 0; yesNoCursorMove(); @@ -3715,7 +3715,7 @@ void dFile_select_c::ExDataSaveWait() { int temp = mDoMemCd_SaveSync(); if(temp) { if(temp == 2) { - mDoAud_seStart(JA_SE_ALERT_DATA, NULL); + mDoAud_seStart(JA_SE_ALERT_DATA); field_0x3930 = 0; field_0x3929 = 1; @@ -3724,7 +3724,7 @@ void dFile_select_c::ExDataSaveWait() { field_0x392b = 0x24; } else if(temp == 1) { - mDoAud_seStart(JA_SE_SAVE_FINISH, NULL); + mDoAud_seStart(JA_SE_SAVE_FINISH); field_0x3930 = 0; field_0x3929 = 0; diff --git a/src/d/d_kankyo_rain.cpp b/src/d/d_kankyo_rain.cpp index 4c9cbb508..21c2b2e3a 100644 --- a/src/d/d_kankyo_rain.cpp +++ b/src/d/d_kankyo_rain.cpp @@ -3621,7 +3621,7 @@ void dKyr_thunder_move() { cLib_addCalc(&pThunder->mFlashTimer, 1.0f, 0.3f, 0.2f, 0.001f); if (pThunder->mFlashTimer >= 1.0f) { if (pThunder->mState < 10) - mDoAud_seStart(JA_SE_OBJ_THUNDER_NEAR, NULL); + mDoAud_seStart(JA_SE_OBJ_THUNDER_NEAR); pThunder->mState++; } diff --git a/src/d/d_menu_option.cpp b/src/d/d_menu_option.cpp index c1c746507..3f015dfc5 100644 --- a/src/d/d_menu_option.cpp +++ b/src/d/d_menu_option.cpp @@ -256,7 +256,7 @@ void dMenu_Option_c::titleMove() { f32 f30 = rotate_angle * (1.0f - alpha); if (mC80[0].mUserArea == 8) { - mDoAud_seStart(JA_SE_ITM_MENU_OPT_STR, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_STR); } float y = 1.0f - alpha; @@ -434,7 +434,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { } cursorMove(); noteSet(); - mDoAud_seStart(JA_SE_ITM_MENU_CURSOR, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_CURSOR); } break; } @@ -446,7 +446,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { } cursorMove(); noteSet(); - mDoAud_seStart(JA_SE_ITM_MENU_CURSOR, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_CURSOR); } break; } @@ -460,7 +460,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3C = 1; } m858[1].mUserArea = 6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); break; } case 1: { @@ -471,7 +471,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3D = 1; } m858[1].mUserArea = 6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); ; break; } @@ -483,7 +483,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3E = 0; } m858[1].mUserArea = 6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); mDoAud_setOutputMode(soundMode[mE3E]); setSoundMode(soundMode[mE3E]); break; @@ -498,7 +498,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { g_mDoCPd_gamePad[0]->mRumble.startPatternedRumble(&mE38, JUTGamePad::CRumble::LOOP_ONCE, 0x3c); } m858[1].mUserArea = 6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); } break; } @@ -516,7 +516,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3C = 1; } m858[1].mUserArea = -6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); break; } case 1: { @@ -527,7 +527,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3D = 1; } m858[1].mUserArea = -6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); break; } case 3: { @@ -538,7 +538,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { mE3E = 2; } m858[1].mUserArea = -6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); mDoAud_setOutputMode(soundMode[mE3E]); setSoundMode(soundMode[mE3E]); break; @@ -553,7 +553,7 @@ void dMenu_Option_c::stickMove(u8 param_1) { g_mDoCPd_gamePad[0]->mRumble.startPatternedRumble(&mE38, JUTGamePad::CRumble::LOOP_ONCE, 0x3c); } m858[1].mUserArea = -6; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW, NULL, 0, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_SW); } break; } @@ -818,7 +818,7 @@ void dMenu_Option_c::_move() { #endif dComIfGs_setOptSound(mE3E); - mDoAud_seStart(JA_SE_ITM_MENU_OPT_OUT, NULL, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_OUT); } else if (CPad_CHECK_TRIG_B(0) && !CPad_CHECK_TRIG_START(0) && @@ -831,7 +831,7 @@ void dMenu_Option_c::_move() { mE40 = 3; mE41 = 1; mC80[0].mUserArea = 0; - mDoAud_seStart(JA_SE_ITM_MENU_OPT_OUT, NULL, 0); + mDoAud_seStart(JA_SE_ITM_MENU_OPT_OUT); } else { if (!check_trigger) { diff --git a/src/d/d_s_menu.cpp b/src/d/d_s_menu.cpp index b65c03b26..52b07e7e6 100644 --- a/src/d/d_s_menu.cpp +++ b/src/d/d_s_menu.cpp @@ -183,15 +183,25 @@ static BOOL dScnMenu_Execute(menu_of_scene_class* i_this) { i_this->startCode--; } - if (CPad_CHECK_TRIG_START(0)) { +#if VERSION > VERSION_DEMO + if (CPad_CHECK_TRIG_START(0)) +#endif + { menu_of_scene_class::room_inf* room = &info->stage[l_cursolID].roomPtr[l_groupPoint[l_cursolID]]; +#if VERSION > VERSION_DEMO dComIfGp_offEnableNextStage(); - s16 startCode = (i_this->startCode != 0) ? i_this->startCode - 1 : room->startCode; +#endif + int startCode = (i_this->startCode != 0) ? i_this->startCode - 1 : room->startCode; dComIfGp_setNextStage(room->stageName, startCode, room->roomNo, room->layerNo); +#if VERSION > VERSION_DEMO if (strcmp(dComIfGp_getNextStageName(), "ENDING") == 0) { fopScnM_ChangeReq(i_this, PROC_ENDING_SCENE, PROC_OVERLAP0, 5); mDoAud_bgmStop(30); - } else { + } else +#else + if (CPad_CHECK_TRIG_START(0)) +#endif + { fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, PROC_OVERLAP0, 5); dComIfGs_setRestartRoomParam(0); mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), dComIfGp_getNextStageLayer()); diff --git a/src/d/d_s_name.cpp b/src/d/d_s_name.cpp index 0b6b07d0a..6df187eee 100644 --- a/src/d/d_s_name.cpp +++ b/src/d/d_s_name.cpp @@ -498,7 +498,7 @@ void dScnName_c::NoteOpen() { field_0x558--; return; } - mDoAud_seStart(JA_SE_MSEL_CLOTH_ON, NULL, 0, 0); + mDoAud_seStart(JA_SE_MSEL_CLOTH_ON); mMainProc = 2; field_0x55d = 1; cloth.cloth_c->init(); diff --git a/src/d/d_wood.cpp b/src/d/d_wood.cpp index 7b2e9ffbf..452356f18 100644 --- a/src/d/d_wood.cpp +++ b/src/d/d_wood.cpp @@ -664,7 +664,7 @@ void dWood::Unit_c::set_mtx(dWood::Anm_c *anim) { /* 800BEA28-800BEA50 .text clear__Q25dWood6Unit_cFv */ void dWood::Unit_c::clear() { - cLib_memSet(this, 0, 0x18c); + cLib_memSet(this, 0, sizeof(*this)); } /* 800BEA50-800BEE9C .text cc_hit_before_cut__Q25dWood6Unit_cFPQ25dWood8Packet_c */ @@ -701,7 +701,7 @@ void dWood::Unit_c::cc_hit_before_cut(dWood::Packet_c *packet) { mAnimCooldown = 20; // Play the cut sound - mDoAud_seStart(JA_SE_OBJ_TREE_SWING, &mPos, 0, 0); + mDoAud_seStart(JA_SE_OBJ_TREE_SWING, &mPos); // If we are currently performing a basic animation, assign a // new animation @@ -731,7 +731,7 @@ void dWood::Unit_c::cc_hit_before_cut(dWood::Packet_c *packet) { inf.GetCoHitLen() >= 2.0f && mAnimCooldown == 0) { mAnimCooldown = 20; - mDoAud_seStart(JA_SE_OBJ_TREE_SWING, &mPos, 0, 0); + mDoAud_seStart(JA_SE_OBJ_TREE_SWING, &mPos); // If we are currently performing a basic animation, assign a new // animation @@ -776,7 +776,7 @@ void dWood::Unit_c::cc_hit_before_cut(dWood::Packet_c *packet) { NULL, 0xff, NULL, -1, &mTevStr.mColorK0, NULL, NULL); - mDoAud_seStart(JA_SE_OBJ_CUT_L_TREE_DOWN, &mPos, 0, 0); + mDoAud_seStart(JA_SE_OBJ_CUT_L_TREE_DOWN, &mPos); f32 newShadowScale = L_attr.kCutShadowScale / L_attr.kUncutShadowScale; diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index d3ee3a5da..14699c502 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -113,7 +113,7 @@ int g_fopAc_type; u32 fopAc_ac_c::stopStatus; /* 80023514-80023540 .text fopAc_IsActor__FPv */ -s32 fopAc_IsActor(void* pProc) { +BOOL fopAc_IsActor(void* pProc) { int actor_type = ((fopAc_ac_c*)pProc)->actor_type; return fpcBs_Is_JustOfType(g_fopAc_type, actor_type); }