mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-29 01:30:50 -04:00
most of d_a_alink_wolf done / some misc (#1993)
* wip on alink_wolf * setup procvar unions * most of d_a_alink_wolf done + some misc
This commit is contained in:
@@ -28,7 +28,7 @@ void* __va_arg(_va_list_struct*, int);
|
||||
// __builtin_va_info: initialize the __va_list_struct
|
||||
// _var_arg_typeof: convert type to integer for __va_arg
|
||||
#define __va_start(list, fmt) __builtin_va_info(&list)
|
||||
#define __va_arg(list, type) (*((type*)__va_arg(ap, _var_arg_typeof(type))))
|
||||
#define __va_arg(list, type) (*((type*)__va_arg(list, _var_arg_typeof(type))))
|
||||
#define va_start __va_start
|
||||
#define va_arg __va_arg
|
||||
#define va_end __va_end
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
void calcMinMax(cXyz*, cXyz*);
|
||||
const cXyz* GetCP(void) const { return &mCenter; }
|
||||
f32 GetR(void) const { return mRadius; }
|
||||
f32* GetRP() { return &mRadius; }
|
||||
f32 GetH(void) const { return mHeight; }
|
||||
cXyz& GetC() { return mCenter; }
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@ public:
|
||||
u8 getLinkState() const { return mLinkState; }
|
||||
u8 getMoveSpeed() const { return mMoveSpeed; }
|
||||
bool isRiding() const { return mRiding; }
|
||||
void i_setLinkState(u8 i_state) { mLinkState = i_state; }
|
||||
|
||||
static Z2CreatureLink* mLinkPtr;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
f32 getNowPitch();
|
||||
f32 getNowInputValue();
|
||||
void calcPitchMod(f32, f32);
|
||||
void startWolfHowlSound(f32, f32, bool, f32);
|
||||
s8 startWolfHowlSound(f32, f32, bool, f32);
|
||||
void setCorrectData(s8, Z2WolfHowlData*);
|
||||
SongNote getCorrectLine(u8);
|
||||
u8 getCorrectLineNum();
|
||||
@@ -42,6 +42,10 @@ public:
|
||||
int startGuideMelody(bool);
|
||||
void skipCorrectDemo();
|
||||
|
||||
void setCorrectCurve(s8 i_curve) { setCorrectData(i_curve, NULL); }
|
||||
u32 getTimer() { return mTimer; }
|
||||
u8 getReleaseTimer() { return mReleaseTimer; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ JAISoundHandle field_0x00;
|
||||
/* 0x04 */ JAISoundHandle field_0x04;
|
||||
|
||||
+78
-102
@@ -129,7 +129,6 @@ public:
|
||||
/* 800CFCB8 */ ~daAlink_footData_c();
|
||||
/* 800CFCF4 */ daAlink_footData_c();
|
||||
|
||||
private:
|
||||
/* 0x00 */ u8 field_0x00[2];
|
||||
/* 0x02 */ u16 field_0x2;
|
||||
/* 0x04 */ u16 field_0x4;
|
||||
@@ -666,12 +665,22 @@ public:
|
||||
FTANM_UNK_7B = 0x7B,
|
||||
FTANM_UNK_7C = 0x7C,
|
||||
FTANM_UNK_8A = 0x8A,
|
||||
FTANM_UNK_8D = 0x8D,
|
||||
FTANM_UNK_8E = 0x8E,
|
||||
FTANM_UNK_8F = 0x8F,
|
||||
FTANM_UNK_90 = 0x90,
|
||||
FTANM_UNK_91 = 0x91,
|
||||
FTANM_UNK_95 = 0x95,
|
||||
FTANM_UNK_96 = 0x96,
|
||||
FTANM_UNK_97 = 0x97,
|
||||
FTANM_UNK_9A = 0x9A,
|
||||
FTANM_UNK_9B = 0x9B,
|
||||
FTANM_UNK_9C = 0x9C,
|
||||
FTANM_UNK_9D = 0x9D,
|
||||
FTANM_UNK_9F = 0x9F,
|
||||
FTANM_UNK_A0 = 0xA0,
|
||||
FTANM_UNK_A1 = 0xA1,
|
||||
FTANM_UNK_A2 = 0xA2,
|
||||
};
|
||||
|
||||
enum daAlink_WARP_MAT_MODE {
|
||||
@@ -1961,7 +1970,7 @@ public:
|
||||
/* 800E53F8 */ void setGrabItemThrow();
|
||||
/* 800E57AC */ BOOL checkUpperGrabItemThrow(f32);
|
||||
/* 800E5830 */ void putObjLineCheck(dBgS_LinChk&, cXyz*, fopAc_ac_c*);
|
||||
/* 800E5B6C */ void grabLineCheck(cXyz*, cXyz*);
|
||||
/* 800E5B6C */ bool grabLineCheck(cXyz*, cXyz*);
|
||||
/* 800E5BB4 */ void setGrabItemActor(fopAc_ac_c*);
|
||||
/* 800E5CBC */ int procGrabReadyInit();
|
||||
/* 800E5EC8 */ int procGrabReady();
|
||||
@@ -2739,8 +2748,8 @@ public:
|
||||
/* 801299A8 */ void checkWolfUseAbility();
|
||||
/* 80129A80 */ int checkWolfGroundSpecialMode();
|
||||
/* 80129B44 */ int checkNextActionWolf(int);
|
||||
/* 8012A02C */ void wolfSideBgCheck(s16);
|
||||
/* 8012A228 */ void checkWolfAttackReverse(int);
|
||||
/* 8012A02C */ BOOL wolfSideBgCheck(s16);
|
||||
/* 8012A228 */ BOOL checkWolfAttackReverse(int);
|
||||
/* 8012A330 */ int checkWolfBarrierHitReverse();
|
||||
/* 8012A41C */ bool checkWolfBarrierWallHit(cBgS_PolyInfo&);
|
||||
/* 8012A498 */ void wolfBgCheck();
|
||||
@@ -2748,7 +2757,7 @@ public:
|
||||
/* 8012AD1C */ void setWolfFootMatrix();
|
||||
/* 8012B724 */ void wolfFootBgCheck();
|
||||
/* 8012BFA8 */ BOOL checkWolfWaitSlipPolygon();
|
||||
/* 8012C1F4 */ void setWolfWaitSlip();
|
||||
/* 8012C1F4 */ f32 setWolfWaitSlip();
|
||||
/* 8012C308 */ void checkWolfAtnDoCharge();
|
||||
/* 8012C30C */ void setWolfChainPos();
|
||||
/* 8012CB0C */ void setWolfAnmVoice();
|
||||
@@ -2827,8 +2836,8 @@ public:
|
||||
/* 80133164 */ int procWolfRopeStagger();
|
||||
/* 8013384C */ int procWolfRopeSubjectivityInit();
|
||||
/* 80133930 */ int procWolfRopeSubjectivity();
|
||||
/* 80133D6C */ void getWolfTagJumpTime() const;
|
||||
/* 80133EF0 */ cXyz* checkMidnaLockJumpPoint() const;
|
||||
/* 80133D6C */ int getWolfTagJumpTime() const;
|
||||
/* 80133EF0 */ const cXyz* checkMidnaLockJumpPoint() const;
|
||||
/* 80134000 */ int procWolfTagJumpInit(fopAc_ac_c*);
|
||||
/* 80134838 */ int procWolfTagJump();
|
||||
/* 80134DB8 */ int procWolfTagJumpLandInit(fopAc_ac_c*);
|
||||
@@ -2836,7 +2845,7 @@ public:
|
||||
/* 80135160 */ int procWolfGiantPuzzleInit();
|
||||
/* 801351F8 */ int procWolfGiantPuzzle();
|
||||
/* 80135458 */ void setWolfHangGroundY();
|
||||
/* 801354C8 */ void changeWolfHangEndProc();
|
||||
/* 801354C8 */ int changeWolfHangEndProc();
|
||||
/* 801355EC */ int procWolfHangReadyInit();
|
||||
/* 80135668 */ int procWolfHangReady();
|
||||
/* 801356F0 */ int procWolfHangWallCatchInit(int);
|
||||
@@ -2854,9 +2863,9 @@ public:
|
||||
/* 80136F54 */ int procWolfScreamWaitInit();
|
||||
/* 80136FF8 */ int procWolfScreamWait();
|
||||
/* 801370E4 */ f32 getWolfLieMoveAnmSpeed();
|
||||
/* 8013712C */ void getWolfLieMoveSpeed();
|
||||
/* 8013712C */ f32 getWolfLieMoveSpeed();
|
||||
/* 801371A0 */ BOOL checkMidnaDisappearMode() const;
|
||||
/* 801371FC */ void checkWolfLieContinue(int);
|
||||
/* 801371FC */ BOOL checkWolfLieContinue(int);
|
||||
/* 801372B4 */ int checkNextActionWolfFromLie();
|
||||
/* 80137330 */ void setWolfLieMoveVoice(int);
|
||||
/* 801373F8 */ bool checkWolfLieCode();
|
||||
@@ -2886,11 +2895,11 @@ public:
|
||||
/* 801391DC */ fopAc_ac_c* getWolfLockActorEnd();
|
||||
/* 801391E4 */ void searchWolfLockEnemy(fopAc_ac_c*, void*);
|
||||
/* 801392E4 */ void checkWolfComboCnt();
|
||||
/* 801393A4 */ void checkWolfAttackAction();
|
||||
/* 801393A4 */ BOOL checkWolfAttackAction();
|
||||
/* 801395B4 */ void setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM, f32);
|
||||
/* 80139600 */ BOOL setWolfEnemyHangBitePos(fopEn_enemy_c*);
|
||||
/* 801396F8 */ void setWolfBiteDamage(fopEn_enemy_c*);
|
||||
/* 801397A4 */ void checkWolfLockAttackChargeState();
|
||||
/* 801397A4 */ BOOL checkWolfLockAttackChargeState();
|
||||
/* 801398A8 */ int procWolfRollAttackChargeInit();
|
||||
/* 80139908 */ int procWolfRollAttackCharge();
|
||||
/* 801399C4 */ int procWolfRollAttackMoveInit();
|
||||
@@ -3131,8 +3140,10 @@ public:
|
||||
bool i_checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); }
|
||||
bool i_checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); }
|
||||
|
||||
// wrapping functions that use this with "#pragma optimization_level 2" can help fix some issues, but not always
|
||||
// this might be a fake match, but helps fix usage in many functions
|
||||
#pragma optimization_level 2
|
||||
BOOL i_checkAttentionLock() { return mAttention->Lockon(); }
|
||||
#pragma optimization_level 3
|
||||
|
||||
bool checkUpperAnime(u16 i_idx) const { return mUpperAnmHeap[UPPER_2].getIdx() == i_idx; }
|
||||
bool checkUnderAnime(u16 i_idx) const { return mUnderAnmHeap[UNDER_2].getIdx() == i_idx; }
|
||||
@@ -3161,6 +3172,7 @@ public:
|
||||
bool checkWolfGrabAnimeObj() const { return checkUpperAnime(0x2DA); }
|
||||
bool checkWolfGrabAnimeStick() const { return checkUpperAnime(0x2DB); }
|
||||
bool checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); }
|
||||
bool checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); }
|
||||
bool checkKandelaarSwingAnime() const { return false; }
|
||||
bool checkBowChargeWaitAnime() const { return checkUpperAnime(0xA); }
|
||||
bool checkBowReloadAnime() const { return checkUpperAnime(0x9); }
|
||||
@@ -3223,9 +3235,13 @@ public:
|
||||
field_0x2fa3 = 0;
|
||||
field_0x2844.clearData();
|
||||
}
|
||||
|
||||
s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); }
|
||||
BOOL i_checkSpecialDemoMode() const { return mDemo.getDemoType() == 5; }
|
||||
static bool checkMidnaChargeAttack() { return i_dComIfGs_isEventBit(0x501); }
|
||||
u16 getMidnaMsgNum() const { return mMidnaMsgNum; }
|
||||
u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; }
|
||||
|
||||
const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
|
||||
const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { return &m_faceTexDataTable[i_anmID]; }
|
||||
|
||||
@@ -3279,6 +3295,7 @@ public:
|
||||
void clearIronBallActor() { field_0x173c.SetActor(this); }
|
||||
BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const { return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0; }
|
||||
bool checkWolfDashMode() const { return i_checkNoResetFlg1(FLG1_DASH_MODE); }
|
||||
bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; }
|
||||
|
||||
J3DModel* initModel(J3DModelData* p_modelData, u32 param_1) {
|
||||
return initModel(p_modelData, 0x80000, param_1);
|
||||
@@ -3323,10 +3340,12 @@ public:
|
||||
mDamageColorTime = 32 - (mDamageTimer % 16);
|
||||
}
|
||||
|
||||
// Gets the cardinal direction of the Left Stick relative to player facing angle
|
||||
int getDirectionFromShapeAngle() const {
|
||||
return getDirectionFromAngle(field_0x2fe2 - shape_angle.y);
|
||||
}
|
||||
|
||||
// Gets the cardinal direction of the Left Stick relative to player angle
|
||||
int getDirectionFromCurrentAngle() const {
|
||||
return getDirectionFromAngle(field_0x2fe2 - current.angle.y);
|
||||
}
|
||||
@@ -3381,7 +3400,7 @@ private:
|
||||
/* 0x00650 */ J3DModel* mpLinkModel;
|
||||
/* 0x00654 */ J3DModel* mpLinkFaceModel;
|
||||
/* 0x00658 */ J3DModel* mpLinkHatModel;
|
||||
/* 0x0065C */ J3DModel* field_0x065c;
|
||||
/* 0x0065C */ J3DModel* mpLinkHandModel;
|
||||
/* 0x00660 */ J3DModel* mpSwAModel; // Ordon Sword model
|
||||
/* 0x00664 */ J3DModel* mpSwASheathModel; // Ordon Sword sheath model
|
||||
/* 0x00668 */ J3DModel* mpSwMModel; // Master Sword model
|
||||
@@ -3410,10 +3429,10 @@ private:
|
||||
/* 0x006C4 */ J3DAnmTextureSRTKey* m_nSwordBtk;
|
||||
/* 0x006C8 */ J3DAnmTextureSRTKey* m_mSwordBtk;
|
||||
/* 0x006CC */ J3DAnmTevRegKey* m_mSwordBrk;
|
||||
/* 0x006D0 */ void* field_0x06d0;
|
||||
/* 0x006D4 */ void* field_0x06d4;
|
||||
/* 0x006D8 */ void* field_0x06d8;
|
||||
/* 0x006DC */ void* field_0x06dc;
|
||||
/* 0x006D0 */ J3DShape* field_0x06d0;
|
||||
/* 0x006D4 */ J3DShape* field_0x06d4;
|
||||
/* 0x006D8 */ J3DShape* field_0x06d8;
|
||||
/* 0x006DC */ J3DShape* field_0x06dc;
|
||||
/* 0x006E0 */ J3DShape* field_0x06e0;
|
||||
/* 0x006E4 */ J3DShape* field_0x06e4;
|
||||
/* 0x006E8 */ J3DShape* field_0x06e8;
|
||||
@@ -3421,9 +3440,9 @@ private:
|
||||
/* 0x006F0 */ J3DShape* field_0x06f0;
|
||||
/* 0x006F4 */ J3DAnmTevRegKey* field_0x06f4;
|
||||
/* 0x006F8 */ J3DAnmTevRegKey* field_0x06f8;
|
||||
/* 0x006FC */ J3DModel* field_0x06fc; // related to human link
|
||||
/* 0x00700 */ J3DModel* field_0x0700;
|
||||
/* 0x00704 */ J3DAnmBase* field_0x0704;
|
||||
/* 0x006FC */ J3DModel* mpKanteraModel;
|
||||
/* 0x00700 */ J3DModel* mpKanteraGlowModel;
|
||||
/* 0x00704 */ J3DAnmTextureSRTKey* mpKanteraGlowBtk;
|
||||
/* 0x00708 */ J3DModel* mHeldItemModel;
|
||||
/* 0x0070C */ J3DModel* mpHookTipModel; // related to held item
|
||||
/* 0x00710 */ J3DModel* field_0x0710; // related to held item
|
||||
@@ -3442,16 +3461,16 @@ private:
|
||||
/* 0x00774 */ u8 field_0x0774[0x77C - 0x774];
|
||||
/* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk;
|
||||
/* 0x00780 */ u8 field_0x780[4];
|
||||
/* 0x00784 */ J3DModel* field_0x784[2];
|
||||
/* 0x00784 */ J3DModel* mpLinkBootModels[2];
|
||||
/* 0x0078C */ J3DModel* mpWlChainModels[4];
|
||||
/* 0x0079C */ J3DModel* field_0x79c; // related to wolf
|
||||
/* 0x007A0 */ J3DModel* mpWlMidnaHatModel;
|
||||
/* 0x007A4 */ J3DModel* field_0x7a4; // related to wolf
|
||||
/* 0x0079C */ J3DModel* mpWlMidnaModel;
|
||||
/* 0x007A0 */ J3DModel* mpWlMidnaMaskModel;
|
||||
/* 0x007A4 */ J3DModel* mpWlMidnaHandModel;
|
||||
/* 0x007A8 */ J3DModel* mpWlMidnaHairModel;
|
||||
/* 0x007AC */ J3DAnmTevRegKey* field_0x7ac;
|
||||
/* 0x007B0 */ J3DAnmTevRegKey* field_0x7b0;
|
||||
/* 0x007B4 */ J3DAnmTevRegKey* field_0x7b4;
|
||||
/* 0x007B8 */ J3DAnmTevRegKey* field_0x7b8;
|
||||
/* 0x007AC */ J3DAnmTevRegKey* mpDMidnaBrk;
|
||||
/* 0x007B0 */ J3DAnmTevRegKey* mpDMidnaMaskBrk;
|
||||
/* 0x007B4 */ J3DAnmTevRegKey* mpDMidnaHandBrk;
|
||||
/* 0x007B8 */ J3DAnmTevRegKey* mpDMidnaHairHandBrk;
|
||||
/* 0x007BC */ mDoExt_bckAnm* m_sWindowBck;
|
||||
/* 0x007C0 */ u32 mpWarpTexData;
|
||||
/* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10];
|
||||
@@ -3561,8 +3580,8 @@ private:
|
||||
/* 0x02F1C */ dPaPo_c* field_0x2f1c;
|
||||
/* 0x02F20 */ dPa_hermiteEcallBack_c field_0x2f20;
|
||||
/* 0x02F38 */ dPa_hermiteEcallBack_c field_0x2f38;
|
||||
/* 0x02F50 */ Vec* field_0x2f50;
|
||||
/* 0x02F54 */ Vec* field_0x2f54;
|
||||
/* 0x02F50 */ const Vec* field_0x2f50;
|
||||
/* 0x02F54 */ const Vec* field_0x2f54;
|
||||
/* 0x02F58 */ u16* field_0x2f58;
|
||||
/* 0x02F5C */ LIGHT_INFLUENCE field_0x2f5c;
|
||||
/* 0x02F7C */ u8 field_0x2f7c[16];
|
||||
@@ -3666,10 +3685,22 @@ private:
|
||||
/* 0x03002 */ s16 field_0x3002;
|
||||
/* 0x03004 */ s16 field_0x3004;
|
||||
/* 0x03006 */ s16 field_0x3006;
|
||||
/* 0x03008 */ s16 field_0x3008;
|
||||
/* 0x0300A */ s16 field_0x300a;
|
||||
/* 0x0300C */ s16 field_0x300c; // might need more accurate name
|
||||
/* 0x0300E */ csXyz field_0x300e;
|
||||
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
|
||||
// (The exact setup may need to be simplified later)
|
||||
union {
|
||||
s16 field_0x3008;
|
||||
s16 mHowlExitID;
|
||||
} /* 0x03008 */ mProcVar0;
|
||||
union {
|
||||
s16 field_0x300a;
|
||||
} /* 0x0300A */ mProcVar1;
|
||||
union {
|
||||
s16 field_0x300c;
|
||||
s16 mPuzzleAimAngle;
|
||||
} /* 0x0300C */ mProcVar2;
|
||||
union {
|
||||
csXyz field_0x300e;
|
||||
} /* 0x0300E */ mProcVar3;
|
||||
/* 0x03014 */ s16 mFallVoiceInit;
|
||||
/* 0x03016 */ u8 field_0x3016[2];
|
||||
/* 0x03018 */ s16 field_0x3018;
|
||||
@@ -3682,30 +3713,10 @@ private:
|
||||
/* 0x03026 */ s16 field_0x3026;
|
||||
/* 0x03028 */ s16 field_0x3028;
|
||||
/* 0x0302A */ u8 field_0x302a[2];
|
||||
/* 0x0302C */ s16 field_0x302c;
|
||||
/* 0x0302E */ s16 field_0x302e;
|
||||
/* 0x03030 */ s16 field_0x3030;
|
||||
/* 0x03032 */ s16 field_0x3032;
|
||||
/* 0x03034 */ s16 field_0x3034;
|
||||
/* 0x03036 */ s16 field_0x3036;
|
||||
/* 0x03038 */ u8 field_0x3038[2];
|
||||
/* 0x0303A */ s16 field_0x303a;
|
||||
/* 0x0303C */ u8 field_0x303c[4];
|
||||
/* 0x03040 */ s16 field_0x3040;
|
||||
/* 0x03042 */ s16 field_0x3042;
|
||||
/* 0x03044 */ s16 field_0x3044;
|
||||
/* 0x03046 */ s16 field_0x3046;
|
||||
/* 0x03048 */ s16 field_0x3048;
|
||||
/* 0x0304A */ s16 field_0x304a;
|
||||
/* 0x0304C */ u8 field_0x304c[2];
|
||||
/* 0x0304E */ s16 field_0x304e;
|
||||
/* 0x03050 */ u8 field_0x3050[4];
|
||||
/* 0x03054 */ s16 field_0x3054;
|
||||
/* 0x03056 */ s16 field_0x3056;
|
||||
/* 0x03058 */ u8 field_0x3058[2];
|
||||
/* 0x0305A */ s16 field_0x305a;
|
||||
/* 0x0305C */ s16 field_0x305c;
|
||||
/* 0x0305E */ u8 field_0x305e[2];
|
||||
/* 0x0302C */ s16 field_0x302c[10];
|
||||
/* 0x03040 */ s16 field_0x3040[10];
|
||||
/* 0x03054 */ s16 field_0x3054[3];
|
||||
/* 0x0305A */ s16 field_0x305a[3];
|
||||
/* 0x03060 */ s16 field_0x3060;
|
||||
/* 0x03062 */ s16 field_0x3062;
|
||||
/* 0x03064 */ s16 field_0x3064;
|
||||
@@ -3731,10 +3742,8 @@ private:
|
||||
/* 0x0308E */ s16 mFastShotTime;
|
||||
/* 0x03090 */ s16 field_0x3090;
|
||||
/* 0x03092 */ s16 field_0x3092;
|
||||
/* 0x03094 */ s16 field_0x3094;
|
||||
/* 0x03096 */ u8 field_0x3096[4];
|
||||
/* 0x0309A */ s16 field_0x309a;
|
||||
/* 0x0309C */ u8 field_0x309c[4];
|
||||
/* 0x03094 */ s16 field_0x3094[3];
|
||||
/* 0x0309A */ s16 field_0x309a[3];
|
||||
/* 0x030A0 */ s16 field_0x30a0;
|
||||
/* 0x030A2 */ s16 field_0x30a2;
|
||||
/* 0x030A4 */ s16 field_0x30a4;
|
||||
@@ -3851,8 +3860,7 @@ private:
|
||||
/* 0x03298 */ u8 field_0x3298[8];
|
||||
/* 0x032A0 */ J3DGXColorS10 field_0x32a0[2];
|
||||
/* 0x032B0 */ J3DGXColorS10 field_0x32b0[2];
|
||||
/* 0x032C0 */ s16 field_0x32c0;
|
||||
/* 0x032C2 */ u8 field_0x32c2[2];
|
||||
/* 0x032C0 */ s16 field_0x32c0[2];
|
||||
/* 0x032C4 */ u16 field_0x32c4;
|
||||
/* 0x032C6 */ u16 field_0x32c6;
|
||||
/* 0x032C8 */ u32 field_0x32c8;
|
||||
@@ -5717,7 +5725,7 @@ public:
|
||||
static daAlinkHIO_wlAtDown_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_wlAtWaTl_c1 {
|
||||
class daAlinkHIO_wlAtWait_c1 {
|
||||
public:
|
||||
/* 0x00 */ daAlinkHIO_anm_c field_0x0;
|
||||
/* 0x14 */ s16 field_0x14;
|
||||
@@ -5731,53 +5739,21 @@ public:
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
}; // Size: 0x3C
|
||||
};
|
||||
|
||||
class daAlinkHIO_wlAtWaTl_c0 {
|
||||
public:
|
||||
static daAlinkHIO_wlAtWaTl_c1 const m;
|
||||
static daAlinkHIO_wlAtWait_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_wlAtWaSc_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;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
}; // Size: 0x3C
|
||||
|
||||
class daAlinkHIO_wlAtWaSc_c0 {
|
||||
public:
|
||||
static daAlinkHIO_wlAtWaSc_c1 const m;
|
||||
static daAlinkHIO_wlAtWait_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_wlAtWaLr_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;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
}; // Size: 0x3C
|
||||
|
||||
class daAlinkHIO_wlAtWaLr_c0 {
|
||||
public:
|
||||
static daAlinkHIO_wlAtWaLr_c1 const m;
|
||||
static daAlinkHIO_wlAtWait_c1 const m;
|
||||
};
|
||||
|
||||
class daAlinkHIO_wlAtRoll_c1 {
|
||||
|
||||
+43
-22
@@ -259,6 +259,7 @@ public:
|
||||
FLG1_UNK_10000000 = 0x10000000,
|
||||
FLG1_UNK_4000000 = 0x4000000,
|
||||
FLG1_IS_WOLF = 0x2000000,
|
||||
FLG1_UNK_800000 = 0x800000,
|
||||
FLG1_DASH_MODE = 0x400000,
|
||||
FLG1_UNK_10000 = 0x10000,
|
||||
FLG1_UNK_8000 = 0x8000,
|
||||
@@ -290,9 +291,11 @@ public:
|
||||
FLG2_STATUS_WINDOW_DRAW = 0x400000,
|
||||
FLG2_UNK_280000 = 0x280000,
|
||||
FLG2_UNK_200000 = 0x200000,
|
||||
FLG2_UNK_100000 = 0x100000,
|
||||
FLG2_UNK_80000 = 0x80000,
|
||||
FLG2_UNK_40000 = 0x40000,
|
||||
FLG2_UNK_20000 = 0x20000,
|
||||
FLG2_UNK_10000 = 0x10000,
|
||||
FLG2_SCN_CHG_START = 0x8000,
|
||||
FLG2_UNK_4000 = 0x4000,
|
||||
FLG2_UNK_2000 = 0x2000,
|
||||
@@ -317,11 +320,14 @@ public:
|
||||
FLG3_UNK_4000000 = 0x4000000,
|
||||
FLG3_UNK_2000000 = 0x2000000,
|
||||
FLG3_UNK_1000000 = 0x1000000,
|
||||
FLG3_UNK_800000 = 0x800000,
|
||||
FLG3_UNK_400000 = 0x400000,
|
||||
FLG3_UNK_200000 = 0x200000,
|
||||
FLG3_UNK_100000 = 0x100000,
|
||||
FLG3_UNK_80000 = 0x80000,
|
||||
FLG3_COPY_ROD_THROW_AFTER = 0x40000,
|
||||
FLG3_UNK_4000 = 0x4000,
|
||||
FLG3_UNK_400 = 0x400,
|
||||
FLG3_UNK_200 = 0x200,
|
||||
FLG3_UNK_100 = 0x100,
|
||||
FLG3_UNK_80 = 0x80,
|
||||
@@ -333,6 +339,7 @@ public:
|
||||
|
||||
enum daPy_ERFLG0 {
|
||||
ERFLG0_UNK_40000000 = 0x40000000,
|
||||
ERFLG0_UNK_20000000 = 0x20000000,
|
||||
ERFLG0_UNK_10000000 = 0x10000000,
|
||||
ERFLG0_UNK_8000000 = 0x8000000,
|
||||
ERFLG0_UNK_2000000 = 0x2000000,
|
||||
@@ -362,16 +369,19 @@ public:
|
||||
ERFLG1_UNK_20000000 = 0x20000000,
|
||||
ERFLG1_UNK_10000000 = 0x10000000,
|
||||
ERFLG1_UNK_4000000 = 0x4000000,
|
||||
ERFLG1_UNK_200000 = 0x200000,
|
||||
ERFLG1_UNK_100000 = 0x100000,
|
||||
ERFLG1_UNK_40000 = 0x40000,
|
||||
ERFLG1_UNK_10000 = 0x10000,
|
||||
ERFLG1_UNK_2000 = 0x2000,
|
||||
ERFLG1_UNK_800 = 0x800,
|
||||
ERFLG1_UNK_400 = 0x400,
|
||||
ERFLG1_UNK_200 = 0x200,
|
||||
ERFLG1_UNK_100 = 0x100,
|
||||
ERFLG1_UNK_80 = 0x80,
|
||||
ERFLG1_UNK_10 = 0x10,
|
||||
ERFLG1_UNK_40 = 0x40,
|
||||
ERFLG1_UNK_20 = 0x20,
|
||||
ERFLG1_UNK_10 = 0x10,
|
||||
ERFLG1_UNK_8 = 8,
|
||||
ERFLG1_UNK_4 = 4,
|
||||
ERFLG1_UNK_2 = 2,
|
||||
@@ -386,9 +396,11 @@ public:
|
||||
};
|
||||
|
||||
enum daPy_RFLG0 {
|
||||
RFLG0_UNK_40000000 = 0x40000000,
|
||||
RFLG0_UNK_8000000 = 0x8000000,
|
||||
RFLG0_UNK_4000000 = 0x4000000,
|
||||
RFLG0_UNK_20000 = 0x20000,
|
||||
RFLG0_UNK_8000 = 0x8000,
|
||||
RFLG0_UNK_4000 = 0x4000,
|
||||
RFLG0_FRONT_ROLL_CRASH = 0x2000,
|
||||
RFLG0_ENEMY_ATTN_LOCK = 0x1000,
|
||||
@@ -407,6 +419,8 @@ public:
|
||||
RFLG1_UNK_30 = 0x30,
|
||||
RFLG1_UNK_2 = 0x2,
|
||||
RFLG1_WOLF_ATTACK_REVERSE = 0x1,
|
||||
|
||||
RFLG1_UNK_C = 0xC,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -742,6 +756,7 @@ public:
|
||||
bool checkFrontRollCrash() const { return i_checkResetFlg0(RFLG0_FRONT_ROLL_CRASH); }
|
||||
bool checkWolfAttackReverse() const { return checkResetFlg1(RFLG1_WOLF_ATTACK_REVERSE); }
|
||||
bool checkFreezeDamage() const { return i_checkNoResetFlg1(FLG1_UNK_40000000); }
|
||||
bool checkWolfTagLockJumpReady() const { return i_checkResetFlg0(RFLG0_UNK_20000); }
|
||||
|
||||
void onForceAutoJump() { i_onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); }
|
||||
void onNotAutoJump() { i_onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); }
|
||||
@@ -749,6 +764,12 @@ public:
|
||||
void onShieldBackBone() { i_onEndResetFlg1(ERFLG1_GANON_FINISH); }
|
||||
void onFogFade() { i_onNoResetFlg2(FLG2_UNK_4000); }
|
||||
|
||||
void offCargoCarry() {
|
||||
if (checkCargoCarry()) {
|
||||
mSpecialMode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void offGoronSideMove() {
|
||||
if (i_checkGoronSideMove()) {
|
||||
mSpecialMode = 0;
|
||||
@@ -762,38 +783,38 @@ public:
|
||||
|
||||
// some functions use these function as an inline
|
||||
// is there a better way to handle this?
|
||||
int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; }
|
||||
int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; }
|
||||
int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; }
|
||||
int i_checkNoResetFlg3(daPy_FLG3 pFlag) const { return mNoResetFlg3 & pFlag; }
|
||||
u32 i_checkNoResetFlg0(daPy_FLG0 i_flag) const { return mNoResetFlg0 & i_flag; }
|
||||
u32 i_checkNoResetFlg1(daPy_FLG1 i_flag) const { return mNoResetFlg1 & i_flag; }
|
||||
u32 i_checkNoResetFlg2(daPy_FLG2 i_flag) const { return mNoResetFlg2 & i_flag; }
|
||||
u32 i_checkNoResetFlg3(daPy_FLG3 i_flag) const { return mNoResetFlg3 & i_flag; }
|
||||
|
||||
void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; }
|
||||
void i_onNoResetFlg1(int pFlg) { mNoResetFlg1 |= pFlg; }
|
||||
void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; }
|
||||
void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; }
|
||||
void i_onNoResetFlg0(int i_flag) { mNoResetFlg0 |= i_flag; }
|
||||
void i_onNoResetFlg1(int i_flag) { mNoResetFlg1 |= i_flag; }
|
||||
void i_onNoResetFlg2(int i_flag) { mNoResetFlg2 |= i_flag; }
|
||||
void i_onNoResetFlg3(int i_flag) { mNoResetFlg3 |= i_flag; }
|
||||
|
||||
void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; }
|
||||
void i_offNoResetFlg1(int pFlg) { mNoResetFlg1 &= ~pFlg; }
|
||||
void i_offNoResetFlg2(int pFlg) { mNoResetFlg2 &= ~pFlg; }
|
||||
void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; }
|
||||
void i_offNoResetFlg0(int i_flag) { mNoResetFlg0 &= ~i_flag; }
|
||||
void i_offNoResetFlg1(int i_flag) { mNoResetFlg1 &= ~i_flag; }
|
||||
void i_offNoResetFlg2(int i_flag) { mNoResetFlg2 &= ~i_flag; }
|
||||
void i_offNoResetFlg3(int i_flag) { mNoResetFlg3 &= ~i_flag; }
|
||||
|
||||
void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; }
|
||||
void i_offResetFlg1(int flag) { mResetFlg1 &= ~flag; }
|
||||
void i_onResetFlg0(int flag) { mResetFlg0 |= flag; }
|
||||
void i_onResetFlg1(int flag) { mResetFlg1 |= flag; }
|
||||
|
||||
void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; }
|
||||
void i_onEndResetFlg2(int flag) { mEndResetFlg2 |= flag; }
|
||||
void i_offEndResetFlg2(daPy_ERFLG2 flag) { mEndResetFlg2 &= ~flag; }
|
||||
void i_onEndResetFlg0(int i_flag) { mEndResetFlg0 |= i_flag; }
|
||||
void i_onEndResetFlg2(int i_flag) { mEndResetFlg2 |= i_flag; }
|
||||
void i_offEndResetFlg2(daPy_ERFLG2 i_flag) { mEndResetFlg2 &= ~i_flag; }
|
||||
|
||||
int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; }
|
||||
int checkResetFlg1(daPy_py_c::daPy_RFLG1 flag) const { return mResetFlg1 & flag; }
|
||||
u32 i_checkResetFlg0(daPy_py_c::daPy_RFLG0 i_flag) const { return mResetFlg0 & i_flag; }
|
||||
u32 checkResetFlg1(daPy_py_c::daPy_RFLG1 i_flag) const { return mResetFlg1 & i_flag; }
|
||||
|
||||
int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; }
|
||||
int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; }
|
||||
int i_checkEndResetFlg2(daPy_py_c::daPy_ERFLG2 flag) const { return mEndResetFlg2 & flag; }
|
||||
u32 i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 i_flag) const { return mEndResetFlg0 & i_flag; }
|
||||
u32 i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 i_flag) const { return mEndResetFlg1 & i_flag; }
|
||||
u32 i_checkEndResetFlg2(daPy_py_c::daPy_ERFLG2 i_flag) const { return mEndResetFlg2 & i_flag; }
|
||||
|
||||
void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; }
|
||||
void i_onEndResetFlg1(daPy_ERFLG1 i_flag) { mEndResetFlg1 |= i_flag; }
|
||||
|
||||
u32 i_checkWolf() const { return i_checkNoResetFlg1(FLG1_IS_WOLF); }
|
||||
BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); }
|
||||
|
||||
@@ -167,6 +167,7 @@ public:
|
||||
|
||||
// inline dupe
|
||||
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
|
||||
bool i_ChkGroundHit() const { return m_flags & GROUND_HIT; }
|
||||
|
||||
public:
|
||||
/* 0x02C */ u32 m_flags;
|
||||
|
||||
@@ -322,6 +322,8 @@ public:
|
||||
void OffTgShield() { mGObjTg.OffSPrm(0x1); }
|
||||
void OnTgShieldFrontRange() { mGObjTg.OnSPrm(0x8); }
|
||||
void OffTgShieldFrontRange() { mGObjTg.OffSPrm(0x8); }
|
||||
void OnTgSmallShield() { mGObjTg.OnSPrm(0x10); }
|
||||
void OffTgSmallShield() { mGObjTg.OffSPrm(0x10); }
|
||||
bool ChkTgIronBallRebound() { return mGObjTg.ChkSPrm(0x100); }
|
||||
s16* GetTgShieldFrontRangeYAngle() { return mGObjTg.GetShieldFrontRangeYAngle(); }
|
||||
s16 GetTgShieldRange() { return mGObjTg.GetShieldRange(); }
|
||||
|
||||
@@ -1776,6 +1776,10 @@ inline BOOL dComIfGs_isStageMiddleBoss() {
|
||||
return g_dComIfG_gameInfo.info.getMemory().getBit().isStageBossEnemy2();
|
||||
}
|
||||
|
||||
inline void dComIfGs_setTransformStatus(u8 i_status) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setTransformStatus(i_status);
|
||||
}
|
||||
|
||||
void dComIfGp_setSelectItem(int index);
|
||||
s32 dComIfGp_offHeapLockFlag(int flag);
|
||||
void dComIfGp_createSubExpHeap2D();
|
||||
|
||||
@@ -207,7 +207,7 @@ public:
|
||||
|
||||
dAttCatch_c& getCatghTarget() { return mCatghTarget; }
|
||||
u8 getCatchChgItem() { return mCatghTarget.getChangeItem(); }
|
||||
BOOL chkFlag(u32 flag) { return mFlags & flag; }
|
||||
BOOL chkFlag(u32 flag) { return (mFlags & flag) ? TRUE : FALSE; }
|
||||
void setFlag(u32 flag) { mFlags |= flag; }
|
||||
void clrFlag(u32 flag) { mFlags &= ~flag; }
|
||||
int GetActionCount() { return mActionCount; }
|
||||
|
||||
@@ -52,7 +52,8 @@ public:
|
||||
struct dCamStyleData {
|
||||
struct StyleData {
|
||||
/* 0x0 */ u32 field_0x0;
|
||||
/* 0x4 */ u8 field_0x4[0x78 - 0x4];
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
/* 0x6 */ u8 field_0x6[0x78 - 0x6];
|
||||
}; // Size: 0x78
|
||||
|
||||
/* 0x0 */ u8 field_0x0[4];
|
||||
@@ -87,6 +88,8 @@ public:
|
||||
/* 0x14 */ int mStyleID;
|
||||
/* 0x18 */ u8 field_0x18[4];
|
||||
|
||||
u16 Algorythmn(s32 i_style) { return mCamStyleData[i_style].field_0x4; }
|
||||
|
||||
/* 8008858C */ virtual ~dCamParam_c();
|
||||
};
|
||||
|
||||
|
||||
+57
-26
@@ -77,23 +77,39 @@ struct d2DBSplinePath {
|
||||
/* 801828D4 */ virtual ~d2DBSplinePath();
|
||||
};
|
||||
|
||||
struct dCamera_event_param {
|
||||
/* 0x00 */ char name[16];
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ int value;
|
||||
};
|
||||
|
||||
struct dCamera_event_data {
|
||||
/* 0x000 */ u8 field_0x0;
|
||||
/* 0x004 */ int field_0x4;
|
||||
/* 0x008 */ u8 field_0x8[4];
|
||||
/* 0x008 */ int field_0x8;
|
||||
/* 0x00C */ int field_0xc;
|
||||
/* 0x010 */ u8 field_0x10;
|
||||
/* 0x014 */ int field_0x14;
|
||||
/* 0x018 */ int field_0x18;
|
||||
/* 0x01C */ int field_0x1c;
|
||||
/* 0x020 */ int field_0x20;
|
||||
/* 0x024 */ u8 field_0x24[0xEC - 0x24];
|
||||
/* 0x024 */ int field_0x24;
|
||||
/* 0x028 */ u8 field_0x28[0x2C - 0x28];
|
||||
/* 0x02C */ dCamera_event_param mEventParams[8];
|
||||
/* 0x0EC */ dStage_MapEvent_dt_c* field_0xec;
|
||||
/* 0x0F0 */ d2DBSplinePath field_0xf0;
|
||||
}; // Size: 0x124
|
||||
|
||||
struct dCamera_type_data {
|
||||
/* 0x00 */ char name[24];
|
||||
/* 0x18 */ s16 field_0x18[2][11];
|
||||
}; // Size: 0x44
|
||||
|
||||
class camera_class;
|
||||
|
||||
class dCamera_c;
|
||||
typedef bool (dCamera_c::*engine_fn)(s32);
|
||||
|
||||
class dCamera_c {
|
||||
public:
|
||||
class dCamInfo_c {
|
||||
@@ -163,12 +179,18 @@ public:
|
||||
/* 0x40 */ cSAngle field_0x40;
|
||||
}; // Size: 0x44
|
||||
|
||||
/* 80088A7C */ void StartEventCamera(int, int, ...);
|
||||
/* 80088BBC */ void EndEventCamera(int);
|
||||
/* 80088A7C */ int StartEventCamera(int, int, ...);
|
||||
/* 80088BBC */ int EndEventCamera(int);
|
||||
/* 80088C24 */ int searchEventArgData(char*);
|
||||
/* 8008908C */ void getEvIntData(int*, char*, int);
|
||||
/* 80088CB0 */ void getEvIntData(int*, char*);
|
||||
/* 80089154 */ void getEvFloatData(f32*, char*, f32);
|
||||
/* 80088D90 */ void getEvFloatData(f32*, char*);
|
||||
/* 80089154 */ void getEvFloatData(f32*, char*, f32);
|
||||
/* 80088E58 */ void getEvFloatListData(f32**, char*);
|
||||
/* 80088F1C */ void getEvXyzListData(cXyz**, char*);
|
||||
/* 8008941C */ void getEvStringPntData(char*, char*);
|
||||
/* 80088FE0 */ void getEvStringPntData(char*);
|
||||
/* 8008922C */ void getEvXyzData(cXyz*, char*, cXyz);
|
||||
/* 8008933C */ void getEvStringData(char*, char*, char*);
|
||||
/* 800894C4 */ void getEvActor(char*);
|
||||
/* 800895F4 */ void getEvActor(char*, char*);
|
||||
@@ -180,10 +202,11 @@ public:
|
||||
/* 8008BE2C */ void uniformTransEvCamera();
|
||||
/* 8008BE50 */ void uniformBrakeEvCamera();
|
||||
/* 8008BE74 */ void uniformAcceleEvCamera();
|
||||
/* 8008BE98 */ void transEvCamera(int);
|
||||
/* 8008E938 */ void watchActorEvCamera();
|
||||
/* 8008FAE8 */ void restorePosEvCamera();
|
||||
/* 80090174 */ void talktoEvCamera();
|
||||
/* 80090230 */ void maptoolIdEvCamera();
|
||||
/* 80090230 */ bool maptoolIdEvCamera();
|
||||
/* 80090478 */ void styleEvCamera();
|
||||
/* 80090514 */ void gameOverEvCamera();
|
||||
/* 80091468 */ void tactEvCamera();
|
||||
@@ -242,7 +265,7 @@ public:
|
||||
/* 8016469C */ void onStyleChange(s32, s32);
|
||||
/* 801647B0 */ void onRoomChange(s32);
|
||||
/* 80164878 */ void getParamTargetActor(s32);
|
||||
/* 80164944 */ void GetCameraTypeFromMapToolID(s32, s32);
|
||||
/* 80164944 */ int GetCameraTypeFromMapToolID(s32, s32);
|
||||
/* 80164B64 */ int GetCameraTypeFromCameraName(char const*);
|
||||
/* 80164C10 */ void GetCameraTypeFromToolData(stage_camera2_data_class*);
|
||||
/* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
|
||||
@@ -270,31 +293,31 @@ public:
|
||||
/* 80167E3C */ void tooNearEscape(cXyz*);
|
||||
/* 80167EF4 */ void getWaterSurfaceHeight(cXyz*);
|
||||
/* 80167FEC */ void checkGroundInfo();
|
||||
/* 80168744 */ void chaseCamera(s32);
|
||||
/* 8016C384 */ void lockonCamera(s32);
|
||||
/* 80168744 */ bool chaseCamera(s32);
|
||||
/* 8016C384 */ bool lockonCamera(s32);
|
||||
/* 8016E448 */ void getMsgCmdSpeaker();
|
||||
/* 8016E4A4 */ void getMsgCmdCut(s32);
|
||||
/* 8016E4F4 */ void talktoCamera(s32);
|
||||
/* 8016E4F4 */ bool talktoCamera(s32);
|
||||
/* 80174E18 */ void talkBasePos(fopAc_ac_c*);
|
||||
/* 80174E34 */ void talkEyePos(fopAc_ac_c*);
|
||||
/* 80174EA4 */ bool CalcSubjectAngle(s16*, s16*);
|
||||
/* 80174EAC */ void SaveZoomRatio();
|
||||
/* 80174ED4 */ void subjectCamera(s32);
|
||||
/* 80176074 */ void magneCamera(s32);
|
||||
/* 801767F8 */ void colosseumCamera(s32);
|
||||
/* 80174ED4 */ bool subjectCamera(s32);
|
||||
/* 80176074 */ bool magneCamera(s32);
|
||||
/* 801767F8 */ bool colosseumCamera(s32);
|
||||
/* 80176DF0 */ bool test1Camera(s32);
|
||||
/* 80176DF8 */ bool test2Camera(s32);
|
||||
/* 80176E00 */ void towerCamera(s32);
|
||||
/* 80178E50 */ void hookshotCamera(s32);
|
||||
/* 80179590 */ void railCamera(s32);
|
||||
/* 8017A2A0 */ void paraRailCamera(s32);
|
||||
/* 8017ADC0 */ void rideCamera(s32);
|
||||
/* 80176E00 */ bool towerCamera(s32);
|
||||
/* 80178E50 */ bool hookshotCamera(s32);
|
||||
/* 80179590 */ bool railCamera(s32);
|
||||
/* 8017A2A0 */ bool paraRailCamera(s32);
|
||||
/* 8017ADC0 */ bool rideCamera(s32);
|
||||
/* 8017D974 */ bool manualCamera(s32);
|
||||
/* 8017D97C */ void observeCamera(s32);
|
||||
/* 8017DFAC */ void fixedFrameCamera(s32);
|
||||
/* 8017E730 */ void fixedPositionCamera(s32);
|
||||
/* 8017F25C */ void oneSideCamera(s32);
|
||||
/* 8017F828 */ void eventCamera(s32);
|
||||
/* 8017D97C */ bool observeCamera(s32);
|
||||
/* 8017DFAC */ bool fixedFrameCamera(s32);
|
||||
/* 8017E730 */ bool fixedPositionCamera(s32);
|
||||
/* 8017F25C */ bool oneSideCamera(s32);
|
||||
/* 8017F828 */ bool eventCamera(s32);
|
||||
/* 8018050C */ void currentEvCamera();
|
||||
/* 801806D4 */ bool letCamera(s32);
|
||||
/* 801806DC */ void setEventRecoveryTrans(s16);
|
||||
@@ -334,7 +357,15 @@ public:
|
||||
f32 TrimHeight() { return mTrimHeight; }
|
||||
int Type() { return mCurType; }
|
||||
|
||||
bool i_chkFlag(u32 i_flag) { return mEventFlags & i_flag; }
|
||||
void i_setFlag(u32 i_flag) { mEventFlags |= i_flag; }
|
||||
void i_clrFlag(u32 i_flag) { mEventFlags &= ~i_flag; }
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static engine_fn engine_tbl[];
|
||||
#else
|
||||
static u8 engine_tbl[240];
|
||||
#endif
|
||||
|
||||
/* 0x000 */ camera_class* field_0x0;
|
||||
/* 0x004 */ int mRoomNo;
|
||||
@@ -396,7 +427,7 @@ public:
|
||||
/* 0x160 */ int field_0x160;
|
||||
/* 0x164 */ u8 field_0x164[0x170 - 0x164];
|
||||
/* 0x170 */ int field_0x170;
|
||||
/* 0x174 */ u32 field_0x174;
|
||||
/* 0x174 */ u32 mCurCamTypeTimer;
|
||||
/* 0x178 */ u32 mCameraID;
|
||||
/* 0x17C */ u32 mPadID;
|
||||
/* 0x180 */ fopAc_ac_c* mpPlayerActor;
|
||||
@@ -469,8 +500,8 @@ public:
|
||||
/* 0x678 */ int field_0x678;
|
||||
/* 0x67C */ int mCamStyle;
|
||||
/* 0x680 */ int field_0x684;
|
||||
/* 0x684 */ u8* mCamTypeData;
|
||||
/* 0x688 */ int field_0x688;
|
||||
/* 0x684 */ dCamera_type_data* mCamTypeData;
|
||||
/* 0x688 */ int mCamTypeNum;
|
||||
/* 0x68C */ int mCurType;
|
||||
/* 0x690 */ int mNextType;
|
||||
/* 0x694 */ int mMapToolType;
|
||||
|
||||
@@ -13,8 +13,8 @@ public:
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ s8 mType;
|
||||
/* 0x2 */ s16 mJntNum;
|
||||
/* 0x4 */ u32 field_0x4;
|
||||
/* 0x8 */ void* field_0x8;
|
||||
/* 0x4 */ f32 field_0x4;
|
||||
/* 0x8 */ Vec* field_0x8;
|
||||
};
|
||||
|
||||
class dJntCol_c {
|
||||
|
||||
+7
-1
@@ -344,7 +344,9 @@ struct dStage_MapEvent_dt_c {
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0A */ u8 field_0xA[0xD - 0xA];
|
||||
/* 0x0A */ u8 field_0xA;
|
||||
/* 0x0B */ u8 field_0xB;
|
||||
/* 0x0C */ u8 field_0xC;
|
||||
/* 0x0D */ char mName[7];
|
||||
/* 0x14 */ u16 field_0x14;
|
||||
/* 0x16 */ u8 field_0x16;
|
||||
@@ -1071,6 +1073,10 @@ inline u32 dStage_stagInfo_ChkKeyDisp(stage_stag_info_class* pstag) {
|
||||
return pstag->field_0x09 & 1;
|
||||
}
|
||||
|
||||
inline u8 dStage_stagInfo_GetWolfDashType(stage_stag_info_class* pstag) {
|
||||
return (pstag->field_0x09 >> 6) & 3;
|
||||
}
|
||||
|
||||
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
|
||||
return p_info->field_0xb & 0xF;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "d/a/d_a_itembase.h"
|
||||
#include "global.h"
|
||||
|
||||
int dEv_noFinishSkipProc(void*, int);
|
||||
|
||||
struct dStage_MapEvent_dt_c;
|
||||
class fopAc_ac_c;
|
||||
|
||||
@@ -162,6 +164,8 @@ public:
|
||||
bool isChangeOK(void* param_0) { return mChangeOK == param_0; }
|
||||
u8 getPreItemNo() { return mPreItemNo; }
|
||||
u8 getGtItm() { return mGtItm; }
|
||||
void i_startCheckSkipEdge(void* param_0) { setSkipProc(param_0, dEv_noFinishSkipProc, 0); }
|
||||
bool i_checkSkipEdge() { return chkFlag2(8) != false; }
|
||||
|
||||
public:
|
||||
/* 0x000 */ u8 field_0x0[4];
|
||||
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
/* 80238528 */ void getSelectWord(int);
|
||||
/* 80238544 */ static void setSelectWordFlag(u8);
|
||||
/* 80238574 */ void getSelectWordFlag();
|
||||
/* 80238588 */ bool isHowlHearingMode();
|
||||
/* 80238588 */ static bool isHowlHearingMode();
|
||||
/* 802385B4 */ static u8 getSelectBombBagID();
|
||||
/* 802385E0 */ static s16 getSelectBombPrice();
|
||||
/* 8023860C */ static void setEquipBombInfo();
|
||||
@@ -364,6 +364,14 @@ inline void dMsgObject_setEquipBombInfo() {
|
||||
dMsgObject_c::setEquipBombInfo();
|
||||
}
|
||||
|
||||
inline bool dMsgObject_isHowlHearingMode() {
|
||||
return dMsgObject_c::isHowlHearingMode();
|
||||
}
|
||||
|
||||
inline void dMsgObject_onMsgSend() {
|
||||
dMsgObject_getMsgObjectClass()->onMsgSend();
|
||||
}
|
||||
|
||||
class dMsgObject_HowlHIO_c {
|
||||
public:
|
||||
/* 80232AEC */ dMsgObject_HowlHIO_c();
|
||||
|
||||
@@ -21,6 +21,8 @@ public:
|
||||
/* 80051524 */ JPABaseEmitter* getCenterEmitter(int, int);
|
||||
|
||||
void clearCenterID() { clearID(field_0x8[0], &field_0x36); }
|
||||
void changeWaterOffset(f32 i_offset) { mWaterOffset = i_offset; }
|
||||
void changeRippleOffset(f32 i_offset) { mRippleOffset = i_offset; }
|
||||
|
||||
/* 0x00 */ u32 field_0x0[2];
|
||||
/* 0x08 */ u32 field_0x8[2][4];
|
||||
|
||||
@@ -411,6 +411,7 @@ public:
|
||||
void setLife(u16 i_life) { mLife = i_life; }
|
||||
void setMaxLife(u8 i_maxLife) { mMaxLife = i_maxLife; }
|
||||
void setSelectEquip(int i_equipId, u8 i_itemNo) { mSelectEquip[i_equipId] = i_itemNo; }
|
||||
void setTransformStatus(u8 i_status) { mTransformStatus = i_status; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ u16 mMaxLife;
|
||||
|
||||
@@ -248,11 +248,20 @@ public:
|
||||
bool checkWolfNoLock() const { return mFlags & 0x200; }
|
||||
bool checkHeadLockFlg() const { return mFlags & 0x80; }
|
||||
bool checkDownFlg() const { return mFlags & 0x1; }
|
||||
bool checkDeadFlg() const { return mFlags & 0x8; }
|
||||
cXyz& getDownPos() { return mDownPos; }
|
||||
cXyz& getHeadLockPos() { return mHeadLockPos; }
|
||||
|
||||
void onCutDownHitFlg() { mFlags |= 2; }
|
||||
void onWolfBiteDamage() { mFlags |= 0x40; }
|
||||
void onWolfDownStartFlg() { mFlags |= 0x14; }
|
||||
void onWolfDownPullEndFlg() { mFlags |= 0x20; }
|
||||
|
||||
void setThrowModeCatch() { mThrowMode |= 2; }
|
||||
void setThrowModeDash() { mThrowMode |= 4; }
|
||||
void setThrowModeThrowRight() { mThrowMode |= 0x10; }
|
||||
void setThrowModeThrowLeft() { mThrowMode |= 8; }
|
||||
|
||||
/* 0x568 */ cXyz mDownPos;
|
||||
/* 0x574 */ cXyz mHeadLockPos;
|
||||
/* 0x580 */ J3DModel* mBallModel;
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
#define F_OP_ACTOR_ITER_H_
|
||||
|
||||
|
||||
typedef int (*fopAcIt_ExecutorFunc)(void*, void*);
|
||||
typedef void* (*fopAcIt_JudgeFunc)(void*, void*);
|
||||
typedef int (*fopAcIt_ExecutorFunc)(void* actor, void* data);
|
||||
typedef void* (*fopAcIt_JudgeFunc)(void* actor, void* data);
|
||||
|
||||
int fopAcIt_Executor(fopAcIt_ExecutorFunc, void*);
|
||||
void* fopAcIt_Judge(fopAcIt_JudgeFunc, void*);
|
||||
int fopAcIt_Executor(fopAcIt_ExecutorFunc executeFunc, void* data);
|
||||
void* fopAcIt_Judge(fopAcIt_JudgeFunc judgeFunc, void* data);
|
||||
|
||||
#endif
|
||||
@@ -129,6 +129,14 @@ inline void mDoAud_changeSubBgmStatus(s32 param_0) {
|
||||
Z2AudioMgr::getInterface()->changeSubBgmStatus(param_0);
|
||||
}
|
||||
|
||||
inline void mDoAud_taktModeMute() {
|
||||
Z2AudioMgr::getInterface()->taktModeMute();
|
||||
}
|
||||
|
||||
inline void mDoAud_taktModeMuteOff() {
|
||||
Z2AudioMgr::getInterface()->taktModeMuteOff();
|
||||
}
|
||||
|
||||
inline void mDoAud_mEnvse_framework() {
|
||||
g_mEnvSeMgr.framework();
|
||||
}
|
||||
|
||||
@@ -402,6 +402,7 @@ public:
|
||||
|
||||
bool getOldFrameFlg() { return mOldFrameFlg; }
|
||||
void onOldFrameFlg() { mOldFrameFlg = true; }
|
||||
void offOldFrameFlg() { mOldFrameFlg = false; }
|
||||
f32 getOldFrameRate() { return mOldFrameRate; }
|
||||
J3DTransformInfo* getOldFrameTransInfo(int i) { return &mOldFrameTransInfo[i]; }
|
||||
u16 getOldFrameStartJoint() { return mOldFrameStartJoint; }
|
||||
@@ -506,6 +507,8 @@ public:
|
||||
/* 800134F8 */ void setMaterial();
|
||||
/* 800135D0 */ void draw();
|
||||
|
||||
cXyz* getPos(int i_idx) { return field_0x38[i_idx].field_0x0; }
|
||||
|
||||
private:
|
||||
/* 0x08 */ GXTexObj field_0x8;
|
||||
/* 0x28 */ GXColor field_0x28;
|
||||
|
||||
@@ -180,6 +180,7 @@ public:
|
||||
f32 getMorfFrame() const { return mMorfFrame; }
|
||||
f32 getBlendRate() { return field_0x594[1].getRatio(); }
|
||||
u16 getAnmIdx(int i_idx) const { return mAnmIdx[i_idx]; }
|
||||
int callHorse(const cXyz* param_0) { return (this->*mpCallHorseFn)(param_0); }
|
||||
|
||||
daHoZelda_c* i_getZeldaActor() { return (daHoZelda_c*)mZeldaActorKeep.getActor(); }
|
||||
|
||||
|
||||
@@ -1,6 +1,107 @@
|
||||
#ifndef D_A_KAGO_H
|
||||
#define D_A_KAGO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_path.h"
|
||||
|
||||
class daKago_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80849660 */ void getBckName(int);
|
||||
/* 808496F0 */ void setBck(int, u8, f32, f32);
|
||||
/* 80849798 */ void checkBck(int);
|
||||
/* 808497F8 */ void draw();
|
||||
/* 80849980 */ void executeBalloonMenu();
|
||||
/* 80849BA8 */ void checkGroundHeight(cXyz, f32*);
|
||||
/* 8084A070 */ void checkRoofHeight(cXyz);
|
||||
/* 8084A210 */ void checkMoveHeight();
|
||||
/* 8084A2A8 */ void checkSizeBg();
|
||||
/* 8084A6DC */ bool getBeforeGroundHeight(u8);
|
||||
/* 8084A6E4 */ void demo_skip(int);
|
||||
/* 8084AA64 */ void DemoSkipCallBack(void*, int);
|
||||
/* 8084AA98 */ void setActionMode(int, int);
|
||||
/* 8084AAAC */ void setMidnaTagPos();
|
||||
/* 8084AB40 */ void setMidnaRideOn();
|
||||
/* 8084AB8C */ void setPlayerRideOn();
|
||||
/* 8084ABC8 */ void setRideOff();
|
||||
/* 8084AC2C */ void searchNearPassPoint();
|
||||
/* 8084AE78 */ void setSceneChange(int);
|
||||
/* 8084AF40 */ void createBalloonScore();
|
||||
/* 8084AFB0 */ void startBalloonScore();
|
||||
/* 8084B024 */ void endBalloonScore();
|
||||
/* 8084B088 */ void checkNextPath(cXyz);
|
||||
/* 8084B108 */ void checkHeight();
|
||||
/* 8084B134 */ void checkYaguraPos(cXyz);
|
||||
/* 8084B1E0 */ void checkWallHitFall(int);
|
||||
/* 8084B56C */ void checkAttackStart();
|
||||
/* 8084B5DC */ void getValueY(f32);
|
||||
/* 8084B6F4 */ void getValueX(f32);
|
||||
/* 8084B718 */ void getValueAbsX(f32);
|
||||
/* 8084B744 */ void flySpeedCalcLockOn();
|
||||
/* 8084B96C */ void flySpeedCalc(s16, int);
|
||||
/* 8084C078 */ void checkFlySceneChange();
|
||||
/* 8084C178 */ void setFlyAway();
|
||||
/* 8084C204 */ void setFlyAnime();
|
||||
/* 8084C2CC */ void executeFly();
|
||||
/* 8084C8FC */ void executeStagger();
|
||||
/* 8084D108 */ void executeWait();
|
||||
/* 8084D354 */ void calcAttackMove(int);
|
||||
/* 8084D50C */ void executeAttack();
|
||||
/* 8084DA18 */ void calcCircleCamera(int);
|
||||
/* 8084DBFC */ void executeEvent();
|
||||
/* 8084DD18 */ void initPerchDemo();
|
||||
/* 8084E2D4 */ void executePerchDemo();
|
||||
/* 8084F09C */ void PerchDemoAwayForward();
|
||||
/* 8084FA58 */ void executePerch();
|
||||
/* 8084FAA8 */ void executeEvent2();
|
||||
/* 8084FB50 */ void initFirstDemo();
|
||||
/* 80850384 */ void executeFirstDemo();
|
||||
/* 808513E4 */ void executePerch2();
|
||||
/* 80851434 */ void executeLandingLakeHairia();
|
||||
/* 80851DEC */ void executeLandingBoartHouse();
|
||||
/* 808525B0 */ void executeLanding();
|
||||
/* 80852610 */ void moveDemoFly();
|
||||
/* 80852D90 */ void setFlyEffect();
|
||||
/* 80852F14 */ void setDashEffect();
|
||||
/* 808530A4 */ void setDamageEffect();
|
||||
/* 80853228 */ void setDashBlurEffect(int);
|
||||
/* 80853460 */ void setWallHitEffect(cXyz, int);
|
||||
/* 8085350C */ void setSibukiEffect();
|
||||
/* 8085366C */ void setDashSibukiEffect();
|
||||
/* 80853730 */ void setWaterFallEffect();
|
||||
/* 8085392C */ void setFlySound();
|
||||
/* 80853BCC */ void action();
|
||||
/* 80853EF0 */ void mtx_set();
|
||||
/* 80853FB0 */ void cc_set();
|
||||
/* 80854058 */ void execute();
|
||||
/* 80854190 */ void _delete();
|
||||
/* 80854220 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 808542DC */ void JointCallBack(J3DJoint*, int);
|
||||
/* 80854328 */ void CreateHeap();
|
||||
/* 808544D8 */ void create();
|
||||
|
||||
void setEvent() {
|
||||
field_0x6e1 = 0;
|
||||
field_0x740 = 2;
|
||||
field_0x744 = 0;
|
||||
}
|
||||
|
||||
void setKagoPath(u8 i_pathNo) {
|
||||
if (i_pathNo != 0xFF) {
|
||||
field_0x76c = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
}
|
||||
|
||||
MtxP getLegR3Mtx() { return mLegR3Mtx; }
|
||||
|
||||
/* 0x568 */ u8 field_0x568[0x620 - 0x568];
|
||||
/* 0x620 */ Mtx mLegR3Mtx;
|
||||
/* 0x650 */ u8 field_0x650[0x6E1 - 0x650];
|
||||
/* 0x6E1 */ u8 field_0x6e1;
|
||||
/* 0x6E2 */ u8 field_0x6E2[0x740 - 0x6E2];
|
||||
/* 0x740 */ int field_0x740;
|
||||
/* 0x744 */ int field_0x744;
|
||||
/* 0x748 */ u8 field_0x748[0x76C - 0x748];
|
||||
/* 0x76C */ dPath* field_0x76c;
|
||||
};
|
||||
|
||||
#endif /* D_A_KAGO_H */
|
||||
|
||||
@@ -166,10 +166,12 @@ public:
|
||||
|
||||
inline static BOOL checkMidnaRealBody();
|
||||
|
||||
bool i_checkMidnaTired() {
|
||||
static bool i_checkMidnaTired() {
|
||||
return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08);
|
||||
}
|
||||
|
||||
void resetRatBody() {}
|
||||
|
||||
static u8 const m_texDataTable[84];
|
||||
static u8 const m_anmDataTable[636];
|
||||
|
||||
|
||||
@@ -1,6 +1,72 @@
|
||||
#ifndef D_A_E_PM_H
|
||||
#define D_A_E_PM_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daE_PM_c : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 80741FB4 */ void DemoSkip(int);
|
||||
/* 80742004 */ void DemoSkipCallBack(void*, int);
|
||||
/* 80742038 */ void CreateHeap();
|
||||
/* 80742448 */ void initCcCylinder();
|
||||
/* 807424C0 */ void setCcCylinder();
|
||||
/* 80742508 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80742600 */ void Particle_Set(u16, cXyz);
|
||||
/* 80742674 */ void SetAnm(int, int, f32, f32);
|
||||
/* 80742810 */ void Yazirushi();
|
||||
/* 807428A8 */ void SearchRndP();
|
||||
/* 80742958 */ void SearchFarP();
|
||||
/* 80742C94 */ void SearchNearP();
|
||||
/* 80742E1C */ void SearchNextPos();
|
||||
/* 80742FB4 */ void SetGakkiEffect();
|
||||
/* 807430C4 */ void CameraSet();
|
||||
/* 80743210 */ void SetStopingCam();
|
||||
/* 80743294 */ void SetStopCam(cXyz, f32, f32, s16);
|
||||
/* 807433E8 */ void SetMoveCam2(f32, f32);
|
||||
/* 80743524 */ void SetMoveCam(f32, f32);
|
||||
/* 80743600 */ void SetReleaseCam();
|
||||
/* 807436A4 */ void Ap_StartAction();
|
||||
/* 80743D8C */ void Ap_CreateAction();
|
||||
/* 807444F0 */ void Ap_EscapeAction();
|
||||
/* 80744790 */ void AppearAction();
|
||||
/* 80744878 */ void DemoBeforeEscape();
|
||||
/* 80744DA0 */ void DemoAfterEscape();
|
||||
/* 807453F4 */ void DemoMoveAction();
|
||||
/* 80745438 */ void WaitAction();
|
||||
/* 807455F4 */ void GroundCheck();
|
||||
/* 80745970 */ void EscapeAction();
|
||||
/* 80745C44 */ void DeathAction();
|
||||
/* 80745DBC */ void Action();
|
||||
/* 80745ED0 */ void DemoBossStart2();
|
||||
/* 80746624 */ void DemoBossStart();
|
||||
/* 80747194 */ void BossEscapeAction();
|
||||
/* 807476A0 */ void BossDamageAction();
|
||||
/* 80747F38 */ void BossWaitAction();
|
||||
/* 807480A4 */ void BossDeathAction();
|
||||
/* 80748964 */ void BossAction();
|
||||
/* 80748B18 */ void Execute();
|
||||
/* 80748D74 */ void StartAction();
|
||||
/* 8074954C */ void GakkiLoopAction(cXyz, f32);
|
||||
/* 807499C0 */ void DemoCreateAction();
|
||||
/* 80749C0C */ void CreateAction();
|
||||
/* 80749D9C */ void CreateChk();
|
||||
/* 80749ED0 */ void LampAction();
|
||||
/* 8074A14C */ void DamageAction();
|
||||
/* 8074A210 */ void At_Check();
|
||||
/* 8074A3DC */ void ObjHit();
|
||||
/* 8074A644 */ void EyeMove();
|
||||
/* 8074A6CC */ void Draw();
|
||||
/* 8074AAC0 */ void Delete();
|
||||
/* 8074AB28 */ void setBaseMtx();
|
||||
/* 8074ABA8 */ void setGakkiBaseMtx();
|
||||
/* 8074AC10 */ void setLampBaseMtx();
|
||||
/* 8074AEF8 */ void SkipChk();
|
||||
/* 8074B4DC */ void Create();
|
||||
|
||||
void AppearSet() { mAppear = true; }
|
||||
|
||||
/* 0x5AC */ u8 field_0x5ac[0x619 - 0x5AC];
|
||||
/* 0x619 */ bool mAppear;
|
||||
};
|
||||
|
||||
#endif /* D_A_E_PM_H */
|
||||
|
||||
@@ -1,141 +1,46 @@
|
||||
#ifndef D_A_E_YC_H
|
||||
#define D_A_E_YC_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
// #include "f_op/f_op_actor.h"
|
||||
// #include "Z2AudioLib/Z2Creature.h"
|
||||
// #include "d/com/d_com_inf_game.h"
|
||||
// #include "d/bg/d_bg_s_acch.h"
|
||||
// #include "d/cc/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
// struct dCcD_GStts {
|
||||
// /* 80083760 */ dCcD_GStts();
|
||||
// /* 80083830 */ void Move();
|
||||
// };
|
||||
class e_yc_class : public fopEn_enemy_c {
|
||||
public:
|
||||
MtxP getLegR3Mtx() { return field_0x5B8->getModel()->i_getAnmMtx(28); }
|
||||
|
||||
// struct dCcD_Stts {
|
||||
// /* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
// };
|
||||
|
||||
// struct dCcD_SrcSph {};
|
||||
|
||||
// struct dCcD_Sph {
|
||||
// /* 80084A34 */ void Set(dCcD_SrcSph const&);
|
||||
// };
|
||||
|
||||
// struct cCcD_Obj {};
|
||||
|
||||
// struct dCcD_GObjInf {
|
||||
// /* 80083A28 */ dCcD_GObjInf();
|
||||
// /* 80084460 */ int ChkTgHit();
|
||||
// /* 800844F8 */ cCcD_Obj* GetTgHitObj();
|
||||
// };
|
||||
|
||||
// struct dBgS_PolyPassChk {
|
||||
// /* 80078E68 */ void SetObj();
|
||||
// };
|
||||
|
||||
// struct dBgS_ObjAcch {
|
||||
// /* 807F274C */ ~dBgS_ObjAcch();
|
||||
// };
|
||||
|
||||
// struct dBgS_AcchCir {
|
||||
// /* 80075EAC */ dBgS_AcchCir();
|
||||
// /* 80075F58 */ void SetWall(f32, f32);
|
||||
// };
|
||||
|
||||
// struct dBgS {};
|
||||
|
||||
// struct dBgS_Acch {
|
||||
// /* 80075F94 */ ~dBgS_Acch();
|
||||
// /* 800760A0 */ dBgS_Acch();
|
||||
// /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
|
||||
// /* 80076AAC */ void CrrPos(dBgS&);
|
||||
// };
|
||||
|
||||
// struct cM3dGSph {
|
||||
// /* 8026F648 */ void SetC(cXyz const&);
|
||||
// /* 8026F708 */ void SetR(f32);
|
||||
// /* 807F26BC */ ~cM3dGSph();
|
||||
// };
|
||||
|
||||
// struct cM3dGAab {
|
||||
// /* 807F2704 */ ~cM3dGAab();
|
||||
// };
|
||||
|
||||
// struct cCcS {
|
||||
// /* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
// };
|
||||
|
||||
// struct request_of_phase_process_class {};
|
||||
|
||||
// struct mDoMtx_stack_c {
|
||||
// /* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
|
||||
// static u8 now[48];
|
||||
// };
|
||||
|
||||
// struct daE_YC_HIO_c {
|
||||
// /* 807EFECC */ daE_YC_HIO_c();
|
||||
// /* 807F27BC */ ~daE_YC_HIO_c();
|
||||
// };
|
||||
|
||||
// struct dVibration_c {
|
||||
// /* 8006FA24 */ void StartShock(int, int, cXyz);
|
||||
// };
|
||||
|
||||
// struct dPa_levelEcallBack {};
|
||||
|
||||
// struct dPa_control_c {
|
||||
// struct level_c {
|
||||
// /* 8004B918 */ void getEmitter(u32);
|
||||
// };
|
||||
|
||||
// /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
|
||||
// /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
|
||||
// cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
|
||||
// _GXColor const*, cXyz const*, f32);
|
||||
// /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
|
||||
// u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
|
||||
// cXyz const*, f32);
|
||||
// };
|
||||
|
||||
// class e_yc_class : public fopAc_ac_c {
|
||||
// public:
|
||||
// /* 0x568 */ u8 field_0x568[80];
|
||||
// /* 0x5B8 */ int field_0x5B8;
|
||||
// /* 0x5BC */ Z2CreatureEnemy mEnemy;
|
||||
// /* 0x660 */ int mAnm;
|
||||
// /* 0x664 */ int field_0x664;
|
||||
// /* 0x668 */ u8 field_0x668[6];
|
||||
// /* 0x66E */ s16 mCurrentAction;
|
||||
// /* 0x670 */ s16 field_0x670;
|
||||
// /* 0x672 */ u8 field_0x672[2];
|
||||
// /* 0x674 */ f32 field_0x674;
|
||||
// /* 0x678 */ f32 field_0x678;
|
||||
// /* 0x67C */ f32 field_0x67C;
|
||||
// /* 0x680 */ s16 field_0x680;
|
||||
// /* 0x682 */ u8 field_0x682[2];
|
||||
// /* 0x684 */ f32 field_0x684;
|
||||
// /* 0x688 */ u32 field_0x688;
|
||||
// /* 0x68C */ u8 field_0x68C[4];
|
||||
// /* 0x690 */ f32 field_0x690;
|
||||
// /* 0x694 */ u8 field_0x694[28];
|
||||
// /* 0x69C */ f32 field_0x69C;
|
||||
// /* 0x6A0 */ s16 field_0x6A0;
|
||||
// /* 0x6A2 */ s16 field_0x6A2;
|
||||
// /* 0x6A4 */ s16 field_0x6A4;
|
||||
// /* 0x6A6 */ s16 field_0x6A6;
|
||||
// /* 0x6A8 */ s16 field_0x6A8;
|
||||
// /* 0x6AA */ s16 field_0x6AA;
|
||||
// /* 0x6AC */ void* field_0x6AC;
|
||||
// /* 0x6B0 */ u8 field_0x6B0[72];
|
||||
// /* 0x6F4 */ dBgS_Acch mBgS_Acch;
|
||||
// /* 0x8CC */ u8 field_0x8CC[28];
|
||||
// /* 0x8E8 */ dCcD_GStts mCcD_GStts;
|
||||
// /* 0x908 */ dCcD_GObjInf mCcD_GObjInf;
|
||||
// /* 0xA0C */ u8 field_0xA0C[364];
|
||||
// /* 0xB78 */ cCcD_Obj* mpTgHitObj;
|
||||
// };
|
||||
/* 0x5AC */ u8 field_0x5ac[0x5B8 - 0x5AC];
|
||||
/* 0x5B8 */ mDoExt_McaMorfSO* field_0x5B8;
|
||||
/* 0x5BC */ Z2CreatureEnemy mEnemy;
|
||||
/* 0x660 */ int mAnm;
|
||||
/* 0x664 */ int field_0x664;
|
||||
/* 0x668 */ u8 field_0x668[6];
|
||||
/* 0x66E */ s16 mCurrentAction;
|
||||
/* 0x670 */ s16 field_0x670;
|
||||
/* 0x672 */ u8 field_0x672[2];
|
||||
/* 0x674 */ f32 field_0x674;
|
||||
/* 0x678 */ f32 field_0x678;
|
||||
/* 0x67C */ f32 field_0x67C;
|
||||
/* 0x680 */ s16 field_0x680;
|
||||
/* 0x682 */ u8 field_0x682[2];
|
||||
/* 0x684 */ f32 field_0x684;
|
||||
/* 0x688 */ u32 field_0x688;
|
||||
/* 0x68C */ u8 field_0x68C[4];
|
||||
/* 0x690 */ f32 field_0x690;
|
||||
/* 0x694 */ u8 field_0x694[28];
|
||||
/* 0x69C */ f32 field_0x69C;
|
||||
/* 0x6A0 */ s16 field_0x6A0;
|
||||
/* 0x6A2 */ s16 field_0x6A2;
|
||||
/* 0x6A4 */ s16 field_0x6A4;
|
||||
/* 0x6A6 */ s16 field_0x6A6;
|
||||
/* 0x6A8 */ s16 field_0x6A8;
|
||||
/* 0x6AA */ s16 field_0x6AA;
|
||||
/* 0x6AC */ void* field_0x6AC;
|
||||
/* 0x6B0 */ u8 field_0x6B0[72];
|
||||
/* 0x6F4 */ dBgS_Acch mBgS_Acch;
|
||||
/* 0x8CC */ u8 field_0x8CC[28];
|
||||
/* 0x8E8 */ dCcD_GStts mCcD_GStts;
|
||||
/* 0x908 */ dCcD_GObjInf mCcD_GObjInf;
|
||||
/* 0xA0C */ u8 field_0xA0C[364];
|
||||
/* 0xB78 */ cCcD_Obj* mpTgHitObj;
|
||||
};
|
||||
|
||||
#endif /* D_A_E_YC_H */
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
#ifndef D_A_KYTAG03_H
|
||||
#define D_A_KYTAG03_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_path.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class kytag03_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ dPath* mpPath;
|
||||
/* 0x56C */ JPABaseEmitter* mpEmitter;
|
||||
/* 0x570 */ f32 field_0x570;
|
||||
/* 0x574 */ f32 field_0x574;
|
||||
/* 0x578 */ f32 field_0x578;
|
||||
/* 0x57C */ f32 field_0x57c;
|
||||
/* 0x580 */ int field_0x580;
|
||||
/* 0x584 */ u8 field_0x584;
|
||||
/* 0x585 */ u8 field_0x585;
|
||||
/* 0x586 */ u8 field_0x586;
|
||||
/* 0x587 */ u8 field_0x587;
|
||||
/* 0x588 */ u8 field_0x588;
|
||||
/* 0x589 */ u8 field_0x589;
|
||||
/* 0x58A */ u16 field_0x58a;
|
||||
/* 0x58C */ u8 field_0x58C[0x58E - 0x58C];
|
||||
/* 0x58E */ u8 field_0x58e;
|
||||
};
|
||||
|
||||
#endif /* D_A_KYTAG03_H */
|
||||
|
||||
@@ -1,6 +1,66 @@
|
||||
#ifndef D_A_NPC_GWOLF_H
|
||||
#define D_A_NPC_GWOLF_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
class daNpc_GWolf_c : public daNpcF_c {
|
||||
public:
|
||||
/* 809F30AC */ daNpc_GWolf_c();
|
||||
/* 809F34C0 */ void create();
|
||||
/* 809F37C0 */ void CreateHeap();
|
||||
/* 809F3BD8 */ void Delete();
|
||||
/* 809F3C0C */ void Execute();
|
||||
/* 809F3C2C */ void Draw();
|
||||
/* 809F3CBC */ void draw(int, int, f32, GXColorS10*, int);
|
||||
/* 809F3FB8 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 809F41EC */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 809F420C */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 809F4E38 */ void getTypeFromParam();
|
||||
/* 809F4E84 */ void getModeFromParam();
|
||||
/* 809F4F00 */ void isDelete();
|
||||
/* 809F4FF4 */ void reset();
|
||||
/* 809F520C */ void playMotion();
|
||||
/* 809F55D0 */ void chkAction(int (daNpc_GWolf_c::*)(void*));
|
||||
/* 809F55FC */ void setAction(int (daNpc_GWolf_c::*)(void*));
|
||||
/* 809F56A4 */ void selectAction();
|
||||
/* 809F5770 */ void doNormalAction(int);
|
||||
/* 809F5884 */ void doEvent();
|
||||
/* 809F5B60 */ void setLookMode(int);
|
||||
/* 809F5B84 */ void lookat();
|
||||
/* 809F5E0C */ void ECut_attackWarp(int);
|
||||
/* 809F6548 */ void ECut_attackWarpHorse(int);
|
||||
/* 809F6BFC */ void ECut_howlingSessionA(int);
|
||||
/* 809F70A8 */ void meetGWolfSkip();
|
||||
/* 809F70EC */ void ECut_meetGWolf(int);
|
||||
/* 809F71E0 */ void wait(void*);
|
||||
/* 809F75C0 */ void waitHowling(void*);
|
||||
/* 809F775C */ void waitBrave(void*);
|
||||
/* 809F77E4 */ void talk(void*);
|
||||
/* 809F797C */ void test(void*);
|
||||
/* 809F7A30 */ void getGroundSlope(dBgS_ObjAcch&, s16);
|
||||
|
||||
/* 809F32C0 */ ~daNpc_GWolf_c();
|
||||
/* 809F4258 */ void setParam();
|
||||
/* 809F4390 */ BOOL main();
|
||||
/* 809F4558 */ BOOL ctrlBtk();
|
||||
/* 809F4638 */ void adjustShapeAngle();
|
||||
/* 809F4698 */ void setAttnPos();
|
||||
/* 809F4BB0 */ bool setExpressionAnm(int, bool);
|
||||
/* 809F4BB8 */ void setExpression(int, f32);
|
||||
/* 809F4BBC */ void setMotionAnm(int, f32);
|
||||
/* 809F4DE8 */ void setMotion(int, f32, int);
|
||||
/* 809F4E2C */ BOOL drawDbgInfo();
|
||||
/* 809F4E34 */ void drawOtherMdls();
|
||||
|
||||
void setHowlingEndFlag() { field_0xe1c = 2; }
|
||||
void setHowlingFlag() { field_0xe1c = 1; }
|
||||
|
||||
static void* mEvtCutNameList[5];
|
||||
static u8 mEvtCutList[60];
|
||||
|
||||
/* 0xB48 */ u8 field_0xb48[0xE1C - 0xB48];
|
||||
/* 0xE1C */ u8 field_0xe1c;
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_GWOLF_H */
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
#ifndef D_A_NPC_TK_H
|
||||
#define D_A_NPC_TK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_path.h"
|
||||
|
||||
struct cXyz;
|
||||
class fopAc_ac_c;
|
||||
class J3DJoint;
|
||||
class J3DModel;
|
||||
|
||||
struct daNPC_TK_c {
|
||||
class daNPC_TK_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80B01498 */ void setBck(int, u8, f32, f32);
|
||||
/* 80B0153C */ void checkBck(int);
|
||||
/* 80B01598 */ void draw();
|
||||
@@ -59,10 +61,19 @@ struct daNPC_TK_c {
|
||||
/* 80B0BBC8 */ void CreateHeap();
|
||||
/* 80B0BD24 */ void create();
|
||||
|
||||
void setBump() { mBump |= 4; }
|
||||
void setBump() { mFlags |= 4; }
|
||||
void setEventWolf() { mFlags |= 0x80; }
|
||||
|
||||
u8 field_0x0[0x6BE];
|
||||
u16 mBump;
|
||||
void setHawkPath(u8 i_pathNo) {
|
||||
if (i_pathNo != 0xFF) {
|
||||
field_0x6c8 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
}
|
||||
|
||||
/* 0x568 */ u8 field_0x568[0x6BE - 0x568];
|
||||
/* 0x6BE */ u16 mFlags;
|
||||
/* 0x6C0 */ u8 field_0x6c0[0x6C8 - 0x6C0];
|
||||
/* 0x6C8 */ dPath* field_0x6c8;
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_TK_H */
|
||||
|
||||
@@ -1,6 +1,53 @@
|
||||
#ifndef D_A_OBJ_CROPE_H
|
||||
#define D_A_OBJ_CROPE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daObjCrope_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80BCCCD8 */ void createHeap();
|
||||
/* 80BCCD64 */ void create();
|
||||
/* 80BCD524 */ ~daObjCrope_c();
|
||||
/* 80BCD6C4 */ void setNormalRopePos();
|
||||
/* 80BCD9EC */ void setRideRopePos();
|
||||
/* 80BCE4FC */ void execute();
|
||||
/* 80BCE9BC */ void draw();
|
||||
|
||||
cXyz* getRopeStartPos() { return mLineMat.getPos(0); }
|
||||
cXyz* getRopeEndPos() { return &mLineMat.getPos(0)[99]; }
|
||||
cXyz* getRopeVec() { return &mRopeVec; }
|
||||
cXyz& getPlayerNearPos() { return mPlayerNearPos; }
|
||||
void onOutFlg() { mOutFlg = true; }
|
||||
void setFrontJoint(int i_jointNo) { mFrontJoint = i_jointNo; }
|
||||
void setBackJoint(int i_jointNo) { mBackJoint = i_jointNo; }
|
||||
|
||||
f32 getStartRate(const cXyz* param_0) {
|
||||
return field_0x714 ? field_0x724 * (param_0->x - getRopeStartPos()->x) :
|
||||
field_0x724 * (param_0->z - getRopeStartPos()->z);
|
||||
}
|
||||
|
||||
void rideKeep() {
|
||||
setFrontJoint(-2);
|
||||
setBackJoint(-1);
|
||||
}
|
||||
|
||||
/* 0x0568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0570 */ dCcD_Stts mCcStts;
|
||||
/* 0x05AC */ dCcD_Sph mCollider;
|
||||
/* 0x06E4 */ Mtx field_0x6e4;
|
||||
/* 0x0714 */ u8 field_0x714;
|
||||
/* 0x0715 */ u8 mOutFlg;
|
||||
/* 0x0716 */ u8 mCoCancelTimer;
|
||||
/* 0x0718 */ int mFrontJoint;
|
||||
/* 0x071C */ int mBackJoint;
|
||||
/* 0x0720 */ f32 field_0x720;
|
||||
/* 0x0724 */ f32 field_0x724;
|
||||
/* 0x0728 */ cXyz mRopeVec;
|
||||
/* 0x0734 */ cXyz mPlayerNearPos;
|
||||
/* 0x0740 */ cXyz field_0x740[98];
|
||||
/* 0x0BD8 */ cXyz field_0xbd8[98];
|
||||
/* 0x1070 */ mDoExt_3DlineMat1_c mLineMat;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_CROPE_H */
|
||||
|
||||
@@ -1,6 +1,114 @@
|
||||
#ifndef D_A_OBJ_SEKIZOA_H
|
||||
#define D_A_OBJ_SEKIZOA_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
class daObj_Sekizoa_c : public daNpcT_c {
|
||||
public:
|
||||
/* 80CCE34C */ ~daObj_Sekizoa_c();
|
||||
/* 80CCE570 */ void create();
|
||||
/* 80CCE8B0 */ void CreateHeap();
|
||||
/* 80CCEC54 */ void Delete();
|
||||
/* 80CCEC88 */ void Execute();
|
||||
/* 80CCECA8 */ void Draw();
|
||||
/* 80CCED74 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80CCED94 */ void srchSekizoa(void*, void*);
|
||||
/* 80CCEE30 */ void getSekizoaP(int);
|
||||
/* 80CCEFA4 */ void getKMsgTagP();
|
||||
/* 80CCF03C */ void isDelete();
|
||||
/* 80CCF138 */ void reset();
|
||||
/* 80CCF708 */ void srchActors();
|
||||
/* 80CD04FC */ void setYariAnm(int, int, f32);
|
||||
/* 80CD0A84 */ void selectAction();
|
||||
/* 80CD0B08 */ void chkAction(int (daObj_Sekizoa_c::*)(void*));
|
||||
/* 80CD0B34 */ void setAction(int (daObj_Sekizoa_c::*)(void*));
|
||||
/* 80CD0BDC */ void checkMoveDirection();
|
||||
/* 80CD0DE8 */ void getWaitMotionNo();
|
||||
/* 80CD0E30 */ void getGameMotionNo();
|
||||
/* 80CD0E78 */ void getNoJumpMotionNo();
|
||||
/* 80CD0EAC */ void getHitMotionNo();
|
||||
/* 80CD0EE0 */ void getStepMotionNo();
|
||||
/* 80CD0F14 */ void jump();
|
||||
/* 80CD14D8 */ void landing();
|
||||
/* 80CD1688 */ void cutStart(int);
|
||||
/* 80CD2708 */ void cutTurn(int);
|
||||
/* 80CD2908 */ void cutJump(int);
|
||||
/* 80CD2B64 */ void cutGoal(int);
|
||||
/* 80CD376C */ void cutExit(int);
|
||||
/* 80CD38F0 */ void cutFree(int);
|
||||
/* 80CD3BD8 */ void cutExtinction(int);
|
||||
/* 80CD3F08 */ void wait(void*);
|
||||
/* 80CD425C */ void puzzle(void*);
|
||||
/* 80CD45B0 */ void talk(void*);
|
||||
/* 80CD5A40 */ daObj_Sekizoa_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
|
||||
daNpcT_evtData_c const*, char**);
|
||||
/* 80CD5B84 */ void chkGoal();
|
||||
/* 801312C8 */ void setWolfHowling();
|
||||
|
||||
/* 80CD5B7C */ s32 getBackboneJointNo();
|
||||
/* 80CD5B74 */ s32 getHeadJointNo();
|
||||
/* 80CCF358 */ void afterJntAnm(int);
|
||||
/* 80CCF3E4 */ void setParam();
|
||||
/* 80CCF6BC */ bool checkChangeEvt();
|
||||
/* 80CCF9A8 */ bool evtTalk();
|
||||
/* 80CCFAA8 */ bool evtCutProc();
|
||||
/* 80CCF704 */ void setAfterTalkMotion();
|
||||
/* 80CCFBA0 */ void action();
|
||||
/* 80CCFD08 */ void beforeMove();
|
||||
/* 80CCFD80 */ void setAttnPos();
|
||||
/* 80CD009C */ void setCollision();
|
||||
/* 80CD03C0 */ int drawDbgInfo();
|
||||
/* 80CD03C8 */ void drawOtherMdl();
|
||||
/* 80CD05D0 */ void drawGhost();
|
||||
/* 80CD06BC */ bool afterSetMotionAnm(int, int, f32, int);
|
||||
|
||||
u8 getType() {
|
||||
int prm = fopAcM_GetParam(this) >> 0x1C;
|
||||
|
||||
u8 type;
|
||||
switch (mSubtype) {
|
||||
case 0:
|
||||
switch (prm) {
|
||||
case 1:
|
||||
type = 2;
|
||||
break;
|
||||
case 2:
|
||||
type = 4;
|
||||
break;
|
||||
case 3:
|
||||
type = 6;
|
||||
break;
|
||||
default:
|
||||
type = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (prm) {
|
||||
case 1:
|
||||
type = 3;
|
||||
break;
|
||||
case 2:
|
||||
type = 5;
|
||||
break;
|
||||
default:
|
||||
type = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
type = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
static void* mCutNameList[9];
|
||||
static u8 mCutList[108];
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_SEKIZOA_H */
|
||||
|
||||
@@ -1,6 +1,23 @@
|
||||
#ifndef D_A_OBJ_SMW_STONE_H
|
||||
#define D_A_OBJ_SMW_STONE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daSmWStone_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80CDE538 */ daSmWStone_c();
|
||||
/* 80CDE588 */ ~daSmWStone_c();
|
||||
/* 80CDE614 */ void create();
|
||||
/* 80CDE8D8 */ void execute();
|
||||
/* 80CDE92C */ void draw();
|
||||
/* 80CDEA2C */ void Delete();
|
||||
/* 80CDEAA4 */ void exeModeHowl();
|
||||
/* 80CDEBA0 */ void setModelMtx();
|
||||
/* 80CDEC04 */ void createHeap();
|
||||
/* 80CDED30 */ void init();
|
||||
/* 80CDED9C */ void chkWlfInRange();
|
||||
|
||||
int getTuneId() { return 2; }
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_SMW_STONE_H */
|
||||
|
||||
@@ -1,6 +1,28 @@
|
||||
#ifndef D_A_OBJ_WIND_STONE_H
|
||||
#define D_A_OBJ_WIND_STONE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daWindStone_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80D37A18 */ daWindStone_c();
|
||||
/* 80D37A68 */ ~daWindStone_c();
|
||||
/* 80D37AF4 */ void createHeap();
|
||||
/* 80D37C20 */ void create();
|
||||
/* 80D37F0C */ void execute();
|
||||
/* 80D37F6C */ void draw();
|
||||
/* 80D3806C */ void Delete();
|
||||
/* 80D3811C */ void setModelMtx();
|
||||
/* 80D38180 */ void init();
|
||||
/* 80D381EC */ void chkWlfInRange();
|
||||
/* 80D38278 */ void chkEveOccur();
|
||||
/* 80D382C4 */ void exeModeHowl();
|
||||
/* 80D3835C */ void exeModeMapDisp();
|
||||
/* 80D383FC */ void chkMapDispMode();
|
||||
/* 80D384C4 */ void getGoldWolfIdx();
|
||||
|
||||
s8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
|
||||
int getNextSceneId() { return fopAcM_GetParamBit(this, 0, 4); }
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_WIND_STONE_H */
|
||||
|
||||
@@ -33,7 +33,7 @@ public:
|
||||
static u8 const M_attr[64];
|
||||
static u8 ActionTable[72];
|
||||
|
||||
u8 getType() { return mSubtype & 0x7F; }
|
||||
int getType() { return mSubtype & 0x7F; }
|
||||
u8 getPathID() { return fopAcM_GetParam(this); }
|
||||
bool isPlayerCorrect() { return (s8)(u8)(fopAcM_GetParam(this) >> 8) > 0; }
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef D_A_TAG_ATTACK_ITEM_H
|
||||
#define D_A_TAG_ATTACK_ITEM_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
#endif /* D_A_TAG_ATTACK_ITEM_H */
|
||||
|
||||
@@ -6,8 +6,10 @@
|
||||
|
||||
class daTag_Howl_c : public fopAc_ac_c {
|
||||
public:
|
||||
u8 field_0x568;
|
||||
u8 field_0x569;
|
||||
/* 0x568 */ s8 mCurveID;
|
||||
/* 0x569 */ u8 field_0x569;
|
||||
|
||||
s8 getCurveID() { return mCurveID; }
|
||||
|
||||
/* 8048D958 */ int create();
|
||||
/* 8048D9BC */ int destroy();
|
||||
@@ -17,7 +19,6 @@ public:
|
||||
/* 8048DC1C */ int getParam();
|
||||
/* 8048DC68 */ u8 getSwitchBit();
|
||||
/* 8048DCFC */ virtual ~daTag_Howl_c() {}
|
||||
|
||||
}; // Size: 0x570
|
||||
|
||||
#endif /* D_A_TAG_HOWL_H */
|
||||
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
|
||||
/* 80D63F74 */ virtual ~daTagWrHowl_c();
|
||||
|
||||
u8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
|
||||
s8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
|
||||
|
||||
/* 0x56C */ f32 field_0x56c;
|
||||
/* 0x570 */ f32 field_0x570;
|
||||
|
||||
@@ -244,7 +244,7 @@ void Z2WolfHowlMgr::calcPitchMod(f32 param_0, f32 param_1) {
|
||||
}
|
||||
|
||||
/* 802CAED4-802CB100 2C5814 022C+00 0/0 1/1 0/0 .text startWolfHowlSound__13Z2WolfHowlMgrFffbf */
|
||||
void Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f32 param_3) {
|
||||
s8 Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f32 param_3) {
|
||||
if (mCorrectCurveID > 1) {
|
||||
Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0);
|
||||
}
|
||||
@@ -291,7 +291,8 @@ void Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f
|
||||
resetState();
|
||||
}
|
||||
}
|
||||
checkLine();
|
||||
|
||||
return checkLine();
|
||||
}
|
||||
|
||||
/* 802CB100-802CB320 2C5A40 0220+00 0/0 1/1 0/0 .text
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_kago
|
||||
//
|
||||
|
||||
#include "rel/d/a/d_a_kago/d_a_kago.h"
|
||||
// #include "rel/d/a/d_a_kago/d_a_kago.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_e_pm
|
||||
//
|
||||
|
||||
#include "rel/d/a/e/d_a_e_pm/d_a_e_pm.h"
|
||||
// #include "rel/d/a/e/d_a_e_pm/d_a_e_pm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_e_yc
|
||||
//
|
||||
|
||||
#include "rel/d/a/e/d_a_e_yc/d_a_e_yc.h"
|
||||
// #include "rel/d/a/e/d_a_e_yc/d_a_e_yc.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_kytag03
|
||||
//
|
||||
|
||||
#include "rel/d/a/kytag/d_a_kytag03/d_a_kytag03.h"
|
||||
// #include "rel/d/a/kytag/d_a_kytag03/d_a_kytag03.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_npc_gwolf
|
||||
//
|
||||
|
||||
#include "rel/d/a/npc/d_a_npc_gwolf/d_a_npc_gwolf.h"
|
||||
// #include "rel/d/a/npc/d_a_npc_gwolf/d_a_npc_gwolf.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_npc_tk
|
||||
//
|
||||
|
||||
#include "rel/d/a/npc/d_a_npc_tk/d_a_npc_tk.h"
|
||||
// #include "rel/d/a/npc/d_a_npc_tk/d_a_npc_tk.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
@@ -236,6 +237,63 @@ struct J3DFrameCtrl {
|
||||
/* 8032842C */ void checkPass(f32);
|
||||
};
|
||||
|
||||
struct daNPC_TK_c {
|
||||
/* 80B01498 */ void setBck(int, u8, f32, f32);
|
||||
/* 80B0153C */ void checkBck(int);
|
||||
/* 80B01598 */ void draw();
|
||||
/* 80B016D4 */ void checkBeforeBg();
|
||||
/* 80B01878 */ void setActionMode(int);
|
||||
/* 80B018F4 */ void setAddCalcSpeedXZ(cXyz&, cXyz const&, f32, f32, f32);
|
||||
/* 80B01C84 */ void chaseTargetPos(cXyz, f32, f32, s16);
|
||||
/* 80B01D84 */ void getMasterPointer();
|
||||
/* 80B01DA0 */ void setMasterShoulder(cXyz*);
|
||||
/* 80B01E48 */ void setAwayAction(int);
|
||||
/* 80B01EF4 */ void setFlySE();
|
||||
/* 80B02254 */ void executeFly();
|
||||
/* 80B026F8 */ void initPerchDemo(int);
|
||||
/* 80B02B5C */ void executePerchDemo(int);
|
||||
/* 80B03658 */ void executePerch();
|
||||
/* 80B03754 */ void executeHandOn();
|
||||
/* 80B039A8 */ void checkWaterSurface(f32);
|
||||
/* 80B03A70 */ void executeAttack();
|
||||
/* 80B048BC */ void executeAway();
|
||||
/* 80B04BF8 */ void setCarryActorMtx();
|
||||
/* 80B04F64 */ void getTakePosY();
|
||||
/* 80B04FA8 */ void getTakeOffPosY();
|
||||
/* 80B04FEC */ void executeBack();
|
||||
/* 80B05BD0 */ void getHanjoHandPos();
|
||||
/* 80B05C7C */ void executeStayHanjo();
|
||||
/* 80B05EC8 */ void executeAttackLink();
|
||||
/* 80B0686C */ void executeBackHanjo();
|
||||
/* 80B07114 */ void checkAttackDemo();
|
||||
/* 80B072CC */ void executeAttackDemo();
|
||||
/* 80B07610 */ void executeBackHanjoDemo();
|
||||
/* 80B08168 */ void executeWolfEvent();
|
||||
/* 80B08208 */ void calcWolfDemoCam();
|
||||
/* 80B082A4 */ void calcWolfDemoCam2();
|
||||
/* 80B0839C */ void executeWolfPerch();
|
||||
/* 80B09A3C */ void executeResistanceDemo();
|
||||
/* 80B0A444 */ void setHawkSideCamera(cXyz);
|
||||
/* 80B0A500 */ void setHawkCamera(fopAc_ac_c*);
|
||||
/* 80B0A568 */ void endHawkCamera();
|
||||
/* 80B0A614 */ void calcDemoCamera();
|
||||
/* 80B0B004 */ void checkActionSet();
|
||||
/* 80B0B284 */ void action();
|
||||
/* 80B0B5CC */ void mtx_set();
|
||||
/* 80B0B6DC */ void cc_set();
|
||||
/* 80B0B7CC */ void execute();
|
||||
/* 80B0B918 */ void _delete();
|
||||
/* 80B0B9AC */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80B0BB7C */ void JointCallBack(J3DJoint*, int);
|
||||
/* 80B0BBC8 */ void CreateHeap();
|
||||
/* 80B0BD24 */ void create();
|
||||
|
||||
void setBump() { mBump |= 4; }
|
||||
|
||||
u8 field_0x0[0x6BE];
|
||||
u16 mBump;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -764,8 +764,8 @@ static dJntColData_c kibako_jc_data = {
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0x42340000,
|
||||
&kibako_jv_offset
|
||||
45.0f,
|
||||
(Vec*)kibako_jv_offset
|
||||
};
|
||||
|
||||
/* 8047A71C-8047A728 -00001 000C+00 1/1 0/0 0/0 .data taru_jc_data */
|
||||
@@ -773,8 +773,8 @@ static dJntColData_c taru_jc_data = {
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0x42340000,
|
||||
&taru_jv_offset
|
||||
45.0f,
|
||||
(Vec*)taru_jv_offset
|
||||
};
|
||||
|
||||
/* 8047A728-8047A734 -00001 000C+00 0/1 0/0 0/0 .data @5956 */
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_obj_crope
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_crope/d_a_obj_crope.h"
|
||||
// #include "rel/d/a/obj/d_a_obj_crope/d_a_obj_crope.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_obj_sekizoa
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_sekizoa/d_a_obj_sekizoa.h"
|
||||
// #include "rel/d/a/obj/d_a_obj_sekizoa/d_a_obj_sekizoa.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_obj_smw_stone
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_smw_stone/d_a_obj_smw_stone.h"
|
||||
// #include "rel/d/a/obj/d_a_obj_smw_stone/d_a_obj_smw_stone.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d_a_obj_wind_stone
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_wind_stone/d_a_obj_wind_stone.h"
|
||||
// #include "rel/d/a/obj/d_a_obj_wind_stone/d_a_obj_wind_stone.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
||||
@@ -4,52 +4,42 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/event/d_event_lib.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct csXyz {
|
||||
/* 802673F4 */ csXyz(s16, s16, s16);
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
/* 8000CF44 */ void ZXYrotM(csXyz const&);
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daTagAtkItem_c {
|
||||
// need to figure out how to use dEvLib_callback_c properly
|
||||
class daTagAtkItem_c : public fopAc_ac_c /* , public dEvLib_callback_c */ {
|
||||
public:
|
||||
/* 805A2958 */ void setBaseMtx();
|
||||
/* 805A2990 */ void Create();
|
||||
/* 805A2A34 */ void create();
|
||||
/* 805A2C48 */ void execute();
|
||||
/* 805A2990 */ int Create();
|
||||
/* 805A2A34 */ int create();
|
||||
/* 805A2C48 */ int execute();
|
||||
/* 805A2CA8 */ void action();
|
||||
/* 805A2D10 */ void eventStart();
|
||||
/* 805A2D34 */ void eventEnd();
|
||||
/* 805A2D58 */ void checkHit();
|
||||
/* 805A2D58 */ BOOL checkHit();
|
||||
/* 805A2F54 */ void createItem();
|
||||
/* 805A3038 */ bool _delete();
|
||||
/* 805A3038 */ int _delete();
|
||||
|
||||
/* 805A3118 */ ~daTagAtkItem_c();
|
||||
};
|
||||
/* 805A2D10 */ BOOL eventStart();
|
||||
/* 805A2D34 */ BOOL eventEnd();
|
||||
|
||||
struct dEvLib_callback_c {
|
||||
/* 8004886C */ void eventUpdate();
|
||||
/* 80048940 */ void orderEvent(int, int, int);
|
||||
/* 805A30A0 */ ~dEvLib_callback_c();
|
||||
/* 805A30E8 */ bool eventRun();
|
||||
/* 805A30F0 */ bool eventStart();
|
||||
/* 805A30F8 */ bool eventEnd();
|
||||
};
|
||||
u8 getEvId() { return fopAcM_GetParamBit(this, 0x18, 8); }
|
||||
u8 getNum() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
u8 getItemBit() { return fopAcM_GetParamBit(this, 0x10, 8); }
|
||||
u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
/* 0x568 */ u8 temp[0x57C - 0x568]; // remove when dEvLib_callback_c setup
|
||||
/* 0x57C */ u8 field_0x57C[0x584 - 0x57C];
|
||||
/* 0x584 */ dCcD_Stts mCcStts;
|
||||
/* 0x5C0 */ dCcD_Cyl mCyl;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -112,62 +102,48 @@ extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 805A2958-805A2990 000078 0038+00 1/1 0/0 0/0 .text setBaseMtx__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::setBaseMtx() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/setBaseMtx__14daTagAtkItem_cFv.s"
|
||||
void daTagAtkItem_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 805A32C8-805A32CC 000000 0004+00 2/2 0/0 0/0 .rodata @3657 */
|
||||
SECTION_RODATA static f32 const lit_3657 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x805A32C8, &lit_3657);
|
||||
|
||||
/* 805A32CC-805A32D0 000004 0004+00 1/2 0/0 0/0 .rodata @3658 */
|
||||
SECTION_RODATA static f32 const lit_3658 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x805A32CC, &lit_3658);
|
||||
|
||||
/* 805A32F4-805A3338 000000 0044+00 1/1 0/0 0/0 .data l_cyl_src */
|
||||
static dCcD_SrcCyl l_cyl_src = {
|
||||
{
|
||||
{0x0, {{0x0, 0x0, 0x1f}, {0x400020, 0x11}, 0x78}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{0x0, {{0x0, 0x0, 0x1f}, {0x400020, 0x11}, 0x78}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
50.0f, // mRadius
|
||||
100.0f // mHeight
|
||||
} // mCyl
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
50.0f, // mRadius
|
||||
100.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
/* 805A2990-805A2A34 0000B0 00A4+00 1/1 0/0 0/0 .text Create__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::Create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/Create__14daTagAtkItem_cFv.s"
|
||||
int daTagAtkItem_c::Create() {
|
||||
mCcStts.Init(0, 0xFF, this);
|
||||
mCyl.Set(l_cyl_src);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
mCyl.SetR(mScale.x * 50.0f);
|
||||
mCyl.SetH(mScale.y * 100.0f);
|
||||
|
||||
current.pos.y = orig.pos.y - mScale.y * 100.0f;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 805A3338-805A3358 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAtkItem_Method */
|
||||
@@ -249,7 +225,7 @@ SECTION_DATA extern void* __vt__17dEvLib_callback_c[6] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::create() {
|
||||
asm int daTagAtkItem_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/func_805A2A34.s"
|
||||
}
|
||||
@@ -289,16 +265,41 @@ extern "C" asm void __dt__10dCcD_GSttsFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 805A2C48-805A2CA8 000368 0060+00 1/1 0/0 0/0 .text execute__14daTagAtkItem_cFv */
|
||||
// matches with dEvLib_callback_c setup
|
||||
#ifdef NONMATCHING
|
||||
int daTagAtkItem_c::execute() {
|
||||
action();
|
||||
setBaseMtx();
|
||||
eventUpdate();
|
||||
mCyl.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::execute() {
|
||||
asm int daTagAtkItem_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/execute__14daTagAtkItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 805A2CA8-805A2D10 0003C8 0068+00 1/1 0/0 0/0 .text action__14daTagAtkItem_cFv */
|
||||
// matches with dEvLib_callback_c setup
|
||||
#ifdef NONMATCHING
|
||||
void daTagAtkItem_c::action() {
|
||||
if (checkHit()) {
|
||||
if (getEvId() != 0xFF) {
|
||||
orderEvent(getEvId(), 0xFF, 1);
|
||||
} else {
|
||||
createItem();
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -307,155 +308,122 @@ asm void daTagAtkItem_c::action() {
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/action__14daTagAtkItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 805A2D10-805A2D34 000430 0024+00 2/1 0/0 0/0 .text eventStart__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::eventStart() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/eventStart__14daTagAtkItem_cFv.s"
|
||||
BOOL daTagAtkItem_c::eventStart() {
|
||||
createItem();
|
||||
return TRUE;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A2D34-805A2D58 000454 0024+00 2/1 0/0 0/0 .text eventEnd__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::eventEnd() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/eventEnd__14daTagAtkItem_cFv.s"
|
||||
BOOL daTagAtkItem_c::eventEnd() {
|
||||
fopAcM_delete(this);
|
||||
return TRUE;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 805A32D0-805A32D8 000008 0004+04 0/1 0/0 0/0 .rodata @3859 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3859[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x805A32D0, &lit_3859);
|
||||
#pragma pop
|
||||
|
||||
/* 805A32D8-805A32E0 000010 0008+00 0/1 0/0 0/0 .rodata @3860 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3860[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x805A32D8, &lit_3860);
|
||||
#pragma pop
|
||||
|
||||
/* 805A32E0-805A32E8 000018 0008+00 0/1 0/0 0/0 .rodata @3861 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3861[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x805A32E0, &lit_3861);
|
||||
#pragma pop
|
||||
|
||||
/* 805A32E8-805A32F0 000020 0008+00 0/1 0/0 0/0 .rodata @3862 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3862[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x805A32E8, &lit_3862);
|
||||
#pragma pop
|
||||
|
||||
/* 805A2D58-805A2F54 000478 01FC+00 1/1 0/0 0/0 .text checkHit__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::checkHit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/checkHit__14daTagAtkItem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
BOOL daTagAtkItem_c::checkHit() {
|
||||
if (mCyl.ChkTgHit()) {
|
||||
cCcD_Obj* hitobj_p = mCyl.GetTgHitObj();
|
||||
if (hitobj_p != NULL &&
|
||||
(hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) || hitobj_p->ChkAtType(AT_TYPE_BOMB)))
|
||||
{
|
||||
#ifdef DEBUG
|
||||
// "Attack Reaction Item: Rotate attack hit!\n"
|
||||
OSReport("攻撃反応アイテム:回転アタックヒット!\n");
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 805A32F0-805A32F4 000028 0004+00 1/1 0/0 0/0 .rodata @3898 */
|
||||
SECTION_RODATA static f32 const lit_3898 = 32767.0f;
|
||||
COMPILER_STRIP_GATE(0x805A32F0, &lit_3898);
|
||||
daPy_py_c* player_p = daPy_getPlayerActorClass();
|
||||
|
||||
if ((player_p->checkFrontRollCrash() || player_p->checkWolfAttackReverse()) &&
|
||||
player_p->current.pos.absXZ(current.pos) < mScale.x * 50.0f &&
|
||||
fabsf(player_p->current.pos.y - current.pos.y) < mScale.y * 100.0f)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
// "Attack Reaction Item: Rotate attack hit!\n"
|
||||
OSReport("攻撃反応アイテム:回転アタックヒット!\n");
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 805A2F54-805A3038 000674 00E4+00 2/2 0/0 0/0 .text createItem__14daTagAtkItem_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagAtkItem_c::createItem() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/createItem__14daTagAtkItem_cFv.s"
|
||||
void daTagAtkItem_c::createItem() {
|
||||
csXyz angle(0, 0, 0);
|
||||
|
||||
int create_num;
|
||||
if (getNum() == 0xFF) {
|
||||
create_num = 1;
|
||||
} else {
|
||||
create_num = getNum();
|
||||
}
|
||||
|
||||
int item_bit = getItemBit();
|
||||
for (int i = 0; i < create_num; i++) {
|
||||
angle.y += (s16)cM_rndFX(0x7FFF);
|
||||
|
||||
fopAcM_createItemFromTable(&orig.pos, getItemNo(), item_bit, fopAcM_GetHomeRoomNo(this),
|
||||
&angle, 0, NULL, NULL, NULL, false);
|
||||
|
||||
if (item_bit != 0xFF) {
|
||||
item_bit++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A3038-805A3040 000758 0008+00 1/1 0/0 0/0 .text _delete__14daTagAtkItem_cFv */
|
||||
bool daTagAtkItem_c::_delete() {
|
||||
return true;
|
||||
int daTagAtkItem_c::_delete() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 805A3040-805A3060 000760 0020+00 1/0 0/0 0/0 .text daTagAtkItem_Execute__FP14daTagAtkItem_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTagAtkItem_Execute(daTagAtkItem_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/daTagAtkItem_Execute__FP14daTagAtkItem_c.s"
|
||||
static int daTagAtkItem_Execute(daTagAtkItem_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A3060-805A3080 000780 0020+00 1/0 0/0 0/0 .text daTagAtkItem_Delete__FP14daTagAtkItem_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTagAtkItem_Delete(daTagAtkItem_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/daTagAtkItem_Delete__FP14daTagAtkItem_c.s"
|
||||
static int daTagAtkItem_Delete(daTagAtkItem_c* i_this) {
|
||||
return i_this->_delete();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A3080-805A30A0 0007A0 0020+00 1/0 0/0 0/0 .text daTagAtkItem_Create__FP14daTagAtkItem_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTagAtkItem_Create(daTagAtkItem_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/daTagAtkItem_Create__FP14daTagAtkItem_c.s"
|
||||
static int daTagAtkItem_Create(daTagAtkItem_c* i_this) {
|
||||
return i_this->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A30A0-805A30E8 0007C0 0048+00 1/0 0/0 0/0 .text __dt__17dEvLib_callback_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvLib_callback_c::~dEvLib_callback_c() {
|
||||
// asm dEvLib_callback_c::~dEvLib_callback_c() {
|
||||
extern "C" asm void __dt__17dEvLib_callback_cFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_attack_item/d_a_tag_attack_item/__dt__17dEvLib_callback_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 805A30E8-805A30F0 000808 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */
|
||||
bool dEvLib_callback_c::eventRun() {
|
||||
// bool dEvLib_callback_c::eventRun() {
|
||||
extern "C" bool eventRun__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 805A30F0-805A30F8 000810 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv
|
||||
*/
|
||||
bool dEvLib_callback_c::eventStart() {
|
||||
// bool dEvLib_callback_c::eventStart() {
|
||||
extern "C" bool eventStart__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 805A30F8-805A3100 000818 0008+00 1/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */
|
||||
bool dEvLib_callback_c::eventEnd() {
|
||||
// bool dEvLib_callback_c::eventEnd() {
|
||||
extern "C" bool eventEnd__17dEvLib_callback_cFv() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,12 +23,14 @@ int daTag_Howl_c::destroy() {
|
||||
|
||||
/* 8048D9C4-8048DA24 0000E4 0060+00 1/1 0/0 0/0 .text execute__12daTag_Howl_cFv */
|
||||
int daTag_Howl_c::execute() {
|
||||
this->current.roomNo = dStage_roomControl_c::mStayNo;
|
||||
this->mAttentionInfo.mFlags = 0;
|
||||
if (isAreaCheck() != NULL) {
|
||||
this->mAttentionInfo.mFlags |= 0x80;
|
||||
this->mAttentionInfo.field_0x0[7] = 0x41;
|
||||
fopAcM_SetRoomNo(this, dComIfGp_roomControl_getStayNo());
|
||||
mAttentionInfo.mFlags = 0;
|
||||
|
||||
if (isAreaCheck()) {
|
||||
mAttentionInfo.mFlags |= 0x80;
|
||||
mAttentionInfo.field_0x0[7] = 0x41;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -41,22 +43,26 @@ int daTag_Howl_c::draw() {
|
||||
u8 daTag_Howl_c::isAreaCheck() {
|
||||
if (getSwitchBit() != 0xFF) {
|
||||
if (dComIfGs_isSaveSwitch(getSwitchBit())) {
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
cXyz pos = daPy_getPlayerActorClass()->current.pos - current.pos;
|
||||
if (dComIfGp_getLinkPlayer()->i_checkNoResetFlg1(daPy_py_c::FLG1_IS_WOLF)) {
|
||||
if ((pos.absXZ() < mScale.x) && (-mScale.y < pos.y) && (pos.y < mScale.y)) {
|
||||
return 1;
|
||||
cXyz vec_to_player = daPy_getPlayerActorClass()->current.pos - current.pos;
|
||||
if (daPy_py_c::i_checkNowWolf()) {
|
||||
if (vec_to_player.absXZ() < mScale.x && -mScale.y < vec_to_player.y &&
|
||||
vec_to_player.y < mScale.y)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 8048DC1C-8048DC68 00033C 004C+00 1/1 0/0 0/0 .text getParam__12daTag_Howl_cFv */
|
||||
int daTag_Howl_c::getParam() {
|
||||
field_0x568 = mBase.mParameters & 0xf;
|
||||
field_0x569 = mBase.mParameters >> 0x1e;
|
||||
mCurveID = fopAcM_GetParam(this) & 0xF;
|
||||
field_0x569 = fopAcM_GetParam(this) >> 0x1E;
|
||||
mScale.x *= 100.0f;
|
||||
mScale.y *= 100.0f;
|
||||
mScale.z *= 100.0f;
|
||||
@@ -65,7 +71,7 @@ int daTag_Howl_c::getParam() {
|
||||
|
||||
/* 8048DC68-8048DC74 000388 000C+00 1/1 0/0 0/0 .text getSwitchBit__12daTag_Howl_cFv */
|
||||
u8 daTag_Howl_c::getSwitchBit() {
|
||||
return this->mBase.mParameters >> 4 & 0xff;
|
||||
return (fopAcM_GetParam(this) >> 4) & 0xFF;
|
||||
}
|
||||
|
||||
/* 8048DC74-8048DC94 000394 0020+00 1/0 0/0 0/0 .text daTag_Howl_Create__FPv */
|
||||
|
||||
+537
-77
@@ -33,15 +33,12 @@
|
||||
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
|
||||
#include "rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h"
|
||||
#include "rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h"
|
||||
#include "rel/d/a/obj/d_a_obj_sekizoa/d_a_obj_sekizoa.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct daObj_Sekizoa_c {
|
||||
/* 801312C8 */ void setWolfHowling();
|
||||
};
|
||||
|
||||
struct daObjMovebox {
|
||||
struct Act_c {
|
||||
struct Prm_e {};
|
||||
@@ -4787,8 +4784,8 @@ COMPILER_STRIP_GATE(0x8038FAC0, &l_crawlTopUpOffset);
|
||||
/* 8038FACC-8038FAD8 01C12C 000C+00 0/1 0/0 0/0 .rodata l_wolfLieTopUpOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_wolfLieTopUpOffset[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_wolfLieTopUpOffset = {
|
||||
0.0f, 75.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FACC, &l_wolfLieTopUpOffset);
|
||||
#pragma pop
|
||||
@@ -4796,8 +4793,8 @@ COMPILER_STRIP_GATE(0x8038FACC, &l_wolfLieTopUpOffset);
|
||||
/* 8038FAD8-8038FAE4 01C138 000C+00 0/1 0/0 0/0 .rodata l_crawlSideOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_crawlSideOffset[12] = {
|
||||
0x42, 0x5C, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_crawlSideOffset = {
|
||||
55.0f, 80.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FAD8, &l_crawlSideOffset);
|
||||
#pragma pop
|
||||
@@ -4805,8 +4802,8 @@ COMPILER_STRIP_GATE(0x8038FAD8, &l_crawlSideOffset);
|
||||
/* 8038FAE4-8038FAF0 01C144 000C+00 0/1 0/0 0/0 .rodata l_wolfLieSideOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_wolfLieSideOffset[12] = {
|
||||
0x42, 0x5C, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_wolfLieSideOffset = {
|
||||
55.0f, 75.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FAE4, &l_wolfLieSideOffset);
|
||||
#pragma pop
|
||||
@@ -6228,28 +6225,41 @@ SECTION_RODATA static u32 const label[12] = {
|
||||
COMPILER_STRIP_GATE(0x80391E48, &label);
|
||||
|
||||
/* 80391E78-80391E8C 01E4D8 0014+00 1/1 0/0 0/0 .rodata normalType0$50859 */
|
||||
SECTION_RODATA static u8 const normalType0[20] = {
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static int const normalType0[] = {
|
||||
3, 3, 3, 0, 0,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391E78, &normalType0);
|
||||
|
||||
/* 80391E8C-80391EA0 01E4EC 0014+00 1/1 0/0 0/0 .rodata normalType1$50860 */
|
||||
SECTION_RODATA static u8 const normalType1_50860[20] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
|
||||
SECTION_RODATA static int const normalType1_50860[] = {
|
||||
0, 0, 0, 3, 3,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391E8C, &normalType1_50860);
|
||||
|
||||
struct daAlink_WCutParamTbl {
|
||||
/* 0x0 */ daAlink_c::daAlink_WANM m_anmID;
|
||||
/* 0x4 */ u8 m_cutType;
|
||||
}; // Size: 0x8
|
||||
|
||||
/* 80391EA0-80391EC0 01E500 0020+00 0/1 0/0 0/0 .rodata dataTabl$51470 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const dataTabl[32] = {
|
||||
0x00, 0x00, 0x00, 0x40, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x43, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x2D, 0x00, 0x00, 0x00,
|
||||
static const daAlink_WCutParamTbl dataTabl[] = {
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_LEFT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_LEFT,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_FRONT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_FRONT,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_TAIL,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_BACK,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_RIGHT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_RIGHT,
|
||||
},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391EA0, &dataTabl);
|
||||
#pragma pop
|
||||
|
||||
/* 80391EC0-80391ECC 01E520 000C+00 1/1 0/0 0/0 .rodata arm1Vec$56040 */
|
||||
SECTION_RODATA static u8 const arm1Vec[12] = {
|
||||
@@ -11461,21 +11471,133 @@ SECTION_DATA static u8 l_jntColPos17[12] = {
|
||||
};
|
||||
|
||||
/* 803B29AC-803B2A84 -00001 00D8+00 1/1 0/0 0/0 .data l_jntColData */
|
||||
SECTION_DATA static void* l_jntColData[54] = {
|
||||
(void*)0x01000001, (void*)0x41900000, (void*)&l_jntColPos0, (void*)0x00000004,
|
||||
(void*)0x41800000, (void*)&l_jntColPos1, (void*)0x01000007, (void*)0x40E00000,
|
||||
(void*)&l_jntColPos2, (void*)0x0100000C, (void*)0x40E00000, (void*)&l_jntColPos2,
|
||||
(void*)0x01000008, (void*)0x40C00000, (void*)&l_jntColPos4, (void*)0x0100000D,
|
||||
(void*)0x40C00000, (void*)&l_jntColPos4, (void*)0x00000009, (void*)0x40C00000,
|
||||
(void*)&l_jntColPos6, (void*)0x0000000E, (void*)0x40C00000, (void*)&l_jntColPos6,
|
||||
(void*)0x01000010, (void*)0x41900000, (void*)&l_jntColPos8, (void*)0x01000012,
|
||||
(void*)0x41000000, (void*)&l_jntColPos9, (void*)0x01000017, (void*)0x41000000,
|
||||
(void*)&l_jntColPos10, (void*)0x01000013, (void*)0x40E00000, (void*)&l_jntColPos11,
|
||||
(void*)0x01000018, (void*)0x40E00000, (void*)&l_jntColPos12, (void*)0x01000014,
|
||||
(void*)0x40C00000, (void*)&l_jntColPos13, (void*)0x01000019, (void*)0x40C00000,
|
||||
(void*)&l_jntColPos14, (void*)0x0203000F, (void*)0x42200000, (void*)&l_jntColPos15,
|
||||
(void*)0x02030005, (void*)0x42200000, (void*)&l_jntColPos16, (void*)0x0003000F,
|
||||
(void*)0x42340000, (void*)&l_jntColPos17,
|
||||
static dJntColData_c l_jntColData[] = {
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
18.0f,
|
||||
(Vec*)l_jntColPos0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
16.0f,
|
||||
(Vec*)l_jntColPos1,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
7,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
12,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
8,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
13,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos4,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
9,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos6,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
14,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
16,
|
||||
18.0f,
|
||||
(Vec*)l_jntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
18,
|
||||
8.0f,
|
||||
(Vec*)l_jntColPos9,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
23,
|
||||
8.0f,
|
||||
(Vec*)l_jntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
19,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos11,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
24,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
20,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos13,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
25,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos14,
|
||||
},
|
||||
{
|
||||
2,
|
||||
3,
|
||||
15,
|
||||
40.0f,
|
||||
(Vec*)l_jntColPos15,
|
||||
},
|
||||
{
|
||||
2,
|
||||
3,
|
||||
5,
|
||||
40.0f,
|
||||
(Vec*)l_jntColPos16,
|
||||
},
|
||||
{
|
||||
0,
|
||||
3,
|
||||
15,
|
||||
45.0f,
|
||||
(Vec*)l_jntColPos17,
|
||||
},
|
||||
};
|
||||
|
||||
/* 803B2A84-803B2A9C 00FBA4 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos0 */
|
||||
@@ -11538,25 +11660,133 @@ SECTION_DATA static u8 l_wolfJntColPos16[24] = {
|
||||
};
|
||||
|
||||
/* 803B2B68-803B2C40 -00001 00D8+00 1/1 0/0 0/0 .data l_wolfJntColData */
|
||||
SECTION_DATA static void* l_wolfJntColData[54] = {
|
||||
(void*)0x01000001, (void*)0x41E00000, (void*)&l_wolfJntColPos0,
|
||||
(void*)0x00000004, (void*)0x41C80000, (void*)&l_wolfJntColPos1,
|
||||
(void*)0x01000010, (void*)0x41200000, (void*)&l_wolfJntColPos2,
|
||||
(void*)0x01000015, (void*)0x41200000, (void*)&l_wolfJntColPos2,
|
||||
(void*)0x01000011, (void*)0x40C00000, (void*)&l_wolfJntColPos4,
|
||||
(void*)0x01000016, (void*)0x40C00000, (void*)&l_wolfJntColPos4,
|
||||
(void*)0x01000012, (void*)0x40800000, (void*)&l_wolfJntColPos6,
|
||||
(void*)0x01000017, (void*)0x40800000, (void*)&l_wolfJntColPos6,
|
||||
(void*)0x01000013, (void*)0x40800000, (void*)&l_wolfJntColPos8,
|
||||
(void*)0x01000018, (void*)0x40800000, (void*)&l_wolfJntColPos8,
|
||||
(void*)0x0100001C, (void*)0x41300000, (void*)&l_wolfJntColPos10,
|
||||
(void*)0x01000021, (void*)0x41300000, (void*)&l_wolfJntColPos10,
|
||||
(void*)0x0100001D, (void*)0x40E00000, (void*)&l_wolfJntColPos12,
|
||||
(void*)0x01000022, (void*)0x40E00000, (void*)&l_wolfJntColPos12,
|
||||
(void*)0x0100001E, (void*)0x40A00000, (void*)&l_wolfJntColPos14,
|
||||
(void*)0x01000023, (void*)0x40A00000, (void*)&l_wolfJntColPos14,
|
||||
(void*)0x0100001F, (void*)0x40C00000, (void*)&l_wolfJntColPos16,
|
||||
(void*)0x01000024, (void*)0x40A00000, (void*)&l_wolfJntColPos16,
|
||||
static dJntColData_c l_wolfJntColData[] = {
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
28.0f,
|
||||
(Vec*)l_wolfJntColPos0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
25.0f,
|
||||
(Vec*)l_wolfJntColPos1,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
16,
|
||||
10.0f,
|
||||
(Vec*)l_wolfJntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
21,
|
||||
10.0f,
|
||||
(Vec*)l_wolfJntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
17,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
22,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
18,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
23,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
19,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
24,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
28,
|
||||
11.0f,
|
||||
(Vec*)l_wolfJntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
33,
|
||||
11.0f,
|
||||
(Vec*)l_wolfJntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
29,
|
||||
7.0f,
|
||||
(Vec*)l_wolfJntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
34,
|
||||
7.0f,
|
||||
(Vec*)l_wolfJntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
30,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos14,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
35,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos14,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
31,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos16,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
36,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos16,
|
||||
},
|
||||
};
|
||||
|
||||
/* 803B2C40-803B2C50 00FD60 000D+03 0/1 0/0 0/0 .data defaultPortal$39238 */
|
||||
@@ -12285,8 +12515,8 @@ extern "C" asm void __dt__14J3DMaterialAnmFv() {
|
||||
|
||||
/* 800A48F0-800A4910 09F230 0020+00 1/1 0/0 0/0 .text daAlink_createHeap__FP10fopAc_ac_c
|
||||
*/
|
||||
static int daAlink_createHeap(fopAc_ac_c* link) {
|
||||
return ((daAlink_c*)link)->createHeap();
|
||||
static int daAlink_createHeap(fopAc_ac_c* i_this) {
|
||||
return ((daAlink_c*)i_this)->createHeap();
|
||||
}
|
||||
|
||||
bool daPy_py_c::checkWoodSwordEquip() {
|
||||
@@ -13895,7 +14125,7 @@ asm void daAlink_c::setCollision() {
|
||||
#ifdef NONMATCHING
|
||||
f32 daAlink_c::getBaseAnimeFrame() const {
|
||||
if (mProcID == PROC_SUMOU_ACTION && mSpeedModifier > 0.0f) {
|
||||
return field_0x300c;
|
||||
return mProcVar2.field_0x300c;
|
||||
}
|
||||
|
||||
return mUnderFrameCtrl[0].getFrame();
|
||||
@@ -15513,7 +15743,7 @@ f32 daAlink_c::getFrontRollRate() {
|
||||
|
||||
/* 800B4B7C-800B5284 0AF4BC 0708+00 2/2 0/0 0/0 .text decideCommonDoStatus__9daAlink_cFv
|
||||
*/
|
||||
// almost, small branch issues and need fix for i_checkAttentionLock
|
||||
// almost, small branch issues
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::decideCommonDoStatus() {
|
||||
if (!i_checkFmChainGrabAnime() && i_dComIfGp_getDoStatus() == 0) {
|
||||
@@ -16648,9 +16878,9 @@ BOOL daAlink_c::checkItemChangeFromButton() {
|
||||
} else {
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++) {
|
||||
int tmp = checkNewItemChange(i);
|
||||
if (tmp && itemTriggerCheck(1 << i)) {
|
||||
return changeItemTriggerKeepProc(i, tmp);
|
||||
int proc_type = checkNewItemChange(i);
|
||||
if (proc_type != 0 && itemTriggerCheck(1 << i)) {
|
||||
return changeItemTriggerKeepProc(i, proc_type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16808,10 +17038,8 @@ int daAlink_c::commonCheckNextAction(int param_0) {
|
||||
}
|
||||
|
||||
/* 800BA0D0-800BA6A0 0B4A10 05D0+00 91/91 0/0 0/0 .text checkNextAction__9daAlink_cFi */
|
||||
// checkAttentionLock issue / literals
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextAction(int param_0) {
|
||||
f32 temp_f31 = field_0x594;
|
||||
|
||||
@@ -16933,7 +17161,6 @@ int daAlink_c::checkNextAction(int param_0) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
@@ -17479,7 +17706,7 @@ void daAlink_c::posMove() {
|
||||
|
||||
if (checkRootTransClearMode()) {
|
||||
cXyz sp78 = field_0x34d4 - sp108;
|
||||
if (mProcID == PROC_CLIMB_UP_START && field_0x300e.z != 0) {
|
||||
if (mProcID == PROC_CLIMB_UP_START && mProcVar3.field_0x300e.z != 0) {
|
||||
sp78 = cXyz::Zero;
|
||||
}
|
||||
|
||||
@@ -18453,14 +18680,14 @@ bool daAlink_c::checkNotAutoJumpStage() {
|
||||
}
|
||||
|
||||
/* 800C0678-800C077C 0BAFB8 0104+00 3/3 0/0 0/0 .text checkCastleTownUseItem__9daAlink_cFUs */
|
||||
bool daAlink_c::checkCastleTownUseItem(u16 item_id) {
|
||||
bool daAlink_c::checkCastleTownUseItem(u16 i_itemNo) {
|
||||
if (checkNotBattleStage()) {
|
||||
if (item_id == KANTERA || checkTradeItem(item_id) ||
|
||||
(item_id == DUNGEON_BACK && checkLv7DungeonShop()) ||
|
||||
(checkRoomSpecial() && (item_id == EMPTY_BOTTLE || checkDungeonWarpItem(item_id))) ||
|
||||
(checkStageName("R_SP128") && item_id == COPY_ROD) ||
|
||||
(checkLv2DungeonRoomSpecial() && item_id == HVY_BOOTS) ||
|
||||
(checkBottleItem(item_id) && item_id != EMPTY_BOTTLE))
|
||||
if (i_itemNo == KANTERA || checkTradeItem(i_itemNo) ||
|
||||
(i_itemNo == DUNGEON_BACK && checkLv7DungeonShop()) ||
|
||||
(checkRoomSpecial() && (i_itemNo == EMPTY_BOTTLE || checkDungeonWarpItem(i_itemNo))) ||
|
||||
(checkStageName("R_SP128") && i_itemNo == COPY_ROD) ||
|
||||
(checkLv2DungeonRoomSpecial() && i_itemNo == HVY_BOOTS) ||
|
||||
(checkBottleItem(i_itemNo) && i_itemNo != EMPTY_BOTTLE))
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
@@ -18470,7 +18697,92 @@ bool daAlink_c::checkCastleTownUseItem(u16 item_id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
enum daAlink_ItemProc {
|
||||
/* 0 */ ITEM_PROC_NONE,
|
||||
/* 1 */ ITEM_PROC_BOOTS_EQUIP,
|
||||
/* 2 */ ITEM_PROC_SET_HVYBOOTS,
|
||||
/* 3 */ ITEM_PROC_BOTTLE_DRINK,
|
||||
/* 4 */ ITEM_PROC_SPINNER_READY,
|
||||
/* 5 */ ITEM_PROC_DUNGEON_WARP_READY,
|
||||
/* 6 */ ITEM_PROC_BOTTLE_OPEN,
|
||||
/* 7 */ ITEM_PROC_FISHING_FOOD,
|
||||
/* 8 */ ITEM_PROC_KANDELAAR_POUR,
|
||||
/* 9 */ ITEM_PROC_SUBJECTIVITY,
|
||||
/* 10 */ ITEM_PROC_PICK_PUT,
|
||||
/* 11 */ ITEM_PROC_OFF_KANDELAAR,
|
||||
/* 12 */ ITEM_PROC_COMMON_CHANGE_ITEM,
|
||||
/* 13 */ ITEM_PROC_BOTTLE_SWING,
|
||||
/* 14 */ ITEM_PROC_NOT_USE_ITEM,
|
||||
/* 15 */ ITEM_PROC_GRASS_WHISTLE,
|
||||
};
|
||||
|
||||
/* 800C077C-800C0A9C 0BB0BC 0320+00 1/1 0/0 0/0 .text changeItemTriggerKeepProc__9daAlink_cFUci */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType) {
|
||||
u32 sel_item = dComIfGp_getSelectItem(i_selItemIdx);
|
||||
mSelectItemId = i_selItemIdx;
|
||||
|
||||
if (i_procType == ITEM_PROC_GRASS_WHISTLE) {
|
||||
procGrassWhistleWaitInit(3, -1, 0, 0, NULL);
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_DRINK) {
|
||||
if (i_checkReinRide()) {
|
||||
procHorseBottleDrinkInit(sel_item);
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeBottleDrinkInit(sel_item);
|
||||
} else {
|
||||
procBottleDrinkInit(sel_item);
|
||||
}
|
||||
} else if (i_procType == ITEM_PROC_KANDELAAR_POUR) {
|
||||
if (i_checkReinRide()) {
|
||||
procHorseKandelaarPourInit();
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeKandelaarPourInit();
|
||||
} else {
|
||||
procKandelaarPourInit();
|
||||
}
|
||||
} else if (i_procType == ITEM_PROC_FISHING_FOOD) {
|
||||
procFishingFoodInit();
|
||||
} else if (i_procType == ITEM_PROC_BOOTS_EQUIP) {
|
||||
procBootsEquipInit();
|
||||
} else if (i_procType == ITEM_PROC_SET_HVYBOOTS) {
|
||||
setHeavyBoots(1);
|
||||
} else if (i_procType == ITEM_PROC_SPINNER_READY) {
|
||||
procSpinnerReadyInit();
|
||||
} else if (i_procType == ITEM_PROC_DUNGEON_WARP_READY) {
|
||||
procDungeonWarpReadyInit();
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_OPEN) {
|
||||
procBottleOpenInit(sel_item);
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_SWING) {
|
||||
procBottleSwingInit(NULL, 0);
|
||||
} else if (i_procType == ITEM_PROC_NOT_USE_ITEM) {
|
||||
procNotUseItemInit(sel_item);
|
||||
} else if (i_procType == ITEM_PROC_SUBJECTIVITY) {
|
||||
procCoSubjectivityInit();
|
||||
dComIfGp_setPlayerStatus0(0, 0x200000);
|
||||
seStartSystem(Z2SE_AL_HAWK_EYE_PUTON);
|
||||
} else if (i_procType == ITEM_PROC_PICK_PUT) {
|
||||
procPickPutInit(1);
|
||||
} else if (i_procType == ITEM_PROC_OFF_KANDELAAR) {
|
||||
offKandelaarModel();
|
||||
} else if (i_procType == ITEM_PROC_COMMON_CHANGE_ITEM) {
|
||||
field_0x2fde = NO_ITEM;
|
||||
itemEquip(sel_item);
|
||||
|
||||
if (i_dComIfGp_checkPlayerStatus0(0, 0x2000) &&
|
||||
((checkBowAndSlingItem(field_0x2fde) || checkHookshotItem(field_0x2fde) ||
|
||||
field_0x2fde == COPY_ROD) ||
|
||||
field_0x2fde == BOOMERANG))
|
||||
{
|
||||
commonChangeItem();
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
checkItemActionInitStart();
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -18479,9 +18791,156 @@ asm int daAlink_c::changeItemTriggerKeepProc(u8 param_0, int param_1) {
|
||||
#include "asm/d/a/d_a_alink/changeItemTriggerKeepProc__9daAlink_cFUci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800C0A9C-800C12DC 0BB3DC 0840+00 1/1 0/0 0/0 .text checkNewItemChange__9daAlink_cFUc
|
||||
*/
|
||||
/**
|
||||
* Determines whether an item action can occur, and which action to use.
|
||||
*
|
||||
* @return a `daAlink_ItemProc` value corresponding to the `PROC` function to run in `changeItemTriggerKeepProc`
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkNewItemChange(u8 param_0) {
|
||||
u32 sel_item = dComIfGp_getSelectItem(param_0);
|
||||
|
||||
if (checkSpinnerRide() || sel_item == BOMB_BAG_LV1 ||
|
||||
((sel_item == KANTERA || checkOilBottleItem(sel_item)) &&
|
||||
checkWaterInKandelaarOffset(mWaterY)) ||
|
||||
(checkCanoeRide() && checkStageName("F_SP127")) || checkCloudSea() ||
|
||||
((i_checkModeFlg(0x40000) || i_checkNoResetFlg0(FLG0_UNDERWATER)) &&
|
||||
!checkAcceptUseItemInWater(sel_item)) ||
|
||||
(i_checkModeFlg(0x40000) && sel_item == WATER_BOMB) || !checkCastleTownUseItem(sel_item) ||
|
||||
(checkBoardRide() && sel_item != 0x103) ||
|
||||
(i_checkModeFlg(0x400) &&
|
||||
(sel_item == EMPTY_BOTTLE || sel_item == POKE_BOMB || sel_item == IRONBALL ||
|
||||
sel_item == COPY_ROD || checkFishingRodItem(sel_item))) ||
|
||||
((field_0x2fa8 == 6 || field_0x2fbd == 1 || field_0x2fbd == 2 ||
|
||||
mWaterY - current.pos.y > 45.0f ||
|
||||
(field_0x2fbc == 6 && mWaterY - current.pos.y >= 0.0f) || field_0x2fbd == 3) &&
|
||||
sel_item == SPINNER) ||
|
||||
(checkBossRoom() && checkDungeonWarpItem(sel_item)) ||
|
||||
(sel_item == DUNGEON_EXIT &&
|
||||
(checkLv7DungeonShop() ||
|
||||
(checkStageName("D_MN07") && i_fopAcM_isSwitch(this, 0x4D) &&
|
||||
!i_fopAcM_isSwitch(this, 0x18)) ||
|
||||
(checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 15))) ||
|
||||
(i_checkMagneBootsOn() && sel_item != 0x103 && !checkDrinkBottleItem(sel_item) &&
|
||||
sel_item != HVY_BOOTS && !checkBowItem(sel_item)))
|
||||
{
|
||||
return ITEM_PROC_NONE;
|
||||
} else if (sel_item == HVY_BOOTS || checkDungeonWarpItem(sel_item) ||
|
||||
checkTradeItem(sel_item) ||
|
||||
(checkBottleItem(sel_item) && sel_item != EMPTY_BOTTLE) || sel_item == SPINNER ||
|
||||
sel_item == POKE_BOMB || sel_item == HORSE_FLUTE || sel_item == HAWK_EYE)
|
||||
{
|
||||
if (i_checkReinRide() || checkCanoeRide()) {
|
||||
if (checkDrinkBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
|
||||
if (checkOilBottleItem(sel_item) && checkItemSetButton(0x48) != 2) {
|
||||
return ITEM_PROC_KANDELAAR_POUR;
|
||||
}
|
||||
} else if (sel_item == HVY_BOOTS) {
|
||||
if (!checkBoardRide()) {
|
||||
if ((mLinkAcch.ChkGroundHit() && !i_checkModeFlg(0x70C52)) ||
|
||||
(i_checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) ||
|
||||
mProcID == PROC_HANG_CLIMB)
|
||||
{
|
||||
return ITEM_PROC_BOOTS_EQUIP;
|
||||
}
|
||||
return ITEM_PROC_SET_HVYBOOTS;
|
||||
}
|
||||
} else if (checkDrinkBottleItem(sel_item) && i_checkMagneBootsOn()) {
|
||||
if (cBgW_CheckBGround(mMagneBootsTopVec.y)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
} else if (mLinkAcch.ChkGroundHit()) {
|
||||
if (!i_checkModeFlg(0x70C52)) {
|
||||
if (sel_item == SPINNER) {
|
||||
cXyz sp38(current.pos.x, current.pos.y + l_autoUpHeight, current.pos.z);
|
||||
cXyz sp2C(sp38);
|
||||
cXyz sp20;
|
||||
|
||||
s16 var_r30 = 0;
|
||||
for (int i = 0; i < 4; i++, var_r30 += 0x2000) {
|
||||
sp2C.x = sp38.x + cM_ssin(var_r30) * 120.0f;
|
||||
sp2C.z = sp38.z + cM_scos(var_r30) * 120.0f;
|
||||
|
||||
if (commonLineCheck(&sp38, &sp2C)) {
|
||||
sp2C.x = (sp38.x * 2.0f) - sp2C.x;
|
||||
sp2C.z = (sp38.z * 2.0f) - sp2C.z;
|
||||
sp20 = mLinkLinChk.i_GetCross();
|
||||
|
||||
if (commonLineCheck(&sp38, &sp2C)) {
|
||||
if (mLinkLinChk.i_GetCross().abs2XZ(sp20) < 14400.0f) {
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ITEM_PROC_SPINNER_READY;
|
||||
} else if (checkDungeonWarpItem(sel_item)) {
|
||||
return ITEM_PROC_DUNGEON_WARP_READY;
|
||||
} else if (checkItemSetButton(0x108) != 2 &&
|
||||
(sel_item == WORM || sel_item == BEE_CHILD))
|
||||
{
|
||||
int temp_r3_8 = dComIfGp_getSelectItem(checkItemSetButton(0x108));
|
||||
if (temp_r3_8 == WORM_ROD || temp_r3_8 == JEWEL_WORM_ROD) {
|
||||
if (sel_item == BEE_CHILD) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
if (sel_item == BEE_CHILD &&
|
||||
(temp_r3_8 == BEE_ROD || temp_r3_8 == JEWEL_BEE_ROD))
|
||||
{
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
return ITEM_PROC_FISHING_FOOD;
|
||||
} else if (checkDrinkBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
} else if (checkOpenBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_OPEN;
|
||||
} else if (checkTradeItem(sel_item)) {
|
||||
return ITEM_PROC_NOT_USE_ITEM;
|
||||
} else if (sel_item == HORSE_FLUTE) {
|
||||
return ITEM_PROC_GRASS_WHISTLE;
|
||||
} else if (checkOilBottleItem(sel_item) && checkItemSetButton(0x48) != 2) {
|
||||
return ITEM_PROC_KANDELAAR_POUR;
|
||||
} else if (sel_item == HAWK_EYE) {
|
||||
if (acceptSubjectModeChange()) {
|
||||
return ITEM_PROC_SUBJECTIVITY;
|
||||
}
|
||||
} else if (sel_item == POKE_BOMB && dComIfGp_getSelectItemNum(param_0) &&
|
||||
field_0x2fcf < 2)
|
||||
{
|
||||
return ITEM_PROC_PICK_PUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (sel_item != NO_ITEM && mEquipItem != sel_item) {
|
||||
if ((checkBombItem(sel_item) && !dComIfGp_getSelectItemNum(param_0)) ||
|
||||
((sel_item == NORMAL_BOMB || sel_item == WATER_BOMB) && mActiveBombNum >= 3) ||
|
||||
(sel_item == IRONBALL && (!mLinkAcch.ChkGroundHit() || i_checkModeFlg(0x70C52))) ||
|
||||
(sel_item == KANTERA && (i_checkNoResetFlg0(FLG0_UNDERWATER) ||
|
||||
i_checkEndResetFlg1(ERFLG1_UNK_4) || i_checkModeFlg(0x40000))))
|
||||
{
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
return ITEM_PROC_COMMON_CHANGE_ITEM;
|
||||
}
|
||||
|
||||
if (mEquipItem == sel_item && mSelectItemId != param_0 && mEquipItem == EMPTY_BOTTLE) {
|
||||
return ITEM_PROC_BOTTLE_SWING;
|
||||
}
|
||||
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -18490,6 +18949,7 @@ asm int daAlink_c::checkNewItemChange(u8 param_0) {
|
||||
#include "asm/d/a/d_a_alink/checkNewItemChange__9daAlink_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800C12DC-800C1704 0BBC1C 0428+00 67/67 0/0 0/0 .text deleteEquipItem__9daAlink_cFii */
|
||||
#pragma push
|
||||
@@ -18598,7 +19058,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
initForceRideHorse();
|
||||
}
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
changeWarpMaterial(1);
|
||||
}
|
||||
} else if (mProcID == PROC_GRAB_STAND) {
|
||||
|
||||
@@ -2911,7 +2911,7 @@ const daAlinkHIO_wlRope_c1 daAlinkHIO_wlRope_c0::m = {
|
||||
/* 8038F4A4-8038F4E0 01BB04 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaLr_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaLr_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
{
|
||||
41,
|
||||
0.9f,
|
||||
@@ -2936,7 +2936,7 @@ const daAlinkHIO_wlAtWaLr_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
/* 8038F4E0-8038F51C 01BB40 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaSc_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaSc_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
{
|
||||
15,
|
||||
0.9f,
|
||||
@@ -2961,7 +2961,7 @@ const daAlinkHIO_wlAtWaSc_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
/* 8038F51C-8038F558 01BB7C 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaTl_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaTl_c1 daAlinkHIO_wlAtWaTl_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaTl_c0::m = {
|
||||
{
|
||||
42,
|
||||
1.05f,
|
||||
|
||||
@@ -160,8 +160,6 @@ void daAlink_c::setBoomerangReadyQuake() {
|
||||
}
|
||||
|
||||
/* 800E055C-800E05E8 0DAE9C 008C+00 2/2 0/0 0/0 .text setBoomerangReadyAnime__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setBoomerangReadyAnime() {
|
||||
f32 var_f31;
|
||||
if (i_checkAttentionLock()) {
|
||||
@@ -173,7 +171,6 @@ void daAlink_c::setBoomerangReadyAnime() {
|
||||
setUpperAnimeBaseSpeed(0x54, var_f31, lit_6109);
|
||||
setBoomerangReadyQuake();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E05E8-800E0630 0DAF28 0048+00 2/2 0/0 0/0 .text setThrowBoomerangAnime__9daAlink_cFv */
|
||||
void daAlink_c::setThrowBoomerangAnime() {
|
||||
@@ -313,8 +310,6 @@ void daAlink_c::checkUpperItemActionBoomerangFly() {
|
||||
}
|
||||
|
||||
/* 800E0BE4-800E0D8C 0DB524 01A8+00 4/4 0/0 0/0 .text checkNextActionBoomerang__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionBoomerang() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCheckFrame) ||
|
||||
@@ -355,7 +350,6 @@ int daAlink_c::checkNextActionBoomerang() {
|
||||
return procBoomerangMoveInit();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E0D8C-800E0E64 0DB6CC 00D8+00 1/1 0/0 0/0 .text checkBoomerangCatchAction__9daAlink_cFv */
|
||||
int daAlink_c::checkBoomerangCatchAction() {
|
||||
|
||||
@@ -119,21 +119,21 @@ int daAlink_c::procBottleDrinkInit(u16 param_0) {
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000);
|
||||
field_0x3194 = 1;
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8010F698-8010F6F4 109FD8 005C+00 1/0 0/0 0/0 .text procBottleDrink__9daAlink_cFv */
|
||||
int daAlink_c::procBottleDrink() {
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
field_0x300e.x = commonBottleDrink(0);
|
||||
mProcVar3.field_0x300e.x = commonBottleDrink(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -158,9 +158,9 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000);
|
||||
field_0x300a = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
field_0x32cc = -1;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
|
||||
if (mEquipItem == FAIRY) {
|
||||
field_0x3194 = 3;
|
||||
@@ -170,23 +170,23 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
if (mEquipItem == WORM) {
|
||||
field_0x32cc = fopAcM_create(PROC_NPC_WORM, 2, ¤t.pos, fopAcM_GetRoomNo(this),
|
||||
NULL, NULL, -1);
|
||||
field_0x3008 = 0;
|
||||
field_0x300a = 1;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar1.field_0x300a = 1;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
field_0x27c8.initialize();
|
||||
|
||||
if (param_0 == 0x67) {
|
||||
setCylAtParam(0x200, 0, 0, 0, 0, 30.0f, 30.0f);
|
||||
}
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -167,16 +167,11 @@ asm void daAlink_c::changeArrowType() {
|
||||
#pragma pop
|
||||
|
||||
/* 800DED88-800DEE1C 0D96C8 0094+00 1/1 0/0 0/0 .text cancelBowMoveRideNotAtn__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
BOOL daAlink_c::cancelBowMoveRideNotAtn() {
|
||||
return i_checkModeFlg(0x400) && i_checkAttentionLock() && mTargetedActor == NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800DEE1C-800DEEDC 0D975C 00C0+00 3/3 0/0 0/0 .text cancelBowMove__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
BOOL daAlink_c::cancelBowMove() {
|
||||
if (mTargetedActor == NULL && !i_checkAttentionLock() && mFastShotTime == 0 &&
|
||||
!checkBowReadyAnime() && (!checkBowShootAnime() || mUpperFrameCtrl[2].checkAnmEnd()))
|
||||
@@ -187,7 +182,6 @@ BOOL daAlink_c::cancelBowMove() {
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800DEEDC-800DEFB8 0D981C 00DC+00 3/3 0/0 0/0 .text setBowReadyAnime__9daAlink_cFv */
|
||||
void daAlink_c::setBowReadyAnime() {
|
||||
@@ -370,7 +364,7 @@ int daAlink_c::procBowMoveInit() {
|
||||
}
|
||||
|
||||
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
}
|
||||
@@ -379,11 +373,11 @@ int daAlink_c::procBowMoveInit() {
|
||||
int daAlink_c::procBowMove() {
|
||||
cancelBowMove();
|
||||
|
||||
if (mFastShotTime == 0 && field_0x300c != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
if (mFastShotTime == 0 && mProcVar2.field_0x300c != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
resetUpperAnime(UPPER_2, lit_6041);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (!checkNextAction(0)) {
|
||||
|
||||
+10
-10
@@ -127,11 +127,11 @@ BOOL daAlink_c::checkCanoeFishingRodGrabOrPut() const {
|
||||
|
||||
/* 800F3FC4-800F4008 0EE904 0044+00 2/2 0/0 0/0 .text initCanoeRide__9daAlink_cFv */
|
||||
void daAlink_c::initCanoeRide() {
|
||||
field_0x300e.z = 1;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x384c = (cXyz*)&l_canoeBaseAnime;
|
||||
mRideStatus = 3;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
/* 800F4008-800F40E4 0EE948 00DC+00 2/2 0/0 0/0 .text checkCanoeJumpRide__9daAlink_cFv */
|
||||
@@ -146,7 +146,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
|
||||
|
||||
if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
canoe->checkJumpRideFlg() && !checkDeadHP() &&
|
||||
(mProcID != PROC_FALL || field_0x300e.y != 0)) {
|
||||
(mProcID != PROC_FALL || mProcVar3.field_0x300e.y != 0)) {
|
||||
return procCanoeJumpRideInit(canoe);
|
||||
}
|
||||
|
||||
@@ -267,11 +267,11 @@ int daAlink_c::procCanoeRideInit() {
|
||||
|
||||
if ((s16)(fopAcM_searchActorAngleY(canoe, this) - canoe->shape_angle.y) > 0) {
|
||||
shape_angle.y = canoe->shape_angle.y - 0x4000;
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x37c8.x = lit_20991;
|
||||
} else {
|
||||
shape_angle.y = canoe->shape_angle.y + 0x4000;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
field_0x37c8.x = lit_20992;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ int daAlink_c::procCanoeRideInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
initCanoeRide();
|
||||
field_0x300e.x = 0x80;
|
||||
mProcVar3.field_0x300e.x = 0x80;
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
@@ -297,12 +297,12 @@ int daAlink_c::procCanoeRide() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procCanoeWaitInit(1);
|
||||
} else if (frameCtrl->getFrame() < lit_7710) {
|
||||
field_0x300e.x += 0x180;
|
||||
mProcVar3.field_0x300e.x += 0x180;
|
||||
|
||||
if (field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-field_0x300e.x);
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-mProcVar3.field_0x300e.x);
|
||||
} else {
|
||||
canoe->incShapeAngleZ(field_0x300e.x);
|
||||
canoe->incShapeAngleZ(mProcVar3.field_0x300e.x);
|
||||
}
|
||||
canoe->incShapeOffsetY(lit_21021);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ BOOL daAlink_c::checkForestOldCentury() {
|
||||
/* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkCopyRodTopUse() {
|
||||
// Event flag 0x2580: Dominion Rod power restored
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e.x != 0)) ||
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e.x != 0)) ||
|
||||
i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 ||
|
||||
checkForestOldCentury();
|
||||
}
|
||||
@@ -126,8 +126,6 @@ void daAlink_c::setCopyRodModel() {
|
||||
|
||||
/* 800E1840-800E191C 0DC180 00DC+00 2/2 0/0 0/0 .text setCopyRodReadyAnime__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setCopyRodReadyAnime() {
|
||||
f32 speed;
|
||||
if (i_checkAttentionLock()) {
|
||||
@@ -148,7 +146,6 @@ void daAlink_c::setCopyRodReadyAnime() {
|
||||
mAtCps[0].SetAtType(0x1000000);
|
||||
initLockAt();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E191C-800E1A30 0DC25C 0114+00 1/1 0/0 0/0 .text throwCopyRod__9daAlink_cFv */
|
||||
void daAlink_c::throwCopyRod() {
|
||||
@@ -230,8 +227,6 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
|
||||
}
|
||||
|
||||
/* 800E1C44-800E1D6C 0DC584 0128+00 2/2 0/0 0/0 .text checkNextActionCopyRod__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionCopyRod() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCheckFrame) ||
|
||||
@@ -258,7 +253,6 @@ int daAlink_c::checkNextActionCopyRod() {
|
||||
|
||||
return procCopyRodMoveInit();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E1D6C-800E1E20 0DC6AC 00B4+00 1/1 0/0 0/0 .text setCopyRodSight__9daAlink_cFv */
|
||||
void daAlink_c::setCopyRodSight() {
|
||||
@@ -382,8 +376,8 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 1;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
mAtCps[0].SetR(lit_11442);
|
||||
@@ -395,7 +389,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
/* 800E21FC-800E2308 0DCB3C 010C+00 1/0 0/0 0/0 .text procCopyRodSwing__9daAlink_cFv */
|
||||
int daAlink_c::procCopyRodSwing() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
setCopyRodControllAnime();
|
||||
@@ -405,16 +399,16 @@ int daAlink_c::procCopyRodSwing() {
|
||||
setCopyRodControllAnime();
|
||||
}
|
||||
} else if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) {
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
seStartSwordCut(Z2SE_AL_COPYROD_SWING);
|
||||
}
|
||||
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
if (changeCutReverseProc(ANM_CUT_RECOIL_A)) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -196,7 +196,7 @@ void daAlink_c::setCrawlMoveHoll() {
|
||||
f32 frame_ctrl_rate = mUnderFrameCtrl[0].getRate();
|
||||
|
||||
if (frame_ctrl_rate != FLOAT_LABEL(lit_6108)) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 5, 0x1000, 0x800);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 5, 0x1000, 0x800);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -330,8 +330,8 @@ int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
|
||||
field_0x37c8 = *param_1;
|
||||
field_0x33cc = lit_6040;
|
||||
field_0x3198 = param_0;
|
||||
field_0x3008 = 20;
|
||||
field_0x300a = 300;
|
||||
mProcVar0.field_0x3008 = 20;
|
||||
mProcVar1.field_0x300a = 300;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000000);
|
||||
setCrawlMoveDirectionArrow();
|
||||
|
||||
+116
-125
@@ -212,8 +212,6 @@ void daAlink_c::resetCombo(int param_0) {
|
||||
}
|
||||
|
||||
/* 800D1454-800D152C 0CBD94 00D8+00 1/1 0/0 0/0 .text checkComboCnt__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::checkComboCnt() {
|
||||
if ((mEquipItem == EQUIP_SWORD && mComboCutCount == 2) &&
|
||||
(i_checkAttentionLock() &&
|
||||
@@ -228,7 +226,6 @@ void daAlink_c::checkComboCnt() {
|
||||
resetCombo(1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D152C-800D1540 0CBE6C 0014+00 22/22 0/0 0/0 .text setCutType__9daAlink_cFUc */
|
||||
void daAlink_c::setCutType(u8 type) {
|
||||
@@ -519,10 +516,10 @@ void daAlink_c::setSwordVoiceSe(u32 i_seID) {
|
||||
/* 800D22BC-800D2304 0CCBFC 0048+00 3/3 0/0 0/0 .text setSwordChargeVoiceSe__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwordChargeVoiceSe() {
|
||||
if (field_0x300c != 0) {
|
||||
field_0x300c--;
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
mProcVar2.field_0x300c--;
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setSwordVoiceSe(Z2SE_AL_V_TAME);
|
||||
}
|
||||
}
|
||||
@@ -545,8 +542,6 @@ bool daAlink_c::checkCutTurnInputTrigger() {
|
||||
}
|
||||
|
||||
/* 800D23C0-800D2684 0CCD00 02C4+00 7/7 0/0 0/0 .text checkCutAction__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkCutAction() {
|
||||
if (commonCutAction()) {
|
||||
return 1;
|
||||
@@ -580,8 +575,8 @@ int daAlink_c::checkCutAction() {
|
||||
} else {
|
||||
procCutNormalInit(normalType3[cutDir]);
|
||||
}
|
||||
} else if (mProcID == PROC_CUT_NORMAL && field_0x300a != 4) {
|
||||
if (field_0x300a == 2) {
|
||||
} else if (mProcID == PROC_CUT_NORMAL && mProcVar1.field_0x300a != 4) {
|
||||
if (mProcVar1.field_0x300a == 2) {
|
||||
procCutNormalInit(1);
|
||||
} else {
|
||||
procCutNormalInit(2);
|
||||
@@ -600,18 +595,17 @@ int daAlink_c::checkCutAction() {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */
|
||||
void daAlink_c::checkCutTurnCharge() {
|
||||
if (swordButton()) {
|
||||
if (field_0x300e.z < 3) {
|
||||
field_0x300e.z++;
|
||||
if (mProcVar3.field_0x300e.z < 3) {
|
||||
mProcVar3.field_0x300e.z++;
|
||||
} else {
|
||||
i_onResetFlg0(RFLG0_UNK_40);
|
||||
}
|
||||
} else {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -729,9 +723,9 @@ void daAlink_c::cancelCutCharge() {
|
||||
*/
|
||||
void daAlink_c::initCutAtnActorSearch() {
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
} else {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
@@ -740,7 +734,7 @@ void daAlink_c::initCutAtnActorSearch() {
|
||||
/* 800D2C54-800D2C78 0CD594 0024+00 3/3 0/0 0/0 .text checkCutAtnActorChange__9daAlink_cFv */
|
||||
void daAlink_c::checkCutAtnActorChange() {
|
||||
if (field_0x32cc != (u32)mTargetedActor) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
}
|
||||
}
|
||||
@@ -797,8 +791,6 @@ asm void daAlink_c::setCutJumpSpeed(int param_0) {
|
||||
#endif
|
||||
|
||||
/* 800D2F58-800D31B8 0CD898 0260+00 3/3 0/0 0/0 .text procCutNormalInit__9daAlink_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::procCutNormalInit(int i_type) {
|
||||
const daAlink_cutParamTbl* cutParams = &cutParamTable_7312[i_type];
|
||||
|
||||
@@ -841,9 +833,9 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (!i_checkAttentionLock() && checkInputOnR()) {
|
||||
field_0x300c = field_0x2fe2;
|
||||
mProcVar2.field_0x300c = field_0x2fe2;
|
||||
} else {
|
||||
field_0x300c = shape_angle.y;
|
||||
mProcVar2.field_0x300c = shape_angle.y;
|
||||
}
|
||||
|
||||
if (mComboCutCount != 1) {
|
||||
@@ -856,23 +848,22 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
|
||||
int cutDir = getCutDirection();
|
||||
if (mComboCutCount == 1 && (cutDir == DIR_LEFT || cutDir == DIR_RIGHT)) {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
} else {
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
field_0x300a = 4;
|
||||
mProcVar1.field_0x300a = 4;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D31B8-800D34D8 0CDAF8 0320+00 1/0 0/0 0/0 .text procCutNormal__9daAlink_cFv */
|
||||
int daAlink_c::procCutNormal() {
|
||||
@@ -890,14 +881,14 @@ int daAlink_c::procCutNormal() {
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
if (mProcVar3.field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
int cutDir = getCutDirection();
|
||||
if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT &&
|
||||
frameCtrl->getFrame() > lit_7448) ||
|
||||
(cutDir == DIR_LEFT && mCutType == CUT_TYPE_NM_RIGHT &&
|
||||
frameCtrl->getFrame() > lit_7448))
|
||||
{
|
||||
field_0x300a = cutDir;
|
||||
mProcVar1.field_0x300a = cutDir;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -909,7 +900,7 @@ int daAlink_c::procCutNormal() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if ((!(frameCtrl->getFrame() > field_0x3484) && field_0x300a == 4) ||
|
||||
} else if ((!(frameCtrl->getFrame() > field_0x3484) && mProcVar1.field_0x300a == 4) ||
|
||||
!checkCutCancelNextMode(3))
|
||||
{
|
||||
if (frameCtrl->getFrame() > field_0x3484) {
|
||||
@@ -920,14 +911,14 @@ int daAlink_c::procCutNormal() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (setShapeAngleToAtnActor(field_0x300e.y)) {
|
||||
field_0x300c = shape_angle.y;
|
||||
if (setShapeAngleToAtnActor(mProcVar3.field_0x300e.y)) {
|
||||
mProcVar2.field_0x300c = shape_angle.y;
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x2000, 0x800);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x2000, 0x800);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -970,8 +961,8 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
commonProcInit(PROC_CUT_FINISH);
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->field_0x4;
|
||||
field_0x300c = cutParams->field_0xa;
|
||||
field_0x300e.x = cutParams->field_0xb;
|
||||
mProcVar2.field_0x300c = cutParams->field_0xa;
|
||||
mProcVar3.field_0x300e.x = cutParams->field_0xb;
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
@@ -1022,13 +1013,13 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = cutData->mComboCheckFrame;
|
||||
field_0x3008 = cutData->mComboStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mComboStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
field_0x32d0 = Z2SE_AL_SWORD_SWING_S;
|
||||
} else {
|
||||
field_0x3484 = cutData->mCutAnm.mCheckFrame;
|
||||
field_0x3008 = cutData->mStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
|
||||
@@ -1052,7 +1043,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
field_0x2f99 = 13;
|
||||
}
|
||||
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
initCutAtnActorSearch();
|
||||
@@ -1096,18 +1087,18 @@ int daAlink_c::procCutFinish() {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->getFrame() >= field_0x300e.x) {
|
||||
if (frameCtrl_p->getFrame() >= mProcVar3.field_0x300e.x) {
|
||||
onModeFlg(0x100);
|
||||
} else if (frameCtrl_p->getFrame() >= field_0x300c) {
|
||||
} else if (frameCtrl_p->getFrame() >= mProcVar2.field_0x300c) {
|
||||
offModeFlg(0x100);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
resetCombo(1);
|
||||
|
||||
if (field_0x3008 > 0) {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else if (mDemo.getDemoMode() == 0x24 || mDemo.getDemoMode() == 0x54) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
@@ -1125,10 +1116,10 @@ int daAlink_c::procCutFinish() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1199,7 +1190,7 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
@@ -1258,13 +1249,13 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mComboCheckFrame;
|
||||
field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
} else {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mLandAnm.mCheckFrame;
|
||||
field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
}
|
||||
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
@@ -1287,9 +1278,9 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (mDemo.getDemoMode() == 0x52) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (field_0x3008 > 0) {
|
||||
} else if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
@@ -1301,10 +1292,10 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
resetCombo(1);
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1330,13 +1321,13 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
|
||||
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 2;
|
||||
setUpperGuardAnime(lit_6041);
|
||||
} else {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 4;
|
||||
}
|
||||
@@ -1344,7 +1335,7 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
int temp_r3;
|
||||
if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B ||
|
||||
@@ -1369,12 +1360,12 @@ int daAlink_c::procCutReverse() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), daAlinkHIO_cut_c0::m.mRecoilDeceleration);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
checkCutTurnCharge();
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
}
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
setUpperGuardAnime(lit_6041);
|
||||
}
|
||||
|
||||
@@ -1545,8 +1536,8 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mRightAttackStartFrame;
|
||||
field_0x3488 = cutData->mRightAttackEndFrame;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300a = 6;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar1.field_0x300a = 6;
|
||||
} else {
|
||||
anmID = ANM_CUT_TURN_LEFT;
|
||||
anm_data = &cutData->mLeftTurnAnm;
|
||||
@@ -1559,8 +1550,8 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mLeftAttackStartFrame;
|
||||
field_0x3488 = cutData->mLeftAttackEndFrame;
|
||||
field_0x300e.y = 0;
|
||||
field_0x300a = 8;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar1.field_0x300a = 8;
|
||||
}
|
||||
|
||||
field_0x3480 = anm_data->->mCheckFrame;
|
||||
@@ -1610,12 +1601,12 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x347c = lit_6896;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3008 = cutData->mStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x3180 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, var_r29_3);
|
||||
return 1;
|
||||
@@ -1651,9 +1642,9 @@ int daAlink_c::procCutTurn() {
|
||||
}
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (field_0x3008 > 0) {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl->getFrame() > field_0x3480) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else if (mDemo.getDemoMode() == 0x24) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
@@ -1693,7 +1684,7 @@ int daAlink_c::procCutTurnChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1707,7 +1698,7 @@ int daAlink_c::procCutTurnCharge() {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
|
||||
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
checkCutAction();
|
||||
} else {
|
||||
cancelCutCharge();
|
||||
@@ -1748,10 +1739,10 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
} else {
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
}
|
||||
|
||||
field_0x300c = param_0;
|
||||
mProcVar2.field_0x300c = param_0;
|
||||
i_onNoResetFlg1(FLG1_UNK_10000000);
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000000);
|
||||
return 1;
|
||||
@@ -1766,9 +1757,9 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
} else {
|
||||
field_0x3008++;
|
||||
if (field_0x3008 >= 14.0f) {
|
||||
field_0x3008 = 100;
|
||||
mProcVar0.field_0x3008++;
|
||||
if (mProcVar0.field_0x3008 >= 14.0f) {
|
||||
mProcVar0.field_0x3008 = 100;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1779,9 +1770,9 @@ int daAlink_c::procCutTurnMove() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL var_r4 = m_nSwordBtk->getFrame() >= 14.0f || field_0x3008 >= 14.0f;
|
||||
BOOL var_r4 = m_nSwordBtk->getFrame() >= 14.0f || mProcVar0.field_0x3008 >= 14.0f;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
if (checkDownAttackState() && !var_r4) {
|
||||
setDoStatusEmphasys(0x30);
|
||||
} else if (checkCutHeadState() && !var_r4) {
|
||||
@@ -1797,7 +1788,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (var_r4) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
}
|
||||
} else if ((field_0x300c == 0 && swordButton()) || (field_0x300c != 0 && doButton())) {
|
||||
} else if ((mProcVar2.field_0x300c == 0 && swordButton()) || (mProcVar2.field_0x300c != 0 && doButton())) {
|
||||
f32 var_f30 = 0.0f;
|
||||
i_onResetFlg0(RFLG0_UNK_10);
|
||||
|
||||
@@ -1871,12 +1862,12 @@ int daAlink_c::procCutTurnMove() {
|
||||
mSpeedModifier = 1.0f;
|
||||
}
|
||||
} else if (var_r4) {
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
procCutLargeJumpInit();
|
||||
} else {
|
||||
procCutTurnInit(0, 1);
|
||||
}
|
||||
} else if (field_0x300c != 0) {
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
checkDoCutAction();
|
||||
} else {
|
||||
cancelCutCharge();
|
||||
@@ -1908,14 +1899,14 @@ int daAlink_c::procCutDownInit() {
|
||||
resetCombo(1);
|
||||
|
||||
cXyz sp2C;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
if (mTargetedActor != NULL) {
|
||||
sp2C = static_cast<fopEn_enemy_c*>(mTargetedActor)->getDownPos();
|
||||
field_0x280c.setData(mTargetedActor);
|
||||
|
||||
if (fopAcM_GetName(mTargetedActor) == PROC_B_GND) {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
}
|
||||
} else {
|
||||
sp2C.set(current.pos.x + cM_ssin(shape_angle.y) * 100.0f, current.pos.y,
|
||||
@@ -1923,7 +1914,7 @@ int daAlink_c::procCutDownInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
offModeFlg(2);
|
||||
@@ -1967,7 +1958,7 @@ int daAlink_c::procCutDownInit() {
|
||||
|
||||
temp_f1 = JMAFastSqrt(temp_f1 * 2.0f * var_f5);
|
||||
mNormalSpeed = var_f31 / (temp_f1 - var_f4 * var_f5);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_TODOME_JUMP);
|
||||
@@ -1988,14 +1979,14 @@ asm int daAlink_c::procCutDownInit() {
|
||||
|
||||
/* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */
|
||||
int daAlink_c::procCutDown() {
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit() && speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
|
||||
}
|
||||
|
||||
@@ -2016,7 +2007,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < 10000.0f &&
|
||||
fabsf(i_enemy->current.pos.y - current.pos.y) < 100.0f))
|
||||
{
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
if (i_enemy != NULL) {
|
||||
i_enemy->onCutDownHitFlg();
|
||||
|
||||
@@ -2025,16 +2016,16 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
}
|
||||
|
||||
var_r30 = 0x20;
|
||||
field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
var_r30 = mPolySound;
|
||||
field_0x300e.x = 0;
|
||||
field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
}
|
||||
|
||||
mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
i_offResetFlg0(RFLG0_UNK_8000000);
|
||||
@@ -2042,7 +2033,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
|
||||
setFootEffectProcType(2);
|
||||
i_onResetFlg1(RFLG1_UNK_30);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x400000);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
@@ -2071,15 +2062,15 @@ int daAlink_c::procCutDownLand() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (field_0x300c == 0) {
|
||||
if (field_0x3008 != 0) {
|
||||
field_0x3008--;
|
||||
} else if (field_0x300e.x != 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mDemo.getDemoMode() == 0x51) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
@@ -2088,16 +2079,16 @@ int daAlink_c::procCutDownLand() {
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS,
|
||||
&daAlinkHIO_cutDown_c0::m.mMissAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (field_0x300c != 0) {
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
if (frameCtrl_p->getFrame() >= 37.0f) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (frameCtrl_p->getFrame() >= 30.0f) {
|
||||
field_0x300e.y = 254;
|
||||
mProcVar3.field_0x300e.y = 254;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->checkPass(54.0f)) {
|
||||
@@ -2159,7 +2150,7 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
|
||||
mNormalSpeed = field_0x3478 * fvar10 * 2.0f;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
current.angle.y = sp2C.atan2sX_Z();
|
||||
shape_angle.y = current.angle.y;
|
||||
@@ -2184,7 +2175,7 @@ asm int daAlink_c::procCutHeadInit() {
|
||||
|
||||
/* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */
|
||||
int daAlink_c::procCutHead() {
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478);
|
||||
|
||||
if (speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
@@ -2193,7 +2184,7 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
setCutWaterDropEffect();
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK);
|
||||
}
|
||||
@@ -2259,7 +2250,7 @@ int daAlink_c::procCutLargeJumpChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2302,15 +2293,15 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
field_0x300e.x = 4;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.x = 4;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3198 = 2;
|
||||
return 1;
|
||||
}
|
||||
@@ -2319,7 +2310,7 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
int daAlink_c::procCutLargeJump() {
|
||||
daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (field_0x300e.y != 0) {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
@@ -2327,15 +2318,15 @@ int daAlink_c::procCutLargeJump() {
|
||||
field_0x3198 = getCutTurnDirection();
|
||||
}
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
field_0x2f99 = 12;
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7307) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) {
|
||||
@@ -2355,10 +2346,10 @@ int daAlink_c::procCutLargeJump() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (field_0x300e.x != 0) {
|
||||
field_0x300e.x--;
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
mProcVar3.field_0x300e.x--;
|
||||
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
@@ -2394,7 +2385,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
|
||||
field_0x347c = lit_6896;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3198 = param_0;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -2432,9 +2423,9 @@ int daAlink_c::procCutLargeJumpLand() {
|
||||
i_onResetFlg0(RFLG0_UNK_2);
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
resetAtCollision(0);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_FINISH);
|
||||
initCutTurnAt(field_0x347c, 4);
|
||||
}
|
||||
@@ -2457,9 +2448,9 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -2472,20 +2463,20 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
field_0x2f99 = 4;
|
||||
} else {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
}
|
||||
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
if (field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
field_0x300e.y = 1;
|
||||
if (mProcVar3.field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
setFaceBasicBck(0x149);
|
||||
setFaceBasicBtp(0x3E1);
|
||||
}
|
||||
@@ -2530,7 +2521,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7710) {
|
||||
field_0x2f93 = 0xFE;
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,23 +33,23 @@ void daAlink_c::setDkCaught(fopAc_ac_c* param_0) {
|
||||
|
||||
/* 800D6E24-800D6F00 0D1764 00DC+00 2/2 0/0 0/0 .text freezeTimerDamage__9daAlink_cFv */
|
||||
void daAlink_c::freezeTimerDamage() {
|
||||
field_0x3008--;
|
||||
field_0x300a++;
|
||||
mProcVar0.field_0x3008--;
|
||||
mProcVar1.field_0x300a++;
|
||||
|
||||
if (field_0x300a % 45 == 0) {
|
||||
if (mProcVar1.field_0x300a % 45 == 0) {
|
||||
setDamagePoint(1, 1, 0, 0);
|
||||
}
|
||||
|
||||
if (escapeTrigger()) {
|
||||
field_0x3008 -= 2;
|
||||
mProcVar0.field_0x3008 -= 2;
|
||||
}
|
||||
|
||||
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
|
||||
field_0x3008 -= 2;
|
||||
mProcVar0.field_0x3008 -= 2;
|
||||
}
|
||||
|
||||
if (field_0x3008 < 0) {
|
||||
field_0x3008 = 0;
|
||||
if (mProcVar0.field_0x3008 < 0) {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ asm int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param
|
||||
*/
|
||||
int daAlink_c::procCoLargeDamageWall() {
|
||||
if (mUnderFrameCtrl[0].checkAnmEnd()) {
|
||||
procCoLargeDamageInit(field_0x3198, field_0x3008, field_0x3080, field_0x3082, NULL, 0);
|
||||
procCoLargeDamageInit(field_0x3198, mProcVar0.field_0x3008, field_0x3080, field_0x3082, NULL, 0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -497,8 +497,8 @@ int daAlink_c::procLandDamage() {
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (field_0x3008 > 0) {
|
||||
field_0x3008--;
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &daAlinkHIO_damFall_c0::m.mStandAnm);
|
||||
field_0x3198 = 1;
|
||||
@@ -582,7 +582,7 @@ asm int daAlink_c::procDkCaught() {
|
||||
void daAlink_c::setScreamWaitAnime() {
|
||||
setSingleAnimeBase(ANM_WAIT_F);
|
||||
voiceStart(Z2SE_AL_V_TERRORED);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
dComIfGp_getVibration().StartQuake(5, 1, cXyz(tmp_0, lit_6040, tmp_0));
|
||||
@@ -597,7 +597,7 @@ int daAlink_c::procScreamWaitInit() {
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -611,7 +611,7 @@ int daAlink_c::procScreamWait() {
|
||||
|
||||
if (!i_checkEndResetFlg1(ERFLG1_UNK_1)) {
|
||||
checkNextAction(0);
|
||||
} else if (field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
} else if (mProcVar2.field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setScreamWaitAnime();
|
||||
}
|
||||
|
||||
@@ -719,7 +719,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(9, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0x2D;
|
||||
mProcVar2.field_0x300c = 0x2D;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -727,7 +727,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procCoSwimFreezeReturn() {
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkRestartDead(4, 1)) {
|
||||
i_onNoResetFlg1(FLG1_UNK_40000000);
|
||||
} else {
|
||||
@@ -737,7 +737,7 @@ int daAlink_c::procCoSwimFreezeReturn() {
|
||||
dStage_changeScene(3, 0.0f, mode, fopAcM_GetRoomNo(this), shape_angle.y, -1);
|
||||
}
|
||||
} else {
|
||||
field_0x300c--;
|
||||
mProcVar2.field_0x300c--;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
+257
-257
File diff suppressed because it is too large
Load Diff
@@ -342,7 +342,7 @@ asm void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& param_0) {
|
||||
/* 80124144-801241E0 11EA84 009C+00 9/9 0/0 0/0 .text setCutWaterDropEffect__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setCutWaterDropEffect() {
|
||||
if (field_0x32c0 > 0) {
|
||||
if (field_0x32c0[0] > 0) {
|
||||
cXyz sp18;
|
||||
mDoMtx_multVecZero(mpLinkModel->i_getAnmMtx(1), &sp18);
|
||||
dComIfGp_particle_setColor(0x2A4, &sp18, &mTevStr, NULL, NULL, FLOAT_LABEL(lit_6108), -1,
|
||||
|
||||
@@ -176,7 +176,7 @@ static u8 lit_4421[12];
|
||||
#pragma pop
|
||||
|
||||
/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */
|
||||
static f32 l_wolfRopeBaseAnime[3];
|
||||
static Vec l_wolfRopeBaseAnime;
|
||||
|
||||
/* 80425640-8042564C 052360 000C+00 0/1 0/0 0/0 .bss @14255 */
|
||||
#pragma push
|
||||
@@ -324,9 +324,9 @@ asm void daAlink_c::putObjLineCheck(dBgS_LinChk& param_0, cXyz* param_1, fopAc_a
|
||||
#pragma pop
|
||||
|
||||
/* 800E5B6C-800E5BB4 0E04AC 0048+00 3/3 0/0 0/0 .text grabLineCheck__9daAlink_cFP4cXyzP4cXyz */
|
||||
void daAlink_c::grabLineCheck(cXyz* i_start, cXyz* i_end) {
|
||||
bool daAlink_c::grabLineCheck(cXyz* i_start, cXyz* i_end) {
|
||||
mObjLinChk.Set(i_start, i_end, mGrabItemAcKeep.getActor());
|
||||
dComIfG_Bgsp().LineCross(&mObjLinChk);
|
||||
return dComIfG_Bgsp().LineCross(&mObjLinChk);
|
||||
}
|
||||
|
||||
/* 800E5BB4-800E5CBC 0E04F4 0108+00 6/6 0/0 0/0 .text setGrabItemActor__9daAlink_cFP10fopAc_ac_c
|
||||
@@ -858,8 +858,8 @@ static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) {
|
||||
/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::cancelGoronThrowEvent() {
|
||||
if (mProcID == PROC_GOAT_CATCH && field_0x300e.z == 0) {
|
||||
field_0x300e.z = 1;
|
||||
if (mProcID == PROC_GOAT_CATCH && mProcVar3.field_0x300e.z == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
i_dComIfGp_event_reset();
|
||||
}
|
||||
}
|
||||
@@ -892,14 +892,14 @@ int daAlink_c::procGoatMoveInit() {
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
|
||||
setSingleAnimeBase(ANM_ATN_COW);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
fopAc_ac_c* goat_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoat, NULL);
|
||||
if (goat_p != NULL) {
|
||||
field_0x280c.setData(goat_p);
|
||||
}
|
||||
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
@@ -1002,8 +1002,8 @@ int daAlink_c::procGoronMoveInit() {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
field_0x300c = 1;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
+32
-32
@@ -398,7 +398,7 @@ int daAlink_c::procHangReadyInit() {
|
||||
|
||||
commonProcInit(PROC_HANG_READY);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
field_0x300c = field_0x306e + 0x8000;
|
||||
mProcVar2.field_0x300c = field_0x306e + 0x8000;
|
||||
field_0x3198 = field_0x2f91;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -409,11 +409,11 @@ int daAlink_c::procHangReadyInit() {
|
||||
|
||||
/* 800FC240-800FC2F4 0F6B80 00B4+00 1/0 0/0 0/0 .text procHangReady__9daAlink_cFv */
|
||||
int daAlink_c::procHangReady() {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x1000, 0x400);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x1000, 0x400);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
shape_angle.y = field_0x300c;
|
||||
shape_angle.y = mProcVar2.field_0x300c;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
int hang_init;
|
||||
@@ -443,7 +443,7 @@ int daAlink_c::procHangLeverDownInit() {
|
||||
commonProcInit(PROC_HANG_LEVER_DOWN);
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
field_0x3198 = 145;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -525,11 +525,11 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) {
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3080 = 0;
|
||||
|
||||
field_0x280c.setData(param_0);
|
||||
@@ -691,8 +691,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
|
||||
field_0x30a0 = -0x0800;
|
||||
field_0x33f4 = lit_6041;
|
||||
field_0x300c = 1;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -711,8 +711,8 @@ int daAlink_c::procLadderUpEnd() {
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= lit_15341) {
|
||||
field_0x300c = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (frame_ctrl->getFrame() >= lit_17382) {
|
||||
field_0x30a0 = 0;
|
||||
field_0x33f4 = FLOAT_LABEL(lit_6108);
|
||||
@@ -749,8 +749,8 @@ int daAlink_c::procLadderDownStart() {
|
||||
changeLadderMoveProc(0);
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() >= lit_10286) {
|
||||
field_0x300c = 1;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -769,8 +769,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
|
||||
field_0x30a0 = 0x2800;
|
||||
field_0x33f4 = lit_6040;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -1211,7 +1211,7 @@ int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& p
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x3008 = param_2;
|
||||
mProcVar0.field_0x3008 = param_2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1222,11 +1222,11 @@ int daAlink_c::procRoofHangStart() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 < lit_13700) {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
if (field_0x3008 == 0 &&
|
||||
if (mProcVar0.field_0x3008 == 0 &&
|
||||
(checkAnmEnd(frame_ctrl) ||
|
||||
(checkInputOnR() &&
|
||||
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.field_0x0.mCheckFrame)))
|
||||
@@ -1257,10 +1257,10 @@ int daAlink_c::procRoofHangWait() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 < lit_13700) {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
|
||||
if (field_0x3008 == 0) {
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
checkNextActionRoofHang();
|
||||
}
|
||||
|
||||
@@ -1348,17 +1348,17 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
f32 anm_speed;
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
|
||||
anm_speed = -daAlinkHIO_roofHang_c0::m.field_0x44;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
shape_angle.y += 0x8000;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
field_0x2060->getOldFrameTransInfo(0)->mTranslate.z = lit_26275;
|
||||
field_0x300c = field_0x2fe2;
|
||||
mProcVar2.field_0x300c = field_0x2fe2;
|
||||
field_0x3478 = FLOAT_LABEL(lit_6108);
|
||||
field_0x347c = lit_7625;
|
||||
} else {
|
||||
anm_speed = daAlinkHIO_roofHang_c0::m.field_0x44;
|
||||
field_0x3008 = 0;
|
||||
field_0x300c = field_0x2fe2 + 0x8000;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
|
||||
field_0x3478 = lit_7625;
|
||||
field_0x347c = lit_26276;
|
||||
}
|
||||
@@ -1366,7 +1366,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.field_0x48);
|
||||
|
||||
if (field_0x3008 != 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
setFaceBasicTexture(FTANM_UNK_4);
|
||||
} else {
|
||||
setFaceBasicTexture(FTANM_UNK_3);
|
||||
@@ -1389,7 +1389,7 @@ int daAlink_c::procRoofHangTurn() {
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
if (field_0x3008 == 0) {
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
shape_angle.y += 0x8000;
|
||||
current.angle.y = shape_angle.y;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
@@ -1399,7 +1399,7 @@ int daAlink_c::procRoofHangTurn() {
|
||||
checkNextActionRoofHang();
|
||||
} else {
|
||||
if (frame_ctrl->getFrame() >= field_0x3478 && frame_ctrl->getFrame() <= field_0x347c) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 3, 0x200, 0x100);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 3, 0x200, 0x100);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -1441,7 +1441,7 @@ int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
setOldRootQuaternion(0, current.angle.y - shape_angle.y, 0);
|
||||
shape_angle.y = current.angle.y;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1456,8 +1456,8 @@ int daAlink_c::procRoofSwitchHang() {
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C,
|
||||
daAlinkHIO_roofHang_c0::m.field_0x20);
|
||||
field_0x300c = 1;
|
||||
} else if (field_0x300c != 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
|
||||
+64
-91
@@ -360,7 +360,7 @@ void daAlink_c::cancelHookshotShot() {
|
||||
}
|
||||
|
||||
/* 80108F64-8010903C 1038A4 00D8+00 4/4 0/0 0/0 .text cancelHookshotMove__9daAlink_cFv */
|
||||
// checkAttentionLock has weird codegen
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::cancelHookshotMove() {
|
||||
if (mFastShotTime == 0 && mItemMode == HS_MODE_NONE_e) {
|
||||
@@ -441,8 +441,6 @@ void daAlink_c::initHookshotReady() {
|
||||
|
||||
/* 801091E4-80109284 103B24 00A0+00 1/1 0/0 0/0 .text setHookshotReadyAnime__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setHookshotReadyAnime() {
|
||||
f32 speed;
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
@@ -455,12 +453,9 @@ void daAlink_c::setHookshotReadyAnime() {
|
||||
field_0x3020 = 0;
|
||||
initHookshotReady();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80109284-801095C8 103BC4 0344+00 3/3 0/0 0/0 .text checkUpperItemActionHookshot__9daAlink_cFv
|
||||
*/
|
||||
// checkAttentionLock
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkUpperItemActionHookshot() {
|
||||
if (checkHookshotWait()) {
|
||||
mSearchBallScale = FLT_MAX;
|
||||
@@ -554,20 +549,8 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
|
||||
return cancelUpperItemReadyAnime(0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::checkUpperItemActionHookshot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkUpperItemActionHookshot__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801095C8-801097A0 103F08 01D8+00 7/7 0/0 0/0 .text checkNextActionHookshot__9daAlink_cFv */
|
||||
// matches with a i_checkAttentionLock fix
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkNextActionHookshot() {
|
||||
if (mProcID == PROC_HOOKSHOT_ROOF_SHOOT || mProcID == PROC_HOOKSHOT_WALL_SHOOT) {
|
||||
return 0;
|
||||
@@ -610,16 +593,6 @@ int daAlink_c::checkNextActionHookshot() {
|
||||
return procHookshotMoveInit();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::checkNextActionHookshot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkNextActionHookshot__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801097A0-80109890 1040E0 00F0+00 2/2 0/0 0/0 .text setHookshotReturnEnd__9daAlink_cFv
|
||||
*/
|
||||
@@ -830,13 +803,13 @@ void daAlink_c::setHookshotPos() {
|
||||
if (checkHookshotWait() || mItemMode == 2) {
|
||||
csXyz* var_r28;
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) {
|
||||
var_r28 = &field_0x300e;
|
||||
var_r28 = &mProcVar3.field_0x300e;
|
||||
} else {
|
||||
var_r28 = &mBodyAngle;
|
||||
}
|
||||
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT) {
|
||||
field_0x301e = field_0x300e.y;
|
||||
field_0x301e = mProcVar3.field_0x300e.y;
|
||||
} else {
|
||||
field_0x301e = (s16)(shape_angle.y + mBodyAngle.y);
|
||||
}
|
||||
@@ -1223,13 +1196,13 @@ void daAlink_c::initHookshotRoofWaitActor(fopAc_ac_c* i_actor) {
|
||||
mDoMtx_stack_c::XrotS(-i_actor->shape_angle.x);
|
||||
mDoMtx_stack_c::YrotM(-i_actor->shape_angle.y);
|
||||
mDoMtx_stack_c::multVecSR(&field_0x37c8, &field_0x37c8);
|
||||
field_0x3008 = i_actor->shape_angle.y;
|
||||
mProcVar0.field_0x3008 = i_actor->shape_angle.y;
|
||||
|
||||
fopAcM_setHookCarryNow(i_actor);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
} else {
|
||||
mCargoCarryAcKeep.clearData();
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1286,7 +1259,7 @@ int daAlink_c::checkLandHookshotHang() {
|
||||
/* 8010B96C-8010BA6C 1062AC 0100+00 3/3 0/0 0/0 .text commonHookshotRoofWait__9daAlink_cFv */
|
||||
int daAlink_c::commonHookshotRoofWait() {
|
||||
setJumpMode();
|
||||
if (field_0x300e.y != 0) {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
mCargoCarryAcKeep.setActor();
|
||||
fopAc_ac_c* carryAc_p = mCargoCarryAcKeep.getActor();
|
||||
|
||||
@@ -1460,11 +1433,11 @@ int daAlink_c::procHookshotFlyInit() {
|
||||
shape_angle.y = field_0x301e;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
field_0x3008 = 1;
|
||||
field_0x300a = 4;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
mProcVar1.field_0x300a = 4;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x300c = mItemMode;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar2.field_0x300c = mItemMode;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
procHookshotFly();
|
||||
return 1;
|
||||
@@ -1506,29 +1479,29 @@ int daAlink_c::procHookshotFly() {
|
||||
setHookshotTopPosFly();
|
||||
|
||||
field_0x37d4 = mHookshotTopPos - mHeldItemRootPos;
|
||||
if (field_0x3008 != 0 && cLib_distanceAngleS(field_0x37d4.atan2sX_Z(), temp_r24) > 0x4000) {
|
||||
if (mProcVar0.field_0x3008 != 0 && cLib_distanceAngleS(field_0x37d4.atan2sX_Z(), temp_r24) > 0x4000) {
|
||||
setHookshotReturnEnd();
|
||||
} else {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
f32 temp_f31 = field_0x37d4.abs();
|
||||
f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
|
||||
if (temp_f31 < temp_f30 || field_0x300a == 0) {
|
||||
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
|
||||
setHookshotReturnEnd();
|
||||
} else {
|
||||
field_0x37d4 *= temp_f30 / temp_f31;
|
||||
seStartOnlyReverbLevel(Z2SE_LK_HS_WIND_UP);
|
||||
if (temp_f31 < temp_f30 * 1.5f) {
|
||||
field_0x300a--;
|
||||
mProcVar1.field_0x300a--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
current.pos += field_0x37d4;
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) != 0) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
if (mItemMode != 5 && mItemMode != HS_MODE_FLY_e) {
|
||||
@@ -1543,7 +1516,7 @@ int daAlink_c::procHookshotFly() {
|
||||
BOOL var_r27 = 0;
|
||||
BOOL force_fall = checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 4;
|
||||
|
||||
if (field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) {
|
||||
if (mProcVar2.field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) {
|
||||
var_r28 = dComIfG_Bgsp().GetTriPla(mPolyInfo2, &poly);
|
||||
var_r27 = cBgW_CheckBRoof(poly.mNormal.y);
|
||||
if (!checkHookshotStickBG(mPolyInfo2)) {
|
||||
@@ -1589,7 +1562,7 @@ int daAlink_c::procHookshotFly() {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
} else if (targetAc_name == PROC_E_PH || targetAc_name == PROC_B_DR || var_r29) {
|
||||
procHookshotRoofWaitInit(1, targetAc_p, field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, targetAc_p, mProcVar3.field_0x300e.z);
|
||||
} else if (var_r28 && dComIfG_Bgsp().GetMonkeyBarsCode(mPolyInfo2)) {
|
||||
cXyz sp88;
|
||||
mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0);
|
||||
@@ -1598,9 +1571,9 @@ int daAlink_c::procHookshotFly() {
|
||||
|
||||
procRoofHangStartInit(mPolyInfo2, sp88, 0);
|
||||
} else if (var_r28 && var_r27) {
|
||||
procHookshotRoofWaitInit(1, NULL, field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, NULL, mProcVar3.field_0x300e.z);
|
||||
} else if (var_r28 && field_0x2f91 != 3 && fabsf(poly.mNormal.y) < 0.05f) {
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), field_0x300e.z);
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), mProcVar3.field_0x300e.z);
|
||||
} else {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
@@ -1659,11 +1632,11 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
anm = ANM_HOOKSHOT_HANG_END_RIGHT;
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm);
|
||||
} else {
|
||||
setHookshotRoofWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
|
||||
resetHookshotMode();
|
||||
@@ -1679,7 +1652,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
}
|
||||
|
||||
field_0x2b98 = 6.5f;
|
||||
field_0x300e.z = param_2;
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x10000);
|
||||
field_0x814.SetWeight(255);
|
||||
@@ -1735,23 +1708,23 @@ int daAlink_c::procHookshotRoofWait() {
|
||||
|
||||
setShapeAngleToAtnActor(0);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotRoofWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (!checkHookshotRoofLv7Boss()) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
return procHookshotRoofShootInit(mCargoCarryAcKeep.getActor());
|
||||
}
|
||||
hookshotRoofTurn();
|
||||
@@ -1798,8 +1771,8 @@ int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) {
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
|
||||
field_0x814.SetWeight(255);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
@@ -1815,7 +1788,7 @@ asm int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) {
|
||||
|
||||
/* 8010CD60-8010CF6C 1076A0 020C+00 1/0 0/0 0/0 .text procHookshotRoofShoot__9daAlink_cFv
|
||||
*/
|
||||
// matches with a i_checkAttentionLock fix
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procHookshotRoofShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1838,7 +1811,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
}
|
||||
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
mBodyAngle.x = field_0x300e.x;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1846,14 +1819,14 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
|
||||
if (field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
if (mProcVar2.field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
setHookshotSight();
|
||||
}
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) {
|
||||
return procHookshotRoofWaitInit(0, mCargoCarryAcKeep.getActor(), 0);
|
||||
@@ -1862,7 +1835,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
mUnderFrameCtrl[0].setRate(1.0f);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
hookshotRoofTurn();
|
||||
} else {
|
||||
@@ -1870,10 +1843,10 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
}
|
||||
|
||||
@@ -2001,11 +1974,11 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
anm = ANM_HOOKSHOT_WALL_END_RIGHT;
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm);
|
||||
} else {
|
||||
setHookshotWallWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000000);
|
||||
@@ -2020,7 +1993,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
setHookshotHangMoveBGCollect();
|
||||
}
|
||||
|
||||
field_0x300e.z = param_2;
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
@@ -2078,22 +2051,22 @@ int daAlink_c::procHookshotWallWait() {
|
||||
return procFallInit(1, 5.0f);
|
||||
}
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || field_0x300e.z != 0) &&
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotWallWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) {
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
return procHookshotWallShootInit();
|
||||
}
|
||||
|
||||
@@ -2133,10 +2106,10 @@ int daAlink_c::procHookshotWallShootInit() {
|
||||
initHookshotReady();
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
field_0x300e.y = shape_angle.y;
|
||||
field_0x310c = field_0x300e.y;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
field_0x310c = mProcVar3.field_0x300e.y;
|
||||
setHookshotReadyMaterial();
|
||||
return 1;
|
||||
}
|
||||
@@ -2153,7 +2126,7 @@ asm int daAlink_c::procHookshotWallShootInit() {
|
||||
|
||||
/* 8010D6CC-8010D93C 10800C 0270+00 1/0 0/0 0/0 .text procHookshotWallShoot__9daAlink_cFv
|
||||
*/
|
||||
// matches with a i_checkAttentionLock fix
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procHookshotWallShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -2174,8 +2147,8 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
BOOL var_r31 = false;
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
s16 old_angle = shape_angle.y;
|
||||
mBodyAngle.x = field_0x300e.x;
|
||||
shape_angle.y = field_0x300e.y;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e.y;
|
||||
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -2183,14 +2156,14 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
|
||||
if (field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
if (mProcVar2.field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
var_r31 = true;
|
||||
}
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) {
|
||||
shape_angle.y = old_angle;
|
||||
@@ -2200,7 +2173,7 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
setWaterInAnmRate(mUnderFrameCtrl, 1.0f);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
|
||||
if (!setShapeAngleToAtnActor(0)) {
|
||||
@@ -2209,7 +2182,7 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
if ((s16)(shape_angle.y - old_angle) > 0x4000) {
|
||||
@@ -2222,10 +2195,10 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
setHookshotSight();
|
||||
}
|
||||
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
field_0x310c = shape_angle.y;
|
||||
field_0x300e.y = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
shape_angle.y = old_angle;
|
||||
}
|
||||
|
||||
|
||||
+14
-14
@@ -473,7 +473,7 @@ int daAlink_c::setSyncBoarRunPos() {
|
||||
shape_angle.z = sp28.x;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (mProcID == PROC_BOAR_RUN && field_0x300e.x != 0) {
|
||||
if (mProcID == PROC_BOAR_RUN && mProcVar3.field_0x300e.x != 0) {
|
||||
mUnderFrameCtrl[0].setFrame(e_wb_p->nowAnimeFrame());
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(e_wb_p->nowAnimeFrame());
|
||||
}
|
||||
@@ -1378,7 +1378,7 @@ int daAlink_c::procHorseCutChargeReadyInit() {
|
||||
resetUnderAnime(UNDER_2, lit_6041);
|
||||
}
|
||||
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
field_0x3004 = 0;
|
||||
i_onNoResetFlg1(FLG1_UNK_10000000);
|
||||
return 1;
|
||||
@@ -1410,7 +1410,7 @@ int daAlink_c::procHorseCutTurnInit() {
|
||||
setSyncRide(1);
|
||||
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.field_0x50;
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
|
||||
field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
voiceStart(Z2SE_AL_V_KAITEN);
|
||||
setCutWaterDropEffect();
|
||||
setHorseZeldaDamage();
|
||||
@@ -1466,7 +1466,7 @@ int daAlink_c::procHorseBowSubjectInit() {
|
||||
|
||||
setSyncRidePos();
|
||||
setBaseRideAnime();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
}
|
||||
@@ -1826,12 +1826,12 @@ int daAlink_c::procHorseRunInit() {
|
||||
setSingleAnimeBaseMorf(ANM_HORSE_TAME_WAIT_B, -1.0f);
|
||||
setSyncHorsePos();
|
||||
field_0x2fab = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
field_0x3478 = 1000.0f - cM_rndF(500.0f);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 30;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 30;
|
||||
field_0x3004 = 0;
|
||||
field_0x3002 = 0;
|
||||
mDoAud_changeSubBgmStatus(2);
|
||||
@@ -1890,7 +1890,7 @@ int daAlink_c::procHorseGetKeyInit() {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
setSingleAnimeBase(ANM_KEY_CATCH);
|
||||
setSyncRidePos();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1904,7 +1904,7 @@ int daAlink_c::procHorseGetKey() {
|
||||
} else if (frameCtrl_p->getFrame() >= lit_16038) {
|
||||
field_0x2f92 = 254;
|
||||
field_0x2f93 = 254;
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (frameCtrl_p->getFrame() >= lit_7448) {
|
||||
field_0x2f92 = 2;
|
||||
} else if (frameCtrl_p->getFrame() >= lit_7808) {
|
||||
@@ -1949,14 +1949,14 @@ int daAlink_c::procBoarRunInit() {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
resetUnderAnime(UNDER_2, -1.0f);
|
||||
|
||||
field_0x300e.y = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3478 = 3000.0f - cM_rndF(1500.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_HORSE_TAME_WAIT_A_TO_B, 1.0f, 4.0f);
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
setSyncBoarPos();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ int daAlink_c::procMagneBootsFlyInit() {
|
||||
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x594 = daAlinkHIO_magneBoots_c0::m.mMaxMagneFlySpeed;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
voiceStart(Z2SE_AL_V_MAGNET_CAUGHT);
|
||||
return 1;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ int daAlink_c::procMagneBootsFly() {
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.x, sp24.atan2sY_XZ() + -0x4000, 5, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&shape_angle.y, sp24.atan2sX_Z(), 5, 0x1000, 0x100);
|
||||
field_0x300c += 0x1C00;
|
||||
mProcVar2.field_0x300c += 0x1C00;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -160,9 +160,9 @@ int daAlink_c::procBoardRowInit() {
|
||||
commonProcInit(PROC_BOARD_ROW);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
|
||||
i_onResetFlg1(0x40);
|
||||
field_0x3008 = 4;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar0.field_0x3008 = 4;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -182,9 +182,9 @@ int daAlink_c::procBoardTurnInit() {
|
||||
commonProcInit(PROC_BOARD_TURN);
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108), lit_6040, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, lit_6109);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x300e.y = shape_angle.y + 0x8000;
|
||||
field_0x300e.z = 0;
|
||||
field_0x300a = 0;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y + 0x8000;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -203,8 +203,8 @@ asm int daAlink_c::procBoardTurn() {
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
commonProcInit(PROC_BOARD_JUMP);
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.z = 1;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108),
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
@@ -215,7 +215,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
|
||||
return 1;
|
||||
}
|
||||
@@ -240,12 +240,12 @@ int daAlink_c::procBoardJump() {
|
||||
if (!i_checkModeFlg(2)) {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else if (field_0x300e.z != 0 && field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
lit_6041);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ int daAlink_c::procBoardCutInit() {
|
||||
|
||||
setCommonBoardAnime(0);
|
||||
setCutDash(1, var_r31);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -236,8 +236,6 @@ BOOL daAlink_c::checkUpperItemActionIronBall() {
|
||||
}
|
||||
|
||||
/* 801153F8-801154E4 10FD38 00EC+00 2/2 0/0 0/0 .text checkNextActionIronBall__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionIronBall() {
|
||||
if (mFastShotTime != 0) {
|
||||
mFastShotTime--;
|
||||
@@ -258,7 +256,6 @@ int daAlink_c::checkNextActionIronBall() {
|
||||
return procIronBallMoveInit();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801154E4-80115564 10FE24 0080+00 1/1 0/0 0/0 .text procIronBallSubjectInit__9daAlink_cFv */
|
||||
int daAlink_c::procIronBallSubjectInit() {
|
||||
@@ -359,7 +356,7 @@ int daAlink_c::procIronBallThrowInit() {
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3018 = 3;
|
||||
field_0x3024 = 0;
|
||||
field_0x3026 = 0;
|
||||
@@ -385,13 +382,13 @@ int daAlink_c::procIronBallReturnInit() {
|
||||
commonProcInit(PROC_IRON_BALL_RETURN);
|
||||
|
||||
if (field_0x3018 == 8) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, daAlinkHIO_ironBall_c0::m.mPullAnmSpeed, daAlinkHIO_ironBall_c0::m.mPullInterpolation);
|
||||
field_0x2f99 = 12;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
@@ -408,8 +405,8 @@ int daAlink_c::procIronBallReturn() {
|
||||
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x3018 == 8 && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
if (field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
|
||||
|
||||
@@ -30,14 +30,14 @@ static fopAc_ac_c* daAlink_searchTagKtOnFire(fopAc_ac_c* i_actor, void* param_1)
|
||||
/* 801106E8-8011078C 10B028 00A4+00 1/0 0/0 0/0 .text setKandelaarMtx__9daAlink_cFPA4_fii
|
||||
*/
|
||||
void daAlink_c::setKandelaarMtx(Mtx i_mtx, int param_1, int param_2) {
|
||||
if (field_0x06fc != NULL) {
|
||||
if (mpKanteraModel != NULL) {
|
||||
if (i_checkNoResetFlg2(FLG2_UNK_1)) {
|
||||
deleteEquipItem(0, 1);
|
||||
}
|
||||
|
||||
i_onEndResetFlg1(ERFLG1_UNK_4);
|
||||
|
||||
field_0x06fc->i_setBaseTRMtx(i_mtx);
|
||||
mpKanteraModel->i_setBaseTRMtx(i_mtx);
|
||||
if (param_1 == 0) {
|
||||
i_onEndResetFlg1(ERFLG1_UNK_8);
|
||||
}
|
||||
@@ -163,7 +163,7 @@ asm void daAlink_c::setKandelaarModel() {
|
||||
void daAlink_c::resetOilBottleModel() {
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
setKandelaarModel();
|
||||
mEquipItem = KANTERA;
|
||||
}
|
||||
|
||||
+167
-176
File diff suppressed because it is too large
Load Diff
@@ -153,7 +153,7 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x33b0 = field_0x3588.y;
|
||||
field_0x34d4 = l_waitBaseAnime;
|
||||
field_0x300c = 8;
|
||||
mProcVar2.field_0x300c = 8;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -169,11 +169,11 @@ int daAlink_c::procSpinnerReady() {
|
||||
current.pos.x = spinner->current.pos.x;
|
||||
current.pos.z = spinner->current.pos.z;
|
||||
|
||||
field_0x300c--;
|
||||
mProcVar2.field_0x300c--;
|
||||
field_0x2f99 = 15;
|
||||
|
||||
if ((field_0x300c < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
field_0x300c < -30) {
|
||||
if ((mProcVar2.field_0x300c < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
mProcVar2.field_0x300c < -30) {
|
||||
current.pos.y = spinner->getModelMtx()[1][3];
|
||||
procSpinnerWaitInit();
|
||||
}
|
||||
@@ -202,13 +202,13 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
speed.y = 0.0f;
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
field_0x300e.x = shape_angle.y;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3198 = ANM_RIDE_CROUCH;
|
||||
field_0x33b0 = 70.0f;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x37a4 = mRideAcKeep.getActor()->current.pos;
|
||||
|
||||
return 1;
|
||||
@@ -242,9 +242,9 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
int itemSetBtn = checkItemSetButton(SPINNER);
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (!itemButton()) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mNormalSpeed = getSpinnerRideSpeedF();
|
||||
spinner->setMove(mNormalSpeed, getSpinnerRideMoveTime());
|
||||
} else if (checkInputOnR()) {
|
||||
@@ -258,7 +258,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
}
|
||||
} else {
|
||||
if (checkSetItemTrigger(SPINNER) || swordSwingTrigger() || itemSetBtn == 2) {
|
||||
@@ -285,7 +285,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
current.angle.y = spinner->current.angle.y;
|
||||
|
||||
if (spinner->checkSpinnerTagIntoIncRot()) {
|
||||
field_0x300e.z = 1;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
|
||||
if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
@@ -295,7 +295,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0);
|
||||
}
|
||||
} else if (spinner->checkSpinnerTagInto()) {
|
||||
if (field_0x300e.z != 0) {
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
} else {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT);
|
||||
@@ -312,18 +312,18 @@ int daAlink_c::procSpinnerWait() {
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (field_0x3198 == ANM_RIDE_JUMP) {
|
||||
if (!spinner->getJumpFlg()) {
|
||||
setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = ANM_RIDE_JUMP_LAND;
|
||||
} else if (field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
} else if (mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
} else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) ||
|
||||
(field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) {
|
||||
@@ -334,7 +334,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
setSpinnerSyncPos();
|
||||
shape_angle.y = field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e.x;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ int daAlink_c::procSumouReadyInit() {
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 4;
|
||||
mSpecialMode = 1;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
if (mThrowBoomerangAcKeep.getActor() != NULL) {
|
||||
@@ -109,7 +109,7 @@ int daAlink_c::procSumouSideMoveInit() {
|
||||
|
||||
field_0x2f99 = 12;
|
||||
setFootEffectProcType(5);
|
||||
field_0x3008 = 15;
|
||||
mProcVar0.field_0x3008 = 15;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -159,7 +159,7 @@ int daAlink_c::procSumouStaggerInit() {
|
||||
setSingleAnimeBase(ANM_SUMOU_STAGGER);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x2f99 = 12;
|
||||
field_0x3008 = 30;
|
||||
mProcVar0.field_0x3008 = 30;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -171,10 +171,10 @@ int daAlink_c::procSumouStagger() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
if (mSpecialMode == 0x1C || mSpecialMode == 0x21 || mSpecialMode == 0x1B) {
|
||||
procSumouActionInit(0, 0, 0);
|
||||
} else if (field_0x3008 == 0) {
|
||||
} else if (mProcVar0.field_0x3008 == 0) {
|
||||
procSumouSideMoveInit();
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ int daAlink_c::procSumouShikoInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 12;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mSpecialMode = 0;
|
||||
|
||||
setFootEffectProcType(5);
|
||||
|
||||
+32
-32
@@ -142,7 +142,7 @@ void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
if (getZoraSwim()) {
|
||||
uvar1 = field_0x3080;
|
||||
} else {
|
||||
uvar1 = field_0x300c;
|
||||
uvar1 = mProcVar2.field_0x300c;
|
||||
start_pos.y += daAlinkHIO_wlWallHang_c0::m.field_0x78;
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ BOOL daAlink_c::checkSwimNeckUpDown() const {
|
||||
/* 80104034-801040F8 0FE974 00C4+00 3/3 0/0 0/0 .text setSwimUpDownOffset__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwimUpDownOffset() {
|
||||
field_0x300c += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
mProcVar2.field_0x300c += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
|
||||
f32 var_f1;
|
||||
if (i_checkWolf()) {
|
||||
@@ -376,7 +376,7 @@ void daAlink_c::setSwimUpDownOffset() {
|
||||
var_f1 = daAlinkHIO_swim_c0::m.mWaitVibrationIntensity;
|
||||
}
|
||||
|
||||
field_0x2b98 = var_f1 * cM_ssin(field_0x300c);
|
||||
field_0x2b98 = var_f1 * cM_ssin(mProcVar2.field_0x300c);
|
||||
}
|
||||
|
||||
/* 801040F8-801041E8 0FEA38 00F0+00 2/2 0/0 0/0 .text procSwimUpInit__9daAlink_cFv */
|
||||
@@ -394,8 +394,8 @@ int daAlink_c::procSwimUpInit() {
|
||||
mZ2Link.setInWater(false);
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3000 = 0;
|
||||
|
||||
@@ -448,10 +448,10 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
|
||||
if (param_0) {
|
||||
seStartMapInfo(Z2SE_AL_INTO_WATER);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
} else if (!mode_40000) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
}
|
||||
|
||||
@@ -480,8 +480,8 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
return 1;
|
||||
}
|
||||
@@ -552,7 +552,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (!mode_40000) {
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
if (proc_swim_dive || proc_dive_jump) {
|
||||
@@ -560,8 +560,8 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (proc_dive_jump) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e.x = field_0x3080;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
}
|
||||
} else {
|
||||
@@ -578,7 +578,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
swimDeleteItem();
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -630,18 +630,18 @@ int daAlink_c::procSwimDiveInit() {
|
||||
speed.y = 0.0f;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mDiveAnm);
|
||||
voiceStart(Z2SE_AL_V_DIVING);
|
||||
} else {
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm);
|
||||
}
|
||||
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3000 = 30;
|
||||
@@ -666,7 +666,7 @@ asm int daAlink_c::procSwimDiveInit() {
|
||||
int daAlink_c::procSwimDive() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setDoStatus(0x4C);
|
||||
} else if (i_checkNoResetFlg0(FLG0_UNK_100) && frame_ctrl->getFrame() > 20.0f) {
|
||||
i_offNoResetFlg0(FLG0_UNK_100);
|
||||
@@ -682,7 +682,7 @@ int daAlink_c::procSwimDive() {
|
||||
field_0x3478 = 1.0f;
|
||||
}
|
||||
|
||||
if (frame_ctrl->checkPass(15.0f) && field_0x300c != 0) {
|
||||
if (frame_ctrl->checkPass(15.0f) && mProcVar2.field_0x300c != 0) {
|
||||
cXyz pos(current.pos.x, mWaterY, current.pos.z);
|
||||
fopKyM_createWpillar(&pos, 0.7f, 0);
|
||||
}
|
||||
@@ -694,10 +694,10 @@ int daAlink_c::procSwimDive() {
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
speed.y = daAlinkHIO_swim_c0::m.mMaxSinkSpeed;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e.x = field_0x3080;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
@@ -743,12 +743,12 @@ int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
setHookshotReadyMaterial();
|
||||
@@ -818,7 +818,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
if (field_0x3080 != 0) {
|
||||
setOldRootQuaternion(field_0x3080, 0, 0);
|
||||
@@ -826,7 +826,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
}
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x104000);
|
||||
@@ -934,11 +934,11 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
temp_r30->y,
|
||||
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
|
||||
|
||||
field_0x3008 =
|
||||
mProcVar0.field_0x3008 =
|
||||
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.field_0x78,
|
||||
(s16)daAlinkHIO_damSwim_c0::m.field_0x78);
|
||||
|
||||
field_0x300a = cLib_minMaxLimit(
|
||||
mProcVar1.field_0x300a = cLib_minMaxLimit(
|
||||
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
|
||||
(s16)-daAlinkHIO_damSwim_c0::m.field_0x7A, (s16)daAlinkHIO_damSwim_c0::m.field_0x7A);
|
||||
|
||||
@@ -946,8 +946,8 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
if (bvar4) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.field_0x64);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x64.mCheckFrame;
|
||||
field_0x3008 = 0;
|
||||
field_0x300a = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
} else if (dir == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.field_0x0);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x0.mCheckFrame;
|
||||
@@ -987,8 +987,8 @@ int daAlink_c::procSwimDamage() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
f32 fvar8 = cM_fsin(field_0x347c * (frame_ctrl->getFrame() - frame_ctrl->getStart()));
|
||||
mBodyAngle.x = field_0x3008 * fvar8;
|
||||
mBodyAngle.z = -field_0x300a * fvar8;
|
||||
mBodyAngle.x = mProcVar0.field_0x3008 * fvar8;
|
||||
mBodyAngle.z = -mProcVar1.field_0x300a * fvar8;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
|
||||
@@ -87,9 +87,9 @@ int daAlink_c::loadModelDVD() {
|
||||
if (mClothesChangeWaitTimer == 2) {
|
||||
mEyeHL1.remove();
|
||||
mEyeHL2.remove();
|
||||
field_0x79c = NULL;
|
||||
mpWlMidnaHatModel = NULL;
|
||||
field_0x7a4 = NULL;
|
||||
mpWlMidnaModel = NULL;
|
||||
mpWlMidnaMaskModel = NULL;
|
||||
mpWlMidnaHandModel = NULL;
|
||||
mpWlMidnaHairModel = NULL;
|
||||
|
||||
if (!i_checkNoResetFlg2(FLG2_UNK_280000)) {
|
||||
@@ -291,13 +291,13 @@ void daAlink_c::statusWindowDraw() {
|
||||
basicModelDraw(mpLinkModel);
|
||||
|
||||
if (!i_checkWolf()) {
|
||||
basicModelDraw(field_0x065c);
|
||||
basicModelDraw(mpLinkHandModel);
|
||||
basicModelDraw(mpLinkHatModel);
|
||||
basicModelDraw(mpLinkFaceModel);
|
||||
|
||||
if (i_checkEquipHeavyBoots()) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
basicModelDraw(field_0x784[i]);
|
||||
basicModelDraw(mpLinkBootModels[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,10 +72,10 @@ int daAlink_c::procGrassWhistleGetInit() {
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
|
||||
daObjYobikusa_c* yobikusa = (daObjYobikusa_c*)field_0x27f4;
|
||||
field_0x300c = yobikusa->getType();
|
||||
field_0x300e.x = yobikusa->getPathID();
|
||||
field_0x300e.y = yobikusa->isPlayerCorrect();
|
||||
field_0x300e.z = yobikusa->shape_angle.y + 0x8000;
|
||||
mProcVar2.field_0x300c = yobikusa->getType();
|
||||
mProcVar3.field_0x300e.x = yobikusa->getPathID();
|
||||
mProcVar3.field_0x300e.y = yobikusa->isPlayerCorrect();
|
||||
mProcVar3.field_0x300e.z = yobikusa->shape_angle.y + 0x8000;
|
||||
field_0x37c8.set(yobikusa->current.pos.x + cM_ssin(yobikusa->shape_angle.y) * 50.0f,
|
||||
yobikusa->current.pos.y + 50.0f,
|
||||
yobikusa->current.pos.z + cM_scos(yobikusa->shape_angle.y) * 50.0f);
|
||||
@@ -99,9 +99,9 @@ int daAlink_c::procGrassWhistleGet() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procGrassWhistleWaitInit(field_0x300c, field_0x300e.x, field_0x300e.y, field_0x300e.z, &field_0x37c8);
|
||||
procGrassWhistleWaitInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e.x, mProcVar3.field_0x300e.y, mProcVar3.field_0x300e.z, &field_0x37c8);
|
||||
} else if (mEquipItem == NO_ITEM && frameCtrl->getFrame() >= lit_7710) {
|
||||
setGrassWhistleModel(field_0x300c);
|
||||
setGrassWhistleModel(mProcVar2.field_0x300c);
|
||||
|
||||
if (field_0x280c.getActor() != NULL) {
|
||||
fopAcM_setCarryNow(field_0x280c.getActor(), 0);
|
||||
@@ -140,11 +140,11 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
|
||||
commonProcInit(PROC_HORSE_CALL_WAIT);
|
||||
|
||||
if (param_0 == 4) {
|
||||
field_0x300e.y = 2;
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
} else if (param_0 == 1) {
|
||||
field_0x300e.y = 0x3D;
|
||||
mProcVar3.field_0x300e.y = 0x3D;
|
||||
} else {
|
||||
field_0x300e.y = 0x10;
|
||||
mProcVar3.field_0x300e.y = 0x10;
|
||||
}
|
||||
|
||||
if (i_checkWolf()) {
|
||||
@@ -204,7 +204,7 @@ int daAlink_c::procHawkSubjectInit() {
|
||||
field_0x280c.setData(actor);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mBodyAngle.y = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
return 1;
|
||||
|
||||
+4978
-340
File diff suppressed because it is too large
Load Diff
+42
-17
@@ -984,6 +984,30 @@ SECTION_DATA static void* lit_4497[3] = {
|
||||
#pragma pop
|
||||
|
||||
/* 803BA25C-803BA34C 01737C 00F0+00 2/3 3/3 0/0 .data engine_tbl__9dCamera_c */
|
||||
#ifdef NONMATCHING
|
||||
engine_fn dCamera_c::engine_tbl[] = {
|
||||
&dCamera_c::letCamera,
|
||||
&dCamera_c::chaseCamera,
|
||||
&dCamera_c::lockonCamera,
|
||||
&dCamera_c::talktoCamera,
|
||||
&dCamera_c::subjectCamera,
|
||||
&dCamera_c::fixedPositionCamera,
|
||||
&dCamera_c::fixedFrameCamera,
|
||||
&dCamera_c::towerCamera,
|
||||
&dCamera_c::rideCamera,
|
||||
&dCamera_c::manualCamera,
|
||||
&dCamera_c::eventCamera,
|
||||
&dCamera_c::hookshotCamera,
|
||||
&dCamera_c::colosseumCamera,
|
||||
&dCamera_c::observeCamera,
|
||||
&dCamera_c::magneCamera,
|
||||
&dCamera_c::railCamera,
|
||||
&dCamera_c::paraRailCamera,
|
||||
&dCamera_c::oneSideCamera,
|
||||
&dCamera_c::test1Camera,
|
||||
&dCamera_c::test2Camera,
|
||||
};
|
||||
#else
|
||||
SECTION_DATA u8 dCamera_c::engine_tbl[240] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -1001,6 +1025,7 @@ SECTION_DATA u8 dCamera_c::engine_tbl[240] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#endif
|
||||
|
||||
/* 803BA34C-803BA378 -00001 002C+00 1/1 0/0 0/0 .data @7128 */
|
||||
SECTION_DATA static void* lit_7128[11] = {
|
||||
@@ -2012,7 +2037,7 @@ asm void dCamera_c::getParamTargetActor(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) {
|
||||
asm int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s"
|
||||
}
|
||||
@@ -2577,7 +2602,7 @@ SECTION_SDATA2 static f32 lit_10582 = -50.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::chaseCamera(s32 param_0) {
|
||||
asm bool dCamera_c::chaseCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/chaseCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2691,7 +2716,7 @@ SECTION_SDATA2 static f32 lit_11175 = 1.0f / 50.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::lockonCamera(s32 param_0) {
|
||||
asm bool dCamera_c::lockonCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/lockonCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2838,7 +2863,7 @@ SECTION_SDATA2 static f32 lit_12297 = 7.0f / 25.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::talktoCamera(s32 param_0) {
|
||||
asm bool dCamera_c::talktoCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/talktoCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2914,7 +2939,7 @@ SECTION_SDATA2 static f32 lit_12869 = -511.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::subjectCamera(s32 param_0) {
|
||||
asm bool dCamera_c::subjectCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/subjectCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2928,7 +2953,7 @@ SECTION_SDATA2 static f32 lit_13132 = 4.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::magneCamera(s32 param_0) {
|
||||
asm bool dCamera_c::magneCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/magneCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2942,7 +2967,7 @@ SECTION_SDATA2 static f32 lit_13314 = 0.9990000128746033f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::colosseumCamera(s32 param_0) {
|
||||
asm bool dCamera_c::colosseumCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/colosseumCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2966,7 +2991,7 @@ SECTION_SDATA2 static f32 lit_13673 = 1.0f / 40.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::towerCamera(s32 param_0) {
|
||||
asm bool dCamera_c::towerCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/towerCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2995,7 +3020,7 @@ SECTION_SDATA2 static f32 lit_14064 = -100.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::hookshotCamera(s32 param_0) {
|
||||
asm bool dCamera_c::hookshotCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/hookshotCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3014,7 +3039,7 @@ static u8 struct_80451040[4];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::railCamera(s32 param_0) {
|
||||
asm bool dCamera_c::railCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/railCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3033,7 +3058,7 @@ static u8 struct_80451044[4];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::paraRailCamera(s32 param_0) {
|
||||
asm bool dCamera_c::paraRailCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/paraRailCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3106,7 +3131,7 @@ SECTION_SDATA2 static f32 lit_15487 = 1.1500000953674316f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::rideCamera(s32 param_0) {
|
||||
asm bool dCamera_c::rideCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/rideCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3138,7 +3163,7 @@ SECTION_SDATA2 static f32 lit_15773 = 4.0f / 3.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::observeCamera(s32 param_0) {
|
||||
asm bool dCamera_c::observeCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/observeCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3148,7 +3173,7 @@ asm void dCamera_c::observeCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
asm bool dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/fixedFrameCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3159,7 +3184,7 @@ asm void dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
asm bool dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/fixedPositionCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3169,7 +3194,7 @@ asm void dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::oneSideCamera(s32 param_0) {
|
||||
asm bool dCamera_c::oneSideCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/oneSideCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3227,7 +3252,7 @@ SECTION_DEAD static char const* const stringBase_803942F2 = "WideMode";
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::eventCamera(s32 param_0) {
|
||||
asm bool dCamera_c::eventCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/eventCamera__9dCamera_cFl.s"
|
||||
}
|
||||
|
||||
+183
-253
@@ -4,224 +4,26 @@
|
||||
//
|
||||
|
||||
#include "d/d_ev_camera.h"
|
||||
#include "d/a/d_a_alink.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "dol2asm.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {};
|
||||
|
||||
struct daPy_py_c {
|
||||
/* 800977B4 */ void checkMidnaRide() const;
|
||||
/* 80097850 */ bool checkCanoeRide() const;
|
||||
/* 80097858 */ bool checkBoardRide() const;
|
||||
/* 80097860 */ bool checkSpinnerRide() const;
|
||||
/* 80097868 */ bool checkBoarRide() const;
|
||||
|
||||
static u8 m_midnaActor[4];
|
||||
};
|
||||
|
||||
struct daMidna_c {
|
||||
/* 800977A8 */ void checkNoDraw() const;
|
||||
};
|
||||
|
||||
struct daAlink_c {
|
||||
/* 80097870 */ void getShadowTalkAtnPos();
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 800432EC */ void convPId(unsigned int);
|
||||
/* 800434D8 */ void searchMapEventData(u8);
|
||||
};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80009184 */ ~cXyz();
|
||||
/* 8008E790 */ void abs() const;
|
||||
/* 8008E8D0 */ void operator-=(Vec const&);
|
||||
/* 8008E904 */ void operator+=(Vec const&);
|
||||
/* 800977D8 */ void operator=(cXyz const&);
|
||||
/* 800977F4 */ cXyz(cXyz const&);
|
||||
/* 80266AE4 */ void operator+(Vec const&) const;
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
/* 80266B84 */ void operator*(f32) const;
|
||||
/* 80266CE4 */ void norm() const;
|
||||
/* 80266EF4 */ void normalize();
|
||||
|
||||
static f32 Zero[3];
|
||||
};
|
||||
|
||||
struct dEvent_manager_c {
|
||||
/* 800480EC */ void getMySubstanceP(int, char const*, int);
|
||||
/* 80048144 */ void getMySubstanceNum(int, char const*);
|
||||
/* 800483C4 */ void setGoal(cXyz*);
|
||||
};
|
||||
|
||||
struct dDemo_object_c {
|
||||
/* 80039128 */ void getActiveCamera();
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
static u8 m_object[4];
|
||||
};
|
||||
|
||||
struct dCcS {
|
||||
/* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
struct dCamInfo_c {};
|
||||
|
||||
/* 80088A7C */ void StartEventCamera(int, int, ...);
|
||||
/* 80088BBC */ void EndEventCamera(int);
|
||||
/* 80088C24 */ void searchEventArgData(char*);
|
||||
/* 8008908C */ void getEvIntData(int*, char*, int);
|
||||
/* 80088CB0 */ void getEvIntData(int*, char*);
|
||||
/* 80088D90 */ void getEvFloatData(f32*, char*);
|
||||
/* 80089154 */ void getEvFloatData(f32*, char*, f32);
|
||||
/* 80088E58 */ void getEvFloatListData(f32**, char*);
|
||||
/* 80088F1C */ void getEvXyzListData(cXyz**, char*);
|
||||
/* 8008941C */ void getEvStringPntData(char*, char*);
|
||||
/* 80088FE0 */ void getEvStringPntData(char*);
|
||||
/* 8008922C */ void getEvXyzData(cXyz*, char*, cXyz);
|
||||
/* 8008933C */ void getEvStringData(char*, char*, char*);
|
||||
/* 800894C4 */ void getEvActor(char*);
|
||||
/* 800895F4 */ void getEvActor(char*, char*);
|
||||
/* 80089730 */ void pauseEvCamera();
|
||||
/* 800897E8 */ void fixedFrameEvCamera();
|
||||
/* 8008A510 */ void stokerEvCamera();
|
||||
/* 8008A974 */ void rollingEvCamera();
|
||||
/* 8008B9B0 */ void fixedPositionEvCamera();
|
||||
/* 8008BE2C */ void uniformTransEvCamera();
|
||||
/* 8008BE50 */ void uniformBrakeEvCamera();
|
||||
/* 8008BE74 */ void uniformAcceleEvCamera();
|
||||
/* 8008BE98 */ void transEvCamera(int);
|
||||
/* 8008E938 */ void watchActorEvCamera();
|
||||
/* 8008FAE8 */ void restorePosEvCamera();
|
||||
/* 80090174 */ void talktoEvCamera();
|
||||
/* 80090230 */ void maptoolIdEvCamera();
|
||||
/* 80090478 */ void styleEvCamera();
|
||||
/* 80090514 */ void gameOverEvCamera();
|
||||
/* 80091468 */ void tactEvCamera();
|
||||
/* 800923B8 */ bool turnToActorEvCamera();
|
||||
/* 800923C0 */ void stbWaitEvCamera();
|
||||
/* 800924D0 */ void saveEvCamera();
|
||||
/* 8009258C */ void loadEvCamera();
|
||||
/* 800929AC */ void useItem0EvCamera();
|
||||
/* 800937AC */ void useItem1EvCamera();
|
||||
/* 80094240 */ void getItemEvCamera();
|
||||
/* 80094A70 */ void possessedEvCamera();
|
||||
/* 80095010 */ void fixedFramesEvCamera();
|
||||
/* 8009544C */ void bSplineEvCamera();
|
||||
/* 800956E4 */ void twoActor0EvCamera();
|
||||
/* 80095E7C */ void peepHoleEvCamera();
|
||||
/* 80095FD0 */ void digHoleEvCamera();
|
||||
/* 800965AC */ void hintTalkEvCamera();
|
||||
/* 80096EDC */ void bspTransEvCamera();
|
||||
/* 80097694 */ bool portalWarpEvCamera();
|
||||
/* 8009771C */ void attentionPos(fopAc_ac_c*);
|
||||
/* 80097738 */ void directionOf(fopAc_ac_c*);
|
||||
/* 8009775C */ void positionOf(fopAc_ac_c*);
|
||||
/* 80097778 */ void setFlag(u32);
|
||||
/* 8009778C */ void eyePos(fopAc_ac_c*);
|
||||
/* 80164944 */ void GetCameraTypeFromMapToolID(s32, s32);
|
||||
/* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
|
||||
/* 80164E20 */ void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
|
||||
/* 80164D6C */ void relationalPos(fopAc_ac_c*, cXyz*);
|
||||
/* 8016517C */ void pointInSight(cXyz*);
|
||||
/* 80165AF0 */ void lineBGCheck(cXyz*, cXyz*, u32);
|
||||
/* 801659F4 */ void lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
|
||||
/* 80180C68 */ void Reset();
|
||||
/* 80181170 */ void StartBlure(int, fopAc_ac_c*, f32, f32);
|
||||
/* 80181208 */ void SetBlureAlpha(f32);
|
||||
/* 80181210 */ void SetBlureScale(f32, f32, f32);
|
||||
/* 80181220 */ void SetBlurePosition(f32, f32, f32);
|
||||
|
||||
static u8 engine_tbl[240];
|
||||
};
|
||||
|
||||
struct dCamParam_c {
|
||||
/* 80088620 */ void SearchStyle(u32);
|
||||
};
|
||||
|
||||
struct cSAngle {
|
||||
/* 80030510 */ ~cSAngle();
|
||||
/* 80270F68 */ cSAngle(cSAngle const&);
|
||||
/* 80270FC8 */ cSAngle(f32);
|
||||
/* 80270F98 */ cSAngle(s16);
|
||||
/* 8027100C */ void Val(f32);
|
||||
/* 80271030 */ void Degree() const;
|
||||
/* 802710CC */ void Abs() const;
|
||||
/* 802710E8 */ void Inv() const;
|
||||
/* 80271120 */ void Cos() const;
|
||||
/* 802711A4 */ void operator-(cSAngle const&) const;
|
||||
/* 80271148 */ void operator-() const;
|
||||
/* 80271174 */ void operator+(cSAngle const&) const;
|
||||
/* 802711FC */ void operator+(s16) const;
|
||||
/* 802711D4 */ void operator+=(cSAngle const&);
|
||||
/* 80271264 */ void operator*(f32) const;
|
||||
/* 802712B4 */ void operator*=(f32);
|
||||
|
||||
static u8 _0[2 + 2 /* padding */];
|
||||
static u8 _90[2 + 2 /* padding */];
|
||||
};
|
||||
|
||||
struct dCamMath {
|
||||
/* 8008813C */ void rationalBezierRatio(f32, f32);
|
||||
/* 80088384 */ void xyzRotateY(cXyz&, cSAngle);
|
||||
/* 800883EC */ void xyzHorizontalDistance(cXyz&, cXyz&);
|
||||
};
|
||||
|
||||
struct d2DBSplinePath {
|
||||
/* 80097878 */ void Init(s32, s32);
|
||||
/* 80097904 */ void Step();
|
||||
/* 80097B20 */ void Calc(f32*);
|
||||
/* 80097A6C */ void Calc(cXyz*);
|
||||
};
|
||||
|
||||
struct camera_class {};
|
||||
|
||||
struct cSGlobe {
|
||||
/* 8007167C */ ~cSGlobe();
|
||||
/* 8008E774 */ void operator=(cSGlobe const&);
|
||||
/* 8008E894 */ void U(cSAngle const&);
|
||||
/* 8008FA58 */ void V(cSAngle const&);
|
||||
/* 80271880 */ cSGlobe(cXyz const&);
|
||||
/* 802717F0 */ cSGlobe(cSGlobe const&);
|
||||
/* 80271850 */ cSGlobe(f32, cSAngle const&, cSAngle const&);
|
||||
/* 80271A08 */ void Val(f32, cSAngle const&, cSAngle const&);
|
||||
/* 80271A70 */ void Val(cXyz const&);
|
||||
/* 80271AB4 */ void Xyz() const;
|
||||
/* 80271B30 */ void Norm() const;
|
||||
/* 80271B7C */ void Invert();
|
||||
};
|
||||
|
||||
struct cM3dGPla {
|
||||
/* 8001DB90 */ ~cM3dGPla();
|
||||
};
|
||||
|
||||
struct cM3dGLin {
|
||||
/* 80036A5C */ ~cM3dGLin();
|
||||
/* 8026F2A8 */ cM3dGLin(cXyz const&, cXyz const&);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void func_800889F8();
|
||||
extern "C" static bool func_800889F8(int);
|
||||
extern "C" void StartEventCamera__9dCamera_cFiie();
|
||||
extern "C" void EndEventCamera__9dCamera_cFi();
|
||||
extern "C" void searchEventArgData__9dCamera_cFPc();
|
||||
@@ -375,10 +177,6 @@ extern "C" void Xyz__7cSGlobeCFv();
|
||||
extern "C" void Norm__7cSGlobeCFv();
|
||||
extern "C" void Invert__7cSGlobeFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSVECAdd();
|
||||
extern "C" void PSVECSubtract();
|
||||
extern "C" void PSVECSquareMag();
|
||||
extern "C" void __va_arg();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_24();
|
||||
@@ -393,15 +191,10 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" u8 engine_tbl__9dCamera_c[240];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
extern "C" extern u8 struct_80450F88[8];
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
@@ -417,7 +210,7 @@ extern "C" u8 _90__7cSAngle[2 + 2 /* padding */];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_800889F8() {
|
||||
static asm bool func_800889F8(int) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/func_800889F8.s"
|
||||
}
|
||||
@@ -425,35 +218,74 @@ static asm void func_800889F8() {
|
||||
|
||||
/* 80088A7C-80088BBC 0833BC 0140+00 0/0 15/15 2/2 .text StartEventCamera__9dCamera_cFiie
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/StartEventCamera__9dCamera_cFiie.s"
|
||||
int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
|
||||
if (i_chkFlag(0x20000000)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mEventData.field_0x14 = param_1;
|
||||
mEventData.field_0x18 = param_0;
|
||||
|
||||
va_list args;
|
||||
va_start(args, param_1);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
char* param_name = va_arg(args, char*);
|
||||
if (param_name != NULL) {
|
||||
strcpy(mEventData.mEventParams[i].name, param_name);
|
||||
mEventData.mEventParams[i].field_0x10 = va_arg(args, int);
|
||||
mEventData.mEventParams[i].value = va_arg(args, int);
|
||||
} else {
|
||||
mEventData.mEventParams[i].name[0] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
va_end(args);
|
||||
|
||||
i_setFlag(0x20000000);
|
||||
mCurCamTypeTimer = 0;
|
||||
mEventData.field_0x0 = 0;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088BBC-80088C24 0834FC 0068+00 0/0 3/3 4/4 .text EndEventCamera__9dCamera_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::EndEventCamera(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/EndEventCamera__9dCamera_cFi.s"
|
||||
int dCamera_c::EndEventCamera(int param_0) {
|
||||
if (!i_chkFlag(0x20000000)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mEventData.field_0x14 == -1 || mEventData.field_0x14 == param_0) {
|
||||
i_clrFlag(0x20000000);
|
||||
mEventData.field_0x0 = 1;
|
||||
|
||||
if (i_dComIfGp_getEvent().runCheck()) {
|
||||
i_dComIfGp_getEventManager().setCameraPlay(2);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088C24-80088CB0 083564 008C+00 10/10 0/0 0/0 .text searchEventArgData__9dCamera_cFPc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::searchEventArgData(char* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/searchEventArgData__9dCamera_cFPc.s"
|
||||
int dCamera_c::searchEventArgData(char* i_eventName) {
|
||||
int i;
|
||||
bool found_event = false;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (*mEventData.mEventParams[i].name == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (strcmp(mEventData.mEventParams[i].name, i_eventName) == 0) {
|
||||
found_event = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return found_event ? i : -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088CB0-80088D90 0835F0 00E0+00 3/3 1/1 0/0 .text getEvIntData__9dCamera_cFPiPc */
|
||||
#pragma push
|
||||
@@ -846,7 +678,8 @@ static asm void func_8008E750() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
// asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
extern "C" asm void __as__7cSGlobeFRC7cSGlobe() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__as__7cSGlobeFRC7cSGlobe.s"
|
||||
}
|
||||
@@ -856,7 +689,8 @@ asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::abs() const {
|
||||
// asm void cXyz::abs() const {
|
||||
extern "C" asm void abs__4cXyzCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/abs__4cXyzCFv.s"
|
||||
}
|
||||
@@ -866,7 +700,8 @@ asm void cXyz::abs() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
// asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
extern "C" asm void U__7cSGlobeFRC7cSAngle() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/U__7cSGlobeFRC7cSAngle.s"
|
||||
}
|
||||
@@ -876,7 +711,8 @@ asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator-=(Vec const& param_0) {
|
||||
// asm void cXyz::operator-=(Vec const& param_0) {
|
||||
extern "C" asm void __ami__4cXyzFRC3Vec() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__ami__4cXyzFRC3Vec.s"
|
||||
}
|
||||
@@ -886,7 +722,8 @@ asm void cXyz::operator-=(Vec const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator+=(Vec const& param_0) {
|
||||
// asm void cXyz::operator+=(Vec const& param_0) {
|
||||
extern "C" asm void __apl__4cXyzFRC3Vec() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__apl__4cXyzFRC3Vec.s"
|
||||
}
|
||||
@@ -968,7 +805,8 @@ asm void dCamera_c::watchActorEvCamera() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::V(cSAngle const& param_0) {
|
||||
// asm void cSGlobe::V(cSAngle const& param_0) {
|
||||
extern "C" asm void V__7cSGlobeFRC7cSAngle() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/V__7cSGlobeFRC7cSAngle.s"
|
||||
}
|
||||
@@ -1033,14 +871,98 @@ SECTION_DEAD static char const* const stringBase_8037AC5C = "CameraID";
|
||||
#pragma pop
|
||||
|
||||
/* 80090230-80090478 08AB70 0248+00 0/0 1/0 0/0 .text maptoolIdEvCamera__9dCamera_cFv */
|
||||
// matches with sinit
|
||||
#ifdef NONMATCHING
|
||||
bool dCamera_c::maptoolIdEvCamera() {
|
||||
if (mCurCamTypeTimer == 0) {
|
||||
int id;
|
||||
getEvIntData(&id, "ID", g_dComIfG_gameInfo.play.getEvent().getMapToolId());
|
||||
|
||||
mEventData.field_0x8 = 0;
|
||||
field_0x160 = 0;
|
||||
mCurCamTypeTimer = 0;
|
||||
mEventData.field_0xec = dEvt_control_c::searchMapEventData(id);
|
||||
#ifdef DEBUG
|
||||
OSReport("%06d: %s: %d: map data ID %d %x\n", field_0xa8, __FILE__, 2792, id,
|
||||
mEventData.field_0xec);
|
||||
#endif
|
||||
|
||||
int var_r6 = 0xFF;
|
||||
if (mEventData.field_0xec != NULL && mEventData.field_0xec->mType == 0) {
|
||||
var_r6 = mEventData.field_0xec->field_0x16;
|
||||
}
|
||||
|
||||
getEvIntData(&mEventData.field_0x24, "CameraID", var_r6);
|
||||
}
|
||||
|
||||
int temp_r31 = mEventData.field_0x24;
|
||||
if (mEventData.field_0xec == NULL || temp_r31 == 0xFF) {
|
||||
#ifdef DEBUG
|
||||
OSReport("%d: %s: %d: ERROR!! no map data!!!\n", field_0xa8, __FILE__, 2805);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
int room_no = dComIfGp_roomControl_getStayNo();
|
||||
if (func_800889F8(mEventData.field_0xec->field_0x4)) {
|
||||
room_no = -1;
|
||||
}
|
||||
|
||||
if (mEventData.field_0xec->mType == 0 && mEventData.field_0xec->field_0xC != 0xFF) {
|
||||
if (mEventData.field_0xec->field_0xC & 1) {
|
||||
i_clrFlag(0x200000);
|
||||
}
|
||||
|
||||
if (mEventData.field_0xec->field_0xC & 2) {
|
||||
field_0x88 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mEventData.field_0xc = GetCameraTypeFromMapToolID(temp_r31, room_no);
|
||||
bool var_r31 = 0;
|
||||
|
||||
if (mEventData.field_0xc != 0xFF) {
|
||||
s32 style = mCamTypeData[mEventData.field_0xc].field_0x18[field_0x190][0];
|
||||
#ifdef DEBUG
|
||||
if (mCurCamTypeTimer == 0) {
|
||||
OSReport("type %d mode %d style %d\n", mEventData.field_0xc, 0, style);
|
||||
}
|
||||
#endif
|
||||
bool var_r3 = (this->*engine_tbl[mCamParam.Algorythmn(style)])(style);
|
||||
|
||||
if (mEventData.field_0xec->mType == 0) {
|
||||
if (mEventData.field_0xec->field_0x14 == 0xFF ||
|
||||
mCurCamTypeTimer > mEventData.field_0xec->field_0x14)
|
||||
{
|
||||
var_r31 = 1;
|
||||
}
|
||||
} else {
|
||||
return var_r3;
|
||||
}
|
||||
} else {
|
||||
mEventData.field_0xec = NULL;
|
||||
var_r31 = 1;
|
||||
}
|
||||
|
||||
if (var_r31) {
|
||||
if (mEventData.field_0xec->mType == 0 && (mEventData.field_0xec->field_0xC & 0x20)) {
|
||||
return mDoCPd_c::getHoldA(mPadID) || mDoCPd_c::getHoldB(mPadID);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::maptoolIdEvCamera() {
|
||||
asm bool dCamera_c::maptoolIdEvCamera() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/maptoolIdEvCamera__9dCamera_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -1986,8 +1908,7 @@ bool dCamera_c::portalWarpEvCamera() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_ev_camera_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_ev_camera_cpp(){nofralloc
|
||||
#include "asm/d/d_ev_camera/__sinit_d_ev_camera_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
@@ -2062,7 +1983,8 @@ asm void daMidna_c::checkNoDraw() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkMidnaRide() const {
|
||||
// asm void daPy_py_c::checkMidnaRide() const {
|
||||
extern "C" asm void checkMidnaRide__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/checkMidnaRide__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -2072,7 +1994,8 @@ asm void daPy_py_c::checkMidnaRide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcM_GetID(void const* param_0) {
|
||||
// asm void fopAcM_GetID(void const* param_0) {
|
||||
extern "C" asm void fopAcM_GetID__FPCv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/fopAcM_GetID__FPCv.s"
|
||||
}
|
||||
@@ -2082,7 +2005,8 @@ asm void fopAcM_GetID(void const* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator=(cXyz const& param_0) {
|
||||
// asm void cXyz::operator=(cXyz const& param_0) {
|
||||
extern "C" asm void __as__4cXyzFRC4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__as__4cXyzFRC4cXyz.s"
|
||||
}
|
||||
@@ -2092,7 +2016,8 @@ asm void cXyz::operator=(cXyz const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cXyz::cXyz(cXyz const& param_0) {
|
||||
// asm cXyz::cXyz(cXyz const& param_0) {
|
||||
extern "C" asm void __ct__4cXyzFRC4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__ct__4cXyzFRC4cXyz.s"
|
||||
}
|
||||
@@ -2116,22 +2041,26 @@ void func_8009784C() {
|
||||
}
|
||||
|
||||
/* 80097850-80097858 092190 0008+00 0/0 1/0 0/0 .text checkCanoeRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkCanoeRide() const {
|
||||
// bool daPy_py_c::checkCanoeRide() const {
|
||||
extern "C" bool checkCanoeRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097858-80097860 092198 0008+00 0/0 1/0 0/0 .text checkBoardRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkBoardRide() const {
|
||||
// bool daPy_py_c::checkBoardRide() const {
|
||||
extern "C" bool checkBoardRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097860-80097868 0921A0 0008+00 0/0 1/0 0/0 .text checkSpinnerRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkSpinnerRide() const {
|
||||
// bool daPy_py_c::checkSpinnerRide() const {
|
||||
extern "C" bool checkSpinnerRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097868-80097870 0921A8 0008+00 0/0 1/0 0/0 .text checkBoarRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkBoarRide() const {
|
||||
// bool daPy_py_c::checkBoarRide() const {
|
||||
extern "C" bool checkBoarRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2140,7 +2069,8 @@ bool daPy_py_c::checkBoarRide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getShadowTalkAtnPos() {
|
||||
// asm void daAlink_c::getShadowTalkAtnPos() {
|
||||
extern "C" asm void getShadowTalkAtnPos__9daAlink_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/getShadowTalkAtnPos__9daAlink_cFv.s"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user