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
24 changed files with 2984 additions and 229 deletions
+1
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); }
+26 -21
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 {
+20 -1
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;
+4 -1
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;
+2
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;
+8
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,
+4
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();