summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-15 14:03:04 -0700
committerGitHub <noreply@github.com>2024-10-16 00:03:04 +0300
commitae77e60de80f778bab53350697f64c8a2bf80dec (patch)
treeb6a6277e65f8a996eae89de9a78a8d9ae8f06bd2
parent9f58034704ae6fea53ba8b3e6dc10d3135d0da7c (diff)
d_a_alink canoe almost done (#2210)
* d_a_alink canoe almost done * ironball mostly done * alink_iceleaf done
-rw-r--r--include/SSystem/SComponent/c_cc_d.h1
-rw-r--r--include/d/actor/d_a_alink.h47
-rw-r--r--include/d/actor/d_a_canoe.h21
-rw-r--r--include/d/actor/d_a_mg_rod.h5
-rw-r--r--include/d/actor/d_a_obj_iceleaf.h2
-rw-r--r--include/d/actor/d_a_player.h8
-rw-r--r--include/d/d_com_inf_game.h4
-rw-r--r--src/d/actor/d_a_alink.cpp28
-rw-r--r--src/d/actor/d_a_alink_canoe.inc1418
-rw-r--r--src/d/actor/d_a_alink_crawl.inc7
-rw-r--r--src/d/actor/d_a_alink_cut.inc3
-rw-r--r--src/d/actor/d_a_alink_damage.inc10
-rw-r--r--src/d/actor/d_a_alink_demo.inc3
-rw-r--r--src/d/actor/d_a_alink_grab.inc46
-rw-r--r--src/d/actor/d_a_alink_guard.inc9
-rw-r--r--src/d/actor/d_a_alink_hang.inc1
-rw-r--r--src/d/actor/d_a_alink_hook.inc1
-rw-r--r--src/d/actor/d_a_alink_horse.inc24
-rw-r--r--src/d/actor/d_a_alink_iceleaf.inc497
-rw-r--r--src/d/actor/d_a_alink_ironball.inc740
-rw-r--r--src/d/actor/d_a_alink_link.inc310
-rw-r--r--src/d/actor/d_a_alink_swim.inc3
-rw-r--r--src/d/actor/d_a_alink_whistle.inc3
-rw-r--r--src/d/actor/d_a_alink_wolf.inc22
24 files changed, 2984 insertions, 229 deletions
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index eb5b37dfd8..ab63e9d724 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -507,6 +507,7 @@ public:
void OnAtVsPlayerBit() { mObjAt.OnSPrmBit(0xC); }
void OnCoSPrmBit(u32 flag) { mObjCo.OnSPrmBit(flag); }
void SetCoVsGrp(u32 grp) { mObjCo.SetVsGrp(grp); }
+ void SetCoIGrp(u32 grp) { mObjCo.SetIGrp(grp); }
void SetAtSPrm(u32 prm) { mObjAt.SetSPrm(prm); }
void SetTgSPrm(u32 prm) { mObjTg.SetSPrm(prm); }
void SetCoSPrm(u32 prm) { mObjCo.SetSPrm(prm); }
diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h
index f8c00df8ef..1d79ca62e8 100644
--- a/include/d/actor/d_a_alink.h
+++ b/include/d/actor/d_a_alink.h
@@ -2171,7 +2171,7 @@ public:
/* 800F4490 */ void setFishGetFace();
/* 800F4564 */ void setRideCanoeBasePos(fopAc_ac_c*);
/* 800F459C */ void setSyncCanoePos();
- /* 800F47D8 */ void canoeCommon();
+ /* 800F47D8 */ int canoeCommon();
/* 800F4924 */ int checkNextActionCanoe();
/* 800F4A50 */ int procCanoeRideInit();
/* 800F4B90 */ int procCanoeRide();
@@ -2523,7 +2523,7 @@ public:
/* 801126F8 */ void setIronBallReturn(int);
/* 80112768 */ void setIronBallBgCheckPos();
/* 801127F0 */ void setIronBallModel();
- /* 80112C84 */ void setIronBallGroundVec(cXyz const*, cXyz*);
+ /* 80112C84 */ int setIronBallGroundVec(cXyz const*, cXyz*);
/* 80112E7C */ void setIronBallChainPos();
/* 80113CA0 */ BOOL checkIronBallReturnChange();
/* 80113D58 */ void setIronBallPos();
@@ -3201,6 +3201,7 @@ public:
BOOL checkCanoeFishingWaitAnime() const { return checkUpperAnime(0x5D) || checkUpperAnime(0x260); }
BOOL checkCopyRodControllAnime() const { return checkUpperAnime(0x202); }
BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(0x2A7); }
+ BOOL checkExchangeRodAnime() const { return checkUpperAnime(0x68); }
int checkWolfEyeUp() const { return mWolfEyeUp; }
void onModeFlg(u32 flag) { mModeFlg |= flag; }
@@ -3288,6 +3289,10 @@ public:
return var_r4;
}
+ bool checkFisingRodJewl() const {
+ return (mEquipItem == 0x5C || mEquipItem == 0x5F) || mEquipItem == 0x5E;
+ }
+
MtxP getCopyRodMtx() {
if (mHeldItemModel != NULL) {
return mHeldItemModel->getAnmMtx(0);
@@ -3492,10 +3497,10 @@ public:
/* 0x00768 */ J3DModelData* mpHookKusariModelData;
/* 0x0076C */ Z2SoundObjSimple* mpHookSound;
/* 0x00770 */ hsChainShape_c* mpHookChain;
- /* 0x00774 */ void* field_0x0774;
- /* 0x00778 */ void* field_0x0778;
+ /* 0x00774 */ dBgS_AcchCir* field_0x0774;
+ /* 0x00778 */ dBgS_ObjAcch* field_0x0778;
/* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk;
- /* 0x00780 */ void* field_0x780;
+ /* 0x00780 */ dBgS_ObjLinChk* field_0x780;
/* 0x00784 */ J3DModel* mpLinkBootModels[2];
/* 0x0078C */ J3DModel* mpWlChainModels[4];
/* 0x0079C */ J3DModel* mpWlMidnaModel;
@@ -3734,7 +3739,7 @@ public:
s16 mPuzzleAimAngle;
} /* 0x0300C */ mProcVar2;
union {
- csXyz field_0x300e;
+ SVec field_0x300e;
} /* 0x0300E */ mProcVar3;
/* 0x03014 */ s16 mFallVoiceInit;
/* 0x03016 */ u8 field_0x3016[2];
@@ -4035,7 +4040,7 @@ public:
/* 0x03834 */ cXyz field_0x3834;
/* 0x03840 */ cXyz* mIronBallChainPos;
/* 0x03844 */ csXyz* mIronBallChainAngle;
- /* 0x03848 */ void* field_0x3848;
+ /* 0x03848 */ cXyz* field_0x3848;
/* 0x0384C */ cXyz* field_0x384c;
/* 0x03850 */ daAlink_procFunc mpProcFunc;
}; // Size: 0x385C
@@ -4990,21 +4995,21 @@ public:
class daAlinkHIO_canoe_c1 {
public:
- /* 0x00 */ daAlinkHIO_anm_c field_0x0;
- /* 0x14 */ s16 field_0x14;
- /* 0x16 */ s16 field_0x16;
- /* 0x18 */ f32 field_0x18;
- /* 0x1C */ f32 field_0x1C;
- /* 0x20 */ f32 field_0x20;
- /* 0x24 */ f32 field_0x24;
- /* 0x28 */ f32 field_0x28;
- /* 0x2C */ f32 field_0x2C;
- /* 0x30 */ f32 field_0x30;
- /* 0x34 */ f32 field_0x34;
+ /* 0x00 */ daAlinkHIO_anm_c mLeftRightChangeAnm;
+ /* 0x14 */ s16 mMaxTurnAngle;
+ /* 0x16 */ s16 mMaxTurnAngle_RiverRide;
+ /* 0x18 */ f32 mStickRowAnmSpeed;
+ /* 0x1C */ f32 mBtnRowAnmSpeed;
+ /* 0x20 */ f32 mSpeedRate;
+ /* 0x24 */ f32 mMaxSpeed;
+ /* 0x28 */ f32 mDeceleration;
+ /* 0x2C */ f32 mStickRowStartAnmSpeed;
+ /* 0x30 */ f32 mBtnRowStartAnmSpeed;
+ /* 0x34 */ f32 mBackSpeedRate;
/* 0x38 */ f32 mBackMaxSpeed;
- /* 0x3C */ f32 field_0x3C;
- /* 0x40 */ f32 field_0x40;
- /* 0x44 */ f32 field_0x44;
+ /* 0x3C */ f32 mMaxSpeed_RiverRide;
+ /* 0x40 */ f32 mSpeedRate_RiverRide;
+ /* 0x44 */ f32 mDeceleration_RiverRide;
}; // Size: 0x48
class daAlinkHIO_canoe_c0 {
diff --git a/include/d/actor/d_a_canoe.h b/include/d/actor/d_a_canoe.h
index 9081cce828..60eaec3a70 100644
--- a/include/d/actor/d_a_canoe.h
+++ b/include/d/actor/d_a_canoe.h
@@ -39,6 +39,15 @@ public:
void incShapeAngleZ(s16 incZ) { shape_angle.z += incZ; }
void onRodID(fpc_ProcID i_rodID) { mRodID = i_rodID; }
void setWaterFallDownSe() { field_0x141c.startSound(Z2SE_AL_CANOE_FALL_DW, 0, -1); }
+ bool checkPaddleChangeWater() { return mPaddleWaterType == 3; }
+ void startInitPaddleWater() { mPaddleWaterType = 4; }
+ fpc_ProcID getRodID() { return mRodID; }
+
+ void setAimSpeed(f32 i_speed) { mAimSpeed = i_speed; }
+ void setAimAngle(s16 i_angle) {
+ mAimAngle = i_angle;
+ field_0x1442 = 1;
+ }
void setPosAndAngle(cXyz const* i_pos, s16 i_angle) {
field_0x14d0 = *i_pos;
@@ -46,6 +55,16 @@ public:
field_0x1446 = 1;
}
+ void setPaddleOffsetRight() {
+ field_0x1454 = 0x40;
+ field_0x1456 = 0xF;
+ }
+
+ void setPaddleOffsetLeft() {
+ field_0x1454 = -0x40;
+ field_0x1456 = 0xF;
+ }
+
private:
/* 0x0568 */ request_of_phase_process_class mPhaseReq;
/* 0x0570 */ J3DModel* mpModel;
@@ -78,7 +97,7 @@ private:
/* 0x145C */ s16 field_0x145c;
/* 0x145E */ s16 field_0x145e;
/* 0x1460 */ s16 field_0x1460;
- /* 0x1464 */ u32 mRodID;
+ /* 0x1464 */ fpc_ProcID mRodID;
/* 0x1468 */ f32 mAimSpeed;
/* 0x146C */ f32 mShapeOffsetY;
/* 0x1470 */ f32 field_0x1470;
diff --git a/include/d/actor/d_a_mg_rod.h b/include/d/actor/d_a_mg_rod.h
index 500eed5077..dcfdf68fd7 100644
--- a/include/d/actor/d_a_mg_rod.h
+++ b/include/d/actor/d_a_mg_rod.h
@@ -41,6 +41,7 @@ public:
f32 getRodStickX() { return mRodStickX; }
f32 getRodStickY() { return mRodStickY; }
bool checkRodEquipPermission() { return field_0x1514 == 0; }
+ bool checkReelSpin() { return field_0x14f0 != 0; }
/* 0x0568 */ u8 field_0x568[0x5A4 - 0x568];
/* 0x05A4 */ mg_rod_s field_0x5a4;
@@ -82,7 +83,9 @@ public:
/* 0x14C0 */ u8 field_0x14c0[0x14C8 - 0x14C0];
/* 0x14C8 */ f32 mRodStickX;
/* 0x14CC */ f32 mRodStickY;
- /* 0x14D0 */ u8 field_0x14d0[0x1514 - 0x14D0];
+ /* 0x14D0 */ u8 field_0x14d0[0x14F0 - 0x14D0];
+ /* 0x14F0 */ int field_0x14f0;
+ /* 0x14F4 */ u8 field_0x14f4[0x1514 - 0x14F4];
/* 0x1514 */ u8 field_0x1514;
/* 0x1515 */ u8 field_0x1515[0x1518 - 0x1515];
/* 0x1518 */ dCcD_Stts field_0x1518;
diff --git a/include/d/actor/d_a_obj_iceleaf.h b/include/d/actor/d_a_obj_iceleaf.h
index 58faad5580..84b116017e 100644
--- a/include/d/actor/d_a_obj_iceleaf.h
+++ b/include/d/actor/d_a_obj_iceleaf.h
@@ -37,7 +37,9 @@ public:
/* 80C25C50 */ void _delete();
void offRide() { mRide = false; }
+ void onRide() { mRide = true; }
void setBreakEffect() { mBreakEffect = true; }
+ void deleteActor() { field_0x961 = 1; }
private:
/* 0x568 */ request_of_phase_process_class mPhase;
diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h
index 3ed8224f10..120618b9fe 100644
--- a/include/d/actor/d_a_player.h
+++ b/include/d/actor/d_a_player.h
@@ -351,16 +351,21 @@ public:
};
enum daPy_ERFLG0 {
+ ERFLG0_UNK_80000000 = 0x80000000,
ERFLG0_UNK_40000000 = 0x40000000,
ERFLG0_UNK_20000000 = 0x20000000,
ERFLG0_UNK_10000000 = 0x10000000,
ERFLG0_UNK_8000000 = 0x8000000,
+ ERFLG0_UNK_4000000 = 0x4000000,
ERFLG0_BOSS_ROOM_WAIT = 0x2000000,
ERFLG0_UNK_1000000 = 0x1000000,
ERFLG0_UNK_800000 = 0x800000,
ERFLG0_BEE_FOLLOW = 0x400000,
ERFLG0_UNK_200000 = 0x200000,
ERFLG0_UNK_100000 = 0x100000,
+ ERFLG0_UNK_40000 = 0x40000,
+ ERFLG0_UNK_20000 = 0x20000,
+ ERFLG0_UNK_10000 = 0x10000,
ERFLG0_UNK_2000 = 0x2000,
ERFLG0_UNK_1000 = 0x1000,
ERFLG0_UNK_400 = 0x400,
@@ -411,14 +416,17 @@ public:
ERFLG2_UNK_20 = 0x20,
ERFLG2_UNK_10 = 0x10,
ERFLG2_UNK_2 = 2,
+ ERFLG2_UNK_1 = 1,
};
enum daPy_RFLG0 {
RFLG0_UNK_40000000 = 0x40000000,
RFLG0_UNK_20000000 = 0x20000000,
+ RFLG0_UNK_10000000 = 0x10000000,
RFLG0_UNK_8000000 = 0x8000000,
RFLG0_UNK_4000000 = 0x4000000,
RFLG0_GRAB_PUT_START = 0x400000,
+ RFLG0_UNK_80000 = 0x80000,
RFLG0_UNK_40000 = 0x40000,
RFLG0_UNK_20000 = 0x20000,
RFLG0_UNK_10000 = 0x10000,
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index 276a4cfbe5..0767401cc4 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -1953,6 +1953,10 @@ inline void dComIfGs_setLightDropNum(u8 i_level, u8 i_num) {
g_dComIfG_gameInfo.info.getPlayer().getLightDrop().setLightDropNum(i_level, i_num);
}
+inline void dComIfGs_setBaitItem(u8 i_item) {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setBaitItem(i_item);
+}
+
void dComIfGp_setSelectItem(int index);
s32 dComIfGp_offHeapLockFlag(int flag);
void dComIfGp_createSubExpHeap2D();
diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp
index 2780ddd233..942dbae6ef 100644
--- a/src/d/actor/d_a_alink.cpp
+++ b/src/d/actor/d_a_alink.cpp
@@ -3865,10 +3865,9 @@ COMPILER_STRIP_GATE(0x8038FB38, &l_swordTopLocalM);
#pragma pop
/* 8038FB44-8038FB50 01C1A4 000C+00 1/2 0/0 0/0 .rodata l_ironBallChainVec */
-SECTION_RODATA static u8 const l_ironBallChainVec[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
+static const Vec l_ironBallChainVec = {
+ 0.0f, 0.0f, 10.0f
};
-COMPILER_STRIP_GATE(0x8038FB44, &l_ironBallChainVec);
/* 8038FB50-8038FB5C 01C1B0 000C+00 1/2 0/0 0/0 .rodata l_ironBallCenterVec */
SECTION_RODATA static Vec const l_ironBallCenterVec = {
@@ -4835,22 +4834,14 @@ SECTION_RODATA static u8 const lit_33690[12] = {
COMPILER_STRIP_GATE(0x80391A2C, &lit_33690);
/* 80391A38-80391A44 01E098 000C+00 0/1 0/0 0/0 .rodata ironBallPosVec$34212 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const ironBallPosVec[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x28, 0x00, 0x00,
+static Vec const ironBallPosVec = {
+ 0.0f, 0.0f, -42.0f
};
-COMPILER_STRIP_GATE(0x80391A38, &ironBallPosVec);
-#pragma pop
/* 80391A44-80391A50 01E0A4 000C+00 0/1 0/0 0/0 .rodata handCenterOffsetVec$34213 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const handCenterOffsetVec[12] = {
- 0x40, 0x00, 0x00, 0x00, 0xC1, 0xC8, 0x00, 0x00, 0x41, 0x48, 0x00, 0x00,
+static Vec const handCenterOffsetVec = {
+ 2.0f, -25.0f, 12.5f
};
-COMPILER_STRIP_GATE(0x80391A44, &handCenterOffsetVec);
-#pragma pop
/* 80391A50-80391A5C 01E0B0 000C+00 1/1 0/0 0/0 .rodata @34968 */
SECTION_RODATA static u8 const lit_34968[12] = {
@@ -9611,6 +9602,7 @@ void daAlink_c::setUnderAnimeMorf(f32 param_0) {
int daAlink_c::setUnderAnime(u16 param_0, daAlink_c::daAlink_UNDER param_1, f32 param_2,
f32 param_3, s16 param_4, f32 param_5) {
// NONMATCHING
+ return 0;
}
/* 800ADAB8-800ADAEC 0A83F8 0034+00 2/2 0/0 0/0 .text
@@ -9871,6 +9863,7 @@ s16 daAlink_c::getRoofAngle(cBgS_PolyInfo* param_0, s16 param_1) {
BOOL daAlink_c::getWallEdgePos(cXyz const& param_0, cM3dGPla* param_1, cM3dGPla* param_2,
cXyz* param_3, int param_4) {
// NONMATCHING
+ return 0;
}
/* 800B02BC-800B146C 0AABFC 11B0+00 9/9 0/0 0/0 .text setFrontWallType__9daAlink_cFv */
@@ -10041,6 +10034,7 @@ bool daAlink_c::checkLv2MiddleBossBgRide(s16 i_procName) {
/* 800B1FD8-800B21EC 0AC918 0214+00 11/11 0/0 0/0 .text getSlidePolygon__9daAlink_cFP8cM3dGPla */
bool daAlink_c::getSlidePolygon(cM3dGPla* param_0) {
// NONMATCHING
+ return 0;
}
/* 800B21EC-800B221C 0ACB2C 0030+00 4/4 0/0 0/0 .text checkSlope__9daAlink_cCFv */
@@ -10903,6 +10897,7 @@ int daAlink_c::checkRequestTalkActor(dAttList_c* param_0, fopAc_ac_c* param_1) {
*/
bool daAlink_c::checkServiceWaitMode() {
// NONMATCHING
+ return 0;
}
/* 800B48D0-800B4908 0AF210 0038+00 18/18 0/0 0/0 .text setJumpMode__9daAlink_cFv */
@@ -11289,6 +11284,7 @@ void daAlink_c::decideDoStatus() {
/* 800B58EC-800B5BC0 0B022C 02D4+00 25/25 0/0 0/0 .text checkWaitAction__9daAlink_cFv */
BOOL daAlink_c::checkWaitAction() {
// NONMATCHING
+ return 0;
}
/* 800B5BC0-800B5C34 0B0500 0074+00 3/3 0/0 0/0 .text setFallVoice__9daAlink_cFv */
@@ -13266,6 +13262,7 @@ void daAlink_c::getBodyAngleXBasePos(cXyz* o_pos) {
*/
s16 daAlink_c::getBodyAngleXAtnActor(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800BB2B0-800BB324 0B5BF0 0074+00 13/13 0/0 0/0 .text setBodyAngleXReadyAnime__9daAlink_cFi */
@@ -14295,6 +14292,7 @@ void daAlink_c::resetBasAnime() {
*/
BOOL daAlink_c::checkSightLine(f32 param_0, cXyz* param_1) {
// NONMATCHING
+ return 0;
}
/* 800BF79C-800BF854 0BA0DC 00B8+00 2/2 0/0 0/0 .text setMetamorphoseModel__9daAlink_cFi
diff --git a/src/d/actor/d_a_alink_canoe.inc b/src/d/actor/d_a_alink_canoe.inc
index db47fd972e..5c4ec135db 100644
--- a/src/d/actor/d_a_alink_canoe.inc
+++ b/src/d/actor/d_a_alink_canoe.inc
@@ -3,15 +3,18 @@
* Player Canoe riding handling
*/
+#include "d/actor/d_a_alink.h"
#include "d/actor/d_a_canoe.h"
+#include "d/actor/d_a_mg_rod.h"
+#include "SSystem/SComponent/c_math.h"
/* 800F3BB0-800F3BDC 0EE4F0 002C+00 1/1 0/0 2/2 .text getCanoeMaxSpeed__9daAlink_cCFv */
f32 daAlink_c::getCanoeMaxSpeed() const {
if (checkCanoeSlider()) {
- return daAlinkHIO_canoe_c0::m.field_0x3C;
+ return daAlinkHIO_canoe_c0::m.mMaxSpeed_RiverRide;
+ } else {
+ return daAlinkHIO_canoe_c0::m.mMaxSpeed;
}
-
- return daAlinkHIO_canoe_c0::m.field_0x24;
}
/* 800F3BDC-800F3BEC 0EE51C 0010+00 0/0 0/0 1/1 .text getCanoeBackMaxSpeed__9daAlink_cCFv
@@ -23,25 +26,32 @@ f32 daAlink_c::getCanoeBackMaxSpeed() const {
/* 800F3BEC-800F3C18 0EE52C 002C+00 0/0 0/0 1/1 .text getCanoeCres__9daAlink_cCFv */
f32 daAlink_c::getCanoeCres() const {
if (checkCanoeSlider()) {
- return daAlinkHIO_canoe_c0::m.field_0x44;
+ return daAlinkHIO_canoe_c0::m.mDeceleration_RiverRide;
+ } else {
+ return daAlinkHIO_canoe_c0::m.mDeceleration;
}
-
- return daAlinkHIO_canoe_c0::m.field_0x28;
}
/* 800F3C18-800F3C44 0EE558 002C+00 2/2 0/0 0/0 .text getCanoeSpeedRate__9daAlink_cCFv */
f32 daAlink_c::getCanoeSpeedRate() const {
if (checkCanoeSlider()) {
- return daAlinkHIO_canoe_c0::m.field_0x40;
+ return daAlinkHIO_canoe_c0::m.mSpeedRate_RiverRide;
+ } else {
+ return daAlinkHIO_canoe_c0::m.mSpeedRate;
}
-
- return daAlinkHIO_canoe_c0::m.field_0x20;
}
/* 800F3C44-800F3CCC 0EE584 0088+00 0/0 0/0 1/1 .text getCanoeMaxRotSpeed__9daAlink_cCFv
*/
s16 daAlink_c::getCanoeMaxRotSpeed() const {
- // NONMATCHING
+ s16 var_r30;
+ if (checkCanoeSlider()) {
+ var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle_RiverRide;
+ } else {
+ var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle;
+ }
+
+ return var_r30 * (((mUnderFrameCtrl[0].getRate() - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
}
/* 800F3CCC-800F3CD8 0EE60C 000C+00 1/1 0/0 1/1 .text getCanoeLocalPaddleTop__9daAlink_cFv */
@@ -50,10 +60,9 @@ cXyz* daAlink_c::getCanoeLocalPaddleTop() {
}
/* 800F3CD8-800F3CF8 0EE618 0020+00 3/3 0/0 0/0 .text daAlink_searchCanoe__FP10fopAc_ac_cPv */
-static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* param_0, void* param_1) {
- if (fopAcM_GetName(param_0) == PROC_CANOE &&
- static_cast<daCanoe_c*>(param_0)->getModel() != NULL) {
- return param_0;
+static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* i_actor, void* i_data) {
+ if (fopAcM_GetName(i_actor) == PROC_CANOE && ((daCanoe_c*)i_actor)->getModel() != NULL) {
+ return i_actor;
}
return NULL;
@@ -95,21 +104,20 @@ void daAlink_c::initFishingRodHand() {
*/
MtxP daAlink_c::getCanoePaddleMatrix() {
mDoMtx_stack_c::copy(getRightItemMatrix());
- f32 tmp_0 = 0.0f;
- mDoMtx_stack_c::transM(tmp_0, tmp_0, 25.0f);
+ mDoMtx_stack_c::transM(0.0f, 0.0f, 25.0f);
return mDoMtx_stack_c::get();
}
/* 800F3E4C-800F3EB8 0EE78C 006C+00 0/0 0/0 4/4 .text
* checkFishingRodGrab__9daAlink_cCFP10fopAc_ac_c */
-BOOL daAlink_c::checkFishingRodGrab(fopAc_ac_c* param_0) const {
- return checkFishingRodAndLureItem() && mItemAcKeep.getID() == fopAcM_GetID(param_0);
+BOOL daAlink_c::checkFishingRodGrab(fopAc_ac_c* i_actor) const {
+ return checkFishingRodAndLureItem() && mItemAcKeep.getID() == fopAcM_GetID(i_actor);
}
/* 800F3EB8-800F3F38 0EE7F8 0080+00 0/0 0/0 2/2 .text
* checkCanoePaddleGrab__9daAlink_cCFP10fopAc_ac_c */
-BOOL daAlink_c::checkCanoePaddleGrab(fopAc_ac_c* param_0) const {
- return mEquipItem == noentry79 && checkCanoeRideOwn(param_0);
+BOOL daAlink_c::checkCanoePaddleGrab(fopAc_ac_c* i_actor) const {
+ return mEquipItem == 0x10B && checkCanoeRideOwn(i_actor);
}
/* 800F3F38-800F3FC4 0EE878 008C+00 0/0 0/0 1/1 .text checkCanoeFishingRodGrabOrPut__9daAlink_cCFv
@@ -160,7 +168,59 @@ void daAlink_c::setArmReelAnime() {
/* 800F4140-800F4490 0EEA80 0350+00 1/1 0/0 0/0 .text setFishingWaitAction__9daAlink_cFv
*/
void daAlink_c::setFishingWaitAction() {
- // NONMATCHING
+ daPy_frameCtrl_c* frame_ctrl0 = &mUnderFrameCtrl[0];
+ daPy_frameCtrl_c* frame_ctrl1 = &mUnderFrameCtrl[1];
+
+ f32 sp10 = frame_ctrl0->getFrame();
+ f32 spC = frame_ctrl1->getFrame();
+ f32 sp8 = mNowAnmPackUnder[0].getRatio();
+
+ if (checkResetFlg0(RFLG0_UNK_80000)) {
+ mUpperFrameCtrl[2].setRate(1.0f);
+ } else {
+ mUpperFrameCtrl[2].setRate(0.0f);
+ }
+
+ f32 var_f29, var_f28, var_f27, var_f26, var_f31, var_f30;
+ dmg_rod_class* mg_rod = (dmg_rod_class*)mItemAcKeep.getActor();
+ if (mg_rod != NULL && !checkEventRun()) {
+ var_f31 = mg_rod->getRodStickX();
+ var_f30 = mg_rod->getRodStickY();
+ } else {
+ var_f31 = 0.0f;
+ var_f30 = 0.0f;
+ }
+
+ var_f29 = JMAFastSqrt(var_f31 * var_f31 + var_f30 * var_f30);
+ int var_r27 = abs(cM_atan2s(-var_f31, var_f30));
+
+ if (var_f29 > 0.05f) {
+ if (var_f30 > 0.0f) {
+ var_f28 = ((1.0f - (var_f29 - fabsf(var_f31))) * frame_ctrl0->getEnd()) * 0.2f;
+ var_f26 = (0x4000 - var_r27) * 0.000061035156f;
+ } else {
+ var_f28 = frame_ctrl0->getEnd() - (((1.0f - (var_f29 - fabsf(var_f31))) * frame_ctrl0->getEnd()) * 0.8f);
+ var_f26 = (var_r27 - 0x4000) * 0.000061035156f;
+ }
+
+ if (var_f31 < 0.0f) {
+ var_f27 = ((1.0f - (var_f29 - fabsf(var_f30))) * frame_ctrl1->getEnd()) * 0.5f;
+ } else {
+ var_f27 = frame_ctrl1->getEnd() - (((1.0f - (var_f29 - fabsf(var_f30))) * frame_ctrl1->getEnd()) * 0.5f);
+ }
+ } else {
+ var_f28 = frame_ctrl0->getEnd() * 0.2f;
+ var_f27 = frame_ctrl1->getEnd() * 0.5f;
+ var_f26 = 0.5f;
+ }
+
+ cLib_addCalc(&sp10, var_f28, 0.3f, 0.8f, 0.01f);
+ cLib_addCalc(&spC, var_f27, 0.3f, 0.8f, 0.01f);
+ frame_ctrl0->setFrame(sp10);
+ frame_ctrl1->setFrame(spC);
+
+ cLib_chaseF(&sp8, var_f26, 0.1f);
+ setDoubleAnimeBlendRatio(1.0f - sp8);
}
/* 800F4490-800F4564 0EEDD0 00D4+00 3/3 0/0 0/0 .text setFishGetFace__9daAlink_cFv */
@@ -188,19 +248,92 @@ void daAlink_c::setRideCanoeBasePos(fopAc_ac_c* param_0) {
field_0x37c8.y = 25.0f;
field_0x37c8.z = -35.0f;
- if (static_cast<daCanoe_c*>(param_0)->checkTandem()) {
+ if (((daCanoe_c*)param_0)->checkTandem()) {
field_0x37c8.z += 175.0f;
}
}
/* 800F459C-800F47D8 0EEEDC 023C+00 20/20 0/0 0/0 .text setSyncCanoePos__9daAlink_cFv */
void daAlink_c::setSyncCanoePos() {
- // NONMATCHING
+ daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor();
+ if (canoe->checkTandem()) {
+ mDoMtx_stack_c::copy(canoe->getModelMtx());
+ mDoMtx_stack_c::transM(0.0f, 0.0f, 175.0f);
+ mDoMtx_stack_c::multVec(field_0x384c, &current.pos);
+ } else {
+ mDoMtx_multVec(canoe->getModelMtx(), field_0x384c, &current.pos);
+ }
+
+ field_0x2f99 = 0x60;
+ mNormalSpeed = fabsf(canoe->speedF);
+
+ s16 var_r28;
+ if (mProcID == PROC_CANOE_SUBJECTIVITY || mProcID == PROC_CANOE_BOW_SUBJECT || mProcID == PROC_CANOE_BOOMERANG_SUBJECT || mProcID == PROC_CANOE_HOOKSHOT_SUBJECT) {
+ var_r28 = 0;
+ shape_angle.y = canoe->shape_angle.y;
+ cLib_addCalcAngleS(&shape_angle.x, 0, 5, 0x1000, 0x200);
+ cLib_addCalcAngleS(&shape_angle.z, 0, 5, 0x1000, 0x200);
+ } else {
+ var_r28 = -FAST_DIV(shape_angle.z, 2);
+ shape_angle = canoe->shape_angle;
+ }
+
+ current.angle.y = shape_angle.y;
+ cLib_addCalcAngleS(&mBodyAngle.z, var_r28, 5, 0x40, 0x10);
+
+ s16 var_r29;
+ f32 var_f31;
+ if ((canoe->speedF < 0.0f && mProcID == PROC_CANOE_WAIT) || (mProcID == PROC_CANOE_ROW && mProcVar3.field_0x300e.x == 1)) {
+ if (mProcVar3.field_0x300e.z == 0) {
+ var_r29 = 0x5000;
+ var_f31 = 1.0f;
+ } else {
+ var_r29 = -0x5000;
+ var_f31 = 1.0f;
+ }
+ } else {
+ if (!checkNoUpperAnime()) {
+ var_r29 = 0;
+ var_f31 = 0.0f;
+ } else {
+ var_r29 = 0;
+ var_f31 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f;
+ }
+ }
+
+ daPy_addCalcShort(&mProcVar3.field_0x300e.y, var_r29, 3, 0x1000, 0x100);
+ field_0x30a2 = mProcVar3.field_0x300e.y;
+ cLib_chaseF(&field_0x33f0, var_f31, 0.2f);
}
/* 800F47D8-800F4924 0EF118 014C+00 19/19 0/0 0/0 .text canoeCommon__9daAlink_cFv */
-void daAlink_c::canoeCommon() {
- // NONMATCHING
+int daAlink_c::canoeCommon() {
+ if (mRideAcKeep.getActor() == NULL) {
+ return checkNextAction(0);
+ }
+
+ setSyncCanoePos();
+
+ if (((daCanoe_c*)mRideAcKeep.getActor())->checkPaddleChangeWater()) {
+ f32 var_f31;
+ if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) {
+ var_f31 = mUpperFrameCtrl[0].getRate();
+ } else {
+ var_f31 = mUnderFrameCtrl[0].getRate();
+ }
+
+ u32 var_r29;
+ if ((mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_ROW_LEFT_BACK)->m_upperID) || (mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_ROW_RIGHT_BACK)->m_upperID)) {
+ var_r29 = 0x20022;
+ } else {
+ var_r29 = 0x20021;
+ }
+
+ int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) / (daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
+ mZ2Link.startLinkSwordSound(var_r29, var_r27, mVoiceReverbIntensity);
+ }
+
+ return 0;
}
/* 800F4924-800F4A50 0EF264 012C+00 10/10 0/0 0/0 .text checkNextActionCanoe__9daAlink_cFv */
@@ -240,9 +373,8 @@ int daAlink_c::procCanoeRideInit() {
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
setSpecialGravity(0.0f, maxFallSpeed, 0);
- f32 tmp_0 = 0.0f;
- mNormalSpeed = tmp_0;
- speed.y = tmp_0;
+ mNormalSpeed = 0.0f;
+ speed.y = 0.0f;
setRideCanoeBasePos(canoe);
if ((s16)(fopAcM_searchActorAngleY(canoe, this) - canoe->shape_angle.y) > 0) {
@@ -312,9 +444,8 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
mRideAcKeep.setData(canoe);
setSpecialGravity(0.0f, maxFallSpeed, 0);
- f32 tmp_0 = 0.0f;
- mNormalSpeed = tmp_0;
- speed.y = tmp_0;
+ mNormalSpeed = 0.0f;
+ speed.y = 0.0f;
setRideCanoeBasePos(canoe);
mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, &current.pos);
current.angle.y = shape_angle.y;
@@ -346,242 +477,1377 @@ int daAlink_c::procCanoeJumpRide() {
/* 800F4DF8-800F5048 0EF738 0250+00 2/2 0/0 0/0 .text procCanoeGetOffInit__9daAlink_cFv
*/
int daAlink_c::procCanoeGetOffInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_GETOFF);
+ daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor();
+
+ field_0x2f99 = 0;
+ mNormalSpeed = 0.0f;
+
+ setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 6.0f);
+ setSpecialGravity(0.0f, maxFallSpeed, 0);
+ mNormalSpeed = 0.0f;
+ speed.y = 0.0f;
+
+ J3DTransformInfo* var_r28 = field_0x2060->getOldFrameTransInfo(0);
+
+ cXyz sp4C(canoe->current.pos.x - cM_scos(shape_angle.y) * 150.0f, canoe->current.pos.y + 100.0f, canoe->current.pos.z + cM_ssin(shape_angle.y) * 150.0f);
+ cXyz sp58(canoe->current.pos.x, sp4C.y, canoe->current.pos.z);
+
+ BOOL var_r27;
+ if (commonLineCheck(&sp58, &sp4C)) {
+ var_r27 = false;
+ } else {
+ sp4C.x = sp58.x * 2.0f - sp4C.x;
+ sp4C.z = sp58.z * 2.0f - sp4C.z;
+
+ if (commonLineCheck(&sp58, &sp4C)) {
+ var_r27 = true;
+ } else {
+ mLinkGndChk.SetPos(&sp4C);
+ if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) > canoe->current.pos.y) {
+ var_r27 = false;
+ } else {
+ var_r27 = true;
+ }
+ }
+ }
+
+ if (var_r27) {
+ shape_angle.y -= 0x4000;
+ setOldRootQuaternion(0, 0x4000, 0);
+ var_r28->mTranslate.x -= 100.0f;
+ } else {
+ shape_angle.y += 0x4000;
+ setOldRootQuaternion(0, -0x4000, 0);
+ var_r28->mTranslate.x += 100.0f;
+ }
+
+ var_r28->mTranslate.z += 70.0f;
+ current.angle.y = shape_angle.y;
+
+ setRideCanoeBasePos(canoe);
+ field_0x37c8.z -= -35.0f;
+
+ cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, &current.pos);
+ mProcVar3.field_0x300e.x = 0;
+ return 1;
}
/* 800F5048-800F51E4 0EF988 019C+00 1/1 0/0 0/0 .text procCanoeGetOff__9daAlink_cFv */
int daAlink_c::procCanoeGetOff() {
- // NONMATCHING
+ if (checkCanoeRide()) {
+ daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor();
+ if (canoe == NULL) {
+ return checkNextAction(0);
+ }
+
+ cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, &current.pos);
+ }
+
+ if (checkModeFlg(2)) {
+ if (mLinkAcch.i_ChkGroundHit()) {
+ checkLandAction(0);
+ } else if (speed.y < -gravity) {
+ procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation);
+ } else {
+ field_0x2f99 = 7;
+ }
+ } else {
+ if (mProcVar3.field_0x300e.x == 0) {
+ if (field_0x2060->getOldFrameRate() < 0.01f) {
+ mProcVar3.field_0x300e.x = 1;
+ setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm);
+ field_0x33b0 = l_waitBaseAnime.y;
+ field_0x3588 = l_waitBaseAnime;
+ }
+ } else if (mUnderFrameCtrl[0].checkPass(6)) {
+ rideGetOff();
+ offModeFlg(0x400);
+ setJumpMode();
+ setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, maxFallSpeed, 0);
+ mNormalSpeed = 15.0f;
+ speed.y = 20.0f;
+ }
+ }
+
+ return 1;
}
/* 800F51E4-800F542C 0EFB24 0248+00 15/15 0/0 0/0 .text procCanoeWaitInit__9daAlink_cFi
*/
int daAlink_c::procCanoeWaitInit(int param_0) {
- // NONMATCHING
+ if (mProcID == PROC_CANOE_FISHING_WAIT) {
+ mProcVar3.field_0x300e.z = 1;
+ return procCanoePaddleGrabInit();
+ }
+
+ BOOL temp_r26 = mProcID == PROC_CANOE_GRAB_MOVE;
+
+ if (!commonProcInitNotSameProc(PROC_CANOE_WAIT)) {
+ return 0;
+ }
+
+ f32 var_f31;
+ daAlink_ANM var_r27;
+
+ if (param_0) {
+ cXyz sp8;
+ daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor();
+
+ setOldRootQuaternion(0, (s16)(shape_angle.y - canoe->shape_angle.y), 0);
+ J3DTransformInfo* temp_r3_2 = field_0x2060->getOldFrameTransInfo(0);
+
+ mDoMtx_stack_c::YrotS(-canoe->shape_angle.y);
+ mDoMtx_stack_c::transM(-canoe->current.pos.x, -canoe->current.pos.y, -canoe->current.pos.z);
+ mDoMtx_stack_c::multVec(&current.pos, &sp8);
+
+ temp_r3_2->mTranslate.x += sp8.x;
+ temp_r3_2->mTranslate.y += sp8.y;
+ temp_r3_2->mTranslate.z += sp8.z - 15.0f;
+
+ if (canoe->checkTandem()) {
+ temp_r3_2->mTranslate.z -= 175.0f;
+ }
+
+ if (param_0 == 2) {
+ var_f31 = -1.0f;
+ mProcVar0.field_0x3008 = 0;
+ mEquipItem = 0x10B;
+ var_r27 = ANM_WAIT_CANOE_RIGHT;
+ canoe->startInitPaddleWater();
+ } else {
+ var_f31 = 10.0f;
+ mProcVar0.field_0x3008 = 10;
+ var_r27 = ANM_WAIT_SIT;
+ }
+ } else {
+ var_f31 = 3.0f;
+ mProcVar0.field_0x3008 = 0;
+
+ if (mEquipItem == NO_ITEM || (mEquipItem != 0x10B && !checkFisingRodLure())) {
+ var_r27 = ANM_WAIT_SIT;
+ } else if (mProcVar3.field_0x300e.z == 0) {
+ var_r27 = ANM_WAIT_CANOE_LEFT;
+ } else {
+ var_r27 = ANM_WAIT_CANOE_RIGHT;
+ }
+ }
+
+ setSyncCanoePos();
+ setSingleAnimeBaseMorf(var_r27, var_f31);
+
+ if (param_0 && mEquipItem != 0x10B && mEquipItem != NO_ITEM && !checkFisingRodLure()) {
+ allUnequip(0);
+ }
+
+ mProcVar1.field_0x300a = temp_r26;
+ mNormalSpeed = 0.0f;
+ speed.y = 0.0f;
+ setSpecialGravity(0.0f, maxFallSpeed, 0);
+ return 1;
}
/* 800F542C-800F571C 0EFD6C 02F0+00 1/0 0/0 0/0 .text procCanoeWait__9daAlink_cFv */
int daAlink_c::procCanoeWait() {
- // NONMATCHING
+ if (canoeCommon() != 0) {
+ return 1;
+ }
+
+ if (mProcVar0.field_0x3008 > 0) {
+ mProcVar0.field_0x3008--;
+ } else if (!checkNextActionCanoe()) {
+ if (checkNoUpperAnime()) {
+ if (mNormalSpeed < 3.0f && !checkFisingRodLure() && !checkCanoeSlider()) {
+ if (!setTalkStatus() && !checkStageName("F_SP127")) {
+ setDoStatusEmphasys(0x16);
+ }
+
+ if (orderTalk(0) != 0) {
+ return 1;
+ }
+
+ if (doTrigger() && dComIfGp_getDoStatus() == 0x16) {
+ if (mEquipItem == 0x10B) {
+ return procCanoePaddlePutInit(1);
+ }
+
+ if (mEquipItem != NO_ITEM) {
+ allUnequip(0);
+ }
+
+ return procCanoeGetOffInit();
+ }
+ }
+
+ if (checkFisingRodLure()) {
+ procCanoeFishingWaitInit();
+ } else if (mEquipItem == NO_ITEM && ((mThrowBoomerangAcKeep.getActor() == NULL && mProcVar1.field_0x300a == 0) || checkInputOnR())) {
+ field_0x2fde = 0xFF;
+
+ if (mThrowBoomerangAcKeep.getActor() != NULL || mProcVar1.field_0x300a != 0) {
+ if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) {
+ mProcVar3.field_0x300e.z = 1;
+ } else {
+ mProcVar3.field_0x300e.z = 0;
+ }
+ }
+
+ procCanoePaddleGrabInit();
+ } else if (checkInputOnR() && mEquipItem == 0x10B) {
+ procCanoeRowInit(-1);
+ } else if (mEquipItem != NO_ITEM && mEquipItem != 0x10B) {
+ if (!checkUnderMove0BckNoArc(ANM_WAIT_SIT) && getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) {
+ setSingleAnimeBase(ANM_WAIT_SIT);
+ } else if (checkInputOnR()) {
+ allUnequip(0);
+
+ if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) {
+ mProcVar3.field_0x300e.z = 1;
+ } else {
+ mProcVar3.field_0x300e.z = 0;
+ }
+ }
+ }
+ } else if (checkEquipAnime()) {
+ if (mEquipItem == 0x10B) {
+ procCanoePaddlePutInit(0);
+ } else if (field_0x2fde == 0x105 && ((daCanoe_c*)mRideAcKeep.getActor())->getRodID() != fpcM_ERROR_PROCESS_ID_e) {
+ procCanoeRodGrabInit();
+ }
+ }
+ }
+
+ return 1;
}
/* 800F571C-800F5A1C 0F005C 0300+00 3/3 0/0 0/0 .text procCanoeRowInit__9daAlink_cFi */
+// NONMATCHING - incorrect code gen related to daAlink_ANM
int daAlink_c::procCanoeRowInit(int param_0) {
- // NONMATCHING
+ fopAc_ac_c* temp_r26 = mRideAcKeep.getActor();
+ field_0x3198 = -2;
+
+ daAlink_ANM var_r29;
+ if (param_0 < 0) {
+ if (checkInputOnR()) {
+ s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y);
+ int temp_r3 = abs(sp8);
+
+ BOOL spC;
+ if (temp_r3 >= 0x6800) {
+ spC = 1;
+ } else {
+ spC = 0;
+ }
+
+ int var_r28;
+ if (temp_r3 < 0x40 || temp_r3 > 0x7F80) {
+ if (param_0 == -3) {
+ if (mProcVar3.field_0x300e.z == 0) {
+ var_r28 = 2;
+ } else {
+ var_r28 = 3;
+ }
+ } else {
+ if (param_0 == -2) {
+ field_0x3198 = -3;
+ }
+
+ if (mProcVar3.field_0x300e.z == 0) {
+ var_r28 = 3;
+ } else {
+ var_r28 = 2;
+ }
+ }
+ } else if (sp8 > 0) {
+ var_r28 = 2;
+ } else {
+ var_r28 = 3;
+ }
+
+ if (spC == 1) {
+ var_r29 = var_r28 == 2 ? ANM_CANOE_ROW_RIGHT_BACK : ANM_CANOE_ROW_LEFT_BACK;
+
+ if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar3.field_0x300e.z == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar3.field_0x300e.z == 1)) {
+ return procCanoePaddleShiftInit(var_r29);
+ }
+ } else {
+ var_r29 = var_r28 == 2 ? ANM_CANOE_ROW_RIGHT : ANM_CANOE_ROW_LEFT;
+
+ if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar3.field_0x300e.z == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar3.field_0x300e.z == 1)) {
+ return procCanoePaddleShiftInit(var_r29);
+ }
+ }
+
+ } else {
+ if (param_0 == -3) {
+ if (mProcVar3.field_0x300e.z == 1) {
+ return procCanoePaddleShiftInit(ANM_CANOE_ROW_LEFT);
+ }
+ return procCanoePaddleShiftInit(ANM_CANOE_ROW_RIGHT);
+ } else if (param_0 == -2) {
+ field_0x3198 = -3;
+ }
+
+ if (mProcVar3.field_0x300e.z == 1) {
+ var_r29 = ANM_CANOE_ROW_RIGHT;
+ } else {
+ var_r29 = ANM_CANOE_ROW_LEFT;
+ }
+ }
+ } else {
+ var_r29 = (daAlink_ANM)param_0;
+ }
+
+ commonProcInit(PROC_CANOE_ROW);
+ f32 var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
+ BOOL var_r24 = 0;
+
+ if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) {
+ mProcVar3.field_0x300e.x = 1;
+ if (temp_r26->speedF > 0.5f * (-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) {
+ var_r24 = 1;
+ }
+
+ field_0x3478 = 32.0f;
+ mProcVar0.field_0x3008 = 0;
+ } else {
+ mProcVar3.field_0x300e.x = 0;
+ if (temp_r26->speedF < 0.5f * (var_f31 * getCanoeSpeedRate())) {
+ var_r24 = 1;
+ }
+
+ field_0x3478 = 26.0f;
+
+ if (param_0 == -1) {
+ mProcVar0.field_0x3008 = 1;
+ } else {
+ mProcVar0.field_0x3008 = 0;
+ }
+ }
+
+ if (var_r24 != 0) {
+ var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
+ }
+
+ setSingleAnime((daAlink_ANM)var_r29, var_f31, 0.0f, 35, 3.0f);
+ setSyncCanoePos();
+ return 1;
}
/* 800F5A1C-800F5D04 0F035C 02E8+00 1/0 0/0 0/0 .text procCanoeRow__9daAlink_cFv */
int daAlink_c::procCanoeRow() {
- // NONMATCHING
+ daCanoe_c* temp_r29 = (daCanoe_c*)mRideAcKeep.getActor();
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ daPy_frameCtrl_c* temp_r27 = &mUpperFrameCtrl[0];
+
+ if (!checkItemChangeFromButton()) {
+ if (checkEquipAnime()) {
+ procCanoePaddlePutInit(0);
+ } else if (temp_r27->checkPass(0.0f)) {
+ if (checkInputOnR()) {
+ procCanoeRowInit(field_0x3198);
+ } else {
+ procCanoeWaitInit(0);
+ }
+ } else {
+ f32 var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
+ if ((mProcVar3.field_0x300e.x == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e.x == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
+ var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
+ }
+
+ f32 sp8 = temp_r27->getRate();
+ cLib_chaseF(&sp8, var_f30, 0.1f);
+ temp_r27->setRate(sp8);
+
+ if (mProcVar0.field_0x3008 == 0 || temp_r27->getFrame() >= 19.0f) {
+ s16 var_r28;
+ if (checkInputOnR()) {
+ s16 temp_r0 = field_0x2fe2 - shape_angle.y;
+ s16 var_r25;
+ if (mProcVar3.field_0x300e.x == 1) {
+ var_r25 = field_0x2fe2 + 0x8000;
+ } else {
+ var_r25 = field_0x2fe2;
+ }
+
+ if (temp_r0 == -0x8000 || (temp_r0 > 0 && mProcVar3.field_0x300e.z == 1) || (temp_r0 < 0 && mProcVar3.field_0x300e.z == 0)) {
+ temp_r29->setAimAngle(var_r25);
+ }
+ var_r28 = mStickAngle;
+ } else {
+ var_r28 = 0x4000;
+ }
+
+ f32 var_f31 = temp_r27->getRate();
+
+ if (checkCanoeSlider()) {
+ int temp_r3 = abs(var_r28);
+ if (temp_r3 < 0x6000 && temp_r3 > 0x2000) {
+ var_f31 *= cM_ssin(abs((temp_r3 - 0x4000) * 2));
+ }
+ } else {
+ var_f31 *= fabsf(cM_scos(var_r28));
+ }
+
+ if (mProcVar3.field_0x300e.x == 0) {
+ temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate());
+ } else {
+ temp_r29->setAimSpeed(-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate);
+ }
+ }
+
+ if (temp_r27->checkPass(field_0x3478)) {
+ if (mProcVar3.field_0x300e.z == 1) {
+ temp_r29->setPaddleOffsetRight();
+ } else {
+ temp_r29->setPaddleOffsetLeft();
+ }
+ }
+ }
+ }
+
+ return 1;
}
/* 800F5D04-800F5DB8 0F0644 00B4+00 1/1 0/0 0/0 .text procCanoePaddleShiftInit__9daAlink_cFi */
int daAlink_c::procCanoePaddleShiftInit(int param_0) {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_PADDLE_SHIFT);
+
+ f32 speed;
+ if (mProcVar3.field_0x300e.z == 0) {
+ speed = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ } else {
+ speed = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ }
+
+ setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
+
+ if (mProcVar3.field_0x300e.z == 1) {
+ field_0x2f92 = 0;
+ field_0x2f93 = 0xFE;
+ }
+
+ field_0x3198 = param_0;
+ setSyncCanoePos();
+ return 1;
}
/* 800F5DB8-800F5EA8 0F06F8 00F0+00 1/0 0/0 0/0 .text procCanoePaddleShift__9daAlink_cFv
*/
int daAlink_c::procCanoePaddleShift() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ daPy_frameCtrl_c* frame_ctrl = mUpperFrameCtrl;
+
+ if (!checkItemChangeFromButton()) {
+ if (checkEquipAnime()) {
+ procCanoePaddlePutInit(0);
+ } else if (checkAnmEnd(frame_ctrl)) {
+ procCanoeRowInit(field_0x3198);
+ } else if (frame_ctrl->checkPass(11)) {
+ if (mProcVar3.field_0x300e.z == 0) {
+ field_0x2f92 = 0;
+ field_0x2f93 = 0xFE;
+ mProcVar3.field_0x300e.z = 1;
+ } else {
+ field_0x2f92 = 0xFE;
+ field_0x2f93 = 5;
+ mProcVar3.field_0x300e.z = 0;
+ }
+ }
+ }
+
+ return 1;
}
/* 800F5EA8-800F5FEC 0F07E8 0144+00 3/3 0/0 0/0 .text procCanoePaddlePutInit__9daAlink_cFi */
int daAlink_c::procCanoePaddlePutInit(int param_0) {
- // NONMATCHING
+ if (checkCanoeSlider() && mEquipItem == 0x10B) {
+ if (checkEquipAnime() && checkBowItem(field_0x2fde)) {
+ mEquipItem = NO_ITEM;
+ field_0x2f93 = 0xFE;
+ field_0x2f92 = 0xFE;
+ return procCanoeWaitInit(0);
+ }
+ }
+
+ commonProcInit(PROC_CANOE_PADDLE_PUT);
+
+ f32 var_f31;
+ if (mProcVar3.field_0x300e.z == 0) {
+ var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ } else {
+ var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ }
+
+ setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
+
+ if (mProcVar3.field_0x300e.z == 1) {
+ field_0x2f92 = 0;
+ field_0x2f93 = 0xFE;
+ }
+
+ mProcVar3.field_0x300e.x = param_0;
+
+ setSyncCanoePos();
+ ((daCanoe_c*)mRideAcKeep.getActor())->setAimSpeed(0.0f);
+
+ if (param_0 == 0 && field_0x2fde == 0x105) {
+ mItemAcKeep.setID(((daCanoe_c*)mRideAcKeep.getActor())->getRodID());
+ mItemAcKeep.setActor();
+ }
+
+ return 1;
}
/* 800F5FEC-800F6140 0F092C 0154+00 1/0 0/0 0/0 .text procCanoePaddlePut__9daAlink_cFv */
int daAlink_c::procCanoePaddlePut() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_CHANGE_HAND)->m_upperID) {
+ if (mUpperFrameCtrl[0].checkPass(11)) {
+ setSingleAnimeBaseSpeed(ANM_CANOE_PADDLE_TO_ROD, -1.0f, 3.0f);
+ field_0x2f92 = 0;
+ field_0x2f93 = 0xFE;
+ }
+ } else {
+ daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
+
+ if (checkAnmEnd(temp_r29)) {
+ if (mProcVar3.field_0x300e.x != 0) {
+ return procCanoeGetOffInit();
+ }
+
+ if (mItemAcKeep.getActor() != NULL) {
+ initFishingRodHand();
+ procCanoeFishingWaitInit();
+ } else {
+ itemEquip(field_0x2fde);
+ procCanoeWaitInit(0);
+ }
+ } else if (temp_r29->getFrame() < 5.0f) {
+ if (mItemAcKeep.getActor() != NULL) {
+ mEquipItem = 0x105;
+ field_0x2f93 = 5;
+ } else {
+ mEquipItem = NO_ITEM;
+ field_0x2f93 = 0xFE;
+ }
+
+ field_0x2f92 = 0xFE;
+ }
+ }
+
+ return 1;
}
/* 800F6140-800F6188 0F0A80 0048+00 2/2 0/0 0/0 .text procCanoePaddleGrabInit__9daAlink_cFv */
int daAlink_c::procCanoePaddleGrabInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_PADDLE_GRAB);
+ setSingleAnimeBase(ANM_CANOE_PADDLE_TO_ROD);
+ setSyncCanoePos();
+ return 1;
}
/* 800F6188-800F6320 0F0AC8 0198+00 1/0 0/0 0/0 .text procCanoePaddleGrab__9daAlink_cFv
*/
int daAlink_c::procCanoePaddleGrab() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (checkUnderMove0BckNoArc(ANM_CANOE_PADDLE_TO_ROD) != 0) {
+ daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
+
+ if (checkAnmEnd(temp_r29) != 0) {
+ f32 var_f31;
+ if (mProcVar3.field_0x300e.z == 0) {
+ var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ } else {
+ var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
+ }
+
+ setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
+ mUpperFrameCtrl[0].setFrame(11.0f);
+ getNowAnmPackUpper(UPPER_0)->setFrame(11.0f);
+
+ if (mProcVar3.field_0x300e.z == 1) {
+ field_0x2f92 = 0;
+ field_0x2f93 = 0xFE;
+ } else {
+ field_0x2f92 = 0xFE;
+ field_0x2f93 = 5;
+ }
+ } else if (temp_r29->getFrame() >= 5.0f) {
+ if (checkFisingRodLure()) {
+ ((daCanoe_c*)mRideAcKeep.getActor())->onRodID(mItemAcKeep.getID());
+ mItemAcKeep.clearData();
+ deleteEquipItem(0, 0);
+ }
+
+ field_0x2f92 = 0xFE;
+
+ if (field_0x2fde == 0xFF) {
+ mEquipItem = 0x10B;
+ } else {
+ itemEquip(field_0x2fde);
+ return procCanoeWaitInit(0);
+ }
+ }
+ } else if (checkAnmEnd(mUpperFrameCtrl)) {
+ procCanoeWaitInit(0);
+ }
+
+ return 1;
}
/* 800F6320-800F6394 0F0C60 0074+00 1/1 0/0 0/0 .text procCanoeRodGrabInit__9daAlink_cFv
*/
int daAlink_c::procCanoeRodGrabInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_ROD_GRAB);
+
+ if (mEquipItem != NO_ITEM) {
+ allUnequip(0);
+ mProcVar0.field_0x3008 = 1;
+ } else {
+ setSingleAnimeBase(ANM_CANOE_PADDLE_TO_ROD);
+ mProcVar0.field_0x3008 = 0;
+ }
+
+ setSyncCanoePos();
+ return 1;
}
/* 800F6394-800F6464 0F0CD4 00D0+00 1/0 0/0 0/0 .text procCanoeRodGrab__9daAlink_cFv */
int daAlink_c::procCanoeRodGrab() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (mProcVar0.field_0x3008 != 0) {
+ if (checkNoUpperAnime()) {
+ mProcVar0.field_0x3008 = 0;
+ setSingleAnimeBase(ANM_CANOE_PADDLE_TO_ROD);
+ }
+ } else if (mUnderFrameCtrl[0].getFrame() >= 5.0f) {
+ mItemAcKeep.setID(((daCanoe_c*)mRideAcKeep.getActor())->getRodID());
+ mItemAcKeep.setActor();
+
+ if (mItemAcKeep.getActor() != NULL) {
+ initFishingRodHand();
+ mEquipItem = 0x105;
+ procCanoeFishingWaitInit();
+ } else {
+ procCanoeWaitInit(0);
+ }
+ }
+
+ return 1;
}
/* 800F6464-800F659C 0F0DA4 0138+00 6/6 0/0 0/0 .text procCanoeFishingWaitInit__9daAlink_cFv */
+// NONMATCHING - cLib_minMaxLimit regalloc
int daAlink_c::procCanoeFishingWaitInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_FISHING_WAIT)) {
+ field_0x311a = 0;
+ return 0;
+ }
+
+ setSingleAnimeBaseSpeed(ANM_CANOE_REEL, 0.0f, 3.0f);
+ setUpperAnimeBaseSpeed(0x5D, 0.0f, -1.0f);
+
+ f32 temp_f31 = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * mUnderFrameCtrl[0].getEnd();
+ mUnderFrameCtrl[0].setFrame(temp_f31);
+ getNowAnmPackUnder(UNDER_0)->setFrame(temp_f31);
+ mUpperFrameCtrl[2].setFrame(temp_f31);
+ getNowAnmPackUpper(UPPER_2)->setFrame(temp_f31);
+
+ mItemVar0.field_0x3018 = 1;
+ setSyncCanoePos();
+
+ mProcVar2.field_0x300c = 0;
+ mProcVar3.field_0x300e.x = 0;
+ mProcVar0.field_0x3008 = 0;
+ mProcVar3.field_0x300e.x = cLib_minMaxLimit<s16>((s16)(field_0x311a - shape_angle.y), -0x3800, 0x3800);
+ field_0x311a = 0;
+ return 1;
}
/* 800F659C-800F67C0 0F0EDC 0224+00 1/0 0/0 0/0 .text procCanoeFishingWait__9daAlink_cFv
*/
int daAlink_c::procCanoeFishingWait() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (checkFisingRodLure() && mItemAcKeep.getActor() == NULL) {
+ return 1;
+ }
+
+ daPy_frameCtrl_c* temp_r29 = &mUpperFrameCtrl[2];
+ daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0];
+
+ if (mProcVar2.field_0x300c != 0) {
+ if (checkNoResetFlg1(FLG1_UNK_8000)) {
+ mProcVar2.field_0x300c = 0;
+ setUpperAnimeBase(0x68);
+ }
+ } else if (checkExchangeRodAnime()) {
+ if (checkAnmEnd(temp_r29)) {
+ procCanoeFishingReelInit();
+ } else if (temp_r29->getFrame() >= 8.0f) {
+ mItemVar0.field_0x3018 = 0;
+ }
+ } else if (!checkNextActionCanoe() && checkCanoeFishingWaitAnime()) {
+ if (mProcVar0.field_0x3008 == 0) {
+ if (daPy_addCalcShort(&mBodyAngle.y, mProcVar3.field_0x300e.x, 2, 0x800, 0x200) == 0) {
+ mProcVar0.field_0x3008 = 1;
+ }
+ } else if (checkInputOnR() && ((mStickAngle > 0x2000 && mStickAngle < 0x6000) || (mStickAngle < -0x2000 && mStickAngle > -0x6000))) {
+ s16 var_r27;
+ if (mStickAngle > 0x2000 && mStickAngle < 0x6000) {
+ var_r27 = 0x3800;
+ } else {
+ var_r27 = -0x3800;
+ }
+
+ daPy_addCalcShort(&mBodyAngle.y, var_r27, 5, field_0x33a8 * 1024.0f, 1);
+ }
+
+ f32 temp_f31 = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * temp_r28->getEnd();
+ temp_r28->setFrame(temp_f31);
+ temp_r29->setFrame(temp_f31);
+ }
+ return 1;
}
/* 800F67C0-800F6874 0F1100 00B4+00 1/1 0/0 0/0 .text procCanoeFishingReelInit__9daAlink_cFv */
int daAlink_c::procCanoeFishingReelInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_FISHING_REEL);
+ setDoubleAnime(0.0f, 0.0f, 0.0f, ANM_REEL, ANM_REEL_LEFT_RIGHT, 2, 5.0f);
+ mUnderFrameCtrl[1].setFrame(0.5f * mUnderFrameCtrl[1].getEnd());
+ setUnderAnime(0x25B, UNDER_2, 1.0f, 0.0f, -1, -1.0f);
+ setArmReelAnime();
+ setSyncCanoePos();
+ return 1;
}
/* 800F6874-800F69D4 0F11B4 0160+00 1/0 0/0 0/0 .text procCanoeFishingReel__9daAlink_cFv
*/
+// NONMATCHING - cLib_minMaxLimit regalloc
int daAlink_c::procCanoeFishingReel() {
- // NONMATCHING
+ if (canoeCommon()) {
+ mItemVar0.field_0x3018 = 1;
+ return 1;
+ }
+
+ setFishGetFace();
+
+ if (checkEndResetFlg0(ERFLG0_UNK_40000)) {
+ procCanoeFishingGetInit();
+ } else if (checkEndResetFlg0(ERFLG0_UNK_20000)) {
+ resetUpperAnime(UPPER_2, -1.0f);
+ procCanoeFishingWaitInit();
+ } else if (checkEndResetFlg0(ERFLG0_UNK_10000)) {
+ setUpperAnimeBase(0x17C);
+ } else if (checkUpperAnime(0x17C)) {
+ if (mUpperFrameCtrl[2].checkAnmEnd()) {
+ setArmReelAnime();
+ field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa);
+ }
+ } else {
+ if (((dmg_rod_class*)mItemAcKeep.getActor())->checkReelSpin()) {
+ onResetFlg0(RFLG0_UNK_80000);
+ }
+
+ setFishingWaitAction();
+
+ fopAc_ac_c* temp_r3 = mItemAcKeep.getActor();
+ if (temp_r3 != NULL) {
+ daPy_addCalcShort(&mBodyAngle.y, cLib_minMaxLimit<s16>((cLib_targetAngleY(&field_0x3834, &temp_r3->eyePos) - shape_angle.y), -0x3800, 0x3800), 5, 0x400, 1);
+ }
+ }
+
+ return 1;
}
/* 800F69D4-800F6A70 0F1314 009C+00 1/1 0/0 0/0 .text procCanoeFishingGetInit__9daAlink_cFv */
int daAlink_c::procCanoeFishingGetInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_FISHING_GET);
+
+ daAlink_ANM var_r30;
+ if (mBodyAngle.y >= 0) {
+ var_r30 = ANM_CANOE_FISH_LEFT;
+ field_0x3478 = 14.0f;
+ field_0x347c = 30.0f;
+ mProcVar3.field_0x300e.x = 0;
+ } else {
+ var_r30 = ANM_CANOE_FISH_RIGHT;
+ field_0x3478 = 24.0f;
+ field_0x347c = 45.0f;
+ mProcVar3.field_0x300e.x = 1;
+ }
+
+ setSyncCanoePos();
+ setSingleAnimeBaseMorf(var_r30, 5.0f);
+ return 1;
}
/* 800F6A70-800F6BEC 0F13B0 017C+00 1/0 0/0 0/0 .text procCanoeFishingGet__9daAlink_cFv
*/
int daAlink_c::procCanoeFishingGet() {
- // NONMATCHING
+ daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0];
+
+ if (canoeCommon()) {
+ mItemVar0.field_0x3018 = 1;
+ return 1;
+ }
+
+ setFishGetFace();
+
+ if (checkUnderMove0BckNoArc(ANM_CANOE_RELEASE)) {
+ if (checkAnmEnd(temp_r30)) {
+ procCanoeFishingWaitInit();
+ } else if (temp_r30->getFrame() >= 65.0f) {
+ mItemVar0.field_0x3018 = 1;
+ field_0x2f92 = 4;
+ field_0x2f93 = 5;
+ } else if (temp_r30->getFrame() >= 29.0f) {
+ field_0x2f93 = 0xFE;
+ }
+ } else if (checkAnmEnd(temp_r30)) {
+ if (checkEndResetFlg0(ERFLG0_UNK_4000000)) {
+ setSingleAnimeBaseMorf(ANM_CANOE_RELEASE, 3.0f);
+ field_0x2fc8 = 0;
+ offModeFlg(0x100);
+ } else if (checkEndResetFlg2(ERFLG2_UNK_1)) {
+ field_0x2fc8 = 0;
+ procCanoeFishingWaitInit();
+ }
+ } else if (temp_r30->checkPass(field_0x3478)) {
+ field_0x2f93 = 5;
+ } else if (temp_r30->checkPass(field_0x347c)) {
+ onModeFlg(0x100);
+ }
+
+ return 1;
}
/* 800F6BEC-800F6C30 0F152C 0044+00 1/1 0/0 0/0 .text procCanoeSubjectivityInit__9daAlink_cFv */
int daAlink_c::procCanoeSubjectivityInit() {
- // NONMATCHING
+ commonProcInit(PROC_CANOE_SUBJECTIVITY);
+ setSyncCanoePos();
+ setSubjectMode();
+ return 1;
}
/* 800F6C30-800F6D10 0F1570 00E0+00 1/0 0/0 0/0 .text procCanoeSubjectivity__9daAlink_cFv
*/
int daAlink_c::procCanoeSubjectivity() {
- // NONMATCHING
+ onResetFlg0(RFLG0_UNK_4000000);
+
+ s16 temp_r30 = shape_angle.y;
+ s16 temp_r29 = current.angle.y;
+ int temp_r28 = field_0x3190;
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ shape_angle.y = temp_r30;
+
+ if (checkSubjectEnd(1)) {
+ procCanoeWaitInit(0);
+ } else if (checkNextActionFromButton()) {
+ if (checkUpperReadyThrowAnime()) {
+ field_0x3190 = temp_r28;
+ mBodyAngle.y = field_0x3190;
+ field_0x310a = mBodyAngle.x;
+ field_0x310c = shape_angle.y + field_0x3190;
+ }
+ return 1;
+ } else {
+ setRideSubjectAngle(temp_r29);
+ }
+
+ return 1;
}
/* 800F6D10-800F6D64 0F1650 0054+00 1/1 0/0 0/0 .text procCanoeBowSubjectInit__9daAlink_cFv */
int daAlink_c::procCanoeBowSubjectInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_BOW_SUBJECT)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ setBowOrSlingStatus();
+ return 1;
}
/* 800F6D64-800F6DF0 0F16A4 008C+00 1/0 0/0 0/0 .text procCanoeBowSubject__9daAlink_cFv
*/
int daAlink_c::procCanoeBowSubject() {
- // NONMATCHING
+ setDoStatus(0x12);
+
+ s16 temp_r30 = shape_angle.y;
+ s16 temp_r29 = current.angle.y;
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ shape_angle.y = temp_r30;
+
+ if (!checkNextActionCanoe() && setRideSubjectAngle(temp_r29)) {
+ setBowSight();
+ }
+
+ return 1;
}
/* 800F6DF0-800F6E44 0F1730 0054+00 1/1 0/0 0/0 .text procCanoeBowMoveInit__9daAlink_cFv
*/
int daAlink_c::procCanoeBowMoveInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_BOW_MOVE)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ setBowOrSlingStatus();
+ return 1;
}
/* 800F6E44-800F6EB0 0F1784 006C+00 1/0 0/0 0/0 .text procCanoeBowMove__9daAlink_cFv */
int daAlink_c::procCanoeBowMove() {
- // NONMATCHING
+ setDoStatus(0x12);
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ cancelBowMove();
+
+ if (!checkNextActionCanoe()) {
+ setBodyAngleRideReadyAnime();
+ }
+
+ return 1;
}
/* 800F6EB0-800F6EFC 0F17F0 004C+00 2/2 0/0 0/0 .text procCanoeGrabMoveInit__9daAlink_cFv
*/
int daAlink_c::procCanoeGrabMoveInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_GRAB_MOVE)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ return 1;
}
/* 800F6EFC-800F6FA4 0F183C 00A8+00 1/0 0/0 0/0 .text procCanoeGrabMove__9daAlink_cFv */
int daAlink_c::procCanoeGrabMove() {
- // NONMATCHING
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (mGrabItemAcKeep.getActor() == NULL && checkGrabAnime()) {
+ resetUpperAnime(UPPER_2, 3.0f);
+ }
+
+ if (checkGrabThrowAnime()) {
+ if (checkUpperGrabItemThrow(3.0f)) {
+ procCanoeWaitInit(0);
+ }
+ } else {
+ checkNextActionCanoe();
+ }
+
+ return 1;
}
/* 800F6FA4-800F7010 0F18E4 006C+00 1/1 0/0 0/0 .text procCanoeBoomerangSubjectInit__9daAlink_cFv
*/
int daAlink_c::procCanoeBoomerangSubjectInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_BOOMERANG_SUBJECT)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ initBoomerangUpperAnimeSpeed(1);
+ dComIfGp_setPlayerStatus0(0, 0x80000);
+ return 1;
}
/* 800F7010-800F70F0 0F1950 00E0+00 1/0 0/0 0/0 .text procCanoeBoomerangSubject__9daAlink_cFv */
int daAlink_c::procCanoeBoomerangSubject() {
- // NONMATCHING
+ if (!checkItemActorPointer()) {
+ return 1;
+ }
+
+ if (checkBoomerangReadyAnime()) {
+ setDoStatus(0x12);
+ }
+
+ s16 temp_r30 = shape_angle.y;
+ s16 temp_r29 = current.angle.y;
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ shape_angle.y = temp_r30;
+
+ if (!checkNextActionCanoe()) {
+ if (setRideSubjectAngle(temp_r29)) {
+ setBoomerangSight();
+ }
+ } else {
+ mSight.offDrawFlg();
+ }
+
+ return 1;
}
/* 800F70F0-800F715C 0F1A30 006C+00 1/1 0/0 0/0 .text procCanoeBoomerangMoveInit__9daAlink_cFv */
int daAlink_c::procCanoeBoomerangMoveInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_BOOMERANG_MOVE)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ initBoomerangUpperAnimeSpeed(0);
+ dComIfGp_setPlayerStatus0(0, 0x80000);
+ return 1;
}
/* 800F715C-800F7208 0F1A9C 00AC+00 1/0 0/0 0/0 .text procCanoeBoomerangMove__9daAlink_cFv */
int daAlink_c::procCanoeBoomerangMove() {
- // NONMATCHING
+ if (!checkItemActorPointer()) {
+ return 1;
+ }
+
+ if (checkBoomerangReadyAnime()) {
+ setDoStatus(0x12);
+ }
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (!checkNextActionCanoe()) {
+ setBodyAngleRideReadyAnime();
+ }
+
+ return 1;
}
/* 800F7208-800F7274 0F1B48 006C+00 1/1 0/0 0/0 .text procCanoeHookshotSubjectInit__9daAlink_cFv
*/
int daAlink_c::procCanoeHookshotSubjectInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_HOOKSHOT_SUBJECT)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ initHookshotUpperAnimeSpeed(1);
+ dComIfGp_setPlayerStatus0(0, 0x4000);
+ return 1;
}
/* 800F7274-800F731C 0F1BB4 00A8+00 1/0 0/0 0/0 .text procCanoeHookshotSubject__9daAlink_cFv */
int daAlink_c::procCanoeHookshotSubject() {
- // NONMATCHING
+ if (checkHookshotWait()) {
+ setDoStatus(0x12);
+ }
+
+ s16 temp_r30 = shape_angle.y;
+ s16 temp_r29 = current.angle.y;
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ shape_angle.y = temp_r30;
+
+ if (!checkNextActionCanoe()) {
+ if (setRideSubjectAngle(temp_r29)) {
+ setHookshotSight();
+ }
+ } else {
+ mSight.offDrawFlg();
+ }
+
+ return 1;
}
/* 800F731C-800F7388 0F1C5C 006C+00 1/1 0/0 0/0 .text procCanoeHookshotMoveInit__9daAlink_cFv */
int daAlink_c::procCanoeHookshotMoveInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_CANOE_HOOKSHOT_MOVE)) {
+ return 0;
+ }
+
+ setSyncCanoePos();
+ initHookshotUpperAnimeSpeed(0);
+ dComIfGp_setPlayerStatus0(0, 0x4000);
+ return 1;
}
/* 800F7388-800F7404 0F1CC8 007C+00 1/0 0/0 0/0 .text procCanoeHookshotMove__9daAlink_cFv
*/
int daAlink_c::procCanoeHookshotMove() {
- // NONMATCHING
+ cancelHookshotMove();
+
+ if (checkHookshotWait()) {
+ setDoStatus(0x12);
+ }
+
+ if (canoeCommon()) {
+ return 1;
+ }
+
+ if (!checkNextActionCanoe()) {
+ setBodyAngleRideReadyAnime();
+ }
+
+ return 1;
}
/* 800F7404-800F7550 0F1D44 014C+00 1/1 0/0 0/0 .text procCanoeBottleDrinkInit__9daAlink_cFUs */
int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) {
- // NONMATCHING
+ if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) {
+ return 0;
+ }
+
+ mDemo.setSpecialDemoType();
+ commonProcInit(PROC_CANOE_BOTTLE_DRINK);
+ setSyncCanoePos();
+
+ daCanoe_c* temp_r3 = (daCanoe_c*)mRideAcKeep.getActor();
+ temp_r3->speedF = 0.0f;
+ temp_r3->setAimSpeed(0.0f);
+ temp_r3->setAimAngle(shape_angle.y);
+
+ setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
+ setFacePriAnime(ANM_BOTTLE_DRINK_START);
+ keepItemData();
+ setBottleModel(param_0);
+ dComIfGp_setPlayerStatus1(0, 0x2000);
+
+ field_0x319c = 1;
+ dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", 1, &field_0x319c, 0);
+ mProcVar2.field_0x300c = 0;
+ return 1;
}
/* 800F7550-800F75BC 0F1E90 006C+00 1/0 0/0 0/0 .text procCanoeBottleDrink__9daAlink_cFv
*/
int daAlink_c::procCanoeBottleDrink() {
- // NONMATCHING
+ if (canoeCommon()) {
+ resetUpperAnime(UPPER_2, 3.0f);
+ returnKeepItemData();
+ resetSpecialEvent();
+ return 1;
+ }
+
+ commonBottleDrink(1);
+ return 1;
}
/* 800F75BC-800F7684 0F1EFC 00C8+00 1/1 0/0 0/0 .text procCanoeKandelaarPourInit__9daAlink_cFv */
int daAlink_c::procCanoeKandelaarPourInit() {
- // NONMATCHING
+ if (!dComIfGp_event_compulsory(this, NULL, 0xFBFF)) {
+ return 0;
+ }
+
+ mDemo.setSpecialDemoType();
+ commonProcInit(PROC_CANOE_KANDELAAR_POUR);
+ setSyncCanoePos();
+
+ daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor();
+ canoe->speedF = 0.0f;
+ canoe->setAimSpeed(0.0f);
+ canoe->setAimAngle(shape_angle.y);
+
+ setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
+ commonKandelaarPourInit();
+ return 1;
}
/* 800F7684-800F7708 0F1FC4 0084+00 1/0 0/0 0/0 .text procCanoeKandelaarPour__9daAlink_cFv */
int daAlink_c::procCanoeKandelaarPour() {
- // NONMATCHING
+ if (canoeCommon()) {
+ resetUpperAnime(UPPER_2, 3.0f);
+ resetOilBottleModel();
+ resetSpecialEvent();
+ return 1;
+ }
+
+ if (commonKandelaarPour(1)) {
+ setUpperAnimeBaseMorf(0x268, -1.0f);
+ }
+
+ return 1;
}
/* 800F7708-800F7760 0F2048 0058+00 2/2 0/0 0/0 .text setGroundFishingRodActor__9daAlink_cFv */
void daAlink_c::setGroundFishingRodActor() {
- // NONMATCHING
+ mItemAcKeep.setID(fopAcM_create(PROC_MG_ROD, 0xFFFF011D, &mLeftHandPos, -1, NULL, NULL, -1));
+ initFishingRodHand();
}
/* 800F7760-800F7814 0F20A0 00B4+00 1/1 0/0 0/0 .text procFishingCastInit__9daAlink_cFv
*/
int daAlink_c::procFishingCastInit() {
- // NONMATCHING
+ if (!commonProcInitNotSameProc(PROC_FISHING_CAST)) {
+ return 1;
+ }
+
+ setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
+ setUpperAnimeBase(0x260);
+ field_0x2f96 = 0xFE;
+ field_0x2f97 = 8;
+ mNormalSpeed = 0.0f;
+
+ mProcVar2.field_0x300c = 0;
+ mProcVar3.field_0x300e.x = 0;
+ mItemVar0.field_0x3018 = 1;
+
+ if (checkFishingRodItem(mEquipItem)) {
+ onNoResetFlg2(FLG2_UNK_20000000);
+ }
+
+ return 1;
}
/* 800F7814-800F7988 0F2154 0174+00 1/0 0/0 0/0 .text procFishingCast__9daAlink_cFv */
int daAlink_c::procFishingCast() {
- // NONMATCHING
+ setFishGetFace();
+
+ if (checkEndResetFlg0(ERFLG0_UNK_4000000)) {
+ setFaceBasicAnime(ANM_WAIT);
+ field_0x2fc8 = 0;
+ }
+
+ if (checkEndResetFlg0(ERFLG0_UNK_10000) && mItemMode != 0xFF) {
+ mItemMode = 0xFF;
+ dComIfGs_setBaitItem(0xFF);
+
+ if (mEquipItem == JEWEL_WORM_ROD || mEquipItem == JEWEL_BEE_ROD) {
+ mEquipItem = JEWEL_ROD;
+ } else {
+ mEquipItem = FISHING_ROD_1;
+ }
+ }
+
+ if (!checkNoResetFlg2(FLG2_UNK_20000000)) {
+ resetUpperAnime(UPPER_2, -1.0f);
+ onEndResetFlg0(ERFLG0_UNK_1000);
+ return checkWaitAction();
+ }
+
+ if (checkInputOnR()) {
+ cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_move_c0::m.mTurnAngleRate, daAlinkHIO_move_c0::m.mMaxTurnAngle, daAlinkHIO_move_c0::m.mMinTurnAngle);
+ current.angle.y = shape_angle.y;
+ }
+
+ if (mProcVar3.field_0x300e.x != 0) {
+ mUpperFrameCtrl[2].setRate(0.0f);
+ mUpperFrameCtrl[2].setFrame(0.0f);
+ getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
+
+ mUnderFrameCtrl[0].setRate(0.0f);
+ mUnderFrameCtrl[0].setFrame(0.0f);
+ getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
+ } else if (mUnderFrameCtrl[0].getRate() < 0.01f) {
+ mUnderFrameCtrl[0].setRate(daAlinkHIO_move_c0::m.mWaitAnmSpeed);
+ mUpperFrameCtrl[2].setRate(1.0f);
+ }
+
+ return 1;
}
/* 800F7988-800F7AA8 0F22C8 0120+00 1/1 0/0 0/0 .text procFishingFoodInit__9daAlink_cFv
*/
int daAlink_c::procFishingFoodInit() {
- // NONMATCHING
+ if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) {
+ return 0;
+ }
+
+ mDemo.setSpecialDemoType();
+ commonProcInit(PROC_FISHING_FOOD);
+ setSingleAnime(ANM_BOTTLE_OPEN, 1.0f, 0.0f, 21, 3.0f);
+ mProcVar3.field_0x300e.x = mSelectItemId;
+
+ if (checkFishingRodItem(mEquipItem)) {
+ mProcVar3.field_0x300e.y = 0;
+ mSelectItemId = checkItemSetButton(mEquipItem);
+ } else {
+ mProcVar3.field_0x300e.y = 1;
+ keepItemData();
+ deleteEquipItem(0, 0);
+ mSelectItemId = checkItemSetButton(0x108);
+ mEquipItem = dComIfGp_getSelectItem(mSelectItemId);
+ setItemActor();
+ }
+
+ mNormalSpeed = 0.0f;
+ current.angle.y = shape_angle.y;
+ mProcVar2.field_0x300c = 0;
+ return 1;
}
/* 800F7AA8-800F7C50 0F23E8 01A8+00 1/0 0/0 0/0 .text procFishingFood__9daAlink_cFv */
int daAlink_c::procFishingFood() {
- // NONMATCHING
+ if (mUnderFrameCtrl[0].checkAnmEnd()) {
+ if (mProcVar2.field_0x300c != 0) {
+ if (mProcVar3.field_0x300e.y != 0) {
+ returnKeepItemData();
+ }
+ resetSpecialEvent();
+ } else {
+ setSingleAnime(ANM_BOTTLE_OPEN, -1.0f, 0.0f, mUnderFrameCtrl[0].getEnd(), -1.0f);
+ mProcVar2.field_0x300c = 1;
+
+ u32 temp_r3 = dComIfGp_getSelectItem(mProcVar3.field_0x300e.x);
+ if (temp_r3 == WORM || dComIfGp_getSelectItemNum(mProcVar3.field_0x300e.x) == 1) {
+ dComIfGs_setEquipBottleItemEmpty(mProcVar3.field_0x300e.x);
+ } else {
+ dComIfGp_addSelectItemNum(mProcVar3.field_0x300e.x, -1);
+ }
+
+ if (mItemMode != NO_ITEM) {
+ dComIfGs_setEquipBottleItemIn(mProcVar3.field_0x300e.x, mItemMode);
+ if (mItemMode == BEE_CHILD) {
+ dComIfGp_setSelectItemNum(mProcVar3.field_0x300e.x, 1);
+ }
+ }
+
+ mItemMode = temp_r3;
+
+ BOOL temp_r28 = checkFisingRodJewl();
+ if (temp_r3 == WORM) {
+ if (temp_r28) {
+ mEquipItem = JEWEL_WORM_ROD;
+ } else {
+ mEquipItem = WORM_ROD;
+ }
+ } else if (temp_r28) {
+ mEquipItem = JEWEL_BEE_ROD;
+ } else {
+ mEquipItem = BEE_ROD;
+ }
+
+ dComIfGs_setBaitItem(temp_r3);
+ }
+ }
+
+ return 1;
}
diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc
index 0902c5e019..90e2b2f87c 100644
--- a/src/d/actor/d_a_alink_crawl.inc
+++ b/src/d/actor/d_a_alink_crawl.inc
@@ -88,6 +88,7 @@ void daAlink_c::changeCrawlAutoMoveProc(cXyz* param_0) {
int daAlink_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3,
int param_4, u8* param_5) {
// NONMATCHING
+ return 0;
}
/* 800F85C0-800F8700 0F2F00 0140+00 2/2 0/0 0/0 .text crawlBgCheck__9daAlink_cFP4cXyzP4cXyzi */
@@ -245,6 +246,7 @@ void daAlink_c::setCrawlAutoMoveAimPos() {
/* 800F9210-800F9384 0F3B50 0174+00 2/2 0/0 0/0 .text procCrawlStartInit__9daAlink_cFv */
int daAlink_c::procCrawlStartInit() {
// NONMATCHING
+ return 0;
}
/* 800F9384-800F9474 0F3CC4 00F0+00 1/0 0/0 0/0 .text procCrawlStart__9daAlink_cFv */
@@ -275,11 +277,13 @@ int daAlink_c::procCrawlStart() {
/* 800F9474-800F95B8 0F3DB4 0144+00 3/3 0/0 0/0 .text procCrawlMoveInit__9daAlink_cFss */
int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) {
// NONMATCHING
+ return 0;
}
/* 800F95B8-800F99FC 0F3EF8 0444+00 1/0 0/0 0/0 .text procCrawlMove__9daAlink_cFv */
int daAlink_c::procCrawlMove() {
// NONMATCHING
+ return 0;
}
/* 800F99FC-800F9ABC 0F433C 00C0+00 1/1 0/0 0/0 .text procCrawlAutoMoveInit__9daAlink_cFiP4cXyz */
@@ -308,17 +312,20 @@ int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
#else
int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
// NONMATCHING
+ return 0;
}
#endif
/* 800F9ABC-800F9D7C 0F43FC 02C0+00 1/0 0/0 0/0 .text procCrawlAutoMove__9daAlink_cFv */
int daAlink_c::procCrawlAutoMove() {
// NONMATCHING
+ return 0;
}
/* 800F9D7C-800F9F30 0F46BC 01B4+00 1/1 0/0 0/0 .text procCrawlEndInit__9daAlink_cFiss */
int daAlink_c::procCrawlEndInit(int param_0, s16 param_1, s16 param_2) {
// NONMATCHING
+ return 0;
}
/* 800F9F30-800F9FDC 0F4870 00AC+00 1/0 0/0 0/0 .text procCrawlEnd__9daAlink_cFv */
diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc
index 5e0e4e7f67..ac305fa251 100644
--- a/src/d/actor/d_a_alink_cut.inc
+++ b/src/d/actor/d_a_alink_cut.inc
@@ -367,6 +367,7 @@ bool daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) {
* changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM */
BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) {
// NONMATCHING
+ return 0;
}
/* 800D1E1C-800D20B4 0CC75C 0298+00 4/4 0/0 0/0 .text setCutDash__9daAlink_cFii */
@@ -1565,6 +1566,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
#else
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
// NONMATCHING
+ return 0;
}
#endif
@@ -2067,6 +2069,7 @@ int daAlink_c::procCutHeadInit() {
#else
int daAlink_c::procCutHeadInit() {
// NONMATCHING
+ return 0;
}
#endif
diff --git a/src/d/actor/d_a_alink_damage.inc b/src/d/actor/d_a_alink_damage.inc
index fdf9e1160e..ff032d15a4 100644
--- a/src/d/actor/d_a_alink_damage.inc
+++ b/src/d/actor/d_a_alink_damage.inc
@@ -929,27 +929,32 @@ int daAlink_c::procDamage() {
int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 param_3,
dCcD_GObjInf* param_4, int param_5) {
// NONMATCHING
+ return 0;
}
/* 800D9E88-800DA180 0D47C8 02F8+00 1/0 0/0 0/0 .text procCoLargeDamage__9daAlink_cFv */
int daAlink_c::procCoLargeDamage() {
// NONMATCHING
+ return 0;
}
/* 800DA180-800DA554 0D4AC0 03D4+00 2/2 0/0 0/0 .text procLargeDamageUpInit__9daAlink_cFiiss */
int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) {
// NONMATCHING
+ return 0;
}
/* 800DA554-800DA82C 0D4E94 02D8+00 1/0 0/0 0/0 .text procLargeDamageUp__9daAlink_cFv */
int daAlink_c::procLargeDamageUp() {
// NONMATCHING
+ return 0;
}
/* 800DA82C-800DAC28 0D516C 03FC+00 1/1 0/0 0/0 .text procCoLargeDamageWallInit__9daAlink_cFiiss
*/
int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param_2, s16 param_3) {
// NONMATCHING
+ return 0;
}
/* 800DAC28-800DAC84 0D5568 005C+00 1/0 0/0 0/0 .text procCoLargeDamageWall__9daAlink_cFv
@@ -1008,6 +1013,7 @@ int daAlink_c::procCoPolyDamage() {
/* 800DAE10-800DB060 0D5750 0250+00 2/2 0/0 0/0 .text procLandDamageInit__9daAlink_cFi */
int daAlink_c::procLandDamageInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800DB060-800DB140 0D59A0 00E0+00 1/0 0/0 0/0 .text procLandDamage__9daAlink_cFv */
@@ -1039,11 +1045,13 @@ int daAlink_c::procLandDamage() {
* procCoElecDamageInit__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInfi */
int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, int param_2) {
// NONMATCHING
+ return 0;
}
/* 800DB418-800DB5B0 0D5D58 0198+00 1/0 0/0 0/0 .text procCoElecDamage__9daAlink_cFv */
int daAlink_c::procCoElecDamage() {
// NONMATCHING
+ return 0;
}
/* 800DB5B0-800DB610 0D5EF0 0060+00 2/2 0/0 0/0 .text procStEscapeInit__9daAlink_cFv */
@@ -1076,11 +1084,13 @@ int daAlink_c::procStEscape() {
/* 800DB6A4-800DB860 0D5FE4 01BC+00 1/1 0/0 0/0 .text procDkCaughtInit__9daAlink_cFUi */
int daAlink_c::procDkCaughtInit(unsigned int param_0) {
// NONMATCHING
+ return 0;
}
/* 800DB860-800DBC98 0D61A0 0438+00 1/0 0/0 0/0 .text procDkCaught__9daAlink_cFv */
int daAlink_c::procDkCaught() {
// NONMATCHING
+ return 0;
}
/* 800DBC98-800DBD1C 0D65D8 0084+00 2/2 0/0 0/0 .text setScreamWaitAnime__9daAlink_cFv */
diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc
index de1b4eff56..da3ce9fb9b 100644
--- a/src/d/actor/d_a_alink_demo.inc
+++ b/src/d/actor/d_a_alink_demo.inc
@@ -3395,6 +3395,7 @@ int daAlink_c::procZoraMoveInit() {
/* 8011DB9C-8011DDD4 1184DC 0238+00 1/0 0/0 0/0 .text procZoraMove__9daAlink_cFv */
int daAlink_c::procZoraMove() {
// NONMATCHING
+ return 0;
}
/* 8011DDD4-8011DED8 118714 0104+00 1/0 0/0 0/0 .text procLookAroundTurnInit__9daAlink_cFv */
@@ -3878,6 +3879,7 @@ int daAlink_c::procDungeonWarpReadyInit() {
*/
int daAlink_c::procDungeonWarpReady() {
// NONMATCHING
+ return 0;
}
/* 8011F084-8011F0F4 1199C4 0070+00 1/0 0/0 0/0 .text procDungeonWarpInit__9daAlink_cFv
@@ -4136,6 +4138,7 @@ void daAlink_c::checkWarpStart() {
/* 8011FBC0-8011FD4C 11A500 018C+00 3/3 0/0 0/0 .text warpModelTexScroll__9daAlink_cFv */
int daAlink_c::warpModelTexScroll() {
// NONMATCHING
+ return 0;
}
/* 8011FD4C-80120124 11A68C 03D8+00 2/2 0/0 0/0 .text procCoWarpInit__9daAlink_cFii */
diff --git a/src/d/actor/d_a_alink_grab.inc b/src/d/actor/d_a_alink_grab.inc
index 91722ce61e..ef32b93190 100644
--- a/src/d/actor/d_a_alink_grab.inc
+++ b/src/d/actor/d_a_alink_grab.inc
@@ -34,6 +34,7 @@ static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) {
/* 800E38EC-800E3994 0DE22C 00A8+00 1/1 0/0 0/0 .text checkGrabLineCheck__9daAlink_cFv */
BOOL daAlink_c::checkGrabLineCheck() {
// NONMATCHING
+ return 0;
}
/* 800E3994-800E3A14 0DE2D4 0080+00 1/0 0/0 0/0 .text
@@ -122,7 +123,9 @@ BOOL daAlink_c::checkGrabCarryActor() {
}
/* 800E3D1C-800E3D6C 0DE65C 0050+00 1/1 0/0 0/0 .text checkGrabSlowMoveActor__9daAlink_cFv */
-BOOL daAlink_c::checkGrabSlowMoveActor(){// NONMATCHING
+BOOL daAlink_c::checkGrabSlowMoveActor() {
+ // NONMATCHING
+ return 0;
}
/* 800E3D6C-800E3D94 0DE6AC 0028+00 1/1 0/0 0/0 .text checkGrabHeavyActor__9daAlink_cFv
@@ -241,6 +244,7 @@ BOOL daAlink_c::checkGrabNotThrow() {
*/
BOOL daAlink_c::checkNextActionGrab() {
// NONMATCHING
+ return 0;
}
/* 800E53AC-800E53F8 0DFCEC 004C+00 2/2 0/0 0/0 .text initGrabNextMode__9daAlink_cFv */
@@ -260,6 +264,7 @@ void daAlink_c::setGrabItemThrow() {
/* 800E57AC-800E5830 0E00EC 0084+00 2/2 0/0 0/0 .text checkUpperGrabItemThrow__9daAlink_cFf */
BOOL daAlink_c::checkUpperGrabItemThrow(f32 param_0) {
// NONMATCHING
+ return 0;
}
/* 800E5830-800E5B6C 0E0170 033C+00 2/2 0/0 0/0 .text
@@ -283,76 +288,92 @@ void daAlink_c::setGrabItemActor(fopAc_ac_c* param_0) {
/* 800E5CBC-800E5EC8 0E05FC 020C+00 2/2 0/0 0/0 .text procGrabReadyInit__9daAlink_cFv */
int daAlink_c::procGrabReadyInit() {
// NONMATCHING
+ return 0;
}
/* 800E5EC8-800E5FD0 0E0808 0108+00 1/0 0/0 0/0 .text procGrabReady__9daAlink_cFv */
int daAlink_c::procGrabReady() {
// NONMATCHING
+ return 0;
}
/* 800E5FD0-800E6230 0E0910 0260+00 1/1 0/0 0/0 .text procGrabUpInit__9daAlink_cFv */
int daAlink_c::procGrabUpInit() {
// NONMATCHING
+ return 0;
}
/* 800E6230-800E637C 0E0B70 014C+00 1/0 0/0 0/0 .text procGrabUp__9daAlink_cFv */
int daAlink_c::procGrabUp() {
// NONMATCHING
+ return 0;
}
/* 800E637C-800E63F0 0E0CBC 0074+00 1/0 0/0 0/0 .text procGrabMiss__9daAlink_cFv */
int daAlink_c::procGrabMiss() {
// NONMATCHING
+ return 0;
}
/* 800E63F0-800E65F8 0E0D30 0208+00 1/1 0/0 0/0 .text procGrabThrowInit__9daAlink_cFi */
int daAlink_c::procGrabThrowInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800E65F8-800E672C 0E0F38 0134+00 1/0 0/0 0/0 .text procGrabThrow__9daAlink_cFv */
int daAlink_c::procGrabThrow() {
// NONMATCHING
+ return 0;
}
/* 800E672C-800E6914 0E106C 01E8+00 2/2 0/0 0/0 .text procGrabPutInit__9daAlink_cFv */
int daAlink_c::procGrabPutInit() {
// NONMATCHING
+ return 0;
}
/* 800E6914-800E6A9C 0E1254 0188+00 1/0 0/0 0/0 .text procGrabPut__9daAlink_cFv */
int daAlink_c::procGrabPut() {
// NONMATCHING
+ return 0;
}
/* 800E6A9C-800E6C34 0E13DC 0198+00 2/2 0/0 0/0 .text procGrabWaitInit__9daAlink_cFv */
int daAlink_c::procGrabWaitInit() {
// NONMATCHING
+ return 0;
}
/* 800E6C34-800E6D6C 0E1574 0138+00 1/0 0/0 0/0 .text procGrabWait__9daAlink_cFv */
int daAlink_c::procGrabWait() {
// NONMATCHING
+ return 0;
}
/* 800E6D6C-800E6E0C 0E16AC 00A0+00 2/2 0/0 0/0 .text procGrabReboundInit__9daAlink_cFi
*/
int daAlink_c::procGrabReboundInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800E6E0C-800E6EEC 0E174C 00E0+00 1/0 0/0 0/0 .text procGrabRebound__9daAlink_cFv */
int daAlink_c::procGrabRebound() {
// NONMATCHING
+ return 0;
}
/* 800E6EEC-800E6FE0 0E182C 00F4+00 2/2 0/0 0/0 .text procGrabStandInit__9daAlink_cFv */
int daAlink_c::procGrabStandInit() {
// NONMATCHING
+ return 0;
}
/* 800E6FE0-800E70C0 0E1920 00E0+00 1/0 0/0 0/0 .text procGrabStand__9daAlink_cFv */
-int daAlink_c::procGrabStand(){// NONMATCHING
+int daAlink_c::procGrabStand() {
+ // NONMATCHING
+ return 0;
}
/* 800E70C0-800E70FC 0E1A00 003C+00 1/1 0/0 0/0 .text
@@ -372,6 +393,7 @@ BOOL daAlink_c::checkInsectActorName(fopAc_ac_c* insectActor) {
*/
int daAlink_c::procInsectCatchInit() {
// NONMATCHING
+ return 0;
}
/* 800E71D4-800E7254 0E1B14 0080+00 1/0 0/0 0/0 .text procInsectCatch__9daAlink_cFv */
@@ -394,21 +416,25 @@ int daAlink_c::procInsectCatch() {
/* 800E7254-800E7460 0E1B94 020C+00 2/2 0/0 0/0 .text procPickUpInit__9daAlink_cFv */
int daAlink_c::procPickUpInit() {
// NONMATCHING
+ return 0;
}
/* 800E7460-800E75EC 0E1DA0 018C+00 1/0 0/0 0/0 .text procPickUp__9daAlink_cFv */
int daAlink_c::procPickUp() {
// NONMATCHING
+ return 0;
}
/* 800E75EC-800E76E0 0E1F2C 00F4+00 3/3 0/0 0/0 .text procPickPutInit__9daAlink_cFi */
int daAlink_c::procPickPutInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800E76E0-800E7894 0E2020 01B4+00 1/0 0/0 0/0 .text procPickPut__9daAlink_cFv */
int daAlink_c::procPickPut() {
// NONMATCHING
+ return 0;
}
/* 800E7894-800E794C 0E21D4 00B8+00 2/2 0/0 0/0 .text checkSetChainPullAnime__9daAlink_cFs */
@@ -432,11 +458,13 @@ s16 daAlink_c::getChainStickAngleY(s16 param_0) const {
/* 800E7994-800E79F8 0E22D4 0064+00 1/1 0/0 0/0 .text checkChainEmphasys__9daAlink_cFv */
u8 daAlink_c::checkChainEmphasys() {
// NONMATCHING
+ return 0;
}
/* 800E79F8-800E7AEC 0E2338 00F4+00 4/4 0/0 0/0 .text searchFmChainPos__9daAlink_cFv */
BOOL daAlink_c::searchFmChainPos() {
// NONMATCHING
+ return 0;
}
/* 800E7AEC-800E7BD0 0E242C 00E4+00 0/0 1/1 0/0 .text
@@ -464,22 +492,26 @@ bool daAlink_c::checkChainBlockPushPull() {
/* 800E7C30-800E7CC0 0E2570 0090+00 2/2 0/0 0/0 .text procFmChainUpInit__9daAlink_cFv */
int daAlink_c::procFmChainUpInit() {
// NONMATCHING
+ return 0;
}
/* 800E7CC0-800E7DD8 0E2600 0118+00 1/0 0/0 0/0 .text procFmChainUp__9daAlink_cFv */
int daAlink_c::procFmChainUp() {
// NONMATCHING
+ return 0;
}
/* 800E7DD8-800E7E50 0E2718 0078+00 2/1 0/0 0/0 .text procFmChainStrongPullInit__9daAlink_cFv */
int daAlink_c::procFmChainStrongPullInit() {
// NONMATCHING
+ return 0;
}
/* 800E7E50-800E7ED0 0E2790 0080+00 1/0 0/0 0/0 .text procFmChainStrongPull__9daAlink_cFv
*/
int daAlink_c::procFmChainStrongPull() {
// NONMATCHING
+ return 0;
}
/* 800E7ED0-800E7EE4 0E2810 0014+00 9/9 0/0 0/0 .text setWallGrabStatus__9daAlink_cFUcUc
@@ -594,32 +626,38 @@ void daAlink_c::getPushPullAnimeSpeed() {
/* 800E8428-800E857C 0E2D68 0154+00 4/4 0/0 0/0 .text procCoPushPullWaitInit__9daAlink_cFi */
int daAlink_c::procCoPushPullWaitInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800E857C-800E875C 0E2EBC 01E0+00 1/0 0/0 0/0 .text procCoPushPullWait__9daAlink_cFv */
int daAlink_c::procCoPushPullWait() {
// NONMATCHING
+ return 0;
}
/* 800E875C-800E89F0 0E309C 0294+00 2/2 0/0 0/0 .text procCoPushMoveInit__9daAlink_cFii
*/
int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
// NONMATCHING
+ return 0;
}
/* 800E89F0-800E8D1C 0E3330 032C+00 1/0 0/0 0/0 .text procCoPushMove__9daAlink_cFv */
int daAlink_c::procCoPushMove() {
// NONMATCHING
+ return 0;
}
/* 800E8D1C-800E8F44 0E365C 0228+00 2/2 0/0 0/0 .text procPullMoveInit__9daAlink_cFi */
int daAlink_c::procPullMoveInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800E8F44-800E91B0 0E3884 026C+00 1/0 0/0 0/0 .text procPullMove__9daAlink_cFv */
int daAlink_c::procPullMove() {
// NONMATCHING
+ return 0;
}
/* 800E91B0-800E91C4 0E3AF0 0014+00 1/1 0/0 0/0 .text daAlink_searchGoat__FP10fopAc_ac_cPv */
@@ -678,17 +716,20 @@ int daAlink_c::procGoatMoveInit() {
/* 800E9434-800E9894 0E3D74 0460+00 1/0 0/0 0/0 .text procGoatMove__9daAlink_cFv */
int daAlink_c::procGoatMove() {
// NONMATCHING
+ return 0;
}
/* 800E9894-800E9BD0 0E41D4 033C+00 3/3 0/0 0/0 .text procGoatCatchInit__9daAlink_cFP10fopAc_ac_cf
*/
int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) {
// NONMATCHING
+ return 0;
}
/* 800E9BD0-800EA2A8 0E4510 06D8+00 1/0 0/0 0/0 .text procGoatCatch__9daAlink_cFv */
int daAlink_c::procGoatCatch() {
// NONMATCHING
+ return 0;
}
/* 800EA2A8-800EA3AC 0E4BE8 0104+00 2/2 0/0 0/0 .text procGoatStrokeInit__9daAlink_cFv */
@@ -755,4 +796,5 @@ int daAlink_c::procGoronMoveInit() {
/* 800EA4CC-800EA844 0E4E0C 0378+00 1/0 0/0 0/0 .text procGoronMove__9daAlink_cFv */
int daAlink_c::procGoronMove() {
// NONMATCHING
+ return 0;
}
diff --git a/src/d/actor/d_a_alink_guard.inc b/src/d/actor/d_a_alink_guard.inc
index d9ad458a9b..1808575ac3 100644
--- a/src/d/actor/d_a_alink_guard.inc
+++ b/src/d/actor/d_a_alink_guard.inc
@@ -53,6 +53,7 @@ BOOL daAlink_c::checkShieldAttackEmphasys() {
BOOL daAlink_c::checkGuardActionChange() {
// NONMATCHING
+ return 0;
}
/* 800DC79C-800DC8C4 0D70DC 0128+00 3/3 0/0 0/0 .text stickArrowIncrement__9daAlink_cFi
@@ -273,40 +274,48 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* param_0) {
* procGuardSlipInit__9daAlink_cFiP12dCcD_GObjInf */
int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
// NONMATCHING
+ return 0;
}
/* 800DD894-800DDA10 0D81D4 017C+00 1/0 0/0 0/0 .text procGuardSlip__9daAlink_cFv */
int daAlink_c::procGuardSlip() {
// NONMATCHING
+ return 0;
}
/* 800DDA10-800DDBA8 0D8350 0198+00 2/1 0/0 0/0 .text procGuardAttackInit__9daAlink_cFv
*/
int daAlink_c::procGuardAttackInit() {
// NONMATCHING
+ return 0;
}
/* 800DDBA8-800DDE58 0D84E8 02B0+00 1/0 0/0 0/0 .text procGuardAttack__9daAlink_cFv */
int daAlink_c::procGuardAttack() {
// NONMATCHING
+ return 0;
}
/* 800DDE58-800DDF2C 0D8798 00D4+00 2/2 0/0 0/0 .text procGuardBreakInit__9daAlink_cFv */
int daAlink_c::procGuardBreakInit() {
// NONMATCHING
+ return 0;
}
/* 800DDF2C-800DE008 0D886C 00DC+00 1/0 0/0 0/0 .text procGuardBreak__9daAlink_cFv */
int daAlink_c::procGuardBreak() {
// NONMATCHING
+ return 0;
}
/* 800DE008-800DE380 0D8948 0378+00 2/2 0/0 0/0 .text procTurnMoveInit__9daAlink_cFi */
int daAlink_c::procTurnMoveInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800DE380-800DE64C 0D8CC0 02CC+00 1/0 0/0 0/0 .text procTurnMove__9daAlink_cFv */
int daAlink_c::procTurnMove() {
// NONMATCHING
+ return 0;
}
diff --git a/src/d/actor/d_a_alink_hang.inc b/src/d/actor/d_a_alink_hang.inc
index af23cd5ae1..16a1779897 100644
--- a/src/d/actor/d_a_alink_hang.inc
+++ b/src/d/actor/d_a_alink_hang.inc
@@ -2772,6 +2772,7 @@ int daAlink_c::procRoofHangStart() {
*/
int daAlink_c::procRoofHangWaitInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 80100D38-80100DA4 0FB678 006C+00 1/0 0/0 0/0 .text procRoofHangWait__9daAlink_cFv */
diff --git a/src/d/actor/d_a_alink_hook.inc b/src/d/actor/d_a_alink_hook.inc
index b01f029f31..000ec63031 100644
--- a/src/d/actor/d_a_alink_hook.inc
+++ b/src/d/actor/d_a_alink_hook.inc
@@ -573,6 +573,7 @@ void daAlink_c::setHookshotReturnEnd() {
*/
int daAlink_c::setHookshotHangMoveBGCollect() {
// NONMATCHING
+ return 0;
}
/* 80109AAC-80109BDC 1043EC 0130+00 2/2 0/0 0/0 .text setHookshotTopPosFly__9daAlink_cFv
diff --git a/src/d/actor/d_a_alink_horse.inc b/src/d/actor/d_a_alink_horse.inc
index accf56d2cf..03809d6078 100644
--- a/src/d/actor/d_a_alink_horse.inc
+++ b/src/d/actor/d_a_alink_horse.inc
@@ -132,6 +132,7 @@ int daAlink_c::checkReinRideBgCheck() {
#else
int daAlink_c::checkReinRideBgCheck() {
// NONMATCHING
+ return 0;
}
#endif
@@ -742,6 +743,7 @@ int daAlink_c::setSyncBoar(int param_0) {
#else
int daAlink_c::setSyncBoar(int param_0) {
// NONMATCHING
+ return 0;
}
#endif
@@ -832,6 +834,7 @@ void daAlink_c::setHorseSwordUp(int param_0) {
*/
int daAlink_c::setRideSubjectAngle(s16 param_0) {
// NONMATCHING
+ return 0;
}
/* 800EF050-800EF0E8 0E9990 0098+00 7/7 0/0 0/0 .text setBodyAngleRideReadyAnime__9daAlink_cFv */
@@ -1003,6 +1006,7 @@ BOOL daAlink_c::checkHorseGetOff() {
#else
BOOL daAlink_c::checkHorseGetOff() {
// NONMATCHING
+ return 0;
}
#endif
@@ -1032,33 +1036,39 @@ int daAlink_c::setHorseGetOff(int param_0) {
/* 800EF95C-800EFDC4 0EA29C 0468+00 1/1 0/0 0/0 .text procHorseRideInit__9daAlink_cFv */
int daAlink_c::procHorseRideInit() {
// NONMATCHING
+ return 0;
}
/* 800EFDC4-800F038C 0EA704 05C8+00 1/0 0/0 0/0 .text procHorseRide__9daAlink_cFv */
int daAlink_c::procHorseRide() {
// NONMATCHING
+ return 0;
}
/* 800F038C-800F0620 0EACCC 0294+00 1/1 0/0 0/0 .text procHorseGetOffInit__9daAlink_cFi
*/
int daAlink_c::procHorseGetOffInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 800F0620-800F0980 0EAF60 0360+00 1/0 0/0 0/0 .text procHorseGetOff__9daAlink_cFv */
int daAlink_c::procHorseGetOff() {
// NONMATCHING
+ return 0;
}
/* 800F0980-800F0AA4 0EB2C0 0124+00 16/16 0/0 0/0 .text procHorseWaitInit__9daAlink_cFv
*/
int daAlink_c::procHorseWaitInit() {
// NONMATCHING
+ return 0;
}
/* 800F0AA4-800F0C6C 0EB3E4 01C8+00 1/0 0/0 0/0 .text procHorseWait__9daAlink_cFv */
int daAlink_c::procHorseWait() {
// NONMATCHING
+ return 0;
}
/* 800F0C6C-800F0CE4 0EB5AC 0078+00 1/1 0/0 0/0 .text procHorseTurnInit__9daAlink_cFv */
@@ -1078,6 +1088,7 @@ int daAlink_c::procHorseTurnInit() {
/* 800F0CE4-800F1060 0EB624 037C+00 1/0 0/0 0/0 .text procHorseTurn__9daAlink_cFv */
int daAlink_c::procHorseTurn() {
// NONMATCHING
+ return 0;
}
/* 800F1060-800F10F8 0EB9A0 0098+00 1/1 0/0 0/0 .text procHorseJumpInit__9daAlink_cFv */
@@ -1190,11 +1201,13 @@ int daAlink_c::procHorseSubjectivity() {
/* 800F13D8-800F1688 0EBD18 02B0+00 1/1 0/0 0/0 .text procHorseCutInit__9daAlink_cFv */
int daAlink_c::procHorseCutInit() {
// NONMATCHING
+ return 0;
}
/* 800F1688-800F1894 0EBFC8 020C+00 1/0 0/0 0/0 .text procHorseCut__9daAlink_cFv */
int daAlink_c::procHorseCut() {
// NONMATCHING
+ return 0;
}
/* 800F1894-800F194C 0EC1D4 00B8+00 3/3 0/0 0/0 .text procHorseCutChargeReadyInit__9daAlink_cFv */
@@ -1218,6 +1231,7 @@ int daAlink_c::procHorseCutChargeReadyInit() {
/* 800F194C-800F1AAC 0EC28C 0160+00 1/0 0/0 0/0 .text procHorseCutChargeReady__9daAlink_cFv */
int daAlink_c::procHorseCutChargeReady() {
// NONMATCHING
+ return 0;
}
/* 800F1AAC-800F1BA4 0EC3EC 00F8+00 3/3 0/0 0/0 .text procHorseCutTurnInit__9daAlink_cFv
@@ -1245,17 +1259,20 @@ int daAlink_c::procHorseCutTurnInit() {
/* 800F1BA4-800F1D18 0EC4E4 0174+00 1/0 0/0 0/0 .text procHorseCutTurn__9daAlink_cFv */
int daAlink_c::procHorseCutTurn() {
// NONMATCHING
+ return 0;
}
/* 800F1D18-800F2028 0EC658 0310+00 2/2 0/0 0/0 .text
* procHorseDamageInit__9daAlink_cFP12dCcD_GObjInf */
int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
// NONMATCHING
+ return 0;
}
/* 800F2028-800F2150 0EC968 0128+00 1/0 0/0 0/0 .text procHorseDamage__9daAlink_cFv */
int daAlink_c::procHorseDamage() {
// NONMATCHING
+ return 0;
}
/* 800F2150-800F21B4 0ECA90 0064+00 1/1 0/0 0/0 .text procHorseBowSubjectInit__9daAlink_cFv */
@@ -1537,6 +1554,7 @@ int daAlink_c::procHorseHookshotMove() {
/* 800F2934-800F2AD8 0ED274 01A4+00 1/1 0/0 0/0 .text procHorseBottleDrinkInit__9daAlink_cFUs */
int daAlink_c::procHorseBottleDrinkInit(u16 param_0) {
// NONMATCHING
+ return 0;
}
/* 800F2AD8-800F2B4C 0ED418 0074+00 1/0 0/0 0/0 .text procHorseBottleDrink__9daAlink_cFv
@@ -1559,11 +1577,13 @@ int daAlink_c::procHorseBottleDrink() {
/* 800F2B4C-800F2C78 0ED48C 012C+00 1/1 0/0 0/0 .text procHorseKandelaarPourInit__9daAlink_cFv */
int daAlink_c::procHorseKandelaarPourInit() {
// NONMATCHING
+ return 0;
}
/* 800F2C78-800F2D84 0ED5B8 010C+00 1/0 0/0 0/0 .text procHorseKandelaarPour__9daAlink_cFv */
int daAlink_c::procHorseKandelaarPour() {
// NONMATCHING
+ return 0;
}
/* 800F2D84-800F2DE4 0ED6C4 0060+00 2/2 0/0 0/0 .text procHorseComebackInit__9daAlink_cFv
@@ -1626,17 +1646,20 @@ int daAlink_c::procHorseRunInit() {
/* 800F2F98-800F3430 0ED8D8 0498+00 1/0 0/0 0/0 .text procHorseRun__9daAlink_cFv */
int daAlink_c::procHorseRun() {
// NONMATCHING
+ return 0;
}
/* 800F3430-800F3580 0EDD70 0150+00 1/1 0/0 0/0 .text
* procHorseHangInit__9daAlink_cFP12dCcD_GObjInfi */
int daAlink_c::procHorseHangInit(dCcD_GObjInf* param_0, int param_1) {
// NONMATCHING
+ return 0;
}
/* 800F3580-800F36E4 0EDEC0 0164+00 1/0 0/0 0/0 .text procHorseHang__9daAlink_cFv */
int daAlink_c::procHorseHang() {
// NONMATCHING
+ return 0;
}
/* 800F36E4-800F3754 0EE024 0070+00 1/0 0/0 0/0 .text procHorseGetKeyInit__9daAlink_cFv
@@ -1722,4 +1745,5 @@ int daAlink_c::procBoarRunInit() {
/* 800F3998-800F3BB0 0EE2D8 0218+00 1/0 0/0 0/0 .text procBoarRun__9daAlink_cFv */
int daAlink_c::procBoarRun() {
// NONMATCHING
+ return 0;
}
diff --git a/src/d/actor/d_a_alink_iceleaf.inc b/src/d/actor/d_a_alink_iceleaf.inc
index f414b043ec..96e3f96889 100644
--- a/src/d/actor/d_a_alink_iceleaf.inc
+++ b/src/d/actor/d_a_alink_iceleaf.inc
@@ -3,6 +3,10 @@
* Player Ice Leaf surfing handling
*/
+#include "d/actor/d_a_alink.h"
+#include "d/actor/d_a_obj_iceleaf.h"
+#include "SSystem/SComponent/c_math.h"
+
/* 80105A84-80105A98 1003C4 0014+00 1/1 0/0 0/0 .text daAlink_searchIceLeaf__FP10fopAc_ac_cPv */
static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* param_1) {
if (fopAcM_GetName(i_actor) == PROC_Obj_IceLeaf) {
@@ -31,7 +35,202 @@ bool daAlink_c::checkBoardRestart() {
/* 80105B58-80106534 100498 09DC+00 7/7 0/0 0/0 .text boardCommon__9daAlink_cFi */
int daAlink_c::boardCommon(int param_0) {
- // NONMATCHING
+ int sp18 = abs(shape_angle.x);
+ int var_r25 = abs(shape_angle.z);
+ if (sp18 > var_r25) {
+ var_r25 = sp18;
+ }
+
+ f32 sp14 = cM_ssin(var_r25);
+
+ for (int i = 0; i < 3; i++) {
+ mAcchCir[i].SetWallR((mAcchCir[i].GetWallH() * sp14) + 35.0f);
+ }
+
+ if (mNormalSpeed > 15.0f && mLinkAcch.ChkWallHit()) {
+ s16 sp8 = current.angle.y + 0x8000;
+
+ for (int i = 0; i < 3; i++) {
+ if (mAcchCir[i].ChkWallHit() && cLib_distanceAngleS(sp8, mAcchCir[i].GetWallAngleY()) <= 0x2000 && mNormalSpeed > 30.0f) {
+ setJumpMode();
+ return procCoLargeDamageInit(-4, 1, 0, 0, NULL, 0);
+ }
+ }
+ }
+
+ if (!checkSnowCode() && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(2)) {
+ setJumpMode();
+ procBackJumpInit(0);
+
+ if (mRideAcKeep.getActor() != NULL) {
+ ((daObjIceLeaf_c*)mRideAcKeep.getActor())->deleteActor();
+ mRideAcKeep.clearData();
+ }
+
+ return 1;
+ }
+
+ s16 var_r27;
+ if (mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
+ cM3dGPla sp1C;
+ dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp1C);
+
+ mProcVar3.field_0x300e.x = cM_atan2s(sp1C.mNormal.absXZ(), sp1C.mNormal.y);
+ if (mProcVar3.field_0x300e.x == 0) {
+ var_r27 = shape_angle.y;
+ } else {
+ var_r27 = sp1C.mNormal.atan2sX_Z();
+ }
+ } else {
+ mProcVar3.field_0x300e.x = 0;
+ var_r27 = shape_angle.y;
+ }
+
+ if (mProcVar0.field_0x3008 != 0) {
+ mProcVar0.field_0x3008--;
+ onResetFlg1(RFLG1_UNK_40);
+ }
+
+ f32 var_f30 = 0.0f;
+ int temp_r26 = abs(mStickAngle);
+
+ s16 var_r24;
+ if (checkInputOnR() && param_0) {
+ var_r24 = 1024.0f * field_0x33ac * cM_ssin(mStickAngle);
+
+ if (temp_r26 > 0x6000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT) {
+ f32 temp_f29 = field_0x33ac * cM_scos((0x8000 - temp_r26) * 2);
+ f32 var_f28 = temp_f29;
+
+ if (var_f28 < 0.15f) {
+ var_f28 = 0.15f;
+ }
+
+ cLib_addCalc(&mNormalSpeed, 0.0f, 0.5f, var_f28, 0.1f);
+
+ if (mNormalSpeed > 5.0f) {
+ var_f30 = temp_f29;
+ } else {
+ var_f30 = (temp_f29 * mNormalSpeed) / 5.0f;
+ }
+
+ if (checkZeroSpeedF() && temp_r26 > 0x7000 && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2)) {
+ if (mProcVar3.field_0x300e.x <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.i_ChkGroundHit()) {
+ return procBoardTurnInit();
+ }
+ }
+ } else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && (mProcVar3.field_0x300e.x < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
+ if (mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
+ return procBoardRowInit();
+ }
+ }
+ } else {
+ var_r24 = 0;
+ }
+
+ u32 sp10 = Z2SE_AL_SNOBO_RIDE;
+ if (field_0x2f8c == 0xB) {
+ f32 spC = mNowAnmPackUnder[1].getRatio();
+ cLib_addCalc(&spC, var_f30, 0.5f, 0.35f, 0.1f);
+ setDoubleAnimeBlendRatio(spC);
+
+ if (spC > 0.8f) {
+ sp10 = Z2SE_AL_SNOBO_BREAK;
+ }
+ }
+
+ if (!checkModeFlg(2)) {
+ seStartOnlyReverbLevel(sp10);
+ }
+
+ if (mProcID == PROC_BOARD_TURN) {
+ mProcVar2.field_0x300c = 0;
+ } else {
+ cLib_addCalcAngleS(&mProcVar2.field_0x300c, var_r24, 0x1E, 0x800, 0x10);
+
+ if (!checkModeFlg(2)) {
+ current.angle.y += mProcVar2.field_0x300c;
+ }
+
+ shape_angle.y = current.angle.y;
+ }
+
+ cLib_addCalcAngleS(&field_0x2fee, -var_r24 * 6, 0xA, 0x800, 0x40);
+ shape_angle.z = field_0x2fee >> 1;
+ mBodyAngle.z = shape_angle.z;
+
+ if (mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
+ if (checkModeFlg(2)) {
+ offModeFlg(2);
+ speed.y = 0.0f;
+ } else {
+ if (mProcVar3.field_0x300e.x > 910.0f && (mProcID != PROC_BOARD_ROW || !(mProcVar3.field_0x300e.x < 2000.0f))) {
+ f32 var_f25 = (f32)mProcVar3.field_0x300e.x / (f32)field_0x3122;
+ if (var_f25 > 1.0f) {
+ var_f25 = 1.0f;
+ }
+
+ s16 temp_r0 = shape_angle.y - var_r27;
+ f32 var_f31;
+ if (abs(temp_r0) <= 0x4000) {
+ var_f31 = 0.5f + (0.5f * cM_scos(temp_r0));
+ } else {
+ var_f31 = 1.0f - (0.5f * cM_scos(temp_r0));
+ }
+
+ var_f31 *= cM_fsin(1.570796f * var_f25);
+ if (var_f31 > 0.1f) {
+ f32 temp_f27 = (var_f31 * cM_ssin(var_r27)) + (mNormalSpeed * cM_ssin(shape_angle.y));
+ f32 temp_f26 = (var_f31 * cM_scos(var_r27)) + (mNormalSpeed * cM_scos(shape_angle.y));
+
+ mNormalSpeed = JMAFastSqrt((temp_f27 * temp_f27) + (temp_f26 * temp_f26));
+ if (mNormalSpeed > field_0x594) {
+ mNormalSpeed = field_0x594;
+ }
+
+ if (mNormalSpeed > 0.1f) {
+ cLib_addCalcAngleS(&shape_angle.y, cM_atan2s(temp_f27, temp_f26), 2, 0x2000, 0x800);
+ current.angle.y = shape_angle.y;
+ }
+ } else {
+ cLib_chaseF(&mNormalSpeed, 0.0f, 0.01f);
+ }
+ } else {
+ cLib_chaseF(&mNormalSpeed, 0.0f, 0.01f);
+ }
+ }
+
+ if (checkInputOnR() && param_0 && temp_r26 < 0x2800) {
+ if (checkUnderMove0BckNoArc(ANM_RIDE_WAIT)) {
+ setCommonBoardAnime(1);
+ }
+ } else {
+ if (checkUnderMove0BckNoArc(ANM_RIDE_FRONT)) {
+ setCommonBoardAnime(0);
+ }
+
+ if (mNormalSpeed > (0.7f * field_0x594)) {
+ cLib_chaseF(&mNormalSpeed, 0.7f * field_0x594, 1.5f);
+ }
+ }
+
+ cLib_addCalcAngleS(&shape_angle.x, field_0x2ff0, 4, 0x1000, 0x100);
+
+ if (mNormalSpeed > 5.0f) {
+ field_0x2f9d = 4;
+ }
+ } else if (!checkModeFlg(2)) {
+ f32 var_f24 = mNormalSpeed * -cM_ssin(shape_angle.x);
+ if (var_f24 < 0.0f) {
+ var_f24 = 0.0f;
+ }
+
+ return procBoardJumpInit(var_f24, 0);
+ } else {
+ cLib_addCalcAngleS(&shape_angle.x, 0, 4, 100, 10);
+ }
+
+ return 0;
}
/* 80106534-8010658C 100E74 0058+00 6/6 0/0 0/0 .text setCommonBoardAnime__9daAlink_cFi
@@ -94,12 +293,39 @@ f32 daAlink_c::getBoardRowAnmSpeed() {
/* 801066EC-80106774 10102C 0088+00 3/3 0/0 0/0 .text setBoardLandAnime__9daAlink_cFv */
void daAlink_c::setBoardLandAnime() {
- // NONMATCHING
+ setSingleAnimeParam(ANM_RIDE_JUMP_LAND, &daAlinkHIO_board_c0::m.mLandAnm);
+ seStartOnlyReverb(Z2SE_AL_SNOBO_LAND);
+ dComIfGp_getVibration().StartShock(2, 15, cXyz(0.0f, 1.0f, 0.0f));
}
/* 80106774-801069D0 1010B4 025C+00 1/1 0/0 0/0 .text procBoardRideInit__9daAlink_cFv */
int daAlink_c::procBoardRideInit() {
- // NONMATCHING
+ commonProcInit(PROC_BOARD_RIDE);
+ setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation);
+ setHeavyBoots(0);
+
+ if (mEquipItem != 0x103) {
+ deleteEquipItem(1, 1);
+ } else {
+ offKandelaarModel();
+ }
+
+ voiceStart(Z2SE_AL_V_JUMP_S);
+ field_0x2f99 = 0xF;
+
+ cXyz sp8 = field_0x27f4->current.pos - current.pos;
+ speed.y = 24.0;
+ shape_angle.y = sp8.atan2sX_Z();
+
+ mNormalSpeed = 0.020833334f * (-gravity * sp8.absXZ());
+ current.angle.y = shape_angle.y;
+
+ field_0x3588 = l_waitBaseAnime;
+ field_0x33b0 = field_0x3588.y;
+ field_0x34d4 = l_waitBaseAnime;
+
+ field_0x280c.setData(field_0x27f4);
+ return 1;
}
/* 801069D0-80106A38 101310 0068+00 1/0 0/0 0/0 .text procBoardRide__9daAlink_cFv */
@@ -122,12 +348,129 @@ int daAlink_c::procBoardRide() {
/* 80106A38-80106BCC 101378 0194+00 13/13 0/0 0/0 .text
* procBoardWaitInit__9daAlink_cFP10fopAc_ac_c */
int daAlink_c::procBoardWaitInit(fopAc_ac_c* param_0) {
- // NONMATCHING
+ if (mEquipItem != 0x103) {
+ deleteEquipItem(TRUE, TRUE);
+ } else {
+ offKandelaarModel();
+ }
+
+ freeGrabItem();
+
+ if (!checkBoardRide()) {
+ resetUpperAnime(UPPER_2, -1.0f);
+ }
+
+ if (checkModeFlg(2) && param_0 == NULL) {
+ return procBoardJumpInit(0.0f, 1);
+ }
+
+ BOOL temp_r28 = mProcID == PROC_BOARD_RIDE;
+ if (!commonProcInitNotSameProc(PROC_BOARD_WAIT)) {
+ return 0;
+ }
+
+ current.angle.y = shape_angle.y;
+
+ if (param_0 != NULL) {
+ mRideAcKeep.setData(param_0);
+ ((daObjIceLeaf_c*)param_0)->onRide();
+
+ if (temp_r28 != 0) {
+ f32 var_f31 = mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
+ if (var_f31 > 1.0f) {
+ var_f31 = 1.0f;
+ }
+
+ mNormalSpeed = daAlinkHIO_board_c0::m.mStartMinSpeed + (daAlinkHIO_board_c0::m.mStartAddSpeed * var_f31);
+ } else {
+ mNormalSpeed = 0.0f;
+ }
+
+ field_0x594 = daAlinkHIO_move_c0::m.mMinWalkRate;
+ mProcVar2.field_0x300c = 0;
+ mProcVar3.field_0x300e.x = 0;
+ setCommonBoardAnime(0);
+ }
+
+ mRideStatus = 4;
+ mProcVar3.field_0x300e.z = 0;
+ mProcVar1.field_0x300a = 0;
+ return 1;
}
/* 80106BCC-80106E88 10150C 02BC+00 1/0 0/0 0/0 .text procBoardWait__9daAlink_cFv */
int daAlink_c::procBoardWait() {
- // NONMATCHING
+ if (boardCommon(1)) {
+ return 1;
+ }
+
+ if (checkAnmEnd(&mUnderFrameCtrl[0]) && !checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) {
+ setCommonBoardAnime(0);
+ }
+
+ if (!checkNextActionBoard()) {
+ if (mEquipItem == 0x103 && swordButton()) {
+ if (mProcVar1.field_0x300a == 0) {
+ setSingleAnimeBase(ANM_RIDE_CUT_TURN_CHARGE);
+ }
+
+ mProcVar1.field_0x300a++;
+
+ if (mProcVar1.field_0x300a == daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
+ setSwordVoiceSe(Z2SE_AL_V_TAME);
+ }
+
+ if (!checkAnmEnd(&mUnderFrameCtrl[0])) {
+ mProcVar1.field_0x300a = 1;
+ } else {
+ simpleAnmPlay(m_nSwordBtk);
+
+ if (mProcVar1.field_0x300a >= 14.0f) {
+ mProcVar1.field_0x300a = 0x18;
+ }
+ }
+ } else if (mProcVar1.field_0x300a != 0) {
+ if (mProcVar1.field_0x300a >= 14.0f) {
+ return procBoardCutTurnInit();
+ }
+ return procBoardCutInit();
+ } else if (mProcVar3.field_0x300e.z == 0) {
+ if (!checkModeFlg(2) && mProcID != PROC_BOARD_ROW) {
+ setDoStatus(0xA);
+
+ if (doButton()) {
+ f32 var_f31;
+ if (field_0x2f8c == 0xB) {
+ var_f31 = mNowAnmPackUnder[1].getRatio();
+ } else {
+ var_f31 = 0.0f;
+ }
+
+ setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, daAlinkHIO_board_c0::m.mSitInterpolation);
+ setDoubleAnimeBlendRatio(var_f31);
+ mProcVar3.field_0x300e.z = 1;
+ }
+ }
+ } else if (mProcVar3.field_0x300e.z != 0) {
+ if (mNormalSpeed > 15.0f) {
+ setDoStatus(0x19);
+ }
+
+ if (!doButton()) {
+ mProcVar3.field_0x300e.z = 0;
+
+ if (mNormalSpeed > 15.0f) {
+ procBoardJumpInit(mNormalSpeed, 0);
+ } else {
+ f32 temp_f30 = mNowAnmPackUnder[1].getRatio();
+ setCommonBoardAnime(0);
+ setDoubleAnimeBlendRatio(temp_f30);
+ }
+ }
+ }
+ }
+
+ return 1;
}
/* 80106E88-80106F00 1017C8 0078+00 1/1 0/0 0/0 .text procBoardRowInit__9daAlink_cFv */
@@ -138,13 +481,40 @@ int daAlink_c::procBoardRowInit() {
mProcVar0.field_0x3008 = 4;
mProcVar3.field_0x300e.y = 1;
mProcVar3.field_0x300e.z = 0;
-
return 1;
}
/* 80106F00-80107060 101840 0160+00 1/0 0/0 0/0 .text procBoardRow__9daAlink_cFv */
int daAlink_c::procBoardRow() {
- // NONMATCHING
+ if (boardCommon(1)) {
+ return 1;
+ }
+
+ if (mProcVar3.field_0x300e.y != 0) {
+ onResetFlg1(RFLG1_UNK_40);
+ mProcVar0.field_0x3008 = 4;
+ }
+
+ if (!checkNextActionBoard()) {
+ daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
+
+ if (temp_r29->checkPass(0.0f)) {
+ if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && mProcVar3.field_0x300e.x < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
+ mProcVar3.field_0x300e.z = 0;
+ } else {
+ setCommonBoardAnime(0);
+ procBoardWaitInit(NULL);
+ }
+ } else if (temp_r29->checkPass(7.0f)) {
+ mNormalSpeed += daAlinkHIO_board_c0::m.mPushAccel;
+
+ if (mNormalSpeed > daAlinkHIO_board_c0::m.mMaxPushSpeed) {
+ mNormalSpeed = daAlinkHIO_board_c0::m.mMaxPushSpeed;
+ }
+ }
+ }
+
+ return 1;
}
/* 80107060-801070DC 1019A0 007C+00 1/1 0/0 0/0 .text procBoardTurnInit__9daAlink_cFv */
@@ -152,20 +522,46 @@ int daAlink_c::procBoardTurnInit() {
commonProcInit(PROC_BOARD_TURN);
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, 3.0f);
mNormalSpeed = 0.0f;
+
mProcVar3.field_0x300e.y = shape_angle.y + 0x8000;
mProcVar3.field_0x300e.z = 0;
mProcVar1.field_0x300a = 0;
-
return 1;
}
/* 801070DC-80107218 101A1C 013C+00 1/0 0/0 0/0 .text procBoardTurn__9daAlink_cFv */
int daAlink_c::procBoardTurn() {
- // NONMATCHING
+ if (boardCommon(0)) {
+ return 1;
+ }
+
+ if (mProcVar3.field_0x300e.z == 0) {
+ if (field_0x2060->getOldFrameRate() < 0.01f) {
+ mProcVar3.field_0x300e.z = 1;
+ setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
+ }
+ } else if (mProcVar1.field_0x300a == 0) {
+ if (mUnderFrameCtrl[0].checkPass(6.0f)) {
+ speed.y = 20.0f;
+ setJumpMode();
+ mProcVar1.field_0x300a = 1;
+ }
+ } else {
+ cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e.y, 5, 0x1B58, 0x7D0);
+ current.angle.y = shape_angle.y;
+
+ if (!checkModeFlg(2)) {
+ setBoardLandAnime();
+ procBoardWaitInit(NULL);
+ } else {
+ current.angle.y = shape_angle.y;
+ }
+ }
+
+ return 1;
}
/* 80107218-80107300 101B58 00E8+00 4/4 0/0 0/0 .text procBoardJumpInit__9daAlink_cFfi */
-#ifdef NONMATCHING
int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
commonProcInit(PROC_BOARD_JUMP);
mProcVar0.field_0x3008 = 0;
@@ -184,11 +580,6 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
return 1;
}
-#else
-int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
- // NONMATCHING
-}
-#endif
/* 80107300-801073D0 101C40 00D0+00 1/0 0/0 0/0 .text procBoardJump__9daAlink_cFv */
int daAlink_c::procBoardJump() {
@@ -261,7 +652,6 @@ int daAlink_c::procBoardCutInit() {
return 1;
}
-
/* 8010755C-801075D4 101E9C 0078+00 1/0 0/0 0/0 .text procBoardCut__9daAlink_cFv */
int daAlink_c::procBoardCut() {
if (boardCommon(1)) {
@@ -279,10 +669,81 @@ int daAlink_c::procBoardCut() {
/* 801075D4-80107744 101F14 0170+00 2/2 0/0 0/0 .text procBoardCutTurnInit__9daAlink_cFv
*/
int daAlink_c::procBoardCutTurnInit() {
- // NONMATCHING
+ commonProcBoardInit(PROC_BOARD_CUT_TURN);
+ setSingleAnimeParam(ANM_RIDE_CUT_TURN, &daAlinkHIO_board_c0::m.mSpinAnm);
+
+ if (daAlinkHIO_board_c0::m.mSpinAnm.mStartFrame >= 3.0f) {
+ speed.y = cLib_minMaxLimit<f32>(mNormalSpeed * -cM_ssin(shape_angle.x), daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY, daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY);
+ if (!checkModeFlg(2)) {
+ seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
+ }
+
+ setJumpMode();
+ field_0x3198 = 1;
+ } else {
+ speed.y = 0.0f;
+ field_0x3198 = 0;
+ }
+
+ mProcVar3.field_0x300e.z = 0;
+ resetCombo(1);
+
+ field_0x3478 = daAlinkHIO_cutTurn_c0::m.mAttackRadius;
+ field_0x347c = 0.5f * field_0x3478;
+ initCutTurnAt(field_0x347c, 3);
+
+ mProcVar1.field_0x300a = 4;
+ mProcVar3.field_0x300e.y = 1;
+ voiceStart(Z2SE_AL_V_KAITEN);
+ return 1;
}
/* 80107744-80107900 102084 01BC+00 1/0 0/0 0/0 .text procBoardCutTurn__9daAlink_cFv */
int daAlink_c::procBoardCutTurn() {
- // NONMATCHING
+ if (boardCommon(1)) {
+ return 1;
+ }
+
+ daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0];
+
+ if (temp_r30->getFrame() >= 4.0f && temp_r30->getFrame() < 14.0f) {
+ if (!checkNoResetFlg0(FLG0_UNK_40)) {
+ seStartSwordCut(Z2SE_AL_KAITENGIRI);
+ }
+
+ onResetFlg0(RFLG0_UNK_2);
+ cLib_chaseF(&field_0x347c, field_0x3478, 20.0f);
+ field_0xFB8.SetR(field_0x347c);
+ onResetFlg1(RFLG1_UNK_40);
+ } else {
+ mProcVar3.field_0x300e.z = 0;
+ }
+
+ if (!checkModeFlg(2)) {
+ if (field_0x3198 != 0) {
+ setBoardLandAnime();
+ procBoardWaitInit(NULL);
+ } else {
+ if (temp_r30->getFrame() >= 3.0f) {
+ speed.y = mNormalSpeed * -cM_ssin(shape_angle.x);
+
+ if (speed.y < daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY) {
+ speed.y = daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY;
+ } else if (speed.y > daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY) {
+ speed.y = daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY;
+ }
+
+ setJumpMode();
+ seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
+ field_0x3198 = 1;
+ }
+ }
+ } else {
+ field_0x3198 = 1;
+ if (checkAnmEnd(temp_r30)) {
+ procBoardJumpInit(0.0f, 1);
+ }
+ }
+
+ return 1;
}
diff --git a/src/d/actor/d_a_alink_ironball.inc b/src/d/actor/d_a_alink_ironball.inc
index 49867d841e..24179f8c41 100644
--- a/src/d/actor/d_a_alink_ironball.inc
+++ b/src/d/actor/d_a_alink_ironball.inc
@@ -3,6 +3,8 @@
* Player Ball & Chain action handling
*/
+#include "d/actor/d_a_alink.h"
+
/* 8011243C-80112458 10CD7C 001C+00 1/0 0/0 0/0 .text getIronBallCenterPos__9daAlink_cFv
*/
cXyz* daAlink_c::getIronBallCenterPos() {
@@ -101,22 +103,362 @@ void daAlink_c::setIronBallBgCheckPos() {
/* 801127F0-80112C80 10D130 0490+00 1/1 0/0 0/0 .text setIronBallModel__9daAlink_cFv */
void daAlink_c::setIronBallModel() {
- // NONMATCHING
-}
+ JKRHeap* prev_heap = setItemHeap();
+
+ mHeldItemModel = initModelEnv(loadAramBmd(0x311, 0x2800), 0);
+ mpHookKusariModelData = loadAramBmd(0x317, 0x1000);
+ mpHookChain = new hsChainShape_c();
+
+ mIronBallChainPos = new cXyz[102];
+ mIronBallChainAngle = new csXyz[102];
+ field_0x3848 = new cXyz[102];
+
+ field_0x0774 = new dBgS_AcchCir();
+ field_0x0778 = new dBgS_ObjAcch();
+ mpHookSound = new Z2SoundObjSimple();
+
+ mpHookshotLinChk = new dBgS_ObjLinChk();
+ mpHookshotLinChk->OffFullGrp();
+ mpHookshotLinChk->OnWaterGrp();
+
+ field_0x780 = new dBgS_ObjLinChk();
+ field_0x2f1c = new dPaPo_c();
+ field_0x2f1c->init(field_0x0778, 32.0f, 64.0f);
+
+ mDoExt_setCurrentHeap(prev_heap);
+
+ mpHookChain->setUserArea((u32)this);
+
+ field_0xFB8.SetAtType(AT_TYPE_IRON_BALL);
+ field_0xFB8.SetAtHitMark(3);
+ field_0xFB8.SetAtSe(dCcD_SE_HAMMER);
+ field_0xFB8.SetAtAtp(2);
+ field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE);
+ field_0xFB8.SetR(daAlinkHIO_ironBall_c0::m.mAttackRadius);
+
+ csXyz* var_r28 = mIronBallChainAngle;
+ for (int i = 0; i < 102; i++, var_r28++) {
+ if (i < 2) {
+ var_r28->set(0, shape_angle.y, i * 0x3000);
+ } else {
+ var_r28->set(0, shape_angle.y, var_r28[-1].z + 0x3000);
+ }
+
+ field_0x3848[i] = cXyz::Zero;
+ mIronBallChainPos[i] = mLeftHandPos;
+ }
+
+ mItemVar0.field_0x3018 = 0;
+ mItemMode = 6;
+
+ mIronBallBgChkPos = mLeftHandPos;
+ field_0x3810 = mLeftHandPos;
+
+ field_0x0774->SetWall(32.0f, 32.0f);
+ field_0x0778->Set(&mIronBallBgChkPos, &field_0x3810, this, 1, field_0x0774, field_0x3848, mIronBallChainAngle, mIronBallChainAngle);
+ field_0x0778->ClrRoofNone();
+ field_0x0778->SetRoofCrrHeight(64.0f);
+ field_0x0778->OnLineCheck();
+ field_0x0778->ClrObj();
+ field_0x0778->SetIronBall();
+
+ field_0x780->ClrObj();
+ field_0x780->SetIronBall();
+
+ field_0x32d4 = 0;
+
+ mpHookSound->init(&mIronBallCenterPos, 1);
+ mZ2Link.setUsingIronBall(true);
-/* 80112C80-80112C84 10D5C0 0004+00 2/2 2/2 0/0 .text __ct__5csXyzFv */
-extern "C" void __ct__5csXyzFv() {}
+ field_0x301c = 0;
+ field_0x3024 = 0;
+ field_0x3026 = 0;
+
+ field_0x173c.Init(0xDC, 0xFF, this);
+ field_0x1778.Set(l_sphSrc);
+ field_0x1778.SetStts(&field_0x173c);
+ field_0x1778.OffTgSetBit();
+ field_0x1778.OffAtSetBit();
+ field_0x1778.SetR(40.0f);
+ field_0x1778.SetCoIGrp(8);
+ field_0x1778.SetCoVsGrp(0x60);
+}
/* 80112C84-80112E7C 10D5C4 01F8+00 1/1 0/0 0/0 .text
* setIronBallGroundVec__9daAlink_cFPC4cXyzP4cXyz */
-void daAlink_c::setIronBallGroundVec(cXyz const* param_0, cXyz* param_1) {
- // NONMATCHING
+int daAlink_c::setIronBallGroundVec(cXyz const* param_0, cXyz* param_1) {
+ cXyz sp3C(param_0->x, param_0->y + 50.0f, param_0->z);
+
+ if (fopAcM_gc_c::gndCheck(&sp3C)) {
+ f32 var_f30 = (fopAcM_gc_c::getGroundY() + 4.0f) - param_0->y;
+ if (var_f30 > 0.0f) {
+ f32 var_f31 = param_1->absXZ();
+
+ param_1->y += var_f30;
+
+ if (var_f31 < 0.1f) {
+ param_1->z += var_f30;
+ } else {
+ var_f31 = var_f30 / var_f31;
+ param_1->x += param_1->x * var_f31;
+ param_1->z += param_1->z * var_f31;
+ }
+
+ param_1->normalizeZP();
+ return 1;
+ }
+ }
+
+ return 0;
}
/* 80112E7C-80113CA0 10D7BC 0E24+00 1/1 0/0 0/0 .text setIronBallChainPos__9daAlink_cFv
*/
+// NONMATCHING - alot of regalloc
void daAlink_c::setIronBallChainPos() {
- // NONMATCHING
+ cXyz sp2A4;
+ cXyz sp298;
+ cXyz sp28C;
+ cXyz sp280;
+ cXyz sp274;
+
+ *(&mIronBallChainPos[mItemMode] + 1) = mHeldItemRootPos;
+ *(&mIronBallChainAngle[mItemMode] + 1) = field_0x316c;
+
+ cXyz* var_r29;
+ cXyz* var_r27;
+ cXyz* var_r26;
+
+ if (mItemVar0.field_0x3018 == 2) {
+ var_r29 = mIronBallChainPos + 1;
+ var_r27 = var_r29 - 1;
+ var_r26 = field_0x3848 + 1;
+
+ sp2A4 = mHookshotTopPos - *mIronBallChainPos;
+ sp2A4.normalizeZP();
+
+ for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
+ sp28C = *var_r29;
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+
+ *var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
+ var_r27 = var_r29;
+ }
+ } else if (mItemVar0.field_0x3018 == 7) {
+ var_r29 = &mIronBallChainPos[mItemMode];
+ var_r26 = &field_0x3848[mItemMode];
+ var_r27 = var_r29 + 1;
+
+ int sp38 = mItemMode * daAlinkHIO_ironBall_c0::m.mReturnChainRate;
+ int sp34 = sp38;
+
+ for (int i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
+ sp2A4 = (*var_r29 - *var_r27) + *var_r26;
+
+ if (i == 0) {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnBallGravity;
+ } else {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
+ }
+
+ if (sp38 >= 0) {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
+ sp38--;
+ }
+
+ sp2A4.normalizeZP();
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+ var_r27 = var_r29;
+ }
+
+ setIronBallBgCheckPos();
+ sp274 = mIronBallBgChkPos;
+ field_0x0778->CrrPos(dComIfG_Bgsp());
+
+ if (field_0x0778->i_ChkGroundHit()) {
+ *mIronBallChainPos += mIronBallBgChkPos - sp274;
+ }
+
+ mIronBallChainPos->y += mSearchBallScale;
+
+ var_r29 = mIronBallChainPos + 1;
+ var_r27 = var_r29 - 1;
+ var_r26 = field_0x3848 + 1;
+
+ for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
+ sp28C = *var_r29;
+ sp2A4 = (*var_r29 - *var_r27) + *var_r26;
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
+ if (i >= mItemMode - sp34) {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
+ }
+
+ sp280 = sp2A4;
+ sp2A4.normalizeZP();
+
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+
+ if (setIronBallGroundVec(var_r29, &sp280)) {
+ *var_r29 = *var_r27 + (sp280 * 10.0f);
+ }
+
+ var_r27 = var_r29;
+ *var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
+ }
+ } else if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4) {
+ daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[0];
+
+ int sp38;
+ if (mItemVar0.field_0x3018 == 1) {
+ f32 temp_f25 = sp30->getEnd() - 13.0f;
+ f32 temp_f29 = (sp30->getFrame() - 13.0f) / temp_f25;
+ s16 sp12 = -16384.0f - (14336.0f * temp_f29);
+
+ mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
+ mDoMtx_stack_c::YrotM(sp12);
+ mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp298);
+
+ sp298 *= 15.0f * (1.0f + temp_f29);
+ sp38 = 1000;
+ } else if (mItemVar0.field_0x3018 == 4) {
+ Vec sp268 = {0.0f, 0.0f, 0.0f};
+ sp268.y = daAlinkHIO_ironBall_c0::m.mThrowChainAccelY;
+ sp268.z = daAlinkHIO_ironBall_c0::m.mThrowChainAccelZ;
+
+ mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
+ mDoMtx_stack_c::multVec(&sp268, &sp298);
+
+ sp38 = 2.0f * (1.0f + sp30->getFrame());
+ } else {
+ sp38 = -1;
+ }
+
+ var_r29 = &mIronBallChainPos[mItemMode];
+ var_r26 = &field_0x3848[mItemMode];
+ var_r27 = var_r29 + 1;
+
+ for (int i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
+ sp28C = *var_r29;
+ sp2A4 = (*var_r29 - *var_r27) + *var_r26;
+
+ if (i == 0) {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
+ } else {
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
+ }
+
+ if (sp38 >= 0) {
+ sp2A4 += sp298;
+ sp38--;
+ }
+
+ sp280 = sp2A4;
+ sp2A4.normalizeZP();
+
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+
+ if (setIronBallGroundVec(var_r29, &sp280)) {
+ *var_r29 = *var_r27 + (sp280 * 10.0f);
+ }
+
+ *var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
+ var_r27 = var_r29;
+ }
+
+ sp2A4 = mIronBallCenterPos - *mIronBallChainPos;
+ sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
+
+ if (sp38 >= 0) {
+ sp2A4 += sp298;
+ }
+
+ s16 temp_r25 = sp2A4.atan2sX_Z();
+ mIronBallChainAngle->set(sp2A4.atan2sY_XZ(), temp_r25, 0);
+ } else {
+ f32 var_f30;
+ if (mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5) {
+ var_f30 = daAlinkHIO_ironBall_c0::m.mThrowChainGravity;
+ } else {
+ var_f30 = daAlinkHIO_ironBall_c0::m.mChainGravity;
+ }
+
+ var_r29 = mIronBallChainPos + 1;
+ var_r27 = var_r29 - 1;
+ var_r26 = field_0x3848 + 1;
+
+ for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
+ sp2A4 = (*var_r29 - *var_r27) + *var_r26;
+ sp2A4.y += var_f30;
+ sp2A4.normalizeZP();
+
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+ var_r27 = var_r29;
+ }
+
+ var_r29 = &mIronBallChainPos[mItemMode];
+ var_r26 = &field_0x3848[mItemMode];
+ var_r27 = var_r29 + 1;
+
+ BOOL sp2C = ((mItemVar0.field_0x3018 == 0 && checkUnderMove1BckNoArc(ANM_IRONBALL_WALK)) && mNowAnmPackUnder[1].getRatio() > 0.8f) && (mUnderFrameCtrl[1].getFrame() >= 24.0f || mUnderFrameCtrl[1].getFrame() <= 3.0f);
+
+ f32 temp_f31 = 5.0f * (5.0f * (mNowAnmPackUnder[1].getRatio() - 0.8f));
+ f32 temp_f28 = temp_f31 * cM_scos(shape_angle.y);
+ temp_f31 *= cM_ssin(shape_angle.y);
+
+ for (int i = mItemMode; i > 0; i--, var_r29--, var_r26--) {
+ sp28C = *var_r29;
+
+ if (i == mItemMode) {
+ *var_r29 = mHookshotTopPos;
+ } else {
+ sp2A4 = (*var_r29 - *var_r27) + *var_r26;
+ if (sp2C) {
+ sp2A4.x += temp_f31;
+ sp2A4.z += temp_f28;
+ }
+ sp2A4.y += var_f30;
+
+ sp280 = sp2A4;
+ sp2A4.normalizeZP();
+
+ *var_r29 = *var_r27 + (sp2A4 * 10.0f);
+ if (setIronBallGroundVec(var_r29, &sp280)) {
+ *var_r29 = *var_r27 + (sp280 * 10.0f);
+ }
+ }
+
+ var_r27 = var_r29;
+ *var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
+ }
+ }
+
+ csXyz* sp3C = mIronBallChainAngle + 1;
+ var_r29 = mIronBallChainPos + 1;
+ var_r27 = var_r29 - 1;
+ s16 spE = mIronBallChainAngle->z + 0x3000;
+
+ for (int i = 0; i < mItemMode; i++, sp3C++, var_r29++, spE += 0x3000) {
+ sp2A4 = (*var_r27 - *var_r29);
+
+ s16 sp10;
+ if (sp2A4.absXZ() < 1.0f) {
+ sp10 = sp3C[-1].y;
+ } else {
+ sp10 = sp2A4.atan2sX_Z();
+ }
+
+ sp3C->set(sp2A4.atan2sY_XZ(), sp10, spE);
+ var_r27 = var_r29;
+ }
+
+ cXyz* temp_r29 = &mIronBallChainPos[mItemMode] + 1;
+ csXyz* sp3C_2 = &mIronBallChainAngle[mItemMode] + 1;
+
+ for (int i = mItemMode + 2; i < 102; i++) {
+ mIronBallChainPos[i] = *temp_r29;
+ mIronBallChainAngle[i] = *sp3C_2;
+ field_0x3848[i] = cXyz::Zero;
+ }
}
/* 80113CA0-80113D58 10E5E0 00B8+00 1/1 0/0 0/0 .text checkIronBallReturnChange__9daAlink_cFv */
@@ -135,7 +477,347 @@ BOOL daAlink_c::checkIronBallReturnChange() {
/* 80113D58-801150E4 10E698 138C+00 1/1 0/0 0/0 .text setIronBallPos__9daAlink_cFv */
void daAlink_c::setIronBallPos() {
- // NONMATCHING
+ cXyz sp10C;
+ cXyz sp100;
+ cXyz spF4;
+ cXyz spE8;
+ cXyz spDC;
+ cXyz spD0(mIronBallCenterPos);
+
+ mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0xF));
+ mDoMtx_stack_c::transM(-1.0f, -6.0f, -3.6f);
+ mDoMtx_stack_c::XYZrotM(cM_deg2s(150.0f), cM_deg2s(-81.0f), cM_deg2s(111.0f));
+
+ if (mItemVar0.field_0x3018 == 0) {
+ mDoMtx_stack_c::transM(0.0f, 0.0f, 10.0f);
+ mDoMtx_stack_c::XrotM(0x7FFF);
+ }
+
+ mDoMtx_stack_c::multVec(&l_ironBallChainVec, &mHookshotTopPos);
+ mDoMtx_stack_c::multVecZero(&mHeldItemRootPos);
+ mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &field_0x316c);
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(9), &sp10C);
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0xE), &sp100);
+
+ spE8 = (sp10C + sp100) * 0.5f;
+
+ field_0x301c = 0;
+
+ BOOL var_r25 = 0;
+ BOOL var_r28 = 0;
+
+ if (field_0x3026 != 0) {
+ field_0x3026--;
+ }
+
+ cXyz spC4;
+ cXyz spB8;
+
+ if (field_0xFB8.ChkAtHit()) {
+ dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f));
+ }
+
+ if (mItemVar0.field_0x3018 == 0) {
+ mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0xA));
+ mDoMtx_stack_c::transM(-35.3f, -9.5f, -16.0f);
+ mDoMtx_stack_c::XYZrotM(cM_deg2s(61.5f), cM_deg2s(-2.5f), cM_deg2s(50.3f));
+ mDoMtx_stack_c::multVecZero(mIronBallChainPos);
+
+ if (mProcID == PROC_IRON_BALL_SUBJECT || mProcID == PROC_IRON_BALL_MOVE) {
+ mDoMtx_MtxToRot(mDoMtx_stack_c::get(), mIronBallChainAngle);
+ } else {
+ mIronBallChainAngle->set(-0x4000, shape_angle.y, 0);
+ }
+
+ mItemMode = 6;
+ } else if (mItemVar0.field_0x3018 != 1) {
+ if (mItemVar0.field_0x3018 == 2) {
+ daPy_frameCtrl_c* temp_r24 = &mUpperFrameCtrl[2];
+ s16 sp10 = 32768.0f - (65536.0f * (temp_r24->getFrame() / temp_r24->getEnd()));
+
+ mItemMode = 3;
+
+ sp10C.set(0.0f, 0.0f, 10.0f * mItemMode);
+
+ mDoMtx_stack_c::transS(mHookshotTopPos);
+ mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, shape_angle.y, 0);
+ mDoMtx_stack_c::YrotM(sp10);
+ mDoMtx_stack_c::multVec(&sp10C, mIronBallChainPos);
+ mDoMtx_MtxToRot(mDoMtx_stack_c::get(), mIronBallChainAngle);
+ } else if (mItemVar0.field_0x3018 != 3) {
+ if (mItemVar0.field_0x3018 == 4) {
+ mItemMode++;
+ checkIronBallReturnChange();
+ } else if (mItemVar0.field_0x3018 == 5 || mItemVar0.field_0x3018 == 6) {
+ *mIronBallChainPos += *field_0x173c.GetCCMoveP();
+
+ if (!checkIronBallReturnChange()) {
+ f32 var_f29;
+ f32 var_f28 = daAlinkHIO_ironBall_c0::m.mBallMaxFallSpeed;
+
+ if (mItemVar0.field_0x3018 == 5) {
+ var_f29 = daAlinkHIO_ironBall_c0::m.mThrowBallGravity;
+
+ f32 sp1C;
+ if (fopAcM_getWaterY(mIronBallChainPos, &sp1C) && sp1C > mIronBallChainPos->y) {
+ if (field_0x3022 == 0) {
+ field_0x3022 = 1;
+ *field_0x3848 *= 0.5f;
+ }
+ var_f29 *= 0.5f;
+ var_f28 *= 0.5f;
+ }
+ } else {
+ var_f29 = daAlinkHIO_ironBall_c0::m.mBallGravity;
+ }
+
+ sp10C = mIronBallCenterPos + (*field_0x3848 * 1.25f);
+
+ s16 temp_r27 = daAlinkHIO_ironBall_c0::m.mThrowChainNum + 0.1f * mIronBallChainPos->abs(mHookshotTopPos);
+ if (temp_r27 > 100) {
+ mItemMode = 100;
+ } else if (mItemMode < temp_r27) {
+ mItemMode = temp_r27;
+ }
+
+ field_0x3848->y += var_f29;
+ if (field_0x3848->y < var_f28) {
+ field_0x3848->y = var_f28;
+ }
+
+ *mIronBallChainPos += *field_0x3848;
+ spF4 = *mIronBallChainPos - mHookshotTopPos;
+ f32 temp_f1 = spF4.abs();
+
+ BOOL var_r26 = 0;
+ if (temp_f1 > 1000.0f) {
+ spF4 *= 1000.0f / temp_f1;
+ *mIronBallChainPos = mHookshotTopPos + spF4;
+
+ if (field_0x3848->abs2() < 1.0f) {
+ var_r26 = 1;
+ } else {
+ field_0x3848->x = 0.0f;
+ field_0x3848->z = 0.0f;
+ }
+ }
+
+ spF4 = sp10C - *mIronBallChainPos;
+ spF4.y += var_f29;
+
+ mIronBallChainAngle->set(spF4.atan2sY_XZ(), spF4.atan2sX_Z(), 0);
+
+ int var_r23;
+ if (mBodyAngle.x >= 0) {
+ var_r23 = 50;
+ } else {
+ var_r23 = 50.0f - (40.0f * cM_ssin(mBodyAngle.x));
+ }
+
+ setIronBallBgCheckPos();
+
+ sp10C = mIronBallBgChkPos;
+
+ f32 temp_f30 = field_0x3848->y;
+ field_0x0778->CrrPos(dComIfG_Bgsp());
+
+ f32 var_f31;
+ int var_r29;
+
+ if (field_0x0778->ChkGroundLanding()) {
+ var_r29 = dKy_pol_sound_get(&field_0x0778->m_gnd);
+ var_f31 = fabsf(temp_f30);
+ field_0x301c = dComIfG_Bgsp().ChkMoveBG(field_0x0778->m_gnd) == 0;
+
+ if (field_0x3024 == 0) {
+ field_0x3024 = 1;
+ var_r25 = 1;
+ }
+ } else if (field_0x0778->ChkWallHit()) {
+ var_r29 = dKy_pol_sound_get(field_0x0774);
+ var_f31 = field_0x3848->absXZ();
+ field_0x301c = dComIfG_Bgsp().ChkMoveBG(*field_0x0774) == 0;
+
+ if (field_0x3026 == 0 && var_f31 > 3.0f) {
+ dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f));
+ field_0x3026 = 0xF;
+ var_r28 = 1;
+
+ spC4 = mIronBallBgChkPos;
+ spC4.y += 32.0f;
+
+ spB8.set(spC4.x - (cM_ssin(field_0x0774->GetWallAngleY()) * 48.0f),
+ spC4.y,
+ spC4.z - (cM_scos(field_0x0774->GetWallAngleY()) * 48.0f));
+ }
+ } else if (field_0x0778->ChkRoofHit()) {
+ var_r29 = dKy_pol_sound_get(&field_0x0778->m_roof);
+ var_f31 = fabsf(temp_f30);
+ field_0x301c = dComIfG_Bgsp().ChkMoveBG(field_0x0778->m_roof) == 0;
+
+ if (field_0x3026 == 0 && var_f31 > 3.0f) {
+ dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f));
+ field_0x3026 = 0xF;
+ var_r28 = 1;
+
+ spC4 = mIronBallBgChkPos;
+ spC4.y += 32.0f;
+
+ spB8 = spC4;
+ spC4.y += 48.0f;
+ }
+ } else {
+ var_r29 = -1;
+ }
+
+ if (var_r29 != -1) {
+ var_f31 *= 1.6666666f;
+ if (var_f31 > 100.0f) {
+ var_f31 = 100.0f;
+ }
+
+ mZ2Link.startHitItemSE(Z2SE_HIT_HAMMER, var_r29, mpHookSound, var_f31);
+ }
+
+ if (field_0x0778->ChkWallHit() || field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit() || (mItemVar0.field_0x3018 == 5 && (var_r26 != 0 || mItemMode > var_r23))) {
+ if (field_0x0778->ChkWallHit() || field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit()) {
+ *mIronBallChainPos += mIronBallBgChkPos - sp10C;
+
+ if (field_0x0778->ChkWallHit()) {
+ field_0x3848->x *= -0.2f;
+ field_0x3848->z *= -0.2f;
+
+ if (temp_f30 > 0.0f) {
+ field_0x3848->y = 0.8f * temp_f30;
+ }
+ }
+
+ if (field_0x0778->i_ChkGroundHit()) {
+ field_0x3848->x *= 0.5f;
+ field_0x3848->z *= 0.5f;
+
+ if (checkSnowCodePolygon(field_0x0778->m_gnd)) {
+ mSearchBallScale = -20.0f;
+ } else if (temp_f30 < 0.0f) {
+ field_0x3848->y = -0.5f * temp_f30;
+ field_0x3494 -= 1.0f;
+ if (field_0x3848->y > 50.0f) {
+ field_0x3848->y = 50.0f;
+ }
+ }
+ } else if (field_0x0778->ChkRoofHit()) {
+ field_0x3848->x *= 0.5f;
+ field_0x3848->z *= 0.5f;
+
+ if (temp_f30 > 0.0f) {
+ field_0x3848->y = -0.5f * temp_f30;
+ }
+ }
+ }
+
+ if (mItemVar0.field_0x3018 == 5) {
+ mItemVar0.field_0x3018 = 6;
+ } else if (field_0x3494 < 0.0f) {
+ setIronBallReturn(0);
+ } else if (field_0x3848->y < daAlinkHIO_ironBall_c0::m.field_0x6C) {
+ setIronBallReturn(1);
+ }
+ } else if (mItemVar0.field_0x3018 == 6 && var_r26 != 0) {
+ setIronBallReturn(1);
+ }
+
+ mIronBallChainPos->y += mSearchBallScale;
+ }
+ } else if (mItemVar0.field_0x3018 == 7) {
+ f32 sp18;
+ int var_r22;
+ if (fopAcM_getWaterY(mIronBallChainPos, &sp18) && sp18 > mIronBallChainPos->y) {
+ var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum - 1;
+ } else {
+ var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum;
+ }
+
+ if (mItemMode > 6) {
+ mItemMode -= var_r22;
+ if (mItemMode <= 6) {
+ mItemVar0.field_0x3018 = 8;
+ }
+ } else if (mItemMode <= 6) {
+ mItemVar0.field_0x3018 = 8;
+ }
+ } else if (mItemVar0.field_0x3018 == 8) {
+ mSearchBallScale = 0.0f;
+
+ mDoMtx_stack_c::transS(spE8);
+ mDoMtx_stack_c::YrotM(shape_angle.y);
+ mDoMtx_stack_c::multVec(&handCenterOffsetVec, &sp10C);
+
+ sp10C.y += 42.0f;
+
+ cLib_addCalcPos(&mIronBallCenterPos, sp10C, 0.5f, 70.0f, 10.0f);
+ cLib_addCalcAngleS(&mIronBallChainAngle->x, -0x4000, 5, 0x1000, 0x400);
+ cLib_addCalcAngleS(&mIronBallChainAngle->y, shape_angle.y, 5, 0x1000, 0x400);
+
+ mDoMtx_stack_c::transS(mIronBallCenterPos);
+ mDoMtx_stack_c::ZXYrotM(*mIronBallChainAngle);
+ mDoMtx_stack_c::multVec(&ironBallPosVec, mIronBallChainPos);
+
+ if (mItemMode > 6) {
+ mItemMode -= 10;
+ if (mItemMode < 6) {
+ mItemMode = 6;
+ }
+ } else if (mItemMode < 6) {
+ mItemMode = 6;
+ }
+ }
+ }
+ }
+
+ setIronBallChainPos();
+
+ mDoMtx_stack_c::transS(*mIronBallChainPos);
+ mDoMtx_stack_c::ZXYrotM(*mIronBallChainAngle);
+ mHeldItemModel->setBaseTRMtx(mDoMtx_stack_c::get());
+
+ mDoMtx_stack_c::multVec(&l_ironBallCenterVec, &mIronBallCenterPos);
+
+ field_0x3810 = mIronBallBgChkPos;
+ mIronBallBgChkPos.set(mIronBallCenterPos.x, mIronBallCenterPos.y - 32.0f, mIronBallCenterPos.z);
+
+ if (mItemVar0.field_0x3018 == 4) {
+ field_0x0778->CrrPos(dComIfG_Bgsp());
+ if (field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit() || field_0x0778->ChkWallHit()) {
+ mItemVar0.field_0x3018 = 8;
+ dComIfGp_getVibration().StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f));
+ }
+ }
+
+ field_0x173c.ClrCcMove();
+ mpHookSound->framework(0, mVoiceReverbIntensity);
+
+ if (mItemVar0.field_0x3018 != 0) {
+ mpHookshotLinChk->Set(&spD0, &mIronBallCenterPos, this);
+
+ if (dComIfG_Bgsp().LineCross(mpHookshotLinChk) && dComIfG_Bgsp().GetPolyAtt0(*mpHookshotLinChk) != 6) {
+ fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 1.0f, 0);
+ mDoAud_seStart(Z2SE_CM_BODYFALL_WATER_S, mpHookshotLinChk->GetCrossP(), 0, mVoiceReverbIntensity);
+ }
+ }
+
+ if (var_r28 != 0) {
+ field_0x780->Set(&spC4, &spB8, this);
+
+ if (dComIfG_Bgsp().LineCross(field_0x780)) {
+ cM3dGPla sp118;
+ dComIfG_Bgsp().GetTriPla(*field_0x780, &sp118);
+
+ csXyz sp20(cM_atan2s(sp118.mNormal.y, sp118.mNormal.absXZ()), cM_atan2s(-sp118.mNormal.x, -sp118.mNormal.z), 0);
+ dComIfGp_setHitMark(9, NULL, field_0x780->GetCrossP(), &sp20, NULL, 0);
+ }
+ }
+
+ field_0x2f1c->setEffectCenter(&tevStr, &mIronBallBgChkPos, 0x3B, 0x40000, var_r25 ? &mIronBallBgChkPos : NULL, NULL, NULL, fopAcM_GetRoomNo(this), field_0x3420, 0.0f);
}
/* 801150E4-8011510C 10FA24 0028+00 10/10 0/0 0/0 .text checkIronBallAnime__9daAlink_cCFv
@@ -349,7 +1031,44 @@ int daAlink_c::procIronBallThrowInit() {
/* 80115860-801159F0 1101A0 0190+00 1/0 0/0 0/0 .text procIronBallThrow__9daAlink_cFv */
int daAlink_c::procIronBallThrow() {
- // NONMATCHING
+ daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0];
+
+ if (mEquipItem != IRONBALL) {
+ return checkWaitAction();
+ }
+
+ field_0x2f99 = 4;
+
+ if (mItemVar0.field_0x3018 == 8) {
+ return procIronBallReturnInit();
+ }
+
+ if (mItemVar0.field_0x3018 == 4 && temp_r29->checkPass(6.0f)) {
+ mItemVar0.field_0x3018 = 5;
+ mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
+
+ Vec sp8 = {0.0f, daAlinkHIO_ironBall_c0::m.mThrowSpeedY, daAlinkHIO_ironBall_c0::m.mThrowSpeedZ};
+ mDoMtx_stack_c::multVec(&sp8, field_0x3848);
+ field_0x3022 = 0;
+ }
+
+ if (checkAnmEnd(temp_r29)) {
+ if (mProcVar2.field_0x300c == 0) {
+ mProcVar2.field_0x300c = 1;
+ setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, daAlinkHIO_ironBall_c0::m.mThrowAnmSpeed, daAlinkHIO_ironBall_c0::m.mThrowInterpolation);
+ field_0x2f99 = 0xC;
+ mItemVar0.field_0x3018 = 4;
+ } else if (mItemVar0.field_0x3018 == 7) {
+ procIronBallReturnInit();
+ }
+ } else if (mProcVar2.field_0x300c != 0) {
+ if (temp_r29->getFrame() >= 5.0f) {
+ field_0x2f92 = 0xFE;
+ field_0x2f93 = 0xFE;
+ }
+ }
+
+ return 1;
}
/* 801159F0-80115AA0 110330 00B0+00 2/2 0/0 0/0 .text procIronBallReturnInit__9daAlink_cFv */
@@ -386,8 +1105,7 @@ int daAlink_c::procIronBallReturn() {
field_0x2f99 = 12;
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
- f32 tmp_0 = 0.0f;
- dComIfGp_getVibration().StartShock(3, 1, cXyz(tmp_0, 1.0f, tmp_0));
+ dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f));
} else if (frameCtrl->checkAnmEnd()) {
if (mItemVar0.field_0x3018 == 8) {
mItemVar0.field_0x3018 = 0;
diff --git a/src/d/actor/d_a_alink_link.inc b/src/d/actor/d_a_alink_link.inc
index c07676402d..257f50552d 100644
--- a/src/d/actor/d_a_alink_link.inc
+++ b/src/d/actor/d_a_alink_link.inc
@@ -753,10 +753,9 @@ int daAlink_c::procSlideLand() {
}
/* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */
-// some issue with daAlinkHIO_frontRoll_c0::m not being saved into r31
-#ifdef NONMATCHING
int daAlink_c::procFrontRollInit() {
BOOL is_guard_anime = checkUpperGuardAnime();
+
if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == 0x28) {
return 0;
}
@@ -764,20 +763,18 @@ int daAlink_c::procFrontRollInit() {
BOOL is_dive_jump = mProcID == PROC_DIVE_JUMP;
commonProcInit(PROC_FRONT_ROLL);
- f32 roll_anm_speed;
- if (!is_dive_jump) {
- roll_anm_speed = daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed;
- } else {
- roll_anm_speed = 6.0f;
- }
+ f32 roll_anm_speed = is_dive_jump ? 6.0f : daAlinkHIO_frontRoll_c0::m.mRollAnm.mStartFrame;
+
setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed, roll_anm_speed,
daAlinkHIO_frontRoll_c0::m.mRollAnm.mEndFrame,
daAlinkHIO_frontRoll_c0::m.mRollAnm.mInterpolation);
mNormalSpeed =
- speedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
- if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mStartFrame) {
- mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mStartFrame;
+ speedF * daAlinkHIO_frontRoll_c0::m.mSpeedRate + daAlinkHIO_frontRoll_c0::m.mInitSpeed;
+
+ f32 var_f30 = daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_move_c0::m.mMaxSpeed * daAlinkHIO_frontRoll_c0::m.mSpeedRate;
+ if (mNormalSpeed > var_f30) {
+ mNormalSpeed = var_f30;
}
if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) {
@@ -794,8 +791,9 @@ int daAlink_c::procFrontRollInit() {
voiceStart(Z2SE_AL_V_BACKTEN);
mProcVar2.field_0x300c = 0;
setFootEffectProcType(0);
+
if (is_guard_anime) {
- onNoResetFlg0(2);
+ onNoResetFlg0(FLG0_UNK_2);
}
if (checkEquipHeavyBoots()) {
@@ -808,13 +806,9 @@ int daAlink_c::procFrontRollInit() {
field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius);
field_0xFB8.OnAtSetBit();
}
+
return 1;
}
-#else
-int daAlink_c::procFrontRollInit() {
- // NONMATCHING
-}
-#endif
/* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */
int daAlink_c::procFrontRoll() {
@@ -1905,8 +1899,7 @@ int daAlink_c::procSmallJumpInit(int param_0) {
/* 800C72D4-800C74D4 0C1C14 0200+00 1/0 0/0 0/0 .text procSmallJump__9daAlink_cFv */
-// one out of order block with sqrt
-#ifdef NONMATCHING
+// NONMATCHING - one out of order block with sqrt
int daAlink_c::procSmallJump() {
if (checkModeFlg(2)) {
if (checkCanoeJumpRide()) {
@@ -1948,11 +1941,6 @@ int daAlink_c::procSmallJump() {
return 1;
}
-#else
-int daAlink_c::procSmallJump() {
- // NONMATCHING
-}
-#endif
/* 800C74D4-800C755C 0C1E14 0088+00 1/1 0/0 0/0 .text procStepMoveInit__9daAlink_cFv */
int daAlink_c::procStepMoveInit() {
@@ -1968,11 +1956,10 @@ int daAlink_c::procStepMoveInit() {
}
/* 800C755C-800C7690 0C1E9C 0134+00 1/0 0/0 0/0 .text procStepMove__9daAlink_cFv */
-#ifdef NONMATCHING
int daAlink_c::procStepMove() {
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
- if (mProcVar2.field_0x300c == 0) {
+ if (mProcVar2.field_0x300c != 0) {
field_0x2f99 = 4;
if (frameCtrl->checkAnmEnd()) {
@@ -1998,11 +1985,6 @@ int daAlink_c::procStepMove() {
return 1;
}
-#else
-int daAlink_c::procStepMove() {
- // NONMATCHING
-}
-#endif
/* 800C7690-800C76F8 0C1FD0 0068+00 1/0 0/0 0/0 .text procCrouchInit__9daAlink_cFv */
int daAlink_c::procCrouchInit() {
@@ -2035,27 +2017,11 @@ int daAlink_c::procCrouch() {
return 1;
}
-/* ############################################################################################## */
-/* 804255F8-80425604 052318 000C+00 0/1 0/0 0/0 .bss @4419 */
-#pragma push
-#pragma force_active on
-static u8 lit_4419[12];
-#pragma pop
-
/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */
-#pragma push
-#pragma force_active on
-static Vec l_sumouBaseAnimeSp; // change to cXyz later
-#pragma pop
-
-/* 80425610-8042561C 052330 000C+00 0/1 0/0 0/0 .bss @4420 */
-#pragma push
-#pragma force_active on
-static u8 lit_4420[12];
-#pragma pop
+static cXyz l_sumouBaseAnimeSp;
/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */
-static Vec l_wolfBaseAnime; // change to cXyz later
+static cXyz l_wolfBaseAnime;
BOOL daMidna_c::checkMidnaRealBody() {
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
@@ -2180,19 +2146,161 @@ int daAlink_c::procCoMetamorphoseInit() {
}
-/* ############################################################################################## */
-/* 80392070-8039207C 01E6D0 000C+00 0/1 0/0 0/0 .rodata @74273 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_74273[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80392070, &lit_74273);
-#pragma pop
-
/* 800C7C64-800C82E8 0C25A4 0684+00 1/0 0/0 0/0 .text procCoMetamorphose__9daAlink_cFv */
int daAlink_c::procCoMetamorphose() {
- // NONMATCHING
+ if (mProcVar1.field_0x300a != 0) {
+ if (!checkEventRun()) {
+ checkWaitAction();
+ } else {
+ dComIfGp_evmng_cutEnd(field_0x3184);
+ }
+ return 1;
+ }
+
+ daPy_frameCtrl_c* temp_r29 = mUnderFrameCtrl;
+ if (!mLinkAcch.i_ChkGroundHit()) {
+ current.pos.y = field_0x3484;
+ speed.y = 0.0f;
+ } else {
+ field_0x3484 = current.pos.y;
+ }
+
+ field_0x2f99 = 4;
+
+ if (mProcVar0.field_0x3008 != 0 && mProcVar3.field_0x300e.z == 0) {
+ if (mClothesChangeWaitTimer == 0) {
+ mProcVar3.field_0x300e.z = 1;
+
+ if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) {
+ dComIfGp_evmng_cutEnd(field_0x3184);
+
+ if (checkWolf()) {
+ setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f);
+ } else {
+ setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f);
+ }
+
+ field_0x2f99 = 0xC;
+ mProcVar1.field_0x300a = 1;
+ return 1;
+ }
+
+ Vec sp8 = {0.0f, 0.0f, 0.0f};
+ sp8.z = l_wolfBaseAnime.z - l_waitBaseAnime.z;
+
+ if (!checkWolf()) {
+ setSingleAnimeBaseMorf(ANM_TRANSFORM_TO_HUMAN, -1.0f);
+ setMetamorphoseModel(0);
+ field_0x3588 = l_waitBaseAnime;
+ } else {
+ setSingleAnimeWolfBaseMorf(WANM_TRANSFORM_TO_WOLF, -1.0f);
+ field_0x3588 = l_wolfBaseAnime;
+ sp8.z *= -1.0f;
+ offModeFlg(0x8000);
+ }
+
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mDoMtx_stack_c::multVec(&sp8, &current.pos);
+
+ field_0x2f99 = 0xC;
+ if (mDemo.getDemoType() == 3) {
+ mFallVoiceInit = 1;
+ }
+
+ }
+ } else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar3.field_0x300e.z != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) {
+ if (mProcVar3.field_0x300e.z != 0) {
+ deleteEquipItem(0, 0);
+
+ if (field_0x3198 != 0) {
+ resetSpecialEvent();
+ return checkWaitAction();
+ }
+
+ dComIfGp_evmng_cutEnd(field_0x3184);
+
+ if (checkWolf()) {
+ setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f);
+ } else {
+ setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f);
+ }
+
+ field_0x2f99 = 0xC;
+ mProcVar1.field_0x300a = 1;
+ return 1;
+ }
+
+ mClothesChangeWaitTimer = 4;
+ mpWlMidnaModel = NULL;
+ mProcVar0.field_0x3008 = 1;
+
+ if (mProcVar3.field_0x300e.y != 0) {
+ dComIfGs_onEventBit(0x5E40);
+ }
+ }
+
+ field_0x33dc = temp_r29->getFrame();
+
+ if (mProcVar3.field_0x300e.z != 0) {
+ if (checkWolf()) {
+ f32 var_f31 = 1.0f - (0.03846154f * field_0x33dc);
+ if (var_f31 < 0.0f) {
+ var_f31 = 0.0f;
+ }
+
+ mProcVar3.field_0x300e.x = -64.0f * var_f31;
+ } else if (field_0x33dc < 14.0f) {
+ mProcVar3.field_0x300e.x = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc)));
+ } else {
+ f32 var_f31_2 = 1.0f - (0.2f * (field_0x33dc - 14.0f));
+ if (var_f31_2 < 0.0f) {
+ var_f31_2 = 0.0f;
+ }
+
+ mProcVar3.field_0x300e.x = 15.0f * var_f31_2;
+ }
+ } else if (checkWolf() != 0) {
+ mProcVar3.field_0x300e.x = -64.0 * (0.07142857142857142 * field_0x33dc);
+ } else if (field_0x33dc < 9.0f) {
+ mProcVar3.field_0x300e.x = -15.0 * (0.1111111111111111 * field_0x33dc);
+ } else {
+ f32 var_f31_3 = 0.2f * (field_0x33dc - 9.0f);
+ if (var_f31_3 > 1.0f) {
+ var_f31_3 = 1.0f;
+ }
+
+ mProcVar3.field_0x300e.x = -(15.0f + (49.0f * var_f31_3));
+ }
+
+ if (!checkWolf()) {
+ f32 var_f30;
+ if (mProcVar3.field_0x300e.z != 0) {
+ var_f30 = (field_0x33dc - 13.0f) / 4.0f;
+ } else {
+ var_f30 = (field_0x33dc - 8.0f) / 5.0f;
+ }
+
+ var_f30 = cLib_minMaxLimit<f32>(var_f30, 0.0f, 1.0f);
+
+ if (mProcVar3.field_0x300e.z != 0) {
+ field_0x347c = 0.5f + (0.027777778f * field_0x33dc);
+ var_f30 = 1.0f - var_f30;
+ } else {
+ field_0x347c = 1.0f - (0.033333335f * (field_0x33dc - 9.0f));
+ if (var_f30 > 0.0f) {
+ swimBgCheck(150.0f * var_f30);
+ }
+ }
+
+ if (field_0x347c > 1.0f) {
+ field_0x347c = 1.0f;
+ }
+
+ shape_angle.x = var_f30 * mProcVar2.field_0x300c;
+ }
+
+ return 1;
}
/* 800C82E8-800C83A0 0C2C28 00B8+00 2/0 0/0 0/0 .text procCoMetamorphoseOnlyInit__9daAlink_cFv */
@@ -2212,10 +2320,9 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
mProcVar3.field_0x300e.x = 0;
}
- f32 tmp_0 = 0.0f;
- mNormalSpeed = tmp_0;
- speed.y = tmp_0;
- setSpecialGravity(tmp_0, maxFallSpeed, 0);
+ mNormalSpeed = 0.0f;
+ speed.y = 0.0f;
+ setSpecialGravity(0.0f, maxFallSpeed, 0);
return 1;
}
@@ -2289,6 +2396,7 @@ int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* param_0) {
/* 800C85D8-800C8700 0C2F18 0128+00 1/0 0/0 0/0 .text procGoronRideWait__9daAlink_cFv */
int daAlink_c::procGoronRideWait() {
// NONMATCHING
+ return 0;
}
/* 800C8700-800CAFA8 0C3040 28A8+00 1/1 0/0 0/0 .text execute__9daAlink_cFv */
@@ -3364,18 +3472,10 @@ void daAlink_c::modelDraw(J3DModel* i_model, int param_1) {
daMirror_c::entry(i_model);
}
-/* ############################################################################################## */
-/* 8045333C-80453344 00193C 0008+00 1/1 0/0 0/0 .sdata2 notColor0$76211 */
-SECTION_SDATA2 static GXColorS10 notColor0 = {
- 0x0000,
- 0x0000,
- 0x0000,
- 0x00FF,
-};
-
/* 800CC364-800CC7DC 0C6CA4 0478+00 2/2 0/0 0/0 .text
* setWaterDropColor__9daAlink_cFPC13J3DGXColorS10 */
-void daAlink_c::setWaterDropColor(J3DGXColorS10 const* i_color) {
+void daAlink_c::setWaterDropColor(const J3DGXColorS10* i_color) {
+ static const GXColorS10 notColor0 = {0x00, 0x00, 0x00, 0xFF};
J3DGXColorS10* var_r31;
if (&field_0x32a0[0] == i_color) {
@@ -3884,6 +3984,7 @@ bool daAlink_c::checkNoSubjectModeCamera() {
/* 800CE468-800CE628 0C8DA8 01C0+00 2/2 0/0 0/0 .text acceptSubjectModeChange__9daAlink_cFv */
bool daAlink_c::acceptSubjectModeChange() {
// NONMATCHING
+ return 0;
}
/* 800CE628-800CE728 0C8F68 0100+00 5/5 0/0 0/0 .text checkSubjectAction__9daAlink_cFv */
@@ -3925,6 +4026,7 @@ void daAlink_c::checkBodyAngleX(s16 param_0) {
/* 800CE8A0-800CEAF4 0C91E0 0254+00 15/15 0/0 0/0 .text setBodyAngleToCamera__9daAlink_cFv */
BOOL daAlink_c::setBodyAngleToCamera() {
// NONMATCHING
+ return 0;
}
/* 800CEAF4-800CEB58 0C9434 0064+00 9/9 0/0 0/0 .text setSubjectMode__9daAlink_cFv */
@@ -3933,7 +4035,6 @@ void daAlink_c::setSubjectMode() {
seStartSystem(Z2SE_SUBJ_VIEW_IN);
}
-
/* 800CEB58-800CEBD8 0C9498 0080+00 2/2 0/0 0/0 .text subjectCancelTrigger__9daAlink_cFv
*/
BOOL daAlink_c::subjectCancelTrigger() {
@@ -3947,18 +4048,35 @@ BOOL daAlink_c::subjectCancelTrigger() {
}
/* 800CEBD8-800CECE4 0C9518 010C+00 9/9 0/0 0/0 .text checkSubjectEnd__9daAlink_cFi */
-int daAlink_c::checkSubjectEnd(int param_0) {
- // NONMATCHING
+int daAlink_c::checkSubjectEnd(BOOL i_playSound) {
+ setDoStatus(0x12);
+
+ if (checkEventRun() || checkEquipAnime() || doTrigger() || checkSetItemTrigger(HAWK_EYE) || subjectCancelTrigger() || checkEndResetFlg0(ERFLG0_UNK_80000000) || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x2000)) {
+ if (i_playSound) {
+ seStartSystem(Z2SE_SUBJ_VIEW_OUT);
+ }
+
+ onResetFlg0(RFLG0_UNK_10000000);
+ return true;
+ }
+
+ return false;
}
/* 800CECE4-800CED48 0C9624 0064+00 1/1 0/0 0/0 .text searchPeepObj__9daAlink_cFP10fopAc_ac_cPv */
-void daAlink_c::searchPeepObj(fopAc_ac_c* param_0, void* param_1) {
- // NONMATCHING
+void daAlink_c::searchPeepObj(fopAc_ac_c* i_actor, void* i_data) {
+ if (fopAcM_GetName(i_actor) == PROC_KYTAG05) {
+ f32 var_f31 = current.pos.abs2(i_actor->current.pos);
+ if (var_f31 < field_0x3478) {
+ field_0x3478 = var_f31;
+ *(fopAc_ac_c**)i_data = i_actor;
+ }
+ }
}
/* 800CED48-800CED84 0C9688 003C+00 1/1 0/0 0/0 .text daAlink_searchPeepObj__FP10fopAc_ac_cPv */
-static int daAlink_searchPeepObj(fopAc_ac_c* param_0, void* param_1) {
- daAlink_getAlinkActorClass()->searchPeepObj(param_0, param_1);
+static int daAlink_searchPeepObj(fopAc_ac_c* i_actor, void* i_data) {
+ daAlink_getAlinkActorClass()->searchPeepObj(i_actor, i_data);
return 0;
}
@@ -3981,7 +4099,31 @@ int daAlink_c::procCoSubjectivityInit() {
/* 800CEE08-800CEF70 0C9748 0168+00 1/0 0/0 0/0 .text procCoSubjectivity__9daAlink_cFv */
int daAlink_c::procCoSubjectivity() {
- // NONMATCHING
+ onResetFlg0(RFLG0_UNK_4000000);
+ setTalkStatus();
+
+ if (orderTalk(1)) {
+ return 1;
+ }
+
+ if ((checkWolf() && checkWolfGroundSpecialMode()) || (!checkWolf() && checkGroundSpecialMode())) {
+ return 1;
+ }
+
+ if (checkSubjectEnd(FALSE) || (dComIfGp_checkPlayerStatus0(0, 0x200000) && checkSetItemTrigger(HAWK_EYE))) {
+ seStartSystem(Z2SE_SUBJ_VIEW_OUT);
+ checkWaitAction();
+ } else if (!checkWolf() && (checkItemAction() || checkItemChangeFromButton())) {
+ if (checkUpperReadyThrowAnime()) {
+ field_0x310a = mBodyAngle.x;
+ }
+
+ return 1;
+ } else {
+ setBodyAngleToCamera();
+ }
+
+ return 1;
}
/* 800CEF70-800CF018 0C98B0 00A8+00 1/1 0/0 0/0 .text procCoSwimSubjectivityInit__9daAlink_cFv */
@@ -4007,7 +4149,6 @@ int daAlink_c::procCoSwimSubjectivityInit() {
/* 800CF018-800CF100 0C9958 00E8+00 1/0 0/0 0/0 .text procCoSwimSubjectivity__9daAlink_cFv */
int daAlink_c::procCoSwimSubjectivity() {
- // NONMATCHING
onResetFlg0(RFLG0_UNK_4000000);
setTalkStatus();
@@ -4019,7 +4160,7 @@ int daAlink_c::procCoSwimSubjectivity() {
setSwimUpDownOffset();
}
- if (checkSubjectEnd(0)) {
+ if (checkSubjectEnd(FALSE)) {
seStartSystem(Z2SE_SUBJ_VIEW_OUT);
if (checkWolf()) {
@@ -4191,6 +4332,7 @@ extern "C" BOOL checkRideOn__9daAlink_cCFv(daAlink_c* this_) {
/* 800CFEC4-800CFEF4 0CA804 0030+00 1/1 0/0 0/0 .text dComIfGp_att_getCatghTarget__Fv */
extern "C" dAttCatch_c* dComIfGp_att_getCatghTarget__Fv() {
// NONMATCHING
+ return 0;
}
/* 800CFEF4-800CFF2C 0CA834 0038+00 1/1 0/0 0/0 .text mDoAud_setLinkHp__Fll */
diff --git a/src/d/actor/d_a_alink_swim.inc b/src/d/actor/d_a_alink_swim.inc
index 053aca698b..31dc7ef44e 100644
--- a/src/d/actor/d_a_alink_swim.inc
+++ b/src/d/actor/d_a_alink_swim.inc
@@ -255,11 +255,13 @@ int daAlink_c::checkNextActionSwim() {
/* 80102B1C-80103058 0FD45C 053C+00 3/3 0/0 0/0 .text checkSwimAction__9daAlink_cFi */
int daAlink_c::checkSwimAction(int param_0) {
// NONMATCHING
+ return 0;
}
/* 80103058-801032C8 0FD998 0270+00 7/7 0/0 0/0 .text checkSwimUpAction__9daAlink_cFv */
int daAlink_c::checkSwimUpAction() {
// NONMATCHING
+ return 0;
}
/* 801032C8-80103398 0FDC08 00D0+00 8/8 0/0 0/0 .text swimOutAfter__9daAlink_cFi */
@@ -922,6 +924,7 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
#else
int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
// NONMATCHING
+ return 0;
}
#endif
diff --git a/src/d/actor/d_a_alink_whistle.inc b/src/d/actor/d_a_alink_whistle.inc
index 157a3cafaf..cdd1d8727b 100644
--- a/src/d/actor/d_a_alink_whistle.inc
+++ b/src/d/actor/d_a_alink_whistle.inc
@@ -273,6 +273,7 @@ int daAlink_c::procGrassWhistleWait() {
#else
int daAlink_c::procGrassWhistleWait() {
// NONMATCHING
+ return 0;
}
#endif
@@ -303,6 +304,7 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
*/
int daAlink_c::procCoHorseCallWait() {
// NONMATCHING
+ return 0;
}
/* 801121B4-80112220 10CAF4 006C+00 1/0 0/0 0/0 .text procHawkCatchInit__9daAlink_cFv */
@@ -349,4 +351,5 @@ int daAlink_c::procHawkSubjectInit() {
/* 80112304-8011243C 10CC44 0138+00 1/0 0/0 0/0 .text procHawkSubject__9daAlink_cFv */
int daAlink_c::procHawkSubject() {
// NONMATCHING
+ return 0;
}
diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc
index a1a3476f9b..3019e26382 100644
--- a/src/d/actor/d_a_alink_wolf.inc
+++ b/src/d/actor/d_a_alink_wolf.inc
@@ -1251,6 +1251,7 @@ int daAlink_c::procWolfServiceWaitInit(int param_0) {
*/
int daAlink_c::procWolfServiceWait() {
// NONMATCHING
+ return 0;
}
/* 8012CF68-8012CFEC 1278A8 0084+00 1/1 0/0 0/0 .text procWolfTiredWaitInit__9daAlink_cFv
@@ -3199,6 +3200,7 @@ int daAlink_c::setWolfRopePosY() {
#else
int daAlink_c::setWolfRopePosY() {
// NONMATCHING
+ return 0;
}
#endif
@@ -3313,6 +3315,7 @@ int daAlink_c::procWolfRopeMoveInit(int param_0, int param_1) {
/* 80131DA0-80132738 12C6E0 0998+00 1/0 0/0 0/0 .text procWolfRopeMove__9daAlink_cFv */
int daAlink_c::procWolfRopeMove() {
// NONMATCHING
+ return 0;
}
/* 80132738-80132914 12D078 01DC+00 5/5 0/0 0/0 .text procWolfRopeHangInit__9daAlink_cFi
@@ -3375,6 +3378,7 @@ int daAlink_c::procWolfRopeHangInit(int param_0) {
/* 80132914-80132D68 12D254 0454+00 1/0 0/0 0/0 .text procWolfRopeHang__9daAlink_cFv */
int daAlink_c::procWolfRopeHang() {
// NONMATCHING
+ return 0;
}
/* 80132D68-80132E88 12D6A8 0120+00 1/1 0/0 0/0 .text procWolfRopeTurnInit__9daAlink_cFv
@@ -3402,6 +3406,7 @@ int daAlink_c::procWolfRopeTurnInit() {
/* 80132E88-80133054 12D7C8 01CC+00 1/0 0/0 0/0 .text procWolfRopeTurn__9daAlink_cFv */
int daAlink_c::procWolfRopeTurn() {
// NONMATCHING
+ return 0;
}
/* 80133054-80133164 12D994 0110+00 1/1 0/0 0/0 .text procWolfRopeStaggerInit__9daAlink_cFi */
@@ -3439,6 +3444,7 @@ int daAlink_c::procWolfRopeStaggerInit(int param_0) {
*/
int daAlink_c::procWolfRopeStagger() {
// NONMATCHING
+ return 0;
}
/* 8013384C-80133930 12E18C 00E4+00 1/1 0/0 0/0 .text procWolfRopeSubjectivityInit__9daAlink_cFv
@@ -3473,6 +3479,7 @@ int daAlink_c::procWolfRopeSubjectivityInit() {
/* 80133930-80133D6C 12E270 043C+00 1/0 0/0 0/0 .text procWolfRopeSubjectivity__9daAlink_cFv */
int daAlink_c::procWolfRopeSubjectivity() {
// NONMATCHING
+ return 0;
}
/* 80133D6C-80133EF0 12E6AC 0184+00 0/0 0/0 1/1 .text getWolfTagJumpTime__9daAlink_cCFv
@@ -3532,11 +3539,13 @@ const cXyz* daAlink_c::checkMidnaLockJumpPoint() const {
* procWolfTagJumpInit__9daAlink_cFP10fopAc_ac_c */
int daAlink_c::procWolfTagJumpInit(fopAc_ac_c* param_0) {
// NONMATCHING
+ return 0;
}
/* 80134838-80134DB8 12F178 0580+00 1/0 0/0 0/0 .text procWolfTagJump__9daAlink_cFv */
int daAlink_c::procWolfTagJump() {
// NONMATCHING
+ return 0;
}
/* 80134DB8-80134EBC 12F6F8 0104+00 1/1 0/0 0/0 .text
@@ -3792,6 +3801,7 @@ int daAlink_c::procWolfHangReady() {
/* 801356F0-80135AF4 130030 0404+00 3/3 0/0 0/0 .text procWolfHangWallCatchInit__9daAlink_cFi */
int daAlink_c::procWolfHangWallCatchInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 80135AF4-80135CD8 130434 01E4+00 1/0 0/0 0/0 .text procWolfHangWallCatch__9daAlink_cFv
@@ -3946,6 +3956,7 @@ void daAlink_c::setWolfHeadDamage() {
* procWolfDamageInit__9daAlink_cFP12dCcD_GObjInf */
int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) {
// NONMATCHING
+ return 0;
}
/* 80136508-80136624 130E48 011C+00 1/0 0/0 0/0 .text procWolfDamage__9daAlink_cFv */
@@ -3984,12 +3995,14 @@ int daAlink_c::procWolfDamage() {
*/
int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) {
// NONMATCHING
+ return 0;
}
/* 801369E4-80136C18 131324 0234+00 1/0 0/0 0/0 .text procWolfLargeDamageUp__9daAlink_cFv
*/
int daAlink_c::procWolfLargeDamageUp() {
// NONMATCHING
+ return 0;
}
/* 80136C18-80136DE4 131558 01CC+00 1/1 0/0 0/0 .text procWolfLandDamageInit__9daAlink_cFi */
@@ -4317,12 +4330,14 @@ int daAlink_c::procWolfLieMoveInit(int param_0) {
#else
int daAlink_c::procWolfLieMoveInit(int param_0) {
// NONMATCHING
+ return 0;
}
#endif
/* 801377F0-80137C90 132130 04A0+00 1/0 0/0 0/0 .text procWolfLieMove__9daAlink_cFv */
int daAlink_c::procWolfLieMove() {
// NONMATCHING
+ return 0;
}
/* 80137C90-80137D4C 1325D0 00BC+00 1/1 0/0 0/0 .text procWolfLieAutoMoveInit__9daAlink_cFiP4cXyz
@@ -4353,6 +4368,7 @@ int daAlink_c::procWolfLieAutoMoveInit(int param_0, cXyz* param_1) {
#else
int daAlink_c::procWolfLieAutoMoveInit(int param_0, cXyz* param_1) {
// NONMATCHING
+ return 0;
}
#endif
@@ -4360,6 +4376,7 @@ int daAlink_c::procWolfLieAutoMoveInit(int param_0, cXyz* param_1) {
*/
int daAlink_c::procWolfLieAutoMove() {
// NONMATCHING
+ return 0;
}
/* 80138000-80138188 132940 0188+00 2/2 0/0 0/0 .text setSpeedAndAngleSwimWolf__9daAlink_cFv */
@@ -5184,6 +5201,7 @@ int daAlink_c::procWolfRollAttackMove() {
/* 80139DE0-8013A4F8 134720 0718+00 5/5 0/0 0/0 .text procWolfJumpAttackInit__9daAlink_cFi */
int daAlink_c::procWolfJumpAttackInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 8013A4F8-8013A7EC 134E38 02F4+00 1/0 0/0 0/0 .text procWolfJumpAttack__9daAlink_cFv */
@@ -5874,6 +5892,7 @@ int daAlink_c::procWolfLockAttackInit(int param_0) {
#else
int daAlink_c::procWolfLockAttackInit(int param_0) {
// NONMATCHING
+ return 0;
}
#endif
@@ -6866,16 +6885,19 @@ int daAlink_c::procWolfChainWait() {
/* 8013ED44-8013F1F0 139684 04AC+00 1/1 0/0 0/0 .text procWolfDigInit__9daAlink_cFv */
int daAlink_c::procWolfDigInit() {
// NONMATCHING
+ return 0;
}
/* 8013F1F0-8013F4A8 139B30 02B8+00 1/0 0/0 0/0 .text procWolfDig__9daAlink_cFv */
int daAlink_c::procWolfDig() {
// NONMATCHING
+ return 0;
}
/* 8013F4A8-8013F7C4 139DE8 031C+00 2/2 0/0 0/0 .text procWolfDigThroughInit__9daAlink_cFi */
int daAlink_c::procWolfDigThroughInit(int param_0) {
// NONMATCHING
+ return 0;
}
/* 8013F7C4-8013F90C 13A104 0148+00 1/0 0/0 0/0 .text procWolfDigThrough__9daAlink_cFv */