d_a_horse mostly done (#2284)

* checkpoint

* d_a_horse mostly done

* some horse doc
This commit is contained in:
TakaRikka
2025-01-09 15:45:46 +02:00
committed by GitHub
parent 0cdacf4bff
commit 36daa25884
37 changed files with 5151 additions and 3078 deletions
+29 -2
View File
@@ -3244,7 +3244,7 @@ public:
bool checkHorseTiredAnime() const { return checkUpperAnime(0x263); }
bool checkHorseSwordUpAnime() const { return checkUpperAnime(0xCC); }
bool checkHorseUnderItemAnime() const { return checkUnderAnime(0x19); }
bool checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); }
BOOL checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); }
bool checkIronBallPreSwingAnime() const { return checkUpperAnime(0x19A); }
bool checkIronBallSwingAnime() const { return checkUpperAnime(0x19B); }
bool checkDashDamageAnime() const { return checkUpperAnime(0xAD); }
@@ -3382,6 +3382,18 @@ public:
return var_r4;
}
BOOL checkSlideMode() {
return mProcID == PROC_SLIDE ||
mProcID == PROC_SLIDE_LAND ||
mProcID == PROC_WOLF_SLIDE_READY ||
mProcID == PROC_WOLF_SLIDE_LAND ||
mProcID == PROC_WOLF_SLIDE;
}
BOOL checkHorseGetItem() const {
return (mProcID == PROC_GET_ITEM && checkHorseRide()) || mProcID == PROC_HORSE_GET_KEY;
}
bool checkFisingRodJewl() const {
return (mEquipItem == 0x5C || mEquipItem == 0x5F) || mEquipItem == 0x5E;
}
@@ -3418,7 +3430,10 @@ public:
bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; }
bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; }
bool checkHorseHangMode() const { return mProcID == PROC_HORSE_HANG; }
bool checkHorseBackInput() const { return mProcID == PROC_HORSE_WAIT; }
bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; }
bool checkHorseTurnMode() const { return mProcID == PROC_HORSE_TURN; }
bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; }
bool checkSpinnerRideWait() const {
return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0;
@@ -3519,6 +3534,8 @@ public:
int getIronBallHandChainNum() const { return mItemMode; }
const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; }
fopAc_ac_c* getAtnActor() { return mTargetedActor; }
void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); }
BOOL checkStartFall() { return getStartMode() == 3; }
@@ -3528,6 +3545,16 @@ public:
BOOL checkWindSpeedMoveXZ() const { return mWindSpeed.abs2XZ() > 1.0f; }
BOOL checkHorseRideReady() const { return checkHorseRideOn() || checkHorseGetOffMode(); }
void getHorseReinCenterLeftPos(cXyz* o_pos) {
mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftInSidePos, o_pos);
}
void getHorseReinCenterRightPos(cXyz* o_pos) {
mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos);
}
inline bool checkWindSpeedOnXZ() const;
inline void startRestartRoomFromOut(int, u32, int);
inline u16 getReadyItem();
@@ -4199,7 +4226,7 @@ struct daAlinkHIO_anm_c {
/* 0x04 */ f32 mSpeed;
/* 0x08 */ f32 mStartFrame;
/* 0x0C */ f32 mInterpolation;
/* 0x10 */ f32 mCheckFrame; // name maybe wrong
/* 0x10 */ f32 mCancelFrame;
}; // size: 0x14
struct daAlinkHIO_basic_c1 {
+1 -1
View File
@@ -54,7 +54,7 @@ public:
/* 8065C508 */ void setCowInCage();
/* 8065C680 */ void setEnterCount();
/* 8065C70C */ void action_enter();
/* 8065CFBC */ void isAngry();
/* 8065CFBC */ bool isAngry();
/* 8065D03C */ void isGuardFad();
/* 8065D0B8 */ void setAngryHit();
/* 8065D17C */ void checkBeforeBgAngry(s16);
File diff suppressed because it is too large Load Diff
+3
View File
@@ -59,8 +59,11 @@ public:
/* 80848B64 */ void draw();
MtxP getRightHandMtx() { return mpZeldaModel->getAnmMtx(22); }
MtxP getRightFingerMtx() { return mpZeldaModel->getAnmMtx(23); }
u8 checkBowMode() const { return field_0x6d8; }
void setDamageInit() { field_0x6db = 1; }
u8 checkSingleRide() const { return field_0x6df; }
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mpZeldaModel;
+3 -2
View File
@@ -113,8 +113,8 @@ private:
class daPy_frameCtrl_c : public J3DFrameCtrl {
public:
/* 80140D24 */ ~daPy_frameCtrl_c();
/* 80140D80 */ daPy_frameCtrl_c();
/* 80140D24 */ virtual ~daPy_frameCtrl_c() {}
/* 80140D80 */ daPy_frameCtrl_c() {}
bool checkAnmEnd();
void updateFrame();
void setFrameCtrl(u8, short, short, f32, f32);
@@ -929,6 +929,7 @@ public:
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
u32 getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); }
u32 checkBoarSingleBattleFirst() const { return checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); }
u32 checkBoarSingleBattleSecond() const { return checkNoResetFlg2(FLG2_UNK_1000000); }
void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); }
bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); }
+10
View File
@@ -25,6 +25,16 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) >> 0x10) & 0xFF; }
void setSceneChangeOK() { mSceneChangeOK = true; }
BOOL checkArea(const cXyz* param_0) {
cXyz spC;
mDoMtx_multVec(mMatrix, param_0, &spC);
if (spC.y >= 0.0f && spC.y <= scale.y && fabsf(spC.x) <= scale.x && fabsf(spC.z) <= scale.z) {
return TRUE;
}
return FALSE;
}
/* 0x568 */ Mtx mMatrix;
/* 0x598 */ u8 field_0x598;
/* 0x599 */ bool mSceneChangeOK;
+6
View File
@@ -16,6 +16,12 @@ public:
daTagHstop_c* getNext() { return mNext; }
bool getActiveFlg() const { return mActive; }
void onTagStop() {
if (field_0x573 == 0) {
field_0x573 = 1;
}
}
static daTagHstop_c* m_top;
static dMsgFlow_c m_msgFlow;