d_a_alink canoe almost done (#2210)

* d_a_alink canoe almost done

* ironball mostly done

* alink_iceleaf done
This commit is contained in:
TakaRikka 2024-10-15 14:03:04 -07:00 committed by GitHub
parent 9f58034704
commit ae77e60de8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 2984 additions and 229 deletions

View File

@ -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); }

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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,

View File

@ -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();

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 */

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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();
/* 80112C80-80112C84 10D5C0 0004+00 2/2 2/2 0/0 .text __ct__5csXyzFv */
extern "C" void __ct__5csXyzFv() {}
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);
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;

View File

@ -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 */

View File

@ -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

View File

@ -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;
}

View File

@ -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 */