mirror of https://github.com/zeldaret/tp.git
alink horse mostly done (#2229)
* d_a_horse work * more work on alink horse * finish alink horse * little work on d_a_alink_link
This commit is contained in:
parent
7f2e42ba19
commit
36519ddf15
|
@ -23,6 +23,7 @@ struct J3DTransformInfo {
|
|||
return *this;
|
||||
} */
|
||||
|
||||
#ifdef __MWERKS__
|
||||
inline J3DTransformInfo& operator=(const register J3DTransformInfo& b) {
|
||||
register const J3DTransformInfo& var_r31 = b;
|
||||
register J3DTransformInfo& var_r30 = *this;
|
||||
|
@ -46,6 +47,7 @@ struct J3DTransformInfo {
|
|||
}
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
}; // Size: 0x20
|
||||
|
||||
extern J3DTransformInfo const j3dDefaultTransformInfo;
|
||||
|
|
|
@ -676,6 +676,10 @@ public:
|
|||
FTANM_UNK_9 = 9,
|
||||
FTANM_UNK_13 = 0x13,
|
||||
FTANM_UNK_14 = 0x14,
|
||||
FTANM_UNK_20 = 0x20,
|
||||
FTANM_UNK_21 = 0x21,
|
||||
FTANM_UNK_22 = 0x22,
|
||||
FTANM_UNK_23 = 0x23,
|
||||
FTANM_UNK_27 = 0x27,
|
||||
FTANM_UNK_2D = 0x2D,
|
||||
FTANM_UNK_48 = 0x48,
|
||||
|
@ -1677,8 +1681,8 @@ public:
|
|||
/* 800CB480 */ bool checkSwordDraw();
|
||||
/* 800CB53C */ bool checkShieldDraw();
|
||||
/* 800CB5F8 */ bool checkItemDraw();
|
||||
/* 800CB694 */ void initShadowScaleLight();
|
||||
/* 800CBA38 */ void moveShadowScaleLight();
|
||||
/* 800CB694 */ int initShadowScaleLight();
|
||||
/* 800CBA38 */ int moveShadowScaleLight();
|
||||
/* 800CBC18 */ void shadowDraw();
|
||||
/* 800CC25C */ void modelCalc(J3DModel*);
|
||||
/* 800CC298 */ void basicModelDraw(J3DModel*);
|
||||
|
@ -1709,7 +1713,7 @@ public:
|
|||
/* 800D014C */ void setMidnaTalkStatus(u8 status) {
|
||||
dComIfGp_setZStatus(status, 0);
|
||||
}
|
||||
/* 800D0164 */ void set3DStatus(u8, u8);
|
||||
/* 800D0164 */ void set3DStatus(u8 status, u8 direction) { dComIfGp_set3DStatus(status, direction, 0); }
|
||||
/* 800D2684 */ void checkCutTurnCharge();
|
||||
/* 800D0E08 */ void checkLightSwordMtrl();
|
||||
/* 800D0E98 */ BOOL checkSwordEquipAnime() const;
|
||||
|
@ -2093,14 +2097,14 @@ public:
|
|||
/* 800ECD90 */ BOOL checkHorseNotDamageReaction() const;
|
||||
/* 800ECDC4 */ BOOL checkHorseWaitLashAnime() const;
|
||||
/* 800ECDEC */ BOOL checkHorseReinLeftOnly() const;
|
||||
/* 800ECE10 */ void getReinHandType() const;
|
||||
/* 800ECE10 */ int getReinHandType() const;
|
||||
/* 800ECF04 */ BOOL checkHorseLieAnime() const;
|
||||
/* 800ECF5C */ BOOL checkHorseSubjectivity() const;
|
||||
/* 800ECF9C */ void setHorseSwordUpAnime();
|
||||
/* 800ECFF4 */ void setHorseTurnUpperAnime(int);
|
||||
/* 800ED074 */ BOOL checkHorseNoUpperAnime() const;
|
||||
/* 800ED0D4 */ void getHorseReinHandPos(cXyz*, cXyz*);
|
||||
/* 800ED1F0 */ void checkHorseNotGrab() const;
|
||||
/* 800ED1F0 */ BOOL checkHorseNotGrab() const;
|
||||
/* 800ED310 */ void setHorseStirrup();
|
||||
/* 800ED4B8 */ void changeBoarRunRide();
|
||||
/* 800ED4DC */ int setSyncHorsePos();
|
||||
|
@ -2127,7 +2131,7 @@ public:
|
|||
/* 800EF394 */ void horseGetOffEnd();
|
||||
/* 800EF450 */ int checkNextActionHorse();
|
||||
/* 800EF598 */ BOOL checkHorseGetOff();
|
||||
/* 800EF6B0 */ void checkHorseGetOffAndSetDoStatus();
|
||||
/* 800EF6B0 */ int checkHorseGetOffAndSetDoStatus();
|
||||
/* 800EF884 */ int setHorseGetOff(int);
|
||||
/* 800EF95C */ int procHorseRideInit();
|
||||
/* 800EFDC4 */ int procHorseRide();
|
||||
|
@ -4115,12 +4119,12 @@ struct daAlink_cutParamTbl {
|
|||
}; // Size: 0x10
|
||||
|
||||
struct daAlink_cutHorseParamTbl {
|
||||
/* 0x0 */ int field_0x0;
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
/* 0x6 */ u16 field_0x6;
|
||||
/* 0x0 */ daAlink_c::daAlink_FTANM m_faceanm;
|
||||
/* 0x4 */ u16 m_upperAnm;
|
||||
/* 0x6 */ u16 m_faceBtk;
|
||||
/* 0x8 */ u8 field_0x8;
|
||||
/* 0x9 */ u8 field_0x9;
|
||||
/* 0xA */ u8 field_0xa;
|
||||
/* 0xA */ u8 m_cutType;
|
||||
}; // Size: 0xC
|
||||
|
||||
struct daAlinkHIO_anm_c {
|
||||
|
@ -4446,56 +4450,32 @@ public:
|
|||
static daAlinkHIO_cutTurn_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutLA_c1 {
|
||||
class daAlinkHIO_hoCut_c1 {
|
||||
public:
|
||||
/* 0x00 */ daAlinkHIO_anm_c field_0x0;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
}; // Size: 0x20
|
||||
/* 0x00 */ daAlinkHIO_anm_c mCutAnm;
|
||||
/* 0x14 */ f32 mAttackStartFrame;
|
||||
/* 0x18 */ f32 mAttackEndFrame;
|
||||
/* 0x1C */ f32 mAfterCutMorf;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutLA_c0 {
|
||||
public:
|
||||
static daAlinkHIO_hoCutLA_c1 const m;
|
||||
static daAlinkHIO_hoCut_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutLB_c1 {
|
||||
public:
|
||||
/* 0x00 */ daAlinkHIO_anm_c field_0x0;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
}; // Size: 0x20
|
||||
|
||||
class daAlinkHIO_hoCutLB_c0 {
|
||||
public:
|
||||
static daAlinkHIO_hoCutLB_c1 const m;
|
||||
static daAlinkHIO_hoCut_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutRA_c1 {
|
||||
public:
|
||||
/* 0x00 */ daAlinkHIO_anm_c field_0x0;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
}; // Size: 0x20
|
||||
|
||||
class daAlinkHIO_hoCutRA_c0 {
|
||||
public:
|
||||
static daAlinkHIO_hoCutRA_c1 const m;
|
||||
static daAlinkHIO_hoCut_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutRB_c1 {
|
||||
public:
|
||||
/* 0x00 */ daAlinkHIO_anm_c field_0x0;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
}; // Size: 0x20
|
||||
|
||||
class daAlinkHIO_hoCutRB_c0 {
|
||||
public:
|
||||
static daAlinkHIO_hoCutRB_c1 const m;
|
||||
static daAlinkHIO_hoCut_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_hoCutCharge_c1 {
|
||||
|
|
|
@ -35,6 +35,9 @@ public:
|
|||
f32 nowAnimeFrame() const { return field_0x5e0->getFrame(); }
|
||||
s16 getWaitRollAngle() const { return mWaitRollAngle; }
|
||||
bool checkGetOff() const { return speedF < 3.0f; }
|
||||
f32 rideSpeedRate() const { return speedF / mSpeedRate; }
|
||||
f32 getAnimeFrameRate() { return field_0x5e0->getFrame() / field_0x5e0->getEndFrame(); }
|
||||
BOOL checkAnmLoopFrame() { return field_0x5e0->checkFrame(0.0f); }
|
||||
|
||||
J3DModel* getModel() {
|
||||
if (field_0x5e0 != NULL) {
|
||||
|
@ -188,4 +191,4 @@ class daE_WB_HIO_c {
|
|||
};
|
||||
|
||||
|
||||
#endif /* D_A_E_WB_H */
|
||||
#endif /* D_A_E_WB_H */
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "d/d_bg_s_lin_chk.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_msg_flow.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
|
||||
class daHorseRein_c {
|
||||
public:
|
||||
|
@ -47,31 +48,37 @@ class daHorse_c : public fopAc_ac_c {
|
|||
public:
|
||||
enum daHorse_ERFLG0 {
|
||||
/* 0x001 */ ERFLG0_UNK_1 = 0x1,
|
||||
/* 0x010 */ MOVE_ACCEPT = 0x10,
|
||||
/* 0x080 */ RIDE_RUN_FLG = 0x80,
|
||||
/* 0x100 */ CUT_TURN_CANCEL = 0x100,
|
||||
/* 0x010 */ ERFLG0_MOVE_ACCEPT = 0x10,
|
||||
/* 0x080 */ ERFLG0_RIDE_RUN_FLG = 0x80,
|
||||
/* 0x100 */ ERFLG0_CUT_TURN_CANCEL = 0x100,
|
||||
|
||||
ERFLG0_UNK_18 = 0x18,
|
||||
};
|
||||
|
||||
enum daHorse_RFLG0 {
|
||||
/* 0x02 */ ENEMY_SEARCH = 2,
|
||||
/* 0x08 */ LASH_DASH_START = 8,
|
||||
/* 0x10 */ TURN_STAND = 0x10,
|
||||
/* 0x40 */ TURN_STAND_CAMERA = 0x40,
|
||||
/* 0x02 */ RFLG0_ENEMY_SEARCH = 2,
|
||||
/* 0x08 */ RFLG0_LASH_DASH_START = 8,
|
||||
/* 0x10 */ RFLG0_TURN_STAND = 0x10,
|
||||
/* 0x40 */ RFLG0_TURN_STAND_CAMERA = 0x40,
|
||||
};
|
||||
|
||||
enum daHorse_FLG0 {
|
||||
/* 0x00000020 */ RODEO_LEFT = 0x20,
|
||||
/* 0x00000040 */ RIDE_START_FLG = 0x40,
|
||||
/* 0x00000080 */ NO_DRAW_WAIT = 0x80,
|
||||
/* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000,
|
||||
/* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000,
|
||||
/* 0x00000020 */ FLG0_RODEO_LEFT = 0x20,
|
||||
/* 0x00000040 */ FLG0_RIDE_START_FLG = 0x40,
|
||||
/* 0x00000080 */ FLG0_NO_DRAW_WAIT = 0x80,
|
||||
/* 0x00010000 */ FLG0_PLAYER_BACK_RIDE_LASH = 0x10000,
|
||||
/* 0x00400000 */ FLG0_UNK_400000 = 0x400000,
|
||||
/* 0x20000000 */ FLG0_TURN_CANCEL_KEEP = 0x20000000,
|
||||
/* 0x80000000 */ FLG0_RODEO_MODE = 0x80000000
|
||||
};
|
||||
|
||||
fopAc_ac_c* getZeldaActor();
|
||||
/* 807E27BC */ void cancelOriginalDemo();
|
||||
|
||||
void cancelOriginalDemo() {
|
||||
field_0x16b8 = 2;
|
||||
field_0x1740 = 1;
|
||||
}
|
||||
|
||||
/* 807E27F8 */ void onDemoJumpDistance(f32, f32);
|
||||
/* 807E28B8 */ void changeDemoPos0(cXyz const*);
|
||||
/* 807E28E0 */ void setHorsePosAndAngle(cXyz const*, s16);
|
||||
|
@ -166,7 +173,7 @@ public:
|
|||
bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; }
|
||||
bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return mResetStateFlg0 & flag; }
|
||||
bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) const { return mEndResetStateFlg0 & flag; }
|
||||
bool checkStateFlg0(daHorse_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
u32 checkStateFlg0(daHorse_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
f32 getNormalMaxSpeedF() { return mNormalMaxSpeedF; }
|
||||
f32 getLashMaxSpeedF() { return mLashMaxSpeedF; }
|
||||
void changeDemoMoveAngle(s16 angle) { mDemoMoveAngle = angle; }
|
||||
|
@ -179,7 +186,8 @@ public:
|
|||
void onStateFlg0(daHorse_FLG0 flag) { mStateFlg0 |= flag; }
|
||||
void offStateFlg0(daHorse_FLG0 flag) { mStateFlg0 &= ~flag; }
|
||||
void onEndResetStateFlg0(daHorse_ERFLG0 i_flag) { mEndResetStateFlg0 |= i_flag;}
|
||||
void offNoDrawWait() { offStateFlg0(NO_DRAW_WAIT); }
|
||||
void offEndResetStateFlg0(daHorse_ERFLG0 i_flag) { mEndResetStateFlg0 &= ~i_flag;}
|
||||
void offNoDrawWait() { offStateFlg0(FLG0_NO_DRAW_WAIT); }
|
||||
bool checkSpecialWallHit(const cXyz& param_0) { return (this->*mpCheckSpecialWallHitFn)(param_0); }
|
||||
MtxP getSaddleMtx() { return field_0x570->getAnmMtx(21); }
|
||||
MtxP getRootMtx() { return field_0x570->getAnmMtx(0); }
|
||||
|
@ -193,21 +201,23 @@ public:
|
|||
|
||||
daHoZelda_c* i_getZeldaActor() { return (daHoZelda_c*)mZeldaActorKeep.getActor(); }
|
||||
|
||||
bool checkTurnStandCamera() const { return checkResetStateFlg0(TURN_STAND_CAMERA); }
|
||||
bool checkTurnStand() const { return checkResetStateFlg0(TURN_STAND); }
|
||||
bool checkRodeoMode() const { return checkStateFlg0(FLG0_RODEO_MODE); }
|
||||
bool checkCutTurnCancel() const { return checkEndResetStateFlg0(CUT_TURN_CANCEL); }
|
||||
bool checkTurnCancelKeep() const { return checkStateFlg0(TURN_CANCEL_KEEP); }
|
||||
bool checkTurn() const { return field_0x16b4 == 3 && field_0x1720 == 0; }
|
||||
bool checkStop() const { return field_0x16b4 == 2; }
|
||||
bool checkTurnStandCamera() const { return checkResetStateFlg0(RFLG0_TURN_STAND_CAMERA); }
|
||||
bool checkTurnStand() const { return checkResetStateFlg0(RFLG0_TURN_STAND); }
|
||||
u32 checkRodeoMode() const { return checkStateFlg0(FLG0_RODEO_MODE); }
|
||||
bool checkCutTurnCancel() const { return checkEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
bool checkTurnCancelKeep() const { return checkStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
BOOL checkRodeoLeft() const { return checkStateFlg0(FLG0_RODEO_LEFT); }
|
||||
BOOL checkTurn() const { return field_0x16b4 == 3 && field_0x1720 == 0; }
|
||||
BOOL checkStop() const { return field_0x16b4 == 2; }
|
||||
bool checkJump() const { return field_0x16b4 == 4; }
|
||||
bool checkWait() const { return field_0x16b4 == 0; }
|
||||
bool checkLand() const { return field_0x16b4 == 5 && field_0x171a == 0; }
|
||||
bool checkGetOff() const { return fabsf(speedF) < 3.0f; }
|
||||
bool checkEnemySearch() { return checkResetStateFlg0(ENEMY_SEARCH); }
|
||||
bool checkEnemySearch() { return checkResetStateFlg0(RFLG0_ENEMY_SEARCH); }
|
||||
bool checkOriginalDemo() const { return field_0x16b8 == 3; }
|
||||
s16 checkCowHit() const { return mCowHit; }
|
||||
s16 getCowHitAngle() const { return mCowHitAngle; }
|
||||
u8 getRodeoPointCnt() const { return mRodeoPointCnt; }
|
||||
|
||||
void onTagJump(f32 param_0, f32 param_1, f32 param_2) {
|
||||
field_0x1768 = param_0;
|
||||
|
@ -216,10 +226,20 @@ public:
|
|||
onEndResetStateFlg0(ERFLG0_UNK_1);
|
||||
}
|
||||
|
||||
void onMoveAccept() { onEndResetStateFlg0(MOVE_ACCEPT); }
|
||||
void onMoveAccept() { onEndResetStateFlg0(ERFLG0_MOVE_ACCEPT); }
|
||||
void onPlayerLash() { onEndResetStateFlg0(ERFLG0_UNK_18); }
|
||||
void offPlayerBackRideLash() { offStateFlg0(PLAYER_BACK_RIDE_LASH); }
|
||||
void offPlayerBackRideLash() { offStateFlg0(FLG0_PLAYER_BACK_RIDE_LASH); }
|
||||
void onRodeoMode() { onStateFlg0(FLG0_RODEO_MODE); }
|
||||
void onRideStartFlg() { onStateFlg0(FLG0_RIDE_START_FLG); }
|
||||
void onRideRunFlg() { onEndResetStateFlg0(ERFLG0_RIDE_RUN_FLG); }
|
||||
void onPlayerBackRideLash() { onStateFlg0(FLG0_PLAYER_BACK_RIDE_LASH); }
|
||||
void onCutTurnCancel() { onEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
void offCutTurnCancel() { offEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
void onTurnCancelKeep() { onStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
void offTurnCancelKeep() { offStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
|
||||
BOOL checkTurnCancelFrame() const { return checkTurn() && field_0x177C < field_0x5b0[0].getFrame(); }
|
||||
BOOL checkStopCancelFrame() const { return checkStop() && field_0x177C < field_0x5b0[0].getFrame(); }
|
||||
|
||||
void initHorseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
|
@ -228,9 +248,22 @@ public:
|
|||
field_0x570->calc();
|
||||
}
|
||||
|
||||
void offRodeoMode() {
|
||||
offStateFlg0(daHorse_FLG0(FLG0_RODEO_MODE | FLG0_UNK_400000));
|
||||
field_0x16bc = 0;
|
||||
mDoAud_subBgmStop();
|
||||
}
|
||||
|
||||
void setSpeedF(f32 i_speed) { speedF = i_speed; }
|
||||
void setWalkSpeedF() { speedF = field_0x1764; }
|
||||
|
||||
MtxP getLeftStirrupMtx() { return field_0x570->getAnmMtx(0x17); }
|
||||
MtxP getRightStirrupMtx() { return field_0x570->getAnmMtx(0x19); }
|
||||
void calcWeightEnvMtx() { field_0x570->calcWeightEnvelopeMtx(); }
|
||||
|
||||
void setReinPosNormal() { (this->*mpSetReinPosNormalFn)(); }
|
||||
void setReinPosHand(int param_0) { (this->*mpSetReinPosHandFn)(param_0); }
|
||||
|
||||
static u8 const m_footJointTable[8];
|
||||
static f32 const m_callLimitDistance2;
|
||||
|
||||
|
@ -266,7 +299,8 @@ public:
|
|||
/* 0x16B8 */ u8 field_0x16b8;
|
||||
/* 0x16B9 */ u8 field_0x16b9[2];
|
||||
/* 0x16BB */ u8 mRodeoPointCnt;
|
||||
/* 0x16BC */ u8 field_0x16bc[0x16C4 - 0x16BC];
|
||||
/* 0x16BC */ u8 field_0x16bc;
|
||||
/* 0x16BD */ u8 field_0x16bd[0x16C4 - 0x16BD];
|
||||
/* 0x16C4 */ u16 mAnmIdx[3];
|
||||
/* 0x16CA */ u8 field_0x16ca[0x16F2 - 0x16CA];
|
||||
/* 0x16F2 */ s16 mAimNeckAngleY;
|
||||
|
@ -294,7 +328,9 @@ public:
|
|||
/* 0x1768 */ f32 field_0x1768;
|
||||
/* 0x176C */ f32 field_0x176c;
|
||||
/* 0x1770 */ f32 field_0x1770;
|
||||
/* 0x1774 */ u8 field_0x1774[0x14];
|
||||
/* 0x1774 */ u8 field_0x1774[0x177C - 0x1774];
|
||||
/* 0x177C */ f32 field_0x177C;
|
||||
/* 0x1780 */ u8 field_0x1780[0x1788 - 0x1780];
|
||||
/* 0x1788 */ f32 mDemoStickR;
|
||||
/* 0x178C */ f32 mNormalMaxSpeedF;
|
||||
/* 0x1790 */ f32 mLashMaxSpeedF;
|
||||
|
|
|
@ -291,10 +291,9 @@ public:
|
|||
FLG2_UNK_4000000 = 0x4000000,
|
||||
FLG2_UNK_2080000 = 0x2080000,
|
||||
FLG2_UNK_2000000 = 0x2000000,
|
||||
FLG2_BOAR_SINGLE_BATTLE = 0x1800000,
|
||||
FLG2_UNK_8000000 = 0x8000000,
|
||||
FLG2_UNK_1000000 = 0x1000000,
|
||||
FLG2_UNK_800000 = 0x800000,
|
||||
FLG2_BOAR_SINGLE_BATTLE = 0x800000,
|
||||
FLG2_STATUS_WINDOW_DRAW = 0x400000,
|
||||
FLG2_UNK_280000 = 0x280000,
|
||||
FLG2_UNK_200000 = 0x200000,
|
||||
|
@ -307,8 +306,10 @@ public:
|
|||
FLG2_UNK_4000 = 0x4000,
|
||||
FLG2_UNK_2000 = 0x2000,
|
||||
FLG2_UNK_1000 = 0x1000,
|
||||
FLG2_UNK_800 = 0x800,
|
||||
FLG2_PLAYER_SHADOW = 0x400,
|
||||
FLG2_UNK_200 = 0x200,
|
||||
FLG2_UNK_100 = 0x100,
|
||||
FLG2_UNK_80 = 0x80,
|
||||
FLG2_WOLF_ENEMY_HANG_BITE = 0x40,
|
||||
FLG2_WOLF_ENEMY_LEFT_THROW = 0x20,
|
||||
|
@ -368,6 +369,7 @@ public:
|
|||
ERFLG0_BEE_FOLLOW = 0x400000,
|
||||
ERFLG0_UNK_200000 = 0x200000,
|
||||
ERFLG0_UNK_100000 = 0x100000,
|
||||
ERFLG0_UNK_80000 = 0x80000,
|
||||
ERFLG0_UNK_40000 = 0x40000,
|
||||
ERFLG0_UNK_20000 = 0x20000,
|
||||
ERFLG0_UNK_10000 = 0x10000,
|
||||
|
@ -799,7 +801,7 @@ public:
|
|||
bool getGrabPutStart() const { return checkResetFlg0(RFLG0_GRAB_PUT_START); }
|
||||
bool checkSwimUp() const { return checkNoResetFlg0(FLG0_SWIM_UP); }
|
||||
BOOL checkHorseZelda() const { return checkNoResetFlg2(FLG2_HORSE_ZELDA); }
|
||||
BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_UNK_800000)); }
|
||||
BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); }
|
||||
BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); }
|
||||
bool checkGrabThrow() const { return checkResetFlg0(RFLG0_GRAB_THROW); }
|
||||
|
||||
|
@ -813,6 +815,7 @@ public:
|
|||
void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); }
|
||||
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); }
|
||||
|
||||
void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); }
|
||||
bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); }
|
||||
|
@ -907,7 +910,7 @@ public:
|
|||
void onNsScream() { onEndResetFlg1(ERFLG1_UNK_1); }
|
||||
void onNsScreamAnm() { onEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_1 | ERFLG1_UNK_2)); }
|
||||
|
||||
u32 checkBoarSingleBattle() const { return checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); }
|
||||
u32 checkBoarSingleBattle() const { return checkNoResetFlg2(daPy_FLG2(FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); }
|
||||
u32 checkWolfDashAutoJump() const { return checkNoResetFlg2(FLG2_WOLF_DASH_AUTO_JUMP); }
|
||||
|
||||
void changeOriginalDemo() {
|
||||
|
|
|
@ -48,6 +48,10 @@ inline void mDoAud_subBgmStart(u32 i_bgmID) {
|
|||
Z2AudioMgr::getInterface()->subBgmStart(i_bgmID);
|
||||
}
|
||||
|
||||
inline void mDoAud_subBgmStop() {
|
||||
Z2AudioMgr::getInterface()->subBgmStop();
|
||||
}
|
||||
|
||||
inline void mDoAud_bgmNowBattle(f32 param_0) {
|
||||
Z2AudioMgr::getInterface()->bgmNowBattle(param_0);
|
||||
}
|
||||
|
|
|
@ -1703,7 +1703,7 @@ COMPILER_STRIP_GATE(0x8039199C, &rightOffset);
|
|||
#pragma force_active on
|
||||
static daAlink_cutHorseParamTbl const cutParamTable_19765[] = {
|
||||
{
|
||||
0x20,
|
||||
daAlink_c::FTANM_UNK_20,
|
||||
0x91,
|
||||
0x10C,
|
||||
0x00,
|
||||
|
@ -1711,7 +1711,7 @@ static daAlink_cutHorseParamTbl const cutParamTable_19765[] = {
|
|||
0x22,
|
||||
},
|
||||
{
|
||||
0x21,
|
||||
daAlink_c::FTANM_UNK_21,
|
||||
0x92,
|
||||
0x10D,
|
||||
0x00,
|
||||
|
@ -1719,7 +1719,7 @@ static daAlink_cutHorseParamTbl const cutParamTable_19765[] = {
|
|||
0x23,
|
||||
},
|
||||
{
|
||||
0x22,
|
||||
daAlink_c::FTANM_UNK_22,
|
||||
0x93,
|
||||
0x10E,
|
||||
0x00,
|
||||
|
@ -1727,7 +1727,7 @@ static daAlink_cutHorseParamTbl const cutParamTable_19765[] = {
|
|||
0x2A,
|
||||
},
|
||||
{
|
||||
0x23,
|
||||
daAlink_c::FTANM_UNK_23,
|
||||
0x94,
|
||||
0x10F,
|
||||
0x00,
|
||||
|
@ -4511,7 +4511,7 @@ int daAlink_c::create() {
|
|||
if (checkStageName("F_SP102") && fopAcM_GetRoomNo(this) == 0 &&
|
||||
dComIfG_play_c::getLayerNo(0) == 4)
|
||||
{
|
||||
onNoResetFlg2(FLG2_UNK_800000);
|
||||
onNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE);
|
||||
} else if (checkStageName("F_SP123") && fopAcM_GetRoomNo(this) == 13 &&
|
||||
dComIfG_play_c::getLayerNo(0) == 0)
|
||||
{
|
||||
|
|
|
@ -571,7 +571,7 @@ const daAlinkHIO_cutTurn_c1 daAlinkHIO_cutTurn_c0::m = {
|
|||
/* 8038DC1C-8038DC3C 01A27C 0020+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_hoCutLA_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_hoCutLA_c1 daAlinkHIO_hoCutLA_c0::m = {
|
||||
const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLA_c0::m = {
|
||||
{
|
||||
21,
|
||||
0.9f,
|
||||
|
@ -588,7 +588,7 @@ const daAlinkHIO_hoCutLA_c1 daAlinkHIO_hoCutLA_c0::m = {
|
|||
/* 8038DC3C-8038DC5C 01A29C 0020+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_hoCutLB_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_hoCutLB_c1 daAlinkHIO_hoCutLB_c0::m = {
|
||||
const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutLB_c0::m = {
|
||||
{
|
||||
24,
|
||||
0.9f,
|
||||
|
@ -605,7 +605,7 @@ const daAlinkHIO_hoCutLB_c1 daAlinkHIO_hoCutLB_c0::m = {
|
|||
/* 8038DC5C-8038DC7C 01A2BC 0020+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_hoCutRA_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_hoCutRA_c1 daAlinkHIO_hoCutRA_c0::m = {
|
||||
const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRA_c0::m = {
|
||||
{
|
||||
24,
|
||||
0.95f,
|
||||
|
@ -622,7 +622,7 @@ const daAlinkHIO_hoCutRA_c1 daAlinkHIO_hoCutRA_c0::m = {
|
|||
/* 8038DC7C-8038DC9C 01A2DC 0020+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_hoCutRB_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_hoCutRB_c1 daAlinkHIO_hoCutRB_c0::m = {
|
||||
const daAlinkHIO_hoCut_c1 daAlinkHIO_hoCutRB_c0::m = {
|
||||
{
|
||||
11,
|
||||
0.9f,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,6 +6,8 @@
|
|||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/actor/d_a_canoe.h"
|
||||
#include "d/actor/d_a_tag_mstop.h"
|
||||
#include "d/actor/d_a_tag_mhint.h"
|
||||
|
||||
/* 800C2DDC-800C2EAC 0BD71C 00D0+00 17/17 0/0 0/0 .text
|
||||
* procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c */
|
||||
|
@ -247,7 +249,6 @@ int daAlink_c::procWait() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */
|
||||
int daAlink_c::procMoveInit() {
|
||||
if (!commonProcInitNotSameProc(PROC_MOVE)) {
|
||||
|
@ -706,7 +707,6 @@ int daAlink_c::procSlide() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */
|
||||
int daAlink_c::procSlideLandInit(int param_0) {
|
||||
commonProcInit(PROC_SLIDE_LAND);
|
||||
|
@ -906,7 +906,6 @@ int daAlink_c::procFrontRoll() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C4F14-800C4FFC 0BF854 00E8+00 1/1 0/0 0/0 .text procFrontRollCrashInit__9daAlink_cFv */
|
||||
int daAlink_c::procFrontRollCrashInit() {
|
||||
commonProcInit(PROC_FRONT_ROLL_CRASH);
|
||||
|
@ -1116,7 +1115,6 @@ int daAlink_c::procSideRoll() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */
|
||||
void daAlink_c::backJumpSpeedDec() {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
|
@ -1316,7 +1314,6 @@ int daAlink_c::procSlip() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
// TODO: Move / setup later
|
||||
class ni_class : public fopAc_ac_c {
|
||||
public:
|
||||
|
@ -1431,8 +1428,6 @@ int daAlink_c::procAutoJumpInit(int param_0) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 800C61EC-800C66DC 0C0B2C 04F0+00 1/0 0/0 0/0 .text procAutoJump__9daAlink_cFv */
|
||||
int daAlink_c::procAutoJump() {
|
||||
int direction = getDirectionFromCurrentAngle();
|
||||
|
@ -1562,7 +1557,6 @@ int daAlink_c::procAutoJump() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C66DC-800C6798 0C101C 00BC+00 1/1 0/0 0/0 .text procDiveJumpInit__9daAlink_cFv */
|
||||
int daAlink_c::procDiveJumpInit() {
|
||||
commonProcInit(PROC_DIVE_JUMP);
|
||||
|
@ -1743,7 +1737,6 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C6D20-800C6F18 0C1660 01F8+00 1/0 0/0 0/0 .text procFall__9daAlink_cFv */
|
||||
int daAlink_c::procFall() {
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
|
@ -1897,7 +1890,6 @@ int daAlink_c::procSmallJumpInit(int param_0) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C72D4-800C74D4 0C1C14 0200+00 1/0 0/0 0/0 .text procSmallJump__9daAlink_cFv */
|
||||
// NONMATCHING - one out of order block with sqrt
|
||||
int daAlink_c::procSmallJump() {
|
||||
|
@ -2139,7 +2131,6 @@ int daAlink_c::procCoMetamorphoseInit() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800C7C64-800C82E8 0C25A4 0684+00 1/0 0/0 0/0 .text procCoMetamorphose__9daAlink_cFv */
|
||||
int daAlink_c::procCoMetamorphose() {
|
||||
if (mProcVar1.field_0x300a != 0) {
|
||||
|
@ -2389,8 +2380,35 @@ 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;
|
||||
if (!checkGoronRide()) {
|
||||
checkNextAction(0);
|
||||
} else {
|
||||
if (checkInputOnR()) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, 2, 500, 100);
|
||||
}
|
||||
|
||||
s16 temp_r0 = shape_angle.y - current.angle.y;
|
||||
daAlink_ANM var_r28;
|
||||
if (temp_r0 > 0) {
|
||||
var_r28 = ANM_STEP_TURN;
|
||||
} else if (temp_r0 < 0) {
|
||||
var_r28 = ANM_SMALL_GUARD;
|
||||
} else {
|
||||
var_r28 = ANM_WAIT;
|
||||
}
|
||||
|
||||
f32 var_f31 = 0.8f + (0.002f * abs(temp_r0));
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
|
||||
var_f31 = 1.0f - var_f31;
|
||||
|
||||
setDoubleAnime(var_f31, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_move_c0::m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800C8700-800CAFA8 0C3040 28A8+00 1/1 0/0 0/0 .text execute__9daAlink_cFv */
|
||||
|
@ -3391,7 +3409,124 @@ static int daAlink_Execute(daAlink_c* i_this) {
|
|||
|
||||
/* 800CAFC8-800CB480 0C5908 04B8+00 2/2 0/0 0/0 .text setDrawHand__9daAlink_cFv */
|
||||
void daAlink_c::setDrawHand() {
|
||||
// NONMATCHING
|
||||
field_0x06d0->hide();
|
||||
field_0x06d4->hide();
|
||||
|
||||
u8 var_r30;
|
||||
u8 var_r29;
|
||||
if (checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW)) {
|
||||
if (i_checkSwordGet()) {
|
||||
var_r30 = 0;
|
||||
} else {
|
||||
var_r30 = 0xFE;
|
||||
}
|
||||
|
||||
if (i_checkShieldGet()) {
|
||||
var_r29 = 6;
|
||||
} else {
|
||||
var_r29 = 0xFE;
|
||||
}
|
||||
} else if (mProcID == PROC_TOOL_DEMO) {
|
||||
var_r30 = field_0x2f92;
|
||||
var_r29 = field_0x2f93;
|
||||
} else {
|
||||
if (field_0x2f92 == 0x64) {
|
||||
if (mProcID == PROC_BOSS_BODY_HANG || mProcID == PROC_MASTER_SWORD_PULL || (mProcID == PROC_CUT_DOWN_LAND && mProcVar2.field_0x300c != 0)) {
|
||||
var_r30 = mProcVar4.field_0x3010;
|
||||
} else if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE) && mUnderFrameCtrl[0].getFrame() < 6.0f) {
|
||||
var_r30 = 0;
|
||||
} else {
|
||||
var_r30 = 2;
|
||||
}
|
||||
} else if (field_0x2f96 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || field_0x2f94 == 0xFF)) {
|
||||
var_r30 = field_0x2f96;
|
||||
} else if (field_0x2f94 != 0xFF) {
|
||||
if (field_0x2f94 == 0x67) {
|
||||
if (checkBowGrabLeftHand()) {
|
||||
var_r30 = 0;
|
||||
} else {
|
||||
var_r30 = field_0x2f92;
|
||||
}
|
||||
} else if (field_0x2f94 == 0x65) {
|
||||
if (mUpperAnmHeap[0].getIdx() == 0xC7) {
|
||||
var_r30 = 0;
|
||||
} else if (mItemVar0.field_0x3018 == 1) {
|
||||
var_r30 = 4;
|
||||
} else {
|
||||
var_r30 = 2;
|
||||
}
|
||||
} else if (field_0x2f94 == 0 && mProcID == PROC_SWORD_UNEQUIP_SP) {
|
||||
var_r30 = field_0x2f92;
|
||||
} else if (field_0x2f94 == 0 && mEquipItem == 0x103 && (checkHorseRide() || checkUnderMove0BckNoArc(ANM_SWIM_DIE))) {
|
||||
var_r30 = 2;
|
||||
} else {
|
||||
var_r30 = field_0x2f94;
|
||||
}
|
||||
} else {
|
||||
var_r30 = field_0x2f92;
|
||||
}
|
||||
|
||||
if ((mCutType == CUT_TYPE_FINISH_STAB || mCutType == CUT_TYPE_DOWN) && mProcID != PROC_BOSS_BODY_HANG) {
|
||||
var_r29 = 5;
|
||||
} else if (field_0x2f97 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || (field_0x2f95 == 0xFF && field_0x2e44.checkPassNum(0xF)))) {
|
||||
var_r29 = field_0x2f97;
|
||||
} else if (field_0x2f95 != 0xFF) {
|
||||
if (field_0x2f95 == 0x65) {
|
||||
if (mItemVar0.field_0x3018 == 1) {
|
||||
var_r29 = 5;
|
||||
} else {
|
||||
var_r29 = field_0x2f93;
|
||||
}
|
||||
} else {
|
||||
var_r29 = field_0x2f95;
|
||||
}
|
||||
} else if (!field_0x2e44.checkPassNum(0xF)) {
|
||||
var_r29 = 6;
|
||||
} else {
|
||||
var_r29 = field_0x2f93;
|
||||
}
|
||||
}
|
||||
|
||||
mpLinkHandModel->setBaseTRMtx(mpLinkModel->getBaseTRMtx());
|
||||
mpLinkHandModel->calc();
|
||||
|
||||
if (var_r30 == 0xFE || var_r30 == 0xFB) {
|
||||
field_0x06d0 = field_0x06d8;
|
||||
} else {
|
||||
field_0x06d0 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r30)->getShape();
|
||||
mpLinkHandModel->setAnmMtx(1, mpLinkModel->getAnmMtx(9));
|
||||
}
|
||||
|
||||
if (var_r30 == 0xFB) {
|
||||
mpDemoHLTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(9));
|
||||
if (mpDemoHLTmpBck != NULL) {
|
||||
mpDemoHLTmpBck->entry(mpDemoHLTmpModel->getModelData());
|
||||
}
|
||||
|
||||
mpDemoHLTmpModel->calc();
|
||||
field_0x06d0->hide();
|
||||
} else {
|
||||
field_0x06d0->show();
|
||||
}
|
||||
|
||||
if (var_r29 == 0xFE || var_r29 == 0xFB) {
|
||||
field_0x06d4 = field_0x06dc;
|
||||
} else {
|
||||
field_0x06d4 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r29)->getShape();
|
||||
mpLinkHandModel->setAnmMtx(2, mpLinkModel->getAnmMtx(0xE));
|
||||
}
|
||||
|
||||
if (var_r29 == 0xFB) {
|
||||
mpDemoHRTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(0xE));
|
||||
if (mpDemoHRTmpBck != NULL) {
|
||||
mpDemoHRTmpBck->entry(mpDemoHRTmpModel->getModelData());
|
||||
}
|
||||
|
||||
mpDemoHRTmpModel->calc();
|
||||
field_0x06d4->hide();
|
||||
} else {
|
||||
field_0x06d4->show();
|
||||
}
|
||||
}
|
||||
|
||||
/* 800CB480-800CB53C 0C5DC0 00BC+00 3/3 0/0 0/0 .text checkSwordDraw__9daAlink_cFv */
|
||||
|
@ -3422,15 +3557,122 @@ bool daAlink_c::checkItemDraw() {
|
|||
|
||||
/* 800CB694-800CBA38 0C5FD4 03A4+00 0/0 0/0 1/1 .text initShadowScaleLight__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::initShadowScaleLight() {
|
||||
// NONMATCHING
|
||||
// NONMATCHING - float stuff
|
||||
int daAlink_c::initShadowScaleLight() {
|
||||
dKy_shadow_mode_set(4);
|
||||
|
||||
if (checkWolf()) {
|
||||
f32 temp_f26 = 0.5f * field_0x850[0].GetH();
|
||||
field_0x850[0].GetC();
|
||||
}
|
||||
|
||||
cXyz sp20(tevStr.mLightPosWorld.x - field_0x3834.x, tevStr.mLightPosWorld.y - field_0x3454, tevStr.mLightPosWorld.z - field_0x3834.z);
|
||||
field_0x2ff6 = sp20.atan2sX_Z();
|
||||
|
||||
fopAc_ac_c* temp_r29 = fopAcM_getTalkEventPartner(this);
|
||||
|
||||
f32 var_f30;
|
||||
if (dComIfGp_checkPlayerStatus0(0, 0x100000)) {
|
||||
var_f30 = 0.0f;
|
||||
} else {
|
||||
var_f30 = 150.0f;
|
||||
}
|
||||
|
||||
BOOL var_r28;
|
||||
f32 var_f31;
|
||||
if (temp_r29 != NULL && ((fopAcM_GetName(temp_r29) == PROC_Tag_Mhint && !((daTagMhint_c*)temp_r29)->checkNoAttention()) || (fopAcM_GetName(temp_r29) == PROC_Tag_Mstop && !((daTagMstop_c*)temp_r29)->checkNoAttention()))) {
|
||||
field_0x2ff8 = cLib_targetAngleY(&temp_r29->eyePos, ¤t.pos);
|
||||
var_r28 = 1;
|
||||
} else {
|
||||
field_0x2ff8 = shape_angle.y + 0x8000;
|
||||
|
||||
if (checkWolf()) {
|
||||
var_f31 = 200.0f;
|
||||
} else {
|
||||
var_f31 = 120.0f;
|
||||
}
|
||||
|
||||
cXyz sp14(current.pos.x, current.pos.y + var_f30, current.pos.z);
|
||||
cXyz sp8(sp14.x + ((30.0f + var_f31) * cM_ssin(shape_angle.y)), sp14.y, sp14.z + ((30.0f + var_f31) * cM_scos(shape_angle.y)));
|
||||
|
||||
if (fopAcM_lc_c::lineCheck(&sp14, &sp8, this)) {
|
||||
var_r28 = 1;
|
||||
} else {
|
||||
var_r28 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x2ffa = field_0x2ff8 + 0x8000;
|
||||
field_0x2ff4 = cM_atan2s(sp20.y, sp20.absXZ());
|
||||
offNoResetFlg2(FLG2_UNK_800);
|
||||
field_0x2ffc = 0;
|
||||
field_0x375c.y = current.pos.y + var_f30;
|
||||
|
||||
f32 temp_f29 = cM_ssin(field_0x2ff8);
|
||||
f32 temp_f28 = cM_scos(field_0x2ff8);
|
||||
|
||||
if (var_r28 == 0) {
|
||||
field_0x375c.x = current.pos.x - (var_f31 * temp_f29);
|
||||
field_0x375c.z = current.pos.z - (var_f31 * temp_f28);
|
||||
} else {
|
||||
field_0x375c.x = (current.pos.x - (temp_f29 * -30.0f)) - (temp_f28 * 65.0f);
|
||||
field_0x375c.z = (current.pos.z - (temp_f28 * -30.0f)) + (temp_f29 * 65.0f);
|
||||
}
|
||||
|
||||
if (checkReinRide()) {
|
||||
var_r28 = 1;
|
||||
}
|
||||
|
||||
return var_r28;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 800CBA38-800CBC18 0C6378 01E0+00 0/0 0/0 1/1 .text moveShadowScaleLight__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::moveShadowScaleLight() {
|
||||
// NONMATCHING
|
||||
int daAlink_c::moveShadowScaleLight() {
|
||||
int var_r29 = 0;
|
||||
|
||||
if (field_0x2ff8 != field_0x2ffa) {
|
||||
s16 temp_r0 = field_0x2ff6 - field_0x2ff8;
|
||||
if (abs(temp_r0) < 0x4000) {
|
||||
if (temp_r0 >= 0) {
|
||||
field_0x2ff8 -= 0x4000;
|
||||
} else {
|
||||
field_0x2ff8 += 0x4000;
|
||||
}
|
||||
|
||||
if (cLib_distanceAngleS(field_0x2ff8, field_0x2ffa) < 0x100) {
|
||||
field_0x2ff8 = field_0x2ffa;
|
||||
}
|
||||
}
|
||||
} else if (cLib_distanceAngleS(field_0x2ff8, field_0x2ff6) < 0x1600) {
|
||||
onNoResetFlg2(FLG2_UNK_800);
|
||||
}
|
||||
|
||||
if (cLib_addCalcAngleS(&field_0x2ff6, field_0x2ff8, 4, 0x1800, 0x200) == 0) {
|
||||
if (cLib_chaseS(&field_0x2ff4, 0x4000, 0x650)) {
|
||||
dKy_shadow_mode_reset(4);
|
||||
tevStr.field_0x344 = 1.0f;
|
||||
} else {
|
||||
tevStr.field_0x344 = 2.0f;
|
||||
}
|
||||
|
||||
if (field_0x2ff4 > 0x3000) {
|
||||
var_r29 = 1;
|
||||
}
|
||||
} else {
|
||||
if (!checkNoResetFlg2(FLG2_UNK_800)) {
|
||||
cLib_chaseS(&field_0x2ff4, 0x2600, 0x800);
|
||||
} else {
|
||||
cLib_chaseS(&field_0x2ffc, 0x800, 0x100);
|
||||
cLib_chaseS(&field_0x2ff4, 0, field_0x2ffc);
|
||||
}
|
||||
|
||||
cLib_chaseF(&tevStr.field_0x344, 2.0f, 0.1f);
|
||||
}
|
||||
|
||||
f32 temp_f31 = 50000.0f * cM_scos(field_0x2ff4);
|
||||
tevStr.mLightPosWorld.set(field_0x3834.x + (temp_f31 * cM_ssin(field_0x2ff6)), field_0x3454 + (50000.0f * cM_ssin(field_0x2ff4)), field_0x3834.z + (temp_f31 * cM_scos(field_0x2ff6)));
|
||||
return var_r29;
|
||||
}
|
||||
|
||||
/* 800CBC18-800CC25C 0C6558 0644+00 1/1 0/0 0/0 .text shadowDraw__9daAlink_cFv */
|
||||
|
@ -3869,7 +4111,6 @@ int daAlink_c::draw() {
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 800CD78C-800CD7AC 0C80CC 0020+00 1/0 0/0 0/0 .text daAlink_Draw__FP9daAlink_c */
|
||||
static int daAlink_Draw(daAlink_c* i_this) {
|
||||
return i_this->draw();
|
||||
|
@ -3912,7 +4153,6 @@ daAlink_c::~daAlink_c() {
|
|||
dComIfGp_setLinkPlayer(NULL);
|
||||
}
|
||||
|
||||
|
||||
/* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */
|
||||
static int daAlink_Delete(daAlink_c* i_this) {
|
||||
if (i_this->getClothesChangeWaitTimer() != 0) {
|
||||
|
@ -4243,7 +4483,6 @@ daAlink_c::daAlink_c()
|
|||
: mAnmHeap3(0), mAnmHeap4(0), mFaceBtpHeap(0x800), mFaceBtkHeap(0x400), mFaceBckHeap(0xC00),
|
||||
mAnmHeap9(0x800) {}
|
||||
|
||||
|
||||
/* 800CFC3C-800CFC78 0CA57C 003C+00 2/2 0/0 0/0 .text __dt__Q29daAlink_c14firePointEff_cFv */
|
||||
daAlink_c::firePointEff_c::~firePointEff_c() {}
|
||||
|
||||
|
|
Loading…
Reference in New Issue