diff --git a/include/JAZelAudio/JAIZelBasic.h b/include/JAZelAudio/JAIZelBasic.h index da04346f2..4d603478a 100644 --- a/include/JAZelAudio/JAIZelBasic.h +++ b/include/JAZelAudio/JAIZelBasic.h @@ -62,7 +62,7 @@ public: void checkSePlaying(u32); void seStopActor(Vec*, u32); void seDeleteObject(Vec*); - void getLinkVoiceVowel(u32); + u8 getLinkVoiceVowel(u32); void linkVoiceStart(u32, Vec*, u8, s8); void monsSeInit(); void monsSeStart(u32, Vec*, u32, u32, s8); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index a22f3e3be..9d5f36feb 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -29,6 +29,8 @@ public: void makeEmitterColor(u16, MtxP, const cXyz*, const GXColor*, const GXColor*); void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { mpEmitter = emitter; } + JPABaseEmitter* getEmitter() { return mpEmitter; } + /* 0x04 */ JPABaseEmitter* mpEmitter; /* 0x08 */ MtxP mpMtx; }; // Size: 0x0C @@ -78,6 +80,7 @@ private: class daPy_py_c : public fopAc_ac_c { public: enum daPy_FLG0 { + daPyFlg0_UNK4 = 0x00000004, daPyFlg0_UNK10 = 0x00000010, daPyFlg0_CUT_AT_FLG = 0x00000040, daPyFlg0_PUSH_PULL_KEEP = 0x00000800, @@ -90,36 +93,42 @@ public: }; enum daPy_FLG1 { - daPy_FLG1_EQUIP_DRAGON_SHIELD = 0x00000001, - daPy_FLG1_NPC_CALL_COMMAND = 0x00000002, - daPy_FLG1_FORCE_VOMIT_JUMP = 0x00000010, - daPy_FLG1_NPC_NOT_CHANGE = 0x00000040, - daPy_FLG1_CONFUSE = 0x00000100, - daPy_FLG1_FREEZE_STATE = 0x00000800, - daPy_FLG1_SHIP_TACT = 0x00001000, - daPy_FLG1_USE_ARROW_EFFECT = 0x00002000, - daPy_FLG1_LETTER_READ_EYE_MOVE = 0x00004000, - daPy_FLG1_UNK8000 = 0x00008000, - daPy_FLG1_FOREST_WATER_USE = 0x00020000, - daPy_FLG1_WATER_DROP = 0x00080000, - daPy_FLG1_VINE_CATCH = 0x02000000, - daPy_FLG1_LAST_COMBO_WAIT = 0x20000000, + daPyFlg1_EQUIP_DRAGON_SHIELD = 0x00000001, + daPyFlg1_NPC_CALL_COMMAND = 0x00000002, + daPyFlg1_FORCE_VOMIT_JUMP = 0x00000010, + daPyFlg1_NPC_NOT_CHANGE = 0x00000040, + daPyFlg1_UNK80 = 0x00000080, + daPyFlg1_CONFUSE = 0x00000100, + daPyFlg1_FREEZE_STATE = 0x00000800, + daPyFlg1_SHIP_TACT = 0x00001000, + daPyFlg1_USE_ARROW_EFFECT = 0x00002000, + daPyFlg1_LETTER_READ_EYE_MOVE = 0x00004000, + daPyFlg1_UNK8000 = 0x00008000, + daPyFlg1_FOREST_WATER_USE = 0x00020000, + daPyFlg1_WATER_DROP = 0x00080000, + daPyFlg1_UNK800000 = 0x00800000, + daPyFlg1_UNK1000000 = 0x01000000, + daPyFlg1_VINE_CATCH = 0x02000000, + daPyFlg1_UNK8000000 = 0x08000000, + daPyFlg1_LAST_COMBO_WAIT = 0x20000000, }; enum daPy_RFLG0 { - daPy_RFLG0_ROPE_GRAB_RIGHT_HAND = 0x00000004, - daPy_RFLG0_GRAB_UP_END = 0x00000020, - daPy_RFLG0_AUTO_JUMP_LAND = 0x00000040, - daPy_RFLG0_RIGHT_FOOT_ON_GROUND = 0x00000400, - daPy_RFLG0_LEFT_FOOT_ON_GROUND = 0x00000800, - daPy_RFLG0_FRONT_ROLL_CRASH = 0x00002000, - daPy_RFLG0_UNK4000 = 0x00004000, - daPy_RFLG0_GRAB_UP_START = 0x00008000, - daPy_RFLG0_ATTENTION_LOCK = 0x00010000, - daPy_RFLG0_HAMMER_QUAKE = 0x00020000, - daPy_RFLG0_GRAB_PUT_START = 0x00400000, - daPy_RFLG0_TACT_USE = 0x01000000, - daPy_RFLG0_FAIRY_USE = 0x02000000, + daPyRFlg0_UNK2 = 0x00000002, + daPyRFlg0_ROPE_GRAB_RIGHT_HAND = 0x00000004, + daPyRFlg0_GRAB_UP_END = 0x00000020, + daPyRFlg0_AUTO_JUMP_LAND = 0x00000040, + daPyRFlg0_RIGHT_FOOT_ON_GROUND = 0x00000400, + daPyRFlg0_LEFT_FOOT_ON_GROUND = 0x00000800, + daPyRFlg0_FRONT_ROLL_CRASH = 0x00002000, + daPyRFlg0_UNK4000 = 0x00004000, + daPyRFlg0_GRAB_UP_START = 0x00008000, + daPyRFlg0_ATTENTION_LOCK = 0x00010000, + daPyRFlg0_HAMMER_QUAKE = 0x00020000, + daPyRFlg0_GRAB_PUT_START = 0x00400000, + daPyRFlg0_TACT_USE = 0x01000000, + daPyRFlg0_FAIRY_USE = 0x02000000, + daPyRFlg0_UNK8000000 = 0x08000000, // 0x00000001 and 0x00000002 set in daPy_lk_c::dProcLastCombo // 0x00001000 set in daPy_lk_c::procCrawlMove_init, checked in checkNoCollisionCorret__9daPy_lk_cFv // 0x04000000 set in daPy_lk_c::procShipPaddle @@ -168,42 +177,42 @@ public: void onNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 |= flag; } void offNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 &= ~flag; } bool checkNoResetFlg1(daPy_FLG1 flag) const { return mNoResetFlg1 & flag; } - bool checkEquipDragonShield() const { return checkNoResetFlg1(daPy_FLG1_EQUIP_DRAGON_SHIELD); } - void onNpcCall() { onNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); } - void offNpcCallCommand() { offNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); } - bool checkNpcCallCommand() const { return checkNoResetFlg1(daPy_FLG1_NPC_CALL_COMMAND); } - void onForceVomitJump() { onNoResetFlg1(daPy_FLG1_FORCE_VOMIT_JUMP); } - void onNpcNotChange() { onNoResetFlg1(daPy_FLG1_NPC_NOT_CHANGE); } - void offNpcNotChange() { offNoResetFlg1(daPy_FLG1_NPC_NOT_CHANGE); } - void onConfuse() { onNoResetFlg1(daPy_FLG1_CONFUSE); } - void offConfuse() { offNoResetFlg1(daPy_FLG1_CONFUSE); } - bool checkConfuse() const { return checkNoResetFlg1(daPy_FLG1_CONFUSE); } - bool checkFreezeState() const { return checkNoResetFlg1(daPy_FLG1_FREEZE_STATE); } - void onShipTact() { onNoResetFlg1(daPy_FLG1_SHIP_TACT); } - void offShipTact() { offNoResetFlg1(daPy_FLG1_SHIP_TACT); } - void onUseArrowEffect() { onNoResetFlg1(daPy_FLG1_USE_ARROW_EFFECT); } - void offUseArrowEffect() { offNoResetFlg1(daPy_FLG1_USE_ARROW_EFFECT); } - void onLetterReadEyeMove() { onNoResetFlg1(daPy_FLG1_LETTER_READ_EYE_MOVE); } - bool checkForestWaterUse() const { return checkNoResetFlg1(daPy_FLG1_FOREST_WATER_USE); } - void onWaterDrop() { onNoResetFlg1(daPy_FLG1_WATER_DROP); } - void onVineCatch() { onNoResetFlg1(daPy_FLG1_VINE_CATCH); } - bool checkLastComboWait() const { return checkNoResetFlg1(daPy_FLG1_LAST_COMBO_WAIT); } + bool checkEquipDragonShield() const { return checkNoResetFlg1(daPyFlg1_EQUIP_DRAGON_SHIELD); } + void onNpcCall() { onNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND); } + void offNpcCallCommand() { offNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND); } + bool checkNpcCallCommand() const { return checkNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND); } + void onForceVomitJump() { onNoResetFlg1(daPyFlg1_FORCE_VOMIT_JUMP); } + void onNpcNotChange() { onNoResetFlg1(daPyFlg1_NPC_NOT_CHANGE); } + void offNpcNotChange() { offNoResetFlg1(daPyFlg1_NPC_NOT_CHANGE); } + void onConfuse() { onNoResetFlg1(daPyFlg1_CONFUSE); } + void offConfuse() { offNoResetFlg1(daPyFlg1_CONFUSE); } + bool checkConfuse() const { return checkNoResetFlg1(daPyFlg1_CONFUSE); } + bool checkFreezeState() const { return checkNoResetFlg1(daPyFlg1_FREEZE_STATE); } + void onShipTact() { onNoResetFlg1(daPyFlg1_SHIP_TACT); } + void offShipTact() { offNoResetFlg1(daPyFlg1_SHIP_TACT); } + void onUseArrowEffect() { onNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); } + void offUseArrowEffect() { offNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); } + void onLetterReadEyeMove() { onNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE); } + bool checkForestWaterUse() const { return checkNoResetFlg1(daPyFlg1_FOREST_WATER_USE); } + void onWaterDrop() { onNoResetFlg1(daPyFlg1_WATER_DROP); } + void onVineCatch() { onNoResetFlg1(daPyFlg1_VINE_CATCH); } + bool checkLastComboWait() const { return checkNoResetFlg1(daPyFlg1_LAST_COMBO_WAIT); } void onResetFlg0(daPy_RFLG0 flag) { mResetFlg0 |= flag; } - void offNoResetFlg0(daPy_RFLG0 flag) { mResetFlg0 &= ~flag; } + void offResetFlg0(daPy_RFLG0 flag) { mResetFlg0 &= ~flag; } bool checkResetFlg0(daPy_RFLG0 flag) const { return mResetFlg0 & flag; } - bool getRopeGrabRightHand() const { return checkResetFlg0(daPy_RFLG0_ROPE_GRAB_RIGHT_HAND); } - bool getGrabUpEnd() const { return checkResetFlg0(daPy_RFLG0_GRAB_UP_END); } - bool getAutoJumpLand() const { return checkResetFlg0(daPy_RFLG0_AUTO_JUMP_LAND); } - bool getRightFootOnGround() const { return checkResetFlg0(daPy_RFLG0_RIGHT_FOOT_ON_GROUND); } - bool getLeftFootOnGround() const { return checkResetFlg0(daPy_RFLG0_LEFT_FOOT_ON_GROUND); } - bool checkFrontRollCrash() const { return checkResetFlg0(daPy_RFLG0_FRONT_ROLL_CRASH); } - bool getGrabUpStart() const { return checkResetFlg0(daPy_RFLG0_GRAB_UP_START); } - bool checkAttentionLock() const { return checkResetFlg0(daPy_RFLG0_ATTENTION_LOCK); } - bool checkHammerQuake() const { return checkResetFlg0(daPy_RFLG0_HAMMER_QUAKE); } - bool getGrabPutStart() const { return checkResetFlg0(daPy_RFLG0_GRAB_PUT_START); } - bool checkFairyUse() const { return checkResetFlg0(daPy_RFLG0_FAIRY_USE); } - bool checkTactUse() const { return checkResetFlg0(daPy_RFLG0_TACT_USE); } + bool getRopeGrabRightHand() const { return checkResetFlg0(daPyRFlg0_ROPE_GRAB_RIGHT_HAND); } + bool getGrabUpEnd() const { return checkResetFlg0(daPyRFlg0_GRAB_UP_END); } + bool getAutoJumpLand() const { return checkResetFlg0(daPyRFlg0_AUTO_JUMP_LAND); } + bool getRightFootOnGround() const { return checkResetFlg0(daPyRFlg0_RIGHT_FOOT_ON_GROUND); } + bool getLeftFootOnGround() const { return checkResetFlg0(daPyRFlg0_LEFT_FOOT_ON_GROUND); } + bool checkFrontRollCrash() const { return checkResetFlg0(daPyRFlg0_FRONT_ROLL_CRASH); } + bool getGrabUpStart() const { return checkResetFlg0(daPyRFlg0_GRAB_UP_START); } + bool checkAttentionLock() const { return checkResetFlg0(daPyRFlg0_ATTENTION_LOCK); } + bool checkHammerQuake() const { return checkResetFlg0(daPyRFlg0_HAMMER_QUAKE); } + bool getGrabPutStart() const { return checkResetFlg0(daPyRFlg0_GRAB_PUT_START); } + bool checkFairyUse() const { return checkResetFlg0(daPyRFlg0_FAIRY_USE); } + bool checkTactUse() const { return checkResetFlg0(daPyRFlg0_TACT_USE); } // checkSwordMiniGame__9daPy_py_cCFv // checkNormalSwordEquip__9daPy_py_cCFv diff --git a/include/d/actor/d_a_player_link.h b/include/d/actor/d_a_player_link.h index 5f32a520f..ad0956bcf 100644 --- a/include/d/actor/d_a_player_link.h +++ b/include/d/actor/d_a_player_link.h @@ -33,11 +33,15 @@ public: bool getDrawFlg() { return mDrawFlag; } void onDrawFlg() { mDrawFlag = true; } void offDrawFlg() { mDrawFlag = false; } + bool getLockFlg() { return mLockFlag; } + void onLockFlg() { mLockFlag = true; } + void offLockFlg() { mLockFlag = false; } void setPos(const cXyz* i_pos) { mPos = *i_pos; } private: /* 0x04 */ bool mDrawFlag; - /* 0x05 */ u8 field_0x5[3]; + /* 0x05 */ bool mLockFlag; + /* 0x06 */ u8 field_0x6[2]; /* 0x08 */ cXyz mPos; /* 0x14 */ Mtx field_0x14; /* 0x44 */ ResTIMG* mpImg; @@ -78,10 +82,12 @@ public: void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { emitter->becomeImmortalEmitter(); mpEmitter = emitter; - field_0x4 = 0; + mAlphaOutFlg = FALSE; } - /* 0x4 */ int field_0x4; + void onAlphaOutFlg() { mAlphaOutFlg = TRUE; } + + /* 0x4 */ BOOL mAlphaOutFlg; /* 0x8 */ JPABaseEmitter* mpEmitter; }; // Size: 0xC @@ -103,8 +109,17 @@ public: void draw(JPABaseEmitter*); ~daPy_swimTailEcallBack_c() {} daPy_swimTailEcallBack_c() {} + + void onEnd() { + field_0x04 = true; + field_0x20 = 0; + } - /* 0x4 */ u8 field_0x4[0x24]; + /* 0x04 */ bool field_0x04; + /* 0x05 */ bool field_0x05; + /* 0x08 */ u8 field_0x08[0x20 - 0x08]; + /* 0x20 */ int field_0x20; + /* 0x24 */ u8 field_0x24[0x28 - 0x24]; }; // Size: 0x28 STATIC_ASSERT(sizeof(daPy_swimTailEcallBack_c) == 0x28); @@ -189,6 +204,764 @@ struct daPy_aura_c { class daPy_anmIndex_c; +enum LINK_RES_FILE_ID { // IDs and indexes are synced + /* BCK */ + LINK_BCK_ATNGSHA=0xA, + LINK_BCK_BOMB=0xB, + LINK_BCK_COMBO_TATE=0xC, + LINK_BCK_GICER01=0xD, + LINK_BCK_GWP00=0xE, + LINK_BCK_SWGRIPMSAB=0xF, + LINK_BCK_YUCHW00=0x10, + + /* BDL */ + LINK_BDL_BINFAIRY=0x13, + LINK_BDL_BOOMERANG=0x14, + LINK_BDL_BOTTLECAP=0x15, + LINK_BDL_BOW=0x16, + LINK_BDL_CAMERA=0x17, + LINK_BDL_CL=0x18, + LINK_BDL_FAN=0x19, + LINK_BDL_FANB=0x1A, + LINK_BDL_FANSMALL=0x1B, + LINK_BDL_HAMMER=0x1C, + LINK_BDL_HANDS=0x1D, + LINK_BDL_HOOKSHOT=0x1E, + LINK_BDL_HYOINOMI=0x1F, + LINK_BDL_KATSURA=0x20, + LINK_BDL_LETTER=0x21, + LINK_BDL_PODMS=0x22, + LINK_BDL_PRING=0x23, + LINK_BDL_SHA=0x24, + LINK_BDL_SWA=0x25, + LINK_BDL_SWGRIPA=0x26, + LINK_BDL_TCEIVER=0x27, + LINK_BDL_TETOLACH=0x28, + LINK_BDL_YAMU=0x29, + + /* BDLC */ + LINK_BDL_ESA=0x2C, + LINK_BDL_HBOOTS=0x2D, + LINK_BDL_ROPEEND=0x2E, + LINK_BDL_TELESCOPE=0x2F, + + /* BDLI */ + LINK_BDL_GARWFI00=0x32, + LINK_BDL_GARWFI01=0x33, + LINK_BDL_GARWG00=0x34, + + /* BDLM */ + LINK_BDL_ARROW=0x37, + LINK_BDL_ARROWGLITTER=0x38, + LINK_BDL_BINHO=0x39, + LINK_BDL_BINLIQUID=0x3A, + LINK_BDL_BINLIQUIDH=0x3B, + LINK_BDL_BOMB=0x3C, + LINK_BDL_BOTTLEEMP=0x3D, + LINK_BDL_CUTFH=0x3E, + LINK_BDL_CUTFM=0x3F, + LINK_BDL_GICER00=0x40, + LINK_BDL_GICER01=0x41, + LINK_BDL_GWP00=0x42, + LINK_BDL_SHMS=0x43, + LINK_BDL_SUIMEN_MUNYA=0x44, + LINK_BDL_SWGRIPMS=0x45, + LINK_BDL_SWMS=0x46, + LINK_BDL_TAKT=0x47, + LINK_BDL_YAURA00=0x48, + LINK_BDL_YBAFO00=0x49, + LINK_BDL_YHSLS00=0x4A, + LINK_BDL_YMGCS00=0x4B, + LINK_BDL_YMSLI00=0x4C, + LINK_BDL_YMSLS00=0x4D, + LINK_BDL_YUCHW00=0x4E, + + /* BRK */ + LINK_BRK_BOMB=0x51, + LINK_BRK_GARWFI00=0x52, + LINK_BRK_GARWFI01=0x53, + LINK_BRK_GARWG00=0x54, + LINK_BRK_GWP00=0x55, + LINK_BRK_TSWGRIPMSAB=0x56, + LINK_BRK_YAURA00_G=0x57, + LINK_BRK_YAURA00_R=0x58, + LINK_BRK_YMGCS00_MS=0x59, + LINK_BRK_YMGCS00_TS=0x5A, + LINK_BRK_YUCHW00=0x5B, + + /* BTK */ + LINK_BTK_GARWFI00=0x5E, + LINK_BTK_GARWFI01=0x5F, + LINK_BTK_GARWG00=0x60, + LINK_BTK_GICER00=0x61, + LINK_BTK_GICER01=0x62, + LINK_BTK_GWP00=0x63, + LINK_BTK_SUIMEN_MUNYA=0x64, + LINK_BTK_TARROWGLITTER=0x65, + LINK_BTK_TSHMS=0x66, + LINK_BTK_TSWGRIPMS=0x67, + LINK_BTK_TTIPICE=0x68, + LINK_BTK_YAURA00=0x69, + LINK_BTK_YBAFO00=0x6A, + LINK_BTK_YMGCS00=0x6B, + LINK_BTK_YMSLS00=0x6C, + LINK_BTK_YUCHW00=0x6D, + + /* TEX */ + LINK_BTI_BLUR=0x70, + LINK_BTI_LINKTEXBCI4=0x71, + LINK_BTI_ROCK_MARK=0x72, +}; + +enum LKANM_RES_FILE_ID { // IDs and indexes are synced + /* BCKS */ + LKANM_BCK_ACTIONTAKTRDW=0x8, + LKANM_BCK_ACTIONTAKTRL=0x9, + LKANM_BCK_ACTIONTAKTRR=0xA, + LKANM_BCK_ACTIONTAKTRUP=0xB, + LKANM_BCK_ARROWRELORD=0xC, + LKANM_BCK_ARROWRELORDA=0xD, + LKANM_BCK_ARROWSHOOT=0xE, + LKANM_BCK_ARROWSHOOTA=0xF, + LKANM_BCK_ATNBOKO=0x10, + LKANM_BCK_ATNDB=0x11, + LKANM_BCK_ATNDL=0x12, + LKANM_BCK_ATNDLS=0x13, + LKANM_BCK_ATNDR=0x14, + LKANM_BCK_ATNDRS=0x15, + LKANM_BCK_ATNG=0x16, + LKANM_BCK_ATNGAHAM=0x17, + LKANM_BCK_ATNGAHAMA=0x18, + LKANM_BCK_ATNGAL=0x19, + LKANM_BCK_ATNGAR=0x1A, + LKANM_BCK_ATNGHAM=0x1B, + LKANM_BCK_ATNHAM=0x1C, + LKANM_BCK_ATNJL=0x1D, + LKANM_BCK_ATNJLLAND=0x1E, + LKANM_BCK_ATNJR=0x1F, + LKANM_BCK_ATNJRLAND=0x20, + LKANM_BCK_ATNL=0x21, + LKANM_BCK_ATNLS=0x22, + LKANM_BCK_ATNR=0x23, + LKANM_BCK_ATNRS=0x24, + LKANM_BCK_ATNWB=0x25, + LKANM_BCK_ATNWL=0x26, + LKANM_BCK_ATNWLS=0x27, + LKANM_BCK_ATNWR=0x28, + LKANM_BCK_ATNWRS=0x29, + LKANM_BCK_BINDRINKAFTER=0x2A, + LKANM_BCK_BINDRINKING=0x2B, + LKANM_BCK_BINDRINKPRE=0x2C, + LKANM_BCK_BINGET=0x2D, + LKANM_BCK_BINOPENA=0x2E, + LKANM_BCK_BINOPENB=0x2F, + LKANM_BCK_BINOPENPRE=0x30, + LKANM_BCK_BINSWINGS=0x31, + LKANM_BCK_BINSWINGU=0x32, + LKANM_BCK_BOOMCATCH=0x33, + LKANM_BCK_BOOMTHROW=0x34, + LKANM_BCK_BOOMWAIT=0x35, + LKANM_BCK_BOWWAIT=0x36, + LKANM_BCK_BOWWAITA=0x37, + LKANM_BCK_BOXOPENLINK=0x38, + LKANM_BCK_BOXOPENSHORTLINK=0x39, + LKANM_BCK_BOXOPENSLINK=0x3A, + LKANM_BCK_COMBO_KEN=0x3B, + LKANM_BCK_COMBO_LINK=0x3C, + LKANM_BCK_COMEOUT=0x3D, + LKANM_BCK_CROUCH=0x3E, + LKANM_BCK_CUTA=0x3F, + LKANM_BCK_CUTAA=0x40, + LKANM_BCK_CUTAMS=0x41, + LKANM_BCK_CUTBOKO=0x42, + LKANM_BCK_CUTEA=0x43, + LKANM_BCK_CUTEAA=0x44, + LKANM_BCK_CUTEAMS=0x45, + LKANM_BCK_CUTEB=0x46, + LKANM_BCK_CUTEBA=0x47, + LKANM_BCK_CUTEBMS=0x48, + LKANM_BCK_CUTF=0x49, + LKANM_BCK_CUTFA=0x4A, + LKANM_BCK_CUTFMS=0x4B, + LKANM_BCK_CUTKESA=0x4C, + LKANM_BCK_CUTKESAA=0x4D, + LKANM_BCK_CUTKESAMS=0x4E, + LKANM_BCK_CUTL=0x4F, + LKANM_BCK_CUTLA=0x50, + LKANM_BCK_CUTLMS=0x51, + LKANM_BCK_CUTR=0x52, + LKANM_BCK_CUTRA=0x53, + LKANM_BCK_CUTREHAM=0x54, + LKANM_BCK_CUTREL=0x55, + LKANM_BCK_CUTRER=0x56, + LKANM_BCK_CUTRMS=0x57, + LKANM_BCK_CUTTURN=0x58, + LKANM_BCK_CUTTURNA=0x59, + LKANM_BCK_CUTTURNB=0x5A, + LKANM_BCK_CUTTURNC=0x5B, + LKANM_BCK_CUTTURNMS=0x5C, + LKANM_BCK_CUTTURNP=0x5D, + LKANM_BCK_CUTTURNPB=0x5E, + LKANM_BCK_CUTTURNPWFB=0x5F, + LKANM_BCK_CUTTURNPWLR=0x60, + LKANM_BCK_DAM=0x61, + LKANM_BCK_DAMB=0x62, + LKANM_BCK_DAMBIRI=0x63, + LKANM_BCK_DAMDASH=0x64, + LKANM_BCK_DAMF=0x65, + LKANM_BCK_DAMFB=0x66, + LKANM_BCK_DAMFBUP=0x67, + LKANM_BCK_DAMFF=0x68, + LKANM_BCK_DAMFFUP=0x69, + LKANM_BCK_DAMFL=0x6A, + LKANM_BCK_DAMFLUP=0x6B, + LKANM_BCK_DAMFR=0x6C, + LKANM_BCK_DAMFRUP=0x6D, + LKANM_BCK_DAML=0x6E, + LKANM_BCK_DAMR=0x6F, + LKANM_BCK_DASH=0x70, + LKANM_BCK_DASHBOKO=0x71, + LKANM_BCK_DASHHAM=0x72, + LKANM_BCK_DASHKAZE=0x73, + LKANM_BCK_DASHS=0x74, + LKANM_BCK_DIELONG=0x75, + LKANM_BCK_DIFENCE=0x76, + LKANM_BCK_DIFENCEA=0x77, + LKANM_BCK_DIFENCEAHAM=0x78, + LKANM_BCK_DIFENCEHAM=0x79, + LKANM_BCK_DOOROPENALINK=0x7A, + LKANM_BCK_DOOROPENBLINK=0x7B, + LKANM_BCK_ESAMAKI=0x7C, + LKANM_BCK_EXCA1=0x7D, + LKANM_BCK_EXCA1A=0x7E, + LKANM_BCK_EXCA1MS=0x7F, + LKANM_BCK_EXCB1=0x80, + LKANM_BCK_EXCB1A=0x81, + LKANM_BCK_EXCB1MS=0x82, + LKANM_BCK_FANB2A=0x83, + LKANM_BCK_FANBA=0x84, + LKANM_BCK_FANWAIT=0x85, + LKANM_BCK_FCLIMBSLIDELUP=0x86, + LKANM_BCK_FCLIMBSLIDERUP=0x87, + LKANM_BCK_FM_BATA=0x88, + LKANM_BCK_FN_HAIR1=0x89, + LKANM_BCK_FREEA=0x8A, + LKANM_BCK_FREEB=0x8B, + LKANM_BCK_FREED=0x8C, + LKANM_BCK_GETLETTER=0x8D, + LKANM_BCK_GETLETTERA=0x8E, + LKANM_BCK_GLAD=0x8F, + LKANM_BCK_GRABNG=0x90, + LKANM_BCK_GRABP=0x91, + LKANM_BCK_GRABRE=0x92, + LKANM_BCK_GRABTHROW=0x93, + LKANM_BCK_GRABUP=0x94, + LKANM_BCK_GRABWAIT=0x95, + LKANM_BCK_GRABWAITB=0x96, + LKANM_BCK_HAMMERDAM=0x97, + LKANM_BCK_HAMSWINGA=0x98, + LKANM_BCK_HAMSWINGAA=0x99, + LKANM_BCK_HAMSWINGBEND=0x9A, + LKANM_BCK_HAMSWINGBHIT=0x9B, + LKANM_BCK_HAMSWINGBHITA=0x9C, + LKANM_BCK_HAMSWINGBPRE=0x9D, + LKANM_BCK_HAMSWINGBPREA=0x9E, + LKANM_BCK_HANGING=0x9F, + LKANM_BCK_HANGL=0xA0, + LKANM_BCK_HANGMOVEL=0xA1, + LKANM_BCK_HANGMOVER=0xA2, + LKANM_BCK_HANGUP=0xA3, + LKANM_BCK_HOLDUP=0xA4, + LKANM_BCK_HOOKSHOTA=0xA5, + LKANM_BCK_HOOKSHOTJMP=0xA6, + LKANM_BCK_HOOKSHOTWAIT=0xA7, + LKANM_BCK_ITEMGET=0xA8, + LKANM_BCK_JATTACK=0xA9, + LKANM_BCK_JATTACKLAND=0xAA, + LKANM_BCK_JATTCKCUT=0xAB, + LKANM_BCK_JATTCKCUTHAM=0xAC, + LKANM_BCK_JATTCKP=0xAD, + LKANM_BCK_JMPED=0xAE, + LKANM_BCK_JMPEDS=0xAF, + LKANM_BCK_JMPST=0xB0, + LKANM_BCK_KOSHIKAKE=0xB1, + LKANM_BCK_LADDERDWEDL=0xB2, + LKANM_BCK_LADDERDWEDR=0xB3, + LKANM_BCK_LADDERDWST=0xB4, + LKANM_BCK_LADDERLTOR=0xB5, + LKANM_BCK_LADDERRTOL=0xB6, + LKANM_BCK_LADDERUPEDL=0xB7, + LKANM_BCK_LADDERUPEDR=0xB8, + LKANM_BCK_LADDERUPST=0xB9, + LKANM_BCK_LANDDAMA=0xBA, + LKANM_BCK_LANDDAMAST=0xBB, + LKANM_BCK_LAVADAM=0xBC, + LKANM_BCK_LIE=0xBD, + LKANM_BCK_LIEFORWARD=0xBE, + LKANM_BCK_LINK_FREEZ=0xBF, + LKANM_BCK_LINK_MOGAKI=0xC0, + LKANM_BCK_LOOKUP=0xC1, + LKANM_BCK_MJMP=0xC2, + LKANM_BCK_MJMPC=0xC3, + LKANM_BCK_MJMPCA=0xC4, + LKANM_BCK_MJMPCMS=0xC5, + LKANM_BCK_MOGAKU1=0xC6, + LKANM_BCK_MROLLCA=0xC7, + LKANM_BCK_MROLLCMS=0xC8, + LKANM_BCK_MROLLL=0xC9, + LKANM_BCK_MROLLLC=0xCA, + LKANM_BCK_MROLLR=0xCB, + LKANM_BCK_MROLLRC=0xCC, + LKANM_BCK_MSTEPOVER=0xCD, + LKANM_BCK_MSTEPOVERA=0xCE, + LKANM_BCK_MSTEPOVERLAND=0xCF, + LKANM_BCK_NENRIKI=0xD0, + LKANM_BCK_PICKUP=0xD1, + LKANM_BCK_POWUP=0xD2, + LKANM_BCK_POWUPWAIT=0xD3, + LKANM_BCK_PRESENTATIONA=0xD4, + LKANM_BCK_PRESENTATIONAWAIT=0xD5, + LKANM_BCK_PRESENTATIONB=0xD6, + LKANM_BCK_REST=0xD7, + LKANM_BCK_RISE=0xD8, + LKANM_BCK_ROLLB=0xD9, + LKANM_BCK_ROLLBLAND=0xDA, + LKANM_BCK_ROLLF=0xDB, + LKANM_BCK_ROLLFMIS=0xDC, + LKANM_BCK_ROPECATCH=0xDD, + LKANM_BCK_ROPECLIMB=0xDE, + LKANM_BCK_ROPEDOWN=0xDF, + LKANM_BCK_ROPESWINGB=0xE0, + LKANM_BCK_ROPESWINGF=0xE1, + LKANM_BCK_ROPETHROW=0xE2, + LKANM_BCK_ROPETHROWCATCH=0xE3, + LKANM_BCK_ROPETHROWWAIT=0xE4, + LKANM_BCK_ROPEWAIT=0xE5, + LKANM_BCK_ROT=0xE6, + LKANM_BCK_SALTATION=0xE7, + LKANM_BCK_SALVLBAD=0xE8, + LKANM_BCK_SALVLGOOD=0xE9, + LKANM_BCK_SALVLR=0xEA, + LKANM_BCK_SALVLWAIT=0xEB, + LKANM_BCK_SALVRBAD=0xEC, + LKANM_BCK_SALVRGOOD=0xED, + LKANM_BCK_SALVRWAIT=0xEE, + LKANM_BCK_SEARESET=0xEF, + LKANM_BCK_SETBOOTS=0xF0, + LKANM_BCK_SETHYOINOMI=0xF1, + LKANM_BCK_SEYYES=0xF2, + LKANM_BCK_SHIP_JUMP1=0xF3, + LKANM_BCK_SHIP_JUMP2=0xF4, + LKANM_BCK_SHIPDIE=0xF5, + LKANM_BCK_SLIDEB=0xF6, + LKANM_BCK_SLIDEBLAND=0xF7, + LKANM_BCK_SLIDEF=0xF8, + LKANM_BCK_SLIDEFLAND=0xF9, + LKANM_BCK_SLIP=0xFA, + LKANM_BCK_SLIPICE=0xFB, + LKANM_BCK_SURPRISED=0xFC, + LKANM_BCK_SURPRISEDB=0xFD, + LKANM_BCK_SURPRISEDWAIT=0xFE, + LKANM_BCK_SWIMDIE=0xFF, + LKANM_BCK_SWIMING=0x100, + LKANM_BCK_SWIMP=0x101, + LKANM_BCK_SWIMWAIT=0x102, + LKANM_BCK_TAKE=0x103, + LKANM_BCK_TAKEBOTH=0x104, + LKANM_BCK_TAKEL=0x105, + LKANM_BCK_TAKER=0x106, + LKANM_BCK_TAKTAYATSURI=0x107, + LKANM_BCK_TAKTCHISIN=0x108, + LKANM_BCK_TAKTCHUYA=0x109, + LKANM_BCK_TAKTDGE=0x10A, + LKANM_BCK_TAKTFUJIN=0x10B, + LKANM_BCK_TAKTKAZE=0x10C, + LKANM_BCK_TAKTSIPPU=0x10D, + LKANM_BCK_TALKA=0x10E, + LKANM_BCK_TETOLACH=0x10F, + LKANM_BCK_TURNBACK=0x110, + LKANM_BCK_USEFANA=0x111, + LKANM_BCK_USEFANAA=0x112, + LKANM_BCK_USEFANB=0x113, + LKANM_BCK_USEFANB2=0x114, + LKANM_BCK_USETCEIVER=0x115, + LKANM_BCK_VJMP=0x116, + LKANM_BCK_VJMPCHA=0x117, + LKANM_BCK_VJMPCHB=0x118, + LKANM_BCK_VJMPCL=0x119, + LKANM_BCK_VOMITJMP=0x11A, + LKANM_BCK_VOYAGE1=0x11B, + LKANM_BCK_WAIT=0x11C, + LKANM_BCK_WAITATOB=0x11D, + LKANM_BCK_WAITAUCTION=0x11E, + LKANM_BCK_WAITB=0x11F, + LKANM_BCK_WAITBOKO=0x120, + LKANM_BCK_WAITHAM=0x121, + LKANM_BCK_WAITLETTER=0x122, + LKANM_BCK_WAITPICKUP=0x123, + LKANM_BCK_WAITPUSHPULL=0x124, + LKANM_BCK_WAITQ=0x125, + LKANM_BCK_WAITS=0x126, + LKANM_BCK_WAITTAKT=0x127, + LKANM_BCK_WAITTAKTLHANDD=0x128, + LKANM_BCK_WAITTAKTLHANDL=0x129, + LKANM_BCK_WAITTAKTLHANDR=0x12A, + LKANM_BCK_WAITTAKTLHANDU=0x12B, + LKANM_BCK_WAITTAKTRHANDL=0x12C, + LKANM_BCK_WAITTAKTRHANDR=0x12D, + LKANM_BCK_WALK=0x12E, + LKANM_BCK_WALKBARREL=0x12F, + LKANM_BCK_WALKBOKO=0x130, + LKANM_BCK_WALKHAM=0x131, + LKANM_BCK_WALKHBOOTS=0x132, + LKANM_BCK_WALKPULL=0x133, + LKANM_BCK_WALKPUSH=0x134, + LKANM_BCK_WALKS=0x135, + LKANM_BCK_WALKSLOPE=0x136, + LKANM_BCK_WALL=0x137, + LKANM_BCK_WALLDW=0x138, + LKANM_BCK_WALLHOLDUP=0x139, + LKANM_BCK_WALLHOLDUPDW=0x13A, + LKANM_BCK_WALLPL=0x13B, + LKANM_BCK_WALLPLDW=0x13C, + LKANM_BCK_WALLPR=0x13D, + LKANM_BCK_WALLPRDW=0x13E, + LKANM_BCK_WALLWL=0x13F, + LKANM_BCK_WALLWLDW=0x140, + LKANM_BCK_WALLWR=0x141, + LKANM_BCK_WALLWRDW=0x142, + LKANM_BCK_WARPIN=0x143, + LKANM_BCK_WARPOUT=0x144, + LKANM_BCK_WARPOUTFIRST=0x145, + LKANM_BCK_WHO=0x146, + LKANM_BCK_WINDL=0x147, + LKANM_BCK_WINDR=0x148, + LKANM_BCK_YOBU=0x149, + + /* BPK */ + LKANM_BPK_CUTFH=0x14C, + LKANM_BPK_CUTFM=0x14D, + + /* BRK */ + LKANM_BRK_CUTFH=0x150, + LKANM_BRK_CUTFM=0x151, + LKANM_BRK_TBINHO=0x152, + LKANM_BRK_TBINLIQUID=0x153, + LKANM_BRK_TTAKT=0x154, + LKANM_BRK_YHSLS00=0x155, + LKANM_BRK_YMSLI00=0x156, + + /* BTK */ + LKANM_BTK_CUTFH=0x159, + LKANM_BTK_CUTFM=0x15A, + LKANM_BTK_SALVWAIT=0x15B, + LKANM_BTK_SEARESET=0x15C, + LKANM_BTK_TABEKOBE=0x15D, + LKANM_BTK_TARROWRELORD=0x15E, + LKANM_BTK_TATNJL=0x15F, + LKANM_BTK_TATNJR=0x160, + LKANM_BTK_TBINDRINKAFTER=0x161, + LKANM_BTK_TBINDRINKAFTER2=0x162, + LKANM_BTK_TBINDRINKPRE=0x163, + LKANM_BTK_TBINGET=0x164, + LKANM_BTK_TBINOPENA=0x165, + LKANM_BTK_TBINOPENB=0x166, + LKANM_BTK_TBINOPENPRE=0x167, + LKANM_BTK_TBINSWING=0x168, + LKANM_BTK_TBOOMCATCH=0x169, + LKANM_BTK_TBOOMTHROW=0x16A, + LKANM_BTK_TBOTTLE=0x16B, + LKANM_BTK_TBOWWAIT=0x16C, + LKANM_BTK_TBOXOPENLINK=0x16D, + LKANM_BTK_TBOXOPENSHORTLINK=0x16E, + LKANM_BTK_TCOMEOUT=0x16F, + LKANM_BTK_TCUTBOKO=0x170, + LKANM_BTK_TCUTEA=0x171, + LKANM_BTK_TCUTKESA=0x172, + LKANM_BTK_TCUTRE=0x173, + LKANM_BTK_TCUTTURN=0x174, + LKANM_BTK_TCUTTURNB=0x175, + LKANM_BTK_TDAM=0x176, + LKANM_BTK_TDAMBIRI=0x177, + LKANM_BTK_TDAMFBUP=0x178, + LKANM_BTK_TDAMFFUP=0x179, + LKANM_BTK_TDAMFLUP=0x17A, + LKANM_BTK_TDAMFRUP=0x17B, + LKANM_BTK_TDASHKAZE=0x17C, + LKANM_BTK_TDIELONG=0x17D, + LKANM_BTK_TDOOROPENALINK=0x17E, + LKANM_BTK_TDOOROPENBLINK=0x17F, + LKANM_BTK_TECN=0x180, + LKANM_BTK_TEDL=0x181, + LKANM_BTK_TEDR=0x182, + LKANM_BTK_TEDW=0x183, + LKANM_BTK_TEL=0x184, + LKANM_BTK_TER=0x185, + LKANM_BTK_TEUL=0x186, + LKANM_BTK_TEUP=0x187, + LKANM_BTK_TEUR=0x188, + LKANM_BTK_TEXCA1=0x189, + LKANM_BTK_TEXCB1=0x18A, + LKANM_BTK_TEYORIME=0x18B, + LKANM_BTK_TFAN=0x18C, + LKANM_BTK_TFREEA=0x18D, + LKANM_BTK_TFREEB=0x18E, + LKANM_BTK_TFREED=0x18F, + LKANM_BTK_TGRABNG=0x190, + LKANM_BTK_TGRABP=0x191, + LKANM_BTK_TGRABTHROW=0x192, + LKANM_BTK_TGRABUP=0x193, + LKANM_BTK_TGUARD=0x194, + LKANM_BTK_THAMSWINGA=0x195, + LKANM_BTK_THAMSWINGBEND=0x196, + LKANM_BTK_THAMSWINGBHIT=0x197, + LKANM_BTK_THAMSWINGBPRE=0x198, + LKANM_BTK_THANGING=0x199, + LKANM_BTK_THANGUP=0x19A, + LKANM_BTK_THOOKSHOTJMP=0x19B, + LKANM_BTK_TITEMGET=0x19C, + LKANM_BTK_TJATTACK=0x19D, + LKANM_BTK_TJMP=0x19E, + LKANM_BTK_TLADDERDWED=0x19F, + LKANM_BTK_TLADDERDWST=0x1A0, + LKANM_BTK_TLADDERUPED=0x1A1, + LKANM_BTK_TLADDERUPST=0x1A2, + LKANM_BTK_TLANDDAMA=0x1A3, + LKANM_BTK_TLANDDAMAST=0x1A4, + LKANM_BTK_TLAVADAM=0x1A5, + LKANM_BTK_TLOOKUP=0x1A6, + LKANM_BTK_TMABA=0x1A7, + LKANM_BTK_TMJMP=0x1A8, + LKANM_BTK_TMJMPC=0x1A9, + LKANM_BTK_TMROLLL=0x1AA, + LKANM_BTK_TMROLLLC=0x1AB, + LKANM_BTK_TMROLLR=0x1AC, + LKANM_BTK_TMROLLRC=0x1AD, + LKANM_BTK_TMSTEPOVER=0x1AE, + LKANM_BTK_TMSTEPOVERA=0x1AF, + LKANM_BTK_TMSTEPOVERLAND=0x1B0, + LKANM_BTK_TPICKUP=0x1B1, + LKANM_BTK_TPOWUP=0x1B2, + LKANM_BTK_TPOWUPWAIT=0x1B3, + LKANM_BTK_TPRESENTATIONA=0x1B4, + LKANM_BTK_TPRESENTATIONB=0x1B5, + LKANM_BTK_TREST=0x1B6, + LKANM_BTK_TROLLB=0x1B7, + LKANM_BTK_TROLLF=0x1B8, + LKANM_BTK_TROLLFMIS=0x1B9, + LKANM_BTK_TSALTATION=0x1BA, + LKANM_BTK_TSETHYOINOMI=0x1BB, + LKANM_BTK_TSEYYES=0x1BC, + LKANM_BTK_TSLIDEF=0x1BD, + LKANM_BTK_TSLIDEFLAND=0x1BE, + LKANM_BTK_TSURPRISED=0x1BF, + LKANM_BTK_TSURPRISEDB=0x1C0, + LKANM_BTK_TSWIMING=0x1C1, + LKANM_BTK_TSWIMP=0x1C2, + LKANM_BTK_TSWMS=0x1C3, + LKANM_BTK_TTAKE=0x1C4, + LKANM_BTK_TTURNBACK=0x1C5, + LKANM_BTK_TUSEFANA=0x1C6, + LKANM_BTK_TUSEFANB=0x1C7, + LKANM_BTK_TVJMPCHA=0x1C8, + LKANM_BTK_TVJMPCL=0x1C9, + LKANM_BTK_TWAITATOB=0x1CA, + LKANM_BTK_TWAITPICKUP=0x1CB, + LKANM_BTK_TWALKPULL=0x1CC, + LKANM_BTK_TWALKPUSH=0x1CD, + LKANM_BTK_TWALLHOLDUP=0x1CE, + LKANM_BTK_TWALLPL=0x1CF, + LKANM_BTK_TWALLPR=0x1D0, + LKANM_BTK_TWALLWL=0x1D1, + LKANM_BTK_TWALLWR=0x1D2, + LKANM_BTK_TWARPIN=0x1D3, + LKANM_BTK_TWARPOUT=0x1D4, + LKANM_BTK_TWARPOUTFIRST=0x1D5, + LKANM_BTK_TWHO=0x1D6, + LKANM_BTK_TWINDL=0x1D7, + LKANM_BTK_TWINDR=0x1D8, + LKANM_BTK_YHSLS00=0x1D9, + LKANM_BTK_YMSLI00=0x1DA, + + /* BTP */ + LKANM_BTP_LINK_FREEZ=0x1DD, + LKANM_BTP_LINK_MOGAKI=0x1DE, + LKANM_BTP_SALVBAD=0x1DF, + LKANM_BTP_SALVGOOD=0x1E0, + LKANM_BTP_SALVLR=0x1E1, + LKANM_BTP_SALVWAIT=0x1E2, + LKANM_BTP_SEARESET=0x1E3, + LKANM_BTP_SHIP_JUMP1=0x1E4, + LKANM_BTP_SHIP_JUMP2=0x1E5, + LKANM_BTP_TARROWRELORD=0x1E6, + LKANM_BTP_TATNJLR=0x1E7, + LKANM_BTP_TBINDRINKAFTER=0x1E8, + LKANM_BTP_TBINDRINKAFTER2=0x1E9, + LKANM_BTP_TBINDRINKING=0x1EA, + LKANM_BTP_TBINDRINKING2=0x1EB, + LKANM_BTP_TBINDRINKPRE=0x1EC, + LKANM_BTP_TBINDRINKPRE2=0x1ED, + LKANM_BTP_TBINGET=0x1EE, + LKANM_BTP_TBINOPENA=0x1EF, + LKANM_BTP_TBINOPENB=0x1F0, + LKANM_BTP_TBINOPENPRE=0x1F1, + LKANM_BTP_TBINSWING=0x1F2, + LKANM_BTP_TBOOMCATCH=0x1F3, + LKANM_BTP_TBOOMTHROW=0x1F4, + LKANM_BTP_TBOWWAIT=0x1F5, + LKANM_BTP_TBOXOPENLINK=0x1F6, + LKANM_BTP_TBOXOPENSHORTLINK=0x1F7, + LKANM_BTP_TCOMEOUT=0x1F8, + LKANM_BTP_TCUT=0x1F9, + LKANM_BTP_TCUTBOKO=0x1FA, + LKANM_BTP_TCUTEA=0x1FB, + LKANM_BTP_TCUTKESA=0x1FC, + LKANM_BTP_TCUTRE=0x1FD, + LKANM_BTP_TCUTTURN=0x1FE, + LKANM_BTP_TCUTTURNB=0x1FF, + LKANM_BTP_TCUTTURNP=0x200, + LKANM_BTP_TDAM=0x201, + LKANM_BTP_TDAMBIRI=0x202, + LKANM_BTP_TDAMDASH=0x203, + LKANM_BTP_TDAMF=0x204, + LKANM_BTP_TDAMFBUP=0x205, + LKANM_BTP_TDAMFFUP=0x206, + LKANM_BTP_TDAMFLRUP=0x207, + LKANM_BTP_TDASHKAZE=0x208, + LKANM_BTP_TDIELONG=0x209, + LKANM_BTP_TDOOROPENALINK=0x20A, + LKANM_BTP_TDOOROPENBLINK=0x20B, + LKANM_BTP_TEXCA1=0x20C, + LKANM_BTP_TEXCB1=0x20D, + LKANM_BTP_TFALL=0x20E, + LKANM_BTP_TFAN=0x20F, + LKANM_BTP_TFREEA=0x210, + LKANM_BTP_TFREEB=0x211, + LKANM_BTP_TFREED=0x212, + LKANM_BTP_TGLAD=0x213, + LKANM_BTP_TGRABNG=0x214, + LKANM_BTP_TGRABP=0x215, + LKANM_BTP_TGRABRE=0x216, + LKANM_BTP_TGRABTHROW=0x217, + LKANM_BTP_TGRABUP=0x218, + LKANM_BTP_TGUARD=0x219, + LKANM_BTP_THAMSWINGA=0x21A, + LKANM_BTP_THAMSWINGBEND=0x21B, + LKANM_BTP_THAMSWINGBHIT=0x21C, + LKANM_BTP_THAMSWINGBPRE=0x21D, + LKANM_BTP_THANGING=0x21E, + LKANM_BTP_THANGUP=0x21F, + LKANM_BTP_THOLDUP=0x220, + LKANM_BTP_TITEMGET=0x221, + LKANM_BTP_TIYAYA=0x222, + LKANM_BTP_TJATTACK=0x223, + LKANM_BTP_TJMP=0x224, + LKANM_BTP_TLADDERDWED=0x225, + LKANM_BTP_TLADDERDWST=0x226, + LKANM_BTP_TLADDERUPED=0x227, + LKANM_BTP_TLADDERUPST=0x228, + LKANM_BTP_TLANDDAMA=0x229, + LKANM_BTP_TLANDDAMAST=0x22A, + LKANM_BTP_TLAVADAM=0x22B, + LKANM_BTP_TLOOKUP=0x22C, + LKANM_BTP_TMABAA=0x22D, + LKANM_BTP_TMABAB=0x22E, + LKANM_BTP_TMABAC=0x22F, + LKANM_BTP_TMABACB=0x230, + LKANM_BTP_TMABACC=0x231, + LKANM_BTP_TMABAD=0x232, + LKANM_BTP_TMABAE=0x233, + LKANM_BTP_TMABAF=0x234, + LKANM_BTP_TMABAG=0x235, + LKANM_BTP_TMABAH=0x236, + LKANM_BTP_TMABAI=0x237, + LKANM_BTP_TMABAJ=0x238, + LKANM_BTP_TMJMP=0x239, + LKANM_BTP_TMJMPC=0x23A, + LKANM_BTP_TMROLLL=0x23B, + LKANM_BTP_TMROLLLRC=0x23C, + LKANM_BTP_TMROLLR=0x23D, + LKANM_BTP_TMSTEPOVER=0x23E, + LKANM_BTP_TMSTEPOVERA=0x23F, + LKANM_BTP_TMSTEPOVERLAND=0x240, + LKANM_BTP_TNENRIKI=0x241, + LKANM_BTP_TPICKUP=0x242, + LKANM_BTP_TPOWUP=0x243, + LKANM_BTP_TPOWUPWAIT=0x244, + LKANM_BTP_TPRESENTATION=0x245, + LKANM_BTP_TREST=0x246, + LKANM_BTP_TROLLB=0x247, + LKANM_BTP_TROLLBLAND=0x248, + LKANM_BTP_TROLLF=0x249, + LKANM_BTP_TROLLFMIS=0x24A, + LKANM_BTP_TROPECLIMB=0x24B, + LKANM_BTP_TROPEDOWN=0x24C, + LKANM_BTP_TSALTATION=0x24D, + LKANM_BTP_TSETBOOTS=0x24E, + LKANM_BTP_TSETHYOINOMI=0x24F, + LKANM_BTP_TSEYYES=0x250, + LKANM_BTP_TSLIDEB=0x251, + LKANM_BTP_TSLIDEBLAND=0x252, + LKANM_BTP_TSLIDEF=0x253, + LKANM_BTP_TSLIDEFLAND=0x254, + LKANM_BTP_TSLIPICE=0x255, + LKANM_BTP_TSURPRISED=0x256, + LKANM_BTP_TSURPRISEDB=0x257, + LKANM_BTP_TSWIMDIE=0x258, + LKANM_BTP_TSWIMING=0x259, + LKANM_BTP_TSWIMP=0x25A, + LKANM_BTP_TTAKE=0x25B, + LKANM_BTP_TTAKELR=0x25C, + LKANM_BTP_TTAKTAYATSURI=0x25D, + LKANM_BTP_TTAKTCHISIN=0x25E, + LKANM_BTP_TTAKTCHUYA=0x25F, + LKANM_BTP_TTAKTFUJIN=0x260, + LKANM_BTP_TTAKTKAZE=0x261, + LKANM_BTP_TTAKTSIPPU=0x262, + LKANM_BTP_TTURNBACK=0x263, + LKANM_BTP_TUSEFANA=0x264, + LKANM_BTP_TUSEFANB=0x265, + LKANM_BTP_TUSEFANB2=0x266, + LKANM_BTP_TVJMPCHA=0x267, + LKANM_BTP_TVJMPCL=0x268, + LKANM_BTP_TVOMITJMP=0x269, + LKANM_BTP_TWAITATOB=0x26A, + LKANM_BTP_TWAITQ=0x26B, + LKANM_BTP_TWALKPULL=0x26C, + LKANM_BTP_TWALKPUSH=0x26D, + LKANM_BTP_TWALLHOLDUP=0x26E, + LKANM_BTP_TWALLPL=0x26F, + LKANM_BTP_TWALLPR=0x270, + LKANM_BTP_TWALLWL=0x271, + LKANM_BTP_TWALLWR=0x272, + LKANM_BTP_TWARPIN=0x273, + LKANM_BTP_TWARPOUT=0x274, + LKANM_BTP_TWARPOUTFIRST=0x275, + LKANM_BTP_TWHO=0x276, + LKANM_BTP_TWIND=0x277, + + /* DAT */ + LKANM__BTJUMPCUT_POS=0x27A, + LKANM__BTROTATECUTL_POS=0x27B, + LKANM__BTROTATECUTR_POS=0x27C, + LKANM__CUTA_POS=0x27D, + LKANM__CUTBOKO_POS=0x27E, + LKANM__CUTEA_POS=0x27F, + LKANM__CUTEB_POS=0x280, + LKANM__CUTEXA_POS=0x281, + LKANM__CUTEXB_POS=0x282, + LKANM__CUTJUMP_POS=0x283, + LKANM__CUTKESA_POS=0x284, + LKANM__CUTL_POS=0x285, + LKANM__CUTR_POS=0x286, + LKANM__CUTTURN_POS=0x287, + LKANM__HAMMERFRONT_POS=0x288, + LKANM__HAMMERSIDE_POS=0x289, + LKANM__LASTCOMBO_POS=0x28A, + LKANM__WEAPONJUMP_POS=0x28B, + LKANM__WEAPONTURN_POS=0x28C, +}; + class daPy_lk_c : public daPy_py_c { public: enum daPy_PROC {}; @@ -197,7 +970,9 @@ public: enum daPy_ANM {}; - enum daPy_UPPER {}; + enum daPy_UPPER { + UPPER_UNK2 = 2, + }; enum { PART_UNDER_e = 0, @@ -227,7 +1002,7 @@ public: void setAnimeHeap(JKRSolidHeap*); void setItemHeap(); void setBlurPosResource(u16); - void getItemAnimeResource(u16); + J3DAnmTransform* getItemAnimeResource(u16); void getAnimeResource(daPy_anmHeap_c*, u16, u32); void getUnderUpperAnime(daPy_anmIndex_c const*, J3DAnmTransform**, J3DAnmTransform**, int, u32); void setTextureAnimeResource(J3DAnmTexPattern*, int); @@ -293,7 +1068,7 @@ public: void checkBossGomaStage(); void checkSingleItemEquipAnime() const; void checkItemEquipAnime() const; - void checkEquipAnime() const; + BOOL checkEquipAnime() const; void deleteEquipItem(int); void setFallVoice(); void keepItemData(); @@ -336,7 +1111,7 @@ public: void checkBottleItem(int) const; void checkDrinkBottleItem(int) const; void checkOpenBottleItem(int) const; - void checkBowItem(int) const; + BOOL checkBowItem(int) const; void checkPhotoBoxItem(int) const; void checkScopeEnd(); void setSubjectMode(); @@ -344,7 +1119,7 @@ public: void checkSubjectEnd(int); BOOL checkGuardAccept(); void cancelNoDamageMode(); - void commonProcInit(daPy_lk_c::daPy_PROC procID); + BOOL commonProcInit(daPy_lk_c::daPy_PROC procID); void procScope_init(int); void procScope(); void procSubjectivity_init(int); @@ -1031,6 +1806,12 @@ public: J3DAnmTevRegKey* getBombBrk() { return mpBombBrk; } J3DAnmTextureSRTKey* getIceArrowBtk() { return mpIceArrowBtk; } J3DAnmTextureSRTKey* getLightArrowBtk() { return mpLightArrowBtk; } + bool checkGrabAnime() const { return checkGrabAnimeLight() || checkGrabAnimeHeavy(); }; + bool checkGrabAnimeLight() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_GRABWAIT; }; + bool checkGrabAnimeHeavy() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_GRABWAITB; }; + bool checkBoomerangCatchAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMCATCH; }; + bool checkBoomerangThrowAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMTHROW; }; + bool checkBoomerangReadyAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMWAIT; }; virtual MtxP getLeftHandMatrix() { return mpCLModel->getAnmMtx(0x08); } // cl_LhandA joint virtual MtxP getRightHandMatrix() { return mpCLModel->getAnmMtx(0x0C); } // cl_RhandA joint @@ -1039,12 +1820,12 @@ public: virtual int getTactTimerCancel() const; virtual BOOL checkPlayerGuard() const; virtual fopAc_ac_c* getGrabMissActor(); - virtual BOOL checkPlayerFly() const { return field_0x3618 & 0x10452822; } // TODO add enum - virtual BOOL checkFrontRoll() const { return mCurProc == 0x1E; } // TODO add enum - virtual BOOL checkBottleSwing() const { return mCurProc == 0xA5; } - virtual BOOL checkCutCharge() const { return mCurProc == 0x59; } + virtual BOOL checkPlayerFly() const { return mProcFlags & 0x10452822; } // TODO add enum + virtual BOOL checkFrontRoll() const { return mCurProcID == 0x1E; } // TODO add enum + virtual BOOL checkBottleSwing() const { return mCurProcID == 0xA5; } + virtual BOOL checkCutCharge() const { return mCurProcID == 0x59; } virtual BOOL getBokoFlamePos(cXyz*); - virtual BOOL checkTactWait() const { return mCurProc == 0x9A; } + virtual BOOL checkTactWait() const { return mCurProcID == 0x9A; } virtual void setTactZev(unsigned int, int, char*); virtual void onDekuSpReturnFlg(u8); virtual bool checkComboCutTurn() const; @@ -1188,8 +1969,8 @@ public: /* 0x31CE */ s16 field_0x31ce; /* 0x31D0 */ void* mpTextureScrollResData; /* 0x31D4 */ JKRSolidHeap* mpTextureScrollResHeap; - /* 0x31D8 */ int mCurProc; - /* 0x31DC */ int (daPy_lk_c::*field_0x31dc)(); + /* 0x31D8 */ int mCurProcID; + /* 0x31DC */ int (daPy_lk_c::*mCurProcFunc)(); /* 0x31E8 */ daPy_footEffect_c field_0x31e8[2]; /* 0x3280 */ dPa_rippleEcallBack field_0x3280; /* 0x3294 */ daPy_swimTailEcallBack_c mSwimTailEcallBack[2]; @@ -1225,7 +2006,8 @@ public: /* 0x34BB */ u8 mCurrItemHeapIdx; /* 0x34BC */ u8 field_0x34BC[0x34BD - 0x34BC]; /* 0x34BD */ u8 mLastUsedEquipItem; - /* 0x34BE */ u8 field_0x34BE[0x34C0 - 0x34BE]; + /* 0x34BE */ u8 field_0x34BE[0x34BF - 0x34BE]; + /* 0x34BF */ s8 field_0x34bf; /* 0x34C0 */ u8 field_0x34c0; /* 0x34C1 */ u8 field_0x34c1; /* 0x34C2 */ u8 field_0x34c2; @@ -1246,11 +2028,18 @@ public: /* 0x34DA */ s16 field_0x34da; /* 0x34DC */ u8 field_0x34DC[0x34DE - 0x34DC]; /* 0x34DE */ s16 field_0x34de; - /* 0x34E0 */ u8 field_0x34E0[0x34E2 - 0x34E0]; - /* 0x34E2 */ s16 field_0x34e2; - /* 0x34E4 */ u8 field_0x34E4[0x34E6 - 0x34E4]; + /* 0x34E0 */ s16 field_0x34E0; + /* 0x34E2 */ s16 field_0x34E2; + /* 0x34E4 */ s16 field_0x34E4; /* 0x34E6 */ s16 field_0x34e6; - /* 0x34E8 */ u8 field_0x34E8[0x3522 - 0x34E8]; + /* 0x34E8 */ s16 field_0x34E8; + /* 0x34EA */ s16 field_0x34EA; + /* 0x34EC */ s16 field_0x34EC; + /* 0x34EE */ u16 field_0x34EE; + /* 0x34F0 */ u16 field_0x34F0; + /* 0x34F2 */ s16 field_0x34F2; + /* 0x34F4 */ s16 field_0x34F4; + /* 0x34F6 */ u8 field_0x34F6[0x3522 - 0x34F6]; /* 0x3522 */ s16 field_0x3522; /* 0x3524 */ u8 field_0x3524[0x352C - 0x3524]; /* 0x352C */ s16 field_0x352c; @@ -1282,12 +2071,14 @@ public: /* 0x358C */ int mStaffIdx; /* 0x3590 */ int field_0x3590; /* 0x3594 */ int field_0x3594; - /* 0x3598 */ u8 field_0x3598[0x35A0 - 0x3598]; + /* 0x3598 */ f32 field_0x3598; + /* 0x359C */ u8 field_0x359C[0x35A0 - 0x359C]; /* 0x35A0 */ f32 field_0x35a0; /* 0x35A4 */ f32 field_0x35a4; /* 0x35A8 */ u8 field_0x35A8[0x35BC - 0x35A8]; /* 0x35BC */ f32 mVelocity; - /* 0x35C0 */ u8 field_0x35C0[0x35C8 - 0x35C0]; + /* 0x35C0 */ u8 field_0x35C0[0x35C4 - 0x35C0]; + /* 0x35C4 */ f32 field_0x35c4; /* 0x35C8 */ f32 field_0x35c8; /* 0x35CC */ u8 field_0x35CC[0x35D0 - 0x35CC]; /* 0x35D0 */ f32 field_0x35d0; @@ -1297,13 +2088,17 @@ public: /* 0x35E4 */ f32 field_0x35e4; /* 0x35E8 */ f32 field_0x35e8; /* 0x35EC */ f32 field_0x35ec; - /* 0x35F0 */ u8 field_0x35F0[0x35FC - 0x35F0]; + /* 0x35F0 */ f32 field_0x35f0; + /* 0x35F4 */ f32 field_0x35f4; + /* 0x35F8 */ u8 field_0x35F8[0x35FC - 0x35F8]; /* 0x35FC */ f32 field_0x35fc; /* 0x3600 */ f32 field_0x3600; - /* 0x3604 */ u8 field_0x3604[0x3610 - 0x3604]; + /* 0x3604 */ f32 field_0x3604; + /* 0x3608 */ f32 field_0x3608; + /* 0x360C */ f32 field_0x360C; /* 0x3610 */ f32 field_0x3610; /* 0x3614 */ int field_0x3614; - /* 0x3618 */ u32 field_0x3618; + /* 0x3618 */ u32 mProcFlags; /* 0x361C */ u8 field_0x361C[0x3624 - 0x361C]; /* 0x3624 */ int field_0x3624; /* 0x3628 */ int field_0x3628; @@ -1314,7 +2109,7 @@ public: /* 0x3644 */ f32 field_0x3644; /* 0x3648 */ u8 field_0x3648[0x3668 - 0x3648]; /* 0x3668 */ J3DTransformInfo field_0x3668; - /* 0x3688 */ u8 field_0x3688[0x3694 - 0x3688]; + /* 0x3688 */ cXyz field_0x3688; /* 0x3694 */ cXyz mOldSpeed; /* 0x36A0 */ cXyz field_0x36a0; /* 0x36AC */ cXyz field_0x36ac; @@ -1325,7 +2120,8 @@ public: /* 0x370C */ cXyz field_0x370c; /* 0x3718 */ u8 field_0x3718[0x3724 - 0x3718]; /* 0x3724 */ cXyz field_0x3724; - /* 0x3730 */ u8 field_0x3730[0x3748 - 0x3730]; + /* 0x3730 */ cXyz field_0x3730; + /* 0x373C */ u8 field_0x373C[0x3748 - 0x373C]; /* 0x3748 */ cXyz field_0x3748; /* 0x3754 */ u8 field_0x3754[0x37E4 - 0x3754]; /* 0x37E4 */ daPy_swBlur_c mSwBlur; @@ -1339,115 +2135,15 @@ public: /* 0x488C */ dCcD_Cps field_0x488c; /* 0x49C4 */ dCcD_Sph field_0x49c4; /* 0x4AF0 */ dCcD_Cps field_0x4af0; + + typedef int (daPy_lk_c::*daPy_ProcFunc)(); + + struct ProcInitTableEntry { + /* 0x00 */ daPy_ProcFunc mProcFunc; + /* 0x0C */ u32 mProcFlags; + }; + + static ProcInitTableEntry mProcInitTable[0xDB]; }; // Size: 0x4C28 -enum LINK_RES_FILE_ID { // IDs and indexes are synced - /* BCK */ - LINK_BCK_ATNGSHA=0xA, - LINK_BCK_BOMB=0xB, - LINK_BCK_COMBO_TATE=0xC, - LINK_BCK_GICER01=0xD, - LINK_BCK_GWP00=0xE, - LINK_BCK_SWGRIPMSAB=0xF, - LINK_BCK_YUCHW00=0x10, - - /* BDL */ - LINK_BDL_BINFAIRY=0x13, - LINK_BDL_BOOMERANG=0x14, - LINK_BDL_BOTTLECAP=0x15, - LINK_BDL_BOW=0x16, - LINK_BDL_CAMERA=0x17, - LINK_BDL_CL=0x18, - LINK_BDL_FAN=0x19, - LINK_BDL_FANB=0x1A, - LINK_BDL_FANSMALL=0x1B, - LINK_BDL_HAMMER=0x1C, - LINK_BDL_HANDS=0x1D, - LINK_BDL_HOOKSHOT=0x1E, - LINK_BDL_HYOINOMI=0x1F, - LINK_BDL_KATSURA=0x20, - LINK_BDL_LETTER=0x21, - LINK_BDL_PODMS=0x22, - LINK_BDL_PRING=0x23, - LINK_BDL_SHA=0x24, - LINK_BDL_SWA=0x25, - LINK_BDL_SWGRIPA=0x26, - LINK_BDL_TCEIVER=0x27, - LINK_BDL_TETOLACH=0x28, - LINK_BDL_YAMU=0x29, - - /* BDLC */ - LINK_BDL_ESA=0x2C, - LINK_BDL_HBOOTS=0x2D, - LINK_BDL_ROPEEND=0x2E, - LINK_BDL_TELESCOPE=0x2F, - - /* BDLI */ - LINK_BDL_GARWFI00=0x32, - LINK_BDL_GARWFI01=0x33, - LINK_BDL_GARWG00=0x34, - - /* BDLM */ - LINK_BDL_ARROW=0x37, - LINK_BDL_ARROWGLITTER=0x38, - LINK_BDL_BINHO=0x39, - LINK_BDL_BINLIQUID=0x3A, - LINK_BDL_BINLIQUIDH=0x3B, - LINK_BDL_BOMB=0x3C, - LINK_BDL_BOTTLEEMP=0x3D, - LINK_BDL_CUTFH=0x3E, - LINK_BDL_CUTFM=0x3F, - LINK_BDL_GICER00=0x40, - LINK_BDL_GICER01=0x41, - LINK_BDL_GWP00=0x42, - LINK_BDL_SHMS=0x43, - LINK_BDL_SUIMEN_MUNYA=0x44, - LINK_BDL_SWGRIPMS=0x45, - LINK_BDL_SWMS=0x46, - LINK_BDL_TAKT=0x47, - LINK_BDL_YAURA00=0x48, - LINK_BDL_YBAFO00=0x49, - LINK_BDL_YHSLS00=0x4A, - LINK_BDL_YMGCS00=0x4B, - LINK_BDL_YMSLI00=0x4C, - LINK_BDL_YMSLS00=0x4D, - LINK_BDL_YUCHW00=0x4E, - - /* BRK */ - LINK_BRK_BOMB=0x51, - LINK_BRK_GARWFI00=0x52, - LINK_BRK_GARWFI01=0x53, - LINK_BRK_GARWG00=0x54, - LINK_BRK_GWP00=0x55, - LINK_BRK_TSWGRIPMSAB=0x56, - LINK_BRK_YAURA00_G=0x57, - LINK_BRK_YAURA00_R=0x58, - LINK_BRK_YMGCS00_MS=0x59, - LINK_BRK_YMGCS00_TS=0x5A, - LINK_BRK_YUCHW00=0x5B, - - /* BTK */ - LINK_BTK_GARWFI00=0x5E, - LINK_BTK_GARWFI01=0x5F, - LINK_BTK_GARWG00=0x60, - LINK_BTK_GICER00=0x61, - LINK_BTK_GICER01=0x62, - LINK_BTK_GWP00=0x63, - LINK_BTK_SUIMEN_MUNYA=0x64, - LINK_BTK_TARROWGLITTER=0x65, - LINK_BTK_TSHMS=0x66, - LINK_BTK_TSWGRIPMS=0x67, - LINK_BTK_TTIPICE=0x68, - LINK_BTK_YAURA00=0x69, - LINK_BTK_YBAFO00=0x6A, - LINK_BTK_YMGCS00=0x6B, - LINK_BTK_YMSLS00=0x6C, - LINK_BTK_YUCHW00=0x6D, - - /* TEX */ - LINK_BTI_BLUR=0x70, - LINK_BTI_LINKTEXBCI4=0x71, - LINK_BTI_ROCK_MARK=0x72, -}; - #endif /* D_A_PLAYER_LINK */ \ No newline at end of file diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index 17f76a82f..5bdd2a99b 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -406,6 +406,7 @@ void dKy_Sound_init(); void dKy_change_colpat(u8 param_0); void dKy_custom_colset(u8 param_0, u8 param_1, f32 i_blend); u8 dKy_pship_existense_chk(); +void dKy_Itemgetcol_chg_off(); void dKy_Itemgetcol_chg_move(); void dKy_arrowcol_chg_on(cXyz*, int); void dKy_arrowcol_chg_move(); diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 35c633896..3304e67e4 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -81,6 +81,10 @@ inline void mDoAud_seStart(u32 i_sfxID, Vec* i_sePos, u32 param_2, s8 i_reverb) mDoAud_zelAudio_c::getInterface()->seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f, -1.0f, -1.0f, 0); } +inline void mDoAud_seStop(u32 i_sfxID, s32 param_2) { + mDoAud_zelAudio_c::getInterface()->seStop(i_sfxID, param_2); +} + inline void mDoAud_seStopActor(Vec* param_1, u32 param_2) { mDoAud_zelAudio_c::getInterface()->seStopActor(param_1, param_2); } @@ -89,6 +93,14 @@ inline void mDoAud_seDeleteObject(Vec* i_sePos) { mDoAud_zelAudio_c::getInterface()->seDeleteObject(i_sePos); } +inline u8 mDoAud_getLinkVoiceVowel(u32 param_1) { + return mDoAud_zelAudio_c::getInterface()->getLinkVoiceVowel(param_1); +} + +inline void mDoAud_linkVoiceStart(u32 i_sfxID, Vec* i_sePos, u8 param_3, s8 param_4) { + mDoAud_zelAudio_c::getInterface()->linkVoiceStart(i_sfxID, i_sePos, param_3, param_4); +} + inline void mDoAud_monsSeStart(u32 param_0, Vec* param_1, u32 param_2, u32 param_3, s8 i_reverb) { mDoAud_zelAudio_c::getInterface()->monsSeStart(param_0, param_1, param_2, param_3, i_reverb); } diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index e79c99773..71f579f3c 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -16,6 +16,8 @@ #include "d/d_kankyo.h" #include "JSystem/JKernel/JKRSolidHeap.h" #include "JSystem/JUtility/JUTAssert.h" +#include "d/actor/d_a_itembase.h" +#include "d/d_item_data.h" #include "d/actor/d_a_player_HIO.inc" @@ -47,8 +49,8 @@ void daPy_lk_c::seStartSwordCut(u32) { } /* 8010314C-801031A4 .text voiceStart__9daPy_lk_cFUl */ -void daPy_lk_c::voiceStart(u32) { - /* Nonmatching */ +void daPy_lk_c::voiceStart(u32 param_1) { + mDoAud_linkVoiceStart(param_1, &mEyePos, mDoAud_getLinkVoiceVowel(param_1), field_0x34bf); } /* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */ @@ -136,9 +138,9 @@ void daPy_lk_c::setAnimeHeap(JKRSolidHeap* animeHeap) { /* 801041EC-80104240 .text setItemHeap__9daPy_lk_cFv */ void daPy_lk_c::setItemHeap() { - if (!checkResetFlg0(daPy_RFLG0_UNK4000)) { + if (!checkResetFlg0(daPyRFlg0_UNK4000)) { mCurrItemHeapIdx ^= 1; - onResetFlg0(daPy_RFLG0_UNK4000); + onResetFlg0(daPyRFlg0_UNK4000); } setAnimeHeap(mpItemHeaps[mCurrItemHeapIdx]); } @@ -149,7 +151,7 @@ void daPy_lk_c::setBlurPosResource(u16) { } /* 80104280-80104364 .text getItemAnimeResource__9daPy_lk_cFUs */ -void daPy_lk_c::getItemAnimeResource(u16) { +J3DAnmTransform* daPy_lk_c::getItemAnimeResource(u16) { /* Nonmatching */ } @@ -509,7 +511,7 @@ void daPy_lk_c::checkItemEquipAnime() const { } /* 8010C528-8010C570 .text checkEquipAnime__9daPy_lk_cCFv */ -void daPy_lk_c::checkEquipAnime() const { +BOOL daPy_lk_c::checkEquipAnime() const { /* Nonmatching */ } @@ -724,7 +726,7 @@ void daPy_lk_c::checkOpenBottleItem(int) const { } /* 8011201C-80112044 .text checkBowItem__9daPy_lk_cCFi */ -void daPy_lk_c::checkBowItem(int) const { +BOOL daPy_lk_c::checkBowItem(int) const { /* Nonmatching */ } @@ -755,7 +757,7 @@ void daPy_lk_c::checkSubjectEnd(int) { /* 80112280-80112330 .text checkGuardAccept__9daPy_lk_cFv */ BOOL daPy_lk_c::checkGuardAccept() { - if (field_0x3618 & 0x40 && !checkBowAnime()) { + if (mProcFlags & 0x40 && !checkBowAnime()) { u32 stageType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); if (stageType != 2 || strcmp(dComIfGp_getStartStageName(), "Ojhous") == 0 || @@ -773,8 +775,177 @@ void daPy_lk_c::cancelNoDamageMode() { } /* 80112348-80112954 .text commonProcInit__9daPy_lk_cFQ29daPy_lk_c9daPy_PROC */ -void daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { - /* Nonmatching */ +BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { + ProcInitTableEntry& procInit = mProcInitTable[procID]; + + s32 temp_r29; + BOOL resetDemoAnime = FALSE; + s32 temp_r28; + + if (mCurProcID == 0x19) { + mDoAud_seStop(JA_SE_LK_RUN_SLIP, 0); + } else if (mCurProcID == 0x70 || (mCurProcID == 0x6E && procID != 0x70)) { + mActorKeepRope.clearData(); + } else if (mCurProcID == 0xB7) { + seStartOnlyReverb(JA_SE_LK_ITEM_TAKEOUT); + mpHeldItemModel = NULL; + } else if (mCurProcID == 0x92) { + setSmallFanModel(); + } else if (mCurProcID == 0x93) { + deleteEquipItem(0); + mMaxFallSpeed = daPy_HIO_autoJump_c0::m.field_0x10; + setSmallFanModel(); + mHeldItemType = DEKU_LEAF; + field_0x35f0 = field_0x3688.y; + field_0x3730 = cXyz::Zero; + field_0x34E0 = 0; + field_0x34E4 = 0; + } else if (mCurProcID == 0x28) { + mMaxFallSpeed = daPy_HIO_autoJump_c0::m.field_0x10; + } else if (mCurProcID == 0xA9) { + resetDemoAnime = TRUE; + speed.y = 0.0f; + } else if (mCurProcID == 0xAE || mCurProcID == 0xD0) { + dKy_Itemgetcol_chg_off(); + if (mCurProcID == 0xAE && field_0x34d8 != 0) { + field_0x34c2 = 0xB; + } + } else if (mCurProcID == 0xC3 || mCurProcID == 0xA2) { + daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this); + if (item && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) { + item->dead(); + } + } else if (mCurProcID == 0xCD) { + deleteEquipItem(0); + } else if (mCurProcID == 0x57) { + if (field_0x33a8.getEmitter()) { + field_0x33a8.getEmitter()->setGlobalAlpha(0); + } + } else if (mCurProcID == 0x8D) { + deleteArrow(); + } + + returnKeepItemData(); + + temp_r28 = (mProcFlags & 0x40000) >> 0x12; + + if (mProcFlags & 0x10040820) { + field_0x34c2 = 0xA; + } + + temp_r29 = ((mProcFlags & 0x2) >> 1) ^ 1; + + mCurProcID = procID; + mCurProcFunc = procInit.mProcFunc; + field_0x3598 = 0.0f; + mProcFlags = procInit.mProcFlags; + + if (field_0x34c2 == 1) { + field_0x34c2 = 2; + } + + if (mProcFlags & 0x10040820) { + field_0x34c2 = 0xB; + } + + if (mProcFlags & 0x20) { + mAcch.OffLineCheck(); + } else { + mAcch.OnLineCheck(); + } + + dComIfGp_clearPlayerStatus0(0, ~0x00400010); + dComIfGp_clearPlayerStatus1(0, ~0xFFF48400); + + mGravity = daPy_HIO_autoJump_c0::m.field_0xC; + field_0x34F2 = 0; + field_0x34F4 = 0; + onResetFlg0(daPyRFlg0_UNK8000000); + field_0x34c5 = 0; + offNoResetFlg0(daPyFlg0_UNK4); + offResetFlg0(daPyRFlg0_UNK2); + offNoResetFlg1(daPyFlg1_UNK8000000); + + field_0x3544 = 0; + mSightPacket.offDrawFlg(); + mSightPacket.offLockFlg(); + field_0x35c4 = 0.0f; + mFanSwingCb.onAlphaOutFlg(); + shape_angle.x = 0; + shape_angle.z = 0; + field_0x34EC = 0; + + if (!(checkEquipAnime() && (mProcFlags & 0x4)) && !(mProcFlags & 0x1000)) { + if (!(checkGrabAnime() || checkBoomerangThrowAnime()) || !(mProcFlags & 0x4000)) { + resetActAnimeUpper(UPPER_UNK2, -1.0f); + if (!(mProcFlags & 0x00100000)) { + freeGrabItem(); + } + } + } + + if (!(mProcFlags & 0x00100000) && !checkGrabAnime() && mActorKeepGrab.getActor()) { + freeGrabItem(); + } + + if (temp_r29 && (mProcFlags & 2)) { + field_0x3688 = current.pos; + field_0x35f0 = field_0x3688.y; + field_0x35f4 = field_0x3688.y; + } + + if (mCurProcID != 0x37) { + mSwimTailEcallBack[0].onEnd(); + mSwimTailEcallBack[1].onEnd(); + } + + if (!(mProcFlags & 0x40000)) { + field_0x3608 = 0.0f; + } + + resetFootEffect(); + + if (resetDemoAnime) { + resetDemoTextureAnime(); + } + + field_0x338c.end(); + field_0x33a8.end(); + field_0x32e4.end(); + field_0x32f0.end(); + mSmokeEcallBack.end(); + + if (!(field_0x2b0 < 0.0f)) { + field_0x35d8 = 0.0f; + } + + offNoResetFlg1(static_cast(daPyFlg1_UNK80 | daPyFlg1_UNK800000 | daPyFlg1_UNK1000000)); + + field_0x35ec = 0.0f; + + if (mHeldItemType == HUMMER) { + mSwordAnim.changeBckOnly(getItemAnimeResource(0x97)); + } else if (checkBowItem(mHeldItemType) && !checkBowAnime()) { + mSwordAnim.changeBckOnly(getItemAnimeResource(0xD)); + } + + field_0x35e8 = 0.0f; + + if (!(mProcFlags & 0x800) && mCurProcID != 0x76 && mCurProcID != 0x7D) { + freeRopeItem(); + } + if (!(mProcFlags & 0x200)) { + freeHookshotItem(); + } + if (temp_r28 && !(mProcFlags & 0x40000)) { + swimOutAfter(0); + } + + g_dComIfG_gameInfo.play.field_0x4941 = 0; // is this dComIfGp_setAdvanceDirection__FUc? + + setBgCheckParam(); + + return true; } /* 80112954-80112A24 .text procScope_init__9daPy_lk_cFi */ @@ -1427,7 +1598,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int param_2, f32 param_3, int i_po return TRUE; } - if (checkNoResetFlg0(daPyFlg0_UNK10) && mCurProc != 0xB2) { + if (checkNoResetFlg0(daPyFlg0_UNK10) && mCurProcID != 0xB2) { i_point = field_0x34CB; } else { i_point = field_0x3594; @@ -1467,7 +1638,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int param_2, f32 param_3, int i_po dStage_changeScene(scls_idx, 0.0f, param_1, -1); } else { - if (mCurProc == 0xB2) { + if (mCurProcID == 0xB2) { dStage_changeScene(0, 0.0f, param_1, -1); } else { int roomNo = dComIfGs_getRestartRoomNo(); @@ -1483,7 +1654,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int param_2, f32 param_3, int i_po dComIfGp_setNextStage(dComIfGp_getStartStageName(), i_point, current.roomNo, -1, 0.0f, param_1, 1, 0); } - if (mCurProc != 0xB2) { + if (mCurProcID != 0xB2) { u32 roomParam = setParamData(-1, 0, param_2, 0); dComIfGs_setRestartRoomParam(roomParam); mDoAud_seStart(JA_SE_FORCE_BACK, NULL, 0, 0); diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index cfd001e0a..5ff9fcb16 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -638,13 +638,13 @@ void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 if (daPy_getPlayerLinkActorClass() != NULL) { u32 mode = daPy_getPlayerLinkActorClass()->mNoResetFlg1; - if (mode & daPy_lk_c::daPy_FLG1_EQUIP_DRAGON_SHIELD) { + if (mode & daPy_lk_c::daPyFlg1_EQUIP_DRAGON_SHIELD) { i_lastMode |= 0x8000; } i_lastMode |= daPy_getPlayerLinkActorClass()->field_0x354e << 16; - if (mode & daPy_lk_c::daPy_FLG1_UNK8000) { + if (mode & daPy_lk_c::daPyFlg1_UNK8000) { i_lastMode |= 0x4000; } }