diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 9668025af79..dbbea01dd9a 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -131,9 +131,6 @@ private: class daAlink_footData_c { public: - /* 800CFCB8 */ ~daAlink_footData_c(); - /* 800CFCF4 */ daAlink_footData_c(); - /* 0x00 */ u8 field_0x0; /* 0x01 */ u8 field_0x1; /* 0x02 */ s16 field_0x2; @@ -150,9 +147,11 @@ public: daAlink_matAnm_c() { init(); } /* 8009D8E4 */ void init(); - /* 800D0180 */ void offSetFlg(); + /* 800D0180 */ void offSetFlg() { + mSetFlag = FALSE; + } - /* 800D0B8C */ virtual ~daAlink_matAnm_c(); + /* 800D0B8C */ virtual ~daAlink_matAnm_c() {} /* 8009D90C */ virtual void calc(J3DMaterial*) const; static void decMorfFrame() { cLib_calcTimer(&m_morf_frame); } @@ -1303,8 +1302,6 @@ public: class firePointEff_c { public: - /* 800CFC3C */ ~firePointEff_c(); - /* 800CFC78 */ firePointEff_c(); /* 0x00 */ u8 field_0x0; /* 0x02 */ u16 field_0x2; /* 0x04 */ u32 field_0x4; @@ -1318,7 +1315,7 @@ public: public: hsChainShape_c() {} /* 80107900 */ virtual void draw(); - /* 800D0CDC */ virtual ~hsChainShape_c(); + /* 800D0CDC */ virtual ~hsChainShape_c() {} }; // Size: 0x10 /* 8009D87C */ static BOOL getE3Zhint(); @@ -3031,67 +3028,87 @@ public: /* 80182888 */ BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; } /* 8018289C */ fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); } - virtual cXyz* getMidnaAtnPos() const; - virtual void setMidnaMsgNum(fopAc_ac_c*, u16); - virtual MtxP getModelMtx(); - virtual MtxP getInvMtx(); + virtual cXyz* getMidnaAtnPos() const { return (cXyz*)&mMidnaAtnPos; } + virtual void setMidnaMsgNum(fopAc_ac_c* param_0, u16 pMsgNum) { + mMidnaMsgNum = pMsgNum; + mMidnaMsg = (daTagMmsg_c*)param_0; + } + virtual MtxP getModelMtx() { return mpLinkModel->getBaseTRMtx(); } + virtual MtxP getInvMtx() { return mInvMtx; } virtual cXyz* getShadowTalkAtnPos() { return &field_0x375c; } - virtual f32 getGroundY(); + virtual f32 getGroundY() { return mLinkAcch.GetGroundH(); } virtual MtxP getLeftItemMatrix(); virtual MtxP getRightItemMatrix(); virtual MtxP getLeftHandMatrix(); virtual MtxP getRightHandMatrix(); - virtual MtxP getLinkBackBone1Matrix(); - virtual MtxP getWolfMouthMatrix(); - virtual MtxP getWolfBackbone2Matrix(); - virtual MtxP getBottleMtx(); + virtual MtxP getLinkBackBone1Matrix() { return mpLinkModel->getAnmMtx(1); } + virtual MtxP getWolfMouthMatrix() { return mpLinkModel->getAnmMtx(13); } + virtual MtxP getWolfBackbone2Matrix() { return mpLinkModel->getAnmMtx(2); } + virtual MtxP getBottleMtx() { + if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) { + return mHeldItemModel->getBaseTRMtx(); + } + + return NULL; + } virtual BOOL checkPlayerGuard() const; - virtual u32 checkPlayerFly() const; - virtual BOOL checkFrontRoll() const; - virtual BOOL checkWolfDash() const; - virtual BOOL checkAutoJump() const; - virtual bool checkSideStep() const; - virtual bool checkWolfTriggerJump() const; - virtual BOOL checkGuardBreakMode() const; - virtual bool checkLv3Slide() const; - virtual bool checkWolfHowlDemoMode() const; + virtual u32 checkPlayerFly() const { + return checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP); + } + virtual BOOL checkFrontRoll() const { return mProcID == PROC_FRONT_ROLL; } + virtual BOOL checkWolfDash() const { return mProcID == PROC_WOLF_DASH; } + virtual BOOL checkAutoJump() const { return mProcID == PROC_AUTO_JUMP || mProcID == PROC_WOLF_AUTO_JUMP; } + virtual bool checkSideStep() const { return (mProcID == PROC_SIDESTEP || mProcID == PROC_WOLF_SIDESTEP) && mProcVar1.field_0x300a != 0; } + virtual bool checkWolfTriggerJump() const { return mProcID == PROC_WOLF_SIDESTEP || mProcID == PROC_WOLF_JUMP_ATTACK; } + virtual BOOL checkGuardBreakMode() const { return mProcID == PROC_GUARD_BREAK; } + virtual bool checkLv3Slide() const { return mProcID == PROC_SLIDE && mProcVar3.field_0x300e != 0; } + virtual bool checkWolfHowlDemoMode() const { return mProcID == PROC_WOLF_HOWL_DEMO; } virtual bool checkChainBlockPushPull(); - virtual BOOL checkElecDamage() const; - virtual BOOL checkEmptyBottleSwing() const; - virtual BOOL checkBottleSwingMode() const; - virtual BOOL checkHawkWait() const; - virtual BOOL checkGoatThrow() const; - virtual BOOL checkGoatThrowAfter() const; - virtual BOOL checkWolfTagLockJump() const; - virtual BOOL checkWolfTagLockJumpLand() const; + virtual BOOL checkElecDamage() const { return mProcID == PROC_ELEC_DAMAGE; } + virtual BOOL checkEmptyBottleSwing() const { return mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && mProcID == PROC_BOTTLE_SWING; } + virtual BOOL checkBottleSwingMode() const { return mProcID == PROC_BOTTLE_SWING; } + virtual BOOL checkHawkWait() const { return mProcID == PROC_HAWK_SUBJECT; } + virtual BOOL checkGoatThrow() const { return mProcID == PROC_GOAT_CATCH && mProcVar2.field_0x300c != 0; } + virtual BOOL checkGoatThrowAfter() const { return mProcID == PROC_GOAT_CATCH && field_0x3478 > 0.0f; } + virtual BOOL checkWolfTagLockJump() const { return mProcID == PROC_WOLF_TAG_JUMP && field_0x3198 == 0; } + virtual BOOL checkWolfTagLockJumpLand() const { return mProcID == PROC_WOLF_TAG_JUMP_LAND; } virtual BOOL checkWolfRope(); - virtual BOOL checkWolfRopeHang() const; - virtual BOOL checkRollJump() const; - virtual BOOL checkGoronRideWait() const; - virtual BOOL checkWolfChain() const; - virtual BOOL checkWolfWait() const; - virtual BOOL checkWolfJumpAttack() const; - virtual BOOL checkWolfRSit() const; - virtual BOOL checkBottleDrinkEnd() const; - virtual BOOL checkWolfDig() const; - virtual BOOL checkCutCharge() const; - virtual BOOL checkCutTurnCharge() const; - virtual BOOL checkCutLargeJumpCharge() const; - virtual BOOL checkComboCutTurn() const; - virtual BOOL checkClimbMove() const; - virtual BOOL checkGrassWhistle() const; - virtual BOOL checkBoarRun() const; - virtual f32 getBaseAnimeFrameRate() const; + virtual BOOL checkWolfRopeHang() const { return mProcID == PROC_WOLF_ROPE_HANG; } + virtual BOOL checkRollJump() const { return mProcID == PROC_ROLL_JUMP; } + virtual BOOL checkGoronRideWait() const { return mProcID == PROC_GORON_RIDE_WAIT; } + virtual BOOL checkWolfChain() const { return mProcID == PROC_WOLF_CHAIN_WAIT; } + virtual BOOL checkWolfWait() const { return mProcID == PROC_WOLF_WAIT; } + virtual BOOL checkWolfJumpAttack() const { return mProcID == PROC_WOLF_JUMP_ATTACK; } + virtual BOOL checkWolfRSit() const { return mProcID == PROC_WOLF_SIT; } + virtual BOOL checkBottleDrinkEnd() const { return mProcID == PROC_BOTTLE_DRINK && mProcVar3.field_0x300e != 0; } + virtual BOOL checkWolfDig() const { return mProcID == PROC_WOLF_DIG; } + virtual BOOL checkCutCharge() const { return mProcID == PROC_CUT_TURN_MOVE; } + virtual BOOL checkCutTurnCharge() const { return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c == 0; } + virtual BOOL checkCutLargeJumpCharge() const { return mProcID == PROC_CUT_TURN_MOVE && mProcVar2.field_0x300c != 0; } + virtual BOOL checkComboCutTurn() const { return mProcID == PROC_CUT_TURN && mComboCutCount != 0; } + virtual BOOL checkClimbMove() const { return mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_LADDER_MOVE || mProcID == PROC_CLIMB_MOVE_SIDE; } + virtual BOOL checkGrassWhistle() const { return mProcID == PROC_GRASS_WHISTLE_WAIT; } + virtual BOOL checkBoarRun() const { return mProcID == PROC_BOAR_RUN; } + virtual f32 getBaseAnimeFrameRate() const { return mUnderFrameCtrl[0].getRate(); } virtual f32 getBaseAnimeFrame() const; virtual void setAnimeFrame(f32); virtual BOOL checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); - virtual s32 getAtnActorID() const; - virtual s32 getItemID() const; - virtual u32 getGrabActorID() const; + virtual s32 getAtnActorID() const { return mAtnActorID; } + virtual s32 getItemID() const { return mItemAcKeep.getID(); } + virtual u32 getGrabActorID() const { + if (mEquipItem == 0x102) { + return mItemAcKeep.getID(); + } else { + return mGrabItemAcKeep.getID(); + } + } virtual BOOL exchangeGrabActor(fopAc_ac_c*); virtual BOOL setForceGrab(fopAc_ac_c*, int, int); - virtual void setForcePutPos(cXyz const&); + virtual void setForcePutPos(cXyz const& pPutPos) { + mForcePutPos = pPutPos; + onEndResetFlg1(ERFLG1_UNK_2000); + } virtual u32 checkPlayerNoDraw(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); @@ -3100,12 +3117,14 @@ public: virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*); virtual void onFrollCrashFlg(u8, int); virtual MtxP getModelJointMtx(u16); - virtual MtxP getHeadMtx(); + virtual MtxP getHeadMtx() { + return mpLinkModel->getAnmMtx(field_0x30b4);; + } virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*); - virtual BOOL checkCutJumpCancelTurn() const; + virtual BOOL checkCutJumpCancelTurn() const { return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2; } virtual bool checkIronBallReturn() const; virtual bool checkIronBallGroundStop() const; - virtual BOOL checkSingleBoarBattleSecondBowReady() const; + virtual BOOL checkSingleBoarBattleSecondBowReady() const { return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0; } virtual void setClothesChange(int); virtual void setPlayerPosAndAngle(cXyz const*, short, int); virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); @@ -3113,33 +3132,66 @@ public: virtual bool setThrowDamage(short, f32, f32, int, int, int); virtual bool checkSetNpcTks(cXyz*, int, int); virtual int setRollJump(f32, f32, short); - virtual void playerStartCollisionSE(u32, u32); - virtual void cancelDungeonWarpReadyNeck(); + virtual void playerStartCollisionSE(u32 param_0, u32 param_1) { mZ2Link.startCollisionSE(param_0, param_1); } + virtual void cancelDungeonWarpReadyNeck() { + if (mProcID != PROC_DUNGEON_WARP_READY) { + return; + } + offModeFlg(MODE_UNK_100); + } virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*); - virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*); - virtual void onSceneChangeDead(u8, int); + virtual void onSceneChangeAreaJump(u8 exitID, u8 exitDirection, fopAc_ac_c* scexAc) { + mExitID = exitID | 0x8000; + mExitDirection = exitDirection; + mpScnChg = (daScex_c*)scexAc; + } + virtual void onSceneChangeDead(u8 param_0, int param_1) { + if (mProcID != PROC_DEAD) { + return; + } + mProcVar5.field_0x3012 = param_0; + field_0x3198 = param_1; + } virtual u32 checkHorseRide() const; virtual u32 checkBoarRide() const; virtual u32 checkCanoeRide() const; virtual u32 checkBoardRide() const; virtual u32 checkSpinnerRide() const; - virtual daSpinner_c* getSpinnerActor(); - virtual BOOL checkHorseRideNotReady() const; + virtual daSpinner_c* getSpinnerActor() { + daSpinner_c* spinnerActor; + if (!checkSpinnerRide()) { + spinnerActor = NULL; + } else { + spinnerActor = (daSpinner_c*)mRideAcKeep.getActor(); + } + return (daSpinner_c*)spinnerActor; + } + virtual BOOL checkHorseRideNotReady() const { return checkHorseRide() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF; } virtual bool checkArrowChargeEnd() const; - virtual f32 getSearchBallScale() const; - virtual int checkFastShotTime(); - virtual bool checkNoEquipItem() const; + virtual f32 getSearchBallScale() const { return mSearchBallScale; } + virtual int checkFastShotTime() { return mFastShotTime; } + virtual bool checkNoEquipItem() const { return mEquipItem == fpcNm_ITEM_NONE; } virtual bool checkKandelaarSwing(int) const; - virtual s16 getBoardCutTurnOffsetAngleY() const; - virtual cXyz* getMagneBootsTopVec(); + virtual s16 getBoardCutTurnOffsetAngleY() const { + if (mProcID == PROC_BOARD_CUT_TURN) { + return mProcVar5.field_0x3012; + } + return 0; + } + virtual cXyz* getMagneBootsTopVec() { return &mMagneBootsTopVec; } virtual cXyz* getKandelaarFlamePos(); virtual bool checkUseKandelaar(int); virtual void setDkCaught(fopAc_ac_c*); virtual void onPressedDamage(cXyz const&, short); - virtual bool checkPriActorOwn(fopAc_ac_c const*) const; + virtual bool checkPriActorOwn(fopAc_ac_c const* p_actor) const { return field_0x27f4 == p_actor; } virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2); - virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const; - virtual void setWolfEnemyHangBiteAngle(short); + virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const { return field_0x281c.getActorConst() == p_actor; } + virtual void setWolfEnemyHangBiteAngle(short angle) { + if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) { + return; + } + mProcVar4.field_0x3010 = angle; + } virtual void setKandelaarMtx(f32 (*)[4], int, int); virtual bool getStickAngleFromPlayerShape(short*) const; virtual bool checkSpinnerPathMove(); @@ -3147,47 +3199,87 @@ public: virtual void onSpinnerPathForceRemove(); virtual int getIronBallBgHit() const; virtual cXyz* getIronBallCenterPos(); - virtual bool checkCanoeFishingGetLeft() const; - virtual bool checkCanoeFishingGetRight() const; - virtual u8 checkBeeChildDrink() const; + virtual bool checkCanoeFishingGetLeft() const { return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 0; } + virtual bool checkCanoeFishingGetRight() const { return mProcID == PROC_CANOE_FISHING_GET && mProcVar3.field_0x300e == 1; } + virtual u8 checkBeeChildDrink() const { return field_0x2fd3; } virtual void skipPortalObjWarp(); virtual BOOL checkTreasureRupeeReturn(int) const; - virtual void setSumouReady(fopAc_ac_c*); - virtual bool checkAcceptDungeonWarpAlink(int); - virtual s16 getSumouCounter() const; - virtual s16 checkSumouWithstand() const; + virtual void setSumouReady(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_SUMO_READY; + mCargoCarryAcKeep.setData(p_actor); + mDemo.setDemoMode(1); + } + virtual bool checkAcceptDungeonWarpAlink(int) { return checkAcceptWarp(); } + virtual s16 getSumouCounter() const { return mProcVar2.field_0x300c; } + virtual s16 checkSumouWithstand() const { return mProcVar3.field_0x300e; } virtual void cancelGoronThrowEvent(); - virtual void setSumouGraspCancelCount(int); - virtual void setSumouPushBackDirection(short); - virtual void setSumouLoseHeadUp(); - virtual s16 getGiantPuzzleAimAngle() const; - virtual void setGoronSideMove(fopAc_ac_c*); - virtual void setCargoCarry(fopAc_ac_c*); + virtual void setSumouGraspCancelCount(int param_0) { + if (mProcID != PROC_SUMOU_MOVE) { + return; + } + mProcVar2.field_0x300c = param_0; + } + virtual void setSumouPushBackDirection(short param_0) { + if (mProcID != PROC_SUMOU_MOVE) { + return; + } + mProcVar4.field_0x3010 = param_0; + } + virtual void setSumouLoseHeadUp() { + if (mProcID != PROC_SUMOU_WIN_LOSE) { + return; + } + mSpecialMode = SMODE_SUMO_LOSE; + } + virtual s16 getGiantPuzzleAimAngle() const { return mProcVar2.mPuzzleAimAngle; } + virtual void setGoronSideMove(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_GORON_THROW; + mCargoCarryAcKeep.setData(p_actor); + } + virtual void setCargoCarry(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_CARGO_CARRY; + mCargoCarryAcKeep.setData(p_actor); + } virtual cXyz* getHookshotTopPos(); virtual bool checkHookshotReturnMode() const; virtual bool checkHookshotShootReturnMode() const; - virtual bool checkOctaIealHang() const; - virtual void cancelOctaIealHang(); - virtual void cancelDragonHangBackJump(); - virtual void setOctaIealWildHang(); - virtual bool checkDragonHangRide() const; + virtual bool checkOctaIealHang() const { return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc == 0; } + virtual void cancelOctaIealHang() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar3.field_0x300e = 1; + } + virtual void cancelDragonHangBackJump() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar3.field_0x300e = -1; + } + virtual void setOctaIealWildHang() { + if (mProcID != PROC_BOSS_BODY_HANG) { + return; + } + mProcVar0.field_0x3008 = 1; + } + virtual bool checkDragonHangRide() const { return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0; } virtual void changeDragonActor(fopAc_ac_c*); - virtual u8 getClothesChangeWaitTimer() const; - virtual u8 getShieldChangeWaitTimer() const; - virtual u8 getSwordChangeWaitTimer() const; - virtual BOOL checkMetamorphose() const; - virtual BOOL checkWolfDownAttackPullOut() const; + virtual u8 getClothesChangeWaitTimer() const { return mClothesChangeWaitTimer; } + virtual u8 getShieldChangeWaitTimer() const { return mShieldChangeWaitTimer; } + virtual u8 getSwordChangeWaitTimer() const { return mSwordChangeWaitTimer; } + virtual BOOL checkMetamorphose() const { return mProcID == PROC_METAMORPHOSE && mProcVar1.field_0x300a == 0; } + virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; } virtual BOOL checkBootsOrArmorHeavy() const; virtual s32 getBottleOpenAppearItem() const; - virtual bool checkItemSwordEquip() const; - virtual f32 getSinkShapeOffset() const; - virtual BOOL checkSinkDead() const; - virtual BOOL checkHorseStart(); + virtual bool checkItemSwordEquip() const { return mEquipItem == 0x103; } + virtual f32 getSinkShapeOffset() const { return mSinkShapeOffset; } + virtual BOOL checkSinkDead() const { return field_0x2fbd == 0xFF; } + virtual BOOL checkHorseStart() { return checkHorseStart(getLastSceneMode(), getStartMode()); } virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return &mZ2WolfHowlMgr; } - virtual BOOL checkWolfHowlSuccessAnime() const; + virtual BOOL checkWolfHowlSuccessAnime() const { return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); } virtual BOOL checkCopyRodTopUse(); - virtual bool checkCopyRodEquip() const; - virtual BOOL checkCutJumpMode() const; + virtual bool checkCopyRodEquip() const { return mEquipItem == fpcNm_ITEM_COPY_ROD; } + virtual BOOL checkCutJumpMode() const { return mProcID == PROC_CUT_JUMP; } u32 checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; } BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); } @@ -3598,9 +3690,13 @@ public: f32 getSlideLimit() const { return field_0x3470; } - inline bool checkWindSpeedOnXZ() const; + bool checkWindSpeedOnXZ() const { return field_0x35b8.abs2XZ() > 1.0f; } + inline void startRestartRoomFromOut(int, u32, int); - inline u16 getReadyItem(); + + u16 getReadyItem() { + return dComIfGp_getSelectItem(mSelectItemId); + } static daAlink_BckData const m_mainBckShield[20]; static daAlink_BckData const m_mainBckSword[5]; diff --git a/include/d/actor/d_a_crod.h b/include/d/actor/d_a_crod.h index ebf668c88d2..9224ba9822c 100644 --- a/include/d/actor/d_a_crod.h +++ b/include/d/actor/d_a_crod.h @@ -15,7 +15,11 @@ */ class daCrod_c : public fopAc_ac_c { public: - /* 80141A94 */ void setControllActorData(); + /* 80141A94 */ void setControllActorData() { + mControllActorKeep.setActor(); + mCameraActorKeep.setActor(); + } + /* 804A2E38 */ int createHeap(); /* 804A2F18 */ int create(); /* 804A3304 */ ~daCrod_c(); diff --git a/include/d/actor/d_a_midna.h b/include/d/actor/d_a_midna.h index 0be675bf8b6..1fbd049e340 100644 --- a/include/d/actor/d_a_midna.h +++ b/include/d/actor/d_a_midna.h @@ -213,9 +213,9 @@ public: }; void onForcePanic() { onEndResetStateFlg0(ERFLG0_FORCE_PANIC); } - u32 checkForceNormalColor() const; - u32 checkForceTiredColor() const; - void onNoServiceWait(); + u32 checkForceNormalColor() const { return checkStateFlg1(FLG1_FORCE_NORMAL_COL); } + u32 checkForceTiredColor() const { return checkStateFlg1(FLG1_FORCE_TIRED_COL); } + void onNoServiceWait() { onEndResetStateFlg0(ERFLG0_NO_SERVICE_WAIT); } /* 804BC3E0 */ int modelCallBack(int); /* 804BC5C4 */ int changeUpperBck(); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 14d9dc0bc4e..d572577915d 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -691,7 +691,7 @@ public: static void setMidnaMotionNum(int); static void setMidnaFaceNum(int); static BOOL checkShieldGet() { return dComIfGs_getSelectEquipShield() != fpcNm_ITEM_NONE; } - inline static BOOL checkSwordGet(); + static BOOL checkSwordGet() { return dComIfGs_getSelectEquipSword() != fpcNm_ITEM_NONE; } cXyz getHeadTopPos() const { return mHeadTopPos; } u32 checkThrowDamage() const { return checkNoResetFlg1(FLG1_THROW_DAMAGE); } @@ -704,175 +704,175 @@ public: const cXyz getLeftHandPos() const { return mLeftHandPos; } const cXyz getItemPos() const { return mItemPos; } - virtual cXyz* getMidnaAtnPos() const; - virtual void setMidnaMsgNum(fopAc_ac_c*, u16); - virtual MtxP getModelMtx(); - virtual MtxP getInvMtx(); - virtual cXyz* getShadowTalkAtnPos(); - virtual f32 getGroundY(); - virtual MtxP getLeftItemMatrix(); - virtual MtxP getRightItemMatrix(); - virtual MtxP getLeftHandMatrix(); - virtual MtxP getRightHandMatrix(); - virtual MtxP getLinkBackBone1Matrix(); - virtual MtxP getWolfMouthMatrix(); - virtual MtxP getWolfBackbone2Matrix(); - virtual MtxP getBottleMtx(); - virtual BOOL checkPlayerGuard() const; + virtual cXyz* getMidnaAtnPos() const { return NULL; } + virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {} + virtual MtxP getModelMtx() { return cullMtx; } + virtual MtxP getInvMtx() { return cullMtx; } + virtual cXyz* getShadowTalkAtnPos() { return ¤t.pos; } + virtual f32 getGroundY() = 0; + virtual MtxP getLeftItemMatrix() { return cullMtx; } + virtual MtxP getRightItemMatrix() { return cullMtx; } + virtual MtxP getLeftHandMatrix() { return cullMtx; } + virtual MtxP getRightHandMatrix() { return cullMtx; } + virtual MtxP getLinkBackBone1Matrix() { return cullMtx; } + virtual MtxP getWolfMouthMatrix() { return cullMtx; } + virtual MtxP getWolfBackbone2Matrix() { return cullMtx; } + virtual MtxP getBottleMtx() { return NULL; } + virtual BOOL checkPlayerGuard() const { return FALSE; } virtual u32 checkPlayerFly() const { return 0; } virtual BOOL checkFrontRoll() const { return FALSE; } virtual BOOL checkWolfDash() const { return FALSE; } - virtual BOOL checkAutoJump() const; - virtual bool checkSideStep() const; - virtual bool checkWolfTriggerJump() const; - virtual BOOL checkGuardBreakMode() const; - virtual bool checkLv3Slide() const; - virtual bool checkWolfHowlDemoMode() const; - virtual bool checkChainBlockPushPull(); - virtual BOOL checkElecDamage() const; - virtual BOOL checkEmptyBottleSwing() const; - virtual BOOL checkBottleSwingMode() const; - virtual BOOL checkHawkWait() const; - virtual BOOL checkGoatThrow() const; - virtual BOOL checkGoatThrowAfter() const; - virtual BOOL checkWolfTagLockJump() const; - virtual BOOL checkWolfTagLockJumpLand() const; - virtual BOOL checkWolfRope(); - virtual BOOL checkWolfRopeHang() const; - virtual BOOL checkRollJump() const; - virtual BOOL checkGoronRideWait() const; - virtual BOOL checkWolfChain() const; - virtual BOOL checkWolfWait() const; - virtual BOOL checkWolfJumpAttack() const; - virtual BOOL checkWolfRSit() const; - virtual bool checkBubbleFly() const; - virtual BOOL checkBottleDrinkEnd() const; - virtual BOOL checkWolfDig() const; - virtual BOOL checkCutCharge() const; - virtual BOOL checkCutTurnCharge() const; - virtual BOOL checkCutLargeJumpCharge() const; - virtual bool getBokoFlamePos(cXyz*); - virtual BOOL checkComboCutTurn() const; - virtual BOOL checkClimbMove() const; - virtual BOOL checkGrassWhistle() const; - virtual BOOL checkBoarRun() const; - virtual bool checkFmChainPut() const; - virtual bool checkHorseElecDamage() const; - virtual f32 getBaseAnimeFrameRate() const; - virtual f32 getBaseAnimeFrame() const; - virtual void setAnimeFrame(f32); - virtual BOOL checkWolfLock(fopAc_ac_c*) const; - virtual bool cancelWolfLock(fopAc_ac_c*); - virtual s32 getAtnActorID() const { return -1; } - virtual s32 getItemID() const; + virtual BOOL checkAutoJump() const { return FALSE; } + virtual bool checkSideStep() const { return FALSE; } + virtual bool checkWolfTriggerJump() const { return FALSE; } + virtual BOOL checkGuardBreakMode() const { return FALSE; } + virtual bool checkLv3Slide() const { return FALSE; } + virtual bool checkWolfHowlDemoMode() const { return FALSE; } + virtual bool checkChainBlockPushPull() { return FALSE; } + virtual BOOL checkElecDamage() const { return FALSE; } + virtual BOOL checkEmptyBottleSwing() const { return FALSE; } + virtual BOOL checkBottleSwingMode() const { return FALSE; } + virtual BOOL checkHawkWait() const { return FALSE; } + virtual BOOL checkGoatThrow() const { return FALSE; } + virtual BOOL checkGoatThrowAfter() const { return FALSE; } + virtual BOOL checkWolfTagLockJump() const { return FALSE; } + virtual BOOL checkWolfTagLockJumpLand() const { return FALSE; } + virtual BOOL checkWolfRope() { return FALSE; } + virtual BOOL checkWolfRopeHang() const { return FALSE; } + virtual BOOL checkRollJump() const { return FALSE; } + virtual BOOL checkGoronRideWait() const { return FALSE; } + virtual BOOL checkWolfChain() const { return FALSE; } + virtual BOOL checkWolfWait() const { return FALSE; } + virtual BOOL checkWolfJumpAttack() const { return FALSE; } + virtual BOOL checkWolfRSit() const { return FALSE; } + virtual bool checkBubbleFly() const { return FALSE; } + virtual BOOL checkBottleDrinkEnd() const { return FALSE; } + virtual BOOL checkWolfDig() const { return FALSE; } + virtual BOOL checkCutCharge() const { return FALSE; } + virtual BOOL checkCutTurnCharge() const { return FALSE; } + virtual BOOL checkCutLargeJumpCharge() const { return FALSE; } + virtual bool getBokoFlamePos(cXyz*) { return FALSE; } + virtual BOOL checkComboCutTurn() const { return FALSE; } + virtual BOOL checkClimbMove() const { return FALSE; } + virtual BOOL checkGrassWhistle() const { return FALSE; } + virtual BOOL checkBoarRun() const { return FALSE; } + virtual bool checkFmChainPut() const { return FALSE; } + virtual bool checkHorseElecDamage() const { return FALSE; } + virtual f32 getBaseAnimeFrameRate() const { return 1.0f; } + virtual f32 getBaseAnimeFrame() const { return 0.0f; } + virtual void setAnimeFrame(f32) {} + virtual BOOL checkWolfLock(fopAc_ac_c*) const { return FALSE; } + virtual bool cancelWolfLock(fopAc_ac_c*) { return FALSE; } + virtual s32 getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; } + virtual s32 getItemID() const { return fpcM_ERROR_PROCESS_ID_e; } virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } - virtual BOOL exchangeGrabActor(fopAc_ac_c*); - virtual BOOL setForceGrab(fopAc_ac_c*, int, int); - virtual void setForcePutPos(cXyz const&); - virtual u32 checkPlayerNoDraw(); - virtual bool checkRopeTag(); - virtual void voiceStart(u32); - virtual void seStartOnlyReverb(u32); - virtual void seStartOnlyReverbLevel(u32); - virtual void setOutPower(f32, short, int); - virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*); - virtual void onMagneGrab(f32, f32); + virtual BOOL exchangeGrabActor(fopAc_ac_c*) { return FALSE; } + virtual BOOL setForceGrab(fopAc_ac_c*, int, int) { return FALSE; } + virtual void setForcePutPos(cXyz const&) {} + virtual u32 checkPlayerNoDraw() { return FALSE; } + virtual bool checkRopeTag() { return FALSE; } + virtual void voiceStart(u32) {} + virtual void seStartOnlyReverb(u32) {} + virtual void seStartOnlyReverbLevel(u32) {} + virtual void setOutPower(f32, short, int) {} + virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*) {} + virtual void onMagneGrab(f32, f32) {} virtual void onFrollCrashFlg(u8, int) {} - virtual MtxP getModelJointMtx(u16); - virtual MtxP getHeadMtx(); - virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*); + virtual MtxP getModelJointMtx(u16) { return NULL; } + virtual MtxP getHeadMtx() { return NULL; } + virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*) { return FALSE; } virtual BOOL checkCutJumpCancelTurn() const { return FALSE; } - virtual bool checkIronBallReturn() const; - virtual bool checkIronBallGroundStop() const; - virtual BOOL checkSingleBoarBattleSecondBowReady() const; - virtual bool checkPointSubWindowMode() const; - virtual void setClothesChange(int); - virtual void setPlayerPosAndAngle(cXyz const*, short, int); - virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); - virtual void setPlayerPosAndAngle(f32 (*)[4]); - virtual bool setThrowDamage(short, f32, f32, int, int, int); - virtual bool checkSetNpcTks(cXyz*, int, int); - virtual int setRollJump(f32, f32, short); - virtual void playerStartCollisionSE(u32, u32); - virtual void changeTextureAnime(u16, u16, int); - virtual void cancelChangeTextureAnime(); - virtual void cancelDungeonWarpReadyNeck(); - virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*); - virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*); - virtual void onSceneChangeDead(u8, int); + virtual bool checkIronBallReturn() const { return FALSE; } + virtual bool checkIronBallGroundStop() const { return FALSE; } + virtual BOOL checkSingleBoarBattleSecondBowReady() const { return FALSE; } + virtual bool checkPointSubWindowMode() const { return FALSE; } + virtual void setClothesChange(int) {} + virtual void setPlayerPosAndAngle(cXyz const*, short, int) {} + virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*) {} + virtual void setPlayerPosAndAngle(f32 (*)[4]) {} + virtual bool setThrowDamage(short, f32, f32, int, int, int) { return FALSE; } + virtual bool checkSetNpcTks(cXyz*, int, int) { return FALSE; } + virtual int setRollJump(f32, f32, short) { return FALSE; } + virtual void playerStartCollisionSE(u32, u32) {} + virtual void changeTextureAnime(u16, u16, int) {} + virtual void cancelChangeTextureAnime() {} + virtual void cancelDungeonWarpReadyNeck() {} + virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*) {} + virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*) {} + virtual void onSceneChangeDead(u8, int) {} virtual u32 checkHorseRide() const { return false; } virtual u32 checkBoarRide() const { return 0; } virtual u32 checkCanoeRide() const { return 0; } virtual u32 checkBoardRide() const { return 0; } virtual u32 checkSpinnerRide() const { return 0; } - virtual daSpinner_c* getSpinnerActor(); - virtual BOOL checkHorseRideNotReady() const; - virtual bool checkArrowChargeEnd() const; - virtual f32 getSearchBallScale() const; - virtual int checkFastShotTime(); - virtual bool checkNoEquipItem() const; - virtual bool checkFireMaterial() const; - virtual bool checkKandelaarSwing(int) const; - virtual s16 getBoardCutTurnOffsetAngleY() const; - virtual cXyz* getMagneHitPos(); - virtual cXyz* getMagneBootsTopVec(); + virtual daSpinner_c* getSpinnerActor() { return NULL; } + virtual BOOL checkHorseRideNotReady() const { return FALSE; } + virtual bool checkArrowChargeEnd() const { return FALSE; } + virtual f32 getSearchBallScale() const { return 0.0f; } + virtual int checkFastShotTime() { return FALSE; } + virtual bool checkNoEquipItem() const { return TRUE; } + virtual bool checkFireMaterial() const { return FALSE; } + virtual bool checkKandelaarSwing(int) const { return FALSE; } + virtual s16 getBoardCutTurnOffsetAngleY() const { return 0; } + virtual cXyz* getMagneHitPos() { return &mSwordTopPos; } + virtual cXyz* getMagneBootsTopVec() { return ¤t.pos; } virtual cXyz* getKandelaarFlamePos() { return NULL; } - virtual bool checkUseKandelaar(int); - virtual void setDkCaught(fopAc_ac_c*); - virtual void onPressedDamage(cXyz const&, short); - virtual bool checkPriActorOwn(fopAc_ac_c const*) const; - virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2); - virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const; - virtual void setWolfEnemyHangBiteAngle(short); - virtual void setKandelaarMtx(f32 (*)[4], int, int); - virtual bool getStickAngleFromPlayerShape(short*) const; - virtual bool checkSpinnerPathMove(); - virtual bool checkSpinnerTriggerAttack(); - virtual void onSpinnerPathForceRemove(); - virtual int getIronBallBgHit() const; - virtual cXyz* getIronBallCenterPos(); - virtual bool checkCanoeFishingGetLeft() const; - virtual bool checkCanoeFishingGetRight() const; - virtual u8 checkBeeChildDrink() const; - virtual void skipPortalObjWarp(); - virtual BOOL checkTreasureRupeeReturn(int) const; - virtual void setSumouReady(fopAc_ac_c*); - virtual bool checkAcceptDungeonWarpAlink(int); - virtual s16 getSumouCounter() const; - virtual s16 checkSumouWithstand() const; - virtual void cancelGoronThrowEvent(); - virtual void setSumouGraspCancelCount(int); - virtual void setSumouPushBackDirection(short); - virtual void setSumouLoseHeadUp(); - virtual s16 getGiantPuzzleAimAngle() const; - virtual void setGoronSideMove(fopAc_ac_c*); - virtual void setCargoCarry(fopAc_ac_c*); - virtual bool getDpdFarFlg() const; - virtual cXyz* getHookshotTopPos(); - virtual bool checkHookshotReturnMode() const; - virtual bool checkHookshotShootReturnMode() const; - virtual bool checkOctaIealHang() const; - virtual void cancelOctaIealHang(); - virtual void cancelDragonHangBackJump(); - virtual void setOctaIealWildHang(); - virtual bool checkDragonHangRide() const; - virtual void changeDragonActor(fopAc_ac_c*); - virtual u8 getClothesChangeWaitTimer() const; - virtual u8 getShieldChangeWaitTimer() const; - virtual u8 getSwordChangeWaitTimer() const; - virtual BOOL checkMetamorphose() const; - virtual BOOL checkWolfDownAttackPullOut() const; - virtual BOOL checkBootsOrArmorHeavy() const; - virtual s32 getBottleOpenAppearItem() const; - virtual bool checkItemSwordEquip() const; - virtual f32 getSinkShapeOffset() const; - virtual BOOL checkSinkDead() const; - virtual BOOL checkHorseStart(); - virtual Z2WolfHowlMgr* getWolfHowlMgrP(); - virtual BOOL checkWolfHowlSuccessAnime() const; - virtual BOOL checkCopyRodTopUse(); - virtual bool checkCopyRodEquip() const; - virtual BOOL checkCutJumpMode() const; + virtual bool checkUseKandelaar(int) { return FALSE; } + virtual void setDkCaught(fopAc_ac_c*) {} + virtual void onPressedDamage(cXyz const&, short) {} + virtual bool checkPriActorOwn(fopAc_ac_c const*) const { return FALSE; } + virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2) { return FALSE; } + virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const { return FALSE; } + virtual void setWolfEnemyHangBiteAngle(short) {} + virtual void setKandelaarMtx(f32 (*)[4], int, int) {} + virtual bool getStickAngleFromPlayerShape(short*) const { return FALSE; } + virtual bool checkSpinnerPathMove() { return FALSE; } + virtual bool checkSpinnerTriggerAttack() { return FALSE; } + virtual void onSpinnerPathForceRemove() {} + virtual int getIronBallBgHit() const { return FALSE; } + virtual cXyz* getIronBallCenterPos() { return NULL; } + virtual bool checkCanoeFishingGetLeft() const { return FALSE; } + virtual bool checkCanoeFishingGetRight() const { return FALSE; } + virtual u8 checkBeeChildDrink() const { return FALSE; } + virtual void skipPortalObjWarp() {} + virtual BOOL checkTreasureRupeeReturn(int) const { return FALSE; } + virtual void setSumouReady(fopAc_ac_c*) {} + virtual bool checkAcceptDungeonWarpAlink(int) { return FALSE; } + virtual s16 getSumouCounter() const { return 0; } + virtual s16 checkSumouWithstand() const { return 0; } + virtual void cancelGoronThrowEvent() {} + virtual void setSumouGraspCancelCount(int) {} + virtual void setSumouPushBackDirection(short) {} + virtual void setSumouLoseHeadUp() {} + virtual s16 getGiantPuzzleAimAngle() const { return shape_angle.y; } + virtual void setGoronSideMove(fopAc_ac_c*) {} + virtual void setCargoCarry(fopAc_ac_c*) {} + virtual bool getDpdFarFlg() const { return 0; } + virtual cXyz* getHookshotTopPos() { return NULL; } + virtual bool checkHookshotReturnMode() const { return FALSE; } + virtual bool checkHookshotShootReturnMode() const { return FALSE; } + virtual bool checkOctaIealHang() const { return FALSE; } + virtual void cancelOctaIealHang() {} + virtual void cancelDragonHangBackJump() {} + virtual void setOctaIealWildHang() {} + virtual bool checkDragonHangRide() const { return FALSE; } + virtual void changeDragonActor(fopAc_ac_c*) {} + virtual u8 getClothesChangeWaitTimer() const { return 0; } + virtual u8 getShieldChangeWaitTimer() const { return 0; } + virtual u8 getSwordChangeWaitTimer() const { return 0; } + virtual BOOL checkMetamorphose() const { return FALSE; } + virtual BOOL checkWolfDownAttackPullOut() const { return FALSE; } + virtual BOOL checkBootsOrArmorHeavy() const { return FALSE; } + virtual s32 getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; } + virtual bool checkItemSwordEquip() const { return FALSE; } + virtual f32 getSinkShapeOffset() const { return 0.0f; } + virtual BOOL checkSinkDead() const { return FALSE; } + virtual BOOL checkHorseStart() { return FALSE; } + virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return NULL; } + virtual BOOL checkWolfHowlSuccessAnime() const { return FALSE; } + virtual BOOL checkCopyRodTopUse() { return FALSE; } + virtual bool checkCopyRodEquip() const { return FALSE; } + virtual BOOL checkCutJumpMode() const { return FALSE; } f32 getSpeedF() const { return speedF; } @@ -1079,16 +1079,33 @@ public: static BOOL checkNormalSwordEquip() { return dComIfGs_getSelectEquipSword() == fpcNm_ITEM_SWORD; } - inline static u32 getLastSceneMode(); - inline static bool checkWoodSwordEquip() { + static u32 getLastSceneMode() { + return dComIfGs_getLastSceneMode() & 0xF; + } + + static bool checkWoodSwordEquip() { return dComIfGs_getSelectEquipSword() == fpcNm_ITEM_WOOD_STICK; } - inline static bool checkLightMasterSwordEquip(); - inline static u32 checkNowWolf() { return ((daPy_py_c*)dComIfGp_getLinkPlayer())->checkWolf(); } - inline bool checkZoraWearFlg() const; - inline bool checkMagicArmorWearFlg() const; - inline static BOOL checkFirstMidnaDemo() { return dComIfGs_isEventBit(0xc10); } + static bool checkLightMasterSwordEquip() { + return dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD; + } + + static bool checkCasualWearFlg() { + return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_WEAR_CASUAL; + } + + static u32 checkNowWolf() { return ((daPy_py_c*)dComIfGp_getLinkPlayer())->checkWolf(); } + + static bool checkZoraWearFlg() { + return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_WEAR_ZORA; + } + + static bool checkMagicArmorWearFlg() { + return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_ARMOR; + } + + static BOOL checkFirstMidnaDemo() { return dComIfGs_isEventBit(0xc10); } static int checkNowWolfPowerUp() { return checkNowWolfEyeUp(); } static daMidna_c* getMidnaActor() { return m_midnaActor; } diff --git a/include/d/d_meter2_info.h b/include/d/d_meter2_info.h index d850a378d83..1151925e822 100644 --- a/include/d/d_meter2_info.h +++ b/include/d/d_meter2_info.h @@ -287,8 +287,7 @@ void dMeter2Info_setCloth(u8 i_clothId, bool param_1); void dMeter2Info_setShield(u8 i_itemId, bool param_1); void dMeter2Info_set2DVibration(); void dMeter2Info_set2DVibrationM(); -static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible); -static void dMeter2Info_offUseButton(int pButton); +void dMeter2Info_offUseButton(int pButton); bool dMeter2Info_is2DActiveTouchArea(); u8 dMeter2Info_getRecieveLetterNum(); bool dMeter2Info_getPixel(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, @@ -813,6 +812,10 @@ inline bool dMeter2Info_isNextStage(const char*, s16, s16, s16) { return false; } +inline void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible) { + g_meter2_info.setFloatingMessage(pMessageID, pMessageTimer, pWakuVisible); +} + const char* dMeter2Info_getPlusTextureName(); const char* dMeter2Info_getNumberTextureName(int pIndex); int dMeter2Info_recieveLetter(); diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index f6058a1d5d4..5869dd74ab5 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -32,11 +32,21 @@ void mDoAud_resetProcess(); bool mDoAud_resetRecover(); void mDoAud_setSceneName(char const* spot, s32 room, s32 layer); s32 mDoAud_load1stDynamicWave(); -static void mDoAud_setLinkGroupInfo(u8 param_0); -static void mDoAud_setLinkHp(s32 param_0, s32 param_1); void mDoAud_setFadeInStart(u8 param_0); void mDoAud_setFadeOutStart(u8 param_0); +inline void mDoAud_setLinkGroupInfo(u8 param_0) { + if (Z2GetLink() != NULL) { + Z2GetLink()->setLinkGroupInfo(param_0); + } +} + +inline void mDoAud_setLinkHp(s32 param_0, s32 param_1) { + if (Z2GetLink() != NULL) { + Z2GetLink()->setLinkHp(param_0, param_1); + } +} + inline void mDoAud_bgmSetSwordUsing(s32 id) { Z2AudioMgr::getInterface()->bgmSetSwordUsing(id); } diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 68c462e5c84..909f6821667 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -80,7 +80,7 @@ inline void cMtx_lookAt(Mtx param_0, const Vec* param_1, const Vec* param_2, s16 mDoMtx_lookAt(param_0, param_1, param_2, param_3); } -inline void cMtx_multVec(Mtx mtx, const Vec* src, Vec* dst) { +inline void cMtx_multVec(const Mtx mtx, const Vec* src, Vec* dst) { mDoMtx_multVec(mtx, src, dst); } diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index 051b5d1edf0..a4b41658dab 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -50,14 +50,6 @@ #include "d/actor/d_a_tag_mwait.h" #include "d/actor/d_a_canoe.h" -/* 80450FB8-80450FBC -00001 0004+00 0/0 1/1 0/0 .sbss None */ -extern u8 struct_80450FB8[4]; -u8 struct_80450FB8[4]; - -/* 80450FBC-80450FC0 -00001 0004+00 0/0 1/1 0/0 .sbss None */ -extern u8 struct_80450FBC[4]; -u8 struct_80450FBC[4]; - static fopAc_ac_c* daAlink_searchTagKandelaar(fopAc_ac_c* i_actor, void* i_data); /* 8009D87C-8009D884 0981BC 0008+00 0/0 1/1 0/0 .text getE3Zhint__9daAlink_cFv */ @@ -111,15 +103,1686 @@ static void daAlink_coHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fo static_cast(param_0)->coHitCallback(param_2, param_1); } -/* 80450FC0-80450FC4 0004C0 0004+00 1/1 0/0 0/0 .sbss it$36766 */ -static int it; +/* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */ +static cXyz l_waitBaseAnime(1.24279f, 102.00054f, 5.0f); -/* 80450FC4-80450FC8 -00001 0004+00 1/1 0/0 0/0 .sbss None */ -/* 80450FC4 0001+00 data_80450FC4 None */ -/* 80450FC5 0001+00 data_80450FC5 None */ -/* 80450FC6 0001+00 data_80450FC6 None */ -/* 80450FC7 0001+00 data_80450FC7 None */ -static u8 struct_80450FC4[4]; +/* 8042552C-80425538 05224C 000C+00 2/3 0/0 0/0 .bss l_ironBallBaseAnime */ +static cXyz l_ironBallBaseAnime(-4.248938f, 89.0f, -5.267045f); + +/* 80425544-80425550 052264 000C+00 15/17 0/0 0/0 .bss l_halfAtnWaitBaseAnime */ +static cXyz l_halfAtnWaitBaseAnime(3.5f, 97.0f, -7.0f); + +/* 8042555C-80425568 05227C 000C+00 1/2 0/0 0/0 .bss l_rWaitBaseAnime */ +static cXyz l_rWaitBaseAnime(4.313951f, 93.94436f, -5.207283f); + +/* 80425574-80425580 052294 000C+00 0/1 0/0 0/0 .bss l_lWaitBaseAnime */ +static cXyz l_lWaitBaseAnime(-4.300988f, 93.95595f, -5.218504f); + +/* 8042558C-80425598 0522AC 000C+00 3/5 0/0 0/0 .bss l_horseBaseAnime */ +static cXyz l_horseBaseAnime(-l_waitBaseAnime.x, 225.7f, 1.81f - l_waitBaseAnime.z); + +/* 804255A4-804255B0 0522C4 000C+00 3/5 0/0 0/0 .bss l_boarBaseAnime */ +static cXyz l_boarBaseAnime(-l_waitBaseAnime.x, 186.17f, -20.29f - l_waitBaseAnime.z); + +/* 804255BC-804255C8 0522DC 000C+00 1/3 0/0 0/0 .bss l_localHorseRidePos */ +static cXyz l_localHorseRidePos(-68.208984f, 41.609924f, 0.883789f); + +/* 804255D4-804255E0 0522F4 000C+00 1/3 0/0 0/0 .bss l_localBoarRidePos */ +static cXyz l_localBoarRidePos(0.0f, 15.0f, 0.0f); + +/* 804255EC-804255F8 05230C 000C+00 2/3 0/0 0/0 .bss l_canoeBaseAnime */ +static cXyz l_canoeBaseAnime(1.24279f - l_waitBaseAnime.x, 56.0f, -72.0f - l_waitBaseAnime.z); + +/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */ +static cXyz l_sumouBaseAnimeSp(0.0f, 0.0f, 32.0f - l_waitBaseAnime.z); + +/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */ +static cXyz l_wolfBaseAnime(1.0f, 88.63934f, -28.497932f); + +/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */ +static cXyz l_wolfRopeBaseAnime(0.115164f, 68.336296f, -7.667817f); + +/* 8038D658-8038D664 019CB8 000C+00 69/69 0/0 0/0 .rodata @3757 */ +static u8 const lit_3757[12] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +#include "d/actor/d_a_alink_HIO_data.inc" + +/* 8038FA10-8038FA20 01C070 0010+00 0/0 0/0 0/0 .rodata l_worldChangeEventName */ +static char const l_worldChangeEventName[16] = "WORLD_CHANGE_IN"; + +/* 8038FA20-8038FA38 01C080 0015+03 0/0 0/0 0/0 .rodata l_wolfWorldChangeEventName */ +static char const l_wolfWorldChangeEventName[21] = "WOLF_WORLD_CHANGE_IN"; + +/* 8038FA38-8038FA48 01C098 0010+00 0/1 0/0 0/0 .rodata l_defaultGetEventName */ +static char const l_defaultGetEventName[16] = "DEFAULT_GETITEM"; + +/* 803AF990-803AF99C 00CAB0 000C+00 4/4 0/0 0/0 .data cNullVec__6Z2Calc */ +static u8 cNullVec__6Z2Calc[12] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* 803AF99C-803AF9A8 00CABC 000A+02 2/2 0/0 0/0 .data l_peepEventName */ +static char l_peepEventName[10] = "PEEP_HOLE"; + +daAlink_procInitTable daAlink_c::m_procInitTable[] = { + { &daAlink_c::procPreActionUnequip, 0x21 }, + { &daAlink_c::procServiceWait, 0x10000085 }, + { &daAlink_c::procTiredWait, 0x10001185 }, + { &daAlink_c::procWait, 0x10001185 }, + { &daAlink_c::procMove, 0x10001184 }, + { &daAlink_c::procAtnMove, 0x10001184 }, + { &daAlink_c::procAtnActorWait, 0x10001185 }, + { &daAlink_c::procAtnActorMove, 0x10001184 }, + { &daAlink_c::procWaitTurn, 0x10001085 }, + { &daAlink_c::procMoveTurn, 0x10001084 }, + { &daAlink_c::procSideStep, 0x10001186 }, + { &daAlink_c::procSideStepLand, 0x10001185 }, + { &daAlink_c::procSlide, 0x0 }, + { &daAlink_c::procSlideLand, 0x4 }, + { &daAlink_c::procFrontRoll, 0x8200 }, + { &daAlink_c::procFrontRollCrash, 0x2 }, + { &daAlink_c::procFrontRollSuccess, 0x0 }, + { &daAlink_c::procSideRoll, 0x8000 }, + { &daAlink_c::procBackJump, 0x8001086 }, + { &daAlink_c::procBackJumpLand, 0x1185 }, + { &daAlink_c::procSlip, 0x0 }, + { &daAlink_c::procAutoJump, 0x1006 }, + { &daAlink_c::procDiveJump, 0x2 }, + { &daAlink_c::procRollJump, 0x2 }, + { &daAlink_c::procFall, 0x1006 }, + { &daAlink_c::procLand, 0x1005 }, + { &daAlink_c::procSmallJump, 0x1000 }, + { &daAlink_c::procStepMove, 0x10001184 }, + { &daAlink_c::procCrouch, 0x800001 }, + { &daAlink_c::procGuardSlip, 0x60000000 }, + { &daAlink_c::procGuardAttack, 0x100 }, + { &daAlink_c::procGuardBreak, 0x100 }, + { &daAlink_c::procTurnMove, 0x8000 }, + { &daAlink_c::procCutNormal, 0x20000300 }, + { &daAlink_c::procCutFinish, 0x20000320 }, + { &daAlink_c::procCutFinishJumpUp, 0x102 }, + { &daAlink_c::procCutFinishJumpUpLand, 0x100 }, + { &daAlink_c::procCutReverse, 0x200 }, + { &daAlink_c::procCutJump, 0x8000202 }, + { &daAlink_c::procCutJumpLand, 0x8000201 }, + { &daAlink_c::procCutTurn, 0x200 }, + { &daAlink_c::procCutTurnCharge, 0x101 }, + { &daAlink_c::procCutTurnMove, 0x101 }, + { &daAlink_c::procCutDown, 0x8000022 }, + { &daAlink_c::procCutDownLand, 0x8002001 }, + { &daAlink_c::procCutHead, 0x222 }, + { &daAlink_c::procCutHeadLand, 0x201 }, + { &daAlink_c::procCutLargeJumpCharge, 0x101 }, + { &daAlink_c::procCutLargeJump, 0x200 }, + { &daAlink_c::procCutLargeJumpLand, 0x201 }, + { &daAlink_c::procDamage, 0x8 }, + { &daAlink_c::procLargeDamageUp, 0xa008008 }, + { &daAlink_c::procLandDamage, 0x9 }, + { &daAlink_c::procCrawlStart, 0x300a000 }, + { &daAlink_c::procCrawlMove, 0xb00e000 }, + { &daAlink_c::procCrawlAutoMove, 0xf00a000 }, + { &daAlink_c::procCrawlEnd, 0x300a000 }, + { &daAlink_c::procPullMove, 0x202000 }, + { &daAlink_c::procHorseRide, 0x4002400 }, + { &daAlink_c::procHorseGetOff, 0x4002400 }, + { &daAlink_c::procHorseWait, 0x10003585 }, + { &daAlink_c::procHorseTurn, 0x2500 }, + { &daAlink_c::procHorseJump, 0x2502 }, + { &daAlink_c::procHorseLand, 0x2500 }, + { &daAlink_c::procHorseSubjectivity, 0x60003404 }, + { &daAlink_c::procHorseCut, 0x2500 }, + { &daAlink_c::procHorseCutChargeReady, 0x2500 }, + { &daAlink_c::procHorseCutTurn, 0x2500 }, + { &daAlink_c::procHorseDamage, 0x2408 }, + { &daAlink_c::procHorseBowSubject, 0x60003404 }, + { &daAlink_c::procHorseBowMove, 0x60003404 }, + { &daAlink_c::procHorseGrabMove, 0x3404 }, + { &daAlink_c::procHorseBoomerangSubject, 0x60003404 }, + { &daAlink_c::procHorseBoomerangMove, 0x60003404 }, + { &daAlink_c::procHorseHookshotSubject, 0x60003404 }, + { &daAlink_c::procHorseHookshotMove, 0x60003404 }, + { &daAlink_c::procHorseBottleDrink, 0x2401 }, + { &daAlink_c::procHorseComeback, 0x2409 }, + { &daAlink_c::procHorseKandelaarPour, 0x2401 }, + { &daAlink_c::procHorseRun, 0x2400 }, + { &daAlink_c::procHorseHang, 0x2400 }, + { &daAlink_c::procHorseGetKey, 0x2401 }, + { &daAlink_c::procHorseLookDown, 0x2401 }, + { &daAlink_c::procBoarRun, 0x2400 }, + { &daAlink_c::procSwordUnequipSp, 0x1 }, + { &daAlink_c::procHangStart, 0x4041 }, + { &daAlink_c::procHangFallStart, 0x4041 }, + { &daAlink_c::procHangUp, 0x4041 }, + { &daAlink_c::procHangWait, 0x4041 }, + { &daAlink_c::procHangMove, 0x4040 }, + { &daAlink_c::procHangClimb, 0x4040 }, + { &daAlink_c::procHangWallCatch, 0x4040 }, + { &daAlink_c::procHangReady, 0x1 }, + { &daAlink_c::procHangLeverDown, 0x21 }, + { &daAlink_c::procBowSubject, 0x20001005 }, + { &daAlink_c::procBowMove, 0x20001004 }, + { &daAlink_c::procBoomerangSubject, 0x30001005 }, + { &daAlink_c::procBoomerangMove, 0x30001004 }, + { &daAlink_c::procBoomerangCatch, 0x1001 }, + { &daAlink_c::procCopyRodSubject, 0x30001005 }, + { &daAlink_c::procCopyRodMove, 0x30001004 }, + { &daAlink_c::procCopyRodSwing, 0x1 }, + { &daAlink_c::procCopyRodRevive, 0x1 }, + { &daAlink_c::procLadderUpStart, 0x10000 }, + { &daAlink_c::procLadderUpEnd, 0x10000 }, + { &daAlink_c::procLadderDownStart, 0x10000 }, + { &daAlink_c::procLadderDownEnd, 0x10000 }, + { &daAlink_c::procLadderMove, 0x10000 }, + { &daAlink_c::procGrabReady, 0x100001 }, + { &daAlink_c::procGrabUp, 0x100001 }, + { &daAlink_c::procGrabMiss, 0x100001 }, + { &daAlink_c::procGrabThrow, 0x100201 }, + { &daAlink_c::procGrabPut, 0x100001 }, + { &daAlink_c::procGrabWait, 0x1105 }, + { &daAlink_c::procGrabRebound, 0x100001 }, + { &daAlink_c::procGrabStand, 0x1 }, + { &daAlink_c::procInsectCatch, 0x21 }, + { &daAlink_c::procPickUp, 0x100001 }, + { &daAlink_c::procPickPut, 0x100001 }, + { &daAlink_c::procStEscape, 0x1 }, + { &daAlink_c::procDkCaught, 0x4000000 }, + { &daAlink_c::procSwimUp, 0x40000 }, + { &daAlink_c::procSwimWait, 0x40105 }, + { &daAlink_c::procSwimMove, 0x40104 }, + { &daAlink_c::procSwimDive, 0x40000 }, + { &daAlink_c::procSwimHookshotSubject, 0x20041005 }, + { &daAlink_c::procSwimHookshotMove, 0x20041004 }, + { &daAlink_c::procSwimDamage, 0x40008 }, + { &daAlink_c::procClimbUpStart, 0x10000 }, + { &daAlink_c::procClimbDownStart, 0x10000 }, + { &daAlink_c::procClimbMoveUpDown, 0x10000 }, + { &daAlink_c::procClimbMoveSide, 0x10000 }, + { &daAlink_c::procClimbWait, 0x10000 }, + { &daAlink_c::procClimbToRoof, 0x10000 }, + { &daAlink_c::procRoofHangStart, 0x10 }, + { &daAlink_c::procRoofHangWait, 0x11 }, + { &daAlink_c::procRoofHangFrontMove, 0x10 }, + { &daAlink_c::procRoofHangSideMove, 0x10 }, + { &daAlink_c::procRoofHangTurn, 0x10 }, + { &daAlink_c::procRoofSwitchHang, 0x2030 }, + { &daAlink_c::procCanoeRide, 0x4002400 }, + { &daAlink_c::procCanoeJumpRide, 0x4002400 }, + { &daAlink_c::procCanoeGetOff, 0x4002400 }, + { &daAlink_c::procCanoeWait, 0x14003504 }, + { &daAlink_c::procCanoeRow, 0x4002504 }, + { &daAlink_c::procCanoePaddleShift, 0x4002504 }, + { &daAlink_c::procCanoePaddlePut, 0x4002400 }, + { &daAlink_c::procCanoePaddleGrab, 0x4002400 }, + { &daAlink_c::procCanoeRodGrab, 0x4002400 }, + { &daAlink_c::procCanoeFishingWait, 0x44002404 }, + { &daAlink_c::procCanoeFishingReel, 0x44002500 }, + { &daAlink_c::procCanoeFishingGet, 0x4002400 }, + { &daAlink_c::procCanoeSubjectivity, 0x64002404 }, + { &daAlink_c::procCanoeBowSubject, 0x64003404 }, + { &daAlink_c::procCanoeBowMove, 0x64003404 }, + { &daAlink_c::procCanoeGrabMove, 0x4103404 }, + { &daAlink_c::procCanoeBoomerangSubject, 0x64003404 }, + { &daAlink_c::procCanoeBoomerangMove, 0x64003404 }, + { &daAlink_c::procCanoeHookshotSubject, 0x64003404 }, + { &daAlink_c::procCanoeHookshotMove, 0x64003404 }, + { &daAlink_c::procCanoeBottleDrink, 0x2401 }, + { &daAlink_c::procCanoeKandelaarPour, 0x2401 }, + { &daAlink_c::procFishingCast, 0x2101 }, + { &daAlink_c::procFishingFood, 0x2001 }, + { &daAlink_c::procSpinnerReady, 0x2002 }, + { &daAlink_c::procSpinnerWait, 0x2500 }, + { &daAlink_c::procBoardRide, 0x22 }, + { &daAlink_c::procBoardWait, 0x10001504 }, + { &daAlink_c::procBoardRow, 0x1504 }, + { &daAlink_c::procBoardTurn, 0x1504 }, + { &daAlink_c::procBoardJump, 0x1406 }, + { &daAlink_c::procBoardSubjectivity, 0x60000404 }, + { &daAlink_c::procBoardCut, 0x504 }, + { &daAlink_c::procBoardCutTurn, 0x400 }, + { &daAlink_c::procFmChainUp, 0x101 }, + { &daAlink_c::procFmChainStrongPull, 0x1001 }, + { &daAlink_c::procDoorOpen, 0x4000 }, + { &daAlink_c::procMonkeyMove, 0x800 }, + { &daAlink_c::procDemoBoomerangCatch, 0x10000101 }, + { &daAlink_c::procBottleDrink, 0x2001 }, + { &daAlink_c::procBottleOpen, 0x2001 }, + { &daAlink_c::procBottleSwing, 0x21 }, + { &daAlink_c::procBottleGet, 0x1 }, + { &daAlink_c::procKandelaarSwing, 0x1 }, + { &daAlink_c::procKandelaarPour, 0x2001 }, + { &daAlink_c::procGrassWhistleGet, 0x21 }, + { &daAlink_c::procGrassWhistleWait, 0x2001 }, + { &daAlink_c::procHawkCatch, 0x1 }, + { &daAlink_c::procHawkSubject, 0x20000021 }, + { &daAlink_c::procFloorDownRebound, 0x10001185 }, + { &daAlink_c::procGoronRideWait, 0x101 }, + { &daAlink_c::procGoatMove, 0x4002121 }, + { &daAlink_c::procGoatCatch, 0x400a021 }, + { &daAlink_c::procGoatStroke, 0x2121 }, + { &daAlink_c::procGoronMove, 0x101 }, + { &daAlink_c::procDemoCommon, 0x1 }, + { &daAlink_c::procHookshotSubject, 0x20001005 }, + { &daAlink_c::procHookshotMove, 0x20001004 }, + { &daAlink_c::procHookshotFly, 0x6002 }, + { &daAlink_c::procHookshotRoofWait, 0x6802 }, + { &daAlink_c::procHookshotRoofShoot, 0x6902 }, + { &daAlink_c::procHookshotRoofBoots, 0x6902 }, + { &daAlink_c::procHookshotWallWait, 0x6802 }, + { &daAlink_c::procHookshotWallShoot, 0x6902 }, + { &daAlink_c::procMagneBootsFly, 0x2 }, + { &daAlink_c::procBootsEquip, 0x1103 }, + { &daAlink_c::procSumouReady, 0xa000 }, + { &daAlink_c::procSumouMove, 0xa000 }, + { &daAlink_c::procSumouSideMove, 0xa000 }, + { &daAlink_c::procSumouAction, 0xa000 }, + { &daAlink_c::procSumouStagger, 0xa000 }, + { &daAlink_c::procSumouWinLose, 0x2002 }, + { &daAlink_c::procSumouShiko, 0xa000 }, + { &daAlink_c::procLookUp, 0x101 }, + { &daAlink_c::procLookUpToGetItem, 0x101 }, + { &daAlink_c::procHandPat, 0x101 }, + { &daAlink_c::procIronBallSubject, 0x20001005 }, + { &daAlink_c::procIronBallMove, 0x20001004 }, + { &daAlink_c::procIronBallThrow, 0x20000000 }, + { &daAlink_c::procIronBallReturn, 0x1 }, + { &daAlink_c::procBossBodyHang, 0x6029 }, + { &daAlink_c::procOctaIealSpit, 0x42008 }, + { &daAlink_c::procScreamWait, 0x1 }, + { &daAlink_c::procGoatStopReady, 0x1 }, + { &daAlink_c::procZoraMove, 0xe000 }, + { &daAlink_c::procLookAroundTurn, 0x1 }, + { &daAlink_c::procTradeItemOut, 0x80121 }, + { &daAlink_c::procNotUseItem, 0x2021 }, + { &daAlink_c::procSwordReady, 0x1 }, + { &daAlink_c::procSwordPush, 0x1 }, + { &daAlink_c::procGanonFinish, 0xe000 }, + { &daAlink_c::procCutFastReady, 0x1 }, + { &daAlink_c::procMasterSwordStick, 0x6001 }, + { &daAlink_c::procMasterSwordPull, 0x6001 }, + { &daAlink_c::procDungeonWarpReady, 0x2021 }, + { &daAlink_c::procDungeonWarp, 0x6003 }, + { &daAlink_c::procDungeonWarpSceneStart, 0x6003 }, + { &daAlink_c::procWolfHowlDemo, 0x800021 }, + { &daAlink_c::procWolfServiceWait, 0x1001 }, + { &daAlink_c::procWolfTiredWait, 0x1101 }, + { &daAlink_c::procWolfMidnaRideShock, 0x1 }, + { &daAlink_c::procWolfWait, 0x1101 }, + { &daAlink_c::procWolfMove, 0x1100 }, + { &daAlink_c::procWolfDash, 0x1100 }, + { &daAlink_c::procWolfDashReverse, 0x2 }, + { &daAlink_c::procWolfWaitTurn, 0x1001 }, + { &daAlink_c::procWolfAtnActorMove, 0x1100 }, + { &daAlink_c::procWolfSideStep, 0x1102 }, + { &daAlink_c::procWolfSideStepLand, 0x1101 }, + { &daAlink_c::procWolfBackJump, 0x1002 }, + { &daAlink_c::procWolfBackJumpLand, 0x1001 }, + { &daAlink_c::procWolfHowl, 0x1 }, + { &daAlink_c::procWolfAutoJump, 0x1002 }, + { &daAlink_c::procWolfFall, 0x1002 }, + { &daAlink_c::procWolfLand, 0x1001 }, + { &daAlink_c::procWolfSit, 0x800101 }, + { &daAlink_c::procWolfLieStart, 0x1000100 }, + { &daAlink_c::procWolfLieMove, 0x1000100 }, + { &daAlink_c::procWolfLieAutoMove, 0x5002000 }, + { &daAlink_c::procWolfHangReady, 0x1001 }, + { &daAlink_c::procWolfStepMove, 0x10001100 }, + { &daAlink_c::procWolfHangWallCatch, 0x10005040 }, + { &daAlink_c::procWolfHangFallStart, 0x10005041 }, + { &daAlink_c::procWolfDamage, 0x8 }, + { &daAlink_c::procWolfLargeDamageUp, 0x12008008 }, + { &daAlink_c::procWolfLandDamage, 0x9 }, + { &daAlink_c::procWolfScreamWait, 0x1 }, + { &daAlink_c::procWolfSlip, 0x10001000 }, + { &daAlink_c::procWolfSlipTurn, 0x10001000 }, + { &daAlink_c::procWolfSlipTurnLand, 0x10001000 }, + { &daAlink_c::procWolfSlideReady, 0x10008000 }, + { &daAlink_c::procWolfSlide, 0x1000 }, + { &daAlink_c::procWolfSlideLand, 0x1000 }, + { &daAlink_c::procWolfWaitSlip, 0x1100 }, + { &daAlink_c::procWolfSlopeStart, 0x1000 }, + { &daAlink_c::procWolfRopeMove, 0x23100 }, + { &daAlink_c::procWolfRopeHang, 0x10023000 }, + { &daAlink_c::procWolfRopeTurn, 0x10023000 }, + { &daAlink_c::procWolfRopeStagger, 0x10023000 }, + { &daAlink_c::procWolfRopeSubjectivity, 0x23001 }, + { &daAlink_c::procWolfTagJump, 0x1022 }, + { &daAlink_c::procWolfTagJumpLand, 0x120 }, + { &daAlink_c::procWolfRollAttackCharge, 0x100 }, + { &daAlink_c::procWolfRollAttackMove, 0x100 }, + { &daAlink_c::procWolfJumpAttack, 0x2 }, + { &daAlink_c::procWolfJumpAttackKick, 0x2 }, + { &daAlink_c::procWolfJumpAttackSlideLand, 0x0 }, + { &daAlink_c::procWolfJumpAttackNormalLand, 0x0 }, + { &daAlink_c::procWolfWaitAttack, 0x0 }, + { &daAlink_c::procWolfRollAttack, 0x0 }, + { &daAlink_c::procWolfDownAttack, 0x22 }, + { &daAlink_c::procWolfDownAtLand, 0x8002021 }, + { &daAlink_c::procWolfDownAtMissLand, 0x0 }, + { &daAlink_c::procWolfLockAttack, 0x2002 }, + { &daAlink_c::procWolfLockAttackTurn, 0x0 }, + { &daAlink_c::procWolfSwimUp, 0x40000 }, + { &daAlink_c::procWolfSwimWait, 0x40101 }, + { &daAlink_c::procWolfSwimMove, 0x40100 }, + { &daAlink_c::procWolfSwimEndWait, 0x1001 }, + { &daAlink_c::procWolfGrabUp, 0x100001 }, + { &daAlink_c::procWolfGrabPut, 0x100001 }, + { &daAlink_c::procWolfGrabThrow, 0x100001 }, + { &daAlink_c::procWolfChainUp, 0x1 }, + { &daAlink_c::procWolfPush, 0x20 }, + { &daAlink_c::procWolfChainReady, 0x20000 }, + { &daAlink_c::procWolfChainWait, 0x10020000 }, + { &daAlink_c::procWolfDig, 0xa020 }, + { &daAlink_c::procWolfDigThrough, 0xe000 }, + { &daAlink_c::procWolfAttackReverse, 0x2 }, + { &daAlink_c::procWolfEnemyThrow, 0x0 }, + { &daAlink_c::procWolfEnemyHangBite, 0xe002 }, + { &daAlink_c::procWolfGiantPuzzle, 0x100 }, + { &daAlink_c::procWolfCargoCarry, 0x400e022 }, + { &daAlink_c::procWolfGetSmell, 0xe021 }, + { &daAlink_c::procDemoCommon, 0x1 }, + { &daAlink_c::procWolfSnowEscape, 0xa000 }, + { &daAlink_c::procWolfGanonCatch, 0x4002021 }, + { &daAlink_c::procCoToolDemo, 0x8000 }, + { &daAlink_c::procCoSubjectivity, 0x20001005 }, + { &daAlink_c::procCoSwimSubjectivity, 0x20041001 }, + { &daAlink_c::procCoPeepSubjectivity, 0x2000200b }, + { &daAlink_c::procCoPolyDamage, 0x9 }, + { &daAlink_c::procCoElecDamage, 0x9 }, + { &daAlink_c::procCoPushPullWait, 0x202001 }, + { &daAlink_c::procCoPushMove, 0x202000 }, + { &daAlink_c::procCoTalk, 0x80101 }, + { &daAlink_c::procCoOpenTreasure, 0xe001 }, + { &daAlink_c::procCoUnequip, 0x1 }, + { &daAlink_c::procCoGetItem, 0x800e001 }, + { &daAlink_c::procCoTurnBack, 0x1 }, + { &daAlink_c::procCoLookWait, 0x1101 }, + { &daAlink_c::procDemoCommon, 0x200001 }, + { &daAlink_c::procDemoCommon, 0x200000 }, + { &daAlink_c::procCoMetamorphose, 0x8001 }, + { &daAlink_c::procCoMetamorphoseOnly, 0x6001 }, + { &daAlink_c::procCoWarp, 0x1 }, + { &daAlink_c::procCoDead, 0xa009 }, + { &daAlink_c::procCoFogDead, 0xa009 }, + { &daAlink_c::procCoLookAround, 0x0 }, + { &daAlink_c::procDemoCommon, 0xe000 }, + { &daAlink_c::procCoSandWallHit, 0xa }, + { &daAlink_c::procCoLavaReturn, 0x42009 }, + { &daAlink_c::procCoSwimFreezeReturn, 0x42009 }, + { &daAlink_c::procCoGetReadySit, 0xa001 }, + { &daAlink_c::procCoTwGate, 0xe002 }, + { &daAlink_c::procCoLargeDamage, 0xa }, + { &daAlink_c::procCoLargeDamageWall, 0xa }, + { &daAlink_c::procCoNod, 0x80001 }, + { &daAlink_c::procDemoCommon, 0x80001 }, + { &daAlink_c::procCoGlare, 0x80001 }, + { &daAlink_c::procCoHorseCallWait, 0x1 }, + { &daAlink_c::procDemoCommon, 0x1 }, +}; + +/* 803B22E0-803B2754 00F400 0474+00 1/2 0/0 0/0 .data m_demoInitTable__9daAlink_c */ +daAlink_procFunc daAlink_c::m_demoInitTable[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::commonWaitTurnInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoOpenTreasureInit, + &daAlink_c::procCoGetItemInit, + &daAlink_c::procCoUnequipInit, + &daAlink_c::commonGrabPutInit, + NULL, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procMonkeyMoveInit, + &daAlink_c::procCoLookAroundInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoTurnBackInit, + NULL, + NULL, + &daAlink_c::procDemoBoomerangCatchInit, + &daAlink_c::procHawkCatchInit, + &daAlink_c::procSwordUnequipSpInit, + NULL, + &daAlink_c::procCoDemoPushPullWaitInit, + &daAlink_c::procCoDemoPushMoveInit, + &daAlink_c::procBossAtnWaitInit, + &daAlink_c::procDoorOpenInit, + NULL, + &daAlink_c::procTradeItemOutInit, + NULL, + &daAlink_c::procKandelaarSwingInit, + &daAlink_c::procFrontRollInit, + &daAlink_c::procCrouchInit, + NULL, + NULL, + NULL, + NULL, + &daAlink_c::procCoCaughtInit, + &daAlink_c::procLookUpInit, + &daAlink_c::procLookUpToGetItemInit, + &daAlink_c::procHandPatInit, + &daAlink_c::procWolfMidnaRideShockInit, + &daAlink_c::procSumouShikoInit, + &daAlink_c::procCoFogDeadInit, + &daAlink_c::procWolfSmellWaitInit, + NULL, + NULL, + &daAlink_c::procWolfCargoCarryInit, + &daAlink_c::procCoMetamorphoseInit, + &daAlink_c::procCoMetamorphoseInit, + &daAlink_c::procHorseGetKeyInit, + &daAlink_c::procCoNodInit, + &daAlink_c::procCoGlareInit, + &daAlink_c::procCoEyeAwayInit, + &daAlink_c::procGoatStopReadyInit, + &daAlink_c::procCoGetReadySitInit, + NULL, + &daAlink_c::procCoTwGateInit, + &daAlink_c::procFmChainStrongPullInit, + &daAlink_c::procWolfSnowEscapeInit, + &daAlink_c::procZoraMoveInit, + &daAlink_c::procCoMetamorphoseOnlyInit, + &daAlink_c::procCoMetamorphoseOnlyInit, + &daAlink_c::procLookAroundTurnInit, + NULL, + &daAlink_c::procCoQuakeWaitInit, + &daAlink_c::procGuardAttackInit, + &daAlink_c::procSwordReadyInit, + &daAlink_c::procDungeonWarpInit, + &daAlink_c::procDungeonWarpSceneStartInit, + &daAlink_c::procMasterSwordStickInit, + &daAlink_c::procMasterSwordPullInit, + &daAlink_c::procCutDownInit, + NULL, + &daAlink_c::procCutHeadInit, + NULL, + NULL, + &daAlink_c::procCutLargeJumpInit, + &daAlink_c::procCutFastReadyInit, + &daAlink_c::procCopyRodReviveInit, + &daAlink_c::procSwordPushInit, + &daAlink_c::procGanonFinishInit, + NULL, + NULL, + &daAlink_c::procHorseLookDownInit, + NULL, +}; + +#include "d/actor/d_a_alink_link.inc" + +/* 8038FA48-8038FA54 01C0A8 000C+00 0/0 0/0 0/0 .rodata l_crawlStartFrontOffset */ +static f32 const l_crawlStartFrontOffset[3] = {0.0f, 30.0f, 112.0f}; + +/* 8038FA54-8038FA60 01C0B4 000C+00 1/2 0/0 0/0 .rodata l_crawlFrontOffset */ +static Vec const l_crawlFrontOffset = {0.0f, 30.0f, 80.0f}; + +/* 8038FA60-8038FA6C 01C0C0 000C+00 0/1 0/0 0/0 .rodata l_crawlBackOffset */ +static Vec const l_crawlBackOffset = {0.0f, 30.0f, -30.0f}; + +/* 8038FA6C-8038FA78 01C0CC 000C+00 1/1 0/0 0/0 .rodata l_crawlTopOffset */ +static Vec const l_crawlTopOffset = {0.0f, 30.0f, 0.0f}; + +/* 8038FA78-8038FA84 01C0D8 000C+00 1/2 0/0 0/0 .rodata l_crawlFrontUpOffset */ +static Vec const l_crawlFrontUpOffset = {0.0f, 80.0f, 80.0f}; + +/* 8038FA84-8038FA90 01C0E4 000C+00 0/1 0/0 0/0 .rodata l_wolfLieFrontUpOffset */ +static Vec const l_wolfLieFrontUpOffset = {0.0f, 75.0f, 100.0f}; + +/* 8038FA90-8038FA9C 01C0F0 000C+00 1/2 0/0 0/0 .rodata l_crawlBackUpOffset */ +static Vec const l_crawlBackUpOffset = {0.0f, 80.0f, -30.0f}; + +/* 8038FA9C-8038FAA8 01C0FC 000C+00 0/1 0/0 0/0 .rodata l_wolfLieBackUpOffset */ +static Vec const l_wolfLieBackUpOffset = {0.0f, 75.0f, -70.0f}; + +/* 8038FAA8-8038FAB4 01C108 000C+00 0/1 0/0 0/0 .rodata l_crawlStandUpOffset */ +static Vec const l_crawlStandUpOffset = {0.0f, 80.0f, -30.0f}; + +/* 8038FAB4-8038FAC0 01C114 000C+00 0/1 0/0 0/0 .rodata l_wolfLieStandUpOffset */ +static Vec const l_wolfLieStandUpOffset = {0.0f, 80.0f, -70.0f}; + +/* 8038FAC0-8038FACC 01C120 000C+00 1/2 0/0 0/0 .rodata l_crawlTopUpOffset */ +static Vec const l_crawlTopUpOffset = {0.0f, 80.0f, 0.0f}; + +/* 8038FACC-8038FAD8 01C12C 000C+00 0/1 0/0 0/0 .rodata l_wolfLieTopUpOffset */ +static Vec const l_wolfLieTopUpOffset = {0.0f, 75.0f, 0.0f}; + +/* 8038FAD8-8038FAE4 01C138 000C+00 0/1 0/0 0/0 .rodata l_crawlSideOffset */ +static Vec const l_crawlSideOffset = {55.0f, 80.0f, 0.0f}; + +/* 8038FAE4-8038FAF0 01C144 000C+00 0/1 0/0 0/0 .rodata l_wolfLieSideOffset */ +static Vec const l_wolfLieSideOffset = {55.0f, 75.0f, 0.0f}; + +/* 8038FAF0-8038FAFC 01C150 000C+00 0/1 0/0 0/0 .rodata l_crawlLSideOffset */ +static Vec const l_crawlLSideOffset = {55.0f, 0.0f, 0.0f}; + +/* 8038FAFC-8038FB08 01C15C 000C+00 0/1 0/0 0/0 .rodata l_crawlRSideOffset */ +static Vec const l_crawlRSideOffset = {-55.0f, 0.0f, 0.0f}; + +/* 8038FB08-8038FB14 01C168 000C+00 0/1 0/0 0/0 .rodata l_crawlLSideFrontOffset */ +static Vec const l_crawlLSideFrontOffset = {55.0f, 5.0f, 80.0f}; + +/* 8038FB14-8038FB20 01C174 000C+00 0/1 0/0 0/0 .rodata l_crawlRSideFrontOffset */ +static Vec const l_crawlRSideFrontOffset = {-55.0f, 5.0f, 80.0f}; + +/* 8038FB20-8038FB2C 01C180 000C+00 0/2 0/0 0/0 .rodata l_crawlMinSideOffset */ +static Vec const l_crawlMinSideOffset = {35.0f, 0.0f, 0.0f}; + +/* 8038FB2C-8038FB38 01C18C 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalN */ +static Vec const l_swordTopLocalN = {100.0f, 0.0f, 0.0f}; + +/* 8038FB38-8038FB44 01C198 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalM */ +static Vec const l_swordTopLocalM = {120.0f, 0.0f, 0.0f}; + +/* 8038FB44-8038FB50 01C1A4 000C+00 1/2 0/0 0/0 .rodata l_ironBallChainVec */ +static const Vec l_ironBallChainVec = {0.0f, 0.0f, 10.0f}; + +/* 8038FB50-8038FB5C 01C1B0 000C+00 1/2 0/0 0/0 .rodata l_ironBallCenterVec */ +static Vec const l_ironBallCenterVec = {0.0f, 0.0f, 42.0f}; + +/* 8038FB5C-8038FBBC 01C1BC 0060+00 1/2 0/0 0/0 .rodata l_wolfFootOnFrame */ +static f32 const l_wolfFootOnFrame[6][4] = { + {0.0f, 16.0f, 19.0f, 6.0f}, + {10.0f, 12.0f, 7.0f, 3.0f}, + {0.0f, 20.0f, 27.0f, 8.0f}, + {17.0f, 0.0f, 24.0f, 11.0f}, + {24.0f, 32.0f, 12.0f, 26.0f}, + {56.0f, 0.0f, 44.0f, 58.0f}, +}; + +/* 8038FBBC-8038FBD4 01C21C 0018+00 1/1 0/0 0/0 .rodata l_insectNameList */ +static s16 const l_insectNameList[12] = { + PROC_Obj_Kabuto, PROC_Obj_Cho, PROC_Obj_Kuw, PROC_Obj_Batta, PROC_Obj_Nan, PROC_Obj_Dan, + PROC_Obj_Kam, PROC_Obj_Ten, PROC_Obj_Kat, PROC_Obj_Tombo, PROC_Obj_Ari, PROC_Obj_Kag, +}; + +/* 8038FBD4-8038FC24 01C234 0050+00 0/1 0/0 0/0 .rodata m_mainBckShield__9daAlink_c */ +daAlink_BckData const daAlink_c::m_mainBckShield[20] = { + {0x0025, 0x0025}, {0x0023, 0x0023}, {0x0012, 0x001B}, {0x0010, 0x001B}, {0x0021, 0x0021}, + {0x001E, 0x001E}, {0x003C, 0x003C}, {0x002C, 0x002C}, {0x003E, 0x003E}, {0x002E, 0x002E}, + {0x0030, 0x0030}, {0x0028, 0x0028}, {0x0032, 0x0032}, {0x002A, 0x002A}, {0x0274, 0x001B}, + {0x0020, 0x001B}, {0x001B, 0x001B}, {0x0026, 0x0026}, {0x0277, 0x001B}, {0x00CD, 0x001B}, +}; + +/* 8038FC24-8038FC38 01C284 0014+00 0/1 0/0 0/0 .rodata m_mainBckSword__9daAlink_c */ +daAlink_BckData const daAlink_c::m_mainBckSword[5] = { + {0x001A, 0x001A}, {0x001C, 0x001C}, {0x0277, 0x0277}, {0x00CD, 0x00CD}, {0x0243, 0x0244}, +}; + +/* 8038FC38-8038FCA8 01C298 0070+00 0/1 0/0 0/0 .rodata m_mainBckFishing__9daAlink_c */ +daAlink_BckData const daAlink_c::m_mainBckFishing[28] = { + {0x0025, 0x0273}, {0x0023, 0x00C8}, {0x0012, 0x0273}, {0x0010, 0x00C8}, {0x0021, 0x0273}, + {0x001E, 0x00C8}, {0x003C, 0x0273}, {0x002C, 0x0273}, {0x003E, 0x0273}, {0x002E, 0x0273}, + {0x0030, 0x00C8}, {0x0028, 0x00C8}, {0x0032, 0x00C8}, {0x002A, 0x00C8}, {0x0274, 0x0273}, + {0x0020, 0x0273}, {0x001A, 0x0273}, {0x001C, 0x0273}, {0x0277, 0x0273}, {0x00CD, 0x00C8}, + {0x0243, 0x0244}, {0x0233, 0x0273}, {0x0234, 0x0273}, {0x0233, 0x0273}, {0x0234, 0x0273}, + {0x026A, 0x0273}, {0x0256, 0x0273}, {0x0257, 0x0273}, +}; + +/* 8038FCA8-80391010 01C308 1368+00 3/4 0/0 0/0 .rodata m_anmDataTable__9daAlink_c */ +daAlink_AnmData const daAlink_c::m_anmDataTable[414] = { + {37, 36, 254, 254, 0, 232, 0}, + {35, 34, 254, 254, 0, 232, 0}, + {18, 18, 254, 254, 0, 232, 0}, + {16, 16, 254, 254, 0, 232, 0}, + {33, 31, 254, 254, 0, 232, 0}, + {30, 29, 254, 254, 0, 232, 0}, + {60, 59, 4, 10, 0, 232, 0}, + {44, 43, 4, 10, 0, 232, 0}, + {62, 61, 4, 10, 0, 232, 0}, + {46, 45, 4, 10, 0, 232, 0}, + {48, 47, 4, 10, 0, 232, 0}, + {40, 39, 4, 10, 0, 232, 0}, + {50, 49, 4, 10, 0, 232, 0}, + {42, 41, 4, 10, 0, 232, 0}, + {628, 628, 254, 254, 0, 232, 0}, + {32, 26, 254, 254, 0, 0, 0}, + {26, 14, 254, 254, 0, 232, 0}, + {28, 14, 254, 254, 0, 232, 0}, + {631, 631, 4, 10, 0, 0, 0}, + {205, 197, 4, 10, 0, 232, 0}, + {579, 579, 254, 254, 0, 345, 0}, + {563, 563, 4, 10, 0, 0, 0}, + {564, 564, 4, 10, 0, 0, 0}, + {563, 604, 4, 10, 0, 0, 0}, + {564, 604, 4, 10, 0, 0, 0}, + {618, 618, 4, 10, 0, 0, 0}, + {598, 598, 1, 6, 0, 232, 0}, + {599, 599, 1, 6, 0, 351, 0}, + {198, 198, 1, 6, 0, 232, 0}, + {54, 54, 254, 254, 0, 328, 0}, + {56, 56, 254, 254, 0, 328, 0}, + {53, 53, 1, 6, 0, 232, 0}, + {55, 55, 1, 6, 0, 232, 0}, + {52, 52, 254, 254, 0, 328, 0}, + {51, 51, 1, 6, 0, 232, 0}, + {519, 519, 254, 254, 0, 328, 0}, + {521, 521, 254, 254, 0, 223, 0}, + {520, 520, 1, 6, 38, 335, 0}, + {518, 518, 4, 10, 0, 328, 0}, + {517, 517, 4, 10, 0, 232, 0}, + {559, 559, 254, 254, 0, 232, 0}, + {123, 123, 254, 254, 0, 0, 0}, + {126, 126, 254, 6, 0, 232, 0}, + {19, 19, 254, 6, 0, 232, 0}, + {21, 21, 254, 6, 0, 232, 0}, + {124, 124, 254, 6, 0, 232, 0}, + {23, 23, 254, 6, 0, 232, 0}, + {24, 24, 254, 6, 0, 232, 0}, + {20, 20, 1, 6, 125, 233, 0}, + {421, 421, 254, 254, 0, 327, 0}, + {419, 419, 254, 254, 0, 327, 0}, + {420, 420, 254, 254, 0, 223, 0}, + {436, 436, 254, 254, 0, 223, 0}, + {437, 437, 254, 254, 0, 223, 0}, + {617, 617, 254, 254, 0, 223, 0}, + {503, 503, 254, 254, 10, 333, 0}, + {502, 502, 254, 254, 4, 232, 0}, + {501, 501, 254, 254, 4, 232, 0}, + {500, 500, 0, 5, 11, 332, 0}, + {499, 499, 254, 254, 0, 232, 0}, + {498, 498, 0, 5, 0, 232, 0}, + {510, 510, 254, 254, 0, 223, 0}, + {511, 511, 254, 254, 0, 223, 0}, + {509, 509, 254, 254, 0, 223, 0}, + {225, 225, 4, 10, 0, 223, 0}, + {226, 226, 4, 10, 0, 223, 0}, + {565, 565, 4, 5, 0, 232, 0}, + {566, 566, 4, 5, 0, 232, 0}, + {562, 562, 4, 5, 0, 232, 0}, + {418, 418, 4, 5, 0, 232, 0}, + {416, 416, 4, 5, 0, 232, 0}, + {417, 417, 4, 5, 0, 232, 0}, + {614, 614, 4, 5, 0, 0, 0}, + {629, 629, 4, 5, 0, 0, 0}, + {630, 630, 4, 5, 0, 0, 0}, + {202, 202, 4, 5, 0, 232, 0}, + {203, 203, 4, 5, 0, 232, 0}, + {781, 614, 4, 5, 0, 0, 0}, + {221, 221, 4, 5, 0, 258, 0}, + {435, 435, 4, 5, 0, 261, 0}, + {149, 149, 100, 5, 36, 272, 0}, + {568, 568, 4, 5, 55, 338, 0}, + {569, 569, 4, 5, 56, 0, 0}, + {214, 214, 4, 10, 88, 300, 0}, + {587, 587, 4, 5, 37, 0, 0}, + {613, 613, 4, 5, 0, 232, 0}, + {560, 560, 4, 5, 109, 336, 0}, + {561, 561, 4, 5, 109, 336, 0}, + {373, 373, 4, 5, 110, 321, 0}, + {374, 374, 4, 5, 110, 321, 0}, + {588, 588, 4, 5, 114, 0, 0}, + {589, 589, 4, 5, 115, 0, 0}, + {512, 512, 254, 254, 0, 223, 0}, + {513, 513, 254, 254, 0, 223, 0}, + {227, 227, 4, 10, 0, 223, 0}, + {228, 228, 4, 10, 0, 223, 0}, + {624, 624, 254, 254, 16, 357, 0}, + {623, 623, 4, 5, 17, 356, 0}, + {127, 127, 100, 6, 46, 259, 0}, + {153, 153, 0, 6, 47, 275, 0}, + {154, 154, 0, 6, 48, 276, 0}, + {143, 143, 100, 6, 49, 267, 0}, + {144, 144, 100, 6, 49, 267, 0}, + {132, 132, 100, 6, 50, 262, 0}, + {133, 133, 100, 6, 51, 263, 0}, + {134, 134, 100, 5, 0, 261, 0}, + {138, 138, 0, 5, 0, 223, 0}, + {137, 137, 100, 5, 0, 223, 0}, + {139, 139, 100, 5, 52, 264, 0}, + {136, 136, 0, 5, 0, 223, 0}, + {135, 135, 100, 5, 0, 223, 0}, + {155, 155, 0, 6, 89, 277, 0}, + {156, 156, 0, 6, 89, 277, 0}, + {152, 152, 100, 6, 60, 274, 0}, + {151, 151, 100, 6, 61, 273, 0}, + {159, 159, 100, 6, 58, 280, 0}, + {158, 158, 100, 6, 59, 279, 0}, + {164, 164, 0, 6, 0, 232, 0}, + {165, 165, 100, 6, 0, 232, 0}, + {166, 166, 100, 6, 0, 232, 0}, + {170, 170, 0, 5, 0, 261, 0}, + {167, 167, 0, 5, 90, 285, 0}, + {168, 168, 0, 5, 0, 286, 0}, + {169, 169, 100, 5, 18, 287, 0}, + {142, 142, 0, 6, 127, 266, 0}, + {140, 140, 0, 6, 128, 265, 0}, + {141, 141, 0, 6, 0, 232, 0}, + {174, 174, 1, 6, 39, 234, 0}, + {172, 172, 1, 6, 39, 234, 0}, + {189, 189, 1, 6, 39, 234, 0}, + {190, 190, 1, 6, 39, 234, 0}, + {178, 178, 254, 254, 40, 248, 0}, + {175, 175, 254, 254, 40, 248, 0}, + {180, 180, 254, 254, 40, 248, 0}, + {182, 182, 254, 254, 40, 248, 0}, + {179, 179, 254, 254, 42, 292, 0}, + {176, 176, 254, 254, 43, 290, 0}, + {181, 181, 254, 254, 44, 293, 0}, + {183, 183, 254, 254, 44, 293, 0}, + {171, 171, 1, 6, 39, 234, 0}, + {431, 431, 1, 6, 39, 234, 0}, + {432, 432, 254, 254, 0, 223, 0}, + {324, 324, 0, 6, 6, 305, 0}, + {325, 325, 0, 10, 7, 306, 0}, + {567, 567, 4, 10, 28, 337, 0}, + {591, 591, 254, 254, 0, 223, 0}, + {592, 592, 254, 254, 0, 223, 0}, + {593, 593, 254, 254, 0, 223, 0}, + {594, 594, 254, 254, 0, 223, 0}, + {372, 372, 254, 254, 0, 223, 0}, + {378, 378, 254, 254, 0, 223, 0}, + {376, 376, 254, 254, 0, 223, 0}, + {377, 377, 254, 254, 0, 223, 0}, + {430, 430, 254, 254, 0, 223, 0}, + {428, 428, 254, 254, 0, 223, 0}, + {429, 429, 254, 254, 0, 223, 0}, + {425, 425, 254, 254, 0, 223, 0}, + {423, 423, 254, 254, 0, 223, 0}, + {424, 424, 254, 254, 0, 223, 0}, + {427, 427, 254, 254, 0, 223, 0}, + {426, 426, 254, 254, 0, 223, 0}, + {106, 106, 3, 9, 0, 232, 0}, + {112, 112, 3, 9, 0, 232, 0}, + {108, 108, 3, 9, 0, 232, 0}, + {109, 109, 3, 9, 0, 232, 0}, + {110, 110, 3, 9, 0, 232, 0}, + {111, 111, 3, 9, 0, 232, 0}, + {107, 107, 3, 9, 92, 254, 0}, + {527, 527, 3, 9, 0, 232, 0}, + {528, 528, 3, 9, 0, 232, 0}, + {522, 522, 3, 9, 0, 232, 0}, + {524, 524, 3, 9, 0, 232, 0}, + {525, 525, 3, 9, 0, 232, 0}, + {526, 526, 3, 9, 0, 232, 0}, + {523, 523, 3, 9, 0, 232, 0}, + {366, 366, 254, 254, 24, 313, 0}, + {369, 369, 254, 254, 25, 316, 0}, + {368, 368, 254, 254, 0, 315, 0}, + {379, 379, 254, 254, 26, 322, 0}, + {365, 365, 254, 254, 27, 312, 0}, + {367, 367, 254, 254, 0, 314, 0}, + {95, 95, 254, 254, 0, 223, 0}, + {604, 604, 4, 10, 1, 352, 0}, + {596, 596, 4, 10, 1, 349, 0}, + {585, 585, 4, 10, 0, 223, 0}, + {620, 620, 1, 6, 12, 355, 0}, + {157, 157, 1, 6, 13, 278, 0}, + {82, 82, 254, 254, 0, 232, 0}, + {632, 632, 1, 6, 0, 223, 0}, + {557, 557, 254, 254, 0, 223, 0}, + {555, 555, 254, 254, 0, 223, 0}, + {558, 558, 254, 254, 0, 223, 0}, + {556, 556, 254, 254, 0, 223, 0}, + {574, 574, 254, 254, 21, 342, 0}, + {578, 578, 254, 254, 22, 344, 0}, + {57, 57, 254, 254, 0, 232, 0}, + {58, 58, 254, 254, 0, 232, 0}, + {17, 17, 254, 254, 0, 232, 0}, + {570, 570, 254, 254, 3, 232, 0}, + {573, 573, 254, 254, 23, 341, 0}, + {577, 577, 254, 254, 0, 232, 0}, + {576, 576, 254, 254, 0, 232, 0}, + {193, 193, 1, 6, 39, 234, 0}, + {192, 192, 1, 6, 39, 234, 0}, + {194, 194, 1, 6, 39, 234, 0}, + {195, 195, 1, 6, 39, 234, 0}, + {196, 196, 1, 6, 39, 234, 0}, + {87, 87, 254, 254, 77, 247, 0}, + {86, 86, 254, 254, 78, 246, 0}, + {85, 85, 254, 254, 79, 245, 0}, + {361, 361, 254, 254, 0, 308, 0}, + {362, 362, 254, 254, 0, 310, 0}, + {362, 618, 254, 254, 0, 307, 0}, + {362, 381, 254, 254, 0, 307, 0}, + {586, 586, 4, 10, 41, 346, 0}, + {595, 595, 254, 254, 0, 348, 0}, + {619, 619, 254, 254, 0, 223, 0}, + {603, 602, 254, 5, 0, 223, 0}, + {603, 603, 0, 254, 0, 223, 0}, + {619, 533, 254, 5, 0, 223, 0}, + {619, 534, 0, 254, 0, 223, 0}, + {619, 531, 254, 5, 0, 223, 0}, + {619, 532, 0, 254, 0, 223, 0}, + {619, 103, 254, 5, 0, 223, 0}, + {90, 90, 2, 254, 0, 304, 0}, + {91, 91, 2, 254, 0, 304, 0}, + {92, 92, 2, 254, 0, 223, 0}, + {94, 94, 2, 5, 120, 249, 0}, + {491, 491, 254, 254, 0, 223, 0}, + {506, 506, 2, 5, 0, 223, 0}, + {508, 508, 2, 5, 0, 223, 0}, + {434, 434, 2, 5, 0, 223, 0}, + {217, 217, 4, 10, 30, 301, 0}, + {218, 218, 4, 10, 31, 302, 0}, + {215, 215, 3, 10, 0, 223, 0}, + {216, 216, 3, 10, 0, 223, 0}, + {219, 219, 254, 254, 0, 223, 0}, + {220, 220, 254, 254, 0, 223, 0}, + {492, 492, 254, 254, 29, 223, 0}, + {529, 529, 1, 6, 0, 223, 0}, + {484, 484, 1, 6, 0, 223, 0}, + {485, 485, 1, 6, 0, 223, 0}, + {552, 552, 254, 254, 0, 223, 0}, + {544, 544, 254, 254, 0, 223, 0}, + {543, 543, 254, 254, 0, 223, 0}, + {549, 549, 254, 254, 0, 223, 0}, + {547, 547, 254, 254, 0, 223, 0}, + {545, 545, 254, 254, 0, 223, 0}, + {546, 546, 254, 254, 0, 223, 0}, + {548, 548, 254, 254, 0, 223, 0}, + {551, 551, 100, 254, 0, 223, 0}, + {550, 550, 100, 254, 0, 223, 0}, + {530, 530, 254, 254, 0, 223, 0}, + {102, 102, 254, 254, 53, 252, 0}, + {105, 105, 254, 254, 54, 253, 0}, + {625, 625, 4, 10, 0, 358, 0}, + {72, 72, 3, 254, 62, 238, 0}, + {70, 70, 3, 254, 63, 236, 0}, + {71, 71, 3, 254, 64, 237, 0}, + {69, 69, 3, 254, 65, 235, 0}, + {75, 75, 3, 254, 66, 241, 0}, + {76, 76, 3, 5, 67, 242, 0}, + {73, 73, 3, 5, 68, 239, 0}, + {78, 78, 3, 254, 69, 243, 0}, + {79, 79, 3, 254, 70, 244, 0}, + {74, 74, 3, 254, 71, 240, 0}, + {77, 77, 3, 254, 0, 223, 0}, + {438, 438, 0, 10, 0, 223, 0}, + {495, 495, 0, 9, 0, 223, 0}, + {493, 493, 0, 9, 0, 223, 0}, + {494, 494, 0, 9, 0, 223, 0}, + {371, 371, 2, 254, 74, 319, 0}, + {370, 370, 2, 254, 76, 318, 0}, + {97, 97, 2, 254, 75, 251, 0}, + {621, 621, 2, 254, 75, 251, 0}, + {605, 605, 1, 6, 14, 355, 0}, + {610, 610, 1, 6, 15, 353, 0}, + {483, 483, 254, 254, 0, 223, 0}, + {212, 212, 4, 10, 80, 298, 0}, + {213, 213, 4, 10, 81, 299, 0}, + {571, 571, 254, 254, 82, 339, 0}, + {572, 572, 254, 254, 83, 340, 0}, + {114, 114, 3, 9, 0, 255, 0}, + {116, 116, 3, 9, 85, 256, 0}, + {115, 115, 3, 9, 0, 232, 0}, + {113, 113, 3, 9, 0, 232, 0}, + {117, 117, 3, 9, 0, 232, 0}, + {119, 119, 3, 9, 86, 257, 0}, + {120, 120, 3, 9, 87, 257, 0}, + {28, 121, 3, 9, 0, 232, 0}, + {122, 122, 3, 9, 0, 232, 0}, + {118, 118, 254, 254, 0, 304, 0}, + {222, 222, 4, 10, 84, 303, 0}, + {224, 224, 254, 254, 40, 248, 0}, + {8, 8, 0, 5, 0, 232, 0}, + {554, 554, 254, 254, 0, 223, 0}, + {553, 553, 254, 254, 0, 223, 0}, + {394, 394, 1, 6, 0, 232, 0}, + {395, 395, 1, 6, 0, 232, 0}, + {396, 396, 254, 254, 0, 232, 0}, + {384, 384, 1, 6, 0, 232, 0}, + {385, 385, 1, 6, 0, 232, 0}, + {386, 386, 1, 6, 0, 232, 0}, + {388, 388, 1, 6, 0, 232, 0}, + {392, 392, 1, 6, 0, 232, 0}, + {393, 393, 1, 6, 0, 232, 0}, + {390, 390, 1, 6, 0, 232, 0}, + {391, 391, 1, 6, 0, 232, 0}, + {387, 387, 1, 6, 0, 232, 0}, + {389, 389, 1, 6, 0, 232, 0}, + {398, 398, 1, 6, 0, 232, 0}, + {399, 399, 1, 6, 0, 232, 0}, + {400, 400, 1, 6, 0, 232, 0}, + {401, 401, 1, 6, 0, 232, 0}, + {404, 404, 1, 6, 0, 232, 0}, + {405, 405, 1, 6, 0, 232, 0}, + {402, 402, 1, 6, 0, 232, 0}, + {403, 403, 1, 6, 0, 232, 0}, + {504, 504, 254, 254, 0, 334, 0}, + {4142, 4142, 0, 5, 0, 223, 0}, + {4141, 4141, 0, 5, 0, 223, 0}, + {4106, 4106, 254, 254, 0, 223, 0}, + {4104, 4104, 254, 254, 0, 223, 0}, + {4105, 4105, 254, 254, 0, 223, 0}, + {4103, 4103, 254, 254, 0, 223, 0}, + {4129, 4129, 254, 254, 0, 223, 0}, + {4131, 4131, 254, 254, 0, 223, 0}, + {4130, 4130, 254, 254, 0, 223, 0}, + {4132, 4132, 254, 254, 0, 223, 0}, + {4133, 4133, 254, 254, 94, 4113, 0}, + {4136, 4136, 254, 254, 0, 223, 0}, + {4137, 4137, 254, 254, 0, 223, 0}, + {4134, 4134, 254, 254, 95, 4114, 0}, + {4135, 4135, 254, 254, 95, 4114, 0}, + {4138, 4138, 254, 254, 99, 4115, 0}, + {4121, 4121, 254, 254, 0, 223, 0}, + {4123, 4123, 254, 254, 97, 4110, 0}, + {4124, 4124, 254, 254, 98, 4111, 0}, + {4122, 4122, 254, 254, 96, 4109, 0}, + {4128, 4128, 254, 254, 95, 4114, 0}, + {4125, 4125, 254, 254, 101, 4112, 0}, + {4119, 4119, 254, 254, 100, 4108, 0}, + {4120, 4120, 254, 254, 100, 4108, 0}, + {4139, 4139, 254, 254, 0, 223, 0}, + {4140, 4140, 254, 254, 0, 223, 0}, + {4117, 4117, 254, 254, 102, 4107, 0}, + {4118, 4118, 254, 254, 102, 4107, 0}, + {4102, 4102, 254, 254, 0, 223, 0}, + {4116, 4116, 254, 254, 0, 223, 0}, + {4126, 4126, 0, 5, 0, 223, 0}, + {4127, 4127, 254, 254, 0, 223, 0}, + {177, 177, 254, 254, 93, 291, 0}, + {412, 412, 254, 5, 0, 232, 0}, + {413, 413, 254, 5, 0, 232, 0}, + {406, 406, 0, 5, 0, 232, 0}, + {411, 411, 0, 5, 0, 232, 0}, + {410, 410, 0, 5, 0, 232, 0}, + {409, 409, 0, 5, 0, 232, 0}, + {407, 407, 254, 5, 0, 232, 0}, + {408, 408, 254, 5, 0, 232, 0}, + {8204, 8204, 3, 9, 0, 232, 0}, + {8205, 8205, 3, 9, 0, 232, 0}, + {8206, 8206, 3, 9, 0, 232, 0}, + {8207, 8207, 100, 254, 0, 232, 0}, + {8201, 8201, 100, 9, 103, 232, 0}, + {8202, 8202, 100, 9, 104, 232, 0}, + {8203, 8203, 100, 10, 105, 8200, 0}, + {8208, 8208, 0, 5, 0, 223, 0}, + {20493, 20493, 1, 6, 0, 232, 0}, + {20494, 20494, 1, 6, 0, 232, 0}, + {20490, 20490, 3, 9, 0, 232, 0}, + {20491, 20491, 3, 9, 0, 232, 0}, + {20492, 20492, 100, 254, 0, 232, 0}, + {20487, 20487, 100, 9, 106, 232, 0}, + {20488, 20488, 100, 9, 107, 232, 0}, + {20489, 20489, 100, 10, 108, 20495, 0}, + {515, 515, 2, 5, 111, 232, 0}, + {516, 516, 2, 5, 112, 232, 0}, + {363, 363, 2, 10, 113, 309, 0}, + {606, 606, 3, 9, 39, 234, 0}, + {486, 486, 3, 9, 40, 248, 0}, + {487, 487, 3, 9, 40, 248, 0}, + {422, 422, 4, 5, 116, 330, 0}, + {614, 362, 254, 254, 0, 310, 0}, + {12292, 12292, 1, 6, 0, 12291, 0}, + {101, 101, 254, 254, 0, 223, 0}, + {98, 98, 3, 9, 0, 232, 0}, + {100, 100, 3, 9, 0, 232, 0}, + {99, 99, 3, 9, 0, 232, 0}, + {615, 615, 4, 10, 121, 354, 0}, + {208, 208, 4, 10, 126, 295, 0}, + {375, 375, 254, 254, 0, 223, 0}, + {633, 633, 4, 10, 0, 359, 0}, + {634, 634, 4, 10, 0, 307, 0}, + {207, 207, 0, 6, 0, 232, 0}, + {162, 162, 100, 6, 129, 283, 0}, + {163, 163, 100, 6, 129, 232, 0}, + {160, 160, 100, 6, 131, 281, 0}, + {161, 161, 100, 6, 132, 282, 0}, + {24587, 24587, 0, 10, 133, 24585, 0}, + {24588, 24588, 0, 5, 0, 232, 0}, + {24586, 24586, 100, 5, 0, 24584, 0}, + {28682, 28682, 0, 6, 0, 232, 0}, + {28683, 28683, 0, 6, 0, 232, 0}, + {28684, 28684, 0, 6, 0, 232, 0}, + {28686, 28686, 0, 6, 0, 232, 0}, + {28685, 28685, 0, 6, 0, 232, 0}, + {28680, 28680, 0, 5, 134, 28688, 0}, + {28681, 28681, 0, 5, 0, 28689, 0}, + {614, 28687, 4, 5, 135, 28690, 0}, + {415, 415, 254, 254, 0, 223, 0}, + {414, 414, 254, 254, 0, 223, 0}, + {490, 490, 254, 254, 136, 331, 0}, + {11, 11, 254, 254, 137, 231, 0}, +}; + +/* 80391010-803914A8 -00001 0498+00 4/4 0/0 0/0 .rodata m_wlAnmDataTable__9daAlink_c */ +daAlink_WlAnmData const daAlink_c::m_wlAnmDataTable[147] = { + {767, 0, 1, 2600, 255, 255}, {778, 0, 2, 270, 255, 255}, + {779, 0, 2, 270, 255, 255}, {692, 0, 12, 65535, 255, 255}, + {716, 1, 12, 65535, 255, 255}, {714, 1, 12, 65535, 255, 255}, + {715, 1, 12, 65535, 255, 255}, {773, 0, 1, 4095, 255, 255}, + {736, 0, 7, 767, 255, 255}, {735, 0, 7, 1568, 255, 255}, + {734, 0, 12, 65535, 255, 255}, {745, 1, 0, 2047, 255, 255}, + {724, 1, 12, 65535, 255, 255}, {725, 2, 12, 65535, 255, 255}, + {774, 1, 0, 511, 255, 255}, {666, 1, 7, 2559, 255, 255}, + {766, 1, 5, 2559, 255, 255}, {668, 1, 5, 1023, 255, 255}, + {667, 1, 12, 65535, 255, 255}, {765, 1, 6, 6655, 255, 255}, + {764, 1, 12, 65535, 255, 255}, {763, 0, 8, 1023, 255, 255}, + {679, 0, 12, 65535, 255, 255}, {771, 0, 3, 2590, 50, 255}, + {768, 0, 3, 1791, 255, 255}, {706, 1, 5, 1791, 255, 255}, + {750, 1, 12, 65535, 255, 255}, {762, 1, 12, 65535, 255, 255}, + {638, 0, 12, 65535, 255, 255}, {780, 1, 2, 274, 255, 255}, + {746, 1, 12, 65535, 255, 255}, {747, 1, 12, 65535, 255, 255}, + {748, 2, 12, 65535, 255, 255}, {743, 0, 2, 270, 255, 255}, + {739, 1, 5, 5375, 255, 255}, {740, 1, 5, 6911, 255, 255}, + {742, 0, 12, 65535, 255, 255}, {744, 8, 1, 6450, 255, 255}, + {741, 9, 2, 270, 30, 45}, {693, 1, 12, 65535, 255, 255}, + {684, 2, 12, 65535, 255, 255}, {682, 2, 12, 65535, 255, 255}, + {686, 2, 12, 65535, 255, 255}, {688, 2, 12, 65535, 255, 255}, + {685, 2, 10, 8447, 255, 255}, {683, 2, 11, 5375, 255, 255}, + {687, 2, 12, 65535, 255, 255}, {689, 2, 12, 65535, 255, 255}, + {752, 0, 12, 65535, 255, 255}, {770, 0, 1, 2600, 255, 255}, + {719, 0, 12, 65535, 255, 255}, {720, 0, 12, 65535, 255, 255}, + {717, 0, 12, 65535, 255, 255}, {718, 0, 12, 65535, 255, 255}, + {759, 1, 12, 65535, 255, 255}, {760, 0, 1, 3583, 255, 255}, + {758, 0, 2, 511, 255, 255}, {755, 0, 4, 1023, 255, 255}, + {753, 1, 12, 65535, 255, 255}, {775, 0, 12, 65535, 255, 255}, + {681, 1, 12, 65535, 255, 255}, {680, 1, 12, 65535, 255, 255}, + {690, 1, 12, 65535, 255, 255}, {691, 1, 12, 65535, 255, 255}, + {653, 1, 12, 65535, 255, 255}, {654, 1, 12, 65535, 255, 255}, + {655, 0, 12, 65535, 255, 255}, {656, 1, 12, 65535, 255, 255}, + {639, 0, 12, 65535, 255, 255}, {641, 0, 12, 65535, 255, 255}, + {640, 0, 12, 65535, 255, 255}, {730, 0, 12, 65535, 255, 255}, + {645, 1, 12, 65535, 255, 255}, {644, 1, 12, 65535, 255, 255}, + {647, 1, 12, 65535, 255, 255}, {646, 1, 12, 65535, 255, 255}, + {643, 1, 12, 65535, 255, 255}, {642, 1, 12, 65535, 255, 255}, + {731, 0, 12, 65535, 255, 255}, {732, 0, 9, 2047, 255, 255}, + {652, 1, 12, 65535, 255, 255}, {648, 1, 12, 65535, 255, 255}, + {649, 1, 12, 65535, 255, 255}, {651, 1, 12, 65535, 255, 255}, + {650, 1, 12, 65535, 255, 255}, {661, 2, 12, 65535, 255, 255}, + {660, 2, 12, 65535, 255, 255}, {707, 1, 12, 65535, 255, 255}, + {709, 1, 12, 65535, 255, 255}, {708, 1, 12, 65535, 255, 255}, + {676, 0, 12, 65535, 255, 255}, {678, 0, 12, 65535, 255, 255}, + {710, 0, 12, 65535, 255, 255}, {711, 1, 12, 65535, 255, 255}, + {712, 1, 12, 65535, 255, 255}, {713, 0, 1, 7935, 255, 255}, + {722, 1, 12, 65535, 255, 255}, {723, 1, 10, 1279, 255, 255}, + {665, 0, 12, 65535, 255, 255}, {662, 1, 12, 65535, 255, 255}, + {663, 1, 12, 65535, 255, 255}, {664, 1, 11, 10495, 255, 255}, + {738, 1, 12, 65535, 255, 255}, {737, 1, 12, 65535, 255, 255}, + {697, 0, 11, 16895, 255, 255}, {698, 13, 12, 65535, 255, 255}, + {761, 0, 5, 14662, 85, 255}, {749, 1, 6, 511, 255, 255}, + {721, 1, 12, 65535, 255, 255}, {733, 0, 12, 65535, 255, 255}, + {677, 0, 12, 65535, 255, 255}, {674, 0, 12, 65535, 255, 255}, + {675, 0, 12, 65535, 255, 255}, {776, 1, 12, 65535, 255, 255}, + {751, 0, 12, 65535, 255, 255}, {694, 2, 4, 511, 255, 255}, + {659, 1, 12, 65535, 255, 255}, {657, 1, 12, 65535, 255, 255}, + {700, 0, 12, 65535, 255, 255}, {703, 0, 12, 65535, 255, 255}, + {670, 2, 12, 65535, 255, 255}, {669, 2, 12, 65535, 255, 255}, + {658, 1, 5, 4351, 255, 255}, {696, 6, 12, 65535, 255, 255}, + {756, 7, 12, 65535, 255, 255}, {757, 7, 12, 65535, 255, 255}, + {772, 2, 12, 65535, 255, 255}, {769, 0, 1, 4095, 255, 255}, + {754, 0, 1, 3885, 255, 255}, {727, 0, 12, 65535, 255, 255}, + {699, 3, 12, 65535, 255, 255}, {705, 1, 12, 65535, 255, 255}, + {704, 1, 0, 1535, 255, 255}, {777, 0, 1, 511, 255, 255}, + {671, 5, 12, 65535, 255, 255}, {728, 0, 12, 65535, 255, 255}, + {729, 2, 12, 65535, 255, 255}, {16387, 0, 12, 65535, 255, 255}, + {672, 0, 12, 65535, 255, 255}, {673, 0, 12, 65535, 255, 255}, + {726, 1, 0, 5178, 255, 255}, {32808, 10, 12, 65535, 255, 255}, + {32807, 10, 12, 65535, 255, 255}, {32810, 11, 12, 65535, 255, 255}, + {32809, 11, 12, 65535, 255, 255}, {32812, 12, 12, 65535, 255, 255}, + {32811, 12, 12, 65535, 255, 255}, +}; + +/* 803914A8-80391734 01DB08 028C+00 2/2 0/0 0/0 .rodata m_faceTexDataTable__9daAlink_c */ +daAlink_FaceTexData const daAlink_c::m_faceTexDataTable[] = { + 0x03DF, 0x0379, 0x03E0, 0x037A, 0x03E1, 0x037B, 0x03DF, 0x0378, 0x03DF, 0x0383, 0x03E2, 0x032C, + 0x03C6, 0x036A, 0x03D5, 0x036B, 0x03B0, 0x032D, 0x03B1, 0x032E, 0x03E6, 0x0382, 0x03E5, 0x0381, + 0x03F2, 0x0398, 0x03C3, 0x0353, 0x03AF, 0x0398, 0x03F0, 0x0396, 0x03F4, 0x032C, 0x03F3, 0x032C, + 0x03C5, 0x035C, 0x03AF, 0x0342, 0x03AF, 0x0343, 0x03EE, 0x038E, 0x03EF, 0x038F, 0x03ED, 0x038D, + 0x03D8, 0x036E, 0x03D9, 0x036F, 0x03DB, 0x0373, 0x03D7, 0x036D, 0x03E9, 0x0388, 0x03E4, 0x037D, + 0x03D1, 0x0367, 0x03D2, 0x0368, 0x03AF, 0x034A, 0x03AF, 0x034B, 0x03AF, 0x034C, 0x03AF, 0x034D, + 0x03AF, 0x034E, 0x03AF, 0x0391, 0x03E7, 0x0386, 0x03B4, 0x032C, 0x03BC, 0x032C, 0x03AF, 0x0390, + 0x03C9, 0x035E, 0x03C7, 0x035D, 0x03CA, 0x035F, 0x03AF, 0x0395, 0x03AF, 0x0341, 0x03AF, 0x0351, + 0x03AF, 0x0352, 0x03AF, 0x0349, 0x03AF, 0x0344, 0x03AF, 0x0345, 0x03AF, 0x0346, 0x03BD, 0x032C, + 0x03BE, 0x032C, 0x03EA, 0x0389, 0x03AF, 0x038A, 0x03CB, 0x032C, 0x03AF, 0x0355, 0x03AF, 0x0354, + 0x03AF, 0x0350, 0x03AF, 0x034F, 0x03B8, 0x0334, 0x03B6, 0x0332, 0x03B7, 0x0333, 0x03B5, 0x0331, + 0x03AF, 0x0336, 0x03AF, 0x0337, 0x03B9, 0x032C, 0x03AF, 0x0338, 0x03AF, 0x0339, 0x03AF, 0x0335, + 0x03DC, 0x0335, 0x03DE, 0x0335, 0x03DA, 0x0370, 0x03AF, 0x033E, 0x03D3, 0x032C, 0x03BB, 0x033C, + 0x03AF, 0x033B, 0x03BA, 0x033A, 0x03CE, 0x0364, 0x03CF, 0x0365, 0x03EB, 0x038B, 0x03EC, 0x038C, + 0x03D4, 0x0369, 0x03C0, 0x032C, 0x03C1, 0x033F, 0x03C1, 0x0340, 0x03D0, 0x0366, 0x03C2, 0x032C, + 0x03AF, 0x035A, 0x03C4, 0x035B, 0x03BF, 0x032C, 0x03C8, 0x032C, 0x1045, 0x103B, 0x1046, 0x032C, + 0x1041, 0x1037, 0x1042, 0x1038, 0x1043, 0x1039, 0x1047, 0x103C, 0x1040, 0x1036, 0x1044, 0x103A, + 0x103F, 0x032C, 0x03AF, 0x2032, 0x03AF, 0x2033, 0x2039, 0x2034, 0x03AF, 0x5054, 0x03AF, 0x5055, + 0x5059, 0x5056, 0x03E8, 0x0387, 0x03AF, 0x0372, 0x03AF, 0x0384, 0x03AF, 0x0385, 0x03D6, 0x036C, + 0x03AF, 0x0392, 0x03AF, 0x0393, 0x03AF, 0x0377, 0x03AF, 0x0361, 0x03AF, 0x0362, 0x03CD, 0x0363, + 0x03AF, 0x033D, 0x03F1, 0x0397, 0x03DC, 0x032C, 0x03DD, 0x032C, 0x03DE, 0x032C, 0x03B3, 0x0330, + 0x03CC, 0x0360, 0x03AF, 0x0348, 0x03AF, 0x0347, 0x03AF, 0x0358, 0x03AF, 0x0359, 0x03AF, 0x0356, + 0x03AF, 0x0357, 0x6018, 0x6015, 0x03AF, 0x7070, 0x03AF, 0x7071, 0x03E3, 0x037C, 0x03B2, 0x032F, + 0x03AF, 0x0394, 0x0417, 0x03A9, 0x0418, 0x03AA, 0x041A, 0x03A7, 0x041E, 0x03A7, 0x041B, 0x03A7, + 0x040E, 0x03A7, 0x040C, 0x03A7, 0x040F, 0x03A7, 0x0410, 0x03A7, 0x0420, 0x03A7, 0x0415, 0x03A7, + 0x0416, 0x03A7, 0x040B, 0x03A7, 0x0411, 0x03A7, 0x041F, 0x03A7, 0x040A, 0x03A7, 0x0409, 0x03A7, + 0x0412, 0x03A7, 0x041C, 0x03A7, 0x041D, 0x03A7, 0x0419, 0x03AB, 0x0413, 0x03A8, 0x0414, 0x03A7, + 0x040D, 0x03A7, +}; + +#include "d/actor/d_a_alink_cut.inc" + +#include "d/actor/d_a_alink_damage.inc" + +#include "d/actor/d_a_alink_guard.inc" + +#include "d/actor/d_a_alink_bow.inc" + +#include "d/actor/d_a_alink_boom.inc" + +#include "d/actor/d_a_alink_copyrod.inc" + +#include "d/actor/d_a_alink_hvyboots.inc" + +#include "d/actor/d_a_alink_bomb.inc" + +/* 80450690-80450694 000110 0004+00 20/20 0/0 0/0 .sdata l_autoUpHeight */ +static f32 l_autoUpHeight = 30.010000228881836f; + +/* 80450694-80450698 000114 0004+00 12/12 0/0 0/0 .sdata l_autoDownHeight */ +static f32 l_autoDownHeight = -30.010000228881836f; + +#include "d/actor/d_a_alink_grab.inc" + +#include "d/actor/d_a_alink_sumou.inc" + +#include "d/actor/d_a_alink_horse.inc" + +#include "d/actor/d_a_alink_canoe.inc" + +#include "d/actor/d_a_alink_crawl.inc" + +/* 80450698-8045069C 000118 0004+00 4/4 0/0 0/0 .sdata l_ladderAnmBaseTransY */ +static f32 l_ladderAnmBaseTransY = 102.00054168701172f; + +#include "d/actor/d_a_alink_hang.inc" + +#include "d/actor/d_a_alink_swim.inc" + +#include "d/actor/d_a_alink_iceleaf.inc" + +#include "d/actor/d_a_alink_hook.inc" + +#include "d/actor/d_a_alink_spinner.inc" + +#include "d/actor/d_a_alink_bottle.inc" + +#include "d/actor/d_a_alink_kandelaar.inc" + +#include "d/actor/d_a_alink_whistle.inc" + +/* 803B2754-803B2798 00F874 0044+00 0/1 0/0 0/0 .data l_cylSrc */ +static dCcD_SrcCyl l_cylSrc = { + { + {0, {{AT_TYPE_WOLF_ATTACK, 3, 0x1A}, {0xD8FFFDFF, 5}, 0x73}}, + {dCcD_SE_WOLF_BITE, 3, 1, 0, {1}}, + {dCcD_SE_NONE, 6, 0, 0, {0}}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 35.0f, + 180.0f, + }, +}; + +/* 803B2798-803B27D8 00F8B8 0040+00 1/2 0/0 0/0 .data l_sphSrc */ +static dCcD_SrcSph l_sphSrc = { + { + {0, {{AT_TYPE_NORMAL_SWORD, 3, 0x1A}, {0xD8FBFDFF, 5}, 0x73}}, + {dCcD_SE_SWORD, 3, 1, 0, {1}}, + {dCcD_SE_NONE, 6, 0, 0, {0}}, + {0}, + }, + {{ + {0.0f, 0.0f, 0.0f}, + 40.0f, + }}, +}; + +/* 803B27D8-803B281C 00F8F8 0044+00 0/1 0/0 0/0 .data l_atCylSrc */ +static dCcD_SrcCyl l_atCylSrc = { + { + {0, {{AT_TYPE_NORMAL_SWORD, 2, 0x1B}, {0, 0}, 0}}, + {dCcD_SE_SWORD, 3, 1, 0, {1}}, + {dCcD_SE_NONE, 0, 0, 0, {0}}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 180.0f, + 130.0f, + }, +}; + +/* 803B281C-803B2868 00F93C 004C+00 0/1 0/0 0/0 .data l_atCpsSrc */ +static dCcD_SrcCps l_atCpsSrc = { + { + {0, {{AT_TYPE_NORMAL_SWORD, 1, 0x1B}, {0, 0}, 0}}, + {dCcD_SE_SWORD, 1, 0, 0, {1}}, + {dCcD_SE_NONE, 0, 0, 0, {0}}, + {0}, + }, + {{ + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + 20.0f, + }}, +}; + +/* 803B2868-803B2880 00F988 0018+00 1/0 0/0 0/0 .data l_jntColPos0 */ +static Vec l_jntColPos0[] = { + {0.0f, 0.0f, 0.0f}, + {44.0f, 0.0f, 0.0f} +}; + +/* 803B2880-803B288C 00F9A0 000C+00 1/0 0/0 0/0 .data l_jntColPos1 */ +static Vec l_jntColPos1 = { + 0.0f, -10.0f, 0.0f +}; + +/* 803B288C-803B28A4 00F9AC 0018+00 1/0 0/0 0/0 .data l_jntColPos2 */ +static Vec l_jntColPos2[] = { + {-5.0f, 0.0f, 0.0f}, + {28.0f, 0.0f, 0.0f} +}; + +/* 803B28A4-803B28BC 00F9C4 0018+00 1/0 0/0 0/0 .data l_jntColPos4 */ +static Vec l_jntColPos4[] = { + {-4.0f, 0.0f, 0.0f}, + {28.0f, 0.0f, 0.0f} +}; + +/* 803B28BC-803B28C8 00F9DC 000C+00 1/0 0/0 0/0 .data l_jntColPos6 */ +static Vec l_jntColPos6 = { 8.0f, 0.0f, 0.0f }; + +/* 803B28C8-803B28E0 00F9E8 0018+00 1/0 0/0 0/0 .data l_jntColPos8 */ +static Vec l_jntColPos8[] = { + {0.0f, 0.0f, 0.0f}, + {38.0f, 0.0f, 0.0f} +}; + +/* 803B28E0-803B28F8 00FA00 0018+00 1/0 0/0 0/0 .data l_jntColPos9 */ +static Vec l_jntColPos9[] = { + {0.0f, -5.0f, 0.0f}, + {35.0f, 0.0f, 0.0f} +}; + +/* 803B28F8-803B2910 00FA18 0018+00 1/0 0/0 0/0 .data l_jntColPos10 */ +static Vec l_jntColPos10[] = { + {0.0f, 5.0f, 0.0f}, + {35.0f, 0.0f, 0.0f} +}; + +/* 803B2910-803B2928 00FA30 0018+00 1/0 0/0 0/0 .data l_jntColPos11 */ +static Vec l_jntColPos11[] = { + {0.0f, 0.0f, 0.0f}, + {48.0f, 2.0f, 0.0f} +}; + +/* 803B2928-803B2940 00FA48 0018+00 1/0 0/0 0/0 .data l_jntColPos12 */ +static Vec l_jntColPos12[] = { + {0.0f, 0.0f, 0.0f}, + {48.0f, -2.0f, 0.0f} +}; + +/* 803B2940-803B2958 00FA60 0018+00 1/0 0/0 0/0 .data l_jntColPos13 */ +static Vec l_jntColPos13[] = { + {0.0f, 5.0f, 0.0f}, + {22.0f, 0.0f, 0.0f} +}; + +/* 803B2958-803B2970 00FA78 0018+00 1/0 0/0 0/0 .data l_jntColPos14 */ +static Vec l_jntColPos14[] = { + {0.0f, -5.0f, 0.0f}, + {22.0f, 0.0f, 0.0f} +}; + +/* 803B2970-803B2988 00FA90 0018+00 1/0 0/0 0/0 .data l_jntColPos15 */ +static Vec l_jntColPos15[] = { + {-15.0f, 0.0f, 17.0f}, + {0.0f, 0.0f, 1.0f} +}; + +/* 803B2988-803B29A0 00FAA8 0018+00 1/0 0/0 0/0 .data l_jntColPos16 */ +static Vec l_jntColPos16[] = { + {13.0f, 13.0f, -8.0f}, + {0.0f, 1.0f, 0.0f} +}; + +/* 803B29A0-803B29AC 00FAC0 000C+00 1/0 0/0 0/0 .data l_jntColPos17 */ +static Vec l_jntColPos17 = { + -15.0f, -10.0f, -30.0f +}; + +/* 803B29AC-803B2A84 -00001 00D8+00 1/1 0/0 0/0 .data l_jntColData */ +static dJntColData_c l_jntColData[] = { + { + 1, + 0, + 1, + 18.0f, + l_jntColPos0, + }, + { + 0, + 0, + 4, + 16.0f, + &l_jntColPos1, + }, + { + 1, + 0, + 7, + 7.0f, + l_jntColPos2, + }, + { + 1, + 0, + 12, + 7.0f, + l_jntColPos2, + }, + { + 1, + 0, + 8, + 6.0f, + l_jntColPos4, + }, + { + 1, + 0, + 13, + 6.0f, + l_jntColPos4, + }, + { + 0, + 0, + 9, + 6.0f, + &l_jntColPos6, + }, + { + 0, + 0, + 14, + 6.0f, + &l_jntColPos6, + }, + { + 1, + 0, + 16, + 18.0f, + l_jntColPos8, + }, + { + 1, + 0, + 18, + 8.0f, + l_jntColPos9, + }, + { + 1, + 0, + 23, + 8.0f, + l_jntColPos10, + }, + { + 1, + 0, + 19, + 7.0f, + l_jntColPos11, + }, + { + 1, + 0, + 24, + 7.0f, + l_jntColPos12, + }, + { + 1, + 0, + 20, + 6.0f, + l_jntColPos13, + }, + { + 1, + 0, + 25, + 6.0f, + l_jntColPos14, + }, + { + 2, + 3, + 15, + 40.0f, + l_jntColPos15, + }, + { + 2, + 3, + 5, + 40.0f, + l_jntColPos16, + }, + { + 0, + 3, + 15, + 45.0f, + &l_jntColPos17, + }, +}; + +/* 803B2A84-803B2A9C 00FBA4 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos0 */ +static Vec l_wolfJntColPos0[] = { + {-25.0f, 20.0f, 0.0f}, + {80.0f, 0.0f, 0.0f} +}; + +/* 803B2A9C-803B2AA8 00FBBC 000C+00 1/0 0/0 0/0 .data l_wolfJntColPos1 */ +static Vec l_wolfJntColPos1 = { + 5.0f, 3.0f, 0.0f +}; + +/* 803B2AA8-803B2AC0 00FBC8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos2 */ +static Vec l_wolfJntColPos2[] = { + {0.0f, 0.0f, 0.0f}, + {35.0f, 3.0f, 0.0f} +}; + +/* 803B2AC0-803B2AD8 00FBE0 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos4 */ +static Vec l_wolfJntColPos4[] = { + {0.0f, 2.0f, 0.0f}, + {30.0f, 0.0f, 0.0f} +}; + +/* 803B2AD8-803B2AF0 00FBF8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos6 */ +static Vec l_wolfJntColPos6[] = { + {0.0f, 0.0f, 0.0f}, + {20.0f, 0.0f, 0.0f} +}; + +/* 803B2AF0-803B2B08 00FC10 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos8 */ +static Vec l_wolfJntColPos8[] = { + {0.0f, -2.0f, 0.0f}, + {12.0f, -2.0f, 0.0f} +}; + +/* 803B2B08-803B2B20 00FC28 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos10 */ +static Vec l_wolfJntColPos10[] = { + {0.0f, 0.0f, 0.0f}, + {33.0f, -2.0f, 0.0f} +}; + +/* 803B2B20-803B2B38 00FC40 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos12 */ +static Vec l_wolfJntColPos12[] = { + {-5.0f, -2.0f, 0.0f}, + {15.0f, 0.0f, 0.0f} +}; + +/* 803B2B38-803B2B50 00FC58 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos14 */ +static Vec l_wolfJntColPos14[] = { + {-4.0f, 0.0f, 0.0f}, + {33.0f, 0.0f, 0.0f} +}; + +/* 803B2B50-803B2B68 00FC70 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos16 */ +static Vec l_wolfJntColPos16[] = { + {0.0f, -3.0f, 0.0f}, + {13.0f, -3.0f, 0.0f} +}; + +/* 803B2B68-803B2C40 -00001 00D8+00 1/1 0/0 0/0 .data l_wolfJntColData */ +static dJntColData_c l_wolfJntColData[] = { + { + 1, + 0, + 1, + 28.0f, + l_wolfJntColPos0, + }, + { + 0, + 0, + 4, + 25.0f, + &l_wolfJntColPos1, + }, + { + 1, + 0, + 16, + 10.0f, + l_wolfJntColPos2, + }, + { + 1, + 0, + 21, + 10.0f, + l_wolfJntColPos2, + }, + { + 1, + 0, + 17, + 6.0f, + l_wolfJntColPos4, + }, + { + 1, + 0, + 22, + 6.0f, + l_wolfJntColPos4, + }, + { + 1, + 0, + 18, + 4.0f, + l_wolfJntColPos6, + }, + { + 1, + 0, + 23, + 4.0f, + l_wolfJntColPos6, + }, + { + 1, + 0, + 19, + 4.0f, + l_wolfJntColPos8, + }, + { + 1, + 0, + 24, + 4.0f, + l_wolfJntColPos8, + }, + { + 1, + 0, + 28, + 11.0f, + l_wolfJntColPos10, + }, + { + 1, + 0, + 33, + 11.0f, + l_wolfJntColPos10, + }, + { + 1, + 0, + 29, + 7.0f, + l_wolfJntColPos12, + }, + { + 1, + 0, + 34, + 7.0f, + l_wolfJntColPos12, + }, + { + 1, + 0, + 30, + 5.0f, + l_wolfJntColPos14, + }, + { + 1, + 0, + 35, + 5.0f, + l_wolfJntColPos14, + }, + { + 1, + 0, + 31, + 6.0f, + l_wolfJntColPos16, + }, + { + 1, + 0, + 36, + 5.0f, + l_wolfJntColPos16, + }, +}; + +#include "d/actor/d_a_alink_ironball.inc" + +#include "d/actor/d_a_alink_demo.inc" + +#include "d/actor/d_a_alink_effect.inc" + +#include "d/actor/d_a_alink_wolf.inc" + +#include "d/actor/d_a_alink_swindow.inc" + +#include "d/actor/d_a_alink_HIO.inc" /* 80450FC8-80450FCC -00001 0004+00 5/5 0/0 0/0 .sbss None */ /* 80450FC8 0001+00 data_80450FC8 None */ @@ -128,11 +1791,6 @@ bool daAlink_matAnm_c::m_eye_move_flg; /* 80450FC9 0003+00 data_80450FC9 None */ u8 daAlink_matAnm_c::m_morf_frame; -// temporary for literal matching -bool daAlink_c::checkWindSpeedOnXZ() const { - return field_0x35b8.abs2XZ() > 1.0f; -} - /* 8009D8E4-8009D90C 098224 0028+00 2/2 0/0 0/0 .text init__16daAlink_matAnm_cFv */ void daAlink_matAnm_c::init() { field_0xf4 = 0.0f; @@ -593,11 +2251,6 @@ static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1) { return 1; } -/* 80452CF8-80452D00 0012F8 0008+00 84/84 0/0 0/0 .sdata2 @6848 */ -static const u8 lit_6848[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - /* 8009ECA0-8009EF38 0995E0 0298+00 1/1 0/0 0/0 .text headModelCallBack__9daAlink_cFi */ int daAlink_c::headModelCallBack(int param_0) { if (mpDemoHDTmpBck == NULL || !mpDemoHDTmpBck->getBckAnm() || (checkEndResetFlg1(ERFLG1_UNK_400000) && param_0 < 6)) { @@ -681,166 +2334,6 @@ static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1) { return 1; } -/* 80452F38-80452F3C -00001 0004+00 1/1 0/0 0/0 .sdata2 None */ -static const u8 data_80452F38 = 1; - -static const u8 data_80452F39 = 4; - -/* 80452FA8-80452FB0 0015A8 0008+00 1/1 0/0 0/0 .sdata2 offsetAngle$25945 */ -static const s16 offsetAngle[] = { - 0x0000, - 0x8000, - 0x4000, - 0xC000, -}; - -/* 80453020-80453024 001620 0004+00 1/1 0/0 0/0 .sdata2 grassWhistleIdx$33097 */ -static const u16 grassWhistleIdx[2] = { - 3, - 3, -}; - -/* 80453094-8045309C 001694 0006+02 1/1 0/0 0/0 .sdata2 effName$40765 */ -static const u16 effName_40765[] = { - 0x0407, - 0x0408, - 0x0409, -}; - -/* 8045309C-804530A4 00169C 0006+02 1/1 0/0 0/0 .sdata2 effName0$40950 */ -static const u16 effName0[] = { - 0x867D, - 0x867E, - 0x867F, -}; - -/* 804530A4-804530AC 0016A4 0006+02 1/1 0/0 0/0 .sdata2 effName1$40951 */ -static const u16 effName1[] = { - 0x8981, - 0x8982, - 0x8983, -}; - -/* 804530AC-804530B0 0016AC 0004+00 1/1 0/0 0/0 .sdata2 effNameNormal$41086 */ -static const u16 effNameNormal[] = { - 0x0159, - 0x015A, -}; - -/* 804530B0-804530B8 0016B0 0008+00 1/1 0/0 0/0 .sdata2 effNameLight$41091 */ -static const u16 effNameLight[] = { - 0x0A28, 0x0A29, 0x0A2A, 0x0A2B, -}; - -/* 804530B8-804530BC 0016B8 0004+00 1/1 0/0 0/0 .sdata2 effNameWater$41101 */ -static const u16 effNameWater[] = { - 0x0C52, - 0x0C53, -}; - -/* 804530C0-804530C8 0016C0 0008+00 1/1 0/0 0/0 .sdata2 jointID$41285 */ -static const u16 jointID[] = { - 0x0014, 0x0013, 0x0018, 0x0019, -}; - -/* 804530C8-804530D0 0016C8 0008+00 1/1 0/0 0/0 .sdata2 effName$41286 */ -static const u16 effName_41286[] = { - 0x88E1, 0x88E2, 0x88E3, 0x88E4, -}; - -/* 804530D0-804530D8 0016D0 0006+02 1/1 0/0 0/0 .sdata2 effName$41312 */ -static const u16 effName_41312[] = { - 0x0A58, - 0x0A59, - 0x0B9D, -}; - -/* 804530D8-804530E0 0016D8 0006+02 1/1 0/0 0/0 .sdata2 name0$41422 */ -static const u16 name0[] = { - 0x02A3, - 0x83A2, - 0x884F, -}; - -/* 804530E0-804530E8 0016E0 0006+02 1/1 0/0 0/0 .sdata2 name1$41423 */ -static const u16 name1[] = { - 0x02A3, - 0x83A3, - 0x8850, -}; - -/* 804530E8-804530F0 0016E8 0006+02 1/1 0/0 0/0 .sdata2 effID$41443 */ -static const u16 effID[] = { - 0x0244, - 0x0245, - 0x0246, -}; - -/* 804530F0-804530F4 0016F0 0004+00 1/1 0/0 0/0 .sdata2 normalNameID$41521 */ -static const u16 normalNameID[] = { - 0x8390, - 0x8391, -}; - -/* 804530F4-804530F8 0016F4 0004+00 1/1 0/0 0/0 .sdata2 ganonNameID$41522 */ -static const u16 ganonNameID[] = { - 0x8C2A, - 0x8C2B, -}; - -/* 804530F8-80453100 0016F8 0008+00 1/1 0/0 0/0 .sdata2 effDataTable$41650 */ -static const u16 effDataTable[] = { - 0x02A5, 0x02A6, 0x02A7, 0x02A8, -}; - -/* 80453104-8045310C 001704 0008+00 1/1 0/0 0/0 .sdata2 cutSplashName$41756 */ -static const u16 cutSplashName[] = { - 0x01B8, 0x01B9, 0x01BA, 0x01BB, -}; - -/* 8045310C-80453110 00170C 0004+00 1/1 0/0 0/0 .sdata2 effName$42224 */ -static const u16 effName_42224[] = { - 0x8818, - 0x8819, -}; - -/* 80453110-80453114 001710 0004+00 1/1 0/0 0/0 .sdata2 effName$42309 */ -static const u16 effName_42309[] = { - 0x0814, - 0x0815, -}; - -/* 80453114-80453118 001714 0004+00 1/1 0/0 0/0 .sdata2 effName$42340 */ -static const u16 effName_42340[] = { - 0x0816, - 0x0817, -}; - -/* 8045314C-80453150 00174C 0004+00 1/1 0/0 0/0 .sdata2 fFootJoint$44785 */ -static const u16 fFootJoint[] = { - 0x0010, - 0x0015, -}; - -/* 80453150-80453154 001750 0004+00 1/1 0/0 0/0 .sdata2 bFootJoint$44786 */ -static const u16 bFootJoint[] = { - 0x001C, - 0x0021, -}; - -/* 804531D8-804531E0 0017D8 0008+00 1/1 0/0 0/0 .sdata2 snowID$53110 */ -static const u16 snowID[] = { - 0x884D, 0x884E, 0x8851, 0x8852, -}; - -/* 804531E0-804531E8 0017E0 0008+00 1/1 0/0 0/0 .sdata2 smokeID$53111 */ -static const u16 smokeID[] = { - 0x83A0, 0x83A1, 0x83A4, 0x83A5, -}; - -/* 804531E8-804531F0 0017E8 0008+00 1/1 0/0 0/0 .sdata2 waterColor$53845 */ -static const GXColorS10 waterColor = {0, 0, 0, 0}; - /* 8009F034-8009FFF8 099974 0FC4+00 1/1 0/0 0/0 .text setHatAngle__9daAlink_cFv */ void daAlink_c::setHatAngle() { if (field_0x2060->getOldFrameFlg()) { @@ -1187,14 +2680,6 @@ void daAlink_c::setLookPosFromOut(cXyz* p_pos) { mLookPosFromOut = *p_pos; } -/* 8038D658-8038D664 019CB8 000C+00 69/69 0/0 0/0 .rodata @3757 */ -SECTION_RODATA static u8 const lit_3757[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8038D658, &lit_3757); - -#include "d/actor/d_a_alink_HIO_data.inc" - /* 800A07D8-800A0868 09B118 0090+00 2/2 0/0 0/0 .text checkAttentionPosAngle__9daAlink_cFP4cXyz */ bool daAlink_c::checkAttentionPosAngle(cXyz* param_0) { if (checkNoResetFlg1(FLG1_UNK_4)) { @@ -1794,7 +3279,7 @@ void daAlink_c::setMoveSlantAngle() { var_r27 = var_r28 + 0x800; } - var_r29 = -3.9f * var_r27; + var_r29 = -3.8999999f * var_r27; } else { var_r29 = 0; } @@ -1856,1610 +3341,12 @@ void daAlink_c::setMoveSlantAngle() { } } -/* 8038FA10-8038FA20 01C070 0010+00 0/0 0/0 0/0 .rodata l_worldChangeEventName */ -#pragma push -#pragma force_active on -SECTION_RODATA static char const l_worldChangeEventName[16] = "WORLD_CHANGE_IN"; -COMPILER_STRIP_GATE(0x8038FA10, &l_worldChangeEventName); -#pragma pop - -/* 8038FA20-8038FA38 01C080 0015+03 0/0 0/0 0/0 .rodata l_wolfWorldChangeEventName */ -#pragma push -#pragma force_active on -SECTION_RODATA static char const l_wolfWorldChangeEventName[24] = "WOLF_WORLD_CHANGE_IN"; -COMPILER_STRIP_GATE(0x8038FA20, &l_wolfWorldChangeEventName); -#pragma pop - -/* 8038FA38-8038FA48 01C098 0010+00 0/1 0/0 0/0 .rodata l_defaultGetEventName */ -#pragma push -#pragma force_active on -SECTION_RODATA static char const l_defaultGetEventName[16] = "DEFAULT_GETITEM"; -COMPILER_STRIP_GATE(0x8038FA38, &l_defaultGetEventName); -#pragma pop - -/* 8038FA48-8038FA54 01C0A8 000C+00 0/0 0/0 0/0 .rodata l_crawlStartFrontOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static float const l_crawlStartFrontOffset[3] = {0.0f, 30.0f, 112.0f}; -COMPILER_STRIP_GATE(0x8038FA48, &l_crawlStartFrontOffset); -#pragma pop - -/* 8038FA54-8038FA60 01C0B4 000C+00 1/2 0/0 0/0 .rodata l_crawlFrontOffset */ -SECTION_RODATA static Vec const l_crawlFrontOffset = {0.0f, 30.0f, 80.0f}; -COMPILER_STRIP_GATE(0x8038FA54, &l_crawlFrontOffset); - -/* 8038FA60-8038FA6C 01C0C0 000C+00 0/1 0/0 0/0 .rodata l_crawlBackOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlBackOffset = { - 0.0f, 30.0f, -30.0f -}; -COMPILER_STRIP_GATE(0x8038FA60, &l_crawlBackOffset); -#pragma pop - -/* 8038FA6C-8038FA78 01C0CC 000C+00 1/1 0/0 0/0 .rodata l_crawlTopOffset */ -SECTION_RODATA static Vec const l_crawlTopOffset = {0.0f, 30.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FA6C, &l_crawlTopOffset); - -/* 8038FA78-8038FA84 01C0D8 000C+00 1/2 0/0 0/0 .rodata l_crawlFrontUpOffset */ -SECTION_RODATA static Vec const l_crawlFrontUpOffset = { - 0.0f, 80.0f, 80.0f -}; -COMPILER_STRIP_GATE(0x8038FA78, &l_crawlFrontUpOffset); - -/* 8038FA84-8038FA90 01C0E4 000C+00 0/1 0/0 0/0 .rodata l_wolfLieFrontUpOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_wolfLieFrontUpOffset = { - 0.0f, 75.0f, 100.0f -}; -COMPILER_STRIP_GATE(0x8038FA84, &l_wolfLieFrontUpOffset); -#pragma pop - -/* 8038FA90-8038FA9C 01C0F0 000C+00 1/2 0/0 0/0 .rodata l_crawlBackUpOffset */ -SECTION_RODATA static Vec const l_crawlBackUpOffset = { - 0.0f, 80.0f, -30.0f -}; -COMPILER_STRIP_GATE(0x8038FA90, &l_crawlBackUpOffset); - -/* 8038FA9C-8038FAA8 01C0FC 000C+00 0/1 0/0 0/0 .rodata l_wolfLieBackUpOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_wolfLieBackUpOffset = { - 0.0f, 70.0f, -70.0f -}; -COMPILER_STRIP_GATE(0x8038FA9C, &l_wolfLieBackUpOffset); -#pragma pop - -/* 8038FAA8-8038FAB4 01C108 000C+00 0/1 0/0 0/0 .rodata l_crawlStandUpOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlStandUpOffset = { - 0.0f, 80.0f, -30.0f -}; -COMPILER_STRIP_GATE(0x8038FAA8, &l_crawlStandUpOffset); -#pragma pop - -/* 8038FAB4-8038FAC0 01C114 000C+00 0/1 0/0 0/0 .rodata l_wolfLieStandUpOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_wolfLieStandUpOffset = { - 0.0f, 80.0f, -70.0f -}; -COMPILER_STRIP_GATE(0x8038FAB4, &l_wolfLieStandUpOffset); -#pragma pop - -/* 8038FAC0-8038FACC 01C120 000C+00 1/2 0/0 0/0 .rodata l_crawlTopUpOffset */ -SECTION_RODATA static Vec const l_crawlTopUpOffset = {0.0f, 80.0f, 0.0f}; -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 Vec const l_wolfLieTopUpOffset = {0.0f, 75.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FACC, &l_wolfLieTopUpOffset); -#pragma pop - -/* 8038FAD8-8038FAE4 01C138 000C+00 0/1 0/0 0/0 .rodata l_crawlSideOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlSideOffset = {55.0f, 80.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FAD8, &l_crawlSideOffset); -#pragma pop - -/* 8038FAE4-8038FAF0 01C144 000C+00 0/1 0/0 0/0 .rodata l_wolfLieSideOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_wolfLieSideOffset = {55.0f, 75.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FAE4, &l_wolfLieSideOffset); -#pragma pop - -/* 8038FAF0-8038FAFC 01C150 000C+00 0/1 0/0 0/0 .rodata l_crawlLSideOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlLSideOffset = {55.0f, 0.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FAF0, &l_crawlLSideOffset); -#pragma pop - -/* 8038FAFC-8038FB08 01C15C 000C+00 0/1 0/0 0/0 .rodata l_crawlRSideOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlRSideOffset = {-55.0f, 0.0f, 0.0f}; -COMPILER_STRIP_GATE(0x8038FAFC, &l_crawlRSideOffset); -#pragma pop - -/* 8038FB08-8038FB14 01C168 000C+00 0/1 0/0 0/0 .rodata l_crawlLSideFrontOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlLSideFrontOffset = {55.0f, 5.0f, 80.0f}; -COMPILER_STRIP_GATE(0x8038FB08, &l_crawlLSideFrontOffset); -#pragma pop - -/* 8038FB14-8038FB20 01C174 000C+00 0/1 0/0 0/0 .rodata l_crawlRSideFrontOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlRSideFrontOffset = {-55.0f, 5.0f, 80.0f}; -COMPILER_STRIP_GATE(0x8038FB14, &l_crawlRSideFrontOffset); -#pragma pop - -/* 8038FB20-8038FB2C 01C180 000C+00 0/2 0/0 0/0 .rodata l_crawlMinSideOffset */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_crawlMinSideOffset = { - 35.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x8038FB20, &l_crawlMinSideOffset); -#pragma pop - -/* 8038FB2C-8038FB38 01C18C 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalN */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_swordTopLocalN = { - 100.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x8038FB2C, &l_swordTopLocalN); -#pragma pop - -/* 8038FB38-8038FB44 01C198 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalM */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const l_swordTopLocalM = { - 120.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x8038FB38, &l_swordTopLocalM); -#pragma pop - -/* 8038FB44-8038FB50 01C1A4 000C+00 1/2 0/0 0/0 .rodata l_ironBallChainVec */ -static const Vec l_ironBallChainVec = { - 0.0f, 0.0f, 10.0f -}; - -/* 8038FB50-8038FB5C 01C1B0 000C+00 1/2 0/0 0/0 .rodata l_ironBallCenterVec */ -SECTION_RODATA static Vec const l_ironBallCenterVec = { - 0.0f, - 0.0f, - 42.0f, -}; -COMPILER_STRIP_GATE(0x8038FB50, &l_ironBallCenterVec); - -/* 8038FB5C-8038FBBC 01C1BC 0060+00 1/2 0/0 0/0 .rodata l_wolfFootOnFrame */ -SECTION_RODATA static f32 const l_wolfFootOnFrame[6][4] = { - {0.0f, 16.0f, 19.0f, 6.0f}, - {10.0f, 12.0f, 7.0f, 3.0f}, - {0.0f, 20.0f, 27.0f, 8.0f}, - {17.0f, 0.0f, 24.0f, 11.0f}, - {24.0f, 32.0f, 12.0f, 26.0f}, - {56.0f, 0.0f, 44.0f, 58.0f}, -}; -COMPILER_STRIP_GATE(0x8038FB5C, &l_wolfFootOnFrame); - -/* 8038FBBC-8038FBD4 01C21C 0018+00 1/1 0/0 0/0 .rodata l_insectNameList */ -SECTION_RODATA static s16 const l_insectNameList[12] = { - PROC_Obj_Kabuto, PROC_Obj_Cho, PROC_Obj_Kuw, PROC_Obj_Batta, PROC_Obj_Nan, PROC_Obj_Dan, - PROC_Obj_Kam, PROC_Obj_Ten, PROC_Obj_Kat, PROC_Obj_Tombo, PROC_Obj_Ari, PROC_Obj_Kag, -}; -COMPILER_STRIP_GATE(0x8038FBBC, &l_insectNameList); - -/* 8038FBD4-8038FC24 01C234 0050+00 0/1 0/0 0/0 .rodata m_mainBckShield__9daAlink_c */ -#pragma push -#pragma force_active on -SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckShield[20] = { - {0x0025, 0x0025}, {0x0023, 0x0023}, {0x0012, 0x001B}, {0x0010, 0x001B}, {0x0021, 0x0021}, - {0x001E, 0x001E}, {0x003C, 0x003C}, {0x002C, 0x002C}, {0x003E, 0x003E}, {0x002E, 0x002E}, - {0x0030, 0x0030}, {0x0028, 0x0028}, {0x0032, 0x0032}, {0x002A, 0x002A}, {0x0274, 0x001B}, - {0x0020, 0x001B}, {0x001B, 0x001B}, {0x0026, 0x0026}, {0x0277, 0x001B}, {0x00CD, 0x001B}, -}; -COMPILER_STRIP_GATE(0x8038FBD4, &daAlink_c::m_mainBckShield); -#pragma pop - -/* 8038FC24-8038FC38 01C284 0014+00 0/1 0/0 0/0 .rodata m_mainBckSword__9daAlink_c */ -#pragma push -#pragma force_active on -SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckSword[5] = { - {0x001A, 0x001A}, {0x001C, 0x001C}, {0x0277, 0x0277}, {0x00CD, 0x00CD}, {0x0243, 0x0244}, -}; -COMPILER_STRIP_GATE(0x8038FC24, &daAlink_c::m_mainBckSword); -#pragma pop - -/* 8038FC38-8038FCA8 01C298 0070+00 0/1 0/0 0/0 .rodata m_mainBckFishing__9daAlink_c */ -#pragma push -#pragma force_active on -SECTION_RODATA daAlink_BckData const daAlink_c::m_mainBckFishing[28] = { - {0x0025, 0x0273}, {0x0023, 0x00C8}, {0x0012, 0x0273}, {0x0010, 0x00C8}, {0x0021, 0x0273}, - {0x001E, 0x00C8}, {0x003C, 0x0273}, {0x002C, 0x0273}, {0x003E, 0x0273}, {0x002E, 0x0273}, - {0x0030, 0x00C8}, {0x0028, 0x00C8}, {0x0032, 0x00C8}, {0x002A, 0x00C8}, {0x0274, 0x0273}, - {0x0020, 0x0273}, {0x001A, 0x0273}, {0x001C, 0x0273}, {0x0277, 0x0273}, {0x00CD, 0x00C8}, - {0x0243, 0x0244}, {0x0233, 0x0273}, {0x0234, 0x0273}, {0x0233, 0x0273}, {0x0234, 0x0273}, - {0x026A, 0x0273}, {0x0256, 0x0273}, {0x0257, 0x0273}, -}; -COMPILER_STRIP_GATE(0x8038FC38, &daAlink_c::m_mainBckFishing); -#pragma pop - -/* 8038FCA8-80391010 01C308 1368+00 3/4 0/0 0/0 .rodata m_anmDataTable__9daAlink_c */ -daAlink_AnmData const daAlink_c::m_anmDataTable[414] = { - {37, 36, 254, 254, 0, 232, 0}, - {35, 34, 254, 254, 0, 232, 0}, - {18, 18, 254, 254, 0, 232, 0}, - {16, 16, 254, 254, 0, 232, 0}, - {33, 31, 254, 254, 0, 232, 0}, - {30, 29, 254, 254, 0, 232, 0}, - {60, 59, 4, 10, 0, 232, 0}, - {44, 43, 4, 10, 0, 232, 0}, - {62, 61, 4, 10, 0, 232, 0}, - {46, 45, 4, 10, 0, 232, 0}, - {48, 47, 4, 10, 0, 232, 0}, - {40, 39, 4, 10, 0, 232, 0}, - {50, 49, 4, 10, 0, 232, 0}, - {42, 41, 4, 10, 0, 232, 0}, - {628, 628, 254, 254, 0, 232, 0}, - {32, 26, 254, 254, 0, 0, 0}, - {26, 14, 254, 254, 0, 232, 0}, - {28, 14, 254, 254, 0, 232, 0}, - {631, 631, 4, 10, 0, 0, 0}, - {205, 197, 4, 10, 0, 232, 0}, - {579, 579, 254, 254, 0, 345, 0}, - {563, 563, 4, 10, 0, 0, 0}, - {564, 564, 4, 10, 0, 0, 0}, - {563, 604, 4, 10, 0, 0, 0}, - {564, 604, 4, 10, 0, 0, 0}, - {618, 618, 4, 10, 0, 0, 0}, - {598, 598, 1, 6, 0, 232, 0}, - {599, 599, 1, 6, 0, 351, 0}, - {198, 198, 1, 6, 0, 232, 0}, - {54, 54, 254, 254, 0, 328, 0}, - {56, 56, 254, 254, 0, 328, 0}, - {53, 53, 1, 6, 0, 232, 0}, - {55, 55, 1, 6, 0, 232, 0}, - {52, 52, 254, 254, 0, 328, 0}, - {51, 51, 1, 6, 0, 232, 0}, - {519, 519, 254, 254, 0, 328, 0}, - {521, 521, 254, 254, 0, 223, 0}, - {520, 520, 1, 6, 38, 335, 0}, - {518, 518, 4, 10, 0, 328, 0}, - {517, 517, 4, 10, 0, 232, 0}, - {559, 559, 254, 254, 0, 232, 0}, - {123, 123, 254, 254, 0, 0, 0}, - {126, 126, 254, 6, 0, 232, 0}, - {19, 19, 254, 6, 0, 232, 0}, - {21, 21, 254, 6, 0, 232, 0}, - {124, 124, 254, 6, 0, 232, 0}, - {23, 23, 254, 6, 0, 232, 0}, - {24, 24, 254, 6, 0, 232, 0}, - {20, 20, 1, 6, 125, 233, 0}, - {421, 421, 254, 254, 0, 327, 0}, - {419, 419, 254, 254, 0, 327, 0}, - {420, 420, 254, 254, 0, 223, 0}, - {436, 436, 254, 254, 0, 223, 0}, - {437, 437, 254, 254, 0, 223, 0}, - {617, 617, 254, 254, 0, 223, 0}, - {503, 503, 254, 254, 10, 333, 0}, - {502, 502, 254, 254, 4, 232, 0}, - {501, 501, 254, 254, 4, 232, 0}, - {500, 500, 0, 5, 11, 332, 0}, - {499, 499, 254, 254, 0, 232, 0}, - {498, 498, 0, 5, 0, 232, 0}, - {510, 510, 254, 254, 0, 223, 0}, - {511, 511, 254, 254, 0, 223, 0}, - {509, 509, 254, 254, 0, 223, 0}, - {225, 225, 4, 10, 0, 223, 0}, - {226, 226, 4, 10, 0, 223, 0}, - {565, 565, 4, 5, 0, 232, 0}, - {566, 566, 4, 5, 0, 232, 0}, - {562, 562, 4, 5, 0, 232, 0}, - {418, 418, 4, 5, 0, 232, 0}, - {416, 416, 4, 5, 0, 232, 0}, - {417, 417, 4, 5, 0, 232, 0}, - {614, 614, 4, 5, 0, 0, 0}, - {629, 629, 4, 5, 0, 0, 0}, - {630, 630, 4, 5, 0, 0, 0}, - {202, 202, 4, 5, 0, 232, 0}, - {203, 203, 4, 5, 0, 232, 0}, - {781, 614, 4, 5, 0, 0, 0}, - {221, 221, 4, 5, 0, 258, 0}, - {435, 435, 4, 5, 0, 261, 0}, - {149, 149, 100, 5, 36, 272, 0}, - {568, 568, 4, 5, 55, 338, 0}, - {569, 569, 4, 5, 56, 0, 0}, - {214, 214, 4, 10, 88, 300, 0}, - {587, 587, 4, 5, 37, 0, 0}, - {613, 613, 4, 5, 0, 232, 0}, - {560, 560, 4, 5, 109, 336, 0}, - {561, 561, 4, 5, 109, 336, 0}, - {373, 373, 4, 5, 110, 321, 0}, - {374, 374, 4, 5, 110, 321, 0}, - {588, 588, 4, 5, 114, 0, 0}, - {589, 589, 4, 5, 115, 0, 0}, - {512, 512, 254, 254, 0, 223, 0}, - {513, 513, 254, 254, 0, 223, 0}, - {227, 227, 4, 10, 0, 223, 0}, - {228, 228, 4, 10, 0, 223, 0}, - {624, 624, 254, 254, 16, 357, 0}, - {623, 623, 4, 5, 17, 356, 0}, - {127, 127, 100, 6, 46, 259, 0}, - {153, 153, 0, 6, 47, 275, 0}, - {154, 154, 0, 6, 48, 276, 0}, - {143, 143, 100, 6, 49, 267, 0}, - {144, 144, 100, 6, 49, 267, 0}, - {132, 132, 100, 6, 50, 262, 0}, - {133, 133, 100, 6, 51, 263, 0}, - {134, 134, 100, 5, 0, 261, 0}, - {138, 138, 0, 5, 0, 223, 0}, - {137, 137, 100, 5, 0, 223, 0}, - {139, 139, 100, 5, 52, 264, 0}, - {136, 136, 0, 5, 0, 223, 0}, - {135, 135, 100, 5, 0, 223, 0}, - {155, 155, 0, 6, 89, 277, 0}, - {156, 156, 0, 6, 89, 277, 0}, - {152, 152, 100, 6, 60, 274, 0}, - {151, 151, 100, 6, 61, 273, 0}, - {159, 159, 100, 6, 58, 280, 0}, - {158, 158, 100, 6, 59, 279, 0}, - {164, 164, 0, 6, 0, 232, 0}, - {165, 165, 100, 6, 0, 232, 0}, - {166, 166, 100, 6, 0, 232, 0}, - {170, 170, 0, 5, 0, 261, 0}, - {167, 167, 0, 5, 90, 285, 0}, - {168, 168, 0, 5, 0, 286, 0}, - {169, 169, 100, 5, 18, 287, 0}, - {142, 142, 0, 6, 127, 266, 0}, - {140, 140, 0, 6, 128, 265, 0}, - {141, 141, 0, 6, 0, 232, 0}, - {174, 174, 1, 6, 39, 234, 0}, - {172, 172, 1, 6, 39, 234, 0}, - {189, 189, 1, 6, 39, 234, 0}, - {190, 190, 1, 6, 39, 234, 0}, - {178, 178, 254, 254, 40, 248, 0}, - {175, 175, 254, 254, 40, 248, 0}, - {180, 180, 254, 254, 40, 248, 0}, - {182, 182, 254, 254, 40, 248, 0}, - {179, 179, 254, 254, 42, 292, 0}, - {176, 176, 254, 254, 43, 290, 0}, - {181, 181, 254, 254, 44, 293, 0}, - {183, 183, 254, 254, 44, 293, 0}, - {171, 171, 1, 6, 39, 234, 0}, - {431, 431, 1, 6, 39, 234, 0}, - {432, 432, 254, 254, 0, 223, 0}, - {324, 324, 0, 6, 6, 305, 0}, - {325, 325, 0, 10, 7, 306, 0}, - {567, 567, 4, 10, 28, 337, 0}, - {591, 591, 254, 254, 0, 223, 0}, - {592, 592, 254, 254, 0, 223, 0}, - {593, 593, 254, 254, 0, 223, 0}, - {594, 594, 254, 254, 0, 223, 0}, - {372, 372, 254, 254, 0, 223, 0}, - {378, 378, 254, 254, 0, 223, 0}, - {376, 376, 254, 254, 0, 223, 0}, - {377, 377, 254, 254, 0, 223, 0}, - {430, 430, 254, 254, 0, 223, 0}, - {428, 428, 254, 254, 0, 223, 0}, - {429, 429, 254, 254, 0, 223, 0}, - {425, 425, 254, 254, 0, 223, 0}, - {423, 423, 254, 254, 0, 223, 0}, - {424, 424, 254, 254, 0, 223, 0}, - {427, 427, 254, 254, 0, 223, 0}, - {426, 426, 254, 254, 0, 223, 0}, - {106, 106, 3, 9, 0, 232, 0}, - {112, 112, 3, 9, 0, 232, 0}, - {108, 108, 3, 9, 0, 232, 0}, - {109, 109, 3, 9, 0, 232, 0}, - {110, 110, 3, 9, 0, 232, 0}, - {111, 111, 3, 9, 0, 232, 0}, - {107, 107, 3, 9, 92, 254, 0}, - {527, 527, 3, 9, 0, 232, 0}, - {528, 528, 3, 9, 0, 232, 0}, - {522, 522, 3, 9, 0, 232, 0}, - {524, 524, 3, 9, 0, 232, 0}, - {525, 525, 3, 9, 0, 232, 0}, - {526, 526, 3, 9, 0, 232, 0}, - {523, 523, 3, 9, 0, 232, 0}, - {366, 366, 254, 254, 24, 313, 0}, - {369, 369, 254, 254, 25, 316, 0}, - {368, 368, 254, 254, 0, 315, 0}, - {379, 379, 254, 254, 26, 322, 0}, - {365, 365, 254, 254, 27, 312, 0}, - {367, 367, 254, 254, 0, 314, 0}, - {95, 95, 254, 254, 0, 223, 0}, - {604, 604, 4, 10, 1, 352, 0}, - {596, 596, 4, 10, 1, 349, 0}, - {585, 585, 4, 10, 0, 223, 0}, - {620, 620, 1, 6, 12, 355, 0}, - {157, 157, 1, 6, 13, 278, 0}, - {82, 82, 254, 254, 0, 232, 0}, - {632, 632, 1, 6, 0, 223, 0}, - {557, 557, 254, 254, 0, 223, 0}, - {555, 555, 254, 254, 0, 223, 0}, - {558, 558, 254, 254, 0, 223, 0}, - {556, 556, 254, 254, 0, 223, 0}, - {574, 574, 254, 254, 21, 342, 0}, - {578, 578, 254, 254, 22, 344, 0}, - {57, 57, 254, 254, 0, 232, 0}, - {58, 58, 254, 254, 0, 232, 0}, - {17, 17, 254, 254, 0, 232, 0}, - {570, 570, 254, 254, 3, 232, 0}, - {573, 573, 254, 254, 23, 341, 0}, - {577, 577, 254, 254, 0, 232, 0}, - {576, 576, 254, 254, 0, 232, 0}, - {193, 193, 1, 6, 39, 234, 0}, - {192, 192, 1, 6, 39, 234, 0}, - {194, 194, 1, 6, 39, 234, 0}, - {195, 195, 1, 6, 39, 234, 0}, - {196, 196, 1, 6, 39, 234, 0}, - {87, 87, 254, 254, 77, 247, 0}, - {86, 86, 254, 254, 78, 246, 0}, - {85, 85, 254, 254, 79, 245, 0}, - {361, 361, 254, 254, 0, 308, 0}, - {362, 362, 254, 254, 0, 310, 0}, - {362, 618, 254, 254, 0, 307, 0}, - {362, 381, 254, 254, 0, 307, 0}, - {586, 586, 4, 10, 41, 346, 0}, - {595, 595, 254, 254, 0, 348, 0}, - {619, 619, 254, 254, 0, 223, 0}, - {603, 602, 254, 5, 0, 223, 0}, - {603, 603, 0, 254, 0, 223, 0}, - {619, 533, 254, 5, 0, 223, 0}, - {619, 534, 0, 254, 0, 223, 0}, - {619, 531, 254, 5, 0, 223, 0}, - {619, 532, 0, 254, 0, 223, 0}, - {619, 103, 254, 5, 0, 223, 0}, - {90, 90, 2, 254, 0, 304, 0}, - {91, 91, 2, 254, 0, 304, 0}, - {92, 92, 2, 254, 0, 223, 0}, - {94, 94, 2, 5, 120, 249, 0}, - {491, 491, 254, 254, 0, 223, 0}, - {506, 506, 2, 5, 0, 223, 0}, - {508, 508, 2, 5, 0, 223, 0}, - {434, 434, 2, 5, 0, 223, 0}, - {217, 217, 4, 10, 30, 301, 0}, - {218, 218, 4, 10, 31, 302, 0}, - {215, 215, 3, 10, 0, 223, 0}, - {216, 216, 3, 10, 0, 223, 0}, - {219, 219, 254, 254, 0, 223, 0}, - {220, 220, 254, 254, 0, 223, 0}, - {492, 492, 254, 254, 29, 223, 0}, - {529, 529, 1, 6, 0, 223, 0}, - {484, 484, 1, 6, 0, 223, 0}, - {485, 485, 1, 6, 0, 223, 0}, - {552, 552, 254, 254, 0, 223, 0}, - {544, 544, 254, 254, 0, 223, 0}, - {543, 543, 254, 254, 0, 223, 0}, - {549, 549, 254, 254, 0, 223, 0}, - {547, 547, 254, 254, 0, 223, 0}, - {545, 545, 254, 254, 0, 223, 0}, - {546, 546, 254, 254, 0, 223, 0}, - {548, 548, 254, 254, 0, 223, 0}, - {551, 551, 100, 254, 0, 223, 0}, - {550, 550, 100, 254, 0, 223, 0}, - {530, 530, 254, 254, 0, 223, 0}, - {102, 102, 254, 254, 53, 252, 0}, - {105, 105, 254, 254, 54, 253, 0}, - {625, 625, 4, 10, 0, 358, 0}, - {72, 72, 3, 254, 62, 238, 0}, - {70, 70, 3, 254, 63, 236, 0}, - {71, 71, 3, 254, 64, 237, 0}, - {69, 69, 3, 254, 65, 235, 0}, - {75, 75, 3, 254, 66, 241, 0}, - {76, 76, 3, 5, 67, 242, 0}, - {73, 73, 3, 5, 68, 239, 0}, - {78, 78, 3, 254, 69, 243, 0}, - {79, 79, 3, 254, 70, 244, 0}, - {74, 74, 3, 254, 71, 240, 0}, - {77, 77, 3, 254, 0, 223, 0}, - {438, 438, 0, 10, 0, 223, 0}, - {495, 495, 0, 9, 0, 223, 0}, - {493, 493, 0, 9, 0, 223, 0}, - {494, 494, 0, 9, 0, 223, 0}, - {371, 371, 2, 254, 74, 319, 0}, - {370, 370, 2, 254, 76, 318, 0}, - {97, 97, 2, 254, 75, 251, 0}, - {621, 621, 2, 254, 75, 251, 0}, - {605, 605, 1, 6, 14, 355, 0}, - {610, 610, 1, 6, 15, 353, 0}, - {483, 483, 254, 254, 0, 223, 0}, - {212, 212, 4, 10, 80, 298, 0}, - {213, 213, 4, 10, 81, 299, 0}, - {571, 571, 254, 254, 82, 339, 0}, - {572, 572, 254, 254, 83, 340, 0}, - {114, 114, 3, 9, 0, 255, 0}, - {116, 116, 3, 9, 85, 256, 0}, - {115, 115, 3, 9, 0, 232, 0}, - {113, 113, 3, 9, 0, 232, 0}, - {117, 117, 3, 9, 0, 232, 0}, - {119, 119, 3, 9, 86, 257, 0}, - {120, 120, 3, 9, 87, 257, 0}, - {28, 121, 3, 9, 0, 232, 0}, - {122, 122, 3, 9, 0, 232, 0}, - {118, 118, 254, 254, 0, 304, 0}, - {222, 222, 4, 10, 84, 303, 0}, - {224, 224, 254, 254, 40, 248, 0}, - {8, 8, 0, 5, 0, 232, 0}, - {554, 554, 254, 254, 0, 223, 0}, - {553, 553, 254, 254, 0, 223, 0}, - {394, 394, 1, 6, 0, 232, 0}, - {395, 395, 1, 6, 0, 232, 0}, - {396, 396, 254, 254, 0, 232, 0}, - {384, 384, 1, 6, 0, 232, 0}, - {385, 385, 1, 6, 0, 232, 0}, - {386, 386, 1, 6, 0, 232, 0}, - {388, 388, 1, 6, 0, 232, 0}, - {392, 392, 1, 6, 0, 232, 0}, - {393, 393, 1, 6, 0, 232, 0}, - {390, 390, 1, 6, 0, 232, 0}, - {391, 391, 1, 6, 0, 232, 0}, - {387, 387, 1, 6, 0, 232, 0}, - {389, 389, 1, 6, 0, 232, 0}, - {398, 398, 1, 6, 0, 232, 0}, - {399, 399, 1, 6, 0, 232, 0}, - {400, 400, 1, 6, 0, 232, 0}, - {401, 401, 1, 6, 0, 232, 0}, - {404, 404, 1, 6, 0, 232, 0}, - {405, 405, 1, 6, 0, 232, 0}, - {402, 402, 1, 6, 0, 232, 0}, - {403, 403, 1, 6, 0, 232, 0}, - {504, 504, 254, 254, 0, 334, 0}, - {4142, 4142, 0, 5, 0, 223, 0}, - {4141, 4141, 0, 5, 0, 223, 0}, - {4106, 4106, 254, 254, 0, 223, 0}, - {4104, 4104, 254, 254, 0, 223, 0}, - {4105, 4105, 254, 254, 0, 223, 0}, - {4103, 4103, 254, 254, 0, 223, 0}, - {4129, 4129, 254, 254, 0, 223, 0}, - {4131, 4131, 254, 254, 0, 223, 0}, - {4130, 4130, 254, 254, 0, 223, 0}, - {4132, 4132, 254, 254, 0, 223, 0}, - {4133, 4133, 254, 254, 94, 4113, 0}, - {4136, 4136, 254, 254, 0, 223, 0}, - {4137, 4137, 254, 254, 0, 223, 0}, - {4134, 4134, 254, 254, 95, 4114, 0}, - {4135, 4135, 254, 254, 95, 4114, 0}, - {4138, 4138, 254, 254, 99, 4115, 0}, - {4121, 4121, 254, 254, 0, 223, 0}, - {4123, 4123, 254, 254, 97, 4110, 0}, - {4124, 4124, 254, 254, 98, 4111, 0}, - {4122, 4122, 254, 254, 96, 4109, 0}, - {4128, 4128, 254, 254, 95, 4114, 0}, - {4125, 4125, 254, 254, 101, 4112, 0}, - {4119, 4119, 254, 254, 100, 4108, 0}, - {4120, 4120, 254, 254, 100, 4108, 0}, - {4139, 4139, 254, 254, 0, 223, 0}, - {4140, 4140, 254, 254, 0, 223, 0}, - {4117, 4117, 254, 254, 102, 4107, 0}, - {4118, 4118, 254, 254, 102, 4107, 0}, - {4102, 4102, 254, 254, 0, 223, 0}, - {4116, 4116, 254, 254, 0, 223, 0}, - {4126, 4126, 0, 5, 0, 223, 0}, - {4127, 4127, 254, 254, 0, 223, 0}, - {177, 177, 254, 254, 93, 291, 0}, - {412, 412, 254, 5, 0, 232, 0}, - {413, 413, 254, 5, 0, 232, 0}, - {406, 406, 0, 5, 0, 232, 0}, - {411, 411, 0, 5, 0, 232, 0}, - {410, 410, 0, 5, 0, 232, 0}, - {409, 409, 0, 5, 0, 232, 0}, - {407, 407, 254, 5, 0, 232, 0}, - {408, 408, 254, 5, 0, 232, 0}, - {8204, 8204, 3, 9, 0, 232, 0}, - {8205, 8205, 3, 9, 0, 232, 0}, - {8206, 8206, 3, 9, 0, 232, 0}, - {8207, 8207, 100, 254, 0, 232, 0}, - {8201, 8201, 100, 9, 103, 232, 0}, - {8202, 8202, 100, 9, 104, 232, 0}, - {8203, 8203, 100, 10, 105, 8200, 0}, - {8208, 8208, 0, 5, 0, 223, 0}, - {20493, 20493, 1, 6, 0, 232, 0}, - {20494, 20494, 1, 6, 0, 232, 0}, - {20490, 20490, 3, 9, 0, 232, 0}, - {20491, 20491, 3, 9, 0, 232, 0}, - {20492, 20492, 100, 254, 0, 232, 0}, - {20487, 20487, 100, 9, 106, 232, 0}, - {20488, 20488, 100, 9, 107, 232, 0}, - {20489, 20489, 100, 10, 108, 20495, 0}, - {515, 515, 2, 5, 111, 232, 0}, - {516, 516, 2, 5, 112, 232, 0}, - {363, 363, 2, 10, 113, 309, 0}, - {606, 606, 3, 9, 39, 234, 0}, - {486, 486, 3, 9, 40, 248, 0}, - {487, 487, 3, 9, 40, 248, 0}, - {422, 422, 4, 5, 116, 330, 0}, - {614, 362, 254, 254, 0, 310, 0}, - {12292, 12292, 1, 6, 0, 12291, 0}, - {101, 101, 254, 254, 0, 223, 0}, - {98, 98, 3, 9, 0, 232, 0}, - {100, 100, 3, 9, 0, 232, 0}, - {99, 99, 3, 9, 0, 232, 0}, - {615, 615, 4, 10, 121, 354, 0}, - {208, 208, 4, 10, 126, 295, 0}, - {375, 375, 254, 254, 0, 223, 0}, - {633, 633, 4, 10, 0, 359, 0}, - {634, 634, 4, 10, 0, 307, 0}, - {207, 207, 0, 6, 0, 232, 0}, - {162, 162, 100, 6, 129, 283, 0}, - {163, 163, 100, 6, 129, 232, 0}, - {160, 160, 100, 6, 131, 281, 0}, - {161, 161, 100, 6, 132, 282, 0}, - {24587, 24587, 0, 10, 133, 24585, 0}, - {24588, 24588, 0, 5, 0, 232, 0}, - {24586, 24586, 100, 5, 0, 24584, 0}, - {28682, 28682, 0, 6, 0, 232, 0}, - {28683, 28683, 0, 6, 0, 232, 0}, - {28684, 28684, 0, 6, 0, 232, 0}, - {28686, 28686, 0, 6, 0, 232, 0}, - {28685, 28685, 0, 6, 0, 232, 0}, - {28680, 28680, 0, 5, 134, 28688, 0}, - {28681, 28681, 0, 5, 0, 28689, 0}, - {614, 28687, 4, 5, 135, 28690, 0}, - {415, 415, 254, 254, 0, 223, 0}, - {414, 414, 254, 254, 0, 223, 0}, - {490, 490, 254, 254, 136, 331, 0}, - {11, 11, 254, 254, 137, 231, 0}, -}; - -/* 80391010-803914A8 -00001 0498+00 4/4 0/0 0/0 .rodata m_wlAnmDataTable__9daAlink_c */ -daAlink_WlAnmData const daAlink_c::m_wlAnmDataTable[147] = { - {767, 0, 1, 2600, 255, 255}, {778, 0, 2, 270, 255, 255}, - {779, 0, 2, 270, 255, 255}, {692, 0, 12, 65535, 255, 255}, - {716, 1, 12, 65535, 255, 255}, {714, 1, 12, 65535, 255, 255}, - {715, 1, 12, 65535, 255, 255}, {773, 0, 1, 4095, 255, 255}, - {736, 0, 7, 767, 255, 255}, {735, 0, 7, 1568, 255, 255}, - {734, 0, 12, 65535, 255, 255}, {745, 1, 0, 2047, 255, 255}, - {724, 1, 12, 65535, 255, 255}, {725, 2, 12, 65535, 255, 255}, - {774, 1, 0, 511, 255, 255}, {666, 1, 7, 2559, 255, 255}, - {766, 1, 5, 2559, 255, 255}, {668, 1, 5, 1023, 255, 255}, - {667, 1, 12, 65535, 255, 255}, {765, 1, 6, 6655, 255, 255}, - {764, 1, 12, 65535, 255, 255}, {763, 0, 8, 1023, 255, 255}, - {679, 0, 12, 65535, 255, 255}, {771, 0, 3, 2590, 50, 255}, - {768, 0, 3, 1791, 255, 255}, {706, 1, 5, 1791, 255, 255}, - {750, 1, 12, 65535, 255, 255}, {762, 1, 12, 65535, 255, 255}, - {638, 0, 12, 65535, 255, 255}, {780, 1, 2, 274, 255, 255}, - {746, 1, 12, 65535, 255, 255}, {747, 1, 12, 65535, 255, 255}, - {748, 2, 12, 65535, 255, 255}, {743, 0, 2, 270, 255, 255}, - {739, 1, 5, 5375, 255, 255}, {740, 1, 5, 6911, 255, 255}, - {742, 0, 12, 65535, 255, 255}, {744, 8, 1, 6450, 255, 255}, - {741, 9, 2, 270, 30, 45}, {693, 1, 12, 65535, 255, 255}, - {684, 2, 12, 65535, 255, 255}, {682, 2, 12, 65535, 255, 255}, - {686, 2, 12, 65535, 255, 255}, {688, 2, 12, 65535, 255, 255}, - {685, 2, 10, 8447, 255, 255}, {683, 2, 11, 5375, 255, 255}, - {687, 2, 12, 65535, 255, 255}, {689, 2, 12, 65535, 255, 255}, - {752, 0, 12, 65535, 255, 255}, {770, 0, 1, 2600, 255, 255}, - {719, 0, 12, 65535, 255, 255}, {720, 0, 12, 65535, 255, 255}, - {717, 0, 12, 65535, 255, 255}, {718, 0, 12, 65535, 255, 255}, - {759, 1, 12, 65535, 255, 255}, {760, 0, 1, 3583, 255, 255}, - {758, 0, 2, 511, 255, 255}, {755, 0, 4, 1023, 255, 255}, - {753, 1, 12, 65535, 255, 255}, {775, 0, 12, 65535, 255, 255}, - {681, 1, 12, 65535, 255, 255}, {680, 1, 12, 65535, 255, 255}, - {690, 1, 12, 65535, 255, 255}, {691, 1, 12, 65535, 255, 255}, - {653, 1, 12, 65535, 255, 255}, {654, 1, 12, 65535, 255, 255}, - {655, 0, 12, 65535, 255, 255}, {656, 1, 12, 65535, 255, 255}, - {639, 0, 12, 65535, 255, 255}, {641, 0, 12, 65535, 255, 255}, - {640, 0, 12, 65535, 255, 255}, {730, 0, 12, 65535, 255, 255}, - {645, 1, 12, 65535, 255, 255}, {644, 1, 12, 65535, 255, 255}, - {647, 1, 12, 65535, 255, 255}, {646, 1, 12, 65535, 255, 255}, - {643, 1, 12, 65535, 255, 255}, {642, 1, 12, 65535, 255, 255}, - {731, 0, 12, 65535, 255, 255}, {732, 0, 9, 2047, 255, 255}, - {652, 1, 12, 65535, 255, 255}, {648, 1, 12, 65535, 255, 255}, - {649, 1, 12, 65535, 255, 255}, {651, 1, 12, 65535, 255, 255}, - {650, 1, 12, 65535, 255, 255}, {661, 2, 12, 65535, 255, 255}, - {660, 2, 12, 65535, 255, 255}, {707, 1, 12, 65535, 255, 255}, - {709, 1, 12, 65535, 255, 255}, {708, 1, 12, 65535, 255, 255}, - {676, 0, 12, 65535, 255, 255}, {678, 0, 12, 65535, 255, 255}, - {710, 0, 12, 65535, 255, 255}, {711, 1, 12, 65535, 255, 255}, - {712, 1, 12, 65535, 255, 255}, {713, 0, 1, 7935, 255, 255}, - {722, 1, 12, 65535, 255, 255}, {723, 1, 10, 1279, 255, 255}, - {665, 0, 12, 65535, 255, 255}, {662, 1, 12, 65535, 255, 255}, - {663, 1, 12, 65535, 255, 255}, {664, 1, 11, 10495, 255, 255}, - {738, 1, 12, 65535, 255, 255}, {737, 1, 12, 65535, 255, 255}, - {697, 0, 11, 16895, 255, 255}, {698, 13, 12, 65535, 255, 255}, - {761, 0, 5, 14662, 85, 255}, {749, 1, 6, 511, 255, 255}, - {721, 1, 12, 65535, 255, 255}, {733, 0, 12, 65535, 255, 255}, - {677, 0, 12, 65535, 255, 255}, {674, 0, 12, 65535, 255, 255}, - {675, 0, 12, 65535, 255, 255}, {776, 1, 12, 65535, 255, 255}, - {751, 0, 12, 65535, 255, 255}, {694, 2, 4, 511, 255, 255}, - {659, 1, 12, 65535, 255, 255}, {657, 1, 12, 65535, 255, 255}, - {700, 0, 12, 65535, 255, 255}, {703, 0, 12, 65535, 255, 255}, - {670, 2, 12, 65535, 255, 255}, {669, 2, 12, 65535, 255, 255}, - {658, 1, 5, 4351, 255, 255}, {696, 6, 12, 65535, 255, 255}, - {756, 7, 12, 65535, 255, 255}, {757, 7, 12, 65535, 255, 255}, - {772, 2, 12, 65535, 255, 255}, {769, 0, 1, 4095, 255, 255}, - {754, 0, 1, 3885, 255, 255}, {727, 0, 12, 65535, 255, 255}, - {699, 3, 12, 65535, 255, 255}, {705, 1, 12, 65535, 255, 255}, - {704, 1, 0, 1535, 255, 255}, {777, 0, 1, 511, 255, 255}, - {671, 5, 12, 65535, 255, 255}, {728, 0, 12, 65535, 255, 255}, - {729, 2, 12, 65535, 255, 255}, {16387, 0, 12, 65535, 255, 255}, - {672, 0, 12, 65535, 255, 255}, {673, 0, 12, 65535, 255, 255}, - {726, 1, 0, 5178, 255, 255}, {32808, 10, 12, 65535, 255, 255}, - {32807, 10, 12, 65535, 255, 255}, {32810, 11, 12, 65535, 255, 255}, - {32809, 11, 12, 65535, 255, 255}, {32812, 12, 12, 65535, 255, 255}, - {32811, 12, 12, 65535, 255, 255}, -}; - -/* 803914A8-80391734 01DB08 028C+00 2/2 0/0 0/0 .rodata m_faceTexDataTable__9daAlink_c */ -SECTION_RODATA daAlink_FaceTexData const daAlink_c::m_faceTexDataTable[] = { - 0x03DF, 0x0379, 0x03E0, 0x037A, 0x03E1, 0x037B, 0x03DF, 0x0378, 0x03DF, 0x0383, 0x03E2, 0x032C, - 0x03C6, 0x036A, 0x03D5, 0x036B, 0x03B0, 0x032D, 0x03B1, 0x032E, 0x03E6, 0x0382, 0x03E5, 0x0381, - 0x03F2, 0x0398, 0x03C3, 0x0353, 0x03AF, 0x0398, 0x03F0, 0x0396, 0x03F4, 0x032C, 0x03F3, 0x032C, - 0x03C5, 0x035C, 0x03AF, 0x0342, 0x03AF, 0x0343, 0x03EE, 0x038E, 0x03EF, 0x038F, 0x03ED, 0x038D, - 0x03D8, 0x036E, 0x03D9, 0x036F, 0x03DB, 0x0373, 0x03D7, 0x036D, 0x03E9, 0x0388, 0x03E4, 0x037D, - 0x03D1, 0x0367, 0x03D2, 0x0368, 0x03AF, 0x034A, 0x03AF, 0x034B, 0x03AF, 0x034C, 0x03AF, 0x034D, - 0x03AF, 0x034E, 0x03AF, 0x0391, 0x03E7, 0x0386, 0x03B4, 0x032C, 0x03BC, 0x032C, 0x03AF, 0x0390, - 0x03C9, 0x035E, 0x03C7, 0x035D, 0x03CA, 0x035F, 0x03AF, 0x0395, 0x03AF, 0x0341, 0x03AF, 0x0351, - 0x03AF, 0x0352, 0x03AF, 0x0349, 0x03AF, 0x0344, 0x03AF, 0x0345, 0x03AF, 0x0346, 0x03BD, 0x032C, - 0x03BE, 0x032C, 0x03EA, 0x0389, 0x03AF, 0x038A, 0x03CB, 0x032C, 0x03AF, 0x0355, 0x03AF, 0x0354, - 0x03AF, 0x0350, 0x03AF, 0x034F, 0x03B8, 0x0334, 0x03B6, 0x0332, 0x03B7, 0x0333, 0x03B5, 0x0331, - 0x03AF, 0x0336, 0x03AF, 0x0337, 0x03B9, 0x032C, 0x03AF, 0x0338, 0x03AF, 0x0339, 0x03AF, 0x0335, - 0x03DC, 0x0335, 0x03DE, 0x0335, 0x03DA, 0x0370, 0x03AF, 0x033E, 0x03D3, 0x032C, 0x03BB, 0x033C, - 0x03AF, 0x033B, 0x03BA, 0x033A, 0x03CE, 0x0364, 0x03CF, 0x0365, 0x03EB, 0x038B, 0x03EC, 0x038C, - 0x03D4, 0x0369, 0x03C0, 0x032C, 0x03C1, 0x033F, 0x03C1, 0x0340, 0x03D0, 0x0366, 0x03C2, 0x032C, - 0x03AF, 0x035A, 0x03C4, 0x035B, 0x03BF, 0x032C, 0x03C8, 0x032C, 0x1045, 0x103B, 0x1046, 0x032C, - 0x1041, 0x1037, 0x1042, 0x1038, 0x1043, 0x1039, 0x1047, 0x103C, 0x1040, 0x1036, 0x1044, 0x103A, - 0x103F, 0x032C, 0x03AF, 0x2032, 0x03AF, 0x2033, 0x2039, 0x2034, 0x03AF, 0x5054, 0x03AF, 0x5055, - 0x5059, 0x5056, 0x03E8, 0x0387, 0x03AF, 0x0372, 0x03AF, 0x0384, 0x03AF, 0x0385, 0x03D6, 0x036C, - 0x03AF, 0x0392, 0x03AF, 0x0393, 0x03AF, 0x0377, 0x03AF, 0x0361, 0x03AF, 0x0362, 0x03CD, 0x0363, - 0x03AF, 0x033D, 0x03F1, 0x0397, 0x03DC, 0x032C, 0x03DD, 0x032C, 0x03DE, 0x032C, 0x03B3, 0x0330, - 0x03CC, 0x0360, 0x03AF, 0x0348, 0x03AF, 0x0347, 0x03AF, 0x0358, 0x03AF, 0x0359, 0x03AF, 0x0356, - 0x03AF, 0x0357, 0x6018, 0x6015, 0x03AF, 0x7070, 0x03AF, 0x7071, 0x03E3, 0x037C, 0x03B2, 0x032F, - 0x03AF, 0x0394, 0x0417, 0x03A9, 0x0418, 0x03AA, 0x041A, 0x03A7, 0x041E, 0x03A7, 0x041B, 0x03A7, - 0x040E, 0x03A7, 0x040C, 0x03A7, 0x040F, 0x03A7, 0x0410, 0x03A7, 0x0420, 0x03A7, 0x0415, 0x03A7, - 0x0416, 0x03A7, 0x040B, 0x03A7, 0x0411, 0x03A7, 0x041F, 0x03A7, 0x040A, 0x03A7, 0x0409, 0x03A7, - 0x0412, 0x03A7, 0x041C, 0x03A7, 0x041D, 0x03A7, 0x0419, 0x03AB, 0x0413, 0x03A8, 0x0414, 0x03A7, - 0x040D, 0x03A7, -}; -COMPILER_STRIP_GATE(0x803914A8, &daAlink_c::m_faceTexDataTable); - -/* 80391734-80391740 01DD94 000C+00 1/1 0/0 0/0 .rodata @5908 */ -SECTION_RODATA static u8 const lit_5908[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80391734, &lit_5908); - -/* 80391740-80391754 01DDA0 0014+00 0/1 0/0 0/0 .rodata atnNormalType1$6976 */ -#pragma push -#pragma force_active on -static int const atnNormalType1[5] = {4, 1, 1, 2, 0}; -#pragma pop - -/* 80391754-80391768 01DDB4 0014+00 0/1 0/0 0/0 .rodata atnNormalType2$6977 */ -#pragma push -#pragma force_active on -static int const atnNormalType2[5] = {3, 0, 0, 1, 1}; -#pragma pop - -/* 80391768-8039177C 01DDC8 0014+00 0/1 0/0 0/0 .rodata atnNormalType3$6978 */ -#pragma push -#pragma force_active on -static int const atnNormalType3[5] = {4, 1, 1, 0, 0}; -#pragma pop - -/* 8039177C-80391790 01DDDC 0014+00 0/1 0/0 0/0 .rodata atnFinishType$6979 */ -#pragma push -#pragma force_active on -static int const atnFinishType[5] = {2, 1, 0, 5, 1}; -#pragma pop - -/* 80391790-803917A4 01DDF0 0014+00 0/1 0/0 0/0 .rodata hitType$6980 */ -#pragma push -#pragma force_active on -static int const hitType[5] = {4, 0, 5, 0, 1}; -#pragma pop - -/* 803917A4-803917B8 01DE04 0014+00 0/1 0/0 0/0 .rodata hitFinishType$6981 */ -#pragma push -#pragma force_active on -static int const hitFinishType[5] = {2, 1, 0, 5, 0}; -#pragma pop - -/* 803917B8-803917CC 01DE18 0014+00 0/1 0/0 0/0 .rodata normalType1$6982 */ -#pragma push -#pragma force_active on -static int const normalType1_6982[5] = {0, 2, 1, 2, 1}; -#pragma pop - -/* 803917CC-803917E0 01DE2C 0014+00 0/1 0/0 0/0 .rodata normalType2$6983 */ -#pragma push -#pragma force_active on -static int const normalType2[5] = {1, 1, 2, 1, 2}; -#pragma pop - -/* 803917E0-803917F4 01DE40 0014+00 0/1 0/0 0/0 .rodata normalType3$6984 */ -#pragma push -#pragma force_active on -static int const normalType3[5] = {4, 0, 1, 2, 1}; -#pragma pop - -/* 803917F4-80391808 01DE54 0014+00 0/1 0/0 0/0 .rodata finishType$6985 */ -#pragma push -#pragma force_active on -static int const finishType[5] = {2, 0, 0, 5, 1}; -#pragma pop - -/* 80391808-80391858 01DE68 0050+00 0/1 0/0 0/0 .rodata cutParamTable$7312 */ -#pragma push -#pragma force_active on -SECTION_RODATA static daAlink_cutParamTbl const cutParamTable_7312[5] = { - { - daAlink_c::ANM_CUT_NM_VERTICAL, - 0x6F, - daAlink_c::CUT_TYPE_NM_VERTICAL, - 1, - 0, - 0, - 6.0f, - }, - { - daAlink_c::ANM_CUT_NM_LEFT, - 0x6F, - daAlink_c::CUT_TYPE_NM_LEFT, - 1, - 0, - 0, - 5.0f, - }, - { - daAlink_c::ANM_CUT_NM_RIGHT, - 0x6F, - daAlink_c::CUT_TYPE_NM_RIGHT, - 1, - 0, - 0, - 5.0f, - }, - { - daAlink_c::ANM_CUT_COMBO_STAB, - 0x6F, - daAlink_c::CUT_TYPE_COMBO_STAB, - 14, - 0, - 0, - 6.0f, - }, - { - daAlink_c::ANM_CUT_NM_STAB, - 0x70, - daAlink_c::CUT_TYPE_NM_STAB, - 14, - 0, - 0, - 6.0f, - }, -}; -COMPILER_STRIP_GATE(0x80391808, &cutParamTable_7312); -#pragma pop - -/* 80391858-803918B8 01DEB8 0060+00 0/1 0/0 0/0 .rodata cutParamTable$7455 */ -#pragma push -#pragma force_active on -SECTION_RODATA static daAlink_cutParamTbl const cutParamTable_7455[6] = { - { - daAlink_c::ANM_CUT_FINISH_LEFT, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_LEFT, - 1, - 100, - 100, - 5.0f, - }, - { - daAlink_c::ANM_CUT_FINISH_VERTICAL, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_VERTICAL, - 1, - 100, - 100, - 8.0f, - }, - { - daAlink_c::ANM_CUT_FINISH_STAB, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_STAB, - 14, - 100, - 100, - 10.0f, - }, - { - daAlink_c::ANM_CUT_MORTAL_DRAW_A, - 0x6F, - daAlink_c::CUT_TYPE_MORTAL_DRAW_A, - 1, - 5, - 12, - 10.0f, - }, - { - daAlink_c::ANM_CUT_MORTAL_DRAW_B, - 0x6F, - daAlink_c::CUT_TYPE_MORTAL_DRAW_B, - 1, - 7, - 14, - 10.0f, - }, - { - daAlink_c::ANM_CUT_FINISH_RIGHT, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_RIGHT, - 1, - 100, - 100, - 10.0f, - }, -}; -COMPILER_STRIP_GATE(0x80391858, &cutParamTable_7455); -#pragma pop - -/* 803918B8-803918C4 01DF18 000C+00 1/1 0/0 0/0 .rodata localCenter$11047 */ -static Vec const localCenter = {-15.0f, 0.0f, 18.0f}; - -/* 803918C4-803918D0 01DF24 000C+00 1/1 0/0 0/0 .rodata localPos$11819 */ -static Vec const localPos = {3.45f, 45.32f, -7.0f}; - -/* 803918D0-803918DC 01DF30 000C+00 1/1 0/0 0/0 .rodata slingLocalPos$12042 */ -static Vec const slingLocalPos = {10.0f, 10.0f, 0.0f}; - -/* 803918DC-803918E8 01DF3C 000C+00 1/1 0/0 0/0 .rodata localSidePos$14270 */ -static Vec const localSidePos = {2.3f, -15.5f, 15.6f}; - -/* 803918E8-803918F4 01DF48 000C+00 0/1 0/0 0/0 .rodata m_handLeftOutSidePos__9daAlink_c */ -#pragma push -#pragma force_active on -SECTION_RODATA Vec const daAlink_c::m_handLeftOutSidePos = { - 9.0f, -5.0f, 3.0f -}; -COMPILER_STRIP_GATE(0x803918E8, &daAlink_c::m_handLeftOutSidePos); -#pragma pop - -/* 803918F4-80391900 01DF54 000C+00 0/1 0/0 0/0 .rodata m_handRightOutSidePos__9daAlink_c - */ -#pragma push -#pragma force_active on -SECTION_RODATA Vec const daAlink_c::m_handRightOutSidePos = { - 9.0f, -5.0f, -3.0f -}; -COMPILER_STRIP_GATE(0x803918F4, &daAlink_c::m_handRightOutSidePos); -#pragma pop - -/* 80391900-8039190C 01DF60 000C+00 0/1 0/0 1/1 .rodata m_handLeftInSidePos__9daAlink_c */ -SECTION_RODATA Vec const daAlink_c::m_handLeftInSidePos = { - 9.0f, 5.0f, 3.0f -}; -COMPILER_STRIP_GATE(0x80391900, &daAlink_c::m_handLeftInSidePos); - -/* 8039190C-80391918 01DF6C 000C+00 0/1 0/0 1/1 .rodata m_handRightInSidePos__9daAlink_c */ -SECTION_RODATA Vec const daAlink_c::m_handRightInSidePos = { - 9.0f, 5.0f, -3.0f -}; -COMPILER_STRIP_GATE(0x8039190C, &daAlink_c::m_handRightInSidePos); - -/* 80391918-80391924 01DF78 000C+00 0/1 0/0 0/0 .rodata horseLocalLeft$17678 */ -#pragma push -#pragma force_active on -static const Vec horseLocalLeft = {20.0f, 0.0f, 0.0f}; -#pragma pop - -/* 80391924-80391930 01DF84 000C+00 0/1 0/0 0/0 .rodata horseLocalRight$17679 */ -#pragma push -#pragma force_active on -static const Vec horseLocalRight = {-20.0f, 0.0f, 0.0f}; -#pragma pop - -/* 80391930-8039193C 01DF90 000C+00 0/1 0/0 0/0 .rodata horseLocalBack$17680 */ -#pragma push -#pragma force_active on -static const Vec horseLocalBack = {0.0f, 0.0f, -200.0f}; -#pragma pop - -/* 8039193C-80391948 01DF9C 000C+00 0/1 0/0 0/0 .rodata boarLocalLeft$17681 */ -#pragma push -#pragma force_active on -static const Vec boarLocalLeft = {200.0f, 0.0f, -18.0f}; -#pragma pop - -/* 80391948-80391954 01DFA8 000C+00 0/1 0/0 0/0 .rodata boarLocalRight$17682 */ -#pragma push -#pragma force_active on -static const Vec boarLocalRight = {-200.0f, 0.0f, -18.0f}; -#pragma pop - -/* 80391954-80391960 01DFB4 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18095 */ -static const Vec localHorseRun_18095 = {15.0f, 0.0f, -45.0f}; - -/* 80391960-8039196C 01DFC0 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18103 */ -static const Vec localHorseRun_18103 = {30.0f, 0.0f, -10.0f}; - -/* 8039196C-80391978 01DFCC 000C+00 1/1 0/0 0/0 .rodata localOffset$18237 */ -static const Vec localOffset_18237 = {-30.0f, -18.0f, 0.0f}; - -/* 80391978-80391984 01DFD8 000C+00 1/1 0/0 0/0 .rodata @18938 */ -SECTION_RODATA static u8 const lit_18938[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80391978, &lit_18938); - -/* 80391984-80391990 01DFE4 000C+00 1/1 0/0 0/0 .rodata boarRideOffset$19147 */ -SECTION_RODATA static Vec const boarRideOffset = { - -0.87f, 3.3299999f, -23.77f -}; -COMPILER_STRIP_GATE(0x80391984, &boarRideOffset); - -/* 80391990-8039199C 01DFF0 000C+00 1/1 0/0 0/0 .rodata leftOffset$19386 */ -SECTION_RODATA static Vec const leftOffset = { - 75.0f, 102.0f, 6.224f -}; -COMPILER_STRIP_GATE(0x80391990, &leftOffset); - -/* 8039199C-803919A8 01DFFC 000C+00 1/1 0/0 0/0 .rodata rightOffset$19387 */ -SECTION_RODATA static Vec const rightOffset = { - -75.0f, 102.0f, 6.221f -}; -COMPILER_STRIP_GATE(0x8039199C, &rightOffset); - -/* 803919A8-803919D8 01E008 0030+00 0/1 0/0 0/0 .rodata cutParamTable$19765 */ -#pragma push -#pragma force_active on -static daAlink_cutHorseParamTbl const cutParamTable_19765[] = { - { - daAlink_c::FTANM_UNK_20, - 0x91, - 0x10C, - 0x00, - 0x0E, - 0x22, - }, - { - daAlink_c::FTANM_UNK_21, - 0x92, - 0x10D, - 0x00, - 0x13, - 0x23, - }, - { - daAlink_c::FTANM_UNK_22, - 0x93, - 0x10E, - 0x00, - 0x13, - 0x2A, - }, - { - daAlink_c::FTANM_UNK_23, - 0x94, - 0x10F, - 0x00, - 0x00, - 0x2A, - }, -}; -COMPILER_STRIP_GATE(0x803919A8, &cutParamTable_19765); -#pragma pop - -/* 803919D8-803919E4 01E038 000A+02 1/1 0/0 0/0 .rodata anmIdx$19945 */ -SECTION_RODATA static u16 const anmIdx[] = { - 0x00BA, - 0x00B8, - 0x00BB, - 0x00BC, - 0x00B9, -}; -COMPILER_STRIP_GATE(0x803919D8, &anmIdx); - -/* 803919E4-803919F0 01E044 000C+00 1/1 0/0 0/0 .rodata localPaddleTop$20605 */ -SECTION_RODATA static Vec const localPaddleTop = { - 0.0f, - 0.0f, - -158.0f, -}; -COMPILER_STRIP_GATE(0x803919E4, &localPaddleTop); - -/* 803919F0-803919FC 01E050 000C+00 1/1 0/0 0/0 .rodata underOffsetY$23302 */ -SECTION_RODATA static f32 const underOffsetY[3] = { - 15.0f, 90.0f, 150.0f, -}; -COMPILER_STRIP_GATE(0x803919F0, &underOffsetY); - -/* 803919FC-80391A08 01E05C 000C+00 1/1 0/0 0/0 .rodata hsVec$28749 */ -SECTION_RODATA static Vec const hsVec = { - 0.0f, 0.0f, 5.0f -}; -COMPILER_STRIP_GATE(0x803919FC, &hsVec); - -/* 80391A08-80391A14 01E068 000C+00 1/1 0/0 0/0 .rodata hookRoot$29726 */ -SECTION_RODATA static Vec const hookRoot = { - 0.0f, - 0.0f, - 23.5f, -}; -COMPILER_STRIP_GATE(0x80391A08, &hookRoot); - -/* 80391A14-80391A20 01E074 000C+00 1/1 0/0 0/0 .rodata bottleTop$32160 */ -SECTION_RODATA static Vec const bottleTop = { - 0.0f, - 25.0f, - 0.0f, -}; -COMPILER_STRIP_GATE(0x80391A14, &bottleTop); - -/* 80391A20-80391A2C 01E080 000C+00 1/1 0/0 0/0 .rodata kandelaarOffset$32655 */ -SECTION_RODATA static Vec const kandelaarOffset = { - 0.0f, -17.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391A20, &kandelaarOffset); - -/* 80391A2C-80391A38 01E08C 000C+00 1/1 0/0 0/0 .rodata @33690 */ -SECTION_RODATA static u8 const lit_33690[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80391A2C, &lit_33690); - -/* 80391A38-80391A44 01E098 000C+00 0/1 0/0 0/0 .rodata ironBallPosVec$34212 */ -static Vec const ironBallPosVec = { - 0.0f, 0.0f, -42.0f -}; - -/* 80391A44-80391A50 01E0A4 000C+00 0/1 0/0 0/0 .rodata handCenterOffsetVec$34213 */ -static Vec const handCenterOffsetVec = { - 2.0f, -25.0f, 12.5f -}; - -/* 80391A50-80391A5C 01E0B0 000C+00 1/1 0/0 0/0 .rodata @34968 */ -SECTION_RODATA static u8 const lit_34968[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80391A50, &lit_34968); - -/* 80391A5C-80391B5C 01E0BC 00FF+01 1/1 0/0 0/0 .rodata getSeType$37390 */ -SECTION_RODATA static u8 const getSeType[255] = { - 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x08, - 0x02, 0x02, 0x00, 0x01, 0x01, 0x02, 0x01, 0x08, 0x01, 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, - 0x01, 0x01, 0x08, 0x02, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x01, - 0x01, 0x01, 0x08, 0x08, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x08, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x08, 0x08, 0x08, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x02, 0x02, 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x01, 0x02, 0x02, - 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0x08, - 0x08, 0x08, 0x08, 0x02, 0x03, 0x03, 0x01, 0x08, 0x03, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, -}; -COMPILER_STRIP_GATE(0x80391A5C, &getSeType); - -/* 80391B5C-80391B7C 01E1BC 0020+00 1/1 0/0 0/0 .rodata bgmLabel$37391 */ -static u32 const bgmLabel[8] = { - Z2BGM_HEART_GET, Z2BGM_ITEM_GET, Z2BGM_ITEM_GET_MINI, Z2BGM_ITEM_GET_ME, - Z2BGM_ITEM_GET_INSECT, Z2BGM_ITEM_GET_SMELL, Z2BGM_ITEM_GET_POU, Z2BGM_ITEM_GET_ME_S, -}; - -/* 80391B7C-80391B8C 01E1DC 0010+00 1/1 0/0 0/0 .rodata rupeeCount$37407 */ -static int const rupeeCount[4] = {20, 50, 100, 200}; - -/* 80391B8C-80391BA0 01E1EC 0014+00 0/1 0/0 0/0 .rodata heartPieceMessage$37580 */ -#pragma push -#pragma force_active on -static u32 const heartPieceMessage[5] = {0x86, 0x9C, 0x9D, 0x9E, 0x9F}; -#pragma pop - -/* 80391BA0-80391BAC 01E200 000C+00 0/1 0/0 0/0 .rodata effName$39419 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u16 const effName_39419[] = { - 0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, 0x09FA, -}; -COMPILER_STRIP_GATE(0x80391BA0, &effName_39419); -#pragma pop - -/* 80391BAC-80391BB8 01E20C 000C+00 1/1 0/0 0/0 .rodata smokeParticleScale$39643 */ -SECTION_RODATA static Vec const smokeParticleScale_39643 = { - 0.69999999f, 0.69999999f, 0.69999999f -}; -COMPILER_STRIP_GATE(0x80391BAC, &smokeParticleScale_39643); - -/* 80391BB8-80391BC4 01E218 000C+00 1/1 0/0 0/0 .rodata wolfWaterCenterScale$39644 */ -SECTION_RODATA static Vec const wolfWaterCenterScale = { - 1.2f, 1.2f, 1.2f -}; -COMPILER_STRIP_GATE(0x80391BB8, &wolfWaterCenterScale); - -/* 80391BC4-80391BD0 01E224 000C+00 0/1 0/0 0/0 .rodata waterScale$39762 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const waterScale_39762 = { - 0.57999998f, 0.57999998f, 0.57999998f -}; -COMPILER_STRIP_GATE(0x80391BC4, &waterScale_39762); -#pragma pop - -/* 80391BD0-80391BDC 01E230 000C+00 0/1 0/0 0/0 .rodata waterCenterScale$39763 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const waterCenterScale = { - 1.2f, 1.2f, 1.2f -}; -COMPILER_STRIP_GATE(0x80391BD0, &waterCenterScale); -#pragma pop - -/* 80391BDC-80391BE8 01E23C 000C+00 0/1 0/0 0/0 .rodata waterSmokeScale$39764 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const waterSmokeScale = { - 0.69999999f, 0.69999999f, 0.69999999f -}; -COMPILER_STRIP_GATE(0x80391BDC, &waterSmokeScale); -#pragma pop - -/* 80391BE8-80391BF4 01E248 000C+00 0/1 0/0 0/0 .rodata smokeParticleScale$39891 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const smokeParticleScale_39891 = { - 0.8f, 0.8f, 0.8f -}; -COMPILER_STRIP_GATE(0x80391BE8, &smokeParticleScale_39891); -#pragma pop - -/* 80391BF4-80391C00 01E254 000C+00 0/1 0/0 0/0 .rodata waterScale$39892 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const waterScale_39892 = { - 1.25f, 1.25f, 1.25f -}; -COMPILER_STRIP_GATE(0x80391BF4, &waterScale_39892); -#pragma pop - -/* 80391C00-80391C0C 01E260 000C+00 0/1 0/0 0/0 .rodata wolfSmokeScale$39893 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wolfSmokeScale = { - 0.69999999f, 0.69999999f, 0.69999999f -}; -COMPILER_STRIP_GATE(0x80391C00, &wolfSmokeScale); -#pragma pop - -/* 80391C0C-80391C18 01E26C 000C+00 0/1 0/0 0/0 .rodata shikoScale$40012 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const shikoScale = { - 0.69999999f, 0.69999999f, 0.69999999f -}; -COMPILER_STRIP_GATE(0x80391C0C, &shikoScale); -#pragma pop - -/* 80391C18-80391C24 01E278 000C+00 0/1 0/0 0/0 .rodata pushedSlip$40013 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const pushedSlip = { - 0.8f, 0.8f, 0.8f -}; -COMPILER_STRIP_GATE(0x80391C18, &pushedSlip); -#pragma pop - -/* 80391C24-80391C30 01E284 000C+00 0/1 0/0 0/0 .rodata loseScale$40014 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const loseScale = { - 1.1f, 1.1f, 1.1f -}; -COMPILER_STRIP_GATE(0x80391C24, &loseScale); -#pragma pop - -/* 80391C30-80391C3C 01E290 000C+00 1/1 0/0 0/0 .rodata releaeScale$40567 */ -SECTION_RODATA static Vec const releaeScale = { - 0.8f, 0.8f, 0.8f, -}; -COMPILER_STRIP_GATE(0x80391C30, &releaeScale); - -/* 80391C3C-80391C48 01E29C 000C+00 0/1 0/0 0/0 .rodata lightAParticleScale$40829 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const lightAParticleScale = { - 1.0f, 1.171f, 1.0f -}; -COMPILER_STRIP_GATE(0x80391C3C, &lightAParticleScale); -#pragma pop - -/* 80391C48-80391C54 01E2A8 000C+00 0/1 0/0 0/0 .rodata lightALocalTrans$40830 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const lightALocalTrans = { - 68.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391C48, &lightALocalTrans); -#pragma pop - -/* 80391C54-80391C60 01E2B4 000C+00 0/1 0/0 0/0 .rodata localOffset$40952 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localOffset_40952 = { - 0.0f, -10.0f, -10.0f -}; -COMPILER_STRIP_GATE(0x80391C54, &localOffset_40952); -#pragma pop - -/* 80391C60-80391C6C 01E2C0 000C+00 0/1 0/0 0/0 .rodata localScale0$40953 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localScale0 = { - 0.69999999f, 0.85f, 1.5f -}; -COMPILER_STRIP_GATE(0x80391C60, &localScale0); -#pragma pop - -/* 80391C6C-80391C78 01E2CC 000C+00 0/1 0/0 0/0 .rodata localScale1$40954 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localScale1 = { - 1.0f, 0.85f, 1.5f -}; -COMPILER_STRIP_GATE(0x80391C6C, &localScale1); -#pragma pop - -/* 80391C78-80391C84 01E2D8 000C+00 0/1 0/0 0/0 .rodata waterEffScale$41082 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const waterEffScale = { - 1.5f, 1.5f, 1.5f -}; -COMPILER_STRIP_GATE(0x80391C78, &waterEffScale); -#pragma pop - -/* 80391C84-80391C9C 01E2E4 0018+00 0/1 0/0 0/0 .rodata leftTransNormal$41090 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leftTransNormal[] = { - {0.0f, 0.0f, 0.0f}, - {0.0f, 30.0f, 0.0f}, -}; -COMPILER_STRIP_GATE(0x80391C84, &leftTransNormal); -#pragma pop - -/* 80391C9C-80391CCC 01E2FC 0030+00 0/1 0/0 0/0 .rodata leftTransLight$41095 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leftTransLight[] = { - {0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, - {0.0f, 35.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, -}; -COMPILER_STRIP_GATE(0x80391C9C, &leftTransLight); -#pragma pop - -/* 80391CCC-80391CD8 01E32C 000C+00 0/1 0/0 0/0 .rodata effNameLarge$41096 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u16 const effNameLarge[] = { - 0x0BA5, 0x0BA6, 0x0BA7, 0x0BA8, 0x0BA9, 0x0BAA, -}; -COMPILER_STRIP_GATE(0x80391CCC, &effNameLarge); -#pragma pop - -/* 80391CD8-80391D20 01E338 0048+00 0/1 0/0 0/0 .rodata leftTransLarge$41100 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leftTransLarge[] = { - {0.0f, 0.0f, 0.0f}, - {0.0f, 35.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, - {0.0f, 45.0f, 0.0f}, - {0.0f, 30.0f, 0.0f}, - {0.0f, 50.0f, 0.0f}, -}; -COMPILER_STRIP_GATE(0x80391CD8, &leftTransLarge); -#pragma pop - -/* 80391D20-80391D38 01E380 0018+00 0/1 0/0 0/0 .rodata leftTransWater$41105 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leftTransWater[] = { - {0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, -}; -COMPILER_STRIP_GATE(0x80391D20, &leftTransWater); -#pragma pop - -/* 80391D38-80391D44 01E398 000C+00 1/1 0/0 0/0 .rodata effName$41208 */ -SECTION_RODATA static u16 const effName_41208[] = { - 0x09D0, 0x09D1, 0x09D2, 0x09D3, 0x09D4, 0x09D5, -}; -COMPILER_STRIP_GATE(0x80391D38, &effName_41208); - -/* 80391D44-80391D54 01E3A4 0010+00 1/1 0/0 0/0 .rodata swordUpColor$41733 */ -static GXColorS10 const swordUpColor[2] = {{13, 10, 2, 255}, {28, 16, 4, 255}}; - -/* 80391D54-80391D60 01E3B4 000C+00 1/1 0/0 0/0 .rodata swordCutSplashScale$41755 */ -SECTION_RODATA static Vec const swordCutSplashScale = { - 0.6f, 0.6f, 0.6f -}; -COMPILER_STRIP_GATE(0x80391D54, &swordCutSplashScale); - -/* 80391D60-80391D6C 01E3C0 000C+00 0/1 0/0 0/0 .rodata fairyScale$41951 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const fairyScale = { - 0.5f, 0.5f, 0.5f -}; -COMPILER_STRIP_GATE(0x80391D60, &fairyScale); -#pragma pop - -/* 80391D6C-80391D78 01E3CC 000C+00 0/1 0/0 0/0 .rodata chuchuLocalOffset$41952 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const chuchuLocalOffset = { - 0.0f, 15.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391D6C, &chuchuLocalOffset); -#pragma pop - -/* 80391D78-80391D84 01E3D8 000C+00 0/1 0/0 0/0 .rodata chuchuScale$41953 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const chuchuScale = { - 0.8f, 0.8f, 0.8f -}; -COMPILER_STRIP_GATE(0x80391D78, &chuchuScale); -#pragma pop - -/* 80391D84-80391D94 01E3E4 0010+00 1/1 0/0 0/0 .rodata effJoint$42070 */ -SECTION_RODATA static u16 const effJoint[2][4] = { - {0x0007, 0x000C, 0x0010, 0x0022}, - {0x0003, 0x0003, 0x0003, 0x0003}, -}; -COMPILER_STRIP_GATE(0x80391D84, &effJoint); - -/* 80391D94-80391DF4 01E3F4 0060+00 1/1 0/0 0/0 .rodata effOffset$42071 */ -SECTION_RODATA static Vec const effOffset[2][4] = { - { - {-5.0f, 0.0f, 0.0f}, - {15.0f, 3.0f, 5.0f}, - {4.0f, -10.0f, 15.0f}, - {0.0f, -5.0f, -7.0f}, - }, - { - {15.0f, 5.0f, -20.0f}, - {0.0f, -25.0f, 5.0f}, - {15.0f, -5.0f, 20.0f}, - {10.0f, -25.0f, -10.0f}, - } -}; -COMPILER_STRIP_GATE(0x80391D94, &effOffset); - -/* 80391DF4-80391E00 01E454 000C+00 0/1 0/0 0/0 .rodata effScale$42225 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const effScale = { - 1.0f, 1.8f, 1.0f -}; -COMPILER_STRIP_GATE(0x80391DF4, &effScale); -#pragma pop - -/* 80391E00-80391E0C 01E460 000C+00 0/1 0/0 0/0 .rodata wolfEffScale$42226 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wolfEffScale = { - 1.0f, 1.0f, 1.5f -}; -COMPILER_STRIP_GATE(0x80391E00, &wolfEffScale); -#pragma pop - -/* 80391E0C-80391E18 01E46C 000C+00 0/1 0/0 0/0 .rodata offsetPos$42227 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const offsetPos = { - 0.0f, 0.0f, -10.0f -}; -COMPILER_STRIP_GATE(0x80391E0C, &offsetPos); -#pragma pop - -/* 80391E18-80391E24 01E478 000C+00 1/1 0/0 0/0 .rodata localFootOffset$45107 */ -SECTION_RODATA static Vec const localFootOffset = { - 6.0f, -5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391E18, &localFootOffset); - -/* 80391E24-80391E30 01E484 000C+00 1/1 0/0 0/0 .rodata frontOffset$45186 */ -SECTION_RODATA static Vec const frontOffset = { - 0.0f, 0.0f, 50.0f -}; -COMPILER_STRIP_GATE(0x80391E24, &frontOffset); - -/* 80391E30-80391E3C 01E490 000C+00 1/1 0/0 0/0 .rodata wolfChainBaseOffset$45513 */ -SECTION_RODATA static Vec const wolfChainBaseOffset = { - 22.0f, 0.0f, -12.0f -}; -COMPILER_STRIP_GATE(0x80391E30, &wolfChainBaseOffset); - -/* 80391E3C-80391E48 01E49C 000C+00 1/1 0/0 0/0 .rodata wolfChainVec$45514 */ -SECTION_RODATA static Vec const wolfChainVec = { - 0.0f, 0.0f, -9.0f -}; -COMPILER_STRIP_GATE(0x80391E3C, &wolfChainVec); - -/* 80391E48-80391E78 01E4A8 0030+00 1/1 0/0 0/0 .rodata label$45760 */ -SECTION_RODATA static u32 const label[12] = { - Z2SE_WL_V_BREATH_SIT, Z2SE_WL_V_BREATH_WAIT, Z2SE_WL_V_BREATH_WALK, Z2SE_WL_V_BREATH_TIRED, - Z2SE_WL_V_DASH, Z2SE_WL_V_BREATH_JUMP, Z2SE_WL_V_SLIP_CLIMB, Z2SE_WL_V_PUSH_ROCK, - Z2SE_WL_V_TURN_BACK, Z2SE_WL_V_HOLD_THROW, Z2SE_WL_V_FAILED, Z2SE_WL_V_NOSE, -}; -COMPILER_STRIP_GATE(0x80391E48, &label); - -/* 80391E78-80391E8C 01E4D8 0014+00 1/1 0/0 0/0 .rodata normalType0$50859 */ -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 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 */ -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, - }, -}; - -/* 80391EC0-80391ECC 01E520 000C+00 1/1 0/0 0/0 .rodata arm1Vec$56040 */ -SECTION_RODATA static Vec const arm1Vec = { - 29.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391EC0, &arm1Vec); - -/* 80391ECC-80391ED8 01E52C 000C+00 1/1 0/0 0/0 .rodata arm2Vec$56041 */ -SECTION_RODATA static Vec const arm2Vec = { - 26.5f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391ECC, &arm2Vec); - -/* 80453228-8045322C 001828 0004+00 1/1 0/0 0/0 .sdata2 armJointTable$56027 */ -static const u16 armJointTable[] = { - 0x0007, - 0x000C, -}; - /* 800A2710-800A29DC 09D050 02CC+00 1/1 0/0 0/0 .text setArmMatrix__9daAlink_cFv */ int daAlink_c::setArmMatrix() { + static Vec const arm1Vec = {29.0f, 0.0f, 0.0f}; + static Vec const arm2Vec = {26.5f, 0.0f, 0.0f}; + static const u16 armJointTable[] = {0x0007,0x000C}; + daAlink_footData_c* var_r29 = mFootData2; int i; @@ -3521,41 +3408,13 @@ int daAlink_c::setArmMatrix() { return 1; } -/* 80391ED8-80391EE4 01E538 000C+00 0/1 0/0 0/0 .rodata leg1Vec$56150 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leg1Vec = { - 30.0f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391ED8, &leg1Vec); -#pragma pop - -/* 80391EE4-80391EF0 01E544 000C+00 0/1 0/0 0/0 .rodata leg2Vec$56151 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const leg2Vec = { - 39.363499f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391EE4, &leg2Vec); -#pragma pop - -/* 80391EF0-80391EFC 01E550 000C+00 0/1 0/0 0/0 .rodata footVec$56152 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const footVec = { - 14.18f, 0.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391EF0, &footVec); -#pragma pop - -/* 8045322C-80453230 00182C 0004+00 1/1 0/0 0/0 .sdata2 footJointTable$56137 */ -static const u16 footJointTable[] = { - 0x0012, - 0x0017, -}; - /* 800A29DC-800A2C24 09D31C 0248+00 1/1 0/0 0/0 .text setFootMatrix__9daAlink_cFv */ int daAlink_c::setFootMatrix() { + static Vec const leg1Vec = {30.0f, 0.0f, 0.0f}; + static Vec const leg2Vec = {39.363499f, 0.0f, 0.0f}; + static Vec const footVec = {14.18f, 0.0f, 0.0f}; + static const u16 footJointTable[] = {0x0012, 0x0017}; + daAlink_footData_c* var_r30 = mFootData1; int i; @@ -3766,51 +3625,14 @@ int daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param_ return 1; } -/* 80391EFC-80391F08 01E55C 000C+00 0/1 0/0 0/0 .rodata localLeftFootOffset$56542 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localLeftFootOffset = { - -3.0f, 13.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391EFC, &localLeftFootOffset); -#pragma pop - -/* 80391F08-80391F14 01E568 000C+00 0/1 0/0 0/0 .rodata localRightFootOffset$56543 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localRightFootOffset = { - -3.0f, -13.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F08, &localRightFootOffset); -#pragma pop - -/* 80391F14-80391F20 01E574 000C+00 0/1 0/0 0/0 .rodata localLeftToeOffset$56544 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localLeftToeOffset = { - 10.0f, 5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F14, &localLeftToeOffset); -#pragma pop - -/* 80391F20-80391F2C 01E580 000C+00 0/1 0/0 0/0 .rodata localRightToeOffset$56545 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localRightToeOffset = { - 10.0f, -5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F20, &localRightToeOffset); -#pragma pop - -/* 80450690-80450694 000110 0004+00 20/20 0/0 0/0 .sdata l_autoUpHeight */ -SECTION_SDATA static f32 l_autoUpHeight = 30.010000228881836f; - -/* 80450694-80450698 000114 0004+00 12/12 0/0 0/0 .sdata l_autoDownHeight */ -SECTION_SDATA static f32 l_autoDownHeight = -30.010000228881836f; - /* 800A3430-800A39B8 09DD70 0588+00 1/1 0/0 0/0 .text footBgCheck__9daAlink_cFv */ // NONMATCHING - regalloc void daAlink_c::footBgCheck() { + static Vec const localLeftFootOffset = {-3.0f, 13.0f, 0.0f}; + static Vec const localRightFootOffset = {-3.0f, -13.0f, 0.0f}; + static Vec const localLeftToeOffset = {10.0f, 5.0f, 0.0f}; + static Vec const localRightToeOffset = {10.0f, -5.0f, 0.0f}; + if (field_0x2060->getOldFrameFlg()) { f32 var_f31 = 0.0f; cM3dGPla sp98; @@ -3937,16 +3759,14 @@ void daAlink_c::footBgCheck() { } } -/* 80391F2C-80391F44 01E58C 0018+00 1/1 0/0 0/0 .rodata localHandPos$56752 */ -SECTION_RODATA static Vec const localHandPos[] = { - {22.096375f, 5.4923248f, 0.0f}, - {-21.900146f, 5.5253749f, 0.0f}, -}; -COMPILER_STRIP_GATE(0x80391F2C, &localHandPos); - /* 800A39B8-800A3C8C 09E2F8 02D4+00 1/1 0/0 0/0 .text handBgCheck__9daAlink_cFv */ // NONMATCHING - stack / regalloc void daAlink_c::handBgCheck() { + static Vec const localHandPos[] = { + {22.096375f, 5.4923248f, 0.0f}, + {-21.900146f, 5.5253749f, 0.0f}, + }; + if (!field_0x2060->getOldFrameFlg() || !checkModeFlg(0x40)) { return; } @@ -4144,1207 +3964,12 @@ int daAlink_c::initDemoBck(mDoExt_bckAnm** p_bck, char const* resName) { return 1; } -/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80392094 = "Rotary"; -SECTION_DEAD static char const* const stringBase_8039209B = "Rampart2"; -SECTION_DEAD static char const* const stringBase_803920A4 = "Allay"; -SECTION_DEAD static char const* const stringBase_803920AA = "AllayR"; -SECTION_DEAD static char const* const stringBase_803920B1 = "AllayR2"; -SECTION_DEAD static char const* const stringBase_803920B9 = "AllayS"; -SECTION_DEAD static char const* const stringBase_803920C0 = "StreetP"; -SECTION_DEAD static char const* const stringBase_803920C8 = "Street"; -SECTION_DEAD static char const* const stringBase_803920CF = "D_MN04B"; -SECTION_DEAD static char const* const stringBase_803920D7 = "Type"; -SECTION_DEAD static char const* const stringBase_803920DC = "D_MN07B"; -SECTION_DEAD static char const* const stringBase_803920E4 = "D_MN05A"; -SECTION_DEAD static char const* const stringBase_803920EC = "D_MN06A"; -SECTION_DEAD static char const* const stringBase_803920F4 = "F_SP117"; -SECTION_DEAD static char const* const stringBase_803920FC = "D_MN54"; -SECTION_DEAD static char const* const stringBase_80392103 = "F_SP103"; -SECTION_DEAD static char const* const stringBase_8039210B = "F_SP00"; -SECTION_DEAD static char const* const stringBase_80392112 = "F_SP127"; -SECTION_DEAD static char const* const stringBase_8039211A = "D_MN07A"; -SECTION_DEAD static char const* const stringBase_80392122 = "D_MN01A"; -SECTION_DEAD static char const* const stringBase_8039212A = "D_MN10"; -SECTION_DEAD static char const* const stringBase_80392131 = "D_MN10A"; -SECTION_DEAD static char const* const stringBase_80392139 = "F_SP108"; -SECTION_DEAD static char const* const stringBase_80392141 = "J_Tobi"; -SECTION_DEAD static char const* const stringBase_80392148 = "J_Umak"; -SECTION_DEAD static char const* const stringBase_8039214F = "D_MN01"; -SECTION_DEAD static char const* const stringBase_80392156 = "D_MN06"; -SECTION_DEAD static char const* const stringBase_8039215D = "D_MN05"; -SECTION_DEAD static char const* const stringBase_80392164 = "R22-opening"; -SECTION_DEAD static char const* const stringBase_80392170 = "pos"; -SECTION_DEAD static char const* const stringBase_80392174 = "angle"; -SECTION_DEAD static char const* const stringBase_8039217A = "prm0"; -SECTION_DEAD static char const* const stringBase_8039217F = "prm1"; -SECTION_DEAD static char const* const stringBase_80392184 = "stick"; -SECTION_DEAD static char const* const stringBase_8039218A = "D_MN09B"; -SECTION_DEAD static char const* const stringBase_80392192 = "D_MN05B"; -SECTION_DEAD static char const* const stringBase_8039219A = "F_SP115"; -SECTION_DEAD static char const* const stringBase_803921A2 = "D_MN11"; -SECTION_DEAD static char const* const stringBase_803921A9 = "D_MN07"; -SECTION_DEAD static char const* const stringBase_803921B0 = "F_SP102"; -SECTION_DEAD static char const* const stringBase_803921B8 = "D_MN08D"; -SECTION_DEAD static char const* const stringBase_803921C0 = "D_MN09A"; -SECTION_DEAD static char const* const stringBase_803921C8 = "D_MN08C"; -SECTION_DEAD static char const* const stringBase_803921D0 = "R_SP161"; -SECTION_DEAD static char const* const stringBase_803921D8 = "Obj_kbrg"; -SECTION_DEAD static char const* const stringBase_803921E1 = "Obj_obrg"; -SECTION_DEAD static char const* const stringBase_803921EA = "M_VolcBom"; -SECTION_DEAD static char const* const stringBase_803921F4 = "SCanCrs"; -SECTION_DEAD static char const* const stringBase_803921FC = "F_SP125"; -SECTION_DEAD static char const* const stringBase_80392204 = "D_MN08"; -SECTION_DEAD static char const* const stringBase_8039220B = "F_SP116"; -SECTION_DEAD static char const* const stringBase_80392213 = "zelda_v_cursor_new_yellow.blo"; -SECTION_DEAD static char const* const stringBase_80392231 = "zelda_v_cursor_new_yellow.bpk"; -SECTION_DEAD static char const* const stringBase_8039224F = "zelda_v_cursor_new_yellow.bck"; -SECTION_DEAD static char const* const stringBase_8039226D = "zelda_v_cursor_new_yellow_02.brk"; -SECTION_DEAD static char const* const stringBase_8039228E = "zelda_v_cursor_new_yellow.brk"; -SECTION_DEAD static char const* const stringBase_803922AC = "wl_eye_Hilight"; -SECTION_DEAD static char const* const stringBase_803922BB = "midona_eye_Hlight"; -SECTION_DEAD static char const* const stringBase_803922CD = "alSumou"; -SECTION_DEAD static char const* const stringBase_803922D5 = "bl.bmd"; -SECTION_DEAD static char const* const stringBase_803922DC = "bl_head.bmd"; -SECTION_DEAD static char const* const stringBase_803922E8 = "bl_hands.bmd"; -SECTION_DEAD static char const* const stringBase_803922F5 = "zl.bmd"; -SECTION_DEAD static char const* const stringBase_803922FC = "zl_head.bmd"; -SECTION_DEAD static char const* const stringBase_80392308 = "al_hands.bmd"; -SECTION_DEAD static char const* const stringBase_80392315 = "ml.bmd"; -SECTION_DEAD static char const* const stringBase_8039231C = "ml_head.bmd"; -SECTION_DEAD static char const* const stringBase_80392328 = "al.bmd"; -SECTION_DEAD static char const* const stringBase_8039232F = "al_head.bmd"; -SECTION_DEAD static char const* const stringBase_8039233B = "al_face.bmd"; -SECTION_DEAD static char const* const stringBase_80392347 = "zl_face.bmd"; -SECTION_DEAD static char const* const stringBase_80392353 = "al_bootsH.bmd"; -SECTION_DEAD static char const* const stringBase_80392361 = "al_kantera.bmd"; -SECTION_DEAD static char const* const stringBase_80392370 = "ef_ktGlow.bmd"; -SECTION_DEAD static char const* const stringBase_8039237E = "ef_ktGlow.btk"; -SECTION_DEAD static char const* const stringBase_8039238C = "al_SWB.bmd"; -SECTION_DEAD static char const* const stringBase_80392397 = "highlight02"; -SECTION_DEAD static char const* const stringBase_803923A3 = "F_SP200"; -SECTION_DEAD static char const* const stringBase_803923AB = "R_SP30"; -SECTION_DEAD static char const* const stringBase_803923B2 = "SMELL_1st"; -SECTION_DEAD static char const* const stringBase_803923BC = "SMELL_Child"; -SECTION_DEAD static char const* const stringBase_803923C8 = "Always"; -SECTION_DEAD static char const* const stringBase_803923CF = "demo00_Link_cut00_HL_tmp.bmd"; -SECTION_DEAD static char const* const stringBase_803923EC = "demo00_Link_cut00_HL_tmp.bck"; -SECTION_DEAD static char const* const stringBase_80392409 = "demo00_Link_cut00_HR_tmp.bmd"; -SECTION_DEAD static char const* const stringBase_80392426 = "demo00_Link_cut00_HR_tmp.bck"; -SECTION_DEAD static char const* const stringBase_80392443 = "demo00_Link_cut00_FC_blend.bmd"; -SECTION_DEAD static char const* const stringBase_80392462 = "demo00_Link_cut00_FC_tongue.bmd"; -SECTION_DEAD static char const* const stringBase_80392482 = "demo00_Link_cut00_FC_tmp.bck"; -SECTION_DEAD static char const* const stringBase_8039249F = "demo00_Link_cut00_HD_tmp.bck"; -SECTION_DEAD static char const* const stringBase_803924BC = "demo00_Link_cut00_FC_tmp.bls"; -SECTION_DEAD static char const* const stringBase_803924D9 = "F_SP118"; -SECTION_DEAD static char const* const stringBase_803924E1 = "D_MN08B"; -SECTION_DEAD static char const* const stringBase_803924E9 = "F_SP109"; -SECTION_DEAD static char const* const stringBase_803924F1 = "F_SP123"; -SECTION_DEAD static char const* const stringBase_803924F9 = "SCENE_EXIT"; -SECTION_DEAD static char const* const stringBase_80392504 = "R_SP127"; -SECTION_DEAD static char const* const stringBase_8039250C = "R_SP01"; -SECTION_DEAD static char const* const stringBase_80392513 = "D_MN08A"; -SECTION_DEAD static char const* const stringBase_8039251B = "ANGER"; -SECTION_DEAD static char const* const stringBase_80392521 = "ANGER2"; -SECTION_DEAD static char const* const stringBase_80392528 = "ml_body_power_down.brk"; -SECTION_DEAD static char const* const stringBase_8039253F = "ml_body_power_up_a.brk"; -SECTION_DEAD static char const* const stringBase_80392556 = "ml_body_power_up_b.brk"; -SECTION_DEAD static char const* const stringBase_8039256D = "ml_head_power_down.brk"; -SECTION_DEAD static char const* const stringBase_80392584 = "ml_head_power_up_a.brk"; -SECTION_DEAD static char const* const stringBase_8039259B = "ml_head_power_up_b.brk"; -#pragma pop - -/* 803AF990-803AF99C 00CAB0 000C+00 4/4 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803AF99C-803AF9A8 00CABC 000A+02 2/2 0/0 0/0 .data l_peepEventName */ -SECTION_DATA static const char l_peepEventName[10] = "PEEP_HOLE"; - -/* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */ -static cXyz l_waitBaseAnime(1.24279f, 102.0005f, 5.0f); - -/* 8042552C-80425538 05224C 000C+00 2/3 0/0 0/0 .bss l_ironBallBaseAnime */ -static cXyz l_ironBallBaseAnime(-4.248938f, 89.0f, -5.267045f); - -/* 80425544-80425550 052264 000C+00 15/17 0/0 0/0 .bss l_halfAtnWaitBaseAnime */ -static cXyz l_halfAtnWaitBaseAnime(3.5f, 97.0f, -7.0f); - -/* 8042555C-80425568 05227C 000C+00 1/2 0/0 0/0 .bss l_rWaitBaseAnime */ -static cXyz l_rWaitBaseAnime(4.313951f, 93.94436f, -5.207283f); - -/* 80425574-80425580 052294 000C+00 0/1 0/0 0/0 .bss l_lWaitBaseAnime */ -static cXyz l_lWaitBaseAnime(-4.300988f, 93.95595f, -5.218504f); - -/* 8042558C-80425598 0522AC 000C+00 3/5 0/0 0/0 .bss l_horseBaseAnime */ -static cXyz l_horseBaseAnime(-l_waitBaseAnime.x, 225.7f, 1.81f - l_waitBaseAnime.z); - -/* 804255A4-804255B0 0522C4 000C+00 3/5 0/0 0/0 .bss l_boarBaseAnime */ -static cXyz l_boarBaseAnime(-l_waitBaseAnime.x, 186.17f, -20.29f - l_waitBaseAnime.z); - -/* 804255BC-804255C8 0522DC 000C+00 1/3 0/0 0/0 .bss l_localHorseRidePos */ -static cXyz l_localHorseRidePos(-68.20898f, 41.60992f, 0.883789f); - -/* 804255D4-804255E0 0522F4 000C+00 1/3 0/0 0/0 .bss l_localBoarRidePos */ -static cXyz l_localBoarRidePos(0.0f, 15.0f, 0.0f); - -/* 804255EC-804255F8 05230C 000C+00 2/3 0/0 0/0 .bss l_canoeBaseAnime */ -static cXyz l_canoeBaseAnime(1.24279f - l_waitBaseAnime.x, 56.0f, -72.0f - l_waitBaseAnime.z); - -/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */ -static cXyz l_sumouBaseAnimeSp(0.0f, 0.0f, 32.0f - l_waitBaseAnime.z); - -/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */ -static cXyz l_wolfBaseAnime(1.0f, 88.63934f, -28.49793f); - -/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */ -static cXyz l_wolfRopeBaseAnime(0.115164f, 68.3363f, -7.667817f); - -daAlink_procInitTable daAlink_c::m_procInitTable[] = { - { &daAlink_c::procPreActionUnequip, 0x21 }, - { &daAlink_c::procServiceWait, 0x10000085 }, - { &daAlink_c::procTiredWait, 0x10001185 }, - { &daAlink_c::procWait, 0x10001185 }, - { &daAlink_c::procMove, 0x10001184 }, - { &daAlink_c::procAtnMove, 0x10001184 }, - { &daAlink_c::procAtnActorWait, 0x10001185 }, - { &daAlink_c::procAtnActorMove, 0x10001184 }, - { &daAlink_c::procWaitTurn, 0x10001085 }, - { &daAlink_c::procMoveTurn, 0x10001084 }, - { &daAlink_c::procSideStep, 0x10001186 }, - { &daAlink_c::procSideStepLand, 0x10001185 }, - { &daAlink_c::procSlide, 0x0 }, - { &daAlink_c::procSlideLand, 0x4 }, - { &daAlink_c::procFrontRoll, 0x8200 }, - { &daAlink_c::procFrontRollCrash, 0x2 }, - { &daAlink_c::procFrontRollSuccess, 0x0 }, - { &daAlink_c::procSideRoll, 0x8000 }, - { &daAlink_c::procBackJump, 0x8001086 }, - { &daAlink_c::procBackJumpLand, 0x1185 }, - { &daAlink_c::procSlip, 0x0 }, - { &daAlink_c::procAutoJump, 0x1006 }, - { &daAlink_c::procDiveJump, 0x2 }, - { &daAlink_c::procRollJump, 0x2 }, - { &daAlink_c::procFall, 0x1006 }, - { &daAlink_c::procLand, 0x1005 }, - { &daAlink_c::procSmallJump, 0x1000 }, - { &daAlink_c::procStepMove, 0x10001184 }, - { &daAlink_c::procCrouch, 0x800001 }, - { &daAlink_c::procGuardSlip, 0x60000000 }, - { &daAlink_c::procGuardAttack, 0x100 }, - { &daAlink_c::procGuardBreak, 0x100 }, - { &daAlink_c::procTurnMove, 0x8000 }, - { &daAlink_c::procCutNormal, 0x20000300 }, - { &daAlink_c::procCutFinish, 0x20000320 }, - { &daAlink_c::procCutFinishJumpUp, 0x102 }, - { &daAlink_c::procCutFinishJumpUpLand, 0x100 }, - { &daAlink_c::procCutReverse, 0x200 }, - { &daAlink_c::procCutJump, 0x8000202 }, - { &daAlink_c::procCutJumpLand, 0x8000201 }, - { &daAlink_c::procCutTurn, 0x200 }, - { &daAlink_c::procCutTurnCharge, 0x101 }, - { &daAlink_c::procCutTurnMove, 0x101 }, - { &daAlink_c::procCutDown, 0x8000022 }, - { &daAlink_c::procCutDownLand, 0x8002001 }, - { &daAlink_c::procCutHead, 0x222 }, - { &daAlink_c::procCutHeadLand, 0x201 }, - { &daAlink_c::procCutLargeJumpCharge, 0x101 }, - { &daAlink_c::procCutLargeJump, 0x200 }, - { &daAlink_c::procCutLargeJumpLand, 0x201 }, - { &daAlink_c::procDamage, 0x8 }, - { &daAlink_c::procLargeDamageUp, 0xa008008 }, - { &daAlink_c::procLandDamage, 0x9 }, - { &daAlink_c::procCrawlStart, 0x300a000 }, - { &daAlink_c::procCrawlMove, 0xb00e000 }, - { &daAlink_c::procCrawlAutoMove, 0xf00a000 }, - { &daAlink_c::procCrawlEnd, 0x300a000 }, - { &daAlink_c::procPullMove, 0x202000 }, - { &daAlink_c::procHorseRide, 0x4002400 }, - { &daAlink_c::procHorseGetOff, 0x4002400 }, - { &daAlink_c::procHorseWait, 0x10003585 }, - { &daAlink_c::procHorseTurn, 0x2500 }, - { &daAlink_c::procHorseJump, 0x2502 }, - { &daAlink_c::procHorseLand, 0x2500 }, - { &daAlink_c::procHorseSubjectivity, 0x60003404 }, - { &daAlink_c::procHorseCut, 0x2500 }, - { &daAlink_c::procHorseCutChargeReady, 0x2500 }, - { &daAlink_c::procHorseCutTurn, 0x2500 }, - { &daAlink_c::procHorseDamage, 0x2408 }, - { &daAlink_c::procHorseBowSubject, 0x60003404 }, - { &daAlink_c::procHorseBowMove, 0x60003404 }, - { &daAlink_c::procHorseGrabMove, 0x3404 }, - { &daAlink_c::procHorseBoomerangSubject, 0x60003404 }, - { &daAlink_c::procHorseBoomerangMove, 0x60003404 }, - { &daAlink_c::procHorseHookshotSubject, 0x60003404 }, - { &daAlink_c::procHorseHookshotMove, 0x60003404 }, - { &daAlink_c::procHorseBottleDrink, 0x2401 }, - { &daAlink_c::procHorseComeback, 0x2409 }, - { &daAlink_c::procHorseKandelaarPour, 0x2401 }, - { &daAlink_c::procHorseRun, 0x2400 }, - { &daAlink_c::procHorseHang, 0x2400 }, - { &daAlink_c::procHorseGetKey, 0x2401 }, - { &daAlink_c::procHorseLookDown, 0x2401 }, - { &daAlink_c::procBoarRun, 0x2400 }, - { &daAlink_c::procSwordUnequipSp, 0x1 }, - { &daAlink_c::procHangStart, 0x4041 }, - { &daAlink_c::procHangFallStart, 0x4041 }, - { &daAlink_c::procHangUp, 0x4041 }, - { &daAlink_c::procHangWait, 0x4041 }, - { &daAlink_c::procHangMove, 0x4040 }, - { &daAlink_c::procHangClimb, 0x4040 }, - { &daAlink_c::procHangWallCatch, 0x4040 }, - { &daAlink_c::procHangReady, 0x1 }, - { &daAlink_c::procHangLeverDown, 0x21 }, - { &daAlink_c::procBowSubject, 0x20001005 }, - { &daAlink_c::procBowMove, 0x20001004 }, - { &daAlink_c::procBoomerangSubject, 0x30001005 }, - { &daAlink_c::procBoomerangMove, 0x30001004 }, - { &daAlink_c::procBoomerangCatch, 0x1001 }, - { &daAlink_c::procCopyRodSubject, 0x30001005 }, - { &daAlink_c::procCopyRodMove, 0x30001004 }, - { &daAlink_c::procCopyRodSwing, 0x1 }, - { &daAlink_c::procCopyRodRevive, 0x1 }, - { &daAlink_c::procLadderUpStart, 0x10000 }, - { &daAlink_c::procLadderUpEnd, 0x10000 }, - { &daAlink_c::procLadderDownStart, 0x10000 }, - { &daAlink_c::procLadderDownEnd, 0x10000 }, - { &daAlink_c::procLadderMove, 0x10000 }, - { &daAlink_c::procGrabReady, 0x100001 }, - { &daAlink_c::procGrabUp, 0x100001 }, - { &daAlink_c::procGrabMiss, 0x100001 }, - { &daAlink_c::procGrabThrow, 0x100201 }, - { &daAlink_c::procGrabPut, 0x100001 }, - { &daAlink_c::procGrabWait, 0x1105 }, - { &daAlink_c::procGrabRebound, 0x100001 }, - { &daAlink_c::procGrabStand, 0x1 }, - { &daAlink_c::procInsectCatch, 0x21 }, - { &daAlink_c::procPickUp, 0x100001 }, - { &daAlink_c::procPickPut, 0x100001 }, - { &daAlink_c::procStEscape, 0x1 }, - { &daAlink_c::procDkCaught, 0x4000000 }, - { &daAlink_c::procSwimUp, 0x40000 }, - { &daAlink_c::procSwimWait, 0x40105 }, - { &daAlink_c::procSwimMove, 0x40104 }, - { &daAlink_c::procSwimDive, 0x40000 }, - { &daAlink_c::procSwimHookshotSubject, 0x20041005 }, - { &daAlink_c::procSwimHookshotMove, 0x20041004 }, - { &daAlink_c::procSwimDamage, 0x40008 }, - { &daAlink_c::procClimbUpStart, 0x10000 }, - { &daAlink_c::procClimbDownStart, 0x10000 }, - { &daAlink_c::procClimbMoveUpDown, 0x10000 }, - { &daAlink_c::procClimbMoveSide, 0x10000 }, - { &daAlink_c::procClimbWait, 0x10000 }, - { &daAlink_c::procClimbToRoof, 0x10000 }, - { &daAlink_c::procRoofHangStart, 0x10 }, - { &daAlink_c::procRoofHangWait, 0x11 }, - { &daAlink_c::procRoofHangFrontMove, 0x10 }, - { &daAlink_c::procRoofHangSideMove, 0x10 }, - { &daAlink_c::procRoofHangTurn, 0x10 }, - { &daAlink_c::procRoofSwitchHang, 0x2030 }, - { &daAlink_c::procCanoeRide, 0x4002400 }, - { &daAlink_c::procCanoeJumpRide, 0x4002400 }, - { &daAlink_c::procCanoeGetOff, 0x4002400 }, - { &daAlink_c::procCanoeWait, 0x14003504 }, - { &daAlink_c::procCanoeRow, 0x4002504 }, - { &daAlink_c::procCanoePaddleShift, 0x4002504 }, - { &daAlink_c::procCanoePaddlePut, 0x4002400 }, - { &daAlink_c::procCanoePaddleGrab, 0x4002400 }, - { &daAlink_c::procCanoeRodGrab, 0x4002400 }, - { &daAlink_c::procCanoeFishingWait, 0x44002404 }, - { &daAlink_c::procCanoeFishingReel, 0x44002500 }, - { &daAlink_c::procCanoeFishingGet, 0x4002400 }, - { &daAlink_c::procCanoeSubjectivity, 0x64002404 }, - { &daAlink_c::procCanoeBowSubject, 0x64003404 }, - { &daAlink_c::procCanoeBowMove, 0x64003404 }, - { &daAlink_c::procCanoeGrabMove, 0x4103404 }, - { &daAlink_c::procCanoeBoomerangSubject, 0x64003404 }, - { &daAlink_c::procCanoeBoomerangMove, 0x64003404 }, - { &daAlink_c::procCanoeHookshotSubject, 0x64003404 }, - { &daAlink_c::procCanoeHookshotMove, 0x64003404 }, - { &daAlink_c::procCanoeBottleDrink, 0x2401 }, - { &daAlink_c::procCanoeKandelaarPour, 0x2401 }, - { &daAlink_c::procFishingCast, 0x2101 }, - { &daAlink_c::procFishingFood, 0x2001 }, - { &daAlink_c::procSpinnerReady, 0x2002 }, - { &daAlink_c::procSpinnerWait, 0x2500 }, - { &daAlink_c::procBoardRide, 0x22 }, - { &daAlink_c::procBoardWait, 0x10001504 }, - { &daAlink_c::procBoardRow, 0x1504 }, - { &daAlink_c::procBoardTurn, 0x1504 }, - { &daAlink_c::procBoardJump, 0x1406 }, - { &daAlink_c::procBoardSubjectivity, 0x60000404 }, - { &daAlink_c::procBoardCut, 0x504 }, - { &daAlink_c::procBoardCutTurn, 0x400 }, - { &daAlink_c::procFmChainUp, 0x101 }, - { &daAlink_c::procFmChainStrongPull, 0x1001 }, - { &daAlink_c::procDoorOpen, 0x4000 }, - { &daAlink_c::procMonkeyMove, 0x800 }, - { &daAlink_c::procDemoBoomerangCatch, 0x10000101 }, - { &daAlink_c::procBottleDrink, 0x2001 }, - { &daAlink_c::procBottleOpen, 0x2001 }, - { &daAlink_c::procBottleSwing, 0x21 }, - { &daAlink_c::procBottleGet, 0x1 }, - { &daAlink_c::procKandelaarSwing, 0x1 }, - { &daAlink_c::procKandelaarPour, 0x2001 }, - { &daAlink_c::procGrassWhistleGet, 0x21 }, - { &daAlink_c::procGrassWhistleWait, 0x2001 }, - { &daAlink_c::procHawkCatch, 0x1 }, - { &daAlink_c::procHawkSubject, 0x20000021 }, - { &daAlink_c::procFloorDownRebound, 0x10001185 }, - { &daAlink_c::procGoronRideWait, 0x101 }, - { &daAlink_c::procGoatMove, 0x4002121 }, - { &daAlink_c::procGoatCatch, 0x400a021 }, - { &daAlink_c::procGoatStroke, 0x2121 }, - { &daAlink_c::procGoronMove, 0x101 }, - { &daAlink_c::procDemoCommon, 0x1 }, - { &daAlink_c::procHookshotSubject, 0x20001005 }, - { &daAlink_c::procHookshotMove, 0x20001004 }, - { &daAlink_c::procHookshotFly, 0x6002 }, - { &daAlink_c::procHookshotRoofWait, 0x6802 }, - { &daAlink_c::procHookshotRoofShoot, 0x6902 }, - { &daAlink_c::procHookshotRoofBoots, 0x6902 }, - { &daAlink_c::procHookshotWallWait, 0x6802 }, - { &daAlink_c::procHookshotWallShoot, 0x6902 }, - { &daAlink_c::procMagneBootsFly, 0x2 }, - { &daAlink_c::procBootsEquip, 0x1103 }, - { &daAlink_c::procSumouReady, 0xa000 }, - { &daAlink_c::procSumouMove, 0xa000 }, - { &daAlink_c::procSumouSideMove, 0xa000 }, - { &daAlink_c::procSumouAction, 0xa000 }, - { &daAlink_c::procSumouStagger, 0xa000 }, - { &daAlink_c::procSumouWinLose, 0x2002 }, - { &daAlink_c::procSumouShiko, 0xa000 }, - { &daAlink_c::procLookUp, 0x101 }, - { &daAlink_c::procLookUpToGetItem, 0x101 }, - { &daAlink_c::procHandPat, 0x101 }, - { &daAlink_c::procIronBallSubject, 0x20001005 }, - { &daAlink_c::procIronBallMove, 0x20001004 }, - { &daAlink_c::procIronBallThrow, 0x20000000 }, - { &daAlink_c::procIronBallReturn, 0x1 }, - { &daAlink_c::procBossBodyHang, 0x6029 }, - { &daAlink_c::procOctaIealSpit, 0x42008 }, - { &daAlink_c::procScreamWait, 0x1 }, - { &daAlink_c::procGoatStopReady, 0x1 }, - { &daAlink_c::procZoraMove, 0xe000 }, - { &daAlink_c::procLookAroundTurn, 0x1 }, - { &daAlink_c::procTradeItemOut, 0x80121 }, - { &daAlink_c::procNotUseItem, 0x2021 }, - { &daAlink_c::procSwordReady, 0x1 }, - { &daAlink_c::procSwordPush, 0x1 }, - { &daAlink_c::procGanonFinish, 0xe000 }, - { &daAlink_c::procCutFastReady, 0x1 }, - { &daAlink_c::procMasterSwordStick, 0x6001 }, - { &daAlink_c::procMasterSwordPull, 0x6001 }, - { &daAlink_c::procDungeonWarpReady, 0x2021 }, - { &daAlink_c::procDungeonWarp, 0x6003 }, - { &daAlink_c::procDungeonWarpSceneStart, 0x6003 }, - { &daAlink_c::procWolfHowlDemo, 0x800021 }, - { &daAlink_c::procWolfServiceWait, 0x1001 }, - { &daAlink_c::procWolfTiredWait, 0x1101 }, - { &daAlink_c::procWolfMidnaRideShock, 0x1 }, - { &daAlink_c::procWolfWait, 0x1101 }, - { &daAlink_c::procWolfMove, 0x1100 }, - { &daAlink_c::procWolfDash, 0x1100 }, - { &daAlink_c::procWolfDashReverse, 0x2 }, - { &daAlink_c::procWolfWaitTurn, 0x1001 }, - { &daAlink_c::procWolfAtnActorMove, 0x1100 }, - { &daAlink_c::procWolfSideStep, 0x1102 }, - { &daAlink_c::procWolfSideStepLand, 0x1101 }, - { &daAlink_c::procWolfBackJump, 0x1002 }, - { &daAlink_c::procWolfBackJumpLand, 0x1001 }, - { &daAlink_c::procWolfHowl, 0x1 }, - { &daAlink_c::procWolfAutoJump, 0x1002 }, - { &daAlink_c::procWolfFall, 0x1002 }, - { &daAlink_c::procWolfLand, 0x1001 }, - { &daAlink_c::procWolfSit, 0x800101 }, - { &daAlink_c::procWolfLieStart, 0x1000100 }, - { &daAlink_c::procWolfLieMove, 0x1000100 }, - { &daAlink_c::procWolfLieAutoMove, 0x5002000 }, - { &daAlink_c::procWolfHangReady, 0x1001 }, - { &daAlink_c::procWolfStepMove, 0x10001100 }, - { &daAlink_c::procWolfHangWallCatch, 0x10005040 }, - { &daAlink_c::procWolfHangFallStart, 0x10005041 }, - { &daAlink_c::procWolfDamage, 0x8 }, - { &daAlink_c::procWolfLargeDamageUp, 0x12008008 }, - { &daAlink_c::procWolfLandDamage, 0x9 }, - { &daAlink_c::procWolfScreamWait, 0x1 }, - { &daAlink_c::procWolfSlip, 0x10001000 }, - { &daAlink_c::procWolfSlipTurn, 0x10001000 }, - { &daAlink_c::procWolfSlipTurnLand, 0x10001000 }, - { &daAlink_c::procWolfSlideReady, 0x10008000 }, - { &daAlink_c::procWolfSlide, 0x1000 }, - { &daAlink_c::procWolfSlideLand, 0x1000 }, - { &daAlink_c::procWolfWaitSlip, 0x1100 }, - { &daAlink_c::procWolfSlopeStart, 0x1000 }, - { &daAlink_c::procWolfRopeMove, 0x23100 }, - { &daAlink_c::procWolfRopeHang, 0x10023000 }, - { &daAlink_c::procWolfRopeTurn, 0x10023000 }, - { &daAlink_c::procWolfRopeStagger, 0x10023000 }, - { &daAlink_c::procWolfRopeSubjectivity, 0x23001 }, - { &daAlink_c::procWolfTagJump, 0x1022 }, - { &daAlink_c::procWolfTagJumpLand, 0x120 }, - { &daAlink_c::procWolfRollAttackCharge, 0x100 }, - { &daAlink_c::procWolfRollAttackMove, 0x100 }, - { &daAlink_c::procWolfJumpAttack, 0x2 }, - { &daAlink_c::procWolfJumpAttackKick, 0x2 }, - { &daAlink_c::procWolfJumpAttackSlideLand, 0x0 }, - { &daAlink_c::procWolfJumpAttackNormalLand, 0x0 }, - { &daAlink_c::procWolfWaitAttack, 0x0 }, - { &daAlink_c::procWolfRollAttack, 0x0 }, - { &daAlink_c::procWolfDownAttack, 0x22 }, - { &daAlink_c::procWolfDownAtLand, 0x8002021 }, - { &daAlink_c::procWolfDownAtMissLand, 0x0 }, - { &daAlink_c::procWolfLockAttack, 0x2002 }, - { &daAlink_c::procWolfLockAttackTurn, 0x0 }, - { &daAlink_c::procWolfSwimUp, 0x40000 }, - { &daAlink_c::procWolfSwimWait, 0x40101 }, - { &daAlink_c::procWolfSwimMove, 0x40100 }, - { &daAlink_c::procWolfSwimEndWait, 0x1001 }, - { &daAlink_c::procWolfGrabUp, 0x100001 }, - { &daAlink_c::procWolfGrabPut, 0x100001 }, - { &daAlink_c::procWolfGrabThrow, 0x100001 }, - { &daAlink_c::procWolfChainUp, 0x1 }, - { &daAlink_c::procWolfPush, 0x20 }, - { &daAlink_c::procWolfChainReady, 0x20000 }, - { &daAlink_c::procWolfChainWait, 0x10020000 }, - { &daAlink_c::procWolfDig, 0xa020 }, - { &daAlink_c::procWolfDigThrough, 0xe000 }, - { &daAlink_c::procWolfAttackReverse, 0x2 }, - { &daAlink_c::procWolfEnemyThrow, 0x0 }, - { &daAlink_c::procWolfEnemyHangBite, 0xe002 }, - { &daAlink_c::procWolfGiantPuzzle, 0x100 }, - { &daAlink_c::procWolfCargoCarry, 0x400e022 }, - { &daAlink_c::procWolfGetSmell, 0xe021 }, - { &daAlink_c::procDemoCommon, 0x1 }, - { &daAlink_c::procWolfSnowEscape, 0xa000 }, - { &daAlink_c::procWolfGanonCatch, 0x4002021 }, - { &daAlink_c::procCoToolDemo, 0x8000 }, - { &daAlink_c::procCoSubjectivity, 0x20001005 }, - { &daAlink_c::procCoSwimSubjectivity, 0x20041001 }, - { &daAlink_c::procCoPeepSubjectivity, 0x2000200b }, - { &daAlink_c::procCoPolyDamage, 0x9 }, - { &daAlink_c::procCoElecDamage, 0x9 }, - { &daAlink_c::procCoPushPullWait, 0x202001 }, - { &daAlink_c::procCoPushMove, 0x202000 }, - { &daAlink_c::procCoTalk, 0x80101 }, - { &daAlink_c::procCoOpenTreasure, 0xe001 }, - { &daAlink_c::procCoUnequip, 0x1 }, - { &daAlink_c::procCoGetItem, 0x800e001 }, - { &daAlink_c::procCoTurnBack, 0x1 }, - { &daAlink_c::procCoLookWait, 0x1101 }, - { &daAlink_c::procDemoCommon, 0x200001 }, - { &daAlink_c::procDemoCommon, 0x200000 }, - { &daAlink_c::procCoMetamorphose, 0x8001 }, - { &daAlink_c::procCoMetamorphoseOnly, 0x6001 }, - { &daAlink_c::procCoWarp, 0x1 }, - { &daAlink_c::procCoDead, 0xa009 }, - { &daAlink_c::procCoFogDead, 0xa009 }, - { &daAlink_c::procCoLookAround, 0x0 }, - { &daAlink_c::procDemoCommon, 0xe000 }, - { &daAlink_c::procCoSandWallHit, 0xa }, - { &daAlink_c::procCoLavaReturn, 0x42009 }, - { &daAlink_c::procCoSwimFreezeReturn, 0x42009 }, - { &daAlink_c::procCoGetReadySit, 0xa001 }, - { &daAlink_c::procCoTwGate, 0xe002 }, - { &daAlink_c::procCoLargeDamage, 0xa }, - { &daAlink_c::procCoLargeDamageWall, 0xa }, - { &daAlink_c::procCoNod, 0x80001 }, - { &daAlink_c::procDemoCommon, 0x80001 }, - { &daAlink_c::procCoGlare, 0x80001 }, - { &daAlink_c::procCoHorseCallWait, 0x1 }, - { &daAlink_c::procDemoCommon, 0x1 }, -}; - -/* 803B22E0-803B2754 00F400 0474+00 1/2 0/0 0/0 .data m_demoInitTable__9daAlink_c */ -daAlink_procFunc daAlink_c::m_demoInitTable[] = { - NULL, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::commonWaitTurnInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoOpenTreasureInit, - &daAlink_c::procCoGetItemInit, - &daAlink_c::procCoUnequipInit, - &daAlink_c::commonGrabPutInit, - NULL, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procMonkeyMoveInit, - &daAlink_c::procCoLookAroundInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoTurnBackInit, - NULL, - NULL, - &daAlink_c::procDemoBoomerangCatchInit, - &daAlink_c::procHawkCatchInit, - &daAlink_c::procSwordUnequipSpInit, - NULL, - &daAlink_c::procCoDemoPushPullWaitInit, - &daAlink_c::procCoDemoPushMoveInit, - &daAlink_c::procBossAtnWaitInit, - &daAlink_c::procDoorOpenInit, - NULL, - &daAlink_c::procTradeItemOutInit, - NULL, - &daAlink_c::procKandelaarSwingInit, - &daAlink_c::procFrontRollInit, - &daAlink_c::procCrouchInit, - NULL, - NULL, - NULL, - NULL, - &daAlink_c::procCoCaughtInit, - &daAlink_c::procLookUpInit, - &daAlink_c::procLookUpToGetItemInit, - &daAlink_c::procHandPatInit, - &daAlink_c::procWolfMidnaRideShockInit, - &daAlink_c::procSumouShikoInit, - &daAlink_c::procCoFogDeadInit, - &daAlink_c::procWolfSmellWaitInit, - NULL, - NULL, - &daAlink_c::procWolfCargoCarryInit, - &daAlink_c::procCoMetamorphoseInit, - &daAlink_c::procCoMetamorphoseInit, - &daAlink_c::procHorseGetKeyInit, - &daAlink_c::procCoNodInit, - &daAlink_c::procCoGlareInit, - &daAlink_c::procCoEyeAwayInit, - &daAlink_c::procGoatStopReadyInit, - &daAlink_c::procCoGetReadySitInit, - NULL, - &daAlink_c::procCoTwGateInit, - &daAlink_c::procFmChainStrongPullInit, - &daAlink_c::procWolfSnowEscapeInit, - &daAlink_c::procZoraMoveInit, - &daAlink_c::procCoMetamorphoseOnlyInit, - &daAlink_c::procCoMetamorphoseOnlyInit, - &daAlink_c::procLookAroundTurnInit, - NULL, - &daAlink_c::procCoQuakeWaitInit, - &daAlink_c::procGuardAttackInit, - &daAlink_c::procSwordReadyInit, - &daAlink_c::procDungeonWarpInit, - &daAlink_c::procDungeonWarpSceneStartInit, - &daAlink_c::procMasterSwordStickInit, - &daAlink_c::procMasterSwordPullInit, - &daAlink_c::procCutDownInit, - NULL, - &daAlink_c::procCutHeadInit, - NULL, - NULL, - &daAlink_c::procCutLargeJumpInit, - &daAlink_c::procCutFastReadyInit, - &daAlink_c::procCopyRodReviveInit, - &daAlink_c::procSwordPushInit, - &daAlink_c::procGanonFinishInit, - NULL, - NULL, - &daAlink_c::procHorseLookDownInit, - NULL, -}; - -/* 803B2754-803B2798 00F874 0044+00 0/1 0/0 0/0 .data l_cylSrc */ -static dCcD_SrcCyl l_cylSrc = { - { - {0, {{AT_TYPE_WOLF_ATTACK, 3, 0x1A}, {0xD8FFFDFF, 5}, 0x73}}, - {dCcD_SE_WOLF_BITE, 3, 1, 0, {1}}, - {dCcD_SE_NONE, 6, 0, 0, {0}}, - {0}, - }, - { - {0.0f, 0.0f, 0.0f}, - 35.0f, - 180.0f, - }, -}; - -/* 803B2798-803B27D8 00F8B8 0040+00 1/2 0/0 0/0 .data l_sphSrc */ -static dCcD_SrcSph l_sphSrc = { - { - {0, {{AT_TYPE_NORMAL_SWORD, 3, 0x1A}, {0xD8FBFDFF, 5}, 0x73}}, - {dCcD_SE_SWORD, 3, 1, 0, {1}}, - {dCcD_SE_NONE, 6, 0, 0, {0}}, - {0}, - }, - {{ - {0.0f, 0.0f, 0.0f}, - 40.0f, - }}, -}; - -/* 803B27D8-803B281C 00F8F8 0044+00 0/1 0/0 0/0 .data l_atCylSrc */ -static dCcD_SrcCyl l_atCylSrc = { - { - {0, {{AT_TYPE_NORMAL_SWORD, 2, 0x1B}, {0, 0}, 0}}, - {dCcD_SE_SWORD, 3, 1, 0, {1}}, - {dCcD_SE_NONE, 0, 0, 0, {0}}, - {0}, - }, - { - {0.0f, 0.0f, 0.0f}, - 180.0f, - 130.0f, - }, -}; - -/* 803B281C-803B2868 00F93C 004C+00 0/1 0/0 0/0 .data l_atCpsSrc */ -static dCcD_SrcCps l_atCpsSrc = { - { - {0, {{AT_TYPE_NORMAL_SWORD, 1, 0x1B}, {0, 0}, 0}}, - {dCcD_SE_SWORD, 1, 0, 0, {1}}, - {dCcD_SE_NONE, 0, 0, 0, {0}}, - {0}, - }, - {{ - {0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, - 20.0f, - }}, -}; - -/* 803B2868-803B2880 00F988 0018+00 1/0 0/0 0/0 .data l_jntColPos0 */ -SECTION_DATA static Vec l_jntColPos0[] = { - {0.0f, 0.0f, 0.0f}, - {44.0f, 0.0f, 0.0f} -}; - -/* 803B2880-803B288C 00F9A0 000C+00 1/0 0/0 0/0 .data l_jntColPos1 */ -SECTION_DATA static Vec l_jntColPos1 = { - 0.0f, -10.0f, 0.0f -}; - -/* 803B288C-803B28A4 00F9AC 0018+00 1/0 0/0 0/0 .data l_jntColPos2 */ -SECTION_DATA static Vec l_jntColPos2[] = { - {-5.0f, 0.0f, 0.0f}, - {28.0f, 0.0f, 0.0f} -}; - -/* 803B28A4-803B28BC 00F9C4 0018+00 1/0 0/0 0/0 .data l_jntColPos4 */ -SECTION_DATA static Vec l_jntColPos4[] = { - {-4.0f, 0.0f, 0.0f}, - {28.0f, 0.0f, 0.0f} -}; - -/* 803B28BC-803B28C8 00F9DC 000C+00 1/0 0/0 0/0 .data l_jntColPos6 */ -SECTION_DATA static Vec l_jntColPos6 = { 8.0f, 0.0f, 0.0f }; - -/* 803B28C8-803B28E0 00F9E8 0018+00 1/0 0/0 0/0 .data l_jntColPos8 */ -SECTION_DATA static Vec l_jntColPos8[] = { - {0.0f, 0.0f, 0.0f}, - {38.0f, 0.0f, 0.0f} -}; - -/* 803B28E0-803B28F8 00FA00 0018+00 1/0 0/0 0/0 .data l_jntColPos9 */ -SECTION_DATA static Vec l_jntColPos9[] = { - {0.0f, -5.0f, 0.0f}, - {35.0f, 0.0f, 0.0f} -}; - -/* 803B28F8-803B2910 00FA18 0018+00 1/0 0/0 0/0 .data l_jntColPos10 */ -SECTION_DATA static Vec l_jntColPos10[] = { - {0.0f, 5.0f, 0.0f}, - {35.0f, 0.0f, 0.0f} -}; - -/* 803B2910-803B2928 00FA30 0018+00 1/0 0/0 0/0 .data l_jntColPos11 */ -SECTION_DATA static Vec l_jntColPos11[] = { - {0.0f, 0.0f, 0.0f}, - {48.0f, 2.0f, 0.0f} -}; - -/* 803B2928-803B2940 00FA48 0018+00 1/0 0/0 0/0 .data l_jntColPos12 */ -SECTION_DATA static Vec l_jntColPos12[] = { - {0.0f, 0.0f, 0.0f}, - {48.0f, -2.0f, 0.0f} -}; - -/* 803B2940-803B2958 00FA60 0018+00 1/0 0/0 0/0 .data l_jntColPos13 */ -SECTION_DATA static Vec l_jntColPos13[] = { - {0.0f, 5.0f, 0.0f}, - {22.0f, 0.0f, 0.0f} -}; - -/* 803B2958-803B2970 00FA78 0018+00 1/0 0/0 0/0 .data l_jntColPos14 */ -SECTION_DATA static Vec l_jntColPos14[] = { - {0.0f, -5.0f, 0.0f}, - {22.0f, 0.0f, 0.0f} -}; - -/* 803B2970-803B2988 00FA90 0018+00 1/0 0/0 0/0 .data l_jntColPos15 */ -SECTION_DATA static Vec l_jntColPos15[] = { - {-15.0f, 0.0f, 17.0f}, - {0.0f, 0.0f, 1.0f} -}; - -/* 803B2988-803B29A0 00FAA8 0018+00 1/0 0/0 0/0 .data l_jntColPos16 */ -SECTION_DATA static Vec l_jntColPos16[] = { - {13.0f, 13.0f, -8.0f}, - {0.0f, 1.0f, 0.0f} -}; - -/* 803B29A0-803B29AC 00FAC0 000C+00 1/0 0/0 0/0 .data l_jntColPos17 */ -SECTION_DATA static Vec l_jntColPos17 = { - -15.0f, -10.0f, -30.0f -}; - -/* 803B29AC-803B2A84 -00001 00D8+00 1/1 0/0 0/0 .data l_jntColData */ -static dJntColData_c l_jntColData[] = { - { - 1, - 0, - 1, - 18.0f, - l_jntColPos0, - }, - { - 0, - 0, - 4, - 16.0f, - &l_jntColPos1, - }, - { - 1, - 0, - 7, - 7.0f, - l_jntColPos2, - }, - { - 1, - 0, - 12, - 7.0f, - l_jntColPos2, - }, - { - 1, - 0, - 8, - 6.0f, - l_jntColPos4, - }, - { - 1, - 0, - 13, - 6.0f, - l_jntColPos4, - }, - { - 0, - 0, - 9, - 6.0f, - &l_jntColPos6, - }, - { - 0, - 0, - 14, - 6.0f, - &l_jntColPos6, - }, - { - 1, - 0, - 16, - 18.0f, - l_jntColPos8, - }, - { - 1, - 0, - 18, - 8.0f, - l_jntColPos9, - }, - { - 1, - 0, - 23, - 8.0f, - l_jntColPos10, - }, - { - 1, - 0, - 19, - 7.0f, - l_jntColPos11, - }, - { - 1, - 0, - 24, - 7.0f, - l_jntColPos12, - }, - { - 1, - 0, - 20, - 6.0f, - l_jntColPos13, - }, - { - 1, - 0, - 25, - 6.0f, - l_jntColPos14, - }, - { - 2, - 3, - 15, - 40.0f, - l_jntColPos15, - }, - { - 2, - 3, - 5, - 40.0f, - l_jntColPos16, - }, - { - 0, - 3, - 15, - 45.0f, - &l_jntColPos17, - }, -}; - -/* 803B2A84-803B2A9C 00FBA4 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos0 */ -SECTION_DATA static Vec l_wolfJntColPos0[] = { - {-25.0f, 20.0f, 0.0f}, - {80.0f, 0.0f, 0.0f} -}; - -/* 803B2A9C-803B2AA8 00FBBC 000C+00 1/0 0/0 0/0 .data l_wolfJntColPos1 */ -SECTION_DATA static Vec l_wolfJntColPos1 = { - 5.0f, 3.0f, 0.0f -}; - -/* 803B2AA8-803B2AC0 00FBC8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos2 */ -SECTION_DATA static Vec l_wolfJntColPos2[] = { - {0.0f, 0.0f, 0.0f}, - {35.0f, 3.0f, 0.0f} -}; - -/* 803B2AC0-803B2AD8 00FBE0 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos4 */ -SECTION_DATA static Vec l_wolfJntColPos4[] = { - {0.0f, 2.0f, 0.0f}, - {30.0f, 0.0f, 0.0f} -}; - -/* 803B2AD8-803B2AF0 00FBF8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos6 */ -SECTION_DATA static Vec l_wolfJntColPos6[] = { - {0.0f, 0.0f, 0.0f}, - {20.0f, 0.0f, 0.0f} -}; - -/* 803B2AF0-803B2B08 00FC10 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos8 */ -SECTION_DATA static Vec l_wolfJntColPos8[] = { - {0.0f, -2.0f, 0.0f}, - {12.0f, -2.0f, 0.0f} -}; - -/* 803B2B08-803B2B20 00FC28 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos10 */ -SECTION_DATA static Vec l_wolfJntColPos10[] = { - {0.0f, 0.0f, 0.0f}, - {33.0f, -2.0f, 0.0f} -}; - -/* 803B2B20-803B2B38 00FC40 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos12 */ -SECTION_DATA static Vec l_wolfJntColPos12[] = { - {-5.0f, -2.0f, 0.0f}, - {15.0f, 0.0f, 0.0f} -}; - -/* 803B2B38-803B2B50 00FC58 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos14 */ -SECTION_DATA static Vec l_wolfJntColPos14[] = { - {-4.0f, 0.0f, 0.0f}, - {33.0f, 0.0f, 0.0f} -}; - -/* 803B2B50-803B2B68 00FC70 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos16 */ -SECTION_DATA static Vec l_wolfJntColPos16[] = { - {0.0f, -3.0f, 0.0f}, - {13.0f, -3.0f, 0.0f} -}; - -/* 803B2B68-803B2C40 -00001 00D8+00 1/1 0/0 0/0 .data l_wolfJntColData */ -static dJntColData_c l_wolfJntColData[] = { - { - 1, - 0, - 1, - 28.0f, - l_wolfJntColPos0, - }, - { - 0, - 0, - 4, - 25.0f, - &l_wolfJntColPos1, - }, - { - 1, - 0, - 16, - 10.0f, - l_wolfJntColPos2, - }, - { - 1, - 0, - 21, - 10.0f, - l_wolfJntColPos2, - }, - { - 1, - 0, - 17, - 6.0f, - l_wolfJntColPos4, - }, - { - 1, - 0, - 22, - 6.0f, - l_wolfJntColPos4, - }, - { - 1, - 0, - 18, - 4.0f, - l_wolfJntColPos6, - }, - { - 1, - 0, - 23, - 4.0f, - l_wolfJntColPos6, - }, - { - 1, - 0, - 19, - 4.0f, - l_wolfJntColPos8, - }, - { - 1, - 0, - 24, - 4.0f, - l_wolfJntColPos8, - }, - { - 1, - 0, - 28, - 11.0f, - l_wolfJntColPos10, - }, - { - 1, - 0, - 33, - 11.0f, - l_wolfJntColPos10, - }, - { - 1, - 0, - 29, - 7.0f, - l_wolfJntColPos12, - }, - { - 1, - 0, - 34, - 7.0f, - l_wolfJntColPos12, - }, - { - 1, - 0, - 30, - 5.0f, - l_wolfJntColPos14, - }, - { - 1, - 0, - 35, - 5.0f, - l_wolfJntColPos14, - }, - { - 1, - 0, - 31, - 6.0f, - l_wolfJntColPos16, - }, - { - 1, - 0, - 36, - 5.0f, - l_wolfJntColPos16, - }, -}; - -/* 803B2C40-803B2C50 00FD60 000D+03 0/1 0/0 0/0 .data defaultPortal$39238 */ -#pragma push -#pragma force_active on -SECTION_DATA static char defaultPortal[13] = "POTAL_WARPIN"; -#pragma pop - -/* 803B2C50-803B2C64 00FD70 0014+00 0/1 0/0 0/0 .data kBridgePortal$39239 */ -#pragma push -#pragma force_active on -SECTION_DATA static char kBridgePortal[20] = "PORTAL_WARP_KBRIDGE"; -#pragma pop - -/* 803B2C64-803B2C78 00FD84 0014+00 0/1 0/0 0/0 .data oBridgePortal$39240 */ -#pragma push -#pragma force_active on -SECTION_DATA static char oBridgePortal[20] = "PORTAL_WARP_OBRIDGE"; -#pragma pop - -/* 803B2C78-803B2C8C 00FD98 0014+00 0/1 0/0 0/0 .data volcBomPortal$39241 */ -#pragma push -#pragma force_active on -SECTION_DATA static char volcBomPortal[20] = "PORTAL_WARP_BIGVOLC"; -#pragma pop - -/* 803B2C8C-803B2CA4 00FDAC 0016+02 0/1 0/0 0/0 .data cannonPortal$39242 */ -#pragma push -#pragma force_active on -SECTION_DATA static char cannonPortal[22] = "SKY_CANNON_WARP_START"; -#pragma pop - -/* 803B2CEC-803B2D34 00FE0C 0048+00 1/2 0/0 0/0 .data m_fEffParamProc__9daAlink_c */ -EffParamProc daAlink_c::m_fEffParamProc[] = { - &daAlink_c::setEffectFrontRollParam, - &daAlink_c::setEffectSlipParam, - &daAlink_c::setEffectSmallLandParam, - &daAlink_c::setEffectRunParam, - &daAlink_c::setEffectLandParam, - &daAlink_c::setEffectSumouParam, -}; - -/* 803B2D34-803B2D40 00FE54 000C+00 0/1 0/0 0/0 .data leftRotNormal$41087 */ -#pragma push -#pragma force_active on -SECTION_DATA static s16 leftRotNormal[] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -#pragma pop - -/* 803B2D40-803B2D58 00FE60 0018+00 0/1 0/0 0/0 .data leftRotLight$41092 */ -#pragma push -#pragma force_active on -SECTION_DATA static s16 leftRotLight[] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -#pragma pop - -/* 803B2D58-803B2D7C 00FE78 0024+00 0/1 0/0 0/0 .data leftRotLarge$41097 */ -#pragma push -#pragma force_active on -SECTION_DATA static s16 leftRotLarge[] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -#pragma pop - -/* 803B2D7C-803B2D88 00FE9C 000C+00 0/1 0/0 0/0 .data leftRotWater$41102 */ -#pragma push -#pragma force_active on -SECTION_DATA static s16 leftRotWater[] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; -#pragma pop - -/* 803B2D88-803B2D94 00FEA8 000C+00 1/1 0/0 0/0 .data rodTopOffset$61388 */ -SECTION_DATA static Vec rodTopOffset = { - 0.0f, 0.0f, 0.0f -}; - -/* 803B2D94-803B2DA0 -00001 000C+00 1/1 0/0 0/0 .data bodyBrkName$69118 */ -SECTION_DATA static const char* bodyBrkName[3] = { - "ml_body_power_down.brk", - "ml_body_power_up_a.brk", - "ml_body_power_up_b.brk", -}; - -/* 803B2DA0-803B2DAC -00001 000C+00 1/1 0/0 0/0 .data headBrkName$69119 */ -SECTION_DATA static const char* headBrkName[3] = { - "ml_head_power_down.brk", - "ml_head_power_up_a.brk", - "ml_head_power_up_b.brk", -}; - // move these later static int daAlink_Create(fopAc_ac_c* i_this); static int daAlink_Delete(daAlink_c* i_this); static int daAlink_Execute(daAlink_c* i_this); static int daAlink_Draw(daAlink_c* i_this); -/* 803B2DAC-803B2DCC -00001 0020+00 1/0 0/0 0/0 .data l_daAlink_Method */ -static actor_method_class l_daAlink_Method = { - (process_method_func)daAlink_Create, (process_method_func)daAlink_Delete, - (process_method_func)daAlink_Execute, (process_method_func)NULL, - (process_method_func)daAlink_Draw, -}; - -/* 803B2DCC-803B2E20 -00001 0030+24 0/0 0/0 1/0 .data g_profile_ALINK */ -extern actor_process_profile_definition g_profile_ALINK = { - fpcLy_CURRENT_e, - 5, - fpcPi_CURRENT_e, - PROC_ALINK, - &g_fpcLf_Method.base, - sizeof(daAlink_c), - 0, - 0, - &g_fopAc_Method.base, - 91, - &l_daAlink_Method, - 0x60400, - fopAc_PLAYER_e, - fopAc_CULLBOX_0_e, -}; - /* 800A4068-800A4820 09E9A8 07B8+00 1/1 0/0 0/0 .text createHeap__9daAlink_cFv */ int daAlink_c::createHeap() { ResTIMG* sp14 = (ResTIMG*)dComIfG_getObjectRes("Always", 0x5D); @@ -5503,14 +4128,6 @@ static int daAlink_createHeap(fopAc_ac_c* i_this) { return ((daAlink_c*)i_this)->createHeap(); } -bool daPy_py_c::checkLightMasterSwordEquip() { - return dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD; -} - -BOOL daPy_py_c::checkSwordGet() { - return dComIfGs_getSelectEquipSword() != fpcNm_ITEM_NONE; -} - /* 800A4910-800A4BC8 09F250 02B8+00 5/5 0/0 0/0 .text setSelectEquipItem__9daAlink_cFi */ void daAlink_c::setSelectEquipItem(int param_0) { if (!checkWolf()) { @@ -5597,10 +4214,6 @@ BOOL daAlink_c::checkCanoeStart() { return (checkStageName("F_SP115") && getStartRoomNo() == 0) && dComIfGs_getStartPoint() == 2; } -u32 daPy_py_c::getLastSceneMode() { - return dComIfGs_getLastSceneMode() & 0xF; -} - /* 800A4CB4-800A54F4 09F5F4 0840+00 1/1 0/0 0/0 .text playerInit__9daAlink_cFv */ void daAlink_c::playerInit() { mHeavySpeedMultiplier = 1.0f; @@ -6012,23 +4625,6 @@ int daAlink_c::setStartProcInit() { return sp10; } -#pragma push -#pragma force_active on -static u8 data_80450FD1; -#pragma pop - -inline bool checkCasualWearFlg() { - return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_WEAR_CASUAL; -} - -inline bool checkZoraWearFlg() { - return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_WEAR_ZORA; -} - -inline bool checkMagicArmorWearFlg() { - return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_ARMOR; -} - /* 800A5CC8-800A660C 0A0608 0944+00 1/1 0/0 0/0 .text create__9daAlink_cFv */ int daAlink_c::create() { fopAcM_SetupActor(this, daAlink_c); @@ -6072,9 +4668,9 @@ int daAlink_c::create() { current.pos.z + cM_scos(shape_angle.y) * 70.0f); onNoResetFlg1(FLG1_IS_WOLF); } else if (horseStart) { - attention_info.position.y = current.pos.y + 150.0f; - } else { attention_info.position.y = current.pos.y + 275.0f; + } else { + attention_info.position.y = current.pos.y + 150.0f; } attention_info.flags = -1; @@ -6655,98 +5251,19 @@ void daAlink_c::setWindSpeed() { } } -/* 80391F44-80391F50 01E5A4 000C+00 0/1 0/0 0/0 .rodata localHeadCenter$59872 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localHeadCenter = { - 0.0f, -8.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F44, &localHeadCenter); -#pragma pop - -/* 80391F50-80391F5C 01E5B0 000C+00 0/1 0/0 0/0 .rodata localEye$59873 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localEye = { - 12.0f, -8.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F50, &localEye); -#pragma pop - -/* 80391F5C-80391F68 01E5BC 000C+00 0/1 0/0 0/0 .rodata localHeadTop$59874 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localHeadTop = { - 0.0f, -28.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F5C, &localHeadTop); -#pragma pop - -/* 80391F68-80391F74 01E5C8 000C+00 0/1 0/0 0/0 .rodata wlLocalHeadCenter$59875 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wlLocalHeadCenter = { - 0.0f, -5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F68, &wlLocalHeadCenter); -#pragma pop - -/* 80391F74-80391F80 01E5D4 000C+00 0/1 0/0 0/0 .rodata wlLocalEye$59876 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wlLocalEye = { - 30.0f, -5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F74, &wlLocalEye); -#pragma pop - -/* 80391F80-80391F8C 01E5E0 000C+00 0/1 0/0 0/0 .rodata wlLocalHeadTop$59877 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wlLocalHeadTop = { - 0.0f, -20.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391F80, &wlLocalHeadTop); -#pragma pop - -/* 80391F8C-80391F98 01E5EC 000C+00 0/1 0/0 0/0 .rodata localEyeFromRoot$59878 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const localEyeFromRoot = { - 0.0f, 55.75f, 15.0f -}; -COMPILER_STRIP_GATE(0x80391F8C, &localEyeFromRoot); -#pragma pop - -/* 80391F98-80391FA4 01E5F8 000C+00 0/1 0/0 0/0 .rodata boardLocalEyeFromRoot$59879 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const boardLocalEyeFromRoot = { - 9.5f, 47.0f, 24.5f -}; -COMPILER_STRIP_GATE(0x80391F98, &boardLocalEyeFromRoot); -#pragma pop - -/* 80391FA4-80391FB0 01E604 000C+00 0/1 0/0 0/0 .rodata horseLocalEyeFromRoot$59880 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const horseLocalEyeFromRoot = { - 1.75f, 55.0f, 25.5f -}; -COMPILER_STRIP_GATE(0x80391FA4, &horseLocalEyeFromRoot); -#pragma pop - -/* 80391FB0-80391FBC 01E610 000C+00 0/1 0/0 0/0 .rodata canoeLocalEyeFromRoot$59881 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const canoeLocalEyeFromRoot = { - 0.0f, 55.0f, 25.0f -}; -COMPILER_STRIP_GATE(0x80391FB0, &canoeLocalEyeFromRoot); -#pragma pop - /* 800A8310-800A87D8 0A2C50 04C8+00 2/2 0/0 0/0 .text setBodyPartPos__9daAlink_cFv */ void daAlink_c::setBodyPartPos() { + static Vec const localHeadCenter = {0.0f, -8.0f, 0.0f}; + static Vec const localEye = {12.0f, -8.0f, 0.0f}; + static Vec const localHeadTop = {0.0f, -28.0f, 0.0f}; + static Vec const wlLocalHeadCenter = {0.0f, -5.0f, 0.0f}; + static Vec const wlLocalEye = {30.0f, -5.0f, 0.0f}; + static Vec const wlLocalHeadTop = {0.0f, -20.0f, 0.0f}; + static Vec const localEyeFromRoot = {0.0f, 55.75f, 15.0f}; + static Vec const boardLocalEyeFromRoot = {9.5f, 47.0f, 24.5f}; + static Vec const horseLocalEyeFromRoot = {1.75f, 55.0f, 25.5f}; + static Vec const canoeLocalEyeFromRoot = {0.0f, 55.0f, 25.0f}; + if (checkWolf()) { cMtx_multVec(mpLinkModel->getAnmMtx(4), &wlLocalEye, &eyePos); field_0x3768 = eyePos; @@ -6823,53 +5340,14 @@ int daAlink_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) { return 1; } -/* 80391FBC-80391FC8 01E61C 000C+00 0/0 0/0 0/0 .rodata wlLocalEyeFromRoot$59882 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const wlLocalEyeFromRoot = { - 0.0f, -6.0f, 85.5f -}; -COMPILER_STRIP_GATE(0x80391FBC, &wlLocalEyeFromRoot); -#pragma pop - -/* 80391FC8-80391FD4 01E628 000C+00 0/1 0/0 0/0 .rodata normalOffset$60101 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const normalOffset = { - 0.0f, 150.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391FC8, &normalOffset); -#pragma pop - -/* 80391FD4-80391FE0 01E634 000C+00 0/1 0/0 0/0 .rodata crawlOffset$60141 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const crawlOffset = { - 0.0f, 40.0f, 30.0f -}; -COMPILER_STRIP_GATE(0x80391FD4, &crawlOffset); -#pragma pop - -/* 80391FE0-80391FEC 01E640 000C+00 0/1 0/0 0/0 .rodata crouchOffset$60142 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const crouchOffset = { - 0.0f, 95.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391FE0, &crouchOffset); -#pragma pop - -/* 80391FEC-80391FF8 01E64C 000C+00 0/1 0/0 0/0 .rodata swimOffset$60143 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const swimOffset = { - 0.0f, 14.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80391FEC, &swimOffset); -#pragma pop - /* 800A87F8-800A8CE4 0A3138 04EC+00 2/2 0/0 0/0 .text setAttentionPos__9daAlink_cFv */ void daAlink_c::setAttentionPos() { + static Vec const wlLocalEyeFromRoot = {0.0f, -6.0f, 85.5f}; + static Vec const normalOffset = {0.0f, 150.0f, 0.0f}; + static Vec const crawlOffset = {0.0f, 40.0f, 30.0f}; + static Vec const crouchOffset = {0.0f, 95.0f, 0.0f}; + static Vec const swimOffset = {0.0f, 14.0f, 0.0f}; + if (mProcID == PROC_METAMORPHOSE) { attention_info.position = field_0x34e0; } else if (checkModeFlg(0x400)) { @@ -7070,35 +5548,12 @@ int daAlink_c::simpleAnmPlay(J3DAnmBase* i_anm) { return ret; } -/* 80391FF8-80392004 01E658 000C+00 0/1 0/0 0/0 .rodata swordMoveLocal0$60438 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const swordMoveLocal0 = { - 0.0f, 0.0f, -1.0f -}; -COMPILER_STRIP_GATE(0x80391FF8, &swordMoveLocal0); -#pragma pop - -/* 80392004-80392010 01E664 000C+00 0/1 0/0 0/0 .rodata swordMoveLocal1$60439 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const swordMoveLocal1 = { - 0.0f, 0.0f, 1.0f -}; -COMPILER_STRIP_GATE(0x80392004, &swordMoveLocal1); -#pragma pop - -/* 80392010-8039201C 01E670 000C+00 0/1 0/0 0/0 .rodata copyRodTop$60447 */ -#pragma push -#pragma force_active on -SECTION_RODATA static Vec const copyRodTop = { - 27.5f, -5.0f, -12.5f -}; -COMPILER_STRIP_GATE(0x80392010, ©RodTop); -#pragma pop - /* 800A92F0-800A9450 0A3C30 0160+00 2/2 0/0 0/0 .text setSwordPos__9daAlink_cFv */ void daAlink_c::setSwordPos() { + static Vec const swordMoveLocal0 = {0.0f, 0.0f, -1.0f}; + static Vec const swordMoveLocal1 = {0.0f, 0.0f, 1.0f}; + static Vec const copyRodTop = {27.5f, -5.0f, -12.5f}; + field_0x34b0 = mSwordTopPos; field_0x34bc = field_0x3498; mDoMtx_multVecZero(mSwordModel->getBaseTRMtx(), &field_0x3498); @@ -7831,15 +6286,11 @@ void daAlink_c::setAtCollision() { } } -/* 80392034-80392040 01E694 000C+00 1/1 0/0 0/0 .rodata localHead$61779 */ -SECTION_RODATA static Vec const localHead = { - 15.0f, 5.0f, 0.0f -}; -COMPILER_STRIP_GATE(0x80392034, &localHead); - /* 800AB878-800ABAE0 0A61B8 0268+00 1/1 0/0 0/0 .text setWolfCollisionPos__9daAlink_cFv */ void daAlink_c::setWolfCollisionPos() { + static Vec const localHead = {15.0f, 5.0f, 0.0f}; + cXyz sp44; mDoMtx_multVec(mpLinkModel->getAnmMtx(4), &localHead, &sp44); field_0xFB8.MoveCAt(sp44); @@ -10432,7 +8883,7 @@ void daAlink_c::setSandShapeOffset() { } else { var_f31 = daAlinkHIO_basic_c0::m.mSandSinkSpeed; if (checkWolf()) { - var_f31 *= 0.2142857f; + var_f31 *= 0.42857143f; } } } else if (field_0x2fbd == 1) { @@ -10445,7 +8896,7 @@ void daAlink_c::setSandShapeOffset() { } if (checkWolf()) { - var_f31 *= 0.2142857f; + var_f31 *= 0.42857143f; } } else { var_f30 = -15.0f; @@ -10811,7 +9262,7 @@ void daAlink_c::setStickData() { (!checkBootsOrArmorHeavy() || !checkNoResetFlg0(FLG0_UNDERWATER))) { if (checkWolf() && checkHeavyStateOn(1, 0) && mSinkShapeOffset < -30.0f) { - mHeavySpeedMultiplier = daAlinkHIO_magneBoots_c0::m.mInputFactor * 0.4f; + mHeavySpeedMultiplier = daAlinkHIO_magneBoots_c0::m.mInputFactor * 0.7f; } else { mHeavySpeedMultiplier = daAlinkHIO_magneBoots_c0::m.mInputFactor; } @@ -11000,7 +9451,7 @@ BOOL daAlink_c::checkAtnWaitAnime() { /* 800B3358-800B33E4 0ADC98 008C+00 2/2 0/0 0/0 .text * setTiredVoice__9daAlink_cFP16daPy_frameCtrl_c */ void daAlink_c::setTiredVoice(daPy_frameCtrl_c* i_frameCtrl) { - if (i_frameCtrl->checkPass(-12.0f)) { + if (i_frameCtrl->checkPass(12.0f)) { if (dComIfGs_getLife() <= 2) { voiceStart(Z2SE_AL_V_TIRED_L); } else { @@ -12259,9 +10710,6 @@ BOOL daAlink_c::checkCutJumpInFly() { return false; } -/* 80450698-8045069C 000118 0004+00 4/4 0/0 0/0 .sdata l_ladderAnmBaseTransY */ -SECTION_SDATA static f32 l_ladderAnmBaseTransY = 102.00054168701172f; - /* 800B6A30-800B6F28 0B1370 04F8+00 16/16 0/0 0/0 .text checkFrontWallTypeAction__9daAlink_cFv */ BOOL daAlink_c::checkFrontWallTypeAction() { setFrontWallType(); @@ -12982,10 +11430,6 @@ int daAlink_c::checkNormalAction() { return 0; } -u16 daAlink_c::getReadyItem() { - return dComIfGp_getSelectItem(mSelectItemId); -} - /* 800B8930-800B8988 0B3270 0058+00 11/11 0/0 0/0 .text checkReadyItem__9daAlink_cFv */ bool daAlink_c::checkReadyItem() { if (mEquipItem == fpcNm_ITEM_NONE) { @@ -13200,10 +11644,10 @@ BOOL daAlink_c::checkSideRollAction(int param_0) { if (checkEnemyGroup(mTargetedActor) && mTargetedActor->current.pos.abs2XZ(current.pos) < 250000.0f) { - return procSideRollInit(param_0); + return procTurnMoveInit(param_0); } - - return procTurnMoveInit(param_0); + + return procSideRollInit(param_0); } /* 800B9254-800B92D0 0B3B94 007C+00 35/35 0/0 0/0 .text checkNoUpperAnime__9daAlink_cCFv @@ -13960,6 +12404,18 @@ void daAlink_c::setBodyAngleXReadyAnime(int param_0) { /* 800BB324-800BB408 0B5C64 00E4+00 2/2 0/0 0/0 .text setMagicArmorBrk__9daAlink_cFi */ void daAlink_c::setMagicArmorBrk(int param_0) { + static const char* bodyBrkName[3] = { + "ml_body_power_down.brk", + "ml_body_power_up_a.brk", + "ml_body_power_up_b.brk", + }; + + static const char* headBrkName[3] = { + "ml_head_power_down.brk", + "ml_head_power_up_a.brk", + "ml_head_power_up_b.brk", + }; + J3DModelData* model_data = mpLinkModel->getModelData(); mMagicArmorBodyBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_mArcName, bodyBrkName[param_0]); mMagicArmorBodyBrk->searchUpdateMaterialID(model_data); @@ -14630,7 +13086,7 @@ void daAlink_c::autoGroundHit() { mDoMtx_stack_c::copy(mMagneBootMtx); mDoMtx_stack_c::multVecSR(&cXyz::BaseY, &sp50); sp68 = current.pos + (sp50 * 30.0f); - sp5C = current.pos + (sp50 * 100.0f); + sp5C = current.pos - (sp50 * 100.0f); if (commonMagneLineCheck(&sp68, &sp5C)) { current.pos = mMagneLineChk.GetCross(); @@ -15072,19 +13528,19 @@ int daAlink_c::checkSceneChange(int exitID) { demo_stick = 0.6f; } else { exit_speed = dComIfGp_getHorseActor()->getNormalMaxSpeedF(); - demo_stick = 0.6f; + demo_stick = 1.0f; } } else if (checkWolf()) { if (mNormalSpeed < 10.0f || var_r3) { exit_speed = 10.0f; - demo_stick = 0.65f; + demo_stick = 0.6f; } else { exit_speed = daAlinkHIO_wlMoveNoP_c0::m.field_0x8; demo_stick = 1.0f; } } else if (mNormalSpeed < 10.0f || var_r3) { exit_speed = 10.0f; - demo_stick = 0.6f; + demo_stick = 0.65f; } else { exit_speed = daAlinkHIO_move_c0::m.mMaxSpeed; demo_stick = 1.0f; @@ -15526,14 +13982,6 @@ void daAlink_c::makeItemType() { } } -bool daPy_py_c::checkZoraWearFlg() const { - return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_WEAR_ZORA; -} - -bool daPy_py_c::checkMagicArmorWearFlg() const { - return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_ARMOR; -} - /* 800BFDB0-800BFDFC 0BA6F0 004C+00 28/28 0/0 0/0 .text checkZoraWearAbility__9daAlink_cCFv */ BOOL daAlink_c::checkZoraWearAbility() const { return (!checkWolf() && checkZoraWearFlg()) && !checkNoResetFlg2(FLG2_UNK_80000); @@ -16663,62 +15111,4334 @@ BOOL daAlink_c::commonProcInitNotSameProc(daAlink_PROC procID) { } } -#include "d/actor/d_a_alink_link.inc" +/* 800C2DDC-800C2EAC 0BD71C 00D0+00 17/17 0/0 0/0 .text + * procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c */ + int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) { + commonProcInit(PROC_PREACTION_UNEQUIP); + mNormalSpeed = 0.0f; + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + allUnequip(0); + mProcVar4.field_0x3010 = 0; -#include "d/actor/d_a_alink_cut.inc" + if (param_1 != NULL) { + field_0x280c.setData(param_1); + mProcVar3.field_0x300e = 1; -#include "d/actor/d_a_alink_damage.inc" + if (fopAcM_GetName(param_1) == PROC_Tag_Lv8Gate) { + if (mEquipItem == fpcNm_ITEM_KANTERA) { + mProcVar4.field_0x3010 = 1; + } else if (checkNoResetFlg2(FLG2_UNK_1)) { + offKandelaarModel(); + } + } + } else { + mProcVar3.field_0x300e = 0; + } -#include "d/actor/d_a_alink_guard.inc" + field_0x3198 = i_procAfter; + return 1; +} -#include "d/actor/d_a_alink_bow.inc" +/* 800C2EAC-800C3098 0BD7EC 01EC+00 1/0 0/0 0/0 .text procPreActionUnequip__9daAlink_cFv + */ +int daAlink_c::procPreActionUnequip() { + if (checkNoUpperAnime()) { + if (mProcVar3.field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor())) + { + checkWaitAction(); + } else if (field_0x3198 == PROC_PUSH_PULL_WAIT) { + procCoPushPullWaitInit(1); + } else if (field_0x3198 == PROC_LADDER_DOWN_START) { + procLadderDownStartInit(); + } else if (field_0x3198 == PROC_LADDER_UP_START) { + procLadderUpStartInit(); + } else if (field_0x3198 == PROC_GRAB_READY) { + procGrabReadyInit(); + } else if (field_0x3198 == PROC_GET_ITEM) { + procCoGetItemInit(); + } else if (field_0x3198 == PROC_GET_READY_SIT) { + procCoGetReadySitInit(); + } else if (field_0x3198 == PROC_CHAIN_UP) { + procFmChainUpInit(); + } else if (field_0x3198 == PROC_PICK_UP) { + procPickUpInit(); + } else if (field_0x3198 == PROC_CRAWL_START) { + procCrawlStartInit(); + } else if (field_0x3198 == PROC_GRASS_WHISTLE_GET) { + procGrassWhistleGetInit(); + } else if (field_0x3198 == PROC_GOAT_STROKE) { + procGoatStrokeInit(); + } else if (field_0x3198 == PROC_HANG_READY) { + procHangReadyInit(); + } else if (field_0x3198 == PROC_INSECT_CATCH) { + procInsectCatchInit(); + } else if (field_0x3198 == PROC_GORON_MOVE) { + procGoronMoveInit(); + } else if (field_0x3198 == PROC_BOTTLE_SWING) { + procBottleSwingInit(NULL, 0); + } else if (field_0x3198 == PROC_HANG_LEVER_DOWN) { + procHangLeverDownInit(); + } else if (field_0x3198 == PROC_PICK_PUT) { + procPickPutInit(1); + } else { + checkNextAction(0); + } + } else { + setBlendMoveAnime(-1.0f); + } -#include "d/actor/d_a_alink_boom.inc" + return 1; +} -#include "d/actor/d_a_alink_copyrod.inc" +/* 800C3098-800C30F0 0BD9D8 0058+00 1/1 0/0 0/0 .text procServiceWaitInit__9daAlink_cFv + */ +int daAlink_c::procServiceWaitInit() { + commonProcInit(PROC_SERVICE_WAIT); + setSingleAnimeBase(ANM_SERVICE_WAIT); + mNormalSpeed = 0.0f; + current.angle.y = shape_angle.y; + field_0x2f98 = 4; + return 1; +} -#include "d/actor/d_a_alink_hvyboots.inc" +/* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */ +int daAlink_c::procServiceWait() { + J3DFrameCtrl* frameCtrl_p = mUnderFrameCtrl; + if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && + (checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6)) + { + frameCtrl_p->setRate(0.0f); + procWaitInit(); + } else { + if (frameCtrl_p->checkPass(60.0f)) { + voiceStart(Z2SE_AL_V_RELAX_A); + } else if (frameCtrl_p->checkPass(150.0f)) { + voiceStart(Z2SE_AL_V_RELAX_B); + } else if (frameCtrl_p->checkPass(190.0f)) { + voiceStart(Z2SE_AL_V_RELAX_C); + } + } + return 1; +} -#include "d/actor/d_a_alink_bomb.inc" +/* 800C3224-800C3338 0BDB64 0114+00 2/2 0/0 0/0 .text procTiredWaitInit__9daAlink_cFv */ +int daAlink_c::procTiredWaitInit() { + BOOL no_upper_anm = checkNoSetUpperAnime(); -#include "d/actor/d_a_alink_grab.inc" + if (!commonProcInitNotSameProc(PROC_TIRED_WAIT)) { + return 0; + } -#include "d/actor/d_a_alink_sumou.inc" + mNormalSpeed = 0.0f; + BOOL tired_anm = checkUnderMove0BckNoArc(ANM_WAIT_TIRED); -#include "d/actor/d_a_alink_horse.inc" + if (no_upper_anm && + ((tired_anm && mNowAnmPackUnder[0].getRatio() < 0.75f) || + checkUnderMove1BckNoArc(ANM_STEP_TURN) || checkUnderMove1BckNoArc(ANM_SMALL_GUARD))) + { + f32 var_f31; + if (tired_anm) { + var_f31 = mUnderFrameCtrl[0].getFrame(); + } else { + var_f31 = mUpperFrameCtrl[1].getFrame(); + } -#include "d/actor/d_a_alink_canoe.inc" + setSingleAnimeBase(ANM_WAIT_TIRED); + mUnderFrameCtrl[0].setFrame(var_f31); + getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); + } else { + setSingleAnimeBase(ANM_WAIT_TO_TIRED); + } -#include "d/actor/d_a_alink_crawl.inc" + return 1; +} -#include "d/actor/d_a_alink_hang.inc" +/* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */ +int daAlink_c::procTiredWait() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; -#include "d/actor/d_a_alink_swim.inc" + if (!checkNextAction(0)) { + if (frameCtrl_p->checkAnmEnd()) { + setSingleAnimeBase(ANM_WAIT_TIRED); + } else if (frameCtrl_p->getAttribute() == 2) { + setTiredVoice(frameCtrl_p); + } + } -#include "d/actor/d_a_alink_iceleaf.inc" + return 1; +} -#include "d/actor/d_a_alink_hook.inc" +/* 800C33B8-800C3504 0BDCF8 014C+00 26/26 0/0 0/0 .text procWaitInit__9daAlink_cFv */ +int daAlink_c::procWaitInit() { + if (mProcID == PROC_TURN_BACK) { + onEndResetFlg0(ERFLG0_UNK_8000000); + } -#include "d/actor/d_a_alink_spinner.inc" + if (mProcID == PROC_WAIT) { + return 0; + } -#include "d/actor/d_a_alink_bottle.inc" + if (!checkEventRun() && mProcID == PROC_SERVICE_WAIT && !mUnderFrameCtrl[0].checkAnmEnd() && + checkNoUpperAnime()) + { + return 0; + } -#include "d/actor/d_a_alink_kandelaar.inc" + BOOL var_r30; + if (mProcID == PROC_GUARD_ATTACK || mProcID == PROC_CUT_REVERSE) { + var_r30 = false; + } else { + var_r30 = true; + } -#include "d/actor/d_a_alink_whistle.inc" + commonProcInit(PROC_WAIT); + mNormalSpeed = 0.0f; + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + current.angle.y = shape_angle.y; -#include "d/actor/d_a_alink_ironball.inc" + if (var_r30) { + field_0x2f98 = 4; + } -#include "d/actor/d_a_alink_demo.inc" + initServiceWaitTime(); -#include "d/actor/d_a_alink_effect.inc" + if (checkEndResetFlg0(ERFLG0_UNK_8000000) && + (checkUnderMove0BckNoArc(ANM_WAIT) || checkUnderMove0BckNoArc(ANM_WAIT_TIRED))) + { + setSingleAnimeBase(ANM_WAIT_B_TO_A); + } -#include "d/actor/d_a_alink_wolf.inc" + return 1; +} -#include "d/actor/d_a_alink_swindow.inc" +/* 800C3504-800C36CC 0BDE44 01C8+00 1/0 0/0 0/0 .text procWait__9daAlink_cFv */ +int daAlink_c::procWait() { + BOOL anm_wait_b = checkUnderMove0BckNoArc(ANM_WAIT_B); -#include "d/actor/d_a_alink_HIO.inc" + if (!checkNextAction(0) && !checkFrontWallTypeAction()) { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + field_0x33f0 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f; -// TODO: This isn't a real file, this is a hack to build OK with -sym on -// To properly fix, these symbols need to be compiler generated -#include "d/actor/d_a_alink_weakfn.inc" + if (frameCtrl_p->checkAnmEnd() || checkUpperGuardAnime() || + !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) + { + if (checkRestHPAnime() && shape_angle.y == field_0x2fe6) { + return procTiredWaitInit(); + } + + setBlendMoveAnime(-1.0f); + if (anm_wait_b && !checkUnderMove0BckNoArc(ANM_WAIT_B)) { + setSingleAnimeBase(ANM_WAIT_B_TO_A); + } + } else if (frameCtrl_p->checkPass(30.0f)) { + field_0x2f92 = 4; + field_0x2f93 = 10; + } + + if (checkServiceWaitMode() && checkUnderMove0BckNoArc(ANM_WAIT)) { + if (field_0x30ca != 0) { + field_0x30ca--; + } + + if (field_0x30ca == 0 && frameCtrl_p->checkPass(0.0f)) { + procServiceWaitInit(); + } + } else { + initServiceWaitTime(); + } + } + + return 1; +} + +/* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */ +int daAlink_c::procMoveInit() { + if (!commonProcInitNotSameProc(PROC_MOVE)) { + return 0; + } + + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + setFootEffectProcType(3); + return 1; +} + +/* 800C3730-800C3810 0BE070 00E0+00 1/0 0/0 0/0 .text procMove__9daAlink_cFv */ +int daAlink_c::procMove() { + setFootEffectProcType(3); + if (!checkNextAction(0) && !checkFrontWallTypeAction()) { + if (mDemo.getDemoMode() == 2 && + mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate) + { + mNormalSpeed = field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate; + } + + setBlendMoveAnime(-1.0f); + if (field_0x3174 != 8) { + field_0x30a0 = + cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp, + daAlinkHIO_basic_c0::m.mNeckMaxDown); + } + } + + return 1; +} + +/* 800C3810-800C3868 0BE150 0058+00 1/1 0/0 0/0 .text procAtnMoveInit__9daAlink_cFv */ +int daAlink_c::procAtnMoveInit() { + if (!commonProcInitNotSameProc(PROC_ATN_MOVE)) { + return 0; + } + + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + return 1; +} + +/* 800C3868-800C38CC 0BE1A8 0064+00 1/0 0/0 0/0 .text procAtnMove__9daAlink_cFv */ +int daAlink_c::procAtnMove() { + if (!checkNextAction(0)) { + if (field_0x2f98 != 0 || !checkFrontWallTypeAction()) { + setBlendAtnMoveAnime(-1.0f); + } + } + + return 1; +} + +/* 800C38CC-800C397C 0BE20C 00B0+00 4/4 0/0 0/0 .text procAtnActorWaitInit__9daAlink_cFv + */ +int daAlink_c::procAtnActorWaitInit() { + if (!commonProcInitNotSameProc(PROC_ATN_ACTOR_WAIT)) { + return 0; + } + + if (mTargetedActor != NULL) { + fopAcM_searchActorAngleY(this, mTargetedActor); + } + + mNormalSpeed = 0.0f; + if (field_0x2f98 != 2) { + field_0x2f98 = 3; + } + + if (checkAtnWaitAnime()) { + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + } else { + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + } + + return 1; +} + +/* 800C397C-800C39EC 0BE2BC 0070+00 1/0 0/0 0/0 .text procAtnActorWait__9daAlink_cFv */ +int daAlink_c::procAtnActorWait() { + if (!checkNextAction(0)) { + if (checkAtnWaitAnime()) { + setBlendAtnMoveAnime(-1.0f); + } else { + setBlendMoveAnime(-1.0f); + } + checkSwordTwirlAction(); + } + + return 1; +} + +/* 800C39EC-800C3A44 0BE32C 0058+00 3/3 0/0 0/0 .text procAtnActorMoveInit__9daAlink_cFv + */ +int daAlink_c::procAtnActorMoveInit() { + if (!commonProcInitNotSameProc(PROC_ATN_ACTOR_MOVE)) { + return 0; + } + + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + return 1; +} + +/* 800C3A44-800C3A94 0BE384 0050+00 1/0 0/0 0/0 .text procAtnActorMove__9daAlink_cFv */ +int daAlink_c::procAtnActorMove() { + if (!checkNextAction(0)) { + setBlendAtnMoveAnime(-1.0f); + checkSwordTwirlAction(); + } + + return 1; +} + +/* 800C3A94-800C3B1C 0BE3D4 0088+00 2/2 0/0 0/0 .text procWaitTurnInit__9daAlink_cFv */ +int daAlink_c::procWaitTurnInit() { + if (!commonProcInitNotSameProc(PROC_WAIT_TURN)) { + return 0; + } + + setSingleAnimeBaseSpeed(ANM_STEP_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, + daAlinkHIO_basic_c0::m.mAnmBlendFactor); + if (checkEventRun()) { + mNormalSpeed = 0.0f; + } + + mProcVar3.field_0x300e = field_0x2fe2; + current.angle.y = shape_angle.y; + return 1; +} + +/* 800C3B1C-800C3C3C 0BE45C 0120+00 1/0 0/0 0/0 .text procWaitTurn__9daAlink_cFv */ +int daAlink_c::procWaitTurn() { + cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration); + + if (checkGroundSpecialMode()) { + return 1; + } else if (checkEndResetFlg0(ERFLG0_UNK_100000)) { + return procFloorDownReboundInit(); + } else { + s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e, 30, 0x3CDF, 8000); + current.angle.y = shape_angle.y; + + if (checkNextActionFromButton()) { + return 1; + } else if (angle == 0) { + if (checkEventRun()) { + if (mDemo.getDemoMode() == 5) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else if (!checkNextAction(0)) { + checkWaitAction(); + } + } else { + checkNextAction(0); + } + } + } + + return 1; +} + +/* 800C3C3C-800C3D38 0BE57C 00FC+00 2/2 0/0 0/0 .text procMoveTurnInit__9daAlink_cFi */ +int daAlink_c::procMoveTurnInit(int param_0) { + if (!commonProcInitNotSameProc(PROC_MOVE_TURN)) { + return 0; + } + + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + dComIfGp_setPlayerStatus0(0, 0x800); + + if (param_0 != 0) { + mProcVar3.field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030; + mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + mProcVar1.field_0x300a = 2; + current.angle.y = field_0x2fe2; + mNormalSpeed *= 0.5f; + } else { + mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + mProcVar1.field_0x300a = 3; + } + + mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; + mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + return 1; +} + +/* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */ +int daAlink_c::procMoveTurn() { + setSpeedAndAngleNormal(); + cLib_addCalcAngleS(&shape_angle.y, current.angle.y, mProcVar1.field_0x300a, mProcVar3.field_0x300e, mProcVar4.field_0x3010); + + if (!checkNextAction(0)) { + setBlendMoveAnime(-1.0f); + } + + return 1; +} + +/* 800C3DA0-800C3F60 0BE6E0 01C0+00 2/2 0/0 0/0 .text procSideStepInit__9daAlink_cFi */ +int daAlink_c::procSideStepInit(int jump_type) { + if (jump_type == 1 && !checkHeavyStateOn(1, 1) && + (checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) + { + return procBackJumpInit(0); + } + + commonProcInit(PROC_SIDESTEP); + field_0x2f98 = jump_type; + + if (field_0x2f98 == 1) { + current.angle.y = shape_angle.y + 0x8000; + setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm); + mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH; + speed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV; + mProcVar1.field_0x300a = 0; + } else { + daAlink_ANM anm_id; + if (field_0x2f98 == 2) { + anm_id = ANM_SIDE_JUMP_LEFT; + current.angle.y = shape_angle.y + 0x4000; + } else { + anm_id = ANM_SIDE_JUMP_RIGHT; + current.angle.y = shape_angle.y - 0x4000; + } + + setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm); + mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH; + speed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV; + mProcVar1.field_0x300a = 1; + } + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; + } + + voiceStart(Z2SE_AL_V_JUMP_S); + mProcVar2.field_0x300c = 0; + mProcVar3.field_0x300e = 0; + return 1; +} + +/* 800C3F60-800C40F0 0BE8A0 0190+00 1/0 0/0 0/0 .text procSideStep__9daAlink_cFv */ +int daAlink_c::procSideStep() { + if (mTargetedActor != NULL && mProcVar1.field_0x300a != 0) { + s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); + cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); + + if (field_0x2f98 == 2) { + current.angle.y = shape_angle.y + 0x4000; + } else { + current.angle.y = shape_angle.y - 0x4000; + } + } + + if (doTrigger() && mProcVar1.field_0x300a != 0) { + mProcVar2.field_0x300c = 1; + } + + if (checkUpperItemActionFly()) { + return 1; + } else if (mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e != 0) { + if (mProcVar2.field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { + return 1; + } else { + return procSideStepLandInit(); + } + } else if (checkNoUpperAnime() && checkForceSwordSwing()) { + setCutDash(1, 0); + } else if (mDemo.getDemoMode() != 16 && + current.pos.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) + { + return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation); + } + + mProcVar3.field_0x300e = 1; + checkItemChangeFromButton(); + return 1; +} + +/* 800C40F0-800C4278 0BEA30 0188+00 1/1 0/0 0/0 .text procSideStepLandInit__9daAlink_cFv + */ +int daAlink_c::procSideStepLandInit() { + commonProcInit(PROC_SIDESTEP_LAND); + + if (field_0x2f98 == 1) { + field_0x2f9d = 4; + setSingleAnimeParam(ANM_BACK_JUMP_LAND, &daAlinkHIO_sideStep_c0::m.mBackLandAnm); + field_0x3478 = daAlinkHIO_sideStep_c0::m.mBackLandAnm.mCancelFrame; + field_0x2f98 = 2; + mProcVar1.field_0x300a = 0; + field_0x2fb0 = 0; + field_0x2fcc = 10; + } else { + daAlink_ANM anm_id; + u16 uvar3; + if (field_0x2f98 == 2) { + anm_id = ANM_SIDE_JUMP_LEFT_LAND; + uvar3 = 0x3F; + } else { + anm_id = ANM_SIDE_JUMP_RIGHT_LAND; + uvar3 = 0x40; + } + + setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideLandAnm); + field_0x3478 = daAlinkHIO_sideStep_c0::m.mSideLandAnm.mCancelFrame; + mProcVar1.field_0x300a = 1; + field_0x2fb0 = 8; + field_0x2fcc = 0; + + if (checkEnemyGroup(mTargetedActor) && mEquipItem == 0x103 && checkNoUpperAnime()) { + setUpperAnimeBaseSpeed(uvar3, daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed, -1.0f); + seStartSwordCut(Z2SE_AL_WAIT_SWORD_SWING); + } + } + + field_0x2f9d = 4; + setFootEffectProcType(2); + onResetFlg1(RFLG1_UNK_30); + mNormalSpeed = 0.0f; + mProcVar2.field_0x300c = 0; + current.angle.y = shape_angle.y; + setStepLandVibration(); + return 1; +} + +/* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */ +int daAlink_c::procSideStepLand() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + onEndResetFlg0(ERFLG0_UNK_8000000); + + if (field_0x2fcc != 0) { + field_0x2fcc = 10; + } + + if (doTrigger() && mProcVar1.field_0x300a != 0) { + mProcVar2.field_0x300c = 1; + } + + if (frameCtrl_p->checkAnmEnd()) { + if (mDemo.getDemoMode() == 16) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + checkNextAction(0); + } + } else if (frameCtrl_p->getFrame() > field_0x3478) { + if (mProcVar2.field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { + return 1; + } + checkNextAction(1); + } + + return 1; +} + +/* 800C4378-800C4514 0BECB8 019C+00 1/1 0/0 0/0 .text procSlideInit__9daAlink_cFs */ +int daAlink_c::procSlideInit(s16 param_0) { + commonProcInit(PROC_SLIDE); + + field_0x814.SetWeight(255); + field_0x3090 = 8; + current.angle.y = param_0; + + if (getMoveBGActorName(mLinkAcch.m_gnd, FALSE) == PROC_Obj_Lv3R10Saka) { + mProcVar3.field_0x300e = 1; + } else { + mProcVar3.field_0x300e = 0; + } + + if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || mProcVar3.field_0x300e != 0) { + field_0x3198 = 1; + setSingleAnimeParam(ANM_SLIDE_FORWARD, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); + dComIfGp_setPlayerStatus1(0, 0x100); + onModeFlg(MODE_UNK_8000); + onModeFlg(MODE_UNK_2000000); + onModeFlg(MODE_UNK_20000000); + mNormalSpeed = 0.0f; + field_0x2f9d = 4; + setUpperAnimeBaseMorf(0xCE, -1.0f); + onNoResetFlg1(FLG1_UNK_10000000); + setFootEffectProcType(0); + } else { + field_0x3198 = 0; + setSingleAnimeParam(ANM_SLIDE_BACKWARD, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm); + dComIfGp_setPlayerStatus1(0, 0x200); + field_0x2f9d = 0x60; + setFootEffectProcType(1); + } + + field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed; + field_0x33cc = 0.0f; + mProcVar2.field_0x300c = 0; + mProcVar4.field_0x3010 = 0; + return 1; +} + +/* 800C4514-800C47AC 0BEE54 0298+00 1/0 0/0 0/0 .text procSlide__9daAlink_cFv */ +int daAlink_c::procSlide() { + cM3dGPla slide_poly; + + if (getSlidePolygon(&slide_poly)) { + s16 angleY = slide_poly.mNormal.atan2sX_Z(); + if (field_0x3198 != 0) { + f32 sin = field_0x33a8 * cM_ssin(field_0x2fe2 - shape_angle.y); + + if (checkInputOnR()) { + mProcVar2.field_0x300c = + cLib_minMaxLimit((s16)(mProcVar2.field_0x300c + sin * 256.0f), -0x1000, 0x1000); + } else { + cLib_chaseS(&mProcVar2.field_0x300c, 0, 64); + } + + angleY += mProcVar2.field_0x300c; + cLib_addCalcAngleS(&mProcVar4.field_0x3010, sin * -4096.0f, 3, 300, 50); + } + + cLib_addCalcAngleS(¤t.angle.y, angleY, 4, 0x1000, 0x400); + + s16 shape_angleY; + if (field_0x3198 != 0) { + shape_angleY = current.angle.y; + field_0x2f9d = 4; + } else { + shape_angleY = current.angle.y + 0x8000; + field_0x2f9d = 0x60; + } + + cLib_addCalcAngleS(&shape_angle.y, shape_angleY, 4, 0x1000, 0x400); + + if (field_0x3198 == 0 || mUnderFrameCtrl[0].getFrame() > 6.0f) { + f32 accel = daAlinkHIO_slide_c0::m.mAcceleration; + f32 var_f6 = field_0x594; + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + accel *= 0.3f; + var_f6 *= 0.3f; + } + + mNormalSpeed += accel * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * + cM_scos(current.angle.y - angleY); + if (mNormalSpeed > var_f6) { + mNormalSpeed = var_f6; + } + + if (field_0x3198 != 0) { + field_0x33cc = 1.0f; + onModeFlg(0x20000000); + } + + seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); + } + } else { + procSlideLandInit(field_0x3198); + } + + return 1; +} + +/* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */ +int daAlink_c::procSlideLandInit(int param_0) { + commonProcInit(PROC_SLIDE_LAND); + + if (param_0 != 0) { + setSingleAnimeParam(ANM_SLIDE_FORWARD_END, &daAlinkHIO_slide_c0::m.mForwardLandAnm); + field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.mCancelFrame; + field_0x3198 = 1; + field_0x2f99 = 4; + field_0x3588 = l_waitBaseAnime; + } else { + setSingleAnimeParam(ANM_SLIDE_BACKWARD_END, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); + field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.mCancelFrame; + field_0x3198 = 0; + } + + field_0x814.SetWeight(255); + mNormalSpeed *= 0.5f; + return 1; +} + +/* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */ +int daAlink_c::procSlideLand() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + + cLib_chaseF(&mNormalSpeed, 0.0f, 4.0f); + if (field_0x3198 != 0) { + field_0x2f99 = 4; + } + + if (frameCtrl_p->checkAnmEnd()) { + current.angle.y = shape_angle.y; + checkNextAction(0); + } else if (frameCtrl_p->getFrame() > field_0x3478) { + s16 tmp_angle = current.angle.y; + current.angle.y = shape_angle.y; + + if (!checkNextAction(1)) { + current.angle.y = tmp_angle; + } + } + + return 1; +} + +/* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */ +int daAlink_c::procFrontRollInit() { + BOOL is_guard_anime = checkUpperGuardAnime(); + + if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == 0x28) { + return 0; + } + + BOOL is_dive_jump = mProcID == PROC_DIVE_JUMP; + commonProcInit(PROC_FRONT_ROLL); + + f32 roll_anm_speed = is_dive_jump ? 6.0f : daAlinkHIO_frontRoll_c0::m.mRollAnm.mStartFrame; + + setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed, roll_anm_speed, + daAlinkHIO_frontRoll_c0::m.mRollAnm.mEndFrame, + daAlinkHIO_frontRoll_c0::m.mRollAnm.mInterpolation); + + mNormalSpeed = + speedF * daAlinkHIO_frontRoll_c0::m.mSpeedRate + daAlinkHIO_frontRoll_c0::m.mInitSpeed; + + f32 var_f30 = daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_move_c0::m.mMaxSpeed * daAlinkHIO_frontRoll_c0::m.mSpeedRate; + if (mNormalSpeed > var_f30) { + mNormalSpeed = var_f30; + } + + if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) { + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; + } + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + } else if (checkHeavyStateOn(1, 1)) { + mNormalSpeed *= mHeavySpeedMultiplier; + } + + current.angle.y = shape_angle.y; + voiceStart(Z2SE_AL_V_BACKTEN); + mProcVar2.field_0x300c = 0; + setFootEffectProcType(0); + + if (is_guard_anime) { + onNoResetFlg0(FLG0_UNK_2); + } + + if (checkEquipHeavyBoots()) { + field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS); + field_0xFB8.SetAtHitMark(1); + field_0xFB8.SetAtSe(9); + field_0xFB8.SetAtAtp(2); + field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE); + field_0xFB8.ResetAtHit(); + field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius); + field_0xFB8.OnAtSetBit(); + } + + return 1; +} + +/* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */ +int daAlink_c::procFrontRoll() { + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + onEndResetFlg0(ERFLG0_UNK_8000000); + + cM3dGPla poly; + if (getSlidePolygon(&poly)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + + if (checkInputOnR()) { + cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_frontRoll_c0::m.mTurnRate, + daAlinkHIO_frontRoll_c0::m.mTurnMaxAngle, + daAlinkHIO_frontRoll_c0::m.mTurnMinAngle); + shape_angle.y = current.angle.y; + } + + if (checkNoResetFlg0(FLG0_UNK_2)) { + setUpperGuardAnime(-1.0f); + } + + if (frameCtrl_p->checkAnmEnd()) { + if (mDemo.getDemoMode() == 0x28) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + if (!checkInputOnR()) { + mNormalSpeed -= daAlinkHIO_frontRoll_c0::m.mMinSpeed; + if (mNormalSpeed < 0.0f) { + mNormalSpeed = 0.0f; + } + } + + checkNextAction(0); + } + } else if (frameCtrl_p->getFrame() > daAlinkHIO_frontRoll_c0::m.mRollAnm.mCancelFrame) { + onModeFlg(4); + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + + if (checkZeroSpeedF()) { + onModeFlg(1); + } + + if (mProcVar2.field_0x300c != 0) { + procCutFinishInit(2); + } else if (!checkNextAction(1)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + } else if (mDemo.getDemoMode() != 0x28 && + speedF >= daAlinkHIO_frontRoll_c0::m.mCrashSpeedThreshold && + (checkNoResetFlg0(FLG0_UNK_18) || + (mAcchCir[0].ChkWallHit() && + !dComIfG_Bgsp().GetPolyAttackThrough(mAcchCir[0])) && + dComIfG_Bgsp().GetWallCode(mAcchCir[0]) != 7 && + cLib_distanceAngleS(current.angle.y + 0x8000, + mAcchCir[0].GetWallAngleY()) <= + daAlinkHIO_frontRoll_c0::m.mCrashAngleThreshold && + frameCtrl_p->getFrame() >= daAlinkHIO_frontRoll_c0::m.mCrashInitF && + frameCtrl_p->getFrame() <= daAlinkHIO_frontRoll_c0::m.mCrashEndF)) + { + if (!checkNoResetFlg0(FLG0_UNK_18)) { + mRollCrashFlg = dKy_pol_sound_get(&mAcchCir[0]); + } + + if (checkNoResetFlg0(FLG0_UNK_10) || + (mLinkAcch.ChkWallHit() && mAcchCir[0].ChkWallHit() && + (getMoveBGActorName(mAcchCir[0], FALSE) == PROC_Obj_Pillar || + getMoveBGActorName(mAcchCir[0], FALSE) == PROC_Obj_TaFence))) + { + procFrontRollSuccessInit(); + } else { + procFrontRollCrashInit(); + } + } else { + if (frameCtrl_p->checkPass(21.0f)) { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + if (checkForceSwordSwing()) { + mProcVar2.field_0x300c = 1; + } + + if (frameCtrl_p->getFrame() > 16.0f) { + if (frameCtrl_p->getFrame() >= 18.0f) { + field_0x2f92 = 1; + field_0x2f93 = 6; + } + + cLib_chaseF(&mNormalSpeed, 0.0f, 1.0f); + } else if (frameCtrl_p->getFrame() > 6.0f) { + field_0x2f9d = 4; + } + } + + return 1; +} + +/* 800C4F14-800C4FFC 0BF854 00E8+00 1/1 0/0 0/0 .text procFrontRollCrashInit__9daAlink_cFv */ +int daAlink_c::procFrontRollCrashInit() { + commonProcInit(PROC_FRONT_ROLL_CRASH); + setSingleAnime(ANM_ROLL_CRASH, 0.0f, + daAlinkHIO_frontRoll_c0::m.mCrashAnm.mStartFrame, + daAlinkHIO_frontRoll_c0::m.mCrashAnm.mEndFrame, + daAlinkHIO_frontRoll_c0::m.mCrashAnm.mInterpolation); + + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashSpeedH; + speed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV; + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; + } + + current.angle.y -= -0x8000; + setFrontRollCrashShock(mRollCrashFlg); + voiceStart(Z2SE_AL_V_ZENTEN_FAIL); + onResetFlg0(RFLG0_FRONT_ROLL_CRASH); + + return 1; +} + +/* 800C4FFC-800C5160 0BF93C 0164+00 1/0 0/0 0/0 .text procFrontRollCrash__9daAlink_cFv */ +int daAlink_c::procFrontRollCrash() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (!checkModeFlg(2)) { + if (frameCtrl->checkAnmEnd()) { + checkNextAction(0); + } else if (frameCtrl->getFrame() > daAlinkHIO_frontRoll_c0::m.mCrashAnm.mCancelFrame) { + onModeFlg(4); + checkNextAction(1); + } else if (frameCtrl->getFrame() >= 18.0f) { + field_0x2f92 = 4; + } else if (frameCtrl->getFrame() >= 14.0f) { + field_0x2f93 = 10; + } + } else if ((mLinkAcch.ChkGroundHit() || checkEndResetFlg2(ERFLG2_UNK_100) || + checkMagneBootsOn()) && + checkModeFlg(2)) + { + mNormalSpeed = 0.0f; + setWaterInAnmRate(frameCtrl, daAlinkHIO_frontRoll_c0::m.mCrashAnm.mSpeed); + frameCtrl->offEndFlg(); + current.angle.y = shape_angle.y; + voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2); + offModeFlg(2); + onModeFlg(0x8001); + } + + return 1; +} + +/* 800C5160-800C5240 0BFAA0 00E0+00 3/3 0/0 0/0 .text procFrontRollSuccessInit__9daAlink_cFv */ +int daAlink_c::procFrontRollSuccessInit() { + BOOL dk_caught = mProcID == PROC_DK_CAUGHT; + + commonProcInit(PROC_FRONT_ROLL_SUCCESS); + setSingleAnimeParam(ANM_BARRIER_RECOIL, &daAlinkHIO_frontRoll_c0::m.mCrashHitAnm); + mNormalSpeed = 0.0f; + + if (!dk_caught) { + setFrontRollCrashShock(mRollCrashFlg); + onResetFlg0(RFLG0_FRONT_ROLL_CRASH); + } else { + f32 tmp_3 = 3.0f; + mUnderFrameCtrl[0].setFrame(tmp_3); + getNowAnmPackUnder(UNDER_0)->setFrame(tmp_3); + } + + field_0x3588 = l_halfAtnWaitBaseAnime; + field_0x2f99 = 4; + setFootEffectProcType(1); + current.angle.y = shape_angle.y - -0x8000; + + return 1; +} + +/* 800C5240-800C5328 0BFB80 00E8+00 1/0 0/0 0/0 .text procFrontRollSuccess__9daAlink_cFv + */ +int daAlink_c::procFrontRollSuccess() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + field_0x2f99 = 4; + onEndResetFlg0(ERFLG0_UNK_8000000); + + if (frameCtrl->checkAnmEnd()) { + current.angle.y = shape_angle.y; + checkNextAction(0); + } else if (frameCtrl->getFrame() > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mCancelFrame) { + onModeFlg(4); + current.angle.y = shape_angle.y; + checkNextAction(1); + } else if (frameCtrl->getFrame() >= 14.0f) { + field_0x2f92 = 1; + field_0x2f93 = 6; + } else if (frameCtrl->getFrame() > 9.0f) { + field_0x2f9d = 0x60; + } + + return 1; +} + +/* 800C5328-800C5484 0BFC68 015C+00 3/3 0/0 0/0 .text procSideRollInit__9daAlink_cFi */ +int daAlink_c::procSideRollInit(int param_0) { + BOOL guard_anime = checkUpperGuardAnime(); + + if (!commonProcInitNotSameProc(PROC_SIDE_ROLL)) { + return 0; + } + + field_0x2f98 = param_0; + + daAlink_ANM anmID; + if (field_0x2f98 == 2) { + anmID = ANM_SIDE_ROLL_LEFT; + current.angle.y = shape_angle.y + 0x4000; + } else { + anmID = ANM_SIDE_ROLL_RIGHT; + current.angle.y = shape_angle.y + -0x4000; + } + + setSingleAnime(anmID, daAlinkHIO_turnMove_c0::m.mSideRollAnmSpeed, + daAlinkHIO_turnMove_c0::m.mTurnAnm.mStartFrame, + daAlinkHIO_turnMove_c0::m.mTurnAnm.mEndFrame, + daAlinkHIO_turnMove_c0::m.mTurnAnm.mInterpolation); + mNormalSpeed = daAlinkHIO_turnMove_c0::m.mSideRollSpeed; + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + } else if (checkHeavyStateOn(1, 1)) { + mNormalSpeed *= mHeavySpeedMultiplier; + } + + setFootEffectProcType(0); + field_0x2f9d = 4; + voiceStart(Z2SE_AL_V_SOTOMO_ROLL); + + if (guard_anime) { + onNoResetFlg0(FLG0_UNK_2); + } + mProcVar2.field_0x300c = 0; + + return 1; +} + +/* 800C5484-800C5700 0BFDC4 027C+00 1/0 0/0 0/0 .text procSideRoll__9daAlink_cFv */ +int daAlink_c::procSideRoll() { + onEndResetFlg0(ERFLG0_UNK_8000000); + if (mTargetedActor != NULL) { + s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); + cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); + + if (field_0x2f98 == 2) { + current.angle.y = shape_angle.y + 0x4000; + } else { + current.angle.y = shape_angle.y - 0x4000; + } + } + + mProcVar2.field_0x300c |= checkCutFinishJumpUp(); + + daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; + cM3dGPla poly; + + if (getSlidePolygon(&poly)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); + } + + if (checkNoResetFlg0(FLG0_UNK_2)) { + setUpperGuardAnime(-1.0f); + } + + if (frameCtrl_p->checkAnmEnd()) { + if (mDemo.getDemoMode() == 0x49) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + if (!checkAttentionLock()) { + offNoResetFlg2(FLG2_UNK_8000000); + } + + checkNextAction(0); + } + } else if (mProcVar2.field_0x300c != 0 && !checkNotJumpSinkLimit() && + frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) + { + procCutFinishJumpUpInit(); + } else if (frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) { + onModeFlg(4); + if (!checkNextAction(1)) { + cLib_chaseF(&mNormalSpeed, 0.0f, 7.5f); + } + } else { + if (frameCtrl_p->checkPass(19.0f)) { + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + } + + if (frameCtrl_p->getFrame() < 18.0f) { + field_0x2f9d = 4; + } else { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.5f); + } + } + + return 1; +} + +/* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */ +void daAlink_c::backJumpSpeedDec() { + if (mLinkAcch.ChkGroundHit()) { + if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { + f32 jump_speed; + if (dBgS_CheckBWallPoly(mLinkAcch.m_gnd)) { + jump_speed = 0.0f; + } else { + jump_speed = field_0x3478 * cM_scos(field_0x2ff0); + if (field_0x2ff0 > 0) { + jump_speed *= cM_scos(field_0x2ff0); + } + } + + if (mNormalSpeed > jump_speed) { + mNormalSpeed = jump_speed; + } + } + } +} + +/* 800C57A4-800C5964 0C00E4 01C0+00 6/6 0/0 0/0 .text procBackJumpInit__9daAlink_cFi */ +int daAlink_c::procBackJumpInit(int param_0) { + u32 horse_ride = checkHorseRide(); + BOOL guard_anime = checkUpperGuardAnime(); + BOOL ganon_finish = mProcID == PROC_GANON_FINISH; + + commonProcInit(PROC_BACK_JUMP); + + if (param_0) { + setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_cutDown_c0::m.mRecoverAnm); + mNormalSpeed = daAlinkHIO_cutDown_c0::m.mRecoverSpeedV; + speed.y = daAlinkHIO_cutDown_c0::m.mSpeedV; + voiceStart(Z2SE_AL_V_TODOME_RETURN); + } else { + setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_backJump_c0::m.mBackflipAnm); + mNormalSpeed = daAlinkHIO_backJump_c0::m.mBackflipSpeedH; + speed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV; + voiceStart(Z2SE_AL_V_BACKTEN); + } + + field_0x3478 = mNormalSpeed; + + if (horse_ride) { + onModeFlg(0x2000); + mProcVar0.field_0x3008 = 5; + } else { + mProcVar0.field_0x3008 = 0; + } + + if (ganon_finish) { + shape_angle.y -= -0x8000; + setOldRootQuaternion(0, -0x8000, 0); + field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 55.0f; + onNoResetFlg3(FLG3_UNK_4000000); + } + + current.angle.y = shape_angle.y - -0x8000; + field_0x3198 = 2; + + if (guard_anime) { + onNoResetFlg0(FLG0_UNK_2); + } + + return 1; +} + +/* 800C5964-800C5A54 0C02A4 00F0+00 1/0 0/0 0/0 .text procBackJump__9daAlink_cFv */ +int daAlink_c::procBackJump() { + if (mProcVar0.field_0x3008 != 0) { + mProcVar0.field_0x3008--; + } else { + offModeFlg(0x2000); + } + + if (checkCutTurnInput() && mEquipItem == 0x103) { + field_0x3198 = getCutTurnDirection(); + } + + backJumpSpeedDec(); + + if (mLinkAcch.ChkGroundHit() && mUnderFrameCtrl[0].checkAnmEnd()) { + procBackJumpLandInit(field_0x3198); + } else if (mDemo.getDemoMode() != 0x10 && + current.pos.y < mLastJumpPos.y - daAlinkHIO_backJump_c0::m.mFallHeight) + { + procFallInit(2, daAlinkHIO_backJump_c0::m.mFallInterpolation); + } + + checkItemChangeFromButton(); + return 1; +} + +/* 800C5A54-800C5AF0 0C0394 009C+00 1/1 0/0 0/0 .text procBackJumpLandInit__9daAlink_cFi + */ +int daAlink_c::procBackJumpLandInit(int i_cutDirection) { + commonProcInit(PROC_BACK_JUMP_LAND); + setSingleAnimeParam(ANM_BACKFLIP_LAND, &daAlinkHIO_backJump_c0::m.mLandAnm); + mNormalSpeed = 0.0f; + + field_0x2f9d = 4; + setFootEffectProcType(2); + onResetFlg1(RFLG1_UNK_30); + + field_0x3198 = i_cutDirection; + current.angle.y = shape_angle.y; + field_0x2fcc = 10; + setStepLandVibration(); + + return 1; +} + +/* 800C5AF0-800C5C28 0C0430 0138+00 1/0 0/0 0/0 .text procBackJumpLand__9daAlink_cFv */ +int daAlink_c::procBackJumpLand() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (field_0x2fcc != 0) { + field_0x2fcc = 10; + } + + onEndResetFlg0(ERFLG0_UNK_8000000); + + if (frameCtrl->checkAnmEnd()) { + if (mDemo.getDemoMode() == 0x10) { + dComIfGp_getPEvtManager()->cutEnd(field_0x3184); + } else { + if (!checkAttentionLock()) { + offNoResetFlg2(FLG2_UNK_8000000); + } + checkNextAction(0); + } + } else if (frameCtrl->getFrame() > daAlinkHIO_backJump_c0::m.mLandAnm.mCancelFrame) { + if (mEquipItem == 0x103 && (field_0x3198 != 2 || checkCutTurnInput())) { + return procCutTurnInit(1, field_0x3198); + } + + checkNextAction(1); + } + + return 1; +} + +/* 800C5C28-800C5CA4 0C0568 007C+00 1/1 0/0 0/0 .text procSlipInit__9daAlink_cFv */ +int daAlink_c::procSlipInit() { + commonProcInit(PROC_SLIP); + setSingleAnimeParam(ANM_SLIP, &daAlinkHIO_move_c0::m.mSlideAnm); + mNormalSpeed = speedF * daAlinkHIO_move_c0::m.mSlideSpeed; + + field_0x2f9d = 0x40; + setFootEffectProcType(1); + mProcVar0.field_0x3008 = 5; + + return 1; +} + +/* 800C5CA4-800C5E68 0C05E4 01C4+00 1/0 0/0 0/0 .text procSlip__9daAlink_cFv */ +int daAlink_c::procSlip() { + cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mSlideDeceleration); + + if (checkZeroSpeedF()) { + if (checkInputOnR()) { + current.angle.y = shape_angle.y + 0x8000; + shape_angle.y += 0x100; + mNormalSpeed = field_0x594 * 0.5f; + procMoveTurnInit(0); + } else { + checkNextAction(0); + } + } else { + cXyz sp14; + cXyz sp8; + mProcVar0.field_0x3008--; + + if (mLinkAcch.ChkWallHit() || (field_0x3174 == 8 && mProcVar0.field_0x3008 == 0)) { + mNormalSpeed = 0.0f; + checkNextAction(0); + return 1; + } + + if (mNormalSpeed > 2.5f) { + field_0x2f9d = 0x40; + } + + sp14 = current.pos; + sp14.y += 2.5f; + + sp8.set(sp14.x + cM_ssin(current.angle.y) * 50.0f, sp14.y, + sp14.z + cM_scos(current.angle.y) * 50.0f); + if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk)) { + mNormalSpeed = 0.0f; + return checkNextAction(0); + } + + seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); + } + + return 1; +} + +// TODO: Move / setup later +class ni_class : public fopAc_ac_c { +public: + bool checkGold() { return mType == 3; } + + /* 0x568 */ u8 field_0x568[0x5F0 - 0x568]; + /* 0x5F0 */ s8 mType; +}; + +/* 800C5E68-800C61EC 0C07A8 0384+00 4/4 0/0 0/0 .text procAutoJumpInit__9daAlink_cFi */ +int daAlink_c::procAutoJumpInit(int param_0) { + u32 chk_mode_400 = checkModeFlg(0x400); + BOOL not_front_roll = mProcID != PROC_FRONT_ROLL ? TRUE : FALSE; + + if (checkIronBallWaitAnime()) { + resetUpperAnime(UPPER_2, -1.0f); + deleteEquipItem(TRUE, FALSE); + } + + if (field_0x27f4 != NULL && fopAcM_GetName(field_0x27f4) == PROC_CANOE) { + return procSmallJumpInit(1); + } + + if (!commonProcInitNotSameProc(PROC_AUTO_JUMP)) { + return 0; + } + + mProcVar0.field_0x3008 = 0; + + if (chk_mode_400 || (mDemo.getDemoMode() == 0x18 && mDemo.getParam0() == 1)) { + if (chk_mode_400) { + onModeFlg(0x2000); + mProcVar0.field_0x3008 = 5; + } + + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, + daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); + field_0x3198 = 0x33; + current.angle.y = shape_angle.y + 0x8000; + } else { + setSingleAnimeParam(ANM_JUMP_START, &daAlinkHIO_autoJump_c0::m.mJumpAnm); + if (!not_front_roll) { + field_0x2060->initOldFrameMorf(0.0f, 0, 35); + } + + field_0x3198 = 0x31; + current.angle.y = shape_angle.y; + } + + s16 grab_actor_name; + if (mGrabItemAcKeep.getActor() != NULL) { + grab_actor_name = fopAcM_GetName(mGrabItemAcKeep.getActor()); + } else { + grab_actor_name = PROC_ALINK; + } + + s16 angle = daAlinkHIO_autoJump_c0::m.mJumpAngle; + BOOL cucco_jump = false; + field_0x3478 = -10.0f; + if (grab_actor_name == PROC_NI || grab_actor_name == PROC_NPC_TKJ2) { + if (grab_actor_name == PROC_NI && + ((ni_class*)mGrabItemAcKeep.getActor())->checkGold() == true) + { + field_0x594 = 30.0f; + } else { + if (checkStageName("F_SP115")) { + field_0x594 = 27.0f; + field_0x3478 = -10.0f; + } else { + field_0x594 = daAlinkHIO_autoJump_c0::m.mCuccoJumpMaxSpeed; + field_0x3478 = daAlinkHIO_autoJump_c0::m.mCuccoFallMaxSpeed; + } + + angle = daAlinkHIO_autoJump_c0::m.mCuccoJumpAngle; + cucco_jump = true; + } + } else { + field_0x594 = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed; + } + + if (checkGrabGlide()) { + offModeFlg(4); + } + + if (chk_mode_400) { + speedF = field_0x594 * 0.75f; + } else { + if (speedF > field_0x594 || param_0 || + daAlinkHIO_autoJump_c0::m.mAlwaysMaxSpeedJump == true) + { + speedF = field_0x594; + } else if (speedF < daAlinkHIO_autoJump_c0::m.mMinJumpSpeed) { + speedF = daAlinkHIO_autoJump_c0::m.mMinJumpSpeed; + } + } + + mNormalSpeed = speedF * daAlinkHIO_autoJump_c0::m.mJumpSpeedRate; + speed.y = mNormalSpeed * cM_ssin(angle); + mNormalSpeed *= cM_scos(angle); + + if (cucco_jump) { + mNormalSpeed = daAlinkHIO_autoJump_c0::m.mCuccoStartSpeed; + } + + field_0x3588 = l_waitBaseAnime; + voiceStart(Z2SE_AL_V_JUMP_L); + + offNoResetFlg0(FLG0_UNK_40000); + mProcVar2.field_0x300c = 0; + onResetFlg0(RFLG0_UNK_100); + mFallVoiceInit = false; + return 1; +} + +/* 800C61EC-800C66DC 0C0B2C 04F0+00 1/0 0/0 0/0 .text procAutoJump__9daAlink_cFv */ +int daAlink_c::procAutoJump() { + int direction = getDirectionFromCurrentAngle(); + + if (checkInputOnR() && direction == DIR_BACKWARD) { + cLib_chaseF(&mNormalSpeed, 0.0f, field_0x33a8 * 0.2f); + } else if (checkGrabGlide()) { + cLib_chaseF(&mNormalSpeed, field_0x594, 0.1f); + } else if (!checkInputOnR()) { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); + } + + if (mProcVar0.field_0x3008 != 0) { + mProcVar0.field_0x3008--; + } else { + offModeFlg(0x2000); + } + + setLandPassiveData(); + + if (!checkModeFlg(4) && checkSetItemTrigger(fpcNm_ITEM_HVY_BOOTS)) { + setHeavyBoots(1); + } + + if (checkUpperItemActionFly()) { + return 1; + } + + if (mLinkAcch.ChkGroundHit()) { + return checkLandAction(0); + } + + if (!checkGrabAnime()) { + dCcD_Cyl* cyl_p = field_0x850; + for (int i = 0; i < 3; i++) { + fopAc_ac_c* hit_ac = cyl_p->GetCoHitAc(); + if (cyl_p->ChkCoHit() && hit_ac != NULL) { + if (fopAcM_GetName(hit_ac) == PROC_Obj_SwHang) { + return procRoofSwitchHangInit(hit_ac); + } + } + + cyl_p++; + } + + if (checkFrontWallTypeAction() || checkCutJumpInFly()) { + return 1; + } + } + + if (field_0x3198 == 0x31 || field_0x3198 == 0x32) { + field_0x2f99 = 4; + } + + if (mProcVar2.field_0x300c != 0) { + setDoStatus(1); + + if (doTrigger()) { + freeGrabItem(); + onModeFlg(4); + } + + if (!checkGrabGlide()) { + setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, + daAlinkHIO_autoJump_c0::m.mMaxFallSpeed, 1); + mProcVar2.field_0x300c = 0; + resetUpperAnime(UPPER_1, 3.0f); + field_0x30a0 = 0; + onModeFlg(4); + } else { + field_0x30a0 = 0x1800; + + if (!checkBootsOrArmorHeavy()) { + mFallHeight = current.pos.y; + setSpecialGravity(-1.0f, field_0x3478, 0); + } else { + setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, + daAlinkHIO_autoJump_c0::m.mMaxFallSpeed * 0.6666667f, 0); + } + + s16 diff; + if (checkInputOnR() && direction != DIR_BACKWARD) { + cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 5, 200, 50); + diff = current.angle.y - shape_angle.y; + shape_angle.y = current.angle.y; + } else { + diff = 0; + } + + cLib_addCalcAngleS(&field_0x3082, -diff * 7, 10, 1000, 50); + cLib_addCalcAngleS(&field_0x308a, -diff * 12, 10, 1000, 50); + } + } + + setFallVoice(); + + f32 temp_f1 = (mFallHeight - current.pos.y) * 0.01f; + if (field_0x3198 != 0x8C && temp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) { + setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f, daAlinkHIO_damFall_c0::m.mFallAnmMorf); + field_0x3198 = 0x8C; + } else if (speed.y < -gravity && field_0x2f99 == 4) { + if (checkGrabGlide()) { + setSpecialGravity(-1.0f, field_0x3478, 0); + mProcVar2.field_0x300c = 1; + } + + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, + daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); + + if (mProcVar2.field_0x300c != 0) { + setUpperAnime(0x276, UPPER_1, 1.0f, 0.0f, -1, 3.0f); + } + + field_0x2f99 = 0x20; + field_0x3198 = 0x33; + } else if (field_0x3198 == 0x31 && mUnderFrameCtrl[0].checkAnmEnd()) { + setSingleAnimeBaseSpeed(ANM_JUMP, 0.0f, daAlinkHIO_autoJump_c0::m.mAirborneInterpolation); + field_0x3198 = 0x32; + } + + if (checkGrabGlide() && mWindSpeed.y > 0.0f) { + speed.y = 0.0f; + } + + checkItemChangeFromButton(); + + return 1; +} + +/* 800C66DC-800C6798 0C101C 00BC+00 1/1 0/0 0/0 .text procDiveJumpInit__9daAlink_cFv */ +int daAlink_c::procDiveJumpInit() { + commonProcInit(PROC_DIVE_JUMP); + setSingleAnimeParam(ANM_DIVE_START, &daAlinkHIO_autoJump_c0::m.mDiveAnm); + deleteEquipItem(TRUE, TRUE); + setHeavyBoots(0); + + speed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV; + mNormalSpeed = daAlinkHIO_autoJump_c0::m.mDiveSpeedH; + gravity = daAlinkHIO_autoJump_c0::m.mDiveGravity; + + mProcVar2.field_0x300c = 0; + current.angle.y = shape_angle.y; + field_0x33b0 = 92.0f; + + voiceStart(Z2SE_AL_V_JUMP_DIVING); + return 1; +} + +/* 800C6798-800C6850 0C10D8 00B8+00 1/0 0/0 0/0 .text procDiveJump__9daAlink_cFv */ +int daAlink_c::procDiveJump() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (mLinkAcch.ChkGroundHit()) { + return procFrontRollInit(); + } + + if (mProcVar2.field_0x300c == 0) { + if (frameCtrl->checkAnmEnd()) { + setSingleAnimeParam(ANM_DIVE, &daAlinkHIO_autoJump_c0::m.mDiveConnectAnm); + mProcVar2.field_0x300c = 1; + field_0x2f99 = 2; + } + } else { + field_0x2f99 = 2; + + if (frameCtrl->getFrame() >= 3.0f) { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.5f); + } + } + + return 1; +} + +/* 800C6850-800C692C 0C1190 00DC+00 1/1 0/0 0/0 .text procRollJumpInit__9daAlink_cFv */ +int daAlink_c::procRollJumpInit() { + commonProcInit(PROC_ROLL_JUMP); + setSingleAnimeBaseSpeed(ANM_ROLL_JUMP, 0.0f, + daAlinkHIO_autoJump_c0::m.mSpinJumpInterpolation); + + field_0x3478 = field_0x3410; + mNormalSpeed = field_0x3410; + speed.y = field_0x3414; + + field_0x2fe6 = field_0x30ee; + shape_angle.y = field_0x30ee; + current.angle.y = shape_angle.y; + + mLinkAcch.ClrGroundHit(); + field_0x347c = 0.0f; + shape_angle.x = 1; + + voiceStart(Z2SE_AL_V_GORONJUMP); + seStartOnlyReverb(Z2SE_AL_GORON_JUMP_START); + mProcVar2.field_0x300c = 1; + + return 1; +} + +/* 800C692C-800C6A48 0C126C 011C+00 1/0 0/0 0/0 .text procRollJump__9daAlink_cFv */ +int daAlink_c::procRollJump() { + if (mLinkAcch.ChkGroundHit()) { + return checkLandAction(0); + } + + if (speed.y < 0.0f) { + procFallInit(3, daAlinkHIO_autoJump_c0::m.mSpinJumpFallInterpolation); + } else { + s16 old_angle = shape_angle.x; + shape_angle.x += daAlinkHIO_autoJump_c0::m.mSpinJumpRotateSpeed; + + if (shape_angle.x * old_angle <= 0) { + if (mProcVar2.field_0x300c != 0) { + seStartOnlyReverb(Z2SE_AL_GORON_JUMP_ROLLING); + mProcVar2.field_0x300c = 0; + } else { + mProcVar2.field_0x300c = 1; + } + } + + cLib_chaseF(&field_0x347c, + field_0x33a8 * cM_scos(field_0x2fe2 - shape_angle.y) * + daAlinkHIO_autoJump_c0::m.mSpinJumpAddSpeed, + daAlinkHIO_autoJump_c0::m.mSpinJumpAccel); + mNormalSpeed = field_0x3478 + field_0x347c; + } + + return 1; +} + +#include "d/d_com_inf_game.h" + +/* 800C6A48-800C6D20 0C1388 02D8+00 30/30 0/0 0/0 .text procFallInit__9daAlink_cFif */ +int daAlink_c::procFallInit(int param_0, f32 param_1) { + if (mDemo.getDemoMode() == 0x11) { + mLinkAcch.SetGrndNone(); + mLinkAcch.OnLineCheckNone(); + } + + u32 var_r3 = checkModeFlg(0x10000) && !dComIfGp_checkPlayerStatus0(0, 8); + u8 temp_r30 = mProcID != PROC_CANOE_GETOFF; + BOOL temp_r29 = mProcID == PROC_ROOF_HANG_FRONT_MOVE; + + if (mProcID == PROC_HORSE_GETOFF) { + horseGetOffEnd(); + } + + if (!commonProcInitNotSameProc(PROC_FALL)) { + return 0; + } + + if (checkNoResetFlg0(FLG0_UNDERWATER)) { + offNoResetFlg0(FLG0_UNDERWATER); + } + + mProcVar5.field_0x3012 = 0; + + if (param_0 == 1) { + mNormalSpeed = 0.0f; + speed.y = 0.0f; + current.angle.y = shape_angle.y; + + if (var_r3) { + current.pos.x += cM_ssin(shape_angle.y) * 5.0f; + current.pos.z += cM_scos(shape_angle.y) * 5.0f; + } + } else if (param_0 == 4) { + current.angle.y = field_0x2ffe; + dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); + setDamagePoint(field_0x318c, FALSE, TRUE, 0); + + onNoResetFlg1(FLG1_THROW_DAMAGE); + if (mDamageTimer != 0) { + onModeFlg(8); + } + + mNormalSpeed = field_0x3408; + speed.y = field_0x340c; + mProcVar5.field_0x3012 = 1; + } + + mProcVar4.field_0x3010 = temp_r30; + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, param_1); + resetBasAnime(); + + if (param_0 != 4 && current.angle.y == shape_angle.y && !checkGrabAnime()) { + if (mNormalSpeed > 1.0f) { + mProcVar0.field_0x3008 = 2; + } else { + mProcVar0.field_0x3008 = 1; + } + } else { + mProcVar0.field_0x3008 = 0; + } + + if (temp_r29) { + mProcVar1.field_0x300a = 2; + field_0x32cc = 1; + } else { + mProcVar1.field_0x300a = 7; + field_0x32cc = 0; + } + + mProcVar2.field_0x300c = 0; + mProcVar3.field_0x300e = param_0 == 3; + offNoResetFlg0(FLG0_UNK_40000); + mFallVoiceInit = 0; + return 1; +} + +/* 800C6D20-800C6F18 0C1660 01F8+00 1/0 0/0 0/0 .text procFall__9daAlink_cFv */ +int daAlink_c::procFall() { + if (mProcVar5.field_0x3012 == 0) { + cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); + } else if (mProcVar5.field_0x3012 > 0) { + mProcVar5.field_0x3012 = -1; + return 1; + } + + setLandPassiveData(); + if (checkUpperItemActionFly()) { + return 1; + } + + if (mLinkAcch.ChkGroundHit()) { + return checkLandAction(mProcVar3.field_0x300e); + } + + if (dComIfGs_getLife() != 0) { + if (mProcVar0.field_0x3008 == 1) { + if (mProcVar1.field_0x300a > 0) { + mProcVar1.field_0x300a--; + } else { + setFrontWallType(); + + if ((field_0x32cc != 0 || + ((checkInputOnR() && getDirectionFromShapeAngle() == 0) || doTrigger())) && + checkFrontWallTypeAction()) + { + return 1; + } + } + } else if (mProcVar0.field_0x3008 == 2 && checkFrontWallTypeAction()) { + return 1; + } + + setFallVoice(); + + f32 tmp_f1 = (mFallHeight - current.pos.y) * 0.0099999998f; + if (mProcVar2.field_0x300c == 0 && tmp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) { + setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f, + daAlinkHIO_damFall_c0::m.mFallAnmMorf); + mProcVar2.field_0x300c = 1; + } + + if (current.angle.y == shape_angle.y && checkCutJumpInFly()) { + return 1; + } + } + + if (dComIfGs_getLife() != 0) { + checkItemChangeFromButton(); + } + + return 1; +} + +/* 800C6F18-800C6FE4 0C1858 00CC+00 6/6 0/0 0/0 .text procLandInit__9daAlink_cFf */ +int daAlink_c::procLandInit(f32 param_0) { + commonProcInit(PROC_LAND); + mNormalSpeed = 0.0f; + + setSingleAnimeParam(ANM_JUMP_LAND, &daAlinkHIO_autoJump_c0::m.mLandAnm); + + if (checkGrabGlide()) { + mUnderFrameCtrl[0].setRate(0.5f); + } else if (checkNoResetFlg0(FLG0_UNDERWATER)) { + f32 rate = mUnderFrameCtrl[0].getRate() * 0.34999999f; + mUnderFrameCtrl[0].setRate(rate); + } + + field_0x2f9d = 4; + setFootEffectProcType(4); + + onResetFlg1(RFLG1_UNK_30); + current.angle.y = shape_angle.y; + field_0x3478 = param_0; + + return 1; +} + +/* 800C6FE4-800C70F8 0C1924 0114+00 1/0 0/0 0/0 .text procLand__9daAlink_cFv */ +int daAlink_c::procLand() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (frameCtrl->checkAnmEnd()) { + checkNextAction(0); + } else if (frameCtrl->getFrame() > daAlinkHIO_autoJump_c0::m.mLandAnm.mCancelFrame) { + checkNextAction(1); + } else if (frameCtrl->checkPass(4.0f)) { + int var_r4; + if (checkBootsOrArmorHeavy()) { + var_r4 = 3; + } else if (checkNoResetFlg0(FLG0_UNDERWATER) || + field_0x3478 < daAlinkHIO_damFall_c0::m.mMinRollHeight) + { + var_r4 = 1; + } else { + var_r4 = 2; + } + + f32 tmp_0 = 0.0f; + dComIfGp_getVibration().StartShock(var_r4, 15, cXyz(tmp_0, 1.0f, tmp_0)); + } + + return 1; +} + +/* 800C70F8-800C72D4 0C1A38 01DC+00 3/3 0/0 0/0 .text procSmallJumpInit__9daAlink_cFi */ +int daAlink_c::procSmallJumpInit(int param_0) { + commonProcInit(PROC_SMALL_JUMP); + + if (param_0 == 2) { + setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, + daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, + daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation); + setJumpMode(); + speed.y = 24.0f; + voiceStart(Z2SE_AL_V_JUMP_S); + field_0x2f99 = 15; + field_0x33b0 = field_0x3588.y; + field_0x34d4 = l_waitBaseAnime; + } else { + setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm); + + if (param_0 == 1) { + field_0x3478 = field_0x27f4->current.pos.y + 20.0f; + if (field_0x3478 < current.pos.y + 30.0f) { + field_0x3478 = current.pos.y + 30.0f; + } + + daCanoe_c* canoe_p = (daCanoe_c*)field_0x27f4; + cXyz sp8(canoe_p->current.pos); + if (canoe_p->checkTandem()) { + sp8.x += cM_ssin(canoe_p->shape_angle.y) * 175.0f; + sp8.z += cM_scos(canoe_p->shape_angle.y) * 175.0f; + } + + mProcVar2.field_0x300c = cLib_targetAngleY(¤t.pos, &sp8); + mProcVar3.field_0x300e = 1; + setHeavyBoots(0); + } else { + field_0x3478 = field_0x34ec.y; + mProcVar3.field_0x300e = 0; + } + } + + mNormalSpeed = 0.0f; + field_0x33b0 = l_waitBaseAnime.y; + field_0x3588 = l_waitBaseAnime; + return 1; +} + +/* 800C72D4-800C74D4 0C1C14 0200+00 1/0 0/0 0/0 .text procSmallJump__9daAlink_cFv */ +// NONMATCHING - one out of order block with sqrt +int daAlink_c::procSmallJump() { + if (checkModeFlg(2)) { + if (checkCanoeJumpRide()) { + return 1; + } + + if (mLinkAcch.ChkGroundHit()) { + checkLandAction(0); + } else if (speed.y < -gravity) { + procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation); + } else { + field_0x2f99 = 7; + } + } else if (mUnderFrameCtrl[0].checkPass(6.0f)) { + setJumpMode(); + mNormalSpeed = daAlinkHIO_smallJump_c0::m.mSpeedH; + + if (checkHeavyStateOn(1, 1) && !checkNoResetFlg0(FLG0_UNDERWATER)) { + speed.y = JMAFastSqrt(2.0f * ((daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + + (field_0x3478 - current.pos.y)) * + -(gravity * 2.25f))); + } else { + speed.y = + JMAFastSqrt(2.0f * (-gravity * (daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + + (field_0x3478 - current.pos.y)))); + } + + voiceStart(Z2SE_AL_V_JUMP_S); + field_0x2f99 = 7; + + if (mProcVar3.field_0x300e != 0) { + shape_angle.y = mProcVar2.field_0x300c; + current.angle.y = shape_angle.y; + } + } else if (mProcVar3.field_0x300e != 0) { + cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 3, 0x1000, 0x400); + current.angle.y = shape_angle.y; + } + + return 1; +} + +/* 800C74D4-800C755C 0C1E14 0088+00 1/1 0/0 0/0 .text procStepMoveInit__9daAlink_cFv */ +int daAlink_c::procStepMoveInit() { + commonProcInit(PROC_STEP_MOVE); + setSingleAnimeParam(ANM_S_JUMP_START, &daAlinkHIO_smallJump_c0::m.mStepClimbAnm); + field_0x3478 = 0.5f * mNormalSpeed; + mNormalSpeed = 0.0f; + + mProcVar2.field_0x300c = 0; + field_0x3588 = l_waitBaseAnime; + + return 1; +} + +/* 800C755C-800C7690 0C1E9C 0134+00 1/0 0/0 0/0 .text procStepMove__9daAlink_cFv */ +int daAlink_c::procStepMove() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (mProcVar2.field_0x300c != 0) { + field_0x2f99 = 4; + + if (frameCtrl->checkAnmEnd()) { + return checkNextAction(0); + } + + if (frameCtrl->getFrame() > daAlinkHIO_smallJump_c0::m.mStepLandAnm.mCancelFrame) { + mNormalSpeed = field_0x3478; + + if (checkNextAction(1)) { + return 1; + } + + mNormalSpeed = 0.0f; + } + } else if (frameCtrl->checkAnmEnd()) { + setSingleAnimeParam(ANM_S_JUMP_END, &daAlinkHIO_smallJump_c0::m.mStepLandAnm); + current.pos.set(field_0x34ec.x + cM_ssin(shape_angle.y) * 2.0f, field_0x34ec.y, + field_0x34ec.z + cM_scos(shape_angle.y) * 2.0f); + field_0x2f99 = 80; + mProcVar2.field_0x300c = 1; + } + + return 1; +} + +/* 800C7690-800C76F8 0C1FD0 0068+00 1/0 0/0 0/0 .text procCrouchInit__9daAlink_cFv */ +int daAlink_c::procCrouchInit() { + if (!commonProcInitNotSameProc(PROC_CROUCH)) { + return 0; + } + + setSingleAnimeBaseSpeed(ANM_CROUCH, daAlinkHIO_crouch_c0::m.mCrouchAnmSpeed, + daAlinkHIO_crouch_c0::m.mCrouchInterpolation); + current.angle.y = shape_angle.y; + return 1; +} + +/* 800C76F8-800C77F4 0C2038 00FC+00 1/0 0/0 0/0 .text procCrouch__9daAlink_cFv */ +int daAlink_c::procCrouch() { + cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration); + + if (checkAttentionState()) { + setFaceBasicBck(0xE8); + } else { + setFaceBasicBck(0); + } + + if (mDemo.getDemoMode() != 0x29 && + (mSinkShapeOffset <= -80.0f || (checkAttentionLock() && checkGuardAccept()))) + { + checkNextActionFromCrouch(0); + } + + return 1; +} + +/* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */ +int daAlink_c::procCoMetamorphoseInit() { + int var_r29 = 0; + + if (dComIfGp_getEvent().isOrderOK()) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { + return 0; + } + mDemo.setSpecialDemoType(); + mDamageTimer = 0; + var_r29 = 1; + } + + if (!commonProcInitNotSameProc(PROC_METAMORPHOSE)) { + return 1; + } + + field_0x3198 = var_r29; + mProcVar0.field_0x3008 = 0; + mProcVar3.field_0x300e = 0; + mProcVar4.field_0x3010 = 0; + field_0x347c = 1.0f; + mFallVoiceInit = 0; + + if ((checkWolf() && mDemo.getDemoMode() == 0x39) || + (!checkWolf() && mDemo.getDemoMode() == 0x3A)) + { + mProcVar1.field_0x300a = 1; + speed.y = 0.0f; + mNormalSpeed = 0.0f; + + if (checkWolf()) { + mProcVar2.field_0x300c = shape_angle.x; + } + } else { + deleteEquipItem(FALSE, TRUE); + + if (checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) { + mProcVar4.field_0x3010 = 1; + } + mProcVar1.field_0x300a = 0; + + if (checkWolf()) { + // Transform Wolf -> Human + setSingleAnimeWolfBase(WANM_TRANSFORM_TO_HUMAN); + field_0x3588 = l_wolfBaseAnime; + field_0x347c = 0.5f; + field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed; + mProcVar2.field_0x300c = shape_angle.x; + + daMidna_c* midna = (daMidna_c*)getMidnaActor(); + if (checkMidnaRide() && daMidna_c::checkMidnaRealBody() && midna->checkDemoTypeNone()) + { + midna->changeOriginalDemo(); + midna->changeDemoMode(15); + } + } else { + // Transform Human -> Wolf + if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) { + voiceStart(Z2SE_AL_V_TRANSFORM); + } + + setSingleAnimeBase(ANM_TRANSFORM_TO_WOLF); + setMetamorphoseModel(1); + field_0x3588 = l_waitBaseAnime; + field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed; + + cXyz pos(current.pos.x + (cM_ssin(shape_angle.y) * 100.0f), current.pos.y + 300.0f, + current.pos.z + (cM_scos(shape_angle.y) * 100.0f)); + mLinkGndChk.SetPos(&pos); + + f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (gnd_cross != -1000000000.0f) { + pos.y = gnd_cross; + + cXyz sp14 = current.pos; + cXyz sp8 = pos; + + BOOL var_r28 = false; + for (int i = 0; i < 4; i++) { + if (i == 3) { + sp14.y = gnd_cross + 5.0f; + } else { + sp14.y = current.pos.y + mAcchCir[i].GetWallH(); + } + sp8.y = sp14.y; + + if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk) && + dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) + { + var_r28 = true; + break; + } + } + + if (var_r28) { + mProcVar2.field_0x300c = field_0x2ff0; + } else { + pos -= current.pos; + mProcVar2.field_0x300c = pos.atan2sY_XZ(); + + if (abs(mProcVar2.field_0x300c) > cM_deg2s(70.0f)) { + mProcVar2.field_0x300c = field_0x2ff0; + } + } + } else { + mProcVar2.field_0x300c = 0; + } + } + speed.y = 0.0f; + mNormalSpeed = 0.0f; + mProcVar5.field_0x3012 = 0; + } + + field_0x3484 = current.pos.y; + return 1; +} + +/* 800C7C64-800C82E8 0C25A4 0684+00 1/0 0/0 0/0 .text procCoMetamorphose__9daAlink_cFv */ +int daAlink_c::procCoMetamorphose() { + if (mProcVar1.field_0x300a != 0) { + if (!checkEventRun()) { + checkWaitAction(); + } else { + dComIfGp_evmng_cutEnd(field_0x3184); + } + return 1; + } + + daPy_frameCtrl_c* temp_r29 = mUnderFrameCtrl; + if (!mLinkAcch.ChkGroundHit()) { + current.pos.y = field_0x3484; + speed.y = 0.0f; + } else { + field_0x3484 = current.pos.y; + } + + field_0x2f99 = 4; + + if (mProcVar0.field_0x3008 != 0 && mProcVar5.field_0x3012 == 0) { + if (mClothesChangeWaitTimer == 0) { + mProcVar5.field_0x3012 = 1; + + if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) { + dComIfGp_evmng_cutEnd(field_0x3184); + + if (checkWolf()) { + setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f); + } else { + setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); + } + + field_0x2f99 = 0xC; + mProcVar1.field_0x300a = 1; + return 1; + } + + Vec sp8 = {0.0f, 0.0f, 0.0f}; + sp8.z = l_wolfBaseAnime.z - l_waitBaseAnime.z; + + if (!checkWolf()) { + setSingleAnimeBaseMorf(ANM_TRANSFORM_TO_HUMAN, -1.0f); + setMetamorphoseModel(0); + field_0x3588 = l_waitBaseAnime; + } else { + setSingleAnimeWolfBaseMorf(WANM_TRANSFORM_TO_WOLF, -1.0f); + field_0x3588 = l_wolfBaseAnime; + sp8.z *= -1.0f; + offModeFlg(0x8000); + } + + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&sp8, ¤t.pos); + + field_0x2f99 = 0xC; + if (mDemo.getDemoType() == 3) { + mFallVoiceInit = 1; + } + + } + } else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar5.field_0x3012 != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) { + if (mProcVar5.field_0x3012 != 0) { + deleteEquipItem(0, 0); + + if (field_0x3198 != 0) { + resetSpecialEvent(); + return checkWaitAction(); + } + + dComIfGp_evmng_cutEnd(field_0x3184); + + if (checkWolf()) { + setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f); + } else { + setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); + } + + field_0x2f99 = 0xC; + mProcVar1.field_0x300a = 1; + return 1; + } + + mClothesChangeWaitTimer = 4; + mpWlMidnaModel = NULL; + mProcVar0.field_0x3008 = 1; + + if (mProcVar4.field_0x3010 != 0) { + dComIfGs_onEventBit(0x5E40); + } + } + + field_0x33dc = temp_r29->getFrame(); + + if (mProcVar5.field_0x3012 != 0) { + if (checkWolf()) { + f32 var_f31 = 1.0f - (0.03846154f * field_0x33dc); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + + mProcVar3.field_0x300e = -64.0f * var_f31; + } else if (field_0x33dc < 14.0f) { + mProcVar3.field_0x300e = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc))); + } else { + f32 var_f31_2 = 1.0f - (0.2f * (field_0x33dc - 14.0f)); + if (var_f31_2 < 0.0f) { + var_f31_2 = 0.0f; + } + + mProcVar3.field_0x300e = 15.0f * var_f31_2; + } + } else if (checkWolf() != 0) { + mProcVar3.field_0x300e = -64.0 * (0.07142857142857142 * field_0x33dc); + } else if (field_0x33dc < 9.0f) { + mProcVar3.field_0x300e = -15.0 * (0.1111111111111111 * field_0x33dc); + } else { + f32 var_f31_3 = 0.2f * (field_0x33dc - 9.0f); + if (var_f31_3 > 1.0f) { + var_f31_3 = 1.0f; + } + + mProcVar3.field_0x300e = -(15.0f + (49.0f * var_f31_3)); + } + + if (!checkWolf()) { + f32 var_f30; + if (mProcVar5.field_0x3012 != 0) { + var_f30 = (field_0x33dc - 13.0f) / 4.0f; + } else { + var_f30 = (field_0x33dc - 8.0f) / 5.0f; + } + + var_f30 = cLib_minMaxLimit(var_f30, 0.0f, 1.0f); + + if (mProcVar5.field_0x3012 != 0) { + field_0x347c = 0.5f + (0.027777778f * field_0x33dc); + var_f30 = 1.0f - var_f30; + } else { + field_0x347c = 1.0f - (0.033333335f * (field_0x33dc - 9.0f)); + if (var_f30 > 0.0f) { + swimBgCheck(150.0f * var_f30); + } + } + + if (field_0x347c > 1.0f) { + field_0x347c = 1.0f; + } + + shape_angle.x = var_f30 * mProcVar2.field_0x300c; + } + + return 1; +} + +/* 800C82E8-800C83A0 0C2C28 00B8+00 2/0 0/0 0/0 .text procCoMetamorphoseOnlyInit__9daAlink_cFv */ +int daAlink_c::procCoMetamorphoseOnlyInit() { + if (!commonProcInitNotSameProc(PROC_METAMORPHOSE_ONLY)) { + return 1; + } + + deleteEquipItem(0, 1); + if ((checkWolf() && mDemo.getDemoMode() == 0x46) || + (!checkWolf() && mDemo.getDemoMode() == 0x47)) + { + mProcVar2.field_0x300c = 1; + mProcVar3.field_0x300e = 1; + } else { + mProcVar2.field_0x300c = 0; + mProcVar3.field_0x300e = 0; + } + + mNormalSpeed = 0.0f; + speed.y = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); + + return 1; +} + +/* 800C83A0-800C8460 0C2CE0 00C0+00 1/0 0/0 0/0 .text procCoMetamorphoseOnly__9daAlink_cFv */ +int daAlink_c::procCoMetamorphoseOnly() { + if (mProcVar2.field_0x300c == 0) { + mClothesChangeWaitTimer = 4; + mProcVar2.field_0x300c = 1; + } else if (mClothesChangeWaitTimer == 0) { + if (mProcVar3.field_0x300e == 0) { + mProcVar3.field_0x300e = 1; + + if (checkWolf()) { + setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, + -1.0f); + } else { + setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); + } + } + + dComIfGp_evmng_cutEnd(field_0x3184); + } + + return 1; +} + +/* 800C8460-800C84D0 0C2DA0 0070+00 2/2 0/0 0/0 .text procFloorDownReboundInit__9daAlink_cFv */ +int daAlink_c::procFloorDownReboundInit() { + commonProcInit(PROC_FLOOR_DOWN_REBOUND); + setSingleAnime(ANM_JUMP_LAND, 0.69999999f, daAlinkHIO_autoJump_c0::m.mLandAnm.mStartFrame, + daAlinkHIO_autoJump_c0::m.mLandAnm.mEndFrame, 10.0f); + mNormalSpeed = 0.0f; + current.angle.y = shape_angle.y; + field_0x2f98 = 4; + + return 1; +} + +/* 800C84D0-800C854C 0C2E10 007C+00 1/0 0/0 0/0 .text procFloorDownRebound__9daAlink_cFv + */ +int daAlink_c::procFloorDownRebound() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + + if (frameCtrl->checkAnmEnd()) { + checkNextAction(0); + } else if (frameCtrl->getFrame() > daAlinkHIO_autoJump_c0::m.mLandAnm.mCancelFrame) { + checkNextAction(1); + } + + return 1; +} + +/* 800C854C-800C85D8 0C2E8C 008C+00 1/1 0/0 0/0 .text + * procGoronRideWaitInit__9daAlink_cFP10fopAc_ac_c */ +int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* param_0) { + if (!commonProcInitNotSameProc(PROC_GORON_RIDE_WAIT)) { + return 0; + } + + mNormalSpeed = 0.0f; + current.pos.x = param_0->current.pos.x; + current.pos.z = param_0->current.pos.z; + field_0x2f99 = 0x50; + current.angle.y = shape_angle.y; + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + + return 1; +} + +/* 800C85D8-800C8700 0C2F18 0128+00 1/0 0/0 0/0 .text procGoronRideWait__9daAlink_cFv */ +int daAlink_c::procGoronRideWait() { + if (!checkGoronRide()) { + checkNextAction(0); + } else { + if (checkInputOnR()) { + cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, 2, 500, 100); + } + + s16 temp_r0 = shape_angle.y - current.angle.y; + daAlink_ANM var_r28; + if (temp_r0 > 0) { + var_r28 = ANM_STEP_TURN; + } else if (temp_r0 < 0) { + var_r28 = ANM_SMALL_GUARD; + } else { + var_r28 = ANM_WAIT; + } + + f32 var_f31 = 0.8f + (0.002f * abs(temp_r0)); + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + + var_f31 = 1.0f - var_f31; + + setDoubleAnime(var_f31, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_move_c0::m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f); + current.angle.y = shape_angle.y; + } + + return 1; +} + +/* 800C8700-800CAFA8 0C3040 28A8+00 1/1 0/0 0/0 .text execute__9daAlink_cFv */ +int daAlink_c::execute() { + loadModelDVD(); + + if (checkEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT) && getMidnaActor() != NULL) { + getMidnaActor()->onNoServiceWait(); + } + + if (field_0x30fe != 0) { + *field_0x814.GetCCMoveP() = field_0x372c * (1.0f / (f32)field_0x30fe); + } + + if (checkHorseRide() && checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL) { + shape_angle.y = dComIfGp_getHorseActor()->shape_angle.y; + current.angle.y = shape_angle.y; + } else if (checkMagneBootsOn()) { + shape_angle.y = field_0x3118; + } else if (checkModeFlg(MODE_VINE_CLIMB) || checkCargoCarry()) { + shape_angle.y = field_0x3108; + } + + if (checkNoResetFlg2(FLG2_UNK_1) && mEquipItem != fpcNm_ITEM_KANTERA && checkItemSetButton(fpcNm_ITEM_KANTERA) == 2) { + offKandelaarModel(); + } + + mSwordChangeWaitTimer = 0; + setSelectEquipItem(0); + + if (dComIfGp_event_runCheck()) { + field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0); + + if (eventInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && + mEquipItem == 0x102) + { + deleteEquipItem(FALSE, FALSE); + } + } + + if (mSwordUpTimer != 0) { + mSwordUpTimer--; + } + + field_0x317c = dComIfGp_getPlayerCameraID(0); + field_0x3510 = current.pos; + + if (checkMagneBootsOn()) { + if (checkNoResetFlg0(FLG0_UNK_2000) && dComIfG_Bgsp().ChkPolySafe(mMagneLineChk) && + dComIfG_Bgsp().ChkMoveBG(mMagneLineChk)) + { + s16 shape_angle_y = shape_angle.y; + s16 angle_y = current.angle.y; + f32 pos_y = current.pos.y; + + dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, ¤t.pos, ¤t.angle, + &shape_angle, false, false); + + if (field_0x3114 > 0x6000 || field_0x3114 == -0x8000) { + shape_angle.y = shape_angle_y - (s16)(shape_angle.y - shape_angle_y); + current.angle.y = angle_y - (s16)(current.angle.y - angle_y); + } + + dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, &old.pos, NULL, NULL, false, false); + + if (getMoveBGActorName(mMagneLineChk, FALSE) == PROC_Obj_MagneArm) { + field_0x34c8.y += current.pos.y - pos_y; + } else { + field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; + } + } + } else if (mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) && + mProcID != PROC_TOOL_DEMO && mLinkAcch.GetGroundH() != -1000000000.0f && + dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && + dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) + { + bool uvar23; + if (mProcID == PROC_SPINNER_READY) { + uvar23 = true; + } else { + uvar23 = mLinkAcch.ChkGroundHit(); + } + f32 pos_y = current.pos.y; + + dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, ¤t.pos, ¤t.angle, + &shape_angle, false, false); + dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, &old.pos, NULL, NULL, false, false); + field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; + } + + field_0x3798 = old.pos; + field_0x2fe6 = shape_angle.y; + mPrevStickAngle = mStickAngle; + field_0x33a4 = field_0x33ac; + + if (checkResetFlg0(RFLG0_UNK_8000000) && !checkCutDashAnime()) { + mCutType = 0; + } + + mResetFlg0 = 0; + mResetFlg1 = 0; + + daAlink_matAnm_c::decMorfFrame(); + field_0x2180[0]->offSetFlg(); + field_0x2180[1]->offSetFlg(); + + field_0x2f99 = 0; + field_0x2f9d = 0; + field_0x2fc1 = 6; + + if (!checkSwordGet() && mEquipItem == 0x103) { + deleteEquipItem(FALSE, FALSE); + } + + field_0x2fae = 0; + + setDoStatus(0); + setRStatus(0); + set3DStatus(0, 0); + setMidnaTalkStatus(0); + + if (checkWolf()) { + setBStatus(ACTION_STR_ATTACK); + setWolfDigStatus(ACTION_STR_NONE); + + // Have wolf sense ability + if (dComIfGs_isEventBit(0x4308)) { + setWolfSenceStatus(ACTION_STR_SENSE); + } else { + setWolfSenceStatus(ACTION_STR_NONE); + } + } else { + if (checkCanoeRide() && checkStageName("F_SP127")) { + setBStatus(ACTION_STR_NONE5); + } else if (checkSwordGet()) { + setBStatus(ACTION_STR_NONE3); + } else { + setBStatus(ACTION_STR_NONE); + } + } + + field_0x2f91 = 0; + + if (mProcID == PROC_BOTTLE_SWING && eventInfo.checkCommandCatch()) { + mDemo.setSpecialDemoType(); + } + + field_0x280c.setActor(); + mRideAcKeep.setActor(); + + if (checkNoResetFlg2(FLG2_UNK_58)) { + field_0x281c.setActor(); + if (field_0x281c.getActor() == NULL) { + offNoResetFlg2(FLG2_UNK_58); + } + } else { + field_0x281c.clearData(); + } + + field_0x2844.setActor(); + mThrowBoomerangAcKeep.setActor(); + mCopyRodAcKeep.setActor(); + + if (mCopyRodAcKeep.getActor() != NULL) { + static_cast(mCopyRodAcKeep.getActor())->setControllActorData(); + } + + mGrabItemAcKeep.setActor(); + mHookTargetAcKeep.setActor(); + field_0x285c.setActor(); + + if (checkFishingRodAndLureItem() && mItemAcKeep.getActor() == NULL) { + fopAc_ac_c* item_actor = fopAcM_SearchByID(mItemAcKeep.getID()); + if (item_actor != NULL) { + mItemAcKeep.setData(item_actor); + } + } else { + mItemAcKeep.setActor(); + } + + if (checkWolf()) { + checkWolfLockData(); + } + + setAtnList(); + setDemoData(); + setStickData(); + + if (mFastShotTime < 0) { + mFastShotTime = 0; + } + + checkOxygenTimer(); + + if (field_0x2fce != 0) { + field_0x2fce--; + } + + if (field_0x2fcd != 0) { + field_0x2fcd--; + } + + if (field_0x3000 != 0) { + field_0x3000--; + } + + if (field_0x30fc != 0) { + field_0x30fc--; + } + + if (field_0x2fb4 != 0) { + field_0x2fb4--; + } + + if (field_0x30a4 != 0) { + field_0x30a4--; + } + + if (field_0x30a6 != 0) { + field_0x30a6--; + } + + if (field_0x30ec != 0) { + field_0x30ec--; + } + + if (mSwordFlourishTimer != 0) { + mSwordFlourishTimer--; + } + + if (field_0x3100 != 0) { + field_0x3100--; + } + + if (field_0x2fc4 != 0) { + field_0x2fc4--; + } + + if (field_0x30d2 != 0) { + field_0x30d2--; + } + + if (field_0x30d0 != 0) { + field_0x30d0--; + } else { + offNoResetFlg1(FLG1_DASH_MODE); + } + + if (field_0x2fd2 != 0) { + field_0x2fd2--; + } + + if (field_0x2fd3 != 0 && mProcID != PROC_BOTTLE_DRINK && mProcID != PROC_CANOE_BOTTLE_DRINK && + mProcID != PROC_HORSE_BOTTLE_DRINK) + { + field_0x2fd3--; + } + + if (field_0x2fd4 != 0 && mProcID != PROC_GUARD_SLIP) { + field_0x2fd4--; + + if (field_0x2fd4 == 0) { + field_0x2fd5 = 0; + } + } + + if (checkWolfEyeUp()) { + fopAc_ac_c* partner = (fopAc_ac_c*)fopAcM_getTalkEventPartner(this); + + const char* event_name; + if (checkEventRun()) { + event_name = dComIfGp_getEventManager().getRunEventName(); + } else { + event_name = NULL; + } + + if (event_name != NULL && (!strcmp(event_name, "kiko_yami") || !strcmp(event_name, "fire_insect") || + (checkStageName("F_SP108") && + (!strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "yami_mog"))) || + (checkStageName("R_SP109") && + (!strcmp(event_name, "MapToolCamera1") || !strcmp(event_name, "MapToolCamera2") || + !strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "fire_insect"))) || + (checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23")))) + { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime + 1; + } else if (checkEndResetFlg1(ERFLG1_WOLF_EYE_KEEP) || (checkDungeon() && eventInfo.checkCommandDoor()) || + mProcID == PROC_WOLF_GET_SMELL || mProcID == PROC_WOLF_DIG || + mProcID == PROC_WOLF_DIG_THROUGH || checkNoResetFlg0(FLG0_UNK_4000) || + dComIfGp_checkPlayerStatus1(0, 0x1000000) || + (checkEventRun() && partner != NULL && (partner->attention_info.flags & 0x400000)) || + !strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName)) + { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime; + } else if (mTargetedActor != NULL || dComIfGp_checkPlayerStatus0(0, 0x2000)) { + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime - 1; + } else if (!dComIfGp_getEvent().isOrderOK() && mProcID != PROC_GET_ITEM && + mWolfEyeUp <= daAlinkHIO_wolf_c0::m.mSensesLingerTime) + { + offWolfEyeUp(); + } else { + mWolfEyeUp = 1; + } + } + + if (checkEndResetFlg0(ERFLG0_ENEMY_DEAD) && mEquipItem == 0x103) { + mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime; + } + + if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || field_0x2fbb == 11) { + onNoResetFlg0(FLG0_UNK_40000000); + } + + fopAc_ac_c* item_actor = mGrabItemAcKeep.getActor(); + if (item_actor != NULL && (!fopAcM_checkCarryNow(item_actor) || + (checkNoResetFlg0(FLG0_UNDERWATER) && + (checkGrabRooster() || fopAcM_GetName(item_actor) == PROC_E_NEST || + checkGrabCarryActor())))) + { + freeGrabItem(); + } + + allAnimePlay(); + + if (mDamageTimer != 0) { + damageTimerCount(); + } + + if (checkEquipHeavyBoots()) { + int temp_r3_22 = checkItemSetButton(fpcNm_ITEM_HVY_BOOTS); + if (temp_r3_22 == 2 || checkNotHeavyBootsStage()) { + if (!dComIfGp_checkPlayerStatus1(0, 0x10000) || !checkHookshotRoofLv7Boss()) { + setHeavyBoots(0); + } + } else { + dMeter2Info_onDirectUseItem(temp_r3_22); + } + } + + checkWarpStart(); + + if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) { + if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) && + !checkAutoJumpAction()) + { + checkSwimAction(0); + } + + if (checkDamageAction() && mProcID == PROC_LARGE_DAMAGE && checkMagneBootsOn()) { + cancelMagneBootsOn(); + } + + checkBoomerangCatchAction(); + } + + offNoResetFlg1(FLG1_UNK_20); + + if (checkWolf()) { + checkWolfComboCnt(); + + if (checkWolfEnemyThrowAnime()) { + checkWolfEnemyThrowAction(); + } + } else { + checkItemButtonChange(); + setItemAction(); + checkComboCnt(); + setShieldGuard(); + + if (checkCutFastReady()) { + if (checkNoUpperAnime()) { + setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mSpeed, 12.0f, + daAlinkHIO_cut_c0::m.mEquipAnm.mEndFrame, + daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation); + onNoResetFlg0(FLG0_UNK_1000000); + } + } else if (checkNoResetFlg0(FLG0_UNK_1000000)) { + resetUpperAnime(UPPER_2, 5.0f); + } + + if (mEquipItem == fpcNm_ITEM_KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() && + (checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) + { + if (checkReinRide()) { + setUpperAnimeBase(0x264); + } else { + setUpperAnimeBase(0x268); + } + + mNowAnmPackUpper[2].setRatio(0.0f); + } + } + + checkLightSwordMtrl(); + (this->*mpProcFunc)(); + + if (!checkEndResetFlg0(ERFLG0_UNK_2000) && checkWindDashAnime()) { + resetUpperAnime(UPPER_2, 3.0f); + } + + playFaceTextureAnime(); + + { + cXyz old_pos = current.pos; + posMove(); + + if (checkWolf()) { + wolfBgCheck(); + } else if (checkModeFlg(MODE_SWIMMING)) { + swimBgCheck(120.0f); + } + + cXyz pos = current.pos; + field_0x3528 = speed; + + mLinkAcch.ClrGroundHit(); + mLinkAcch.CrrPos(dComIfG_Bgsp()); + + if (checkMagneBootsOn()) { + current.pos = pos; + } + + if (!mLinkAcch.ChkGroundHit() && !mLinkAcch.ChkRoofHit() && getZoraSwim()) { + current.pos.y = pos.y; + } + + iceSlipBgCheck(); + setWaterY(); + autoGroundHit(); + + if (checkNoResetFlg0(FLG0_UNDERWATER) || + (checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_SWIM_UP))) + { + f32 var_f31; + if (mProcID == PROC_HOOKSHOT_FLY) { + var_f31 = current.pos.y - (field_0x598 * 0.5f); + } else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + var_f31 = (current.pos.y + -65.0f) - (daAlinkHIO_swim_c0::m.mInitHeight - 5.0f); + } else { + var_f31 = current.pos.y; + } + + if (!checkNoResetFlg0(FLG0_UNK_80) || + mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight - 5.0f) + { + swimOutAfter(0); + } + } + + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + J3DTransformInfo ti; + field_0x1f20->getAnm(0)->getTransform(0, &ti); + mDoMtx_stack_c::transS(old_pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + + Vec tmp = {0.0f, 0.0f, 0.0f}; + tmp.x = ti.mTranslate.x; + tmp.z = ti.mTranslate.z; + mDoMtx_stack_c::multVec(&tmp, ¤t.pos); + speed.y = 0.0f; + + if (field_0x3198 != 0) { + if (mLinkAcch.GetGroundH() != -1000000000.0f) { + current.pos.y = mLinkAcch.GetGroundH(); + } + } + } else if (mProcID == PROC_HOOKSHOT_FLY || mProcID == PROC_MAGNE_BOOTS_FLY || + (checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) && + mProcID != PROC_HORSE_GETOFF && mProcID != PROC_WOLF_CHAIN_READY && + !checkBoardRide())) + { + current.pos = pos; + } else if (checkModeFlg(MODE_UNK_4000)) { + if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) { + current.pos.y = old_pos.y; + speed.y = 0.0f; + } + current.pos.x = pos.x; + current.pos.z = pos.z; + } else if (checkFlyAtnWait() || mProcID == PROC_WARP) { + current.pos.y = old_pos.y; + speed.y = 0.0f; + } + + field_0x3178 = field_0x3174; + + if (mLinkAcch.GetGroundH() != -1000000000.0f) { + setRoomInfo(); + + if (!checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && mProcID != PROC_TOOL_DEMO && + mProcID != PROC_GANON_FINISH && mProcID != PROC_DUNGEON_WARP && + (field_0x2f8c == 1 || field_0x2f8c == 3)) + { + setStepsOffset(); + } else { + field_0x2b9c = 0.0f; + if (!checkModeFlg(MODE_SWIMMING)) { + field_0x2b98 = 0.0f; + } + } + + if (checkModeFlg(MODE_UNK_2000000)) { + setShapeAngleOnGround(); + } + + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd)); + } + + if (mLinkAcch.ChkGroundHit()) { + if (dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { + dComIfG_Bgsp().MoveBgTransPos(mLinkAcch.m_gnd, true, &field_0x34ec, NULL, NULL); + } + + if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && + mWaterY >= mLinkAcch.GetGroundH()) + { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { + mPolySound = 11; + } else { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + } + + field_0x2ff0 = getGroundAngle(&mLinkAcch.m_gnd, shape_angle.y); + } else { + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY >= mLinkAcch.GetGroundH()) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { + mPolySound = 11; + } else { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + } + } else if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_UNK_80)) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else { + mPolySound = 0; + } + + field_0x2ff0 = 0; + } + mDoAud_setLinkGroupInfo(dComIfG_Bgsp().GetGrpSoundId(mLinkAcch.m_gnd)); + } else { + field_0x3174 = -1; + field_0x2ff0 = 0; + field_0x2fbb = 16; + field_0x2fbd = 0; + mGndPolySpecialCode = dBgW_SPCODE_NORMAL; + + if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else { + mPolySound = 0; + } + + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(0x3F); + } + } + + if (checkMagneBootsOn()) { + field_0x2fbd = 0; + field_0x2f5c.mPosition = current.pos; + field_0x2f5c.mPow = 100.0f; + + if (checkNoResetFlg0(FLG0_UNK_2000)) { + mPolySound = dKy_pol_sound_get(&mMagneLineChk); + field_0x2ff0 = 0; + field_0x3174 = dComIfG_Bgsp().GetGroundCode(mMagneLineChk); + field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk); + mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk); + setMagneBootsMtx(&mMagneLineChk, 0); + } else { + mPolySound = 0; + field_0x2ff0 = 0; + field_0x3174 = -1; + field_0x2fbb = 16; + mGndPolySpecialCode = dBgW_SPCODE_NORMAL; + } + } else { + field_0x2f5c.mPow = 0.0f; + if (mProcID != PROC_MAGNE_BOOTS_FLY) { + mMagneBootsTopVec = cXyz::BaseY; + } + } + + if (dComIfGp_evmng_startCheck(l_peepEventName)) { + if (field_0x2ff2 > 0) { + field_0x2ff2--; + } else if (dComIfGp_evmng_startCheck(l_peepEventName)) { + startPeepChange(); + } + } + + if (checkModeFlg(MODE_VINE_CLIMB) && mProcVar2.field_0x300c != 0 && + dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) + { + mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity); + } else { + mZ2Link.framework(mPolySound, mVoiceReverbIntensity); + } + + if (field_0x2d7c != NULL) { + mZ2Link.updateAnime(field_0x2d7c->getFrame(), field_0x2d7c->getRate()); + } + + if (mProcID != PROC_DAMAGE && mProcID != PROC_SWIM_DAMAGE && mProcID != PROC_HORSE_DAMAGE) { + setMoveSlantAngle(); + + if (checkReinRide() && checkUpperGuardAnime()) { + setBodyAngleRideReadyAnime(); + } else if (!checkSmallUpperGuardAnime() && !checkWolf()) { + if (!checkModeFlg(MODE_UNK_20000000)) { + if (checkUpperGuardAnime()) { + setBodyAngleXReadyAnime(0); + } else if (!checkUpperReadyThrowAnime()) { + cLib_addCalcAngleS(&mBodyAngle.x, 0, 4, 0x0C00, 0x0180); + } + } + + if (!checkModeFlg(MODE_UNK_40000000)) { + cLib_addCalcAngleS(&mBodyAngle.y, 0, 4, 0x0C00, 0x0180); + } + } + } + + setMatrix(); + setNeckAngle(); + + if (field_0x2fcc != 0) { + field_0x2fcc--; + } + + if (!checkWolf()) { + setHatAngle(); + + if (field_0x2fb0 != 0) { + field_0x2fb0--; + } + + footBgCheck(); + handBgCheck(); + + field_0x30c8 = mBodyAngle.y >> 1; + modelCalc(mpLinkModel); + + if (field_0x2fcb != 0) { + if (checkWoodShieldEquip() && mWaterY < mShieldModel->getBaseTRMtx()[1][3]) { + field_0x2fcb--; + + if (field_0x2fcb == 0) { + dMeter2Info_setShield(fpcNm_ITEM_NONE, true); + stickArrowIncrement(1); + setWoodShieldBurnOutEffect(); + + // "Your shield burned up..." + dMeter2Info_setFloatingMessage(2047, 90, false); + + stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); + if (dStage_stagInfo_GetSaveTbl(pstag) == 0x11 && + !dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD)) + { + fopAcM_onSwitch(this, 0x6F); + } + seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN); + } + } else { + clearWoodShieldBurnEffect(); + } + } + + if (checkShieldGet() && !checkWoodShieldEquip()) { + stickArrowIncrement(1); + } + setItemMatrix(0); + } else { + daMidna_c* pmidna = (daMidna_c*)getMidnaActor(); + + if (mClothesChangeWaitTimer == 0) { + if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) && + !pmidna->checkForceNormalColor()) + { + mpWlMidnaModel->getModelData()->entryTevRegAnimator(mpDMidnaBrk); + mpWlMidnaMaskModel->getModelData()->entryTevRegAnimator(mpDMidnaMaskBrk); + mpWlMidnaHandModel->getModelData()->entryTevRegAnimator(mpDMidnaHandBrk); + mpWlMidnaHairModel->getModelData()->entryTevRegAnimator(mpDMidnaHairHandBrk); + } else { + mpWlMidnaModel->getModelData()->removeTevRegAnimator(mpDMidnaBrk); + mpWlMidnaMaskModel->getModelData()->removeTevRegAnimator(mpDMidnaMaskBrk); + mpWlMidnaHandModel->getModelData()->removeTevRegAnimator(mpDMidnaHandBrk); + mpWlMidnaHairModel->getModelData()->removeTevRegAnimator(mpDMidnaHairHandBrk); + } + } + + wolfFootBgCheck(); + setWolfTailAngle(); + modelCalc(mpLinkModel); + checkWolfUseAbility(); + + if (checkWolfEyeUp() != 0) { + mWolfEyeUpTimer++; + if (mWolfEyeUpTimer > 30) { + mWolfEyeUpTimer = 30; + } + } else if (mWolfEyeUpTimer != 0) { + mWolfEyeUpTimer--; + } + + setWolfItemMatrix(); + } + + if (checkFmChainGrabAnime()) { + mNowAnmPackUpper[2].setRatio(1.0f); + } + + setBodyPartPos(); + + if (!checkWolf() && checkEndResetFlg0(ERFLG0_UNK_800000)) { + setHatAngle(); + modelCalc(mpLinkModel); + } + + setHangWaterY(); + setCollision(); + setAttentionPos(); + setLight(); + setEffect(); + + if (mClothesChangeWaitTimer != 0) { + mDoMtx_stack_c::copy(mpLinkModel->getBaseTRMtx()); + + if (!checkWolf()) { + mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); + } + + mpWlChangeModel->setBaseTRMtx(mDoMtx_stack_c::get()); + mpWlChangeModel->calc(); + } + + mSight.mLockCursor.update(); + setGrabItemPos(); + + checkRoofRestart(); + mExitID = 0x3F; + mpScnChg = NULL; + + static Vec const localBoomCatchPos = {18.7f, 146.3f, 69.2f}; + cMtx_multVec(mpLinkModel->getAnmMtx(0), &localBoomCatchPos, &field_0x3534); + + if (checkResetFlg0(RFLG0_UNK_10)) { + mZ2Link.setResumeAttack(true); + } else { + mZ2Link.setResumeAttack(false); + } + + if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) && + (mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) && + getMoveBGActorName(mLinkAcch.m_wtr, TRUE) == PROC_Obj_Onsen) + { + if (mHotspringRecoverTimer != 0) { + mHotspringRecoverTimer--; + } else { + mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; + dComIfGp_setItemLifeCount(1.0f, 1); + } + } else { + mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; + } + + if (checkAttentionLock() || (!checkUpperReadyThrowAnime() && + mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT)) + { + mFastShotTime = 0; + } + + if (checkDeadHP()) { + eventInfo.offCondition(fopAcCnd_NOEXEC_e); + } else if (!checkMagneBootsOn()) { + f32 var_f31_2; + if (mLinkAcch.ChkGroundHit()) { + cM3dGPla plane; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &plane); + var_f31_2 = plane.mNormal.y; + } else { + var_f31_2 = -1.0f; + } + + if (cBgW_CheckBGround(var_f31_2) && !checkModeFlg(MODE_PLAYER_FLY)) { + eventInfo.onCondition(0x5D); + } else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE || + ((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) && + !checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) + { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + if (checkReinRide() || checkCanoeRide()) { + eventInfo.onCondition(dEvtCnd_CANGETITEM_e); + } + } + } else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + } + + if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) { + getMidnaActor()->onForcePanic(); + } + + field_0x30fe = 0; + field_0x372c = cXyz::Zero; + field_0x2fb8 = 0; + + if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { + if (checkMagicArmorNoDamage() && !checkEventRun()) { + if (field_0x2fc3 == 0) { + field_0x2fc3 = 10; + dComIfGp_setItemRupeeCount(-1); + } else { + field_0x2fc3--; + } + } + + if (dComIfGs_getRupee() == 0 && field_0x2fd7 != 0) { + setMagicArmorBrk(0); + seStartOnlyReverb(Z2SE_AL_M_ARMER_TURNOFF); + mZ2Link.setLinkState(5); + } else if (dComIfGs_getRupee() != 0 && field_0x2fd7 == 0) { + setMagicArmorBrk(1); + seStartOnlyReverb(Z2SE_AL_M_ARMER_RECOVER); + mZ2Link.setLinkState(4); + } + } + + if (!checkWolf()) { + for (u8 i = 0; i < 2; i++) { + u8 tmp = (i + 1) % 2; + if (dComIfGp_getSelectItem(i) == fpcNm_ITEM_EMPTY_BOTTLE && (field_0x2fae & (1 << i)) && + dComIfGp_getSelectItem(tmp) == fpcNm_ITEM_EMPTY_BOTTLE) + { + field_0x2fae |= (u8)(1 << tmp); + } + } + } + + for (int i = 0; i < 2; i++) { + if (!(field_0x2fae & (1 << i)) && !(field_0x2faf & (1 << i))) { + dMeter2Info_offUseButton(4 << i); + } + } + + if (!(field_0x2fae & 0x40) && !(field_0x2faf & 0x40)) { + dMeter2Info_offUseButton(0x40); + } + + if (!(field_0x2fae & 0x8) && !(field_0x2faf & 0x8)) { + dMeter2Info_offUseButton(2); + if (getSumouMode()) { + dMeter2Info_offUseButton(1); + } + } + + field_0x2faf = field_0x2fae; + + for (int i = 0; i < 4; i++) { + cXyz tmp(current.pos.x + 500.0f, current.pos.y + 500.0f, current.pos.z + 500.0f); + if (i != field_0x2fa3 - 1) { + field_0x354c[i] = tmp; + } + } + + if (checkEventRun()) { + if (mProcID != PROC_GRASS_WHISTLE_WAIT) { + setDoStatus(0); + } + setRStatus(0); + } else { + if (dComIfGp_getDoStatus() == 0x86 || dComIfGp_getDoStatus() == 0x8B) { + setDoStatus(3); + } else if (dComIfGp_getDoStatus() == 0x89) { + setDoStatus(8); + } else if (dComIfGp_getDoStatus() == 0x93) { + setDoStatusEmphasys(0x19); + } else if (dComIfGp_getDoStatus() == 0x8E) { + setDoStatusEmphasys(0x15); + } else if (dComIfGp_getDoStatus() == 0x8C) { + setDoStatus(0); + } else if (checkStageName("F_SP127") && checkCanoeRide() && dComIfGp_getDoStatus() == 4) { + setDoStatus(0); + } else if (dComIfGp_getDoStatus() == 0x90) { + setDoStatus(0); + } else if (dComIfGp_getDoStatus() == 0x98) { + setDoStatusEmphasys(0x39); + } else if (dComIfGp_getDoStatus() == 0x99) { + setDoStatusEmphasys(0x15); + } else if (dComIfGp_getDoStatus() == 0x91) { + if (checkWolf() || + (field_0x27f4 != NULL && + (field_0x27f4->speedF > 0.1f || + (checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW)))) + { + setDoStatusEmphasys(0x15); + } else { + setDoStatus(0); + } + } else if (dComIfGp_getDoStatus() == 0x97) { + if (current.pos.y + 200.0f < mWaterY) { + setDoStatus(0x4C); + } else { + setDoStatus(0); + } + } else if (dComIfGp_getDoStatus() == 0x19 && dComIfGp_getHorseActor() != NULL && + dComIfGp_getHorseActor()->getZeldaActor() != NULL) + { + setDoStatus(0x19); + } else if (dComIfGp_getDoStatus() == 5 && field_0x27f4 != NULL && + (fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone || + fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) + { + setDoStatusEmphasys(0x3B); + } else if (dComIfGp_getDoStatus() == 0x14) { + if (checkEndResetFlg1(ERFLG1_UNK_4000000)) { + setDoStatusEmphasys(0x61); + } else if (checkEndResetFlg1(ERFLG1_UNK_10000000)) { + setDoStatusEmphasys(0x14); + } + } + + int grab_status = getWallGrabStatus(); + if (checkWolf()) { + if (grab_status == 0x15) { + setWallGrabStatus(0x3F, 2); + } else if (grab_status == 0x96) { + setWallGrabStatus(0xC, checkChainEmphasys()); + } + } else { + if (grab_status == 0x96) { + setWallGrabStatus(0x15, checkChainEmphasys()); + } + + if (dComIfGp_getRStatus() == 0x3A && checkShieldAttackEmphasys() == 0) { + setRStatus(0); + } + } + } + + mDoAud_setLinkHp(dComIfGs_getLife(), dComIfGs_getMaxLifeGauge()); + } + + if (dComIfGp_att_getCatghTarget() != NULL && !checkWolf()) { + if (!checkRideOn() && checkCastleTownUseItem(fpcNm_ITEM_EMPTY_BOTTLE)) { + dComIfGp_setBottleStatus(0x6C, 0); + } + } + + if (checkEndResetFlg2(ERFLG2_UNK_20) && dComIfGp_checkPlayerStatus0(0, 0x200000) && + (field_0x310e != field_0x310a || field_0x3110 != field_0x310c)) + { + mDoAud_seStartLevel(Z2SE_AL_HAWK_EYE_PAN, NULL, 0, 0); + } + + offNoResetFlg0(FLG0_UNK_40000000); + mEndResetFlg0 = 0; + + if (checkEndResetFlg1(ERFLG1_UNK_4)) { + onNoResetFlg2(FLG2_UNK_20000); + } else { + offNoResetFlg2(FLG2_UNK_20000); + } + + mEndResetFlg1 = 0; + mEndResetFlg2 = 0; + + field_0x3540 = old.pos; + field_0x3108 = shape_angle.y; + + if (checkHorseRide() && checkBoarSingleBattle()) { + if (abs(shape_angle.y) < 0x4000) { + shape_angle.y = 0; + } else { + shape_angle.y = -0x8000; + } + } else if (checkMagneBootsOn()) { + field_0x3118 = shape_angle.y; + shape_angle.y = getMagneBootsLocalAngleY(shape_angle.y, 0); + } else if (checkModeFlg(MODE_VINE_CLIMB)) { + field_0x3108 = shape_angle.y; + shape_angle.y += field_0x308c; + } else if (checkCargoCarry() && mCargoCarryAcKeep.getActor() != NULL) { + field_0x3108 = shape_angle.y; + shape_angle.y = mCargoCarryAcKeep.getActor()->shape_angle.y; + } + + return 1; +} + +/* 800CAFA8-800CAFC8 0C58E8 0020+00 1/0 0/0 0/0 .text daAlink_Execute__FP9daAlink_c */ +static int daAlink_Execute(daAlink_c* i_this) { + return i_this->execute(); +} + +/* 800CAFC8-800CB480 0C5908 04B8+00 2/2 0/0 0/0 .text setDrawHand__9daAlink_cFv */ +void daAlink_c::setDrawHand() { + field_0x06d0->hide(); + field_0x06d4->hide(); + + u8 var_r30; + u8 var_r29; + if (checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW)) { + if (checkSwordGet()) { + var_r30 = 0; + } else { + var_r30 = 0xFE; + } + + if (checkShieldGet()) { + var_r29 = 6; + } else { + var_r29 = 0xFE; + } + } else if (mProcID == PROC_TOOL_DEMO) { + var_r30 = field_0x2f92; + var_r29 = field_0x2f93; + } else { + if (field_0x2f92 == 0x64) { + if (mProcID == PROC_BOSS_BODY_HANG || mProcID == PROC_MASTER_SWORD_PULL || (mProcID == PROC_CUT_DOWN_LAND && mProcVar2.field_0x300c != 0)) { + var_r30 = mProcVar4.field_0x3010; + } else if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE) && mUnderFrameCtrl[0].getFrame() < 6.0f) { + var_r30 = 0; + } else { + var_r30 = 2; + } + } else if (field_0x2f96 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || field_0x2f94 == 0xFF)) { + var_r30 = field_0x2f96; + } else if (field_0x2f94 != 0xFF) { + if (field_0x2f94 == 0x67) { + if (checkBowGrabLeftHand()) { + var_r30 = 0; + } else { + var_r30 = field_0x2f92; + } + } else if (field_0x2f94 == 0x65) { + if (mUpperAnmHeap[0].getIdx() == 0xC7) { + var_r30 = 0; + } else if (mItemVar0.field_0x3018 == 1) { + var_r30 = 4; + } else { + var_r30 = 2; + } + } else if (field_0x2f94 == 0 && mProcID == PROC_SWORD_UNEQUIP_SP) { + var_r30 = field_0x2f92; + } else if (field_0x2f94 == 0 && mEquipItem == 0x103 && (checkHorseRide() || checkUnderMove0BckNoArc(ANM_SWIM_DIE))) { + var_r30 = 2; + } else { + var_r30 = field_0x2f94; + } + } else { + var_r30 = field_0x2f92; + } + + if ((mCutType == CUT_TYPE_FINISH_STAB || mCutType == CUT_TYPE_DOWN) && mProcID != PROC_BOSS_BODY_HANG) { + var_r29 = 5; + } else if (field_0x2f97 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || (field_0x2f95 == 0xFF && field_0x2e44.checkPassNum(0xF)))) { + var_r29 = field_0x2f97; + } else if (field_0x2f95 != 0xFF) { + if (field_0x2f95 == 0x65) { + if (mItemVar0.field_0x3018 == 1) { + var_r29 = 5; + } else { + var_r29 = field_0x2f93; + } + } else { + var_r29 = field_0x2f95; + } + } else if (!field_0x2e44.checkPassNum(0xF)) { + var_r29 = 6; + } else { + var_r29 = field_0x2f93; + } + } + + mpLinkHandModel->setBaseTRMtx(mpLinkModel->getBaseTRMtx()); + mpLinkHandModel->calc(); + + if (var_r30 == 0xFE || var_r30 == 0xFB) { + field_0x06d0 = field_0x06d8; + } else { + field_0x06d0 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r30)->getShape(); + mpLinkHandModel->setAnmMtx(1, mpLinkModel->getAnmMtx(9)); + } + + if (var_r30 == 0xFB) { + mpDemoHLTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(9)); + if (mpDemoHLTmpBck != NULL) { + mpDemoHLTmpBck->entry(mpDemoHLTmpModel->getModelData()); + } + + mpDemoHLTmpModel->calc(); + field_0x06d0->hide(); + } else { + field_0x06d0->show(); + } + + if (var_r29 == 0xFE || var_r29 == 0xFB) { + field_0x06d4 = field_0x06dc; + } else { + field_0x06d4 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r29)->getShape(); + mpLinkHandModel->setAnmMtx(2, mpLinkModel->getAnmMtx(0xE)); + } + + if (var_r29 == 0xFB) { + mpDemoHRTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(0xE)); + if (mpDemoHRTmpBck != NULL) { + mpDemoHRTmpBck->entry(mpDemoHRTmpModel->getModelData()); + } + + mpDemoHRTmpModel->calc(); + field_0x06d4->hide(); + } else { + field_0x06d4->show(); + } +} + +/* 800CB480-800CB53C 0C5DC0 00BC+00 3/3 0/0 0/0 .text checkSwordDraw__9daAlink_cFv */ +bool daAlink_c::checkSwordDraw() { + return ((checkSwordGet() && mSwordChangeWaitTimer == 0) && + !checkNoResetFlg2(FLG2_UNK_2080000)) && + (!checkWolf() || !dComIfGs_isEventBit(0x0C08)); +} + +/* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */ +bool daAlink_c::checkShieldDraw() { + return ((checkShieldGet() && mShieldChangeWaitTimer == 0) && + !checkNoResetFlg2(FLG2_UNK_4080000)) && + (!checkWolf() || !dComIfGs_isEventBit(0x0C08)); +} + +/* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */ +bool daAlink_c::checkItemDraw() { + if (mHeldItemModel != NULL && (mEquipItem != fpcNm_ITEM_IRONBALL || !checkSwordEquipAnime())) { + if (!checkBowAndSlingItem(mEquipItem) || checkBowGrabLeftHand() || !checkShieldGet() || + field_0x2e44.checkPassNum(15)) + { + return true; + } + } + return false; +} + +/* 800CB694-800CBA38 0C5FD4 03A4+00 0/0 0/0 1/1 .text initShadowScaleLight__9daAlink_cFv + */ +// NONMATCHING - float stuff +int daAlink_c::initShadowScaleLight() { + dKy_shadow_mode_set(4); + + if (checkWolf()) { + f32 temp_f26 = 0.5f * field_0x850[0].GetH(); + field_0x850[0].GetC(); + } + + cXyz sp20(tevStr.mLightPosWorld.x - field_0x3834.x, tevStr.mLightPosWorld.y - field_0x3454, tevStr.mLightPosWorld.z - field_0x3834.z); + field_0x2ff6 = sp20.atan2sX_Z(); + + fopAc_ac_c* temp_r29 = fopAcM_getTalkEventPartner(this); + + f32 var_f30; + if (dComIfGp_checkPlayerStatus0(0, 0x100000)) { + var_f30 = 0.0f; + } else { + var_f30 = 150.0f; + } + + BOOL var_r28; + f32 var_f31; + if (temp_r29 != NULL && ((fopAcM_GetName(temp_r29) == PROC_Tag_Mhint && !((daTagMhint_c*)temp_r29)->checkNoAttention()) || (fopAcM_GetName(temp_r29) == PROC_Tag_Mstop && !((daTagMstop_c*)temp_r29)->checkNoAttention()))) { + field_0x2ff8 = cLib_targetAngleY(&temp_r29->eyePos, ¤t.pos); + var_r28 = 1; + } else { + field_0x2ff8 = shape_angle.y + 0x8000; + + if (checkWolf()) { + var_f31 = 200.0f; + } else { + var_f31 = 120.0f; + } + + cXyz sp14(current.pos.x, current.pos.y + var_f30, current.pos.z); + cXyz sp8(sp14.x + ((30.0f + var_f31) * cM_ssin(shape_angle.y)), sp14.y, sp14.z + ((30.0f + var_f31) * cM_scos(shape_angle.y))); + + if (fopAcM_lc_c::lineCheck(&sp14, &sp8, this)) { + var_r28 = 1; + } else { + var_r28 = 0; + } + } + + field_0x2ffa = field_0x2ff8 + 0x8000; + field_0x2ff4 = cM_atan2s(sp20.y, sp20.absXZ()); + offNoResetFlg2(FLG2_UNK_800); + field_0x2ffc = 0; + field_0x375c.y = current.pos.y + var_f30; + + f32 temp_f29 = cM_ssin(field_0x2ff8); + f32 temp_f28 = cM_scos(field_0x2ff8); + + if (var_r28 == 0) { + field_0x375c.x = current.pos.x - (var_f31 * temp_f29); + field_0x375c.z = current.pos.z - (var_f31 * temp_f28); + } else { + field_0x375c.x = (current.pos.x - (temp_f29 * -30.0f)) - (temp_f28 * 65.0f); + field_0x375c.z = (current.pos.z - (temp_f28 * -30.0f)) + (temp_f29 * 65.0f); + } + + if (checkReinRide()) { + var_r28 = 1; + } + + return var_r28; +} + +/* 800CBA38-800CBC18 0C6378 01E0+00 0/0 0/0 1/1 .text moveShadowScaleLight__9daAlink_cFv + */ +int daAlink_c::moveShadowScaleLight() { + int var_r29 = 0; + + if (field_0x2ff8 != field_0x2ffa) { + s16 temp_r0 = field_0x2ff6 - field_0x2ff8; + if (abs(temp_r0) < 0x4000) { + if (temp_r0 >= 0) { + field_0x2ff8 -= 0x4000; + } else { + field_0x2ff8 += 0x4000; + } + + if (cLib_distanceAngleS(field_0x2ff8, field_0x2ffa) < 0x100) { + field_0x2ff8 = field_0x2ffa; + } + } + } else if (cLib_distanceAngleS(field_0x2ff8, field_0x2ff6) < 0x1600) { + onNoResetFlg2(FLG2_UNK_800); + } + + if (cLib_addCalcAngleS(&field_0x2ff6, field_0x2ff8, 4, 0x1800, 0x200) == 0) { + if (cLib_chaseS(&field_0x2ff4, 0x4000, 0x650)) { + dKy_shadow_mode_reset(4); + tevStr.field_0x344 = 1.0f; + } else { + tevStr.field_0x344 = 2.0f; + } + + if (field_0x2ff4 > 0x3000) { + var_r29 = 1; + } + } else { + if (!checkNoResetFlg2(FLG2_UNK_800)) { + cLib_chaseS(&field_0x2ff4, 0x2600, 0x800); + } else { + cLib_chaseS(&field_0x2ffc, 0x800, 0x100); + cLib_chaseS(&field_0x2ff4, 0, field_0x2ffc); + } + + cLib_chaseF(&tevStr.field_0x344, 2.0f, 0.1f); + } + + f32 temp_f31 = 50000.0f * cM_scos(field_0x2ff4); + tevStr.mLightPosWorld.set(field_0x3834.x + (temp_f31 * cM_ssin(field_0x2ff6)), field_0x3454 + (50000.0f * cM_ssin(field_0x2ff4)), field_0x3834.z + (temp_f31 * cM_scos(field_0x2ff6))); + return var_r29; +} + +/* 800CBC18-800CC25C 0C6558 0644+00 1/1 0/0 0/0 .text shadowDraw__9daAlink_cFv */ +void daAlink_c::shadowDraw() { + daMidna_c* temp_r3 = getMidnaActor(); + if (temp_r3 != NULL && ((temp_r3->checkShadowModelDraw() && (field_0x2ff4 >= 0x3FF0 || !checkMidnaRide())) || temp_r3->checkShadowModelDrawDemoForce())) { + return; + } + + if (!checkBoarRide()) { + if (mProcID == PROC_WARP) { + tevStr.field_0x344 = field_0x3484; + } + + u32 var_r29; + if (checkHorseRide()) { + var_r29 = ((daHorse_c*)dComIfGp_getHorseActor())->getShadowID(); + if (var_r29 != 0) { + dComIfGd_addRealShadow(var_r29, mpLinkModel); + } + } else { + f32 var_f31; + if (checkModeFlg(0x40)) { + var_f31 = field_0x33d8; + } else { + var_f31 = mLinkAcch.GetGroundH(); + } + + cXyz spC(field_0x3834.x, field_0x3454, field_0x3834.z); + + f32 var_f30; + if (!checkWolf()) { + if (field_0x850[0].GetC().y > field_0x850[2].GetC().y) { + var_f30 = field_0x850[2].GetC().y; + } else { + var_f30 = field_0x850[0].GetC().y; + } + } else { + var_f30 = field_0x850[0].GetC().y; + } + + s8 sp8; + if (mWaterY > var_f31) { + sp8 = 1; + } else { + sp8 = 0; + } + + field_0x31a4 = dComIfGd_setShadow(field_0x31a4, sp8, mpLinkModel, &spC, 800.0f, 0.0f, var_f30, var_f31, mLinkAcch.m_gnd, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + var_r29 = field_0x31a4; + } + + if (var_r29 != 0) { + if (checkSwordDraw()) { + if (!checkNoResetFlg3(FLG3_UNK_80000000)) { + dComIfGd_addRealShadow(var_r29, mSwordModel); + } + + if (!checkWoodSwordEquip()) { + dComIfGd_addRealShadow(var_r29, mSheathModel); + } + } + + if (checkShieldDraw()) { + dComIfGd_addRealShadow(var_r29, mShieldModel); + } + + if (checkWolf()) { + if (checkMidnaRide() && !checkCloudSea() && !temp_r3->checkShadowNoDraw() && !temp_r3->checkShadowModelDraw()) { + dComIfGd_addRealShadow(var_r29, mpWlMidnaModel); + + if (!temp_r3->checkNoMaskDraw() ) { + dComIfGd_addRealShadow(var_r29, mpWlMidnaMaskModel); + } + + dComIfGd_addRealShadow(var_r29, mpWlMidnaHairModel); + } + } else { + dComIfGd_addRealShadow(var_r29, mpLinkFaceModel); + dComIfGd_addRealShadow(var_r29, mpLinkHatModel); + dComIfGd_addRealShadow(var_r29, mpLinkHandModel); + + if (field_0x2f92 == 0xFB) { + dComIfGd_addRealShadow(var_r29, mpDemoHLTmpModel); + } + + if (field_0x2f93 == 0xFB) { + dComIfGd_addRealShadow(var_r29, mpDemoHRTmpModel); + } + + if (mEquipItem == fpcNm_ITEM_BOOMERANG) { + if (mItemAcKeep.getActor() != NULL) { + dComIfGd_addRealShadow(var_r29, mItemAcKeep.getActor()->model); + } + } else if (checkItemDraw()) { + if (mEquipItem == fpcNm_ITEM_IRONBALL) { + if (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) { + dComIfGd_addRealShadow(var_r29, mHeldItemModel); + } else { + if (fopAcM_gc_c::gndCheck(&mIronBallBgChkPos)) { + field_0x32d4 = dComIfGd_setShadow(field_0x32d4, 0, mHeldItemModel, &mIronBallCenterPos, 150.0f, 32.0f, mIronBallBgChkPos.y, fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + } + } + } else { + changeHookshotDrawModel(); + dComIfGd_addRealShadow(var_r29, mHeldItemModel); + + if (checkHookshotItem(mEquipItem)) { + if (checkHookshotWait() && !dComIfGp_checkPlayerStatus1(0, 0x10000)) { + dComIfGd_addRealShadow(var_r29, mpHookTipModel); + } + + if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && !checkNoResetFlg0(FLG0_UNK_2)) { + dComIfGd_addRealShadow(var_r29, field_0x0710); + + if (!dComIfGp_checkPlayerStatus1(0, 0x10000)) { + dComIfGd_addRealShadow(var_r29, field_0x0714); + } + } + } + + changeHookshotDrawModel(); + } + } + + if (checkNoResetFlg2(FLG2_UNK_1)) { + dComIfGd_addRealShadow(var_r29, mpKanteraModel); + } + + if (checkEquipHeavyBoots()) { + for (int i = 0; i < 2; i++) { + dComIfGd_addRealShadow(var_r29, mpLinkBootModels[i]); + } + } + + if (checkSpinnerRide()) { + fopAc_ac_c* temp_r3_6 = fopAcM_SearchByID(mRideAcKeep.getID()); + if (temp_r3_6 != NULL) { + dComIfGd_addRealShadow(var_r29, temp_r3_6->model); + } + } + } + + if (mGrabItemAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { + fopAc_ac_c* temp_r3_7 = fopAcM_SearchByID(mGrabItemAcKeep.getID()); + if (temp_r3_7 != NULL && temp_r3_7->model != NULL) { + dComIfGd_addRealShadow(var_r29, temp_r3_7->model); + } + } + + if (dComIfGp_checkPlayerStatus1(0, 0x10000) && mCargoCarryAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { + fopAc_ac_c* temp_r3_8 = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); + if (temp_r3_8 != NULL && temp_r3_8->model != NULL) { + dComIfGd_addRealShadow(var_r29, temp_r3_8->model); + } + } + } + } +} + +/* 800CC25C-800CC298 0C6B9C 003C+00 3/3 0/0 0/0 .text modelCalc__9daAlink_cFP8J3DModel */ +void daAlink_c::modelCalc(J3DModel* p_model) { + if (mClothesChangeWaitTimer == 0) { + p_model->calc(); + } +} + +/* 800CC298-800CC2E0 0C6BD8 0048+00 2/2 0/0 0/0 .text basicModelDraw__9daAlink_cFP8J3DModel */ +void daAlink_c::basicModelDraw(J3DModel* i_model) { + g_env_light.setLightTevColorType_MAJI(i_model, &tevStr); + mDoExt_modelEntryDL(i_model); +} + +/* 800CC2E0-800CC364 0C6C20 0084+00 1/1 0/0 0/0 .text modelDraw__9daAlink_cFP8J3DModeli + */ +void daAlink_c::modelDraw(J3DModel* i_model, int param_1) { + g_env_light.setLightTevColorType_MAJI(i_model, &tevStr); + + if (param_1 == 0) { + mDoExt_modelEntryDL(i_model); + } else { + i_model->calcMaterial(); + i_model->diff(); + } + + daMirror_c::entry(i_model); +} + +/* 800CC364-800CC7DC 0C6CA4 0478+00 2/2 0/0 0/0 .text + * setWaterDropColor__9daAlink_cFPC13J3DGXColorS10 */ +void daAlink_c::setWaterDropColor(const J3DGXColorS10* i_color) { + static const GXColorS10 notColor0 = {0x00, 0x00, 0x00, 0xFF}; + J3DGXColorS10* var_r31; + + if (&field_0x32a0[0] == i_color) { + if (checkNoResetFlg2(FLG2_UNK_80000) || checkZoraWearAbility() || + checkMagicArmorWearAbility()) + { + var_r31 = (J3DGXColorS10*)¬Color0; + i_color = (J3DGXColorS10*)¬Color0; + } else { + var_r31 = (J3DGXColorS10*)&i_color[1]; + } + } else { + var_r31 = (J3DGXColorS10*)i_color; + } + + if (!checkNoResetFlg2(FLG2_UNK_80000)) { + if (checkZoraWearAbility()) { + field_0x064C->getMaterialNodePointer(13)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(0)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(1)->setTevColor(1, i_color); + mpLinkHatModel->getModelData()->getMaterialNodePointer(1)->setTevColor(1, i_color); + } else if (checkMagicArmorWearAbility()) { + field_0x064C->getMaterialNodePointer(11)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(10)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(9)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(8)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(6)->setTevColor(1, i_color); + mpLinkHatModel->getModelData()->getMaterialNodePointer(2)->setTevColor(1, i_color); + mpLinkHatModel->getModelData()->getMaterialNodePointer(1)->setTevColor(1, i_color); + } else if (checkCasualWearFlg()) { + field_0x064C->getMaterialNodePointer(7)->setTevColor(1, i_color); + mpLinkHatModel->getModelData()->getMaterialNodePointer(0)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(5)->setTevColor(1, var_r31); + } else { + field_0x064C->getMaterialNodePointer(17)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(9)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(0)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(1)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(2)->setTevColor(1, i_color); + mpLinkHatModel->getModelData()->getMaterialNodePointer(0)->setTevColor(1, i_color); + field_0x064C->getMaterialNodePointer(16)->setTevColor(1, var_r31); + field_0x064C->getMaterialNodePointer(15)->setTevColor(1, var_r31); + field_0x064C->getMaterialNodePointer(14)->setTevColor(1, var_r31); + } + } +} + +/* 800CC7DC-800CC7FC 0C711C 0020+00 2/2 0/0 0/0 .text initTevCustomColor__9daAlink_cFv */ +void daAlink_c::initTevCustomColor() { + tevStr.mLightInf.a = 0; + tevStr.TevColor.r = 0; + tevStr.TevColor.g = 0; + tevStr.TevColor.b = 0; + tevStr.TevKColor.r = 0; + tevStr.TevKColor.b = 0; +} + +/* 800CC7FC-800CD78C 0C713C 0F90+00 1/1 0/0 0/0 .text draw__9daAlink_cFv */ +int daAlink_c::draw() { + if (checkWolf()) { + g_env_light.settingTevStruct(9, ¤t.pos, &tevStr); + } else { + g_env_light.settingTevStruct(10, ¤t.pos, &tevStr); + } + + initTevCustomColor(); + + if (mSight.getDrawFlg() && !checkEventRun()) { + mSight.setSight(); + } + + if (checkNoResetFlg1(FLG1_UNK_80)) { + JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x31c4); + if (emitter_p != NULL) { + if (checkPlayerNoDraw() && !checkEndResetFlg1(ERFLG1_UNK_4)) { + emitter_p->stopDrawParticle(); + } else { + emitter_p->playDrawParticle(); + } + } + } + + if (mClothesChangeWaitTimer != 0) { + if (mProcID == PROC_METAMORPHOSE) { + if (mProcVar3.field_0x300e > 0) { + tevStr.TevColor.r = 255; + } else { + tevStr.TevColor.r = -255; + } + + tevStr.TevColor.g = tevStr.TevColor.r; + tevStr.TevColor.b = tevStr.TevColor.r; + + g_env_light.setLightTevColorType_MAJI(mpWlChangeModel, &tevStr); + mDoExt_modelEntryDL(mpWlChangeModel); + } + return 1; + } + + BOOL temp_r30 = checkPlayerNoDraw(); + BOOL var_r29 = 0; + BOOL var_r31 = 1; + + if (field_0x06f4 != NULL) { + field_0x06f4->getTevColorReg(0, &tevStr.TevColor); + } else if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_DUNGEON_WARP || + mProcID == PROC_DUNGEON_WARP_SCN_START) + { + tevStr.TevColor.r = mProcVar3.field_0x300e; + tevStr.TevColor.g = mProcVar3.field_0x300e; + tevStr.TevColor.b = mProcVar3.field_0x300e; + } else if (field_0x346c != 0.0f) { + f32 var_f2 = fabsf(field_0x346c); + tevStr.TevColor.r = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropR; + tevStr.TevColor.g = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropG; + tevStr.TevColor.b = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropB; + } else if (checkFreezeDamage()) { + tevStr.TevColor.r = daAlinkHIO_damage_c0::m.mFreezeR; + tevStr.TevColor.g = daAlinkHIO_damage_c0::m.mFreezeG; + tevStr.TevColor.b = daAlinkHIO_damage_c0::m.mFreezeB; + } else if (mDamageTimer != 0) { + if (!checkMagicArmorNoDamage()) { + int color_timer = mDamageTimer + mDamageColorTime; + + int r, g, b; + if (color_timer > 32) { + r = daAlinkHIO_damage_c0::m.mDamageR0; + g = daAlinkHIO_damage_c0::m.mDamageG0; + b = daAlinkHIO_damage_c0::m.mDamageB0; + } else if (color_timer > 16) { + r = daAlinkHIO_damage_c0::m.mDamageR1; + g = daAlinkHIO_damage_c0::m.mDamageG1; + b = daAlinkHIO_damage_c0::m.mDamageB1; + } else { + r = daAlinkHIO_damage_c0::m.mDamageR2; + g = daAlinkHIO_damage_c0::m.mDamageG2; + b = daAlinkHIO_damage_c0::m.mDamageB2; + } + + f32 var_f2 = fabsf(cM_ssin(color_timer * 0x800)); + tevStr.TevKColor.r = r * var_f2; + tevStr.TevKColor.g = g * var_f2; + tevStr.TevKColor.b = b * var_f2; + var_r31 = 0; + } + } else if (mIceDamageWaitTimer != 0) { + f32 temp_f4 = 1.0f - (mIceDamageWaitTimer * (1.0f / daAlinkHIO_damage_c0::m.mFreezeTime)); + f32 temp_f3 = 1.0f - temp_f4; + + tevStr.TevColor.r = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitR) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeR); + tevStr.TevColor.g = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitG) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeG); + tevStr.TevColor.b = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitB) + + (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeB); + } else if (field_0x32b0[0].r != 0) { + tevStr.TevColor.r = field_0x32b0[0].r; + tevStr.TevColor.g = field_0x32b0[0].g; + tevStr.TevColor.b = field_0x32b0[0].b; + var_r29 = 1; + } else { + var_r31 = 0; + } + + if (!checkWolf()) { + if (var_r31) { + if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { + mpLinkModel->getModelData()->removeTevRegAnimator(mMagicArmorBodyBrk); + mpLinkHatModel->getModelData()->removeTevRegAnimator(mMagicArmorHeadBrk); + } + + if (var_r29) { + setWaterDropColor(&field_0x32b0[1]); + } else { + mSwordUpColorIntensity = 0.0f; + setWaterDropColor((J3DGXColorS10*)&tevStr.TevColor); + } + } else { + if (checkMagicArmorWearAbility()) { + mpLinkModel->getModelData()->entryTevRegAnimator(mMagicArmorBodyBrk); + mpLinkHatModel->getModelData()->entryTevRegAnimator(mMagicArmorHeadBrk); + } + + setWaterDropColor(&field_0x32a0[0]); + } + } else if (var_r31 && !var_r29) { + mSwordUpColorIntensity = 0.0f; + } + + if (checkWolf()) { + dComIfGd_setListDark(); + modelDraw(mpLinkModel, temp_r30); + + if (dComIfGs_isEventBit(0x510)) { + for (int i = 0; i < 4; i++) { + modelDraw(mpWlChainModels[i], temp_r30); + } + } + + tevStr.TevKColor.r = 0; + tevStr.TevKColor.g = 0; + tevStr.TevKColor.b = 0; + + if (checkSwordDraw()) { + modelDraw(mSwordModel, temp_r30); + modelDraw(mSheathModel, temp_r30); + } + + if (checkShieldDraw()) { + modelDraw(mShieldModel, temp_r30); + } + + if (mHeldItemModel != NULL) { + if (mEquipItem == 0x109) { + dComIfGd_setListMiddle(); + } else if (mEquipItem == 0x10A) { + mHeldItemModel->getModelData()->entryTexMtxAnimator(field_0x0718); + } + + modelDraw(mHeldItemModel, temp_r30); + } + + dComIfGd_setList(); + } else { + setDrawHand(); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { + if (field_0x06e8 != NULL) { + field_0x06e8->hide(); + } + + field_0x06f0->hide(); + + if (checkHookshotReadyMaterialOffMode()) { + for (u16 i = 0; i < mFallVoiceInit; i++) { + if (!(field_0x32cc & (1 << i))) { + field_0x064C->getMaterialNodePointer(i)->getShape()->hide(); + } + } + } + } + + modelDraw(mpLinkModel, temp_r30); + + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { + if (checkHookshotReadyMaterialOffMode()) { + for (u16 i = 0; i < mFallVoiceInit; i++) { + if (!(field_0x32cc & (1 << i))) { + field_0x064C->getMaterialNodePointer(i)->getShape()->show(); + } + } + + if (!checkZoraWearMaskDraw() && checkZoraWearAbility()) { + field_0x06f0->hide(); + } + } + + if (field_0x06e8 != NULL) { + field_0x06e8->show(); + } + + if (checkZoraWearMaskDraw() || !checkZoraWearAbility()) { + field_0x06f0->show(); + } + } + + modelDraw(mpLinkHandModel, temp_r30); + if (field_0x2f92 == 0xFB) { + modelDraw(mpDemoHLTmpModel, temp_r30); + } + + if (field_0x2f93 == 0xFB) { + modelDraw(mpDemoHRTmpModel, temp_r30); + } + + BOOL var_r3 = temp_r30 || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20); + + modelDraw(mpLinkHatModel, var_r3); + + if (checkNoResetFlg1(FLG1_UNK_10)) { + modelDraw(mpDemoFCBlendModel, var_r3); + modelDraw(mpDemoFCTongueModel, var_r3); + } else { + modelDraw(mpLinkFaceModel, var_r3); + } + + tevStr.TevKColor.r = 0; + tevStr.TevKColor.g = 0; + tevStr.TevKColor.b = 0; + + if (checkSwordDraw()) { + if (!checkNoResetFlg3(FLG3_UNK_80000000)) { + modelDraw(mSwordModel, var_r3); + } + + if (!checkWoodSwordEquip()) { + modelDraw(mSheathModel, var_r3); + } + } + + if (checkShieldDraw()) { + BOOL var_r24_2; + if (checkWoodShieldEquip() && field_0x2fcb != 0 && mProcID != PROC_METAMORPHOSE) { + tevStr.TevColor.r = -((120 - field_0x2fcb) * 32) / 120; + tevStr.TevColor.g = tevStr.TevColor.r; + tevStr.TevColor.b = tevStr.TevColor.r; + var_r24_2 = 1; + } else { + var_r24_2 = 0; + } + + modelDraw(mShieldModel, var_r3); + if (var_r24_2) { + tevStr.TevColor.r = 0; + tevStr.TevColor.g = 0; + tevStr.TevColor.b = 0; + } + } + + if (var_r29) { + tevStr.TevColor.r = 0; + tevStr.TevColor.g = 0; + tevStr.TevColor.b = 0; + } + + if (checkItemDraw()) { + changeHookshotDrawModel(); + modelDraw(mHeldItemModel, temp_r30); + + if (mpHookTipModel != NULL) { + modelDraw(mpHookTipModel, temp_r30); + } + + if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && + !checkNoResetFlg0(FLG0_UNK_2)) + { + if (field_0x0710 != NULL) { + modelDraw(field_0x0710, temp_r30); + } + + if (field_0x0714 != NULL) { + modelDraw(field_0x0714, temp_r30); + } + } + + changeHookshotDrawModel(); + + if (mpHookChain != NULL && !temp_r30 && + ((checkHookshotItem(mEquipItem) && (mHeldItemRootPos.abs(mHookshotTopPos) > 1.0f || + field_0x3810.abs(mIronBallBgChkPos) > 1.0f)) || + mEquipItem == fpcNm_ITEM_IRONBALL)) + { + dComIfGd_getOpaListDark()->entryImm(mpHookChain, 0); + } + } + + if (checkNoResetFlg2(FLG2_UNK_1)) { + modelDraw(mpKanteraModel, temp_r30); + preKandelaarDraw(); + modelDraw(mpKanteraGlowModel, temp_r30); + } else if (checkNoResetFlg2(FLG2_UNK_20000)) { + basicModelDraw(mpKanteraModel); + preKandelaarDraw(); + basicModelDraw(mpKanteraGlowModel); + } + + if (checkEquipHeavyBoots()) { + GXColorS10 color = tevStr.TevColor; + for (int i = 0; i < 2; i++) { + JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x3228[i][0]); + + if (emitter_p != NULL) { + tevStr.TevColor.r = 5; + tevStr.TevColor.g = tevStr.TevColor.r; + tevStr.TevColor.b = tevStr.TevColor.r; + } else { + tevStr.TevColor = color; + } + + modelDraw(mpLinkBootModels[i], temp_r30); + } + + tevStr.TevColor = color; + } + } + + if (!checkCanoeRide() && !dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x10000) && + !checkNoResetFlg2(FLG2_PLAYER_SHADOW)) + { + shadowDraw(); + } + + if (m_swordBlur.field_0x14 > 0) { + dComIfGd_entryZSortXluList(&m_swordBlur, m_swordBlur.field_0x308[0]); + } + + return 1; +} + +/* 800CD78C-800CD7AC 0C80CC 0020+00 1/0 0/0 0/0 .text daAlink_Draw__FP9daAlink_c */ +static int daAlink_Draw(daAlink_c* i_this) { + return i_this->draw(); +} + +/* 800CD7AC-800CE208 0C80EC 0A5C+00 1/1 0/0 0/0 .text __dt__9daAlink_cFv */ +daAlink_c::~daAlink_c() { + dComIfGp_clearPlayerStatus0(0, ~0x400030); + dComIfGp_clearPlayerStatus1(0, 0x7FB7B78); + + mZ2Link.deleteKantera(); + mZ2Link.deleteObject(); + if (mpHookSound != NULL) { + mpHookSound->deleteObject(); + mpHookSound = NULL; + } + + if (checkNoResetFlg2(FLG2_UNK_80)) { + offNoResetFlg2(FLG2_UNK_80); + dComIfGp_2dShowOn(); + } + + if (mProcID == PROC_WARP || (mProcID == PROC_TOOL_DEMO && mProcVar2.field_0x300c != 0)) { + changeWarpMaterial(WARP_MAT_MODE_1); + } + + dComIfG_resDelete(&mPhaseReq, mArcName); + if (mpArcHeap != NULL) { + mDoExt_destroyExpHeap(mpArcHeap); + } + + dComIfG_resDelete(&mShieldPhaseReq, mShieldArcName); + if (mpShieldArcHeap != NULL) { + mDoExt_destroyExpHeap(mpShieldArcHeap); + } + + dKy_plight_cut(&field_0x2f5c); + + dComIfGp_setPlayer(0, NULL); + dComIfGp_setLinkPlayer(NULL); +} + +/* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */ +static int daAlink_Delete(daAlink_c* i_this) { + if (i_this->getClothesChangeWaitTimer() != 0) { + i_this->loadModelDVD(); + return 0; + } else if (i_this->getShieldChangeWaitTimer() != 0) { + i_this->loadShieldModelDVD(); + return 0; + } else { + i_this->~daAlink_c(); + return 1; + } +} + +/* 803B2DAC-803B2DCC -00001 0020+00 1/0 0/0 0/0 .data l_daAlink_Method */ +static actor_method_class l_daAlink_Method = { + (process_method_func)daAlink_Create, (process_method_func)daAlink_Delete, + (process_method_func)daAlink_Execute, (process_method_func)NULL, + (process_method_func)daAlink_Draw, +}; + +/* 803B2DCC-803B2E20 -00001 0030+24 0/0 0/0 1/0 .data g_profile_ALINK */ +extern actor_process_profile_definition g_profile_ALINK = { + fpcLy_CURRENT_e, + 5, + fpcPi_CURRENT_e, + PROC_ALINK, + &g_fpcLf_Method.base, + sizeof(daAlink_c), + 0, + 0, + &g_fopAc_Method.base, + 91, + &l_daAlink_Method, + 0x60400, + fopAc_PLAYER_e, + fopAc_CULLBOX_0_e, +}; diff --git a/src/d/actor/d_a_alink_bottle.inc b/src/d/actor/d_a_alink_bottle.inc index 74e5aa90d12..5f5abbddb3c 100644 --- a/src/d/actor/d_a_alink_bottle.inc +++ b/src/d/actor/d_a_alink_bottle.inc @@ -8,6 +8,8 @@ #include "d/d_insect.h" #include "SSystem/SComponent/c_math.h" +static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1); + /* 8010E48C-8010E52C 108DCC 00A0+00 1/1 0/0 0/0 .text bottleModelCallBack__9daAlink_cFv */ int daAlink_c::bottleModelCallBack() { @@ -463,6 +465,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) { /* 8010F8E4-8010FC38 10A224 0354+00 1/0 0/0 0/0 .text procBottleOpen__9daAlink_cFv */ int daAlink_c::procBottleOpen() { + static Vec const bottleTop = {0.0f, 25.0f, 0.0f}; daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; if (mProcVar2.field_0x300c == 0) { diff --git a/src/d/actor/d_a_alink_bow.inc b/src/d/actor/d_a_alink_bow.inc index dfbe8befad7..6073002231a 100644 --- a/src/d/actor/d_a_alink_bow.inc +++ b/src/d/actor/d_a_alink_bow.inc @@ -93,6 +93,8 @@ cXyz* daAlink_c::checkBowCameraArrowPosP(s16* param_0, s16* param_1) { mDoMtx_stack_c::transS(field_0x3834); concatMagneBootMtx(); mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, var_28, 0); + + static Vec const localPos = {3.45f, 45.32f, -7.0f}; mDoMtx_stack_c::multVec(&localPos, &mHeldItemRootPos); *param_0 = mBodyAngle.x; @@ -271,6 +273,7 @@ BOOL daAlink_c::checkUpperItemActionBow() { daPy_frameCtrl_c* frameCtrl_p = &mUpperFrameCtrl[2]; if (mEquipItem == fpcNm_ITEM_PACHINKO) { + static Vec const slingLocalPos = {10.0f, 10.0f, 0.0f}; mDoMtx_multVec(getLeftItemMatrix(), &slingLocalPos, &mHeldItemRootPos); } diff --git a/src/d/actor/d_a_alink_canoe.inc b/src/d/actor/d_a_alink_canoe.inc index d52466c2f89..856a70a4d24 100644 --- a/src/d/actor/d_a_alink_canoe.inc +++ b/src/d/actor/d_a_alink_canoe.inc @@ -56,6 +56,7 @@ s16 daAlink_c::getCanoeMaxRotSpeed() const { /* 800F3CCC-800F3CD8 0EE60C 000C+00 1/1 0/0 1/1 .text getCanoeLocalPaddleTop__9daAlink_cFv */ cXyz* daAlink_c::getCanoeLocalPaddleTop() { + static Vec const localPaddleTop = {0.0f, 0.0f, -158.0f}; return (cXyz*)&localPaddleTop; } @@ -289,7 +290,7 @@ void daAlink_c::setSyncCanoePos() { var_f31 = 1.0f; } else { var_r29 = -0x5000; - var_f31 = 1.0f; + var_f31 = -1.0f; } } else { if (!checkNoUpperAnime()) { @@ -1283,13 +1284,13 @@ int daAlink_c::procCanoeFishingGetInit() { daAlink_ANM var_r30; if (mBodyAngle.y >= 0) { var_r30 = ANM_CANOE_FISH_LEFT; - field_0x3478 = 14.0f; - field_0x347c = 30.0f; + field_0x3478 = 24.0f; + field_0x347c = 45.0f; mProcVar3.field_0x300e = 0; } else { var_r30 = ANM_CANOE_FISH_RIGHT; - field_0x3478 = 24.0f; - field_0x347c = 45.0f; + field_0x3478 = 14.0f; + field_0x347c = 30.0f; mProcVar3.field_0x300e = 1; } diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc index 2bcd85cd587..5b77fb69211 100644 --- a/src/d/actor/d_a_alink_crawl.inc +++ b/src/d/actor/d_a_alink_crawl.inc @@ -28,23 +28,25 @@ f32 daAlink_c::getCrawlMoveSpeed() { /* 800F7CE8-800F7E48 0F2628 0160+00 4/4 0/0 0/0 .text setCrawlMoveDirectionArrow__9daAlink_cFv */ void daAlink_c::setCrawlMoveDirectionArrow() { + static const u8 data_80452F38[2] = {1, 4}; + u8 direction = 0; camera_class* camera = dComIfGp_getCamera(field_0x317c); BOOL bvar = cLib_distanceAngleS(fopCamM_GetAngleY(camera), shape_angle.y) > 0x4000; if (field_0x3198 & 4) { if (!bvar) { - direction = data_80452F38; + direction = data_80452F38[0]; } else { - direction = data_80452F39; + direction = data_80452F38[1]; } } if (field_0x3198 & 8) { if (!bvar) { - direction |= data_80452F39; + direction |= data_80452F38[1]; } else { - direction |= data_80452F38; + direction |= data_80452F38[0]; } } diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc index 1975b5ae00d..6f54bff5a21 100644 --- a/src/d/actor/d_a_alink_cut.inc +++ b/src/d/actor/d_a_alink_cut.inc @@ -581,6 +581,17 @@ bool daAlink_c::checkCutTurnInputTrigger() { /* 800D23C0-800D2684 0CCD00 02C4+00 7/7 0/0 0/0 .text checkCutAction__9daAlink_cFv */ int daAlink_c::checkCutAction() { + static int const atnNormalType1[5] = {4, 1, 1, 2, 0}; + static int const atnNormalType2[5] = {3, 0, 0, 1, 1}; + static int const atnNormalType3[5] = {4, 1, 1, 0, 0}; + static int const atnFinishType[5] = {2, 1, 0, 5, 1}; + static int const hitType[5] = {4, 0, 5, 0, 1}; + static int const hitFinishType[5] = {2, 1, 0, 5, 0}; + static int const normalType1[5] = {0, 2, 1, 2, 1}; + static int const normalType2[5] = {1, 1, 2, 1, 2}; + static int const normalType3[5] = {4, 0, 1, 2, 1}; + static int const finishType[5] = {2, 0, 0, 5, 1}; + if (commonCutAction()) { return 1; } @@ -626,7 +637,7 @@ int daAlink_c::checkCutAction() { procCutNormalInit(atnNormalType2[cutDir]); } } else if (mComboCutCount == 1) { - procCutNormalInit(normalType1_6982[cutDir]); + procCutNormalInit(normalType1[cutDir]); } else { procCutNormalInit(normalType2[cutDir]); } @@ -819,7 +830,54 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) { /* 800D2F58-800D31B8 0CD898 0260+00 3/3 0/0 0/0 .text procCutNormalInit__9daAlink_cFi */ int daAlink_c::procCutNormalInit(int i_type) { - const daAlink_cutParamTbl* cutParams = &cutParamTable_7312[i_type]; + static daAlink_cutParamTbl const cutParamTable[5] = { + { + daAlink_c::ANM_CUT_NM_VERTICAL, + 0x6F, + daAlink_c::CUT_TYPE_NM_VERTICAL, + 1, + 0, + 0, + 6.0f, + }, + { + daAlink_c::ANM_CUT_NM_LEFT, + 0x6F, + daAlink_c::CUT_TYPE_NM_LEFT, + 1, + 0, + 0, + 5.0f, + }, + { + daAlink_c::ANM_CUT_NM_RIGHT, + 0x6F, + daAlink_c::CUT_TYPE_NM_RIGHT, + 1, + 0, + 0, + 5.0f, + }, + { + daAlink_c::ANM_CUT_COMBO_STAB, + 0x6F, + daAlink_c::CUT_TYPE_COMBO_STAB, + 14, + 0, + 0, + 6.0f, + }, + { + daAlink_c::ANM_CUT_NM_STAB, + 0x70, + daAlink_c::CUT_TYPE_NM_STAB, + 14, + 0, + 0, + 6.0f, + }, + }; + const daAlink_cutParamTbl* cutParams = &cutParamTable[i_type]; commonProcInit(PROC_CUT_NORMAL); setCutType(cutParams->m_cutType); @@ -981,8 +1039,65 @@ int daAlink_c::procCutNormal() { /* 800D34D8-800D382C 0CDE18 0354+00 4/4 0/0 0/0 .text procCutFinishInit__9daAlink_cFi */ int daAlink_c::procCutFinishInit(int i_type) { + static daAlink_cutParamTbl const cutParamTable[6] = { + { + daAlink_c::ANM_CUT_FINISH_LEFT, + 0x6F, + daAlink_c::CUT_TYPE_FINISH_LEFT, + 1, + 100, + 100, + 5.0f, + }, + { + daAlink_c::ANM_CUT_FINISH_VERTICAL, + 0x6F, + daAlink_c::CUT_TYPE_FINISH_VERTICAL, + 1, + 100, + 100, + 8.0f, + }, + { + daAlink_c::ANM_CUT_FINISH_STAB, + 0x6F, + daAlink_c::CUT_TYPE_FINISH_STAB, + 14, + 100, + 100, + 10.0f, + }, + { + daAlink_c::ANM_CUT_MORTAL_DRAW_A, + 0x6F, + daAlink_c::CUT_TYPE_MORTAL_DRAW_A, + 1, + 5, + 12, + 10.0f, + }, + { + daAlink_c::ANM_CUT_MORTAL_DRAW_B, + 0x6F, + daAlink_c::CUT_TYPE_MORTAL_DRAW_B, + 1, + 7, + 14, + 10.0f, + }, + { + daAlink_c::ANM_CUT_FINISH_RIGHT, + 0x6F, + daAlink_c::CUT_TYPE_FINISH_RIGHT, + 1, + 100, + 100, + 10.0f, + }, + }; + const daAlinkHIO_cutFinish_c1* cutData; - const daAlink_cutParamTbl* cutParams = &cutParamTable_7455[i_type]; + const daAlink_cutParamTbl* cutParams = &cutParamTable[i_type]; BOOL front_roll = mProcID == PROC_FRONT_ROLL; commonProcInit(PROC_CUT_FINISH); diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index d027fa80581..2657c1d21d3 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -516,7 +516,7 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) { *o_mode = daPy_demo_c::DEMO_UNK_1_e; } else if ((*o_mode == daPy_demo_c::DEMO_UNK_2_e && dist_to_pos < temp_f29) || dist_to_pos < temp_f28) { *o_mode = daPy_demo_c::DEMO_UNK_2_e; - mDemo.setStick(0.35f); + mDemo.setStick(0.35000002f); } else if (mDemo.getDemoType() == 3) { mDemo.setStick(1.0f); } @@ -1978,6 +1978,30 @@ int daAlink_c::procCoUnequip() { /* 8011A688-8011A6FC 114FC8 0074+00 4/4 0/0 0/0 .text setGetSubBgm__9daAlink_cFi */ void daAlink_c::setGetSubBgm(int i_seTypeIdx) { + static u8 const getSeType[255] = { + 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x08, + 0x02, 0x02, 0x00, 0x01, 0x01, 0x02, 0x01, 0x08, 0x01, 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, + 0x01, 0x01, 0x08, 0x02, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x01, + 0x01, 0x01, 0x08, 0x08, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x08, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x08, 0x08, 0x08, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x01, 0x02, 0x02, + 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0x08, + 0x08, 0x08, 0x08, 0x02, 0x03, 0x03, 0x01, 0x08, 0x03, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, + }; + + static u32 const bgmLabel[8] = { + Z2BGM_HEART_GET, Z2BGM_ITEM_GET, Z2BGM_ITEM_GET_MINI, Z2BGM_ITEM_GET_ME, + Z2BGM_ITEM_GET_INSECT, Z2BGM_ITEM_GET_SMELL, Z2BGM_ITEM_GET_POU, Z2BGM_ITEM_GET_ME_S, + }; + u32 se_type = getSeType[i_seTypeIdx]; if (se_type == 3 && mProcVar4.field_0x3010 == 0) { @@ -2001,6 +2025,7 @@ BOOL daAlink_c::checkTreasureRupeeReturn(int i_itemNo) const { return false; } + static int const rupeeCount[4] = {20, 50, 100, 200}; return dComIfGs_getRupeeMax() < rupeeCount[i_itemNo] + dComIfGs_getRupee(); } @@ -2073,7 +2098,7 @@ int daAlink_c::procCoGetItemInit() { field_0x3588 = l_wolfBaseAnime; field_0x347c = 10.0f; field_0x3480 = 19.0f; - field_0x3484 = 0.1111111f; + field_0x3484 = 0.11111111f; } else if (checkModeFlg(0x400)) { setSingleAnimeBase(ANM_HORSE_GET_ITEM); @@ -2103,7 +2128,7 @@ int daAlink_c::procCoGetItemInit() { field_0x347c = 9.0f; field_0x3480 = 16.0f; - field_0x3484 = 0.1428571f; + field_0x3484 = 0.14285715f; field_0x2f99 = 0xC; field_0x3588 = l_waitBaseAnime; } @@ -2177,8 +2202,8 @@ int daAlink_c::procCoGetItem() { (field_0x3484 * (mProcVar3.field_0x300e * (frameCtrl_p->getFrame() - field_0x347c))); if (mProcVar4.field_0x3010 != 0 && checkWolf()) { - current.pos.x -= cM_ssin(current.angle.y) * 3.888889f; - current.pos.z -= cM_scos(current.angle.y) * 3.888889f; + current.pos.x -= cM_ssin(current.angle.y) * 3.8888888f; + current.pos.z -= cM_scos(current.angle.y) * 3.8888888f; } } else { shape_angle.y = current.angle.y - mProcVar3.field_0x300e; @@ -2282,6 +2307,7 @@ int daAlink_c::procCoGetItem() { field_0x32cc = mProcVar2.field_0x300c + 0x65; } } else if (mProcVar2.field_0x300c == 0x21) { + static u32 const heartPieceMessage[5] = {0x86, 0x9C, 0x9D, 0x9E, 0x9F}; field_0x32cc = heartPieceMessage[dComIfGs_getMaxLife() % 5]; } else if (mProcVar2.field_0x300c == 0x33 && checkStageName("D_MN07")) { field_0x32cc = 0x151; @@ -3490,7 +3516,7 @@ int daAlink_c::procZoraMove() { mDoMtx_stack_c::transM(0.0f, 30.0f, -90.0f); mDoMtx_stack_c::multVecZero(¤t.pos); mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp14); - mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp8); + mDoMtx_stack_c::multVecSR(&cXyz::BaseY, &sp8); shape_angle.y = temp_r29->shape_angle.y; if (sp8.y < 0.0f) { @@ -4213,6 +4239,12 @@ void daAlink_c::skipPortalObjWarp() { /* 8011F9EC-8011FBC0 11A32C 01D4+00 1/1 0/0 0/0 .text checkWarpStart__9daAlink_cFv */ void daAlink_c::checkWarpStart() { + static char defaultPortal[13] = "POTAL_WARPIN"; + static char kBridgePortal[20] = "PORTAL_WARP_KBRIDGE"; + static char oBridgePortal[20] = "PORTAL_WARP_OBRIDGE"; + static char volcBomPortal[20] = "PORTAL_WARP_BIGVOLC"; + static char cannonPortal[22] = "SKY_CANNON_WARP_START"; + if (dMeter2Info_getWarpStatus() != 0) { if (dMeter2Info_getWarpStatus() == WARP_STATUS_DECIDED_e || dComIfGp_event_compulsory(this, 0, 0xFFFF)) @@ -4438,7 +4470,8 @@ int daAlink_c::procCoWarp() { if (checkWolf() && mProcVar2.field_0x300c != 0) { for (int i = 0; i < 6; i++) { - setEmitter(&field_0x3240[i], effName_39419[i], ¤t.pos, &shape_angle); + static u16 const effName[] = {0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, 0x09FA}; + setEmitter(&field_0x3240[i], effName[i], ¤t.pos, &shape_angle); } } } diff --git a/src/d/actor/d_a_alink_effect.inc b/src/d/actor/d_a_alink_effect.inc index ded32da43b9..413585cfcf3 100644 --- a/src/d/actor/d_a_alink_effect.inc +++ b/src/d/actor/d_a_alink_effect.inc @@ -9,6 +9,15 @@ #include "d/d_com_inf_game.h" #include "d/d_k_wmark.h" +/* 803B2CEC-803B2D34 00FE0C 0048+00 1/2 0/0 0/0 .data m_fEffParamProc__9daAlink_c */ +EffParamProc daAlink_c::m_fEffParamProc[] = { + &daAlink_c::setEffectFrontRollParam, + &daAlink_c::setEffectSlipParam, + &daAlink_c::setEffectSmallLandParam, + &daAlink_c::setEffectRunParam, + &daAlink_c::setEffectLandParam, + &daAlink_c::setEffectSumouParam, +}; /* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text * setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */ @@ -87,7 +96,9 @@ void daAlink_c::setEffectSlipParam() { emitter->setAwayFromCenterSpeed(0.0f); emitter->setRandomDirectionSpeed(0.0f); emitter->setSpread(0.1f); - emitter->setGlobalParticleScale(smokeParticleScale_39643); + + static Vec const smokeParticleScale = {0.69999999f, 0.69999999f, 0.69999999f}; + emitter->setGlobalParticleScale(smokeParticleScale); } } else if (type == 1) { JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); @@ -103,6 +114,7 @@ void daAlink_c::setEffectSlipParam() { } if (checkWolf()) { + static Vec const wolfWaterCenterScale = {1.2f, 1.2f, 1.2f}; emitter->setGlobalScale(wolfWaterCenterScale); } else { emitter->getGlobalTranslation(&sp30); @@ -131,6 +143,10 @@ void daAlink_c::setEffectSlipParam() { /* 80120B00-80120DB0 11B440 02B0+00 1/0 0/0 0/0 .text setEffectRunParam__9daAlink_cFv */ void daAlink_c::setEffectRunParam() { + static Vec const waterScale = {0.57999998f, 0.57999998f, 0.57999998f}; + static Vec const waterCenterScale = {1.2f, 1.2f, 1.2f}; + static Vec const waterSmokeScale = {0.69999999f, 0.69999999f, 0.69999999f}; + int k, j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { @@ -153,7 +169,7 @@ void daAlink_c::setEffectRunParam() { break; } - emitter->setGlobalScale(waterScale_39762); + emitter->setGlobalScale(waterScale); } } else if (type == 5) { JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); @@ -189,6 +205,10 @@ void daAlink_c::setEffectRunParam() { /* 80120DB0-80121000 11B6F0 0250+00 1/0 0/0 0/0 .text setEffectSmallLandParam__9daAlink_cFv */ void daAlink_c::setEffectSmallLandParam() { + static Vec const smokeParticleScale = {0.8f, 0.8f, 0.8f}; + static Vec const waterScale = {1.25f, 1.25f, 1.25f}; + static Vec const wolfSmokeScale = {0.69999999f, 0.69999999f, 0.69999999f}; + int k, j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { @@ -203,7 +223,7 @@ void daAlink_c::setEffectSmallLandParam() { emitter->setRate(15.0f); emitter->setVolumeSize(25); emitter->setDirectionalSpeed(0.0f); - emitter->setGlobalParticleScale(smokeParticleScale_39891); + emitter->setGlobalParticleScale(smokeParticleScale); } } } else if (type == 1) { @@ -226,7 +246,7 @@ void daAlink_c::setEffectSmallLandParam() { break; } - emitter->setGlobalScale(waterScale_39892); + emitter->setGlobalScale(waterScale); } } } @@ -240,6 +260,10 @@ void daAlink_c::setEffectLandParam() {} /* 80121004-801211C0 11B944 01BC+00 1/0 0/0 0/0 .text setEffectSumouParam__9daAlink_cFv */ void daAlink_c::setEffectSumouParam() { + static Vec const shikoScale = {0.69999999f, 0.69999999f, 0.69999999f}; + static Vec const pushedSlip = {0.8f, 0.8f, 0.8f}; + static Vec const loseScale = {1.1f, 1.1f, 1.1f}; + int j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { @@ -636,6 +660,8 @@ void daAlink_c::setEffect() { /* 801221F0-801225E8 11CB30 03F8+00 1/1 0/0 0/0 .text setSumouEffect__9daAlink_cFv */ void daAlink_c::setSumouEffect() { + static Vec const releaeScale = {0.8f, 0.8f, 0.8f}; + daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; cXyz sp14; @@ -747,6 +773,13 @@ void daAlink_c::setWaterfallEffect() { } } +/* 80453094-8045309C 001694 0006+02 1/1 0/0 0/0 .sdata2 effName$40765 */ +static const u16 effName_40765[] = { + 0x0407, + 0x0408, + 0x0409, +}; + /* 8012277C-801228F4 11D0BC 0178+00 1/1 0/0 0/0 .text setMagneBootsEffect__9daAlink_cFv */ void daAlink_c::setMagneBootsEffect() { @@ -784,6 +817,9 @@ void daAlink_c::setMagneBootsEffect() { /* 801228F4-80122BBC 11D234 02C8+00 1/1 0/0 0/0 .text setSwordChargeEffect__9daAlink_cFv */ void daAlink_c::setSwordChargeEffect() { + static Vec const lightAParticleScale = {1.0f, 1.171f, 1.0f}; + static Vec const lightALocalTrans = {68.0f, 0.0f, 0.0f}; + f32 var_f30; BOOL temp_r3 = checkMasterSwordEquip(); if (temp_r3) { @@ -850,12 +886,19 @@ void daAlink_c::setSwordChargeEffect() { /* 80122BBC-80122F18 11D4FC 035C+00 1/1 0/0 0/0 .text setElecDamageEffect__9daAlink_cFv */ void daAlink_c::setElecDamageEffect() { + static Vec const localOffset = {0.0f, -10.0f, -10.0f}; + static Vec const localScale0 = {0.69999999f, 0.85f, 1.5f}; + static Vec const localScale1 = {1.0f, 0.85f, 1.5f}; + + static const u16 effName0[] = {0x867D, 0x867E, 0x867F}; + static const u16 effName1[] = {0x8981, 0x8982, 0x8983}; + cXyz sp54; const u16* var_r28 = checkStageName("D_MN09A") ? effName1 : effName0; int i; if (checkWolf()) { - mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &localOffset_40952, &sp54); + mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &localOffset, &sp54); for (i = 0; i < 3; i++, var_r28++) { JPABaseEmitter* emitter = setEmitter(&field_0x31d8[i], *var_r28, &sp54, &shape_angle); @@ -897,13 +940,62 @@ void daAlink_c::clearCutTurnEffectID() { } } +/* 804530AC-804530B0 0016AC 0004+00 1/1 0/0 0/0 .sdata2 effNameNormal$41086 */ +static const u16 effNameNormal[] = { + 0x0159, + 0x015A, +}; + +/* 804530B0-804530B8 0016B0 0008+00 1/1 0/0 0/0 .sdata2 effNameLight$41091 */ +static const u16 effNameLight[] = { + 0x0A28, 0x0A29, 0x0A2A, 0x0A2B, +}; + +/* 804530B8-804530BC 0016B8 0004+00 1/1 0/0 0/0 .sdata2 effNameWater$41101 */ +static const u16 effNameWater[] = { + 0x0C52, + 0x0C53, +}; + /* 80122F78-801233A4 11D8B8 042C+00 1/1 0/0 0/0 .text setCutTurnEffect__9daAlink_cFv */ // NONMATCHING - should match when data order is fixed void daAlink_c::setCutTurnEffect() { + static Vec const waterEffScale = {1.5f, 1.5f, 1.5f}; + + static Vec const leftTransNormal[] = { + {0.0f, 0.0f, 0.0f}, + {0.0f, 30.0f, 0.0f}, + }; + + static Vec const leftTransLight[] = { + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 35.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + }; + + static u16 const effNameLarge[] = { + 0x0BA5, 0x0BA6, 0x0BA7, 0x0BA8, 0x0BA9, 0x0BAA, + }; + + static Vec const leftTransLarge[] = { + {0.0f, 0.0f, 0.0f}, + {0.0f, 35.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 45.0f, 0.0f}, + {0.0f, 30.0f, 0.0f}, + {0.0f, 50.0f, 0.0f}, + }; + + static Vec const leftTransWater[] = { + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + }; + f32 temp_f1 = mUnderFrameCtrl[0].getFrame(); if (!(temp_f1 < mProcVar1.field_0x300a)) { - /* static s16 leftRotNormal[] = { + static s16 leftRotNormal[] = { cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), }; @@ -920,7 +1012,7 @@ void daAlink_c::setCutTurnEffect() { static s16 leftRotWater[] = { cM_deg2s(-90), cM_deg2s(0), cM_deg2s(180), cM_deg2s(0), cM_deg2s(0), cM_deg2s(180), - }; */ + }; u32* sp2C = field_0x3204; const u16* sp28; @@ -1026,17 +1118,21 @@ void daAlink_c::setCutLargeJumpLandEffect() { sp58.z = 0; for (int i = 0; i < 6; i++) { - dComIfGp_particle_set(effName_41208[i], &sp50, &tevStr, &sp58, NULL); + static u16 const effName[] = {0x09D0, 0x09D1, 0x09D2, 0x09D3, 0x09D4, 0x09D5}; + dComIfGp_particle_set(effName[i], &sp50, &tevStr, &sp58, NULL); } } /* 801236BC-801237A8 11DFFC 00EC+00 1/1 0/0 0/0 .text setBootsLightEffect__9daAlink_cFv */ void daAlink_c::setBootsLightEffect() { + static const u16 jointID[] = {0x0014, 0x0013, 0x0018, 0x0019}; + static const u16 effName[] = {0x88E1, 0x88E2, 0x88E3, 0x88E4}; + if (checkStageName("F_SP116")) { if (dComIfGs_isOneZoneSwitch(0, fopAcM_GetRoomNo(this))) { for (int i = 0; i < 4; i++) { - JPABaseEmitter* emitter = setEmitter(&field_0x326c[i], effName_41286[i], ¤t.pos, &shape_angle); + JPABaseEmitter* emitter = setEmitter(&field_0x326c[i], effName[i], ¤t.pos, &shape_angle); if (emitter != NULL) { emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(jointID[i])); } @@ -1049,6 +1145,8 @@ void daAlink_c::setBootsLightEffect() { /* 801237A8-801238FC 11E0E8 0154+00 1/1 0/0 0/0 .text setLightningSwordEffect__9daAlink_cFv */ void daAlink_c::setLightningSwordEffect() { + static const u16 effName[] = {0x0A58, 0x0A59, 0x0B9D}; + if (checkEndResetFlg2(ERFLG2_UNK_10)) { JPABaseEmitter* emitter = setEmitter(&field_0x3294, 0x8B9E, ¤t.pos, &shape_angle); if (emitter != NULL) { @@ -1065,7 +1163,7 @@ void daAlink_c::setLightningSwordEffect() { seStartOnlyReverbLevel(Z2SE_AL_LIGHTNING_SW_GLOW); for (i = 0; i < 3; i++) { - JPABaseEmitter* emitter = setEmitter(&field_0x327c[i], effName_41312[i], ¤t.pos, &shape_angle); + JPABaseEmitter* emitter = setEmitter(&field_0x327c[i], effName[i], ¤t.pos, &shape_angle); if (emitter != NULL) { emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); } @@ -1151,6 +1249,20 @@ void daAlink_c::setWolfDigEffect() { } } +/* 804530D8-804530E0 0016D8 0006+02 1/1 0/0 0/0 .sdata2 name0$41422 */ +static const u16 name0[] = { + 0x02A3, + 0x83A2, + 0x884F, +}; + +/* 804530E0-804530E8 0016E0 0006+02 1/1 0/0 0/0 .sdata2 name1$41423 */ +static const u16 name1[] = { + 0x02A3, + 0x83A3, + 0x8850, +}; + /* 80123BF0-80123C8C 11E530 009C+00 2/2 0/0 0/0 .text * setWolfSwimEndEffect__9daAlink_cFPP14JPABaseEmitterPP14JPABaseEmitter */ void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter** param_1) { @@ -1166,6 +1278,13 @@ void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter** } } +/* 804530E8-804530F0 0016E8 0006+02 1/1 0/0 0/0 .sdata2 effID$41443 */ +static const u16 effID[] = { + 0x0244, + 0x0245, + 0x0246, +}; + /* 80123C8C-80123D88 11E5CC 00FC+00 1/1 0/0 0/0 .text setWolfLockAttackEffect__9daAlink_cFv */ void daAlink_c::setWolfLockAttackEffect() { u8 var_r30; @@ -1235,6 +1354,18 @@ void daAlink_c::setWolfJumpAttackEffect() { } } +/* 804530F0-804530F4 0016F0 0004+00 1/1 0/0 0/0 .sdata2 normalNameID$41521 */ +static const u16 normalNameID[] = { + 0x8390, + 0x8391, +}; + +/* 804530F4-804530F8 0016F4 0004+00 1/1 0/0 0/0 .sdata2 ganonNameID$41522 */ +static const u16 ganonNameID[] = { + 0x8C2A, + 0x8C2B, +}; + /* 80123ED0-80124144 11E810 0274+00 2/2 0/0 0/0 .text * setWolfBarrierHitEffect__9daAlink_cFR11dBgS_LinChk */ void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& param_0) { @@ -1272,6 +1403,11 @@ void daAlink_c::setCutWaterDropEffect() { } } +/* 804530F8-80453100 0016F8 0008+00 1/1 0/0 0/0 .sdata2 effDataTable$41650 */ +static const u16 effDataTable[] = { + 0x02A5, 0x02A6, 0x02A7, 0x02A8, +}; + /* 801241E0-801244E4 11EB20 0304+00 1/1 0/0 0/0 .text setWaterDropEffect__9daAlink_cFv */ void daAlink_c::setWaterDropEffect() { Vec spC; @@ -1338,9 +1474,9 @@ void daAlink_c::setWaterDropEffect() { s16 var_r27; if (!checkNoResetFlg2(daPy_FLG2(FLG2_UNK_100000 | FLG2_UNK_80000))) { - var_r27 = field_0x32a0[i].a * 0.65f; - } else { var_r27 = field_0x32a0[i].a * 0.4f; + } else { + var_r27 = field_0x32a0[i].a * 0.65f; } field_0x32a0[i].r = var_r27; @@ -1361,6 +1497,7 @@ void daAlink_c::setSwordUpColorEffect() { cLib_chaseF(&mSwordUpColorIntensity, max_intensity, 0.1f); for (int i = 0; i < 2; i++) { + static GXColorS10 const swordUpColor[2] = {{13, 10, 2, 255}, {28, 16, 4, 255}}; field_0x32b0[i].r = mSwordUpColorIntensity * swordUpColor[i].r; field_0x32b0[i].g = mSwordUpColorIntensity * swordUpColor[i].g; field_0x32b0[i].b = mSwordUpColorIntensity * swordUpColor[i].b; @@ -1369,6 +1506,9 @@ void daAlink_c::setSwordUpColorEffect() { /* 801245EC-80124738 11EF2C 014C+00 1/1 0/0 0/0 .text setSwordCutSplash__9daAlink_cFv */ void daAlink_c::setSwordCutSplash() { + static const u16 cutSplashName[] = {0x01B8, 0x01B9, 0x01BA, 0x01BB}; + static Vec const swordCutSplashScale = {0.6f, 0.6f, 0.6f}; + if (mCutType != 0 && mProcID != PROC_CUT_TURN && getCutAtFlg() != 0 && checkNoResetFlg0(FLG0_UNK_80) && mEquipItem == 0x103) { if (mSwordTopPos.y <= mWaterY && field_0x34b0.y > mWaterY) { cXyz sp14(mSwordTopPos.x, mWaterY, mSwordTopPos.z); @@ -1495,6 +1635,10 @@ void daAlink_c::resetFairyEffect() { /* 80124BA4-80124E28 11F4E4 0284+00 1/1 0/0 0/0 .text setBottleEffect__9daAlink_cFv */ void daAlink_c::setBottleEffect() { + static Vec const fairyScale = {0.5f, 0.5f, 0.5f}; + static Vec const chuchuLocalOffset = {0.0f, 15.0f, 0.0f}; + static Vec const chuchuScale = {0.8f, 0.8f, 0.8f}; + if (mEquipItem == fpcNm_ITEM_FAIRY) { if (mpHookTipModel != NULL) { cXyz sp2C; @@ -1557,6 +1701,26 @@ void daAlink_c::initFirePointDamageEffectAll() { } for (int i = 0; i < 4; i++, eff++) { + static u16 const effJoint[2][4] = { + {0x0007, 0x000C, 0x0010, 0x0022}, + {0x0003, 0x0003, 0x0003, 0x0003}, + }; + + static Vec const effOffset[2][4] = { + { + {-5.0f, 0.0f, 0.0f}, + {15.0f, 3.0f, 5.0f}, + {4.0f, -10.0f, 15.0f}, + {0.0f, -5.0f, -7.0f}, + }, + { + {15.0f, 5.0f, -20.0f}, + {0.0f, -25.0f, 5.0f}, + {15.0f, -5.0f, 20.0f}, + {10.0f, -25.0f, -10.0f}, + } + }; + eff->field_0x0 = 1; eff->field_0x2 = effJoint[var_r29][i]; eff->field_0x4 = 0; @@ -1654,8 +1818,15 @@ void daAlink_c::setFirePointDamageEffect() { } } +/* 8045310C-80453110 00170C 0004+00 1/1 0/0 0/0 .sdata2 effName$42224 */ + + /* 80125338-80125524 11FC78 01EC+00 1/1 0/0 0/0 .text setFreezeEffect__9daAlink_cFv */ void daAlink_c::setFreezeEffect() { + static Vec const effScale = {1.0f, 1.8f, 1.0f}; + static Vec const wolfEffScale = {1.0f, 1.0f, 1.5f}; + static Vec const offsetPos = {0.0f, 0.0f, -10.0f}; + cXyz sp14; if (checkFreezeDamage()) { @@ -1684,7 +1855,8 @@ void daAlink_c::setFreezeEffect() { } for (int i = 0; i < 2; i++) { - dComIfGp_particle_setColor(effName_42224[i], &sp14, &tevStr, NULL, NULL, 0.0f, 0xFF); + static const u16 effName[] = {0x8818, 0x8819}; + dComIfGp_particle_setColor(effName[i], &sp14, &tevStr, NULL, NULL, 0.0f, 0xFF); } stopDrawParticle(field_0x3268); @@ -1692,6 +1864,12 @@ void daAlink_c::setFreezeEffect() { } } +/* 80453110-80453114 001710 0004+00 1/1 0/0 0/0 .sdata2 effName$42309 */ +static const u16 effName_42309[] = { + 0x0814, + 0x0815, +}; + /* 80125524-801255BC 11FE64 0098+00 1/1 0/0 0/0 .text setWoodShieldBurnEffect__9daAlink_cFv */ void daAlink_c::setWoodShieldBurnEffect() { if (field_0x2fcb != 0) { @@ -1717,6 +1895,12 @@ void daAlink_c::clearWoodShieldBurnEffect() { } } +/* 80453114-80453118 001714 0004+00 1/1 0/0 0/0 .sdata2 effName$42340 */ +static const u16 effName_42340[] = { + 0x0816, + 0x0817, +}; + /* 80125628-801256EC 11FF68 00C4+00 1/1 0/0 0/0 .text setWoodShieldBurnOutEffect__9daAlink_cFv */ void daAlink_c::setWoodShieldBurnOutEffect() { for (int i = 0; i < 2; i++) { @@ -1829,7 +2013,7 @@ void daAlink_blur_c::traceBlur(cXyz const* param_0, cXyz const* param_1, s16 par void daAlink_blur_c::draw() { j3dSys.reinitGX(); - static GXTexObj ALIGN_DECL(32) texObj; + static GXTexObj texObj; static GXColor nColor0 = {0xFF, 0xFF, 0xFF, 0x14}; GXSetNumIndStages(0); @@ -2026,7 +2210,7 @@ void daAlink_lockCursor_c::draw() { } mCursor0->translate(0.0f, -var_f31); - mCursor1->translate(var_f31 * cM_fcos(2.617994f), var_f31 * cM_fsin(2.617994f)); + mCursor1->translate(var_f31 * cM_fcos(2.6179938f), var_f31 * cM_fsin(2.6179938f)); mCursor2->translate(var_f31 * cM_fcos(0.5235988f), var_f31 * cM_fsin(0.5235988f)); } diff --git a/src/d/actor/d_a_alink_grab.inc b/src/d/actor/d_a_alink_grab.inc index bea96f71980..0bdfcbbe75f 100644 --- a/src/d/actor/d_a_alink_grab.inc +++ b/src/d/actor/d_a_alink_grab.inc @@ -316,6 +316,7 @@ void daAlink_c::setGrabItemPos() { mDoMtx_stack_c::multVec(&sp140, &temp_r3->current.pos); if (checkGrabAnimeSide()) { + static Vec const localSidePos = {2.3f, -15.5f, 15.6f}; mDoMtx_multVec(mpLinkModel->getAnmMtx(0xA), &localSidePos, &sp140); temp_r3->current.pos = (temp_r3->current.pos * (1.0f - field_0x33e8)) + (sp140 * field_0x33e8); } @@ -335,9 +336,9 @@ void daAlink_c::setGrabItemPos() { } if (mProcID == 0x70) { - sp140.y = temp_f31_3 * (-13.78908f - var_f30); + sp140.y = temp_f31_3 * (-13.789083f - var_f30); } else { - sp140.y = temp_f31_3 * (-13.82537f - var_f30); + sp140.y = temp_f31_3 * (-13.825373f - var_f30); } mDoMtx_stack_c::multVecSR(&sp140, &sp140); @@ -810,7 +811,7 @@ int daAlink_c::procGrabUpInit() { } cXyz sp8 = temp_r30->current.pos - field_0x3510; - field_0x33e4 = (sp8.absXZ() - 46.0512f) - -8.0f; + field_0x33e4 = (sp8.absXZ() - 46.051205f) - -8.0f; if (fopAcM_CheckCarryType(temp_r30, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY))) { voiceStart(Z2SE_AL_V_LIFTUP_L); diff --git a/src/d/actor/d_a_alink_guard.inc b/src/d/actor/d_a_alink_guard.inc index 614e585d316..b9d503c059a 100644 --- a/src/d/actor/d_a_alink_guard.inc +++ b/src/d/actor/d_a_alink_guard.inc @@ -133,6 +133,7 @@ void daAlink_c::getArrowShieldOffset(cXyz const* param_0, csXyz const* param_1, mDoMtx_stack_c::inverse(); mDoMtx_stack_c::multVecSR(&sp54, param_3); + static Vec const localCenter = {-15.0f, 0.0f, 18.0f}; cXyz sp60; mDoMtx_multVec(getShieldMtx(), &localCenter, &sp60); diff --git a/src/d/actor/d_a_alink_hang.inc b/src/d/actor/d_a_alink_hang.inc index 5c26ac0eb8f..50302c62cab 100644 --- a/src/d/actor/d_a_alink_hang.inc +++ b/src/d/actor/d_a_alink_hang.inc @@ -72,6 +72,7 @@ BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { cXyz sp9C; for (int i = 0; i < 3; i++) { + static f32 const underOffsetY[3] = {15.0f, 90.0f, 150.0f}; sp90.y = sp84.y = var_f31 - underOffsetY[i]; if (commonLineCheck(&sp84, &sp90)) { @@ -169,7 +170,7 @@ bool daAlink_c::checkHangFootWall() { cM3dGPla sp40; dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp40); - if (fabsf(sp40.mNormal.y) <= 0.005f) { + if (fabsf(sp40.mNormal.y) <= 0.05f) { onNoResetFlg2(FLG2_UNK_2000); return true; } @@ -2541,8 +2542,8 @@ int daAlink_c::procClimbWait() { } else { daPy_addCalcShort(&field_0x30a0, 0, 3, 0x800, 0x100); daPy_addCalcShort(&field_0x30a2, 0, 3, 0x800, 0x100); - field_0x33f0 = field_0x30a2 * 0.0001627604f; - field_0x33f4 = -field_0x30a0 * -0.0001627604f; + field_0x33f0 = field_0x30a2 * 0.00016276042f; + field_0x33f4 = -field_0x30a0 * -0.00016276042f; } } } else if (fabsf(frameCtrl->getRate()) > 0.01f) { @@ -2633,6 +2634,14 @@ void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) { } } +/* 80452FA8-80452FB0 0015A8 0008+00 1/1 0/0 0/0 .sdata2 offsetAngle$25945 */ +static const s16 offsetAngle[] = { + 0x0000, + 0x8000, + 0x4000, + 0xC000, +}; + /* 80100668-80100770 0FAFA8 0108+00 3/3 0/0 0/0 .text checkRoofHangMovePos__9daAlink_cFv */ int daAlink_c::checkRoofHangMovePos() { @@ -2887,7 +2896,7 @@ int daAlink_c::procRoofHangFrontMove() { mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x30, daAlinkHIO_roofHang_c0::m.field_0x34) * - cM_fsin((frame * M_PI) * 0.08333334f); + cM_fsin((frame * M_PI) * 0.083333336f); if (mNormalSpeed < 0.0f) { mNormalSpeed = 0.0f; } diff --git a/src/d/actor/d_a_alink_hook.inc b/src/d/actor/d_a_alink_hook.inc index d366c6d4ce1..99ea0d2a498 100644 --- a/src/d/actor/d_a_alink_hook.inc +++ b/src/d/actor/d_a_alink_hook.inc @@ -162,7 +162,7 @@ void daAlink_c::hsChainShape_c::draw() { mDoMtx_stack_c::transS(sp98); mDoMtx_stack_c::ZXYrotM(sp64); - static Vec hsVec = {0.0f, 0.0f, 5.0f}; + static const Vec hsVec = {0.0f, 0.0f, 5.0f}; mDoMtx_stack_c::multVec(&hsVec, &sp98); mDoMtx_stack_c::revConcat(j3dSys.getViewMtx()); @@ -904,6 +904,7 @@ void daAlink_c::setHookshotPos() { mItemBck.entry(field_0x0710->getModelData(), 0.0f); field_0x0710->calc(); + static Vec const hookRoot = {0.0f, 0.0f, 23.5f}; mDoMtx_multVec(mHeldItemModel->getBaseTRMtx(), &hookRoot, &mHeldItemRootPos); mDoMtx_multVec(field_0x0710->getBaseTRMtx(), &hookRoot, &field_0x3810); diff --git a/src/d/actor/d_a_alink_horse.inc b/src/d/actor/d_a_alink_horse.inc index 55033584aae..328d28df959 100644 --- a/src/d/actor/d_a_alink_horse.inc +++ b/src/d/actor/d_a_alink_horse.inc @@ -79,9 +79,36 @@ int daAlink_c::getReinRideDirection() { return DIR_RIGHT; } +/* 803918E8-803918F4 01DF48 000C+00 0/1 0/0 0/0 .rodata m_handLeftOutSidePos__9daAlink_c */ +Vec const daAlink_c::m_handLeftOutSidePos = { + 9.0f, -5.0f, 3.0f +}; + +/* 803918F4-80391900 01DF54 000C+00 0/1 0/0 0/0 .rodata m_handRightOutSidePos__9daAlink_c + */ +Vec const daAlink_c::m_handRightOutSidePos = { + 9.0f, -5.0f, -3.0f +}; + +/* 80391900-8039190C 01DF60 000C+00 0/1 0/0 1/1 .rodata m_handLeftInSidePos__9daAlink_c */ +Vec const daAlink_c::m_handLeftInSidePos = { + 9.0f, 5.0f, 3.0f +}; + +/* 8039190C-80391918 01DF6C 000C+00 0/1 0/0 1/1 .rodata m_handRightInSidePos__9daAlink_c */ +Vec const daAlink_c::m_handRightInSidePos = { + 9.0f, 5.0f, -3.0f +}; + /* 800EC8F8-800ECA3C 0E7238 0144+00 1/1 0/0 0/0 .text checkReinRideBgCheck__9daAlink_cFv */ int daAlink_c::checkReinRideBgCheck() { + static const Vec horseLocalLeft = {20.0f, 0.0f, 0.0f}; + static const Vec horseLocalRight = {-20.0f, 0.0f, 0.0f}; + static const Vec horseLocalBack = {0.0f, 0.0f, -200.0f}; + static const Vec boarLocalLeft = {200.0f, 0.0f, -18.0f}; + static const Vec boarLocalRight = {-200.0f, 0.0f, -18.0f}; + int direction = getReinRideDirection(); fopAc_ac_c* temp_r4 = field_0x27f4; @@ -387,7 +414,8 @@ int daAlink_c::setSyncHorsePos() { checkUnderMove0BckNoArc(ANM_HORSE_TURN_RIGHT)) { if (mProcID == PROC_HORSE_RUN) { - mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun_18095, ¤t.pos); + static const Vec localHorseRun = {15.0f, 0.0f, -45.0f}; + mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun, ¤t.pos); if (!horse_p->checkTurn() && !horse_p->checkStop()) { f32 frame = horse_p->getAnmFrame(0) / horse_p->getAnmFrameMax(0) + 0.5f; @@ -400,7 +428,8 @@ int daAlink_c::setSyncHorsePos() { getNowAnmPackUnder(UNDER_0)->setFrame(var_f0); } } else { - mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun_18103, ¤t.pos); + static const Vec localHorseRun = {30.0f, 0.0f, -10.0f}; + mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun, ¤t.pos); } csXyz sp58; @@ -494,7 +523,8 @@ int daAlink_c::setSyncBoarRunPos() { MtxP ride_mtx = e_wb_p->getRideMtx(); field_0x2f99 = 0x60; - mDoMtx_multVec(ride_mtx, &localOffset_18237, ¤t.pos); + static const Vec localOffset = {-30.0f, -18.0f, 0.0f}; + mDoMtx_multVec(ride_mtx, &localOffset, ¤t.pos); csXyz sp28; mDoMtx_MtxToRot(ride_mtx, &sp28); @@ -978,7 +1008,7 @@ void daAlink_c::setBaseBoarAnime() { if (var_f31 < 0.2f) { setDoubleAnime(var_f31, 1.0f, 1.0f, ANM_HORSE_WAIT, ANM_HORSE_WALK_A, 0xA, -1.0f); } else if (var_f31 < 0.5f) { - setDoubleAnime(3.333333f * (var_f31 - 0.2f), 1.0f, 1.0f, ANM_HORSE_WALK_A, ANM_HORSE_WALK_B, 0xA, -1.0f); + setDoubleAnime(3.3333333f * (var_f31 - 0.2f), 1.0f, 1.0f, ANM_HORSE_WALK_A, ANM_HORSE_WALK_B, 0xA, -1.0f); } else { setDoubleAnime(2.0f * (var_f31 - 0.5f), 1.0f, 1.0f, ANM_HORSE_WALK_B, ANM_HORSE_DASH_A, 0xA, -1.0f); } @@ -1359,6 +1389,7 @@ int daAlink_c::procHorseRideInit() { mDoMtx_stack_c::ZXYrotS(field_0x27f4->shape_angle.x, field_0x27f4->shape_angle.y, 0); if (checkBoarRide()) { + static Vec const boarRideOffset = {-0.87f, 3.3299999f, -23.77f}; mDoMtx_stack_c::multVec(&boarRideOffset, &sp2C); current.pos += sp2C; var_f31 += sp2C.y; @@ -1549,6 +1580,8 @@ int daAlink_c::procHorseGetOffInit(int param_0) { } else { var_r29 = ANM_HORSE_FALL_LEFT; } + + static Vec const leftOffset = {75.0f, 102.0f, 6.224f}; mDoMtx_stack_c::multVec(&leftOffset, &spC); } else { if (checkHorseRide()) { @@ -1556,6 +1589,8 @@ int daAlink_c::procHorseGetOffInit(int param_0) { } else { var_r29 = ANM_HORSE_FALL_RIGHT; } + + static Vec const rightOffset = {-75.0f, 102.0f, 6.221f}; mDoMtx_stack_c::multVec(&rightOffset, &spC); } @@ -1979,8 +2014,43 @@ int daAlink_c::procHorseCutInit() { var_r28 = (int)cM_rndF(4.0f) % 4; } + static daAlink_cutHorseParamTbl const cutParamTable[] = { + { + daAlink_c::FTANM_UNK_20, + 0x91, + 0x10C, + 0x00, + 0x0E, + 0x22, + }, + { + daAlink_c::FTANM_UNK_21, + 0x92, + 0x10D, + 0x00, + 0x13, + 0x23, + }, + { + daAlink_c::FTANM_UNK_22, + 0x93, + 0x10E, + 0x00, + 0x13, + 0x2A, + }, + { + daAlink_c::FTANM_UNK_23, + 0x94, + 0x10F, + 0x00, + 0x00, + 0x2A, + }, + }; + const daAlinkHIO_hoCut_c1* var_r29; - const daAlink_cutHorseParamTbl* temp_r27 = &cutParamTable_19765[var_r28]; + const daAlink_cutHorseParamTbl* temp_r27 = &cutParamTable[var_r28]; field_0x2f96 = 2; if (var_r28 == 0) { @@ -2206,6 +2276,14 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) { setSyncRide(0); + static u16 const anmIdx[] = { + 0x00BA, + 0x00B8, + 0x00BB, + 0x00BC, + 0x00B9, + }; + if (checkUnderMove0BckNoArc(ANM_HORSE_STOP) || checkUnderMove0BckNoArc(ANM_HORSE_STOP_TO_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_B) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_A) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) { mProcVar4.field_0x3010 = 0; mProcVar5.field_0x3012 = 0; diff --git a/src/d/actor/d_a_alink_iceleaf.inc b/src/d/actor/d_a_alink_iceleaf.inc index 5d0e641ae52..d552ca0936a 100644 --- a/src/d/actor/d_a_alink_iceleaf.inc +++ b/src/d/actor/d_a_alink_iceleaf.inc @@ -178,7 +178,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) { var_f31 = 1.0f - (0.5f * cM_scos(temp_r0)); } - var_f31 *= cM_fsin(1.570796f * var_f25); + var_f31 *= cM_fsin(1.5707964f * var_f25); if (var_f31 > 0.1f) { f32 temp_f27 = (var_f31 * cM_ssin(var_r27)) + (mNormalSpeed * cM_ssin(shape_angle.y)); f32 temp_f26 = (var_f31 * cM_scos(var_r27)) + (mNormalSpeed * cM_scos(shape_angle.y)); @@ -386,7 +386,7 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) { mNormalSpeed = 0.0f; } - field_0x594 = daAlinkHIO_move_c0::m.mMinWalkRate; + field_0x594 = daAlinkHIO_board_c0::m.mMaxSpeed; mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; setCommonBoardAnime(FALSE); diff --git a/src/d/actor/d_a_alink_ironball.inc b/src/d/actor/d_a_alink_ironball.inc index 9e99bea609a..81d45e5128e 100644 --- a/src/d/actor/d_a_alink_ironball.inc +++ b/src/d/actor/d_a_alink_ironball.inc @@ -746,6 +746,9 @@ void daAlink_c::setIronBallPos() { mItemVar0.field_0x3018 = 8; } } else if (mItemVar0.field_0x3018 == 8) { + static Vec const ironBallPosVec = {0.0f, 0.0f, -42.0f}; + static Vec const handCenterOffsetVec = {2.0f, -25.0f, 12.5f}; + mSearchBallScale = 0.0f; mDoMtx_stack_c::transS(spE8); diff --git a/src/d/actor/d_a_alink_kandelaar.inc b/src/d/actor/d_a_alink_kandelaar.inc index d0fb402bd2c..a217e5a18d4 100644 --- a/src/d/actor/d_a_alink_kandelaar.inc +++ b/src/d/actor/d_a_alink_kandelaar.inc @@ -133,6 +133,7 @@ int daAlink_c::kandelaarModelCallBack() { mDoMtx_stack_c::ZXYrotM(var_r28, var_r29, var_r27); } + static Vec const kandelaarOffset = {0.0f, -17.0f, 0.0f}; mDoMtx_stack_c::multVec(&kandelaarOffset, &mKandelaarFlamePos); field_0x3618 = (mKandelaarFlamePos - field_0x3624) * 0.9f; @@ -206,7 +207,7 @@ void daAlink_c::preKandelaarDraw() { var_f3 = 0.0f; } - if (proj.x > 0.0f && proj.x < 640.0f && proj.y > var_f3 && proj.y < 456.0f - var_f3) { + if (proj.x > 0.0f && proj.x < 608.0f && proj.y > var_f3 && proj.y < 448.0f - var_f3) { dComIfGd_peekZ(proj.x, proj.y, &field_0x32c8); } else { field_0x32c8 = 0; diff --git a/src/d/actor/d_a_alink_link.inc b/src/d/actor/d_a_alink_link.inc index b5265202d00..5b375b4c31b 100644 --- a/src/d/actor/d_a_alink_link.inc +++ b/src/d/actor/d_a_alink_link.inc @@ -9,4313 +9,6 @@ #include "d/actor/d_a_tag_mstop.h" #include "d/actor/d_a_tag_mhint.h" -/* 800C2DDC-800C2EAC 0BD71C 00D0+00 17/17 0/0 0/0 .text - * procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c */ -int daAlink_c::procPreActionUnequipInit(int i_procAfter, fopAc_ac_c* param_1) { - commonProcInit(PROC_PREACTION_UNEQUIP); - mNormalSpeed = 0.0f; - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - allUnequip(0); - mProcVar4.field_0x3010 = 0; - - if (param_1 != NULL) { - field_0x280c.setData(param_1); - mProcVar3.field_0x300e = 1; - - if (fopAcM_GetName(param_1) == PROC_Tag_Lv8Gate) { - if (mEquipItem == fpcNm_ITEM_KANTERA) { - mProcVar4.field_0x3010 = 1; - } else if (checkNoResetFlg2(FLG2_UNK_1)) { - offKandelaarModel(); - } - } - } else { - mProcVar3.field_0x300e = 0; - } - - field_0x3198 = i_procAfter; - return 1; -} - -/* 800C2EAC-800C3098 0BD7EC 01EC+00 1/0 0/0 0/0 .text procPreActionUnequip__9daAlink_cFv - */ -int daAlink_c::procPreActionUnequip() { - if (checkNoUpperAnime()) { - if (mProcVar3.field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor())) - { - checkWaitAction(); - } else if (field_0x3198 == PROC_PUSH_PULL_WAIT) { - procCoPushPullWaitInit(1); - } else if (field_0x3198 == PROC_LADDER_DOWN_START) { - procLadderDownStartInit(); - } else if (field_0x3198 == PROC_LADDER_UP_START) { - procLadderUpStartInit(); - } else if (field_0x3198 == PROC_GRAB_READY) { - procGrabReadyInit(); - } else if (field_0x3198 == PROC_GET_ITEM) { - procCoGetItemInit(); - } else if (field_0x3198 == PROC_GET_READY_SIT) { - procCoGetReadySitInit(); - } else if (field_0x3198 == PROC_CHAIN_UP) { - procFmChainUpInit(); - } else if (field_0x3198 == PROC_PICK_UP) { - procPickUpInit(); - } else if (field_0x3198 == PROC_CRAWL_START) { - procCrawlStartInit(); - } else if (field_0x3198 == PROC_GRASS_WHISTLE_GET) { - procGrassWhistleGetInit(); - } else if (field_0x3198 == PROC_GOAT_STROKE) { - procGoatStrokeInit(); - } else if (field_0x3198 == PROC_HANG_READY) { - procHangReadyInit(); - } else if (field_0x3198 == PROC_INSECT_CATCH) { - procInsectCatchInit(); - } else if (field_0x3198 == PROC_GORON_MOVE) { - procGoronMoveInit(); - } else if (field_0x3198 == PROC_BOTTLE_SWING) { - procBottleSwingInit(NULL, 0); - } else if (field_0x3198 == PROC_HANG_LEVER_DOWN) { - procHangLeverDownInit(); - } else if (field_0x3198 == PROC_PICK_PUT) { - procPickPutInit(1); - } else { - checkNextAction(0); - } - } else { - setBlendMoveAnime(-1.0f); - } - - return 1; -} - -/* 800C3098-800C30F0 0BD9D8 0058+00 1/1 0/0 0/0 .text procServiceWaitInit__9daAlink_cFv - */ -int daAlink_c::procServiceWaitInit() { - commonProcInit(PROC_SERVICE_WAIT); - setSingleAnimeBase(ANM_SERVICE_WAIT); - mNormalSpeed = 0.0f; - current.angle.y = shape_angle.y; - field_0x2f98 = 4; - return 1; -} - -/* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */ -int daAlink_c::procServiceWait() { - J3DFrameCtrl* frameCtrl_p = mUnderFrameCtrl; - if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && - (checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6)) - { - frameCtrl_p->setRate(0.0f); - procWaitInit(); - } else { - if (frameCtrl_p->checkPass(60.0f)) { - voiceStart(Z2SE_AL_V_RELAX_A); - } else if (frameCtrl_p->checkPass(150.0f)) { - voiceStart(Z2SE_AL_V_RELAX_B); - } else if (frameCtrl_p->checkPass(190.0f)) { - voiceStart(Z2SE_AL_V_RELAX_C); - } - } - return 1; -} - -/* 800C3224-800C3338 0BDB64 0114+00 2/2 0/0 0/0 .text procTiredWaitInit__9daAlink_cFv */ -int daAlink_c::procTiredWaitInit() { - BOOL no_upper_anm = checkNoSetUpperAnime(); - - if (!commonProcInitNotSameProc(PROC_TIRED_WAIT)) { - return 0; - } - - mNormalSpeed = 0.0f; - BOOL tired_anm = checkUnderMove0BckNoArc(ANM_WAIT_TIRED); - - if (no_upper_anm && - ((tired_anm && mNowAnmPackUnder[0].getRatio() < 0.75f) || - checkUnderMove1BckNoArc(ANM_STEP_TURN) || checkUnderMove1BckNoArc(ANM_SMALL_GUARD))) - { - f32 var_f31; - if (tired_anm) { - var_f31 = mUnderFrameCtrl[0].getFrame(); - } else { - var_f31 = mUpperFrameCtrl[1].getFrame(); - } - - setSingleAnimeBase(ANM_WAIT_TIRED); - mUnderFrameCtrl[0].setFrame(var_f31); - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); - } else { - setSingleAnimeBase(ANM_WAIT_TO_TIRED); - } - - return 1; -} - -/* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */ -int daAlink_c::procTiredWait() { - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - - if (!checkNextAction(0)) { - if (frameCtrl_p->checkAnmEnd()) { - setSingleAnimeBase(ANM_WAIT_TIRED); - } else if (frameCtrl_p->getAttribute() == 2) { - setTiredVoice(frameCtrl_p); - } - } - - return 1; -} - -/* 800C33B8-800C3504 0BDCF8 014C+00 26/26 0/0 0/0 .text procWaitInit__9daAlink_cFv */ -int daAlink_c::procWaitInit() { - if (mProcID == PROC_TURN_BACK) { - onEndResetFlg0(ERFLG0_UNK_8000000); - } - - if (mProcID == PROC_WAIT) { - return 0; - } - - if (!checkEventRun() && mProcID == PROC_SERVICE_WAIT && !mUnderFrameCtrl[0].checkAnmEnd() && - checkNoUpperAnime()) - { - return 0; - } - - BOOL var_r30; - if (mProcID == PROC_GUARD_ATTACK || mProcID == PROC_CUT_REVERSE) { - var_r30 = false; - } else { - var_r30 = true; - } - - commonProcInit(PROC_WAIT); - mNormalSpeed = 0.0f; - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - current.angle.y = shape_angle.y; - - if (var_r30) { - field_0x2f98 = 4; - } - - initServiceWaitTime(); - - if (checkEndResetFlg0(ERFLG0_UNK_8000000) && - (checkUnderMove0BckNoArc(ANM_WAIT) || checkUnderMove0BckNoArc(ANM_WAIT_TIRED))) - { - setSingleAnimeBase(ANM_WAIT_B_TO_A); - } - - return 1; -} - -/* 800C3504-800C36CC 0BDE44 01C8+00 1/0 0/0 0/0 .text procWait__9daAlink_cFv */ -int daAlink_c::procWait() { - BOOL anm_wait_b = checkUnderMove0BckNoArc(ANM_WAIT_B); - - if (!checkNextAction(0) && !checkFrontWallTypeAction()) { - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - field_0x33f0 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f; - - if (frameCtrl_p->checkAnmEnd() || checkUpperGuardAnime() || - !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) - { - if (checkRestHPAnime() && shape_angle.y == field_0x2fe6) { - return procTiredWaitInit(); - } - - setBlendMoveAnime(-1.0f); - if (anm_wait_b && !checkUnderMove0BckNoArc(ANM_WAIT_B)) { - setSingleAnimeBase(ANM_WAIT_B_TO_A); - } - } else if (frameCtrl_p->checkPass(30.0f)) { - field_0x2f92 = 4; - field_0x2f93 = 10; - } - - if (checkServiceWaitMode() && checkUnderMove0BckNoArc(ANM_WAIT)) { - if (field_0x30ca != 0) { - field_0x30ca--; - } - - if (field_0x30ca == 0 && frameCtrl_p->checkPass(0.0f)) { - procServiceWaitInit(); - } - } else { - initServiceWaitTime(); - } - } - - return 1; -} - -/* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */ -int daAlink_c::procMoveInit() { - if (!commonProcInitNotSameProc(PROC_MOVE)) { - return 0; - } - - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - setFootEffectProcType(3); - return 1; -} - -/* 800C3730-800C3810 0BE070 00E0+00 1/0 0/0 0/0 .text procMove__9daAlink_cFv */ -int daAlink_c::procMove() { - setFootEffectProcType(3); - if (!checkNextAction(0) && !checkFrontWallTypeAction()) { - if (mDemo.getDemoMode() == 2 && - mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate) - { - mNormalSpeed = field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate; - } - - setBlendMoveAnime(-1.0f); - if (field_0x3174 != 8) { - field_0x30a0 = - cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp, - daAlinkHIO_basic_c0::m.mNeckMaxDown); - } - } - - return 1; -} - -/* 800C3810-800C3868 0BE150 0058+00 1/1 0/0 0/0 .text procAtnMoveInit__9daAlink_cFv */ -int daAlink_c::procAtnMoveInit() { - if (!commonProcInitNotSameProc(PROC_ATN_MOVE)) { - return 0; - } - - setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - return 1; -} - -/* 800C3868-800C38CC 0BE1A8 0064+00 1/0 0/0 0/0 .text procAtnMove__9daAlink_cFv */ -int daAlink_c::procAtnMove() { - if (!checkNextAction(0)) { - if (field_0x2f98 != 0 || !checkFrontWallTypeAction()) { - setBlendAtnMoveAnime(-1.0f); - } - } - - return 1; -} - -/* 800C38CC-800C397C 0BE20C 00B0+00 4/4 0/0 0/0 .text procAtnActorWaitInit__9daAlink_cFv - */ -int daAlink_c::procAtnActorWaitInit() { - if (!commonProcInitNotSameProc(PROC_ATN_ACTOR_WAIT)) { - return 0; - } - - if (mTargetedActor != NULL) { - fopAcM_searchActorAngleY(this, mTargetedActor); - } - - mNormalSpeed = 0.0f; - if (field_0x2f98 != 2) { - field_0x2f98 = 3; - } - - if (checkAtnWaitAnime()) { - setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - } else { - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - } - - return 1; -} - -/* 800C397C-800C39EC 0BE2BC 0070+00 1/0 0/0 0/0 .text procAtnActorWait__9daAlink_cFv */ -int daAlink_c::procAtnActorWait() { - if (!checkNextAction(0)) { - if (checkAtnWaitAnime()) { - setBlendAtnMoveAnime(-1.0f); - } else { - setBlendMoveAnime(-1.0f); - } - checkSwordTwirlAction(); - } - - return 1; -} - -/* 800C39EC-800C3A44 0BE32C 0058+00 3/3 0/0 0/0 .text procAtnActorMoveInit__9daAlink_cFv - */ -int daAlink_c::procAtnActorMoveInit() { - if (!commonProcInitNotSameProc(PROC_ATN_ACTOR_MOVE)) { - return 0; - } - - setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - return 1; -} - -/* 800C3A44-800C3A94 0BE384 0050+00 1/0 0/0 0/0 .text procAtnActorMove__9daAlink_cFv */ -int daAlink_c::procAtnActorMove() { - if (!checkNextAction(0)) { - setBlendAtnMoveAnime(-1.0f); - checkSwordTwirlAction(); - } - - return 1; -} - -/* 800C3A94-800C3B1C 0BE3D4 0088+00 2/2 0/0 0/0 .text procWaitTurnInit__9daAlink_cFv */ -int daAlink_c::procWaitTurnInit() { - if (!commonProcInitNotSameProc(PROC_WAIT_TURN)) { - return 0; - } - - setSingleAnimeBaseSpeed(ANM_STEP_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, - daAlinkHIO_basic_c0::m.mAnmBlendFactor); - if (checkEventRun()) { - mNormalSpeed = 0.0f; - } - - mProcVar3.field_0x300e = field_0x2fe2; - current.angle.y = shape_angle.y; - return 1; -} - -/* 800C3B1C-800C3C3C 0BE45C 0120+00 1/0 0/0 0/0 .text procWaitTurn__9daAlink_cFv */ -int daAlink_c::procWaitTurn() { - cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration); - - if (checkGroundSpecialMode()) { - return 1; - } else if (checkEndResetFlg0(ERFLG0_UNK_100000)) { - return procFloorDownReboundInit(); - } else { - s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e, 30, 0x3CDF, 8000); - current.angle.y = shape_angle.y; - - if (checkNextActionFromButton()) { - return 1; - } else if (angle == 0) { - if (checkEventRun()) { - if (mDemo.getDemoMode() == 5) { - dComIfGp_evmng_cutEnd(field_0x3184); - } else if (!checkNextAction(0)) { - checkWaitAction(); - } - } else { - checkNextAction(0); - } - } - } - - return 1; -} - -/* 800C3C3C-800C3D38 0BE57C 00FC+00 2/2 0/0 0/0 .text procMoveTurnInit__9daAlink_cFi */ -int daAlink_c::procMoveTurnInit(int param_0) { - if (!commonProcInitNotSameProc(PROC_MOVE_TURN)) { - return 0; - } - - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - dComIfGp_setPlayerStatus0(0, 0x800); - - if (param_0 != 0) { - mProcVar3.field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle * 4) + 19030; - mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; - mProcVar1.field_0x300a = 2; - current.angle.y = field_0x2fe2; - mNormalSpeed *= 0.5f; - } else { - mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; - mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; - mProcVar1.field_0x300a = 3; - } - - mProcVar3.field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle * 2; - mProcVar4.field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; - return 1; -} - -/* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */ -int daAlink_c::procMoveTurn() { - setSpeedAndAngleNormal(); - cLib_addCalcAngleS(&shape_angle.y, current.angle.y, mProcVar1.field_0x300a, mProcVar3.field_0x300e, mProcVar4.field_0x3010); - - if (!checkNextAction(0)) { - setBlendMoveAnime(-1.0f); - } - - return 1; -} - -/* 800C3DA0-800C3F60 0BE6E0 01C0+00 2/2 0/0 0/0 .text procSideStepInit__9daAlink_cFi */ -int daAlink_c::procSideStepInit(int jump_type) { - if (jump_type == 1 && !checkHeavyStateOn(1, 1) && - (checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) - { - return procBackJumpInit(0); - } - - commonProcInit(PROC_SIDESTEP); - field_0x2f98 = jump_type; - - if (field_0x2f98 == 1) { - current.angle.y = shape_angle.y + 0x8000; - setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm); - mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH; - speed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV; - mProcVar1.field_0x300a = 0; - } else { - daAlink_ANM anm_id; - if (field_0x2f98 == 2) { - anm_id = ANM_SIDE_JUMP_LEFT; - current.angle.y = shape_angle.y + 0x4000; - } else { - anm_id = ANM_SIDE_JUMP_RIGHT; - current.angle.y = shape_angle.y - 0x4000; - } - - setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm); - mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH; - speed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV; - mProcVar1.field_0x300a = 1; - } - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; - speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; - } - - voiceStart(Z2SE_AL_V_JUMP_S); - mProcVar2.field_0x300c = 0; - mProcVar3.field_0x300e = 0; - return 1; -} - -/* 800C3F60-800C40F0 0BE8A0 0190+00 1/0 0/0 0/0 .text procSideStep__9daAlink_cFv */ -int daAlink_c::procSideStep() { - if (mTargetedActor != NULL && mProcVar1.field_0x300a != 0) { - s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); - cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); - - if (field_0x2f98 == 2) { - current.angle.y = shape_angle.y + 0x4000; - } else { - current.angle.y = shape_angle.y - 0x4000; - } - } - - if (doTrigger() && mProcVar1.field_0x300a != 0) { - mProcVar2.field_0x300c = 1; - } - - if (checkUpperItemActionFly()) { - return 1; - } else if (mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e != 0) { - if (mProcVar2.field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { - return 1; - } else { - return procSideStepLandInit(); - } - } else if (checkNoUpperAnime() && checkForceSwordSwing()) { - setCutDash(1, 0); - } else if (mDemo.getDemoMode() != 16 && - current.pos.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) - { - return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation); - } - - mProcVar3.field_0x300e = 1; - checkItemChangeFromButton(); - return 1; -} - -/* 800C40F0-800C4278 0BEA30 0188+00 1/1 0/0 0/0 .text procSideStepLandInit__9daAlink_cFv - */ -int daAlink_c::procSideStepLandInit() { - commonProcInit(PROC_SIDESTEP_LAND); - - if (field_0x2f98 == 1) { - field_0x2f9d = 4; - setSingleAnimeParam(ANM_BACK_JUMP_LAND, &daAlinkHIO_sideStep_c0::m.mBackLandAnm); - field_0x3478 = daAlinkHIO_sideStep_c0::m.mBackLandAnm.mCancelFrame; - field_0x2f98 = 2; - mProcVar1.field_0x300a = 0; - field_0x2fb0 = 0; - field_0x2fcc = 10; - } else { - daAlink_ANM anm_id; - u16 uvar3; - if (field_0x2f98 == 2) { - anm_id = ANM_SIDE_JUMP_LEFT_LAND; - uvar3 = 0x3F; - } else { - anm_id = ANM_SIDE_JUMP_RIGHT_LAND; - uvar3 = 0x40; - } - - setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideLandAnm); - field_0x3478 = daAlinkHIO_sideStep_c0::m.mSideLandAnm.mCancelFrame; - mProcVar1.field_0x300a = 1; - field_0x2fb0 = 8; - field_0x2fcc = 0; - - if (checkEnemyGroup(mTargetedActor) && mEquipItem == 0x103 && checkNoUpperAnime()) { - setUpperAnimeBaseSpeed(uvar3, daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed, -1.0f); - seStartSwordCut(Z2SE_AL_WAIT_SWORD_SWING); - } - } - - field_0x2f9d = 4; - setFootEffectProcType(2); - onResetFlg1(RFLG1_UNK_30); - mNormalSpeed = 0.0f; - mProcVar2.field_0x300c = 0; - current.angle.y = shape_angle.y; - setStepLandVibration(); - return 1; -} - -/* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */ -int daAlink_c::procSideStepLand() { - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - onEndResetFlg0(ERFLG0_UNK_8000000); - - if (field_0x2fcc != 0) { - field_0x2fcc = 10; - } - - if (doTrigger() && mProcVar1.field_0x300a != 0) { - mProcVar2.field_0x300c = 1; - } - - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 16) { - dComIfGp_evmng_cutEnd(field_0x3184); - } else { - checkNextAction(0); - } - } else if (frameCtrl_p->getFrame() > field_0x3478) { - if (mProcVar2.field_0x300c != 0 && checkSideRollAction(field_0x2f98)) { - return 1; - } - checkNextAction(1); - } - - return 1; -} - -/* 800C4378-800C4514 0BECB8 019C+00 1/1 0/0 0/0 .text procSlideInit__9daAlink_cFs */ -int daAlink_c::procSlideInit(s16 param_0) { - commonProcInit(PROC_SLIDE); - - field_0x814.SetWeight(255); - field_0x3090 = 8; - current.angle.y = param_0; - - if (getMoveBGActorName(mLinkAcch.m_gnd, FALSE) == PROC_Obj_Lv3R10Saka) { - mProcVar3.field_0x300e = 1; - } else { - mProcVar3.field_0x300e = 0; - } - - if (cLib_distanceAngleS(param_0, shape_angle.y) < 0x3800 || mProcVar3.field_0x300e != 0) { - field_0x3198 = 1; - setSingleAnimeParam(ANM_SLIDE_FORWARD, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); - dComIfGp_setPlayerStatus1(0, 0x100); - onModeFlg(MODE_UNK_8000); - onModeFlg(MODE_UNK_2000000); - onModeFlg(MODE_UNK_20000000); - mNormalSpeed = 0.0f; - field_0x2f9d = 4; - setUpperAnimeBaseMorf(0xCE, -1.0f); - onNoResetFlg1(FLG1_UNK_10000000); - setFootEffectProcType(0); - } else { - field_0x3198 = 0; - setSingleAnimeParam(ANM_SLIDE_BACKWARD, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm); - dComIfGp_setPlayerStatus1(0, 0x200); - field_0x2f9d = 0x60; - setFootEffectProcType(1); - } - - field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed; - field_0x33cc = 0.0f; - mProcVar2.field_0x300c = 0; - mProcVar4.field_0x3010 = 0; - return 1; -} - -/* 800C4514-800C47AC 0BEE54 0298+00 1/0 0/0 0/0 .text procSlide__9daAlink_cFv */ -int daAlink_c::procSlide() { - cM3dGPla slide_poly; - - if (getSlidePolygon(&slide_poly)) { - s16 angleY = slide_poly.mNormal.atan2sX_Z(); - if (field_0x3198 != 0) { - f32 sin = field_0x33a8 * cM_ssin(field_0x2fe2 - shape_angle.y); - - if (checkInputOnR()) { - mProcVar2.field_0x300c = - cLib_minMaxLimit((s16)(mProcVar2.field_0x300c + sin * 256.0f), -0x1000, 0x1000); - } else { - cLib_chaseS(&mProcVar2.field_0x300c, 0, 64); - } - - angleY += mProcVar2.field_0x300c; - cLib_addCalcAngleS(&mProcVar4.field_0x3010, sin * -4096.0f, 3, 300, 50); - } - - cLib_addCalcAngleS(¤t.angle.y, angleY, 4, 0x1000, 0x400); - - s16 shape_angleY; - if (field_0x3198 != 0) { - shape_angleY = current.angle.y; - field_0x2f9d = 4; - } else { - shape_angleY = current.angle.y + 0x8000; - field_0x2f9d = 0x60; - } - - cLib_addCalcAngleS(&shape_angle.y, shape_angleY, 4, 0x1000, 0x400); - - if (field_0x3198 == 0 || mUnderFrameCtrl[0].getFrame() > 6.0f) { - f32 accel = daAlinkHIO_slide_c0::m.mAcceleration; - f32 var_f6 = field_0x594; - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - accel *= 0.3f; - var_f6 *= 0.3f; - } - - mNormalSpeed += accel * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * - cM_scos(current.angle.y - angleY); - if (mNormalSpeed > var_f6) { - mNormalSpeed = var_f6; - } - - if (field_0x3198 != 0) { - field_0x33cc = 1.0f; - onModeFlg(0x20000000); - } - - seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); - } - } else { - procSlideLandInit(field_0x3198); - } - - return 1; -} - -/* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */ -int daAlink_c::procSlideLandInit(int param_0) { - commonProcInit(PROC_SLIDE_LAND); - - if (param_0 != 0) { - setSingleAnimeParam(ANM_SLIDE_FORWARD_END, &daAlinkHIO_slide_c0::m.mForwardLandAnm); - field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.mCancelFrame; - field_0x3198 = 1; - field_0x2f99 = 4; - field_0x3588 = l_waitBaseAnime; - } else { - setSingleAnimeParam(ANM_SLIDE_BACKWARD_END, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); - field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.mCancelFrame; - field_0x3198 = 0; - } - - field_0x814.SetWeight(255); - mNormalSpeed *= 0.5f; - return 1; -} - -/* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */ -int daAlink_c::procSlideLand() { - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - - cLib_chaseF(&mNormalSpeed, 0.0f, 4.0f); - if (field_0x3198 != 0) { - field_0x2f99 = 4; - } - - if (frameCtrl_p->checkAnmEnd()) { - current.angle.y = shape_angle.y; - checkNextAction(0); - } else if (frameCtrl_p->getFrame() > field_0x3478) { - s16 tmp_angle = current.angle.y; - current.angle.y = shape_angle.y; - - if (!checkNextAction(1)) { - current.angle.y = tmp_angle; - } - } - - return 1; -} - -/* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */ -int daAlink_c::procFrontRollInit() { - BOOL is_guard_anime = checkUpperGuardAnime(); - - if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == 0x28) { - return 0; - } - - BOOL is_dive_jump = mProcID == PROC_DIVE_JUMP; - commonProcInit(PROC_FRONT_ROLL); - - f32 roll_anm_speed = is_dive_jump ? 6.0f : daAlinkHIO_frontRoll_c0::m.mRollAnm.mStartFrame; - - setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.mSpeed, roll_anm_speed, - daAlinkHIO_frontRoll_c0::m.mRollAnm.mEndFrame, - daAlinkHIO_frontRoll_c0::m.mRollAnm.mInterpolation); - - mNormalSpeed = - speedF * daAlinkHIO_frontRoll_c0::m.mSpeedRate + daAlinkHIO_frontRoll_c0::m.mInitSpeed; - - f32 var_f30 = daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_move_c0::m.mMaxSpeed * daAlinkHIO_frontRoll_c0::m.mSpeedRate; - if (mNormalSpeed > var_f30) { - mNormalSpeed = var_f30; - } - - if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) { - mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; - } - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; - } else if (checkHeavyStateOn(1, 1)) { - mNormalSpeed *= mHeavySpeedMultiplier; - } - - current.angle.y = shape_angle.y; - voiceStart(Z2SE_AL_V_BACKTEN); - mProcVar2.field_0x300c = 0; - setFootEffectProcType(0); - - if (is_guard_anime) { - onNoResetFlg0(FLG0_UNK_2); - } - - if (checkEquipHeavyBoots()) { - field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS); - field_0xFB8.SetAtHitMark(1); - field_0xFB8.SetAtSe(9); - field_0xFB8.SetAtAtp(2); - field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE); - field_0xFB8.ResetAtHit(); - field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius); - field_0xFB8.OnAtSetBit(); - } - - return 1; -} - -/* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */ -int daAlink_c::procFrontRoll() { - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - onEndResetFlg0(ERFLG0_UNK_8000000); - - cM3dGPla poly; - if (getSlidePolygon(&poly)) { - cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); - } - - if (checkInputOnR()) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_frontRoll_c0::m.mTurnRate, - daAlinkHIO_frontRoll_c0::m.mTurnMaxAngle, - daAlinkHIO_frontRoll_c0::m.mTurnMinAngle); - shape_angle.y = current.angle.y; - } - - if (checkNoResetFlg0(FLG0_UNK_2)) { - setUpperGuardAnime(-1.0f); - } - - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x28) { - dComIfGp_evmng_cutEnd(field_0x3184); - } else { - if (!checkInputOnR()) { - mNormalSpeed -= daAlinkHIO_frontRoll_c0::m.mMinSpeed; - if (mNormalSpeed < 0.0f) { - mNormalSpeed = 0.0f; - } - } - - checkNextAction(0); - } - } else if (frameCtrl_p->getFrame() > daAlinkHIO_frontRoll_c0::m.mRollAnm.mCancelFrame) { - onModeFlg(4); - cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); - - if (checkZeroSpeedF()) { - onModeFlg(1); - } - - if (mProcVar2.field_0x300c != 0) { - procCutFinishInit(2); - } else if (!checkNextAction(1)) { - cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); - } - } else if (mDemo.getDemoMode() != 0x28 && - speedF >= daAlinkHIO_frontRoll_c0::m.mCrashSpeedThreshold && - (checkNoResetFlg0(FLG0_UNK_18) || - (mAcchCir[0].ChkWallHit() && - !dComIfG_Bgsp().GetPolyAttackThrough(mAcchCir[0])) && - dComIfG_Bgsp().GetWallCode(mAcchCir[0]) != 7 && - cLib_distanceAngleS(current.angle.y + 0x8000, - mAcchCir[0].GetWallAngleY()) <= - daAlinkHIO_frontRoll_c0::m.mCrashAngleThreshold && - frameCtrl_p->getFrame() >= daAlinkHIO_frontRoll_c0::m.mCrashInitF && - frameCtrl_p->getFrame() <= daAlinkHIO_frontRoll_c0::m.mCrashEndF)) - { - if (!checkNoResetFlg0(FLG0_UNK_18)) { - mRollCrashFlg = dKy_pol_sound_get(&mAcchCir[0]); - } - - if (checkNoResetFlg0(FLG0_UNK_10) || - (mLinkAcch.ChkWallHit() && mAcchCir[0].ChkWallHit() && - (getMoveBGActorName(mAcchCir[0], FALSE) == PROC_Obj_Pillar || - getMoveBGActorName(mAcchCir[0], FALSE) == PROC_Obj_TaFence))) - { - procFrontRollSuccessInit(); - } else { - procFrontRollCrashInit(); - } - } else { - if (frameCtrl_p->checkPass(21.0f)) { - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); - } - - if (checkForceSwordSwing()) { - mProcVar2.field_0x300c = 1; - } - - if (frameCtrl_p->getFrame() > 16.0f) { - if (frameCtrl_p->getFrame() >= 18.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; - } - - cLib_chaseF(&mNormalSpeed, 0.0f, 1.0f); - } else if (frameCtrl_p->getFrame() > 6.0f) { - field_0x2f9d = 4; - } - } - - return 1; -} - -/* 800C4F14-800C4FFC 0BF854 00E8+00 1/1 0/0 0/0 .text procFrontRollCrashInit__9daAlink_cFv */ -int daAlink_c::procFrontRollCrashInit() { - commonProcInit(PROC_FRONT_ROLL_CRASH); - setSingleAnime(ANM_ROLL_CRASH, 0.0f, - daAlinkHIO_frontRoll_c0::m.mCrashAnm.mStartFrame, - daAlinkHIO_frontRoll_c0::m.mCrashAnm.mEndFrame, - daAlinkHIO_frontRoll_c0::m.mCrashAnm.mInterpolation); - - mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashSpeedH; - speed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV; - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; - speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; - } - - current.angle.y -= -0x8000; - setFrontRollCrashShock(mRollCrashFlg); - voiceStart(Z2SE_AL_V_ZENTEN_FAIL); - onResetFlg0(RFLG0_FRONT_ROLL_CRASH); - - return 1; -} - -/* 800C4FFC-800C5160 0BF93C 0164+00 1/0 0/0 0/0 .text procFrontRollCrash__9daAlink_cFv */ -int daAlink_c::procFrontRollCrash() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (!checkModeFlg(2)) { - if (frameCtrl->checkAnmEnd()) { - checkNextAction(0); - } else if (frameCtrl->getFrame() > daAlinkHIO_frontRoll_c0::m.mCrashAnm.mCancelFrame) { - onModeFlg(4); - checkNextAction(1); - } else if (frameCtrl->getFrame() >= 18.0f) { - field_0x2f92 = 4; - } else if (frameCtrl->getFrame() >= 14.0f) { - field_0x2f93 = 10; - } - } else if ((mLinkAcch.ChkGroundHit() || checkEndResetFlg2(ERFLG2_UNK_100) || - checkMagneBootsOn()) && - checkModeFlg(2)) - { - mNormalSpeed = 0.0f; - setWaterInAnmRate(frameCtrl, daAlinkHIO_frontRoll_c0::m.mCrashAnm.mSpeed); - frameCtrl->offEndFlg(); - current.angle.y = shape_angle.y; - voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2); - offModeFlg(2); - onModeFlg(0x8001); - } - - return 1; -} - -/* 800C5160-800C5240 0BFAA0 00E0+00 3/3 0/0 0/0 .text procFrontRollSuccessInit__9daAlink_cFv */ -int daAlink_c::procFrontRollSuccessInit() { - BOOL dk_caught = mProcID == PROC_DK_CAUGHT; - - commonProcInit(PROC_FRONT_ROLL_SUCCESS); - setSingleAnimeParam(ANM_BARRIER_RECOIL, &daAlinkHIO_frontRoll_c0::m.mCrashHitAnm); - mNormalSpeed = 0.0f; - - if (!dk_caught) { - setFrontRollCrashShock(mRollCrashFlg); - onResetFlg0(RFLG0_FRONT_ROLL_CRASH); - } else { - f32 tmp_3 = 3.0f; - mUnderFrameCtrl[0].setFrame(tmp_3); - getNowAnmPackUnder(UNDER_0)->setFrame(tmp_3); - } - - field_0x3588 = l_halfAtnWaitBaseAnime; - field_0x2f99 = 4; - setFootEffectProcType(1); - current.angle.y = shape_angle.y - -0x8000; - - return 1; -} - -/* 800C5240-800C5328 0BFB80 00E8+00 1/0 0/0 0/0 .text procFrontRollSuccess__9daAlink_cFv - */ -int daAlink_c::procFrontRollSuccess() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - field_0x2f99 = 4; - onEndResetFlg0(ERFLG0_UNK_8000000); - - if (frameCtrl->checkAnmEnd()) { - current.angle.y = shape_angle.y; - checkNextAction(0); - } else if (frameCtrl->getFrame() > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.mCancelFrame) { - onModeFlg(4); - current.angle.y = shape_angle.y; - checkNextAction(1); - } else if (frameCtrl->getFrame() >= 14.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; - } else if (frameCtrl->getFrame() > 9.0f) { - field_0x2f9d = 0x60; - } - - return 1; -} - -/* 800C5328-800C5484 0BFC68 015C+00 3/3 0/0 0/0 .text procSideRollInit__9daAlink_cFi */ -int daAlink_c::procSideRollInit(int param_0) { - BOOL guard_anime = checkUpperGuardAnime(); - - if (!commonProcInitNotSameProc(PROC_SIDE_ROLL)) { - return 0; - } - - field_0x2f98 = param_0; - - daAlink_ANM anmID; - if (field_0x2f98 == 2) { - anmID = ANM_SIDE_ROLL_LEFT; - current.angle.y = shape_angle.y + 0x4000; - } else { - anmID = ANM_SIDE_ROLL_RIGHT; - current.angle.y = shape_angle.y + -0x4000; - } - - setSingleAnime(anmID, daAlinkHIO_turnMove_c0::m.mSideRollAnmSpeed, - daAlinkHIO_turnMove_c0::m.mTurnAnm.mStartFrame, - daAlinkHIO_turnMove_c0::m.mTurnAnm.mEndFrame, - daAlinkHIO_turnMove_c0::m.mTurnAnm.mInterpolation); - mNormalSpeed = daAlinkHIO_turnMove_c0::m.mSideRollSpeed; - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; - } else if (checkHeavyStateOn(1, 1)) { - mNormalSpeed *= mHeavySpeedMultiplier; - } - - setFootEffectProcType(0); - field_0x2f9d = 4; - voiceStart(Z2SE_AL_V_SOTOMO_ROLL); - - if (guard_anime) { - onNoResetFlg0(FLG0_UNK_2); - } - mProcVar2.field_0x300c = 0; - - return 1; -} - -/* 800C5484-800C5700 0BFDC4 027C+00 1/0 0/0 0/0 .text procSideRoll__9daAlink_cFv */ -int daAlink_c::procSideRoll() { - onEndResetFlg0(ERFLG0_UNK_8000000); - if (mTargetedActor != NULL) { - s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); - cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); - - if (field_0x2f98 == 2) { - current.angle.y = shape_angle.y + 0x4000; - } else { - current.angle.y = shape_angle.y - 0x4000; - } - } - - mProcVar2.field_0x300c |= checkCutFinishJumpUp(); - - daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - cM3dGPla poly; - - if (getSlidePolygon(&poly)) { - cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); - } - - if (checkNoResetFlg0(FLG0_UNK_2)) { - setUpperGuardAnime(-1.0f); - } - - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x49) { - dComIfGp_evmng_cutEnd(field_0x3184); - } else { - if (!checkAttentionLock()) { - offNoResetFlg2(FLG2_UNK_8000000); - } - - checkNextAction(0); - } - } else if (mProcVar2.field_0x300c != 0 && !checkNotJumpSinkLimit() && - frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) - { - procCutFinishJumpUpInit(); - } else if (frameCtrl_p->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) { - onModeFlg(4); - if (!checkNextAction(1)) { - cLib_chaseF(&mNormalSpeed, 0.0f, 7.5f); - } - } else { - if (frameCtrl_p->checkPass(19.0f)) { - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); - } - - if (frameCtrl_p->getFrame() < 18.0f) { - field_0x2f9d = 4; - } else { - cLib_chaseF(&mNormalSpeed, 0.0f, 0.5f); - } - } - - return 1; -} - -/* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */ -void daAlink_c::backJumpSpeedDec() { - if (mLinkAcch.ChkGroundHit()) { - if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { - f32 jump_speed; - if (dBgS_CheckBWallPoly(mLinkAcch.m_gnd)) { - jump_speed = 0.0f; - } else { - jump_speed = field_0x3478 * cM_scos(field_0x2ff0); - if (field_0x2ff0 > 0) { - jump_speed *= cM_scos(field_0x2ff0); - } - } - - if (mNormalSpeed > jump_speed) { - mNormalSpeed = jump_speed; - } - } - } -} - -/* 800C57A4-800C5964 0C00E4 01C0+00 6/6 0/0 0/0 .text procBackJumpInit__9daAlink_cFi */ -int daAlink_c::procBackJumpInit(int param_0) { - u32 horse_ride = checkHorseRide(); - BOOL guard_anime = checkUpperGuardAnime(); - BOOL ganon_finish = mProcID == PROC_GANON_FINISH; - - commonProcInit(PROC_BACK_JUMP); - - if (param_0) { - setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_cutDown_c0::m.mRecoverAnm); - mNormalSpeed = daAlinkHIO_cutDown_c0::m.mRecoverSpeedV; - speed.y = daAlinkHIO_cutDown_c0::m.mSpeedV; - voiceStart(Z2SE_AL_V_TODOME_RETURN); - } else { - setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_backJump_c0::m.mBackflipAnm); - mNormalSpeed = daAlinkHIO_backJump_c0::m.mBackflipSpeedH; - speed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV; - voiceStart(Z2SE_AL_V_BACKTEN); - } - - field_0x3478 = mNormalSpeed; - - if (horse_ride) { - onModeFlg(0x2000); - mProcVar0.field_0x3008 = 5; - } else { - mProcVar0.field_0x3008 = 0; - } - - if (ganon_finish) { - shape_angle.y -= -0x8000; - setOldRootQuaternion(0, -0x8000, 0); - field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 55.0f; - onNoResetFlg3(FLG3_UNK_4000000); - } - - current.angle.y = shape_angle.y - -0x8000; - field_0x3198 = 2; - - if (guard_anime) { - onNoResetFlg0(FLG0_UNK_2); - } - - return 1; -} - -/* 800C5964-800C5A54 0C02A4 00F0+00 1/0 0/0 0/0 .text procBackJump__9daAlink_cFv */ -int daAlink_c::procBackJump() { - if (mProcVar0.field_0x3008 != 0) { - mProcVar0.field_0x3008--; - } else { - offModeFlg(0x2000); - } - - if (checkCutTurnInput() && mEquipItem == 0x103) { - field_0x3198 = getCutTurnDirection(); - } - - backJumpSpeedDec(); - - if (mLinkAcch.ChkGroundHit() && mUnderFrameCtrl[0].checkAnmEnd()) { - procBackJumpLandInit(field_0x3198); - } else if (mDemo.getDemoMode() != 0x10 && - current.pos.y < mLastJumpPos.y - daAlinkHIO_backJump_c0::m.mFallHeight) - { - procFallInit(2, daAlinkHIO_backJump_c0::m.mFallInterpolation); - } - - checkItemChangeFromButton(); - return 1; -} - -/* 800C5A54-800C5AF0 0C0394 009C+00 1/1 0/0 0/0 .text procBackJumpLandInit__9daAlink_cFi - */ -int daAlink_c::procBackJumpLandInit(int i_cutDirection) { - commonProcInit(PROC_BACK_JUMP_LAND); - setSingleAnimeParam(ANM_BACKFLIP_LAND, &daAlinkHIO_backJump_c0::m.mLandAnm); - mNormalSpeed = 0.0f; - - field_0x2f9d = 4; - setFootEffectProcType(2); - onResetFlg1(RFLG1_UNK_30); - - field_0x3198 = i_cutDirection; - current.angle.y = shape_angle.y; - field_0x2fcc = 10; - setStepLandVibration(); - - return 1; -} - -/* 800C5AF0-800C5C28 0C0430 0138+00 1/0 0/0 0/0 .text procBackJumpLand__9daAlink_cFv */ -int daAlink_c::procBackJumpLand() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (field_0x2fcc != 0) { - field_0x2fcc = 10; - } - - onEndResetFlg0(ERFLG0_UNK_8000000); - - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x10) { - dComIfGp_getPEvtManager()->cutEnd(field_0x3184); - } else { - if (!checkAttentionLock()) { - offNoResetFlg2(FLG2_UNK_8000000); - } - checkNextAction(0); - } - } else if (frameCtrl->getFrame() > daAlinkHIO_backJump_c0::m.mLandAnm.mCancelFrame) { - if (mEquipItem == 0x103 && (field_0x3198 != 2 || checkCutTurnInput())) { - return procCutTurnInit(1, field_0x3198); - } - - checkNextAction(1); - } - - return 1; -} - -/* 800C5C28-800C5CA4 0C0568 007C+00 1/1 0/0 0/0 .text procSlipInit__9daAlink_cFv */ -int daAlink_c::procSlipInit() { - commonProcInit(PROC_SLIP); - setSingleAnimeParam(ANM_SLIP, &daAlinkHIO_move_c0::m.mSlideAnm); - mNormalSpeed = speedF * daAlinkHIO_move_c0::m.mSlideSpeed; - - field_0x2f9d = 0x40; - setFootEffectProcType(1); - mProcVar0.field_0x3008 = 5; - - return 1; -} - -/* 800C5CA4-800C5E68 0C05E4 01C4+00 1/0 0/0 0/0 .text procSlip__9daAlink_cFv */ -int daAlink_c::procSlip() { - cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mSlideDeceleration); - - if (checkZeroSpeedF()) { - if (checkInputOnR()) { - current.angle.y = shape_angle.y + 0x8000; - shape_angle.y += 0x100; - mNormalSpeed = field_0x594 * 0.5f; - procMoveTurnInit(0); - } else { - checkNextAction(0); - } - } else { - cXyz sp14; - cXyz sp8; - mProcVar0.field_0x3008--; - - if (mLinkAcch.ChkWallHit() || (field_0x3174 == 8 && mProcVar0.field_0x3008 == 0)) { - mNormalSpeed = 0.0f; - checkNextAction(0); - return 1; - } - - if (mNormalSpeed > 2.5f) { - field_0x2f9d = 0x40; - } - - sp14 = current.pos; - sp14.y += 2.5f; - - sp8.set(sp14.x + cM_ssin(current.angle.y) * 50.0f, sp14.y, - sp14.z + cM_scos(current.angle.y) * 50.0f); - if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk)) { - mNormalSpeed = 0.0f; - return checkNextAction(0); - } - - seStartMapInfoLevel(Z2SE_FN_LINK_SLIP); - } - - return 1; -} - -// TODO: Move / setup later -class ni_class : public fopAc_ac_c { -public: - bool checkGold() { return mType == 3; } - - /* 0x568 */ u8 field_0x568[0x5F0 - 0x568]; - /* 0x5F0 */ s8 mType; -}; - -/* 800C5E68-800C61EC 0C07A8 0384+00 4/4 0/0 0/0 .text procAutoJumpInit__9daAlink_cFi */ -int daAlink_c::procAutoJumpInit(int param_0) { - u32 chk_mode_400 = checkModeFlg(0x400); - BOOL not_front_roll = mProcID != PROC_FRONT_ROLL ? TRUE : FALSE; - - if (checkIronBallWaitAnime()) { - resetUpperAnime(UPPER_2, -1.0f); - deleteEquipItem(TRUE, FALSE); - } - - if (field_0x27f4 != NULL && fopAcM_GetName(field_0x27f4) == PROC_CANOE) { - return procSmallJumpInit(1); - } - - if (!commonProcInitNotSameProc(PROC_AUTO_JUMP)) { - return 0; - } - - mProcVar0.field_0x3008 = 0; - - if (chk_mode_400 || (mDemo.getDemoMode() == 0x18 && mDemo.getParam0() == 1)) { - if (chk_mode_400) { - onModeFlg(0x2000); - mProcVar0.field_0x3008 = 5; - } - - setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, - daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); - field_0x3198 = 0x33; - current.angle.y = shape_angle.y + 0x8000; - } else { - setSingleAnimeParam(ANM_JUMP_START, &daAlinkHIO_autoJump_c0::m.mJumpAnm); - if (!not_front_roll) { - field_0x2060->initOldFrameMorf(0.0f, 0, 35); - } - - field_0x3198 = 0x31; - current.angle.y = shape_angle.y; - } - - s16 grab_actor_name; - if (mGrabItemAcKeep.getActor() != NULL) { - grab_actor_name = fopAcM_GetName(mGrabItemAcKeep.getActor()); - } else { - grab_actor_name = PROC_ALINK; - } - - s16 angle = daAlinkHIO_autoJump_c0::m.mJumpAngle; - BOOL cucco_jump = false; - field_0x3478 = -10.0f; - if (grab_actor_name == PROC_NI || grab_actor_name == PROC_NPC_TKJ2) { - if (grab_actor_name == PROC_NI && - ((ni_class*)mGrabItemAcKeep.getActor())->checkGold() == true) - { - field_0x594 = 30.0f; - } else { - if (checkStageName("F_SP115")) { - field_0x594 = 27.0f; - field_0x3478 = -10.0f; - } else { - field_0x594 = daAlinkHIO_autoJump_c0::m.mCuccoJumpMaxSpeed; - field_0x3478 = daAlinkHIO_autoJump_c0::m.mCuccoFallMaxSpeed; - } - - angle = daAlinkHIO_autoJump_c0::m.mCuccoJumpAngle; - cucco_jump = true; - } - } else { - field_0x594 = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed; - } - - if (checkGrabGlide()) { - offModeFlg(4); - } - - if (chk_mode_400) { - speedF = field_0x594 * 0.75f; - } else { - if (speedF > field_0x594 || param_0 || - daAlinkHIO_autoJump_c0::m.mAlwaysMaxSpeedJump == true) - { - speedF = field_0x594; - } else if (speedF < daAlinkHIO_autoJump_c0::m.mMinJumpSpeed) { - speedF = daAlinkHIO_autoJump_c0::m.mMinJumpSpeed; - } - } - - mNormalSpeed = speedF * daAlinkHIO_autoJump_c0::m.mJumpSpeedRate; - speed.y = mNormalSpeed * cM_ssin(angle); - mNormalSpeed *= cM_scos(angle); - - if (cucco_jump) { - mNormalSpeed = daAlinkHIO_autoJump_c0::m.mCuccoStartSpeed; - } - - field_0x3588 = l_waitBaseAnime; - voiceStart(Z2SE_AL_V_JUMP_L); - - offNoResetFlg0(FLG0_UNK_40000); - mProcVar2.field_0x300c = 0; - onResetFlg0(RFLG0_UNK_100); - mFallVoiceInit = false; - return 1; -} - -/* 800C61EC-800C66DC 0C0B2C 04F0+00 1/0 0/0 0/0 .text procAutoJump__9daAlink_cFv */ -int daAlink_c::procAutoJump() { - int direction = getDirectionFromCurrentAngle(); - - if (checkInputOnR() && direction == DIR_BACKWARD) { - cLib_chaseF(&mNormalSpeed, 0.0f, field_0x33a8 * 0.2f); - } else if (checkGrabGlide()) { - cLib_chaseF(&mNormalSpeed, field_0x594, 0.1f); - } else if (!checkInputOnR()) { - cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); - } - - if (mProcVar0.field_0x3008 != 0) { - mProcVar0.field_0x3008--; - } else { - offModeFlg(0x2000); - } - - setLandPassiveData(); - - if (!checkModeFlg(4) && checkSetItemTrigger(fpcNm_ITEM_HVY_BOOTS)) { - setHeavyBoots(1); - } - - if (checkUpperItemActionFly()) { - return 1; - } - - if (mLinkAcch.ChkGroundHit()) { - return checkLandAction(0); - } - - if (!checkGrabAnime()) { - dCcD_Cyl* cyl_p = field_0x850; - for (int i = 0; i < 3; i++) { - fopAc_ac_c* hit_ac = cyl_p->GetCoHitAc(); - if (cyl_p->ChkCoHit() && hit_ac != NULL) { - if (fopAcM_GetName(hit_ac) == PROC_Obj_SwHang) { - return procRoofSwitchHangInit(hit_ac); - } - } - - cyl_p++; - } - - if (checkFrontWallTypeAction() || checkCutJumpInFly()) { - return 1; - } - } - - if (field_0x3198 == 0x31 || field_0x3198 == 0x32) { - field_0x2f99 = 4; - } - - if (mProcVar2.field_0x300c != 0) { - setDoStatus(1); - - if (doTrigger()) { - freeGrabItem(); - onModeFlg(4); - } - - if (!checkGrabGlide()) { - setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, - daAlinkHIO_autoJump_c0::m.mMaxFallSpeed, 1); - mProcVar2.field_0x300c = 0; - resetUpperAnime(UPPER_1, 3.0f); - field_0x30a0 = 0; - onModeFlg(4); - } else { - field_0x30a0 = 0x1800; - - if (!checkBootsOrArmorHeavy()) { - mFallHeight = current.pos.y; - setSpecialGravity(-1.0f, field_0x3478, 0); - } else { - setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, - daAlinkHIO_autoJump_c0::m.mMaxFallSpeed * 0.66f, 0); - } - - s16 diff; - if (checkInputOnR() && direction != DIR_BACKWARD) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 5, 200, 50); - diff = current.angle.y - shape_angle.y; - shape_angle.y = current.angle.y; - } else { - diff = 0; - } - - cLib_addCalcAngleS(&field_0x3082, -diff * 7, 10, 1000, 50); - cLib_addCalcAngleS(&field_0x308a, -diff * 12, 10, 1000, 50); - } - } - - setFallVoice(); - - f32 temp_f1 = (mFallHeight - current.pos.y) * 0.01f; - if (field_0x3198 != 0x8C && temp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) { - setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f, daAlinkHIO_damFall_c0::m.mFallAnmMorf); - field_0x3198 = 0x8C; - } else if (speed.y < -gravity && field_0x2f99 == 4) { - if (checkGrabGlide()) { - setSpecialGravity(-1.0f, field_0x3478, 0); - mProcVar2.field_0x300c = 1; - } - - setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, - daAlinkHIO_autoJump_c0::m.mJumpFallInterpolation); - - if (mProcVar2.field_0x300c != 0) { - setUpperAnime(0x276, UPPER_1, 1.0f, 0.0f, -1, 3.0f); - } - - field_0x2f99 = 0x20; - field_0x3198 = 0x33; - } else if (field_0x3198 == 0x31 && mUnderFrameCtrl[0].checkAnmEnd()) { - setSingleAnimeBaseSpeed(ANM_JUMP, 0.0f, daAlinkHIO_autoJump_c0::m.mAirborneInterpolation); - field_0x3198 = 0x32; - } - - if (checkGrabGlide() && mWindSpeed.y > 0.0f) { - speed.y = 0.0f; - } - - checkItemChangeFromButton(); - - return 1; -} - -/* 800C66DC-800C6798 0C101C 00BC+00 1/1 0/0 0/0 .text procDiveJumpInit__9daAlink_cFv */ -int daAlink_c::procDiveJumpInit() { - commonProcInit(PROC_DIVE_JUMP); - setSingleAnimeParam(ANM_DIVE_START, &daAlinkHIO_autoJump_c0::m.mDiveAnm); - deleteEquipItem(TRUE, TRUE); - setHeavyBoots(0); - - speed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV; - mNormalSpeed = daAlinkHIO_autoJump_c0::m.mDiveSpeedH; - gravity = daAlinkHIO_autoJump_c0::m.mDiveGravity; - - mProcVar2.field_0x300c = 0; - current.angle.y = shape_angle.y; - field_0x33b0 = 92.0f; - - voiceStart(Z2SE_AL_V_JUMP_DIVING); - return 1; -} - -/* 800C6798-800C6850 0C10D8 00B8+00 1/0 0/0 0/0 .text procDiveJump__9daAlink_cFv */ -int daAlink_c::procDiveJump() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (mLinkAcch.ChkGroundHit()) { - return procFrontRollInit(); - } - - if (mProcVar2.field_0x300c == 0) { - if (frameCtrl->checkAnmEnd()) { - setSingleAnimeParam(ANM_DIVE, &daAlinkHIO_autoJump_c0::m.mDiveConnectAnm); - mProcVar2.field_0x300c = 1; - field_0x2f99 = 2; - } - } else { - field_0x2f99 = 2; - - if (frameCtrl->getFrame() >= 3.0f) { - cLib_chaseF(&mNormalSpeed, 0.0f, 0.5f); - } - } - - return 1; -} - -/* 800C6850-800C692C 0C1190 00DC+00 1/1 0/0 0/0 .text procRollJumpInit__9daAlink_cFv */ -int daAlink_c::procRollJumpInit() { - commonProcInit(PROC_ROLL_JUMP); - setSingleAnimeBaseSpeed(ANM_ROLL_JUMP, 0.0f, - daAlinkHIO_autoJump_c0::m.mSpinJumpInterpolation); - - field_0x3478 = field_0x3410; - mNormalSpeed = field_0x3410; - speed.y = field_0x3414; - - field_0x2fe6 = field_0x30ee; - shape_angle.y = field_0x30ee; - current.angle.y = shape_angle.y; - - mLinkAcch.ClrGroundHit(); - field_0x347c = 0.0f; - shape_angle.x = 1; - - voiceStart(Z2SE_AL_V_GORONJUMP); - seStartOnlyReverb(Z2SE_AL_GORON_JUMP_START); - mProcVar2.field_0x300c = 1; - - return 1; -} - -/* 800C692C-800C6A48 0C126C 011C+00 1/0 0/0 0/0 .text procRollJump__9daAlink_cFv */ -int daAlink_c::procRollJump() { - if (mLinkAcch.ChkGroundHit()) { - return checkLandAction(0); - } - - if (speed.y < 0.0f) { - procFallInit(3, daAlinkHIO_autoJump_c0::m.mSpinJumpFallInterpolation); - } else { - s16 old_angle = shape_angle.x; - shape_angle.x += daAlinkHIO_autoJump_c0::m.mSpinJumpRotateSpeed; - - if (shape_angle.x * old_angle <= 0) { - if (mProcVar2.field_0x300c != 0) { - seStartOnlyReverb(Z2SE_AL_GORON_JUMP_ROLLING); - mProcVar2.field_0x300c = 0; - } else { - mProcVar2.field_0x300c = 1; - } - } - - cLib_chaseF(&field_0x347c, - field_0x33a8 * cM_scos(field_0x2fe2 - shape_angle.y) * - daAlinkHIO_autoJump_c0::m.mSpinJumpAddSpeed, - daAlinkHIO_autoJump_c0::m.mSpinJumpAccel); - mNormalSpeed = field_0x3478 + field_0x347c; - } - - return 1; -} - -#include "d/d_com_inf_game.h" - -/* 800C6A48-800C6D20 0C1388 02D8+00 30/30 0/0 0/0 .text procFallInit__9daAlink_cFif */ -int daAlink_c::procFallInit(int param_0, f32 param_1) { - if (mDemo.getDemoMode() == 0x11) { - mLinkAcch.SetGrndNone(); - mLinkAcch.OnLineCheckNone(); - } - - u32 var_r3 = checkModeFlg(0x10000) && !dComIfGp_checkPlayerStatus0(0, 8); - u8 temp_r30 = mProcID != PROC_CANOE_GETOFF; - BOOL temp_r29 = mProcID == PROC_ROOF_HANG_FRONT_MOVE; - - if (mProcID == PROC_HORSE_GETOFF) { - horseGetOffEnd(); - } - - if (!commonProcInitNotSameProc(PROC_FALL)) { - return 0; - } - - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); - } - - mProcVar5.field_0x3012 = 0; - - if (param_0 == 1) { - mNormalSpeed = 0.0f; - speed.y = 0.0f; - current.angle.y = shape_angle.y; - - if (var_r3) { - current.pos.x += cM_ssin(shape_angle.y) * 5.0f; - current.pos.z += cM_scos(shape_angle.y) * 5.0f; - } - } else if (param_0 == 4) { - current.angle.y = field_0x2ffe; - dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); - setDamagePoint(field_0x318c, FALSE, TRUE, 0); - - onNoResetFlg1(FLG1_THROW_DAMAGE); - if (mDamageTimer != 0) { - onModeFlg(8); - } - - mNormalSpeed = field_0x3408; - speed.y = field_0x340c; - mProcVar5.field_0x3012 = 1; - } - - mProcVar4.field_0x3010 = temp_r30; - setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, param_1); - resetBasAnime(); - - if (param_0 != 4 && current.angle.y == shape_angle.y && !checkGrabAnime()) { - if (mNormalSpeed > 1.0f) { - mProcVar0.field_0x3008 = 2; - } else { - mProcVar0.field_0x3008 = 1; - } - } else { - mProcVar0.field_0x3008 = 0; - } - - if (temp_r29) { - mProcVar1.field_0x300a = 2; - field_0x32cc = 1; - } else { - mProcVar1.field_0x300a = 7; - field_0x32cc = 0; - } - - mProcVar2.field_0x300c = 0; - mProcVar3.field_0x300e = param_0 == 3; - offNoResetFlg0(FLG0_UNK_40000); - mFallVoiceInit = 0; - return 1; -} - -/* 800C6D20-800C6F18 0C1660 01F8+00 1/0 0/0 0/0 .text procFall__9daAlink_cFv */ -int daAlink_c::procFall() { - if (mProcVar5.field_0x3012 == 0) { - cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); - } else if (mProcVar5.field_0x3012 > 0) { - mProcVar5.field_0x3012 = -1; - return 1; - } - - setLandPassiveData(); - if (checkUpperItemActionFly()) { - return 1; - } - - if (mLinkAcch.ChkGroundHit()) { - return checkLandAction(mProcVar3.field_0x300e); - } - - if (dComIfGs_getLife() != 0) { - if (mProcVar0.field_0x3008 == 1) { - if (mProcVar1.field_0x300a > 0) { - mProcVar1.field_0x300a--; - } else { - setFrontWallType(); - - if ((field_0x32cc != 0 || - ((checkInputOnR() && getDirectionFromShapeAngle() == 0) || doTrigger())) && - checkFrontWallTypeAction()) - { - return 1; - } - } - } else if (mProcVar0.field_0x3008 == 2 && checkFrontWallTypeAction()) { - return 1; - } - - setFallVoice(); - - f32 tmp_f1 = (mFallHeight - current.pos.y) * 0.0099999998f; - if (mProcVar2.field_0x300c == 0 && tmp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) { - setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f, - daAlinkHIO_damFall_c0::m.mFallAnmMorf); - mProcVar2.field_0x300c = 1; - } - - if (current.angle.y == shape_angle.y && checkCutJumpInFly()) { - return 1; - } - } - - if (dComIfGs_getLife() != 0) { - checkItemChangeFromButton(); - } - - return 1; -} - -/* 800C6F18-800C6FE4 0C1858 00CC+00 6/6 0/0 0/0 .text procLandInit__9daAlink_cFf */ -int daAlink_c::procLandInit(f32 param_0) { - commonProcInit(PROC_LAND); - mNormalSpeed = 0.0f; - - setSingleAnimeParam(ANM_JUMP_LAND, &daAlinkHIO_autoJump_c0::m.mLandAnm); - - if (checkGrabGlide()) { - mUnderFrameCtrl[0].setRate(0.5f); - } else if (checkNoResetFlg0(FLG0_UNDERWATER)) { - f32 rate = mUnderFrameCtrl[0].getRate() * 0.34999999f; - mUnderFrameCtrl[0].setRate(rate); - } - - field_0x2f9d = 4; - setFootEffectProcType(4); - - onResetFlg1(RFLG1_UNK_30); - current.angle.y = shape_angle.y; - field_0x3478 = param_0; - - return 1; -} - -/* 800C6FE4-800C70F8 0C1924 0114+00 1/0 0/0 0/0 .text procLand__9daAlink_cFv */ -int daAlink_c::procLand() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (frameCtrl->checkAnmEnd()) { - checkNextAction(0); - } else if (frameCtrl->getFrame() > daAlinkHIO_autoJump_c0::m.mLandAnm.mCancelFrame) { - checkNextAction(1); - } else if (frameCtrl->checkPass(4.0f)) { - int var_r4; - if (checkBootsOrArmorHeavy()) { - var_r4 = 3; - } else if (checkNoResetFlg0(FLG0_UNDERWATER) || - field_0x3478 < daAlinkHIO_damFall_c0::m.mMinRollHeight) - { - var_r4 = 1; - } else { - var_r4 = 2; - } - - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(var_r4, 15, cXyz(tmp_0, 1.0f, tmp_0)); - } - - return 1; -} - -/* 800C70F8-800C72D4 0C1A38 01DC+00 3/3 0/0 0/0 .text procSmallJumpInit__9daAlink_cFi */ -int daAlink_c::procSmallJumpInit(int param_0) { - commonProcInit(PROC_SMALL_JUMP); - - if (param_0 == 2) { - setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, - daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, - daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation); - setJumpMode(); - speed.y = 24.0f; - voiceStart(Z2SE_AL_V_JUMP_S); - field_0x2f99 = 15; - field_0x33b0 = field_0x3588.y; - field_0x34d4 = l_waitBaseAnime; - } else { - setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm); - - if (param_0 == 1) { - field_0x3478 = field_0x27f4->current.pos.y + 20.0f; - if (field_0x3478 < current.pos.y + 30.0f) { - field_0x3478 = current.pos.y + 30.0f; - } - - daCanoe_c* canoe_p = (daCanoe_c*)field_0x27f4; - cXyz sp8(canoe_p->current.pos); - if (canoe_p->checkTandem()) { - sp8.x += cM_ssin(canoe_p->shape_angle.y) * 175.0f; - sp8.z += cM_scos(canoe_p->shape_angle.y) * 175.0f; - } - - mProcVar2.field_0x300c = cLib_targetAngleY(¤t.pos, &sp8); - mProcVar3.field_0x300e = 1; - setHeavyBoots(0); - } else { - field_0x3478 = field_0x34ec.y; - mProcVar3.field_0x300e = 0; - } - } - - mNormalSpeed = 0.0f; - field_0x33b0 = l_waitBaseAnime.y; - field_0x3588 = l_waitBaseAnime; - return 1; -} - -/* 800C72D4-800C74D4 0C1C14 0200+00 1/0 0/0 0/0 .text procSmallJump__9daAlink_cFv */ -// NONMATCHING - one out of order block with sqrt -int daAlink_c::procSmallJump() { - if (checkModeFlg(2)) { - if (checkCanoeJumpRide()) { - return 1; - } - - if (mLinkAcch.ChkGroundHit()) { - checkLandAction(0); - } else if (speed.y < -gravity) { - procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation); - } else { - field_0x2f99 = 7; - } - } else if (mUnderFrameCtrl[0].checkPass(6.0f)) { - setJumpMode(); - mNormalSpeed = daAlinkHIO_smallJump_c0::m.mSpeedH; - - if (checkHeavyStateOn(1, 1) && !checkNoResetFlg0(FLG0_UNDERWATER)) { - speed.y = JMAFastSqrt(2.0f * ((daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + - (field_0x3478 - current.pos.y)) * - -(gravity * 2.25f))); - } else { - speed.y = - JMAFastSqrt(2.0f * (-gravity * (daAlinkHIO_smallJump_c0::m.mTargetHeightOffset + - (field_0x3478 - current.pos.y)))); - } - - voiceStart(Z2SE_AL_V_JUMP_S); - field_0x2f99 = 7; - - if (mProcVar3.field_0x300e != 0) { - shape_angle.y = mProcVar2.field_0x300c; - current.angle.y = shape_angle.y; - } - } else if (mProcVar3.field_0x300e != 0) { - cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 3, 0x1000, 0x400); - current.angle.y = shape_angle.y; - } - - return 1; -} - -/* 800C74D4-800C755C 0C1E14 0088+00 1/1 0/0 0/0 .text procStepMoveInit__9daAlink_cFv */ -int daAlink_c::procStepMoveInit() { - commonProcInit(PROC_STEP_MOVE); - setSingleAnimeParam(ANM_S_JUMP_START, &daAlinkHIO_smallJump_c0::m.mStepClimbAnm); - field_0x3478 = 0.5f * mNormalSpeed; - mNormalSpeed = 0.0f; - - mProcVar2.field_0x300c = 0; - field_0x3588 = l_waitBaseAnime; - - return 1; -} - -/* 800C755C-800C7690 0C1E9C 0134+00 1/0 0/0 0/0 .text procStepMove__9daAlink_cFv */ -int daAlink_c::procStepMove() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (mProcVar2.field_0x300c != 0) { - field_0x2f99 = 4; - - if (frameCtrl->checkAnmEnd()) { - return checkNextAction(0); - } - - if (frameCtrl->getFrame() > daAlinkHIO_smallJump_c0::m.mStepLandAnm.mCancelFrame) { - mNormalSpeed = field_0x3478; - - if (checkNextAction(1)) { - return 1; - } - - mNormalSpeed = 0.0f; - } - } else if (frameCtrl->checkAnmEnd()) { - setSingleAnimeParam(ANM_S_JUMP_END, &daAlinkHIO_smallJump_c0::m.mStepLandAnm); - current.pos.set(field_0x34ec.x + cM_ssin(shape_angle.y) * 2.0f, field_0x34ec.y, - field_0x34ec.z + cM_scos(shape_angle.y) * 2.0f); - field_0x2f99 = 80; - mProcVar2.field_0x300c = 1; - } - - return 1; -} - -/* 800C7690-800C76F8 0C1FD0 0068+00 1/0 0/0 0/0 .text procCrouchInit__9daAlink_cFv */ -int daAlink_c::procCrouchInit() { - if (!commonProcInitNotSameProc(PROC_CROUCH)) { - return 0; - } - - setSingleAnimeBaseSpeed(ANM_CROUCH, daAlinkHIO_crouch_c0::m.mCrouchAnmSpeed, - daAlinkHIO_crouch_c0::m.mCrouchInterpolation); - current.angle.y = shape_angle.y; - return 1; -} - -/* 800C76F8-800C77F4 0C2038 00FC+00 1/0 0/0 0/0 .text procCrouch__9daAlink_cFv */ -int daAlink_c::procCrouch() { - cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration); - - if (checkAttentionState()) { - setFaceBasicBck(0xE8); - } else { - setFaceBasicBck(0); - } - - if (mDemo.getDemoMode() != 0x29 && - (mSinkShapeOffset <= -80.0f || (checkAttentionLock() && checkGuardAccept()))) - { - checkNextActionFromCrouch(0); - } - - return 1; -} - -/* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */ -int daAlink_c::procCoMetamorphoseInit() { - int var_r29 = 0; - - if (dComIfGp_getEvent().isOrderOK()) { - if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { - return 0; - } - mDemo.setSpecialDemoType(); - mDamageTimer = 0; - var_r29 = 1; - } - - if (!commonProcInitNotSameProc(PROC_METAMORPHOSE)) { - return 1; - } - - field_0x3198 = var_r29; - mProcVar0.field_0x3008 = 0; - mProcVar3.field_0x300e = 0; - mProcVar4.field_0x3010 = 0; - field_0x347c = 1.0f; - mFallVoiceInit = 0; - - if ((checkWolf() && mDemo.getDemoMode() == 0x39) || - (!checkWolf() && mDemo.getDemoMode() == 0x3A)) - { - mProcVar1.field_0x300a = 1; - speed.y = 0.0f; - mNormalSpeed = 0.0f; - - if (checkWolf()) { - mProcVar2.field_0x300c = shape_angle.x; - } - } else { - deleteEquipItem(FALSE, TRUE); - - if (checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) { - mProcVar4.field_0x3010 = 1; - } - mProcVar1.field_0x300a = 0; - - if (checkWolf()) { - // Transform Wolf -> Human - setSingleAnimeWolfBase(WANM_TRANSFORM_TO_HUMAN); - field_0x3588 = l_wolfBaseAnime; - field_0x347c = 0.5f; - field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed; - mProcVar2.field_0x300c = shape_angle.x; - - daMidna_c* midna = (daMidna_c*)getMidnaActor(); - if (checkMidnaRide() && daMidna_c::checkMidnaRealBody() && midna->checkDemoTypeNone()) - { - midna->changeOriginalDemo(); - midna->changeDemoMode(15); - } - } else { - // Transform Human -> Wolf - if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) { - voiceStart(Z2SE_AL_V_TRANSFORM); - } - - setSingleAnimeBase(ANM_TRANSFORM_TO_WOLF); - setMetamorphoseModel(1); - field_0x3588 = l_waitBaseAnime; - field_0x3480 = daAlinkHIO_basic_c0::m.mLinkWolfTransformSpeed; - - cXyz pos(current.pos.x + (cM_ssin(shape_angle.y) * 100.0f), current.pos.y + 300.0f, - current.pos.z + (cM_scos(shape_angle.y) * 100.0f)); - mLinkGndChk.SetPos(&pos); - - f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - if (gnd_cross != -1000000000.0f) { - pos.y = gnd_cross; - - cXyz sp14 = current.pos; - cXyz sp8 = pos; - - BOOL var_r28 = false; - for (int i = 0; i < 4; i++) { - if (i == 3) { - sp14.y = gnd_cross + 5.0f; - } else { - sp14.y = current.pos.y + mAcchCir[i].GetWallH(); - } - sp8.y = sp14.y; - - if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk) && - dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) - { - var_r28 = true; - break; - } - } - - if (var_r28) { - mProcVar2.field_0x300c = field_0x2ff0; - } else { - pos -= current.pos; - mProcVar2.field_0x300c = pos.atan2sY_XZ(); - - if (abs(mProcVar2.field_0x300c) > cM_deg2s(70.0f)) { - mProcVar2.field_0x300c = field_0x2ff0; - } - } - } else { - mProcVar2.field_0x300c = 0; - } - } - speed.y = 0.0f; - mNormalSpeed = 0.0f; - mProcVar5.field_0x3012 = 0; - } - - field_0x3484 = current.pos.y; - return 1; -} - -/* 800C7C64-800C82E8 0C25A4 0684+00 1/0 0/0 0/0 .text procCoMetamorphose__9daAlink_cFv */ -int daAlink_c::procCoMetamorphose() { - if (mProcVar1.field_0x300a != 0) { - if (!checkEventRun()) { - checkWaitAction(); - } else { - dComIfGp_evmng_cutEnd(field_0x3184); - } - return 1; - } - - daPy_frameCtrl_c* temp_r29 = mUnderFrameCtrl; - if (!mLinkAcch.ChkGroundHit()) { - current.pos.y = field_0x3484; - speed.y = 0.0f; - } else { - field_0x3484 = current.pos.y; - } - - field_0x2f99 = 4; - - if (mProcVar0.field_0x3008 != 0 && mProcVar5.field_0x3012 == 0) { - if (mClothesChangeWaitTimer == 0) { - mProcVar5.field_0x3012 = 1; - - if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) { - dComIfGp_evmng_cutEnd(field_0x3184); - - if (checkWolf()) { - setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f); - } else { - setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); - } - - field_0x2f99 = 0xC; - mProcVar1.field_0x300a = 1; - return 1; - } - - Vec sp8 = {0.0f, 0.0f, 0.0f}; - sp8.z = l_wolfBaseAnime.z - l_waitBaseAnime.z; - - if (!checkWolf()) { - setSingleAnimeBaseMorf(ANM_TRANSFORM_TO_HUMAN, -1.0f); - setMetamorphoseModel(0); - field_0x3588 = l_waitBaseAnime; - } else { - setSingleAnimeWolfBaseMorf(WANM_TRANSFORM_TO_WOLF, -1.0f); - field_0x3588 = l_wolfBaseAnime; - sp8.z *= -1.0f; - offModeFlg(0x8000); - } - - mDoMtx_stack_c::transS(current.pos); - mDoMtx_stack_c::ZXYrotM(shape_angle); - mDoMtx_stack_c::multVec(&sp8, ¤t.pos); - - field_0x2f99 = 0xC; - if (mDemo.getDemoType() == 3) { - mFallVoiceInit = 1; - } - - } - } else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar5.field_0x3012 != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) { - if (mProcVar5.field_0x3012 != 0) { - deleteEquipItem(0, 0); - - if (field_0x3198 != 0) { - resetSpecialEvent(); - return checkWaitAction(); - } - - dComIfGp_evmng_cutEnd(field_0x3184); - - if (checkWolf()) { - setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, -1.0f); - } else { - setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); - } - - field_0x2f99 = 0xC; - mProcVar1.field_0x300a = 1; - return 1; - } - - mClothesChangeWaitTimer = 4; - mpWlMidnaModel = NULL; - mProcVar0.field_0x3008 = 1; - - if (mProcVar4.field_0x3010 != 0) { - dComIfGs_onEventBit(0x5E40); - } - } - - field_0x33dc = temp_r29->getFrame(); - - if (mProcVar5.field_0x3012 != 0) { - if (checkWolf()) { - f32 var_f31 = 1.0f - (0.03846154f * field_0x33dc); - if (var_f31 < 0.0f) { - var_f31 = 0.0f; - } - - mProcVar3.field_0x300e = -64.0f * var_f31; - } else if (field_0x33dc < 14.0f) { - mProcVar3.field_0x300e = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc))); - } else { - f32 var_f31_2 = 1.0f - (0.2f * (field_0x33dc - 14.0f)); - if (var_f31_2 < 0.0f) { - var_f31_2 = 0.0f; - } - - mProcVar3.field_0x300e = 15.0f * var_f31_2; - } - } else if (checkWolf() != 0) { - mProcVar3.field_0x300e = -64.0 * (0.07142857142857142 * field_0x33dc); - } else if (field_0x33dc < 9.0f) { - mProcVar3.field_0x300e = -15.0 * (0.1111111111111111 * field_0x33dc); - } else { - f32 var_f31_3 = 0.2f * (field_0x33dc - 9.0f); - if (var_f31_3 > 1.0f) { - var_f31_3 = 1.0f; - } - - mProcVar3.field_0x300e = -(15.0f + (49.0f * var_f31_3)); - } - - if (!checkWolf()) { - f32 var_f30; - if (mProcVar5.field_0x3012 != 0) { - var_f30 = (field_0x33dc - 13.0f) / 4.0f; - } else { - var_f30 = (field_0x33dc - 8.0f) / 5.0f; - } - - var_f30 = cLib_minMaxLimit(var_f30, 0.0f, 1.0f); - - if (mProcVar5.field_0x3012 != 0) { - field_0x347c = 0.5f + (0.027777778f * field_0x33dc); - var_f30 = 1.0f - var_f30; - } else { - field_0x347c = 1.0f - (0.033333335f * (field_0x33dc - 9.0f)); - if (var_f30 > 0.0f) { - swimBgCheck(150.0f * var_f30); - } - } - - if (field_0x347c > 1.0f) { - field_0x347c = 1.0f; - } - - shape_angle.x = var_f30 * mProcVar2.field_0x300c; - } - - return 1; -} - -/* 800C82E8-800C83A0 0C2C28 00B8+00 2/0 0/0 0/0 .text procCoMetamorphoseOnlyInit__9daAlink_cFv */ -int daAlink_c::procCoMetamorphoseOnlyInit() { - if (!commonProcInitNotSameProc(PROC_METAMORPHOSE_ONLY)) { - return 1; - } - - deleteEquipItem(0, 1); - if ((checkWolf() && mDemo.getDemoMode() == 0x46) || - (!checkWolf() && mDemo.getDemoMode() == 0x47)) - { - mProcVar2.field_0x300c = 1; - mProcVar3.field_0x300e = 1; - } else { - mProcVar2.field_0x300c = 0; - mProcVar3.field_0x300e = 0; - } - - mNormalSpeed = 0.0f; - speed.y = 0.0f; - setSpecialGravity(0.0f, maxFallSpeed, 0); - - return 1; -} - -/* 800C83A0-800C8460 0C2CE0 00C0+00 1/0 0/0 0/0 .text procCoMetamorphoseOnly__9daAlink_cFv */ -int daAlink_c::procCoMetamorphoseOnly() { - if (mProcVar2.field_0x300c == 0) { - mClothesChangeWaitTimer = 4; - mProcVar2.field_0x300c = 1; - } else if (mClothesChangeWaitTimer == 0) { - if (mProcVar3.field_0x300e == 0) { - mProcVar3.field_0x300e = 1; - - if (checkWolf()) { - setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, - -1.0f); - } else { - setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, -1.0f); - } - } - - dComIfGp_evmng_cutEnd(field_0x3184); - } - - return 1; -} - -/* 800C8460-800C84D0 0C2DA0 0070+00 2/2 0/0 0/0 .text procFloorDownReboundInit__9daAlink_cFv */ -int daAlink_c::procFloorDownReboundInit() { - commonProcInit(PROC_FLOOR_DOWN_REBOUND); - setSingleAnime(ANM_JUMP_LAND, 0.69999999f, daAlinkHIO_autoJump_c0::m.mLandAnm.mStartFrame, - daAlinkHIO_autoJump_c0::m.mLandAnm.mEndFrame, 10.0f); - mNormalSpeed = 0.0f; - current.angle.y = shape_angle.y; - field_0x2f98 = 4; - - return 1; -} - -/* 800C84D0-800C854C 0C2E10 007C+00 1/0 0/0 0/0 .text procFloorDownRebound__9daAlink_cFv - */ -int daAlink_c::procFloorDownRebound() { - daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - - if (frameCtrl->checkAnmEnd()) { - checkNextAction(0); - } else if (frameCtrl->getFrame() > daAlinkHIO_autoJump_c0::m.mLandAnm.mCancelFrame) { - checkNextAction(1); - } - - return 1; -} - -/* 800C854C-800C85D8 0C2E8C 008C+00 1/1 0/0 0/0 .text - * procGoronRideWaitInit__9daAlink_cFP10fopAc_ac_c */ -int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* param_0) { - if (!commonProcInitNotSameProc(PROC_GORON_RIDE_WAIT)) { - return 0; - } - - mNormalSpeed = 0.0f; - current.pos.x = param_0->current.pos.x; - current.pos.z = param_0->current.pos.z; - field_0x2f99 = 0x50; - current.angle.y = shape_angle.y; - setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); - - return 1; -} - -/* 800C85D8-800C8700 0C2F18 0128+00 1/0 0/0 0/0 .text procGoronRideWait__9daAlink_cFv */ -int daAlink_c::procGoronRideWait() { - if (!checkGoronRide()) { - checkNextAction(0); - } else { - if (checkInputOnR()) { - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, 2, 500, 100); - } - - s16 temp_r0 = shape_angle.y - current.angle.y; - daAlink_ANM var_r28; - if (temp_r0 > 0) { - var_r28 = ANM_STEP_TURN; - } else if (temp_r0 < 0) { - var_r28 = ANM_SMALL_GUARD; - } else { - var_r28 = ANM_WAIT; - } - - f32 var_f31 = 0.8f + (0.002f * abs(temp_r0)); - if (var_f31 > 1.0f) { - var_f31 = 1.0f; - } - - var_f31 = 1.0f - var_f31; - - setDoubleAnime(var_f31, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_move_c0::m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f); - current.angle.y = shape_angle.y; - } - - return 1; -} - -/* 800C8700-800CAFA8 0C3040 28A8+00 1/1 0/0 0/0 .text execute__9daAlink_cFv */ -int daAlink_c::execute() { - loadModelDVD(); - - if (checkEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT) && getMidnaActor() != NULL) { - getMidnaActor()->onNoServiceWait(); - } - - if (field_0x30fe != 0) { - *field_0x814.GetCCMoveP() = field_0x372c * (1.0f / (f32)field_0x30fe); - } - - if (checkHorseRide() && checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL) { - shape_angle.y = dComIfGp_getHorseActor()->shape_angle.y; - current.angle.y = shape_angle.y; - } else if (checkMagneBootsOn()) { - shape_angle.y = field_0x3118; - } else if (checkModeFlg(MODE_VINE_CLIMB) || checkCargoCarry()) { - shape_angle.y = field_0x3108; - } - - if (checkNoResetFlg2(FLG2_UNK_1) && mEquipItem != fpcNm_ITEM_KANTERA && checkItemSetButton(fpcNm_ITEM_KANTERA) == 2) { - offKandelaarModel(); - } - - mSwordChangeWaitTimer = 0; - setSelectEquipItem(0); - - if (dComIfGp_event_runCheck()) { - field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0); - - if (eventInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && - mEquipItem == 0x102) - { - deleteEquipItem(FALSE, FALSE); - } - } - - if (mSwordUpTimer != 0) { - mSwordUpTimer--; - } - - field_0x317c = dComIfGp_getPlayerCameraID(0); - field_0x3510 = current.pos; - - if (checkMagneBootsOn()) { - if (checkNoResetFlg0(FLG0_UNK_2000) && dComIfG_Bgsp().ChkPolySafe(mMagneLineChk) && - dComIfG_Bgsp().ChkMoveBG(mMagneLineChk)) - { - s16 shape_angle_y = shape_angle.y; - s16 angle_y = current.angle.y; - f32 pos_y = current.pos.y; - - dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, ¤t.pos, ¤t.angle, - &shape_angle, false, false); - - if (field_0x3114 > 0x6000 || field_0x3114 == -0x8000) { - shape_angle.y = shape_angle_y - (s16)(shape_angle.y - shape_angle_y); - current.angle.y = angle_y - (s16)(current.angle.y - angle_y); - } - - dComIfG_Bgsp().MoveBgCrrPos(mMagneLineChk, true, &old.pos, NULL, NULL, false, false); - - if (getMoveBGActorName(mMagneLineChk, FALSE) == PROC_Obj_MagneArm) { - field_0x34c8.y += current.pos.y - pos_y; - } else { - field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; - } - } - } else if (mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) && - mProcID != PROC_TOOL_DEMO && mLinkAcch.GetGroundH() != -1000000000.0f && - dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && - dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) - { - bool uvar23; - if (mProcID == PROC_SPINNER_READY) { - uvar23 = true; - } else { - uvar23 = mLinkAcch.ChkGroundHit(); - } - f32 pos_y = current.pos.y; - - dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, ¤t.pos, ¤t.angle, - &shape_angle, false, false); - dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, uvar23, &old.pos, NULL, NULL, false, false); - field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; - } - - field_0x3798 = old.pos; - field_0x2fe6 = shape_angle.y; - mPrevStickAngle = mStickAngle; - field_0x33a4 = field_0x33ac; - - if (checkResetFlg0(RFLG0_UNK_8000000) && !checkCutDashAnime()) { - mCutType = 0; - } - - mResetFlg0 = 0; - mResetFlg1 = 0; - - daAlink_matAnm_c::decMorfFrame(); - field_0x2180[0]->offSetFlg(); - field_0x2180[1]->offSetFlg(); - - field_0x2f99 = 0; - field_0x2f9d = 0; - field_0x2fc1 = 6; - - if (!checkSwordGet() && mEquipItem == 0x103) { - deleteEquipItem(FALSE, FALSE); - } - - field_0x2fae = 0; - - setDoStatus(0); - setRStatus(0); - set3DStatus(0, 0); - setMidnaTalkStatus(0); - - if (checkWolf()) { - setBStatus(ACTION_STR_ATTACK); - setWolfDigStatus(ACTION_STR_NONE); - - // Have wolf sense ability - if (dComIfGs_isEventBit(0x4308)) { - setWolfSenceStatus(ACTION_STR_SENSE); - } else { - setWolfSenceStatus(ACTION_STR_NONE); - } - } else { - if (checkCanoeRide() && checkStageName("F_SP127")) { - setBStatus(ACTION_STR_NONE5); - } else if (checkSwordGet()) { - setBStatus(ACTION_STR_NONE3); - } else { - setBStatus(ACTION_STR_NONE); - } - } - - field_0x2f91 = 0; - - if (mProcID == PROC_BOTTLE_SWING && eventInfo.checkCommandCatch()) { - mDemo.setSpecialDemoType(); - } - - field_0x280c.setActor(); - mRideAcKeep.setActor(); - - if (checkNoResetFlg2(FLG2_UNK_58)) { - field_0x281c.setActor(); - if (field_0x281c.getActor() == NULL) { - offNoResetFlg2(FLG2_UNK_58); - } - } else { - field_0x281c.clearData(); - } - - field_0x2844.setActor(); - mThrowBoomerangAcKeep.setActor(); - mCopyRodAcKeep.setActor(); - - if (mCopyRodAcKeep.getActor() != NULL) { - static_cast(mCopyRodAcKeep.getActor())->setControllActorData(); - } - - mGrabItemAcKeep.setActor(); - mHookTargetAcKeep.setActor(); - field_0x285c.setActor(); - - if (checkFishingRodAndLureItem() && mItemAcKeep.getActor() == NULL) { - fopAc_ac_c* item_actor = fopAcM_SearchByID(mItemAcKeep.getID()); - if (item_actor != NULL) { - mItemAcKeep.setData(item_actor); - } - } else { - mItemAcKeep.setActor(); - } - - if (checkWolf()) { - checkWolfLockData(); - } - - setAtnList(); - setDemoData(); - setStickData(); - - if (mFastShotTime < 0) { - mFastShotTime = 0; - } - - checkOxygenTimer(); - - if (field_0x2fce != 0) { - field_0x2fce--; - } - - if (field_0x2fcd != 0) { - field_0x2fcd--; - } - - if (field_0x3000 != 0) { - field_0x3000--; - } - - if (field_0x30fc != 0) { - field_0x30fc--; - } - - if (field_0x2fb4 != 0) { - field_0x2fb4--; - } - - if (field_0x30a4 != 0) { - field_0x30a4--; - } - - if (field_0x30a6 != 0) { - field_0x30a6--; - } - - if (field_0x30ec != 0) { - field_0x30ec--; - } - - if (mSwordFlourishTimer != 0) { - mSwordFlourishTimer--; - } - - if (field_0x3100 != 0) { - field_0x3100--; - } - - if (field_0x2fc4 != 0) { - field_0x2fc4--; - } - - if (field_0x30d2 != 0) { - field_0x30d2--; - } - - if (field_0x30d0 != 0) { - field_0x30d0--; - } else { - offNoResetFlg1(FLG1_DASH_MODE); - } - - if (field_0x2fd2 != 0) { - field_0x2fd2--; - } - - if (field_0x2fd3 != 0 && mProcID != PROC_BOTTLE_DRINK && mProcID != PROC_CANOE_BOTTLE_DRINK && - mProcID != PROC_HORSE_BOTTLE_DRINK) - { - field_0x2fd3--; - } - - if (field_0x2fd4 != 0 && mProcID != PROC_GUARD_SLIP) { - field_0x2fd4--; - - if (field_0x2fd4 == 0) { - field_0x2fd5 = 0; - } - } - - if (checkWolfEyeUp()) { - fopAc_ac_c* partner = (fopAc_ac_c*)fopAcM_getTalkEventPartner(this); - - const char* event_name; - if (checkEventRun()) { - event_name = dComIfGp_getEventManager().getRunEventName(); - } else { - event_name = NULL; - } - - if (event_name != NULL && (!strcmp(event_name, "kiko_yami") || !strcmp(event_name, "fire_insect") || - (checkStageName("F_SP108") && - (!strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "yami_mog"))) || - (checkStageName("R_SP109") && - (!strcmp(event_name, "MapToolCamera1") || !strcmp(event_name, "MapToolCamera2") || - !strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "fire_insect"))) || - (checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23")))) - { - mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime + 1; - } else if (checkEndResetFlg1(ERFLG1_WOLF_EYE_KEEP) || (checkDungeon() && eventInfo.checkCommandDoor()) || - mProcID == PROC_WOLF_GET_SMELL || mProcID == PROC_WOLF_DIG || - mProcID == PROC_WOLF_DIG_THROUGH || checkNoResetFlg0(FLG0_UNK_4000) || - dComIfGp_checkPlayerStatus1(0, 0x1000000) || - (checkEventRun() && partner != NULL && (partner->attention_info.flags & 0x400000)) || - !strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName)) - { - mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime; - } else if (mTargetedActor != NULL || dComIfGp_checkPlayerStatus0(0, 0x2000)) { - mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime - 1; - } else if (!dComIfGp_getEvent().isOrderOK() && mProcID != PROC_GET_ITEM && - mWolfEyeUp <= daAlinkHIO_wolf_c0::m.mSensesLingerTime) - { - offWolfEyeUp(); - } else { - mWolfEyeUp = 1; - } - } - - if (checkEndResetFlg0(ERFLG0_ENEMY_DEAD) && mEquipItem == 0x103) { - mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime; - } - - if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || field_0x2fbb == 11) { - onNoResetFlg0(FLG0_UNK_40000000); - } - - fopAc_ac_c* item_actor = mGrabItemAcKeep.getActor(); - if (item_actor != NULL && (!fopAcM_checkCarryNow(item_actor) || - (checkNoResetFlg0(FLG0_UNDERWATER) && - (checkGrabRooster() || fopAcM_GetName(item_actor) == PROC_E_NEST || - checkGrabCarryActor())))) - { - freeGrabItem(); - } - - allAnimePlay(); - - if (mDamageTimer != 0) { - damageTimerCount(); - } - - if (checkEquipHeavyBoots()) { - int temp_r3_22 = checkItemSetButton(fpcNm_ITEM_HVY_BOOTS); - if (temp_r3_22 == 2 || checkNotHeavyBootsStage()) { - if (!dComIfGp_checkPlayerStatus1(0, 0x10000) || !checkHookshotRoofLv7Boss()) { - setHeavyBoots(0); - } - } else { - dMeter2Info_onDirectUseItem(temp_r3_22); - } - } - - checkWarpStart(); - - if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) { - if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) && - !checkAutoJumpAction()) - { - checkSwimAction(0); - } - - if (checkDamageAction() && mProcID == PROC_LARGE_DAMAGE && checkMagneBootsOn()) { - cancelMagneBootsOn(); - } - - checkBoomerangCatchAction(); - } - - offNoResetFlg1(FLG1_UNK_20); - - if (checkWolf()) { - checkWolfComboCnt(); - - if (checkWolfEnemyThrowAnime()) { - checkWolfEnemyThrowAction(); - } - } else { - checkItemButtonChange(); - setItemAction(); - checkComboCnt(); - setShieldGuard(); - - if (checkCutFastReady()) { - if (checkNoUpperAnime()) { - setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mSpeed, 12.0f, - daAlinkHIO_cut_c0::m.mEquipAnm.mEndFrame, - daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation); - onNoResetFlg0(FLG0_UNK_1000000); - } - } else if (checkNoResetFlg0(FLG0_UNK_1000000)) { - resetUpperAnime(UPPER_2, 5.0f); - } - - if (mEquipItem == fpcNm_ITEM_KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() && - (checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) - { - if (checkReinRide()) { - setUpperAnimeBase(0x264); - } else { - setUpperAnimeBase(0x268); - } - - mNowAnmPackUpper[2].setRatio(0.0f); - } - } - - checkLightSwordMtrl(); - (this->*mpProcFunc)(); - - if (!checkEndResetFlg0(ERFLG0_UNK_2000) && checkWindDashAnime()) { - resetUpperAnime(UPPER_2, 3.0f); - } - - playFaceTextureAnime(); - - { - cXyz old_pos = current.pos; - posMove(); - - if (checkWolf()) { - wolfBgCheck(); - } else if (checkModeFlg(MODE_SWIMMING)) { - swimBgCheck(120.0f); - } - - cXyz pos = current.pos; - field_0x3528 = speed; - - mLinkAcch.ClrGroundHit(); - mLinkAcch.CrrPos(dComIfG_Bgsp()); - - if (checkMagneBootsOn()) { - current.pos = pos; - } - - if (!mLinkAcch.ChkGroundHit() && !mLinkAcch.ChkRoofHit() && getZoraSwim()) { - current.pos.y = pos.y; - } - - iceSlipBgCheck(); - setWaterY(); - autoGroundHit(); - - if (checkNoResetFlg0(FLG0_UNDERWATER) || - (checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_SWIM_UP))) - { - f32 var_f31; - if (mProcID == PROC_HOOKSHOT_FLY) { - var_f31 = current.pos.y - (field_0x598 * 0.5f); - } else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) { - var_f31 = (current.pos.y + -65.0f) - (daAlinkHIO_swim_c0::m.mInitHeight - 5.0f); - } else { - var_f31 = current.pos.y; - } - - if (!checkNoResetFlg0(FLG0_UNK_80) || - mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight - 5.0f) - { - swimOutAfter(0); - } - } - - if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { - J3DTransformInfo ti; - field_0x1f20->getAnm(0)->getTransform(0, &ti); - mDoMtx_stack_c::transS(old_pos); - mDoMtx_stack_c::YrotM(shape_angle.y); - - Vec tmp = {0.0f, 0.0f, 0.0f}; - tmp.x = ti.mTranslate.x; - tmp.z = ti.mTranslate.z; - mDoMtx_stack_c::multVec(&tmp, ¤t.pos); - speed.y = 0.0f; - - if (field_0x3198 != 0) { - if (mLinkAcch.GetGroundH() != -1000000000.0f) { - current.pos.y = mLinkAcch.GetGroundH(); - } - } - } else if (mProcID == PROC_HOOKSHOT_FLY || mProcID == PROC_MAGNE_BOOTS_FLY || - (checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) && - mProcID != PROC_HORSE_GETOFF && mProcID != PROC_WOLF_CHAIN_READY && - !checkBoardRide())) - { - current.pos = pos; - } else if (checkModeFlg(MODE_UNK_4000)) { - if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) { - current.pos.y = old_pos.y; - speed.y = 0.0f; - } - current.pos.x = pos.x; - current.pos.z = pos.z; - } else if (checkFlyAtnWait() || mProcID == PROC_WARP) { - current.pos.y = old_pos.y; - speed.y = 0.0f; - } - - field_0x3178 = field_0x3174; - - if (mLinkAcch.GetGroundH() != -1000000000.0f) { - setRoomInfo(); - - if (!checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && mProcID != PROC_TOOL_DEMO && - mProcID != PROC_GANON_FINISH && mProcID != PROC_DUNGEON_WARP && - (field_0x2f8c == 1 || field_0x2f8c == 3)) - { - setStepsOffset(); - } else { - field_0x2b9c = 0.0f; - if (!checkModeFlg(MODE_SWIMMING)) { - field_0x2b98 = 0.0f; - } - } - - if (checkModeFlg(MODE_UNK_2000000)) { - setShapeAngleOnGround(); - } - - if (!checkRestartRoom() && !checkDeadHP()) { - checkSceneChange(dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd)); - } - - if (mLinkAcch.ChkGroundHit()) { - if (dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { - dComIfG_Bgsp().MoveBgTransPos(mLinkAcch.m_gnd, true, &field_0x34ec, NULL, NULL); - } - - if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && - mWaterY >= mLinkAcch.GetGroundH()) - { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { - mPolySound = 11; - } else { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); - } - - field_0x2ff0 = getGroundAngle(&mLinkAcch.m_gnd, shape_angle.y); - } else { - if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { - if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY >= mLinkAcch.GetGroundH()) { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { - mPolySound = 11; - } else { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); - } - } else if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_UNK_80)) { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else { - mPolySound = 0; - } - - field_0x2ff0 = 0; - } - mDoAud_setLinkGroupInfo(dComIfG_Bgsp().GetGrpSoundId(mLinkAcch.m_gnd)); - } else { - field_0x3174 = -1; - field_0x2ff0 = 0; - field_0x2fbb = 16; - field_0x2fbd = 0; - mGndPolySpecialCode = dBgW_SPCODE_NORMAL; - - if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else { - mPolySound = 0; - } - - if (!checkRestartRoom() && !checkDeadHP()) { - checkSceneChange(0x3F); - } - } - - if (checkMagneBootsOn()) { - field_0x2fbd = 0; - field_0x2f5c.mPosition = current.pos; - field_0x2f5c.mPow = 100.0f; - - if (checkNoResetFlg0(FLG0_UNK_2000)) { - mPolySound = dKy_pol_sound_get(&mMagneLineChk); - field_0x2ff0 = 0; - field_0x3174 = dComIfG_Bgsp().GetGroundCode(mMagneLineChk); - field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk); - mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk); - setMagneBootsMtx(&mMagneLineChk, 0); - } else { - mPolySound = 0; - field_0x2ff0 = 0; - field_0x3174 = -1; - field_0x2fbb = 16; - mGndPolySpecialCode = dBgW_SPCODE_NORMAL; - } - } else { - field_0x2f5c.mPow = 0.0f; - if (mProcID != PROC_MAGNE_BOOTS_FLY) { - mMagneBootsTopVec = cXyz::BaseY; - } - } - - if (dComIfGp_evmng_startCheck(l_peepEventName)) { - if (field_0x2ff2 > 0) { - field_0x2ff2--; - } else if (dComIfGp_evmng_startCheck(l_peepEventName)) { - startPeepChange(); - } - } - - if (checkModeFlg(MODE_VINE_CLIMB) && mProcVar2.field_0x300c != 0 && - dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) - { - mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity); - } else { - mZ2Link.framework(mPolySound, mVoiceReverbIntensity); - } - - if (field_0x2d7c != NULL) { - mZ2Link.updateAnime(field_0x2d7c->getFrame(), field_0x2d7c->getRate()); - } - - if (mProcID != PROC_DAMAGE && mProcID != PROC_SWIM_DAMAGE && mProcID != PROC_HORSE_DAMAGE) { - setMoveSlantAngle(); - - if (checkReinRide() && checkUpperGuardAnime()) { - setBodyAngleRideReadyAnime(); - } else if (!checkSmallUpperGuardAnime() && !checkWolf()) { - if (!checkModeFlg(MODE_UNK_20000000)) { - if (checkUpperGuardAnime()) { - setBodyAngleXReadyAnime(0); - } else if (!checkUpperReadyThrowAnime()) { - cLib_addCalcAngleS(&mBodyAngle.x, 0, 4, 0x0C00, 0x0180); - } - } - - if (!checkModeFlg(MODE_UNK_40000000)) { - cLib_addCalcAngleS(&mBodyAngle.y, 0, 4, 0x0C00, 0x0180); - } - } - } - - setMatrix(); - setNeckAngle(); - - if (field_0x2fcc != 0) { - field_0x2fcc--; - } - - if (!checkWolf()) { - setHatAngle(); - - if (field_0x2fb0 != 0) { - field_0x2fb0--; - } - - footBgCheck(); - handBgCheck(); - - field_0x30c8 = mBodyAngle.y >> 1; - modelCalc(mpLinkModel); - - if (field_0x2fcb != 0) { - if (checkWoodShieldEquip() && mWaterY < mShieldModel->getBaseTRMtx()[1][3]) { - field_0x2fcb--; - - if (field_0x2fcb == 0) { - dMeter2Info_setShield(fpcNm_ITEM_NONE, true); - stickArrowIncrement(1); - setWoodShieldBurnOutEffect(); - - // "Your shield burned up..." - dMeter2Info_setFloatingMessage(2047, 90, false); - - stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); - if (dStage_stagInfo_GetSaveTbl(pstag) == 0x11 && - !dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD)) - { - fopAcM_onSwitch(this, 0x6F); - } - seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN); - } - } else { - clearWoodShieldBurnEffect(); - } - } - - if (checkShieldGet() && !checkWoodShieldEquip()) { - stickArrowIncrement(1); - } - setItemMatrix(0); - } else { - daMidna_c* pmidna = (daMidna_c*)getMidnaActor(); - - if (mClothesChangeWaitTimer == 0) { - if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) && - !pmidna->checkForceNormalColor()) - { - mpWlMidnaModel->getModelData()->entryTevRegAnimator(mpDMidnaBrk); - mpWlMidnaMaskModel->getModelData()->entryTevRegAnimator(mpDMidnaMaskBrk); - mpWlMidnaHandModel->getModelData()->entryTevRegAnimator(mpDMidnaHandBrk); - mpWlMidnaHairModel->getModelData()->entryTevRegAnimator(mpDMidnaHairHandBrk); - } else { - mpWlMidnaModel->getModelData()->removeTevRegAnimator(mpDMidnaBrk); - mpWlMidnaMaskModel->getModelData()->removeTevRegAnimator(mpDMidnaMaskBrk); - mpWlMidnaHandModel->getModelData()->removeTevRegAnimator(mpDMidnaHandBrk); - mpWlMidnaHairModel->getModelData()->removeTevRegAnimator(mpDMidnaHairHandBrk); - } - } - - wolfFootBgCheck(); - setWolfTailAngle(); - modelCalc(mpLinkModel); - checkWolfUseAbility(); - - if (checkWolfEyeUp() != 0) { - mWolfEyeUpTimer++; - if (mWolfEyeUpTimer > 30) { - mWolfEyeUpTimer = 30; - } - } else if (mWolfEyeUpTimer != 0) { - mWolfEyeUpTimer--; - } - - setWolfItemMatrix(); - } - - if (checkFmChainGrabAnime()) { - mNowAnmPackUpper[2].setRatio(1.0f); - } - - setBodyPartPos(); - - if (!checkWolf() && checkEndResetFlg0(ERFLG0_UNK_800000)) { - setHatAngle(); - modelCalc(mpLinkModel); - } - - setHangWaterY(); - setCollision(); - setAttentionPos(); - setLight(); - setEffect(); - - if (mClothesChangeWaitTimer != 0) { - mDoMtx_stack_c::copy(mpLinkModel->getBaseTRMtx()); - - if (!checkWolf()) { - mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); - } - - mpWlChangeModel->setBaseTRMtx(mDoMtx_stack_c::get()); - mpWlChangeModel->calc(); - } - - mSight.mLockCursor.update(); - setGrabItemPos(); - - checkRoofRestart(); - mExitID = 0x3F; - mpScnChg = NULL; - - static Vec const localBoomCatchPos = {18.7f, 146.3f, 69.2f}; - cMtx_multVec(mpLinkModel->getAnmMtx(0), &localBoomCatchPos, &field_0x3534); - - if (checkResetFlg0(RFLG0_UNK_10)) { - mZ2Link.setResumeAttack(true); - } else { - mZ2Link.setResumeAttack(false); - } - - if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) && - (mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) && - getMoveBGActorName(mLinkAcch.m_wtr, TRUE) == PROC_Obj_Onsen) - { - if (mHotspringRecoverTimer != 0) { - mHotspringRecoverTimer--; - } else { - mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; - dComIfGp_setItemLifeCount(1.0f, 1); - } - } else { - mHotspringRecoverTimer = daAlinkHIO_basic_c0::m.mHotspringRecoverTime; - } - - if (checkAttentionLock() || (!checkUpperReadyThrowAnime() && - mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT)) - { - mFastShotTime = 0; - } - - if (checkDeadHP()) { - eventInfo.offCondition(fopAcCnd_NOEXEC_e); - } else if (!checkMagneBootsOn()) { - f32 var_f31_2; - if (mLinkAcch.ChkGroundHit()) { - cM3dGPla plane; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &plane); - var_f31_2 = plane.mNormal.y; - } else { - var_f31_2 = -1.0f; - } - - if (cBgW_CheckBGround(var_f31_2) && !checkModeFlg(MODE_PLAYER_FLY)) { - eventInfo.onCondition(0x5D); - } else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE || - ((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) && - !checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) - { - eventInfo.onCondition(dEvtCnd_CANTALK_e); - if (checkReinRide() || checkCanoeRide()) { - eventInfo.onCondition(dEvtCnd_CANGETITEM_e); - } - } - } else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { - eventInfo.onCondition(dEvtCnd_CANTALK_e); - } - - if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) { - getMidnaActor()->onForcePanic(); - } - - field_0x30fe = 0; - field_0x372c = cXyz::Zero; - field_0x2fb8 = 0; - - if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { - if (checkMagicArmorNoDamage() && !checkEventRun()) { - if (field_0x2fc3 == 0) { - field_0x2fc3 = 10; - dComIfGp_setItemRupeeCount(-1); - } else { - field_0x2fc3--; - } - } - - if (dComIfGs_getRupee() == 0 && field_0x2fd7 != 0) { - setMagicArmorBrk(0); - seStartOnlyReverb(Z2SE_AL_M_ARMER_TURNOFF); - mZ2Link.setLinkState(5); - } else if (dComIfGs_getRupee() != 0 && field_0x2fd7 == 0) { - setMagicArmorBrk(1); - seStartOnlyReverb(Z2SE_AL_M_ARMER_RECOVER); - mZ2Link.setLinkState(4); - } - } - - if (!checkWolf()) { - for (u8 i = 0; i < 2; i++) { - u8 tmp = (i + 1) % 2; - if (dComIfGp_getSelectItem(i) == fpcNm_ITEM_EMPTY_BOTTLE && (field_0x2fae & (1 << i)) && - dComIfGp_getSelectItem(tmp) == fpcNm_ITEM_EMPTY_BOTTLE) - { - field_0x2fae |= (u8)(1 << tmp); - } - } - } - - for (int i = 0; i < 2; i++) { - if (!(field_0x2fae & (1 << i)) && !(field_0x2faf & (1 << i))) { - dMeter2Info_offUseButton(4 << i); - } - } - - if (!(field_0x2fae & 0x40) && !(field_0x2faf & 0x40)) { - dMeter2Info_offUseButton(0x40); - } - - if (!(field_0x2fae & 0x8) && !(field_0x2faf & 0x8)) { - dMeter2Info_offUseButton(2); - if (getSumouMode()) { - dMeter2Info_offUseButton(1); - } - } - - field_0x2faf = field_0x2fae; - - for (int i = 0; i < 4; i++) { - cXyz tmp(current.pos.x + 500.0f, current.pos.y + 500.0f, current.pos.z + 500.0f); - if (i != field_0x2fa3 - 1) { - field_0x354c[i] = tmp; - } - } - - if (checkEventRun()) { - if (mProcID != PROC_GRASS_WHISTLE_WAIT) { - setDoStatus(0); - } - setRStatus(0); - } else { - if (dComIfGp_getDoStatus() == 0x86 || dComIfGp_getDoStatus() == 0x8B) { - setDoStatus(3); - } else if (dComIfGp_getDoStatus() == 0x89) { - setDoStatus(8); - } else if (dComIfGp_getDoStatus() == 0x93) { - setDoStatusEmphasys(0x19); - } else if (dComIfGp_getDoStatus() == 0x8E) { - setDoStatusEmphasys(0x15); - } else if (dComIfGp_getDoStatus() == 0x8C) { - setDoStatus(0); - } else if (checkStageName("F_SP127") && checkCanoeRide() && dComIfGp_getDoStatus() == 4) { - setDoStatus(0); - } else if (dComIfGp_getDoStatus() == 0x90) { - setDoStatus(0); - } else if (dComIfGp_getDoStatus() == 0x98) { - setDoStatusEmphasys(0x39); - } else if (dComIfGp_getDoStatus() == 0x99) { - setDoStatusEmphasys(0x15); - } else if (dComIfGp_getDoStatus() == 0x91) { - if (checkWolf() || - (field_0x27f4 != NULL && - (field_0x27f4->speedF > 0.1f || - (checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW)))) - { - setDoStatusEmphasys(0x15); - } else { - setDoStatus(0); - } - } else if (dComIfGp_getDoStatus() == 0x97) { - if (current.pos.y + 200.0f < mWaterY) { - setDoStatus(0x4C); - } else { - setDoStatus(0); - } - } else if (dComIfGp_getDoStatus() == 0x19 && dComIfGp_getHorseActor() != NULL && - dComIfGp_getHorseActor()->getZeldaActor() != NULL) - { - setDoStatus(0x19); - } else if (dComIfGp_getDoStatus() == 5 && field_0x27f4 != NULL && - (fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone || - fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) - { - setDoStatusEmphasys(0x3B); - } else if (dComIfGp_getDoStatus() == 0x14) { - if (checkEndResetFlg1(ERFLG1_UNK_4000000)) { - setDoStatusEmphasys(0x61); - } else if (checkEndResetFlg1(ERFLG1_UNK_10000000)) { - setDoStatusEmphasys(0x14); - } - } - - int grab_status = getWallGrabStatus(); - if (checkWolf()) { - if (grab_status == 0x15) { - setWallGrabStatus(0x3F, 2); - } else if (grab_status == 0x96) { - setWallGrabStatus(0xC, checkChainEmphasys()); - } - } else { - if (grab_status == 0x96) { - setWallGrabStatus(0x15, checkChainEmphasys()); - } - - if (dComIfGp_getRStatus() == 0x3A && checkShieldAttackEmphasys() == 0) { - setRStatus(0); - } - } - } - - mDoAud_setLinkHp(dComIfGs_getLife(), dComIfGs_getMaxLifeGauge()); - } - - if (dComIfGp_att_getCatghTarget() != NULL && !checkWolf()) { - if (!checkRideOn() && checkCastleTownUseItem(fpcNm_ITEM_EMPTY_BOTTLE)) { - dComIfGp_setBottleStatus(0x6C, 0); - } - } - - if (checkEndResetFlg2(ERFLG2_UNK_20) && dComIfGp_checkPlayerStatus0(0, 0x200000) && - (field_0x310e != field_0x310a || field_0x3110 != field_0x310c)) - { - mDoAud_seStartLevel(Z2SE_AL_HAWK_EYE_PAN, NULL, 0, 0); - } - - offNoResetFlg0(FLG0_UNK_40000000); - mEndResetFlg0 = 0; - - if (checkEndResetFlg1(ERFLG1_UNK_4)) { - onNoResetFlg2(FLG2_UNK_20000); - } else { - offNoResetFlg2(FLG2_UNK_20000); - } - - mEndResetFlg1 = 0; - mEndResetFlg2 = 0; - - field_0x3540 = old.pos; - field_0x3108 = shape_angle.y; - - if (checkHorseRide() && checkBoarSingleBattle()) { - if (abs(shape_angle.y) < 0x4000) { - shape_angle.y = 0; - } else { - shape_angle.y = -0x8000; - } - } else if (checkMagneBootsOn()) { - field_0x3118 = shape_angle.y; - shape_angle.y = getMagneBootsLocalAngleY(shape_angle.y, 0); - } else if (checkModeFlg(MODE_VINE_CLIMB)) { - field_0x3108 = shape_angle.y; - shape_angle.y += field_0x308c; - } else if (checkCargoCarry() && mCargoCarryAcKeep.getActor() != NULL) { - field_0x3108 = shape_angle.y; - shape_angle.y = mCargoCarryAcKeep.getActor()->shape_angle.y; - } - - return 1; -} - -/* 800CAFA8-800CAFC8 0C58E8 0020+00 1/0 0/0 0/0 .text daAlink_Execute__FP9daAlink_c */ -static int daAlink_Execute(daAlink_c* i_this) { - return i_this->execute(); -} - -/* 800CAFC8-800CB480 0C5908 04B8+00 2/2 0/0 0/0 .text setDrawHand__9daAlink_cFv */ -void daAlink_c::setDrawHand() { - field_0x06d0->hide(); - field_0x06d4->hide(); - - u8 var_r30; - u8 var_r29; - if (checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW)) { - if (checkSwordGet()) { - var_r30 = 0; - } else { - var_r30 = 0xFE; - } - - if (checkShieldGet()) { - var_r29 = 6; - } else { - var_r29 = 0xFE; - } - } else if (mProcID == PROC_TOOL_DEMO) { - var_r30 = field_0x2f92; - var_r29 = field_0x2f93; - } else { - if (field_0x2f92 == 0x64) { - if (mProcID == PROC_BOSS_BODY_HANG || mProcID == PROC_MASTER_SWORD_PULL || (mProcID == PROC_CUT_DOWN_LAND && mProcVar2.field_0x300c != 0)) { - var_r30 = mProcVar4.field_0x3010; - } else if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE) && mUnderFrameCtrl[0].getFrame() < 6.0f) { - var_r30 = 0; - } else { - var_r30 = 2; - } - } else if (field_0x2f96 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || field_0x2f94 == 0xFF)) { - var_r30 = field_0x2f96; - } else if (field_0x2f94 != 0xFF) { - if (field_0x2f94 == 0x67) { - if (checkBowGrabLeftHand()) { - var_r30 = 0; - } else { - var_r30 = field_0x2f92; - } - } else if (field_0x2f94 == 0x65) { - if (mUpperAnmHeap[0].getIdx() == 0xC7) { - var_r30 = 0; - } else if (mItemVar0.field_0x3018 == 1) { - var_r30 = 4; - } else { - var_r30 = 2; - } - } else if (field_0x2f94 == 0 && mProcID == PROC_SWORD_UNEQUIP_SP) { - var_r30 = field_0x2f92; - } else if (field_0x2f94 == 0 && mEquipItem == 0x103 && (checkHorseRide() || checkUnderMove0BckNoArc(ANM_SWIM_DIE))) { - var_r30 = 2; - } else { - var_r30 = field_0x2f94; - } - } else { - var_r30 = field_0x2f92; - } - - if ((mCutType == CUT_TYPE_FINISH_STAB || mCutType == CUT_TYPE_DOWN) && mProcID != PROC_BOSS_BODY_HANG) { - var_r29 = 5; - } else if (field_0x2f97 != 0xFF && (!checkNoResetFlg1(FLG1_UNK_100000) || (field_0x2f95 == 0xFF && field_0x2e44.checkPassNum(0xF)))) { - var_r29 = field_0x2f97; - } else if (field_0x2f95 != 0xFF) { - if (field_0x2f95 == 0x65) { - if (mItemVar0.field_0x3018 == 1) { - var_r29 = 5; - } else { - var_r29 = field_0x2f93; - } - } else { - var_r29 = field_0x2f95; - } - } else if (!field_0x2e44.checkPassNum(0xF)) { - var_r29 = 6; - } else { - var_r29 = field_0x2f93; - } - } - - mpLinkHandModel->setBaseTRMtx(mpLinkModel->getBaseTRMtx()); - mpLinkHandModel->calc(); - - if (var_r30 == 0xFE || var_r30 == 0xFB) { - field_0x06d0 = field_0x06d8; - } else { - field_0x06d0 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r30)->getShape(); - mpLinkHandModel->setAnmMtx(1, mpLinkModel->getAnmMtx(9)); - } - - if (var_r30 == 0xFB) { - mpDemoHLTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(9)); - if (mpDemoHLTmpBck != NULL) { - mpDemoHLTmpBck->entry(mpDemoHLTmpModel->getModelData()); - } - - mpDemoHLTmpModel->calc(); - field_0x06d0->hide(); - } else { - field_0x06d0->show(); - } - - if (var_r29 == 0xFE || var_r29 == 0xFB) { - field_0x06d4 = field_0x06dc; - } else { - field_0x06d4 = mpLinkHandModel->getModelData()->getMaterialNodePointer(var_r29)->getShape(); - mpLinkHandModel->setAnmMtx(2, mpLinkModel->getAnmMtx(0xE)); - } - - if (var_r29 == 0xFB) { - mpDemoHRTmpModel->setBaseTRMtx(mpLinkModel->getAnmMtx(0xE)); - if (mpDemoHRTmpBck != NULL) { - mpDemoHRTmpBck->entry(mpDemoHRTmpModel->getModelData()); - } - - mpDemoHRTmpModel->calc(); - field_0x06d4->hide(); - } else { - field_0x06d4->show(); - } -} - -/* 800CB480-800CB53C 0C5DC0 00BC+00 3/3 0/0 0/0 .text checkSwordDraw__9daAlink_cFv */ -bool daAlink_c::checkSwordDraw() { - return ((checkSwordGet() && mSwordChangeWaitTimer == 0) && - !checkNoResetFlg2(FLG2_UNK_2080000)) && - (!checkWolf() || !dComIfGs_isEventBit(0x0C08)); -} - -/* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */ -bool daAlink_c::checkShieldDraw() { - return ((checkShieldGet() && mShieldChangeWaitTimer == 0) && - !checkNoResetFlg2(FLG2_UNK_4080000)) && - (!checkWolf() || !dComIfGs_isEventBit(0x0C08)); -} - -/* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */ -bool daAlink_c::checkItemDraw() { - if (mHeldItemModel != NULL && (mEquipItem != fpcNm_ITEM_IRONBALL || !checkSwordEquipAnime())) { - if (!checkBowAndSlingItem(mEquipItem) || checkBowGrabLeftHand() || !checkShieldGet() || - field_0x2e44.checkPassNum(15)) - { - return true; - } - } - return false; -} - -/* 800CB694-800CBA38 0C5FD4 03A4+00 0/0 0/0 1/1 .text initShadowScaleLight__9daAlink_cFv - */ -// NONMATCHING - float stuff -int daAlink_c::initShadowScaleLight() { - dKy_shadow_mode_set(4); - - if (checkWolf()) { - f32 temp_f26 = 0.5f * field_0x850[0].GetH(); - field_0x850[0].GetC(); - } - - cXyz sp20(tevStr.mLightPosWorld.x - field_0x3834.x, tevStr.mLightPosWorld.y - field_0x3454, tevStr.mLightPosWorld.z - field_0x3834.z); - field_0x2ff6 = sp20.atan2sX_Z(); - - fopAc_ac_c* temp_r29 = fopAcM_getTalkEventPartner(this); - - f32 var_f30; - if (dComIfGp_checkPlayerStatus0(0, 0x100000)) { - var_f30 = 0.0f; - } else { - var_f30 = 150.0f; - } - - BOOL var_r28; - f32 var_f31; - if (temp_r29 != NULL && ((fopAcM_GetName(temp_r29) == PROC_Tag_Mhint && !((daTagMhint_c*)temp_r29)->checkNoAttention()) || (fopAcM_GetName(temp_r29) == PROC_Tag_Mstop && !((daTagMstop_c*)temp_r29)->checkNoAttention()))) { - field_0x2ff8 = cLib_targetAngleY(&temp_r29->eyePos, ¤t.pos); - var_r28 = 1; - } else { - field_0x2ff8 = shape_angle.y + 0x8000; - - if (checkWolf()) { - var_f31 = 200.0f; - } else { - var_f31 = 120.0f; - } - - cXyz sp14(current.pos.x, current.pos.y + var_f30, current.pos.z); - cXyz sp8(sp14.x + ((30.0f + var_f31) * cM_ssin(shape_angle.y)), sp14.y, sp14.z + ((30.0f + var_f31) * cM_scos(shape_angle.y))); - - if (fopAcM_lc_c::lineCheck(&sp14, &sp8, this)) { - var_r28 = 1; - } else { - var_r28 = 0; - } - } - - field_0x2ffa = field_0x2ff8 + 0x8000; - field_0x2ff4 = cM_atan2s(sp20.y, sp20.absXZ()); - offNoResetFlg2(FLG2_UNK_800); - field_0x2ffc = 0; - field_0x375c.y = current.pos.y + var_f30; - - f32 temp_f29 = cM_ssin(field_0x2ff8); - f32 temp_f28 = cM_scos(field_0x2ff8); - - if (var_r28 == 0) { - field_0x375c.x = current.pos.x - (var_f31 * temp_f29); - field_0x375c.z = current.pos.z - (var_f31 * temp_f28); - } else { - field_0x375c.x = (current.pos.x - (temp_f29 * -30.0f)) - (temp_f28 * 65.0f); - field_0x375c.z = (current.pos.z - (temp_f28 * -30.0f)) + (temp_f29 * 65.0f); - } - - if (checkReinRide()) { - var_r28 = 1; - } - - return var_r28; -} - -/* 800CBA38-800CBC18 0C6378 01E0+00 0/0 0/0 1/1 .text moveShadowScaleLight__9daAlink_cFv - */ -int daAlink_c::moveShadowScaleLight() { - int var_r29 = 0; - - if (field_0x2ff8 != field_0x2ffa) { - s16 temp_r0 = field_0x2ff6 - field_0x2ff8; - if (abs(temp_r0) < 0x4000) { - if (temp_r0 >= 0) { - field_0x2ff8 -= 0x4000; - } else { - field_0x2ff8 += 0x4000; - } - - if (cLib_distanceAngleS(field_0x2ff8, field_0x2ffa) < 0x100) { - field_0x2ff8 = field_0x2ffa; - } - } - } else if (cLib_distanceAngleS(field_0x2ff8, field_0x2ff6) < 0x1600) { - onNoResetFlg2(FLG2_UNK_800); - } - - if (cLib_addCalcAngleS(&field_0x2ff6, field_0x2ff8, 4, 0x1800, 0x200) == 0) { - if (cLib_chaseS(&field_0x2ff4, 0x4000, 0x650)) { - dKy_shadow_mode_reset(4); - tevStr.field_0x344 = 1.0f; - } else { - tevStr.field_0x344 = 2.0f; - } - - if (field_0x2ff4 > 0x3000) { - var_r29 = 1; - } - } else { - if (!checkNoResetFlg2(FLG2_UNK_800)) { - cLib_chaseS(&field_0x2ff4, 0x2600, 0x800); - } else { - cLib_chaseS(&field_0x2ffc, 0x800, 0x100); - cLib_chaseS(&field_0x2ff4, 0, field_0x2ffc); - } - - cLib_chaseF(&tevStr.field_0x344, 2.0f, 0.1f); - } - - f32 temp_f31 = 50000.0f * cM_scos(field_0x2ff4); - tevStr.mLightPosWorld.set(field_0x3834.x + (temp_f31 * cM_ssin(field_0x2ff6)), field_0x3454 + (50000.0f * cM_ssin(field_0x2ff4)), field_0x3834.z + (temp_f31 * cM_scos(field_0x2ff6))); - return var_r29; -} - -/* 800CBC18-800CC25C 0C6558 0644+00 1/1 0/0 0/0 .text shadowDraw__9daAlink_cFv */ -void daAlink_c::shadowDraw() { - daMidna_c* temp_r3 = getMidnaActor(); - if (temp_r3 != NULL && ((temp_r3->checkShadowModelDraw() && (field_0x2ff4 >= 0x3FF0 || !checkMidnaRide())) || temp_r3->checkShadowModelDrawDemoForce())) { - return; - } - - if (!checkBoarRide()) { - if (mProcID == PROC_WARP) { - tevStr.field_0x344 = field_0x3484; - } - - u32 var_r29; - if (checkHorseRide()) { - var_r29 = ((daHorse_c*)dComIfGp_getHorseActor())->getShadowID(); - if (var_r29 != 0) { - dComIfGd_addRealShadow(var_r29, mpLinkModel); - } - } else { - f32 var_f31; - if (checkModeFlg(0x40)) { - var_f31 = field_0x33d8; - } else { - var_f31 = mLinkAcch.GetGroundH(); - } - - cXyz spC(field_0x3834.x, field_0x3454, field_0x3834.z); - - f32 var_f30; - if (!checkWolf()) { - if (field_0x850[0].GetC().y > field_0x850[2].GetC().y) { - var_f30 = field_0x850[2].GetC().y; - } else { - var_f30 = field_0x850[0].GetC().y; - } - } else { - var_f30 = field_0x850[0].GetC().y; - } - - s8 sp8; - if (mWaterY > var_f31) { - sp8 = 1; - } else { - sp8 = 0; - } - - field_0x31a4 = dComIfGd_setShadow(field_0x31a4, sp8, mpLinkModel, &spC, 800.0f, 0.0f, var_f30, var_f31, mLinkAcch.m_gnd, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); - var_r29 = field_0x31a4; - } - - if (var_r29 != 0) { - if (checkSwordDraw()) { - if (!checkNoResetFlg3(FLG3_UNK_80000000)) { - dComIfGd_addRealShadow(var_r29, mSwordModel); - } - - if (!checkWoodSwordEquip()) { - dComIfGd_addRealShadow(var_r29, mSheathModel); - } - } - - if (checkShieldDraw()) { - dComIfGd_addRealShadow(var_r29, mShieldModel); - } - - if (checkWolf()) { - if (checkMidnaRide() && !checkCloudSea() && !temp_r3->checkShadowNoDraw() && !temp_r3->checkShadowModelDraw()) { - dComIfGd_addRealShadow(var_r29, mpWlMidnaModel); - - if (!temp_r3->checkNoMaskDraw() ) { - dComIfGd_addRealShadow(var_r29, mpWlMidnaMaskModel); - } - - dComIfGd_addRealShadow(var_r29, mpWlMidnaHairModel); - } - } else { - dComIfGd_addRealShadow(var_r29, mpLinkFaceModel); - dComIfGd_addRealShadow(var_r29, mpLinkHatModel); - dComIfGd_addRealShadow(var_r29, mpLinkHandModel); - - if (field_0x2f92 == 0xFB) { - dComIfGd_addRealShadow(var_r29, mpDemoHLTmpModel); - } - - if (field_0x2f93 == 0xFB) { - dComIfGd_addRealShadow(var_r29, mpDemoHRTmpModel); - } - - if (mEquipItem == fpcNm_ITEM_BOOMERANG) { - if (mItemAcKeep.getActor() != NULL) { - dComIfGd_addRealShadow(var_r29, mItemAcKeep.getActor()->model); - } - } else if (checkItemDraw()) { - if (mEquipItem == fpcNm_ITEM_IRONBALL) { - if (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) { - dComIfGd_addRealShadow(var_r29, mHeldItemModel); - } else { - if (fopAcM_gc_c::gndCheck(&mIronBallBgChkPos)) { - field_0x32d4 = dComIfGd_setShadow(field_0x32d4, 0, mHeldItemModel, &mIronBallCenterPos, 150.0f, 32.0f, mIronBallBgChkPos.y, fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); - } - } - } else { - changeHookshotDrawModel(); - dComIfGd_addRealShadow(var_r29, mHeldItemModel); - - if (checkHookshotItem(mEquipItem)) { - if (checkHookshotWait() && !dComIfGp_checkPlayerStatus1(0, 0x10000)) { - dComIfGd_addRealShadow(var_r29, mpHookTipModel); - } - - if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && !checkNoResetFlg0(FLG0_UNK_2)) { - dComIfGd_addRealShadow(var_r29, field_0x0710); - - if (!dComIfGp_checkPlayerStatus1(0, 0x10000)) { - dComIfGd_addRealShadow(var_r29, field_0x0714); - } - } - } - - changeHookshotDrawModel(); - } - } - - if (checkNoResetFlg2(FLG2_UNK_1)) { - dComIfGd_addRealShadow(var_r29, mpKanteraModel); - } - - if (checkEquipHeavyBoots()) { - for (int i = 0; i < 2; i++) { - dComIfGd_addRealShadow(var_r29, mpLinkBootModels[i]); - } - } - - if (checkSpinnerRide()) { - fopAc_ac_c* temp_r3_6 = fopAcM_SearchByID(mRideAcKeep.getID()); - if (temp_r3_6 != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_6->model); - } - } - } - - if (mGrabItemAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* temp_r3_7 = fopAcM_SearchByID(mGrabItemAcKeep.getID()); - if (temp_r3_7 != NULL && temp_r3_7->model != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_7->model); - } - } - - if (dComIfGp_checkPlayerStatus1(0, 0x10000) && mCargoCarryAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* temp_r3_8 = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); - if (temp_r3_8 != NULL && temp_r3_8->model != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_8->model); - } - } - } - } -} - -/* 800CC25C-800CC298 0C6B9C 003C+00 3/3 0/0 0/0 .text modelCalc__9daAlink_cFP8J3DModel */ -void daAlink_c::modelCalc(J3DModel* p_model) { - if (mClothesChangeWaitTimer == 0) { - p_model->calc(); - } -} - -/* 800CC298-800CC2E0 0C6BD8 0048+00 2/2 0/0 0/0 .text basicModelDraw__9daAlink_cFP8J3DModel */ -void daAlink_c::basicModelDraw(J3DModel* i_model) { - g_env_light.setLightTevColorType_MAJI(i_model, &tevStr); - mDoExt_modelEntryDL(i_model); -} - -/* 800CC2E0-800CC364 0C6C20 0084+00 1/1 0/0 0/0 .text modelDraw__9daAlink_cFP8J3DModeli - */ -void daAlink_c::modelDraw(J3DModel* i_model, int param_1) { - g_env_light.setLightTevColorType_MAJI(i_model, &tevStr); - - if (param_1 == 0) { - mDoExt_modelEntryDL(i_model); - } else { - i_model->calcMaterial(); - i_model->diff(); - } - - daMirror_c::entry(i_model); -} - -/* 800CC364-800CC7DC 0C6CA4 0478+00 2/2 0/0 0/0 .text - * setWaterDropColor__9daAlink_cFPC13J3DGXColorS10 */ -void daAlink_c::setWaterDropColor(const J3DGXColorS10* i_color) { - static const GXColorS10 notColor0 = {0x00, 0x00, 0x00, 0xFF}; - J3DGXColorS10* var_r31; - - if (&field_0x32a0[0] == i_color) { - if (checkNoResetFlg2(FLG2_UNK_80000) || checkZoraWearAbility() || - checkMagicArmorWearAbility()) - { - var_r31 = (J3DGXColorS10*)¬Color0; - i_color = (J3DGXColorS10*)¬Color0; - } else { - var_r31 = (J3DGXColorS10*)&i_color[1]; - } - } else { - var_r31 = (J3DGXColorS10*)i_color; - } - - if (!checkNoResetFlg2(FLG2_UNK_80000)) { - if (checkZoraWearAbility()) { - field_0x064C->getMaterialNodePointer(13)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(0)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(1)->setTevColor(1, i_color); - mpLinkHatModel->getModelData()->getMaterialNodePointer(1)->setTevColor(1, i_color); - } else if (checkMagicArmorWearAbility()) { - field_0x064C->getMaterialNodePointer(11)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(10)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(9)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(8)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(6)->setTevColor(1, i_color); - mpLinkHatModel->getModelData()->getMaterialNodePointer(2)->setTevColor(1, i_color); - mpLinkHatModel->getModelData()->getMaterialNodePointer(1)->setTevColor(1, i_color); - } else if (checkCasualWearFlg()) { - field_0x064C->getMaterialNodePointer(7)->setTevColor(1, i_color); - mpLinkHatModel->getModelData()->getMaterialNodePointer(0)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(5)->setTevColor(1, var_r31); - } else { - field_0x064C->getMaterialNodePointer(17)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(9)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(0)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(1)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(2)->setTevColor(1, i_color); - mpLinkHatModel->getModelData()->getMaterialNodePointer(0)->setTevColor(1, i_color); - field_0x064C->getMaterialNodePointer(16)->setTevColor(1, var_r31); - field_0x064C->getMaterialNodePointer(15)->setTevColor(1, var_r31); - field_0x064C->getMaterialNodePointer(14)->setTevColor(1, var_r31); - } - } -} - -/* 800CC7DC-800CC7FC 0C711C 0020+00 2/2 0/0 0/0 .text initTevCustomColor__9daAlink_cFv */ -void daAlink_c::initTevCustomColor() { - tevStr.mLightInf.a = 0; - tevStr.TevColor.r = 0; - tevStr.TevColor.g = 0; - tevStr.TevColor.b = 0; - tevStr.TevKColor.r = 0; - tevStr.TevKColor.b = 0; -} - -/* 800CC7FC-800CD78C 0C713C 0F90+00 1/1 0/0 0/0 .text draw__9daAlink_cFv */ -int daAlink_c::draw() { - if (checkWolf()) { - g_env_light.settingTevStruct(9, ¤t.pos, &tevStr); - } else { - g_env_light.settingTevStruct(10, ¤t.pos, &tevStr); - } - - initTevCustomColor(); - - if (mSight.getDrawFlg() && !checkEventRun()) { - mSight.setSight(); - } - - if (checkNoResetFlg1(FLG1_UNK_80)) { - JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x31c4); - if (emitter_p != NULL) { - if (checkPlayerNoDraw() && !checkEndResetFlg1(ERFLG1_UNK_4)) { - emitter_p->stopDrawParticle(); - } else { - emitter_p->playDrawParticle(); - } - } - } - - if (mClothesChangeWaitTimer != 0) { - if (mProcID == PROC_METAMORPHOSE) { - if (mProcVar3.field_0x300e > 0) { - tevStr.TevColor.r = 255; - } else { - tevStr.TevColor.r = -255; - } - - tevStr.TevColor.g = tevStr.TevColor.r; - tevStr.TevColor.b = tevStr.TevColor.r; - - g_env_light.setLightTevColorType_MAJI(mpWlChangeModel, &tevStr); - mDoExt_modelEntryDL(mpWlChangeModel); - } - return 1; - } - - BOOL temp_r30 = checkPlayerNoDraw(); - BOOL var_r29 = 0; - BOOL var_r31 = 1; - - if (field_0x06f4 != NULL) { - field_0x06f4->getTevColorReg(0, &tevStr.TevColor); - } else if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_DUNGEON_WARP || - mProcID == PROC_DUNGEON_WARP_SCN_START) - { - tevStr.TevColor.r = mProcVar3.field_0x300e; - tevStr.TevColor.g = mProcVar3.field_0x300e; - tevStr.TevColor.b = mProcVar3.field_0x300e; - } else if (field_0x346c != 0.0f) { - f32 var_f2 = fabsf(field_0x346c); - tevStr.TevColor.r = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropR; - tevStr.TevColor.g = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropG; - tevStr.TevColor.b = var_f2 * daAlinkHIO_wolf_c0::m.mLightDropB; - } else if (checkFreezeDamage()) { - tevStr.TevColor.r = daAlinkHIO_damage_c0::m.mFreezeR; - tevStr.TevColor.g = daAlinkHIO_damage_c0::m.mFreezeG; - tevStr.TevColor.b = daAlinkHIO_damage_c0::m.mFreezeB; - } else if (mDamageTimer != 0) { - if (!checkMagicArmorNoDamage()) { - int color_timer = mDamageTimer + mDamageColorTime; - - int r, g, b; - if (color_timer > 32) { - r = daAlinkHIO_damage_c0::m.mDamageR0; - g = daAlinkHIO_damage_c0::m.mDamageG0; - b = daAlinkHIO_damage_c0::m.mDamageB0; - } else if (color_timer > 16) { - r = daAlinkHIO_damage_c0::m.mDamageR1; - g = daAlinkHIO_damage_c0::m.mDamageG1; - b = daAlinkHIO_damage_c0::m.mDamageB1; - } else { - r = daAlinkHIO_damage_c0::m.mDamageR2; - g = daAlinkHIO_damage_c0::m.mDamageG2; - b = daAlinkHIO_damage_c0::m.mDamageB2; - } - - f32 var_f2 = fabsf(cM_ssin(color_timer * 0x800)); - tevStr.TevKColor.r = r * var_f2; - tevStr.TevKColor.g = g * var_f2; - tevStr.TevKColor.b = b * var_f2; - var_r31 = 0; - } - } else if (mIceDamageWaitTimer != 0) { - f32 temp_f4 = 1.0f - (mIceDamageWaitTimer * (1.0f / daAlinkHIO_damage_c0::m.mFreezeTime)); - f32 temp_f3 = 1.0f - temp_f4; - - tevStr.TevColor.r = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitR) + - (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeR); - tevStr.TevColor.g = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitG) + - (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeG); - tevStr.TevColor.b = (temp_f4 * daAlinkHIO_damage_c0::m.mFreezeInitB) + - (temp_f3 * daAlinkHIO_damage_c0::m.mFreezeB); - } else if (field_0x32b0[0].r != 0) { - tevStr.TevColor.r = field_0x32b0[0].r; - tevStr.TevColor.g = field_0x32b0[0].g; - tevStr.TevColor.b = field_0x32b0[0].b; - var_r29 = 1; - } else { - var_r31 = 0; - } - - if (!checkWolf()) { - if (var_r31) { - if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { - mpLinkModel->getModelData()->removeTevRegAnimator(mMagicArmorBodyBrk); - mpLinkHatModel->getModelData()->removeTevRegAnimator(mMagicArmorHeadBrk); - } - - if (var_r29) { - setWaterDropColor(&field_0x32b0[1]); - } else { - mSwordUpColorIntensity = 0.0f; - setWaterDropColor((J3DGXColorS10*)&tevStr.TevColor); - } - } else { - if (checkMagicArmorWearAbility()) { - mpLinkModel->getModelData()->entryTevRegAnimator(mMagicArmorBodyBrk); - mpLinkHatModel->getModelData()->entryTevRegAnimator(mMagicArmorHeadBrk); - } - - setWaterDropColor(&field_0x32a0[0]); - } - } else if (var_r31 && !var_r29) { - mSwordUpColorIntensity = 0.0f; - } - - if (checkWolf()) { - dComIfGd_setListDark(); - modelDraw(mpLinkModel, temp_r30); - - if (dComIfGs_isEventBit(0x510)) { - for (int i = 0; i < 4; i++) { - modelDraw(mpWlChainModels[i], temp_r30); - } - } - - tevStr.TevKColor.r = 0; - tevStr.TevKColor.g = 0; - tevStr.TevKColor.b = 0; - - if (checkSwordDraw()) { - modelDraw(mSwordModel, temp_r30); - modelDraw(mSheathModel, temp_r30); - } - - if (checkShieldDraw()) { - modelDraw(mShieldModel, temp_r30); - } - - if (mHeldItemModel != NULL) { - if (mEquipItem == 0x109) { - dComIfGd_setListMiddle(); - } else if (mEquipItem == 0x10A) { - mHeldItemModel->getModelData()->entryTexMtxAnimator(field_0x0718); - } - - modelDraw(mHeldItemModel, temp_r30); - } - - dComIfGd_setList(); - } else { - setDrawHand(); - - if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { - if (field_0x06e8 != NULL) { - field_0x06e8->hide(); - } - - field_0x06f0->hide(); - - if (checkHookshotReadyMaterialOffMode()) { - for (u16 i = 0; i < mFallVoiceInit; i++) { - if (!(field_0x32cc & (1 << i))) { - field_0x064C->getMaterialNodePointer(i)->getShape()->hide(); - } - } - } - } - - modelDraw(mpLinkModel, temp_r30); - - if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { - if (checkHookshotReadyMaterialOffMode()) { - for (u16 i = 0; i < mFallVoiceInit; i++) { - if (!(field_0x32cc & (1 << i))) { - field_0x064C->getMaterialNodePointer(i)->getShape()->show(); - } - } - - if (!checkZoraWearMaskDraw() && checkZoraWearAbility()) { - field_0x06f0->hide(); - } - } - - if (field_0x06e8 != NULL) { - field_0x06e8->show(); - } - - if (checkZoraWearMaskDraw() || !checkZoraWearAbility()) { - field_0x06f0->show(); - } - } - - modelDraw(mpLinkHandModel, temp_r30); - if (field_0x2f92 == 0xFB) { - modelDraw(mpDemoHLTmpModel, temp_r30); - } - - if (field_0x2f93 == 0xFB) { - modelDraw(mpDemoHRTmpModel, temp_r30); - } - - BOOL var_r3 = temp_r30 || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20); - - modelDraw(mpLinkHatModel, var_r3); - - if (checkNoResetFlg1(FLG1_UNK_10)) { - modelDraw(mpDemoFCBlendModel, var_r3); - modelDraw(mpDemoFCTongueModel, var_r3); - } else { - modelDraw(mpLinkFaceModel, var_r3); - } - - tevStr.TevKColor.r = 0; - tevStr.TevKColor.g = 0; - tevStr.TevKColor.b = 0; - - if (checkSwordDraw()) { - if (!checkNoResetFlg3(FLG3_UNK_80000000)) { - modelDraw(mSwordModel, var_r3); - } - - if (!checkWoodSwordEquip()) { - modelDraw(mSheathModel, var_r3); - } - } - - if (checkShieldDraw()) { - BOOL var_r24_2; - if (checkWoodShieldEquip() && field_0x2fcb != 0 && mProcID != PROC_METAMORPHOSE) { - tevStr.TevColor.r = -((120 - field_0x2fcb) * 32) / 120; - tevStr.TevColor.g = tevStr.TevColor.r; - tevStr.TevColor.b = tevStr.TevColor.r; - var_r24_2 = 1; - } else { - var_r24_2 = 0; - } - - modelDraw(mShieldModel, var_r3); - if (var_r24_2) { - tevStr.TevColor.r = 0; - tevStr.TevColor.g = 0; - tevStr.TevColor.b = 0; - } - } - - if (var_r29) { - tevStr.TevColor.r = 0; - tevStr.TevColor.g = 0; - tevStr.TevColor.b = 0; - } - - if (checkItemDraw()) { - changeHookshotDrawModel(); - modelDraw(mHeldItemModel, temp_r30); - - if (mpHookTipModel != NULL) { - modelDraw(mpHookTipModel, temp_r30); - } - - if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && - !checkNoResetFlg0(FLG0_UNK_2)) - { - if (field_0x0710 != NULL) { - modelDraw(field_0x0710, temp_r30); - } - - if (field_0x0714 != NULL) { - modelDraw(field_0x0714, temp_r30); - } - } - - changeHookshotDrawModel(); - - if (mpHookChain != NULL && !temp_r30 && - ((checkHookshotItem(mEquipItem) && (mHeldItemRootPos.abs(mHookshotTopPos) > 1.0f || - field_0x3810.abs(mIronBallBgChkPos) > 1.0f)) || - mEquipItem == fpcNm_ITEM_IRONBALL)) - { - dComIfGd_getOpaListDark()->entryImm(mpHookChain, 0); - } - } - - if (checkNoResetFlg2(FLG2_UNK_1)) { - modelDraw(mpKanteraModel, temp_r30); - preKandelaarDraw(); - modelDraw(mpKanteraGlowModel, temp_r30); - } else if (checkNoResetFlg2(FLG2_UNK_20000)) { - basicModelDraw(mpKanteraModel); - preKandelaarDraw(); - basicModelDraw(mpKanteraGlowModel); - } - - if (checkEquipHeavyBoots()) { - GXColorS10 color = tevStr.TevColor; - for (int i = 0; i < 2; i++) { - JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x3228[i][0]); - - if (emitter_p != NULL) { - tevStr.TevColor.r = 5; - tevStr.TevColor.g = tevStr.TevColor.r; - tevStr.TevColor.b = tevStr.TevColor.r; - } else { - tevStr.TevColor = color; - } - - modelDraw(mpLinkBootModels[i], temp_r30); - } - - tevStr.TevColor = color; - } - } - - if (!checkCanoeRide() && !dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x10000) && - !checkNoResetFlg2(FLG2_PLAYER_SHADOW)) - { - shadowDraw(); - } - - if (m_swordBlur.field_0x14 > 0) { - dComIfGd_entryZSortXluList(&m_swordBlur, m_swordBlur.field_0x308[0]); - } - - return 1; -} - -/* 800CD78C-800CD7AC 0C80CC 0020+00 1/0 0/0 0/0 .text daAlink_Draw__FP9daAlink_c */ -static int daAlink_Draw(daAlink_c* i_this) { - return i_this->draw(); -} - -/* 800CD7AC-800CE208 0C80EC 0A5C+00 1/1 0/0 0/0 .text __dt__9daAlink_cFv */ -daAlink_c::~daAlink_c() { - dComIfGp_clearPlayerStatus0(0, ~0x400030); - dComIfGp_clearPlayerStatus1(0, 0x7FB7B78); - - mZ2Link.deleteKantera(); - mZ2Link.deleteObject(); - if (mpHookSound != NULL) { - mpHookSound->deleteObject(); - mpHookSound = NULL; - } - - if (checkNoResetFlg2(FLG2_UNK_80)) { - offNoResetFlg2(FLG2_UNK_80); - dComIfGp_2dShowOn(); - } - - if (mProcID == PROC_WARP || (mProcID == PROC_TOOL_DEMO && mProcVar2.field_0x300c != 0)) { - changeWarpMaterial(WARP_MAT_MODE_1); - } - - dComIfG_resDelete(&mPhaseReq, mArcName); - if (mpArcHeap != NULL) { - mDoExt_destroyExpHeap(mpArcHeap); - } - - dComIfG_resDelete(&mShieldPhaseReq, mShieldArcName); - if (mpShieldArcHeap != NULL) { - mDoExt_destroyExpHeap(mpShieldArcHeap); - } - - dKy_plight_cut(&field_0x2f5c); - - dComIfGp_setPlayer(0, NULL); - dComIfGp_setLinkPlayer(NULL); -} - -/* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */ -static int daAlink_Delete(daAlink_c* i_this) { - if (i_this->getClothesChangeWaitTimer() != 0) { - i_this->loadModelDVD(); - return 0; - } else if (i_this->getShieldChangeWaitTimer() != 0) { - i_this->loadShieldModelDVD(); - return 0; - } else { - i_this->~daAlink_c(); - return 1; - } -} - /* 800CE294-800CE468 0C8BD4 01D4+00 1/1 0/0 0/0 .text checkNoSubjectModeCamera__9daAlink_cFv */ bool daAlink_c::checkNoSubjectModeCamera() { return dCam_getBody()->Type() == dCam_getBody()->GetCameraTypeFromCameraName("Rotary") || @@ -4704,750 +397,3 @@ u32 daAlink_c::checkPlayerNoDraw() { daAlink_c::daAlink_c() : mAnmHeap3(0), mAnmHeap4(0), mFaceBtpHeap(0x800), mFaceBtkHeap(0x400), mFaceBckHeap(0xC00), mAnmHeap9(0x800) {} - -/* 800CFC3C-800CFC78 0CA57C 003C+00 2/2 0/0 0/0 .text __dt__Q29daAlink_c14firePointEff_cFv */ -daAlink_c::firePointEff_c::~firePointEff_c() {} - -/* 800CFC78-800CFC7C 0CA5B8 0004+00 1/1 0/0 0/0 .text __ct__Q29daAlink_c14firePointEff_cFv */ -daAlink_c::firePointEff_c::firePointEff_c() { - /* empty function */ -} - -/* 800CFC7C-800CFCB8 0CA5BC 003C+00 0/0 2/2 0/0 .text __dt__15LIGHT_INFLUENCEFv */ -extern "C" void __dt__15LIGHT_INFLUENCEFv() { - // NONMATCHING -} - -/* 800CFCB8-800CFCF4 0CA5F8 003C+00 2/2 0/0 0/0 .text __dt__18daAlink_footData_cFv */ -daAlink_footData_c::~daAlink_footData_c() {} - -/* 800CFCF4-800CFCF8 0CA634 0004+00 1/1 0/0 0/0 .text __ct__18daAlink_footData_cFv */ -daAlink_footData_c::daAlink_footData_c() { - /* empty function */ -} - -/* 800CFCF8-800CFD58 0CA638 0060+00 1/0 0/0 0/0 .text __dt__29dAlink_bottleWaterPcallBack_cFv */ -// dAlink_bottleWaterPcallBack_c::~dAlink_bottleWaterPcallBack_c() { -extern "C" void __dt__29dAlink_bottleWaterPcallBack_cFv() { - // NONMATCHING -} - -/* 800CFD58-800CFDF4 0CA698 009C+00 1/0 0/0 0/0 .text __dt__14daAlink_blur_cFv */ -// daAlink_blur_c::~daAlink_blur_c() { -extern "C" void __dt__14daAlink_blur_cFv() { - // NONMATCHING -} - -/* 800CFDF4-800CFE68 0CA734 0074+00 1/0 0/0 0/0 .text __dt__15daAlink_sight_cFv */ -// daAlink_sight_c::~daAlink_sight_c() { -extern "C" void __dt__15daAlink_sight_cFv() { - // NONMATCHING -} - -/* 800CFE68-800CFEB0 0CA7A8 0048+00 1/0 0/0 0/0 .text __dt__20daAlink_lockCursor_cFv */ -// daAlink_lockCursor_c::~daAlink_lockCursor_c() { -extern "C" void __dt__20daAlink_lockCursor_cFv() { - // NONMATCHING -} - -/* 800CFEB0-800CFEC4 0CA7F0 0014+00 1/1 0/0 0/0 .text checkRideOn__9daAlink_cCFv */ -extern "C" BOOL checkRideOn__9daAlink_cCFv(daAlink_c* this_) { - return this_->mRideStatus != 0; -} - -/* 800CFEC4-800CFEF4 0CA804 0030+00 1/1 0/0 0/0 .text dComIfGp_att_getCatghTarget__Fv */ -extern "C" dAttCatch_c* dComIfGp_att_getCatghTarget__Fv() { - // NONMATCHING - return 0; -} - -/* 800CFEF4-800CFF2C 0CA834 0038+00 1/1 0/0 0/0 .text mDoAud_setLinkHp__Fll */ -extern "C" void mDoAud_setLinkHp__Fll(s32 param_0, s32 param_1) { - if (Z2GetLink() != NULL) { - Z2GetLink()->setLinkHp(param_0, param_1); - } -} - -/* 800CFF2C-800CFF3C 0CA86C 0010+00 1/1 0/0 0/0 .text dComIfGs_getLife__Fv */ -extern "C" u16 dComIfGs_getLife__Fv() { - return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife(); -} - -/* 800CFF3C-800CFF4C 0CA87C 0010+00 1/1 0/0 0/0 .text dComIfGp_getRStatus__Fv */ -extern "C" u8 dComIfGp_getRStatus__Fv() { - return g_dComIfG_gameInfo.play.getRStatus(); -} - -/* 800CFF4C-800CFFA4 0CA88C 0058+00 1/1 0/0 0/0 .text checkAttentionLock__9daAlink_cFv */ -extern "C" BOOL checkAttentionLock__9daAlink_cFv(daAlink_c* this_) { - return this_->mAttention->Lockon(); -} - -/* 800CFFA4-800CFFC0 0CA8E4 001C+00 1/1 0/0 0/0 .text dComIfGp_setItemLifeCount__FfUc */ -extern "C" void dComIfGp_setItemLifeCount__FfUc(f32 amount, u8 type) { - g_dComIfG_gameInfo.play.setItemLifeCount(amount, type); -} - -/* 800CFFC0-800CFFE0 0CA900 0020+00 1/1 0/0 0/0 .text cMtx_multVec__FPA4_CfPC3VecP3Vec */ -extern "C" void cMtx_multVec__FPA4_CfPC3VecP3Vec() { - // NONMATCHING -} - -/* 800CFFE0-800CFFF4 0CA920 0014+00 1/1 0/0 0/0 .text getAnmMtx__8J3DModelFi */ -extern "C" MtxP getAnmMtx__8J3DModelFi(J3DModel* this_, int i) { - return this_->mMtxBuffer->getAnmMtx(i); -} - -/* 800CFFF4-800D0020 0CA934 002C+00 1/1 0/0 0/0 .text setBaseTRMtx__8J3DModelFPA4_f */ -extern "C" void setBaseTRMtx__8J3DModelFPA4_f(J3DModel* this_, MtxP matrix) { - MTXCopy(matrix, this_->mBaseTransformMtx); -} - -/* 800D0020-800D0048 0CA960 0028+00 1/1 0/0 0/0 .text checkFmChainGrabAnime__9daAlink_cCFv */ -extern "C" BOOL checkFmChainGrabAnime__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkUpperAnime(0x62) || this_->checkUpperAnime(0x2A0); -} - -/* 800D0048-800D005C 0CA988 0014+00 1/1 0/0 0/0 .text checkSmallUpperGuardAnime__9daAlink_cCFv */ -extern "C" BOOL checkSmallUpperGuardAnime__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkUpperAnime(daAlink_c::ANM_SMALL_GUARD); -} - -/* 800D005C-800D008C 0CA99C 0030+00 1/1 0/0 0/0 .text dComIfGp_evmng_startCheck__FPCc */ -extern "C" void dComIfGp_evmng_startCheck__FPCc() { - // NONMATCHING -} - -/* 800D008C-800D00BC 0CA9CC 0030+00 1/1 0/0 0/0 .text mDoAud_setLinkGroupInfo__FUc */ -extern "C" void mDoAud_setLinkGroupInfo__FUc(u8 param_0) { - if (Z2GetLink() != NULL) { - Z2GetLink()->setLinkGroupInfo(param_0); - } -} - -/* 800D00BC-800D00D0 0CA9FC 0014+00 1/1 0/0 0/0 .text getAnm__25mDoExt_MtxCalcAnmBlendTblFi */ -extern "C" void getAnm__25mDoExt_MtxCalcAnmBlendTblFi() { - // NONMATCHING -} - -/* 800D00D0-800D00DC 0CAA10 000C+00 1/1 0/0 0/0 .text ChkRoofHit__9dBgS_AcchCFv */ -extern "C" bool ChkRoofHit__9dBgS_AcchCFv(dBgS_Acch* this_) { - return this_->m_flags & dBgS_Acch::ROOF_HIT; -} - -/* 800D00DC-800D00EC 0CAA1C 0010+00 1/1 0/0 0/0 .text ClrGroundHit__9dBgS_AcchFv */ -extern "C" void ClrGroundHit__9dBgS_AcchFv(dBgS_Acch* this_) { - this_->m_flags &= ~dBgS_Acch::GROUND_HIT; -} - -/* 800D00EC-800D0110 0CAA2C 0024+00 1/1 0/0 0/0 .text checkReinRide__9daAlink_cCFv */ -extern "C" u32 checkReinRide__9daAlink_cCFv(daAlink_c* this_) { - return this_->mRideStatus == 1 || this_->mRideStatus == 2; -} - -/* 800D0110-800D0138 0CAA50 0028+00 1/1 0/0 0/0 .text checkWolfEnemyThrowAnime__9daAlink_cCFv */ -extern "C" BOOL checkWolfEnemyThrowAnime__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkUpperAnime(0x2BD) || this_->checkUpperAnime(0x2BE); -} - -/* 800D0138-800D014C 0CAA78 0014+00 1/1 0/0 0/0 .text checkSpecialDemoMode__9daAlink_cCFv - */ -extern "C" BOOL checkSpecialDemoMode__9daAlink_cCFv(daAlink_c* this_) { - return this_->mDemo.getDemoType() == 5; -} - -/* 800D014C-800D0164 0CAA8C 0018+00 1/1 0/0 0/0 .text setMidnaTalkStatus__9daAlink_cFUc - */ -extern "C" void setMidnaTalkStatus__9daAlink_cFUc(daAlink_c* this_, u8 status) { - dComIfGp_setZStatus(status, 0); -} - -/* 800D0164-800D0180 0CAAA4 001C+00 1/1 0/0 0/0 .text set3DStatus__9daAlink_cFUcUc */ -extern "C" void set3DStatus__9daAlink_cFUcUc(daAlink_c* this_, u8 status, u8 direction) { - dComIfGp_set3DStatus(status, direction, 0); -} - -/* 800D0180-800D018C 0CAAC0 000C+00 1/1 0/0 0/0 .text offSetFlg__16daAlink_matAnm_cFv */ -extern "C" void offSetFlg__16daAlink_matAnm_cFv(daAlink_matAnm_c* this_) { - this_->mSetFlag = 0; -} - -/* 800D018C-800D0198 0CAACC 000C+00 1/1 0/0 0/0 .text checkModeFlg__9daAlink_cCFUl */ -extern "C" u32 checkModeFlg__9daAlink_cCFUl(daAlink_c* this_, u32 pFlag) { - return this_->mModeFlg & pFlag; -} - -/* 800D0198-800D01A0 0CAAD8 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daAlink_cCFv */ -extern "C" u8 getShieldChangeWaitTimer__9daAlink_cCFv(daAlink_c* this_) { - return this_->mShieldChangeWaitTimer; -} - -/* 800D01A0-800D01A8 0CAAE0 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daAlink_cCFv */ -extern "C" u8 getClothesChangeWaitTimer__9daAlink_cCFv(daAlink_c* this_) { - return this_->mClothesChangeWaitTimer; -} - -/* 800D01A8-800D01E0 0CAAE8 0038+00 1/0 0/0 0/0 .text checkHorseStart__9daAlink_cFv */ -extern "C" BOOL checkHorseStart__9daAlink_cFv(daAlink_c* this_) { - return this_->checkHorseStart(this_->getLastSceneMode(), this_->getStartMode()); -} - -/* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv - */ -extern "C" BOOL checkCutTurnCharge__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CUT_TURN_MOVE && this_->mProcVar2.field_0x300c == 0; -} - -/* 800D0208-800D0228 0CAB48 0020+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daAlink_cFi */ -extern "C" bool checkAcceptDungeonWarpAlink__9daAlink_cFi(daAlink_c* this_) { - return this_->checkAcceptWarp(); -} - -/* 800D0228-800D0274 0CAB68 004C+00 1/0 0/0 0/0 .text getSpinnerActor__9daAlink_cFv */ -extern "C" daSpinner_c* getSpinnerActor__9daAlink_cFv(daAlink_c* this_) { - daSpinner_c* spinnerActor; - - if (!this_->checkSpinnerRide()) { - spinnerActor = NULL; - } else { - spinnerActor = (daSpinner_c*)this_->mRideAcKeep.getActor(); - } - return static_cast(spinnerActor); -} - -/* 800D0274-800D027C 0CABB4 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daAlink_cCFv */ -extern "C" s16 getSumouCounter__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcVar2.field_0x300c; -} - -/* 800D027C-800D0284 0CABBC 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daAlink_cCFv - */ -extern "C" s16 checkSumouWithstand__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcVar3.field_0x300e; -} - -/* 800D0284-800D0290 0CABC4 000C+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daAlink_cFP10fopAc_ac_cUs - */ -extern "C" void setMidnaMsgNum__9daAlink_cFP10fopAc_ac_cUs(daAlink_c* this_, fopAc_ac_c* param_0, u16 pMsgNum) { - this_->mMidnaMsgNum = pMsgNum; - static_cast(this_->mMidnaMsg) = param_0; -} - -/* 800D0290-800D029C 0CABD0 000C+00 1/0 0/0 0/0 .text getModelMtx__9daAlink_cFv */ -extern "C" MtxP getModelMtx__9daAlink_cFv(daAlink_c* this_) { - return this_->mpLinkModel->getBaseTRMtx(); -} - -/* 800D029C-800D02A4 0CABDC 0008+00 1/0 0/0 0/0 .text getInvMtx__9daAlink_cFv */ -extern "C" MtxP getInvMtx__9daAlink_cFv(daAlink_c* this_) { - return this_->mInvMtx; -} - -/* 800D02A4-800D02B8 0CABE4 0014+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daAlink_cFv */ -extern "C" MtxP getLinkBackBone1Matrix__9daAlink_cFv(daAlink_c* this_) { - return this_->mpLinkModel->getAnmMtx(1); -} - -/* 800D02B8-800D02CC 0CABF8 0014+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daAlink_cFv */ -extern "C" MtxP getWolfMouthMatrix__9daAlink_cFv(daAlink_c* this_) { - return this_->mpLinkModel->getAnmMtx(13); -} - -/* 800D02CC-800D02E0 0CAC0C 0014+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daAlink_cFv */ -extern "C" MtxP getWolfBackbone2Matrix__9daAlink_cFv(daAlink_c* this_) { - return this_->mpLinkModel->getAnmMtx(2); -} - -/* 800D02E0-800D0334 0CAC20 0054+00 1/0 0/0 0/0 .text getBottleMtx__9daAlink_cFv */ -extern "C" MtxP getBottleMtx__9daAlink_cFv(daAlink_c* this_) { - if (this_->mHeldItemModel != NULL && this_->checkBottleItem(this_->mEquipItem)) { - return this_->mHeldItemModel->getBaseTRMtx(); - } - - return NULL; -} - -/* 800D0334-800D0350 0CAC74 001C+00 1/0 0/0 0/0 .text getHeadMtx__9daAlink_cFv */ -extern "C" MtxP getHeadMtx__9daAlink_cFv(daAlink_c* this_) { - return this_->mpLinkModel->getAnmMtx(this_->field_0x30b4); -} - -/* 800D0350-800D0358 0CAC90 0008+00 1/0 0/0 0/0 .text getGroundY__9daAlink_cFv */ -extern "C" f32 getGroundY__9daAlink_cFv(daAlink_c* this_) { - return this_->mLinkAcch.GetGroundH(); -} - -/* 800D0358-800D0360 0CAC98 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daAlink_cCFv */ -extern "C" f32 getBaseAnimeFrameRate__9daAlink_cCFv(daAlink_c* this_) { - return this_->mUnderFrameCtrl[0].getRate(); -} - -/* 800D0360-800D0368 0CACA0 0008+00 1/0 0/0 0/0 .text getAtnActorID__9daAlink_cCFv */ -extern "C" s32 getAtnActorID__9daAlink_cCFv(daAlink_c* this_) { - return this_->mAtnActorID; -} - -/* 800D0368-800D0370 0CACA8 0008+00 1/0 0/0 0/0 .text getItemID__9daAlink_cCFv */ -extern "C" s32 getItemID__9daAlink_cCFv(daAlink_c* this_) { - return this_->mItemAcKeep.getID(); -} - -/* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */ -extern "C" s32 getGrabActorID__9daAlink_cCFv(daAlink_c* this_) { - if (this_->mEquipItem == 0x102) { - return this_->mItemAcKeep.getID(); - } else { - return this_->mGrabItemAcKeep.getID(); - } -} - -/* 800D038C-800D03B4 0CACCC 0028+00 1/0 0/0 0/0 .text setForcePutPos__9daAlink_cFRC4cXyz - */ -extern "C" void setForcePutPos__9daAlink_cFRC4cXyz(daAlink_c* this_, cXyz const& pPutPos) { - this_->mForcePutPos = pPutPos; - this_->onEndResetFlg1(daAlink_c::ERFLG1_UNK_2000); -} - -/* 800D03B4-800D03C8 0CACF4 0014+00 1/0 0/0 0/0 .text checkPlayerFly__9daAlink_cCFv */ -extern "C" u32 checkPlayerFly__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkModeFlg(daAlink_c::MODE_SWIMMING | daAlink_c::MODE_ROPE_WALK | daAlink_c::MODE_VINE_CLIMB | daAlink_c::MODE_UNK_800 | - daAlink_c::MODE_NO_COLLISION | daAlink_c::MODE_CLIMB | daAlink_c::MODE_JUMP); -} - -/* 800D03C8-800D03DC 0CAD08 0014+00 1/0 0/0 0/0 .text checkFrontRoll__9daAlink_cCFv */ -extern "C" BOOL checkFrontRoll__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_FRONT_ROLL; -} - -/* 800D03DC-800D03F0 0CAD1C 0014+00 1/0 0/0 0/0 .text checkWolfDash__9daAlink_cCFv */ -extern "C" BOOL checkWolfDash__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_DASH; -} - -/* 800D03F0-800D0414 0CAD30 0024+00 1/0 0/0 0/0 .text checkAutoJump__9daAlink_cCFv */ -extern "C" BOOL checkAutoJump__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_AUTO_JUMP || this_->mProcID == daAlink_c::PROC_WOLF_AUTO_JUMP; -} - -/* 800D0414-800D0444 0CAD54 0030+00 1/0 0/0 0/0 .text checkSideStep__9daAlink_cCFv */ -extern "C" bool checkSideStep__9daAlink_cCFv(daAlink_c* this_) { - return (this_->mProcID == daAlink_c::PROC_SIDESTEP || this_->mProcID == daAlink_c::PROC_WOLF_SIDESTEP) && this_->mProcVar1.field_0x300a != 0; -} - -/* 800D0444-800D0468 0CAD84 0024+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daAlink_cCFv - */ -extern "C" bool checkWolfTriggerJump__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_SIDESTEP || this_->mProcID == daAlink_c::PROC_WOLF_JUMP_ATTACK; -} - -/* 800D0468-800D047C 0CADA8 0014+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daAlink_cCFv - */ -extern "C" BOOL checkGuardBreakMode__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_GUARD_BREAK; -} - -/* 800D047C-800D04A4 0CADBC 0028+00 1/0 0/0 0/0 .text checkLv3Slide__9daAlink_cCFv */ -extern "C" bool checkLv3Slide__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_SLIDE && this_->mProcVar3.field_0x300e != 0; -} - -/* 800D04A4-800D04B8 0CADE4 0014+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daAlink_cCFv */ -extern "C" bool checkWolfHowlDemoMode__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_HOWL_DEMO; -} - -/* 800D04B8-800D04CC 0CADF8 0014+00 1/0 0/0 0/0 .text checkElecDamage__9daAlink_cCFv */ -extern "C" BOOL checkElecDamage__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_ELEC_DAMAGE; -} - -/* 800D04CC-800D04F4 0CAE0C 0028+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daAlink_cCFv */ -extern "C" BOOL checkEmptyBottleSwing__9daAlink_cCFv(daAlink_c* this_) { - return this_->mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE && this_->mProcID == daAlink_c::PROC_BOTTLE_SWING; -} - -/* 800D04F4-800D0508 0CAE34 0014+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daAlink_cCFv - */ -extern "C" BOOL checkBottleSwingMode__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_BOTTLE_SWING; -} - -/* 800D0508-800D051C 0CAE48 0014+00 1/0 0/0 0/0 .text checkHawkWait__9daAlink_cCFv */ -extern "C" BOOL checkHawkWait__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_HAWK_SUBJECT; -} - -/* 800D051C-800D0544 0CAE5C 0028+00 1/0 0/0 0/0 .text checkGoatThrow__9daAlink_cCFv */ -extern "C" BOOL checkGoatThrow__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_GOAT_CATCH && this_->mProcVar2.field_0x300c != 0; -} - -/* 800D0544-800D0570 0CAE84 002C+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daAlink_cCFv - */ -extern "C" BOOL checkGoatThrowAfter__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_GOAT_CATCH && this_->field_0x3478 > 0.0f; -} - -/* 800D0570-800D0598 0CAEB0 0028+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daAlink_cCFv - */ -extern "C" BOOL checkWolfTagLockJump__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_TAG_JUMP && this_->field_0x3198 == 0; -} - -/* 800D0598-800D05AC 0CAED8 0014+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daAlink_cCFv */ -extern "C" BOOL checkWolfTagLockJumpLand__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_TAG_JUMP_LAND; -} - -/* 800D05AC-800D05C0 0CAEEC 0014+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daAlink_cCFv */ -extern "C" BOOL checkWolfRopeHang__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_ROPE_HANG; -} - -/* 800D05C0-800D05D4 0CAF00 0014+00 1/0 0/0 0/0 .text checkRollJump__9daAlink_cCFv */ -extern "C" BOOL checkRollJump__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_ROLL_JUMP; -} - -/* 800D05D4-800D05E8 0CAF14 0014+00 1/0 0/0 0/0 .text checkGoronRideWait__9daAlink_cCFv - */ -extern "C" BOOL checkGoronRideWait__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_GORON_RIDE_WAIT; -} - -/* 800D05E8-800D05FC 0CAF28 0014+00 1/0 0/0 0/0 .text checkWolfChain__9daAlink_cCFv */ -extern "C" BOOL checkWolfChain__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_CHAIN_WAIT; -} - -/* 800D05FC-800D0610 0CAF3C 0014+00 1/0 0/0 0/0 .text checkWolfWait__9daAlink_cCFv */ -extern "C" BOOL checkWolfWait__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_WAIT; -} - -/* 800D0610-800D0624 0CAF50 0014+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daAlink_cCFv - */ -extern "C" BOOL checkWolfJumpAttack__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_JUMP_ATTACK; -} - -/* 800D0624-800D0638 0CAF64 0014+00 1/0 0/0 0/0 .text checkWolfRSit__9daAlink_cCFv */ -extern "C" BOOL checkWolfRSit__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_SIT; -} - -/* 800D0638-800D0660 0CAF78 0028+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daAlink_cCFv - */ -extern "C" BOOL checkBottleDrinkEnd__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_BOTTLE_DRINK && this_->mProcVar3.field_0x300e != 0; -} - -/* 800D0660-800D0674 0CAFA0 0014+00 1/0 0/0 0/0 .text checkWolfDig__9daAlink_cCFv */ -extern "C" BOOL checkWolfDig__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_DIG; -} - -/* 800D0674-800D0688 0CAFB4 0014+00 1/0 0/0 0/0 .text checkCutCharge__9daAlink_cCFv */ -extern "C" BOOL checkCutCharge__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CUT_TURN_MOVE; -} - -/* 800D0688-800D06B0 0CAFC8 0028+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daAlink_cCFv */ -extern "C" BOOL checkCutLargeJumpCharge__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CUT_TURN_MOVE && this_->mProcVar2.field_0x300c != 0; -} - -/* 800D06B0-800D06D8 0CAFF0 0028+00 1/0 0/0 0/0 .text checkComboCutTurn__9daAlink_cCFv */ -extern "C" BOOL checkComboCutTurn__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CUT_TURN && this_->mComboCutCount != 0; -} - -/* 800D06D8-800D0704 0CB018 002C+00 1/0 0/0 0/0 .text checkClimbMove__9daAlink_cCFv */ -extern "C" BOOL checkClimbMove__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CLIMB_MOVE_UPDOWN || this_->mProcID == daAlink_c::PROC_LADDER_MOVE || - this_->mProcID == daAlink_c::PROC_CLIMB_MOVE_SIDE; -} - -/* 800D0704-800D0718 0CB044 0014+00 1/0 0/0 0/0 .text checkGrassWhistle__9daAlink_cCFv */ -extern "C" BOOL checkGrassWhistle__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_GRASS_WHISTLE_WAIT; -} - -/* 800D0718-800D072C 0CB058 0014+00 1/0 0/0 0/0 .text checkBoarRun__9daAlink_cCFv */ -extern "C" BOOL checkBoarRun__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_BOAR_RUN; -} - -/* 800D072C-800D0794 0CB06C 0068+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daAlink_cCFv */ -extern "C" BOOL checkHorseRideNotReady__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkHorseRide() && this_->mProcID != daAlink_c::PROC_HORSE_RIDE && this_->mProcID != daAlink_c::PROC_HORSE_GETOFF; -} - -/* 800D0794-800D079C 0CB0D4 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daAlink_cCFv - */ -extern "C" f32 getSearchBallScale__9daAlink_cCFv(daAlink_c* this_) { - return this_->mSearchBallScale; -} - -/* 800D079C-800D07A4 0CB0DC 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daAlink_cFv */ -extern "C" int checkFastShotTime__9daAlink_cFv(daAlink_c* this_) { - return this_->mFastShotTime; -} - -/* 800D07A4-800D07D4 0CB0E4 0030+00 1/0 0/0 0/0 .text checkCutJumpCancelTurn__9daAlink_cCFv */ -extern "C" BOOL checkCutJumpCancelTurn__9daAlink_cCFv(daAlink_c* this_) { - return (this_->mProcID == daAlink_c::PROC_CUT_JUMP || this_->mProcID == daAlink_c::PROC_CUT_JUMP_LAND) && this_->field_0x3198 != 2; -} - -/* 800D07D4-800D07FC 0CB114 0028+00 1/0 0/0 0/0 .text - * checkSingleBoarBattleSecondBowReady__9daAlink_cCFv */ -extern "C" BOOL checkSingleBoarBattleSecondBowReady__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_HORSE_BOW_SUBJECT && this_->mProcVar2.field_0x300c != 0; -} - -/* 800D07FC-800D0818 0CB13C 001C+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daAlink_cFv */ -extern "C" void cancelDungeonWarpReadyNeck__9daAlink_cFv(daAlink_c* this_) { - if (this_->mProcID != daAlink_c::PROC_DUNGEON_WARP_READY) { - return; - } - this_->offModeFlg(daAlink_c::MODE_UNK_100); -} - -/* 800D0818-800D0830 0CB158 0018+00 1/0 0/0 0/0 .text - * onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c */ -extern "C" void onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c(daAlink_c* this_, u8 exitID, u8 exitDirection, fopAc_ac_c* scexAc) { - this_->mExitID = exitID | 0x8000; - this_->mExitDirection = exitDirection; - this_->mpScnChg = (daScex_c*)scexAc; -} - -/* 800D0830-800D084C 0CB170 001C+00 1/0 0/0 0/0 .text onSceneChangeDead__9daAlink_cFUci - */ -extern "C" void onSceneChangeDead__9daAlink_cFUci(daAlink_c* this_, u8 param_0, int param_1) { - if (this_->mProcID != daAlink_c::PROC_DEAD) { - return; - } - this_->mProcVar5.field_0x3012 = param_0; - this_->field_0x3198 = param_1; -} - -/* 800D084C-800D0860 0CB18C 0014+00 1/0 0/0 0/0 .text checkNoEquipItem__9daAlink_cCFv */ -extern "C" bool checkNoEquipItem__9daAlink_cCFv(daAlink_c* this_) { - return this_->mEquipItem == fpcNm_ITEM_NONE; -} - -/* 800D0860-800D087C 0CB1A0 001C+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daAlink_cCFv - */ -extern "C" s16 getBoardCutTurnOffsetAngleY__9daAlink_cCFv(daAlink_c* this_) { - if (this_->mProcID == daAlink_c::PROC_BOARD_CUT_TURN) { - return this_->mProcVar5.field_0x3012; - } - return 0; -} - -/* 800D087C-800D0884 0CB1BC 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daAlink_cFv - */ -extern "C" cXyz* getMagneBootsTopVec__9daAlink_cFv(daAlink_c* this_) { - return &this_->mMagneBootsTopVec; -} - -/* 800D0884-800D08B0 0CB1C4 002C+00 1/0 0/0 0/0 .text setCargoCarry__9daAlink_cFP10fopAc_ac_c */ -extern "C" void setCargoCarry__9daAlink_cFP10fopAc_ac_c(daAlink_c* this_, fopAc_ac_c* p_actor) { - this_->mSpecialMode = daAlink_c::SMODE_CARGO_CARRY; - this_->mCargoCarryAcKeep.setData(p_actor); -} - -/* 800D08B0-800D08DC 0CB1F0 002C+00 1/0 0/0 0/0 .text setGoronSideMove__9daAlink_cFP10fopAc_ac_c - */ -extern "C" void setGoronSideMove__9daAlink_cFP10fopAc_ac_c(daAlink_c* this_, fopAc_ac_c* p_actor) { - this_->mSpecialMode = daAlink_c::SMODE_GORON_THROW; - this_->mCargoCarryAcKeep.setData(p_actor); -} - -/* 800D08DC-800D091C 0CB21C 0040+00 1/0 0/0 0/0 .text setSumouReady__9daAlink_cFP10fopAc_ac_c */ -extern "C" void setSumouReady__9daAlink_cFP10fopAc_ac_c(daAlink_c* this_, fopAc_ac_c* p_actor) { - this_->mSpecialMode = daAlink_c::SMODE_SUMO_READY; - this_->mCargoCarryAcKeep.setData(p_actor); - this_->mDemo.setDemoMode(1); -} - -/* 800D091C-800D0930 0CB25C 0014+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daAlink_cFs */ -extern "C" void setSumouPushBackDirection__9daAlink_cFs(daAlink_c* this_, s16 param_0) { - if (this_->mProcID != daAlink_c::PROC_SUMOU_MOVE) { - return; - } - this_->mProcVar4.field_0x3010 = param_0; -} - -/* 800D0930-800D0948 0CB270 0018+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daAlink_cFv */ -extern "C" void setSumouLoseHeadUp__9daAlink_cFv(daAlink_c* this_) { - if (this_->mProcID != daAlink_c::PROC_SUMOU_WIN_LOSE) { - return; - } - this_->mSpecialMode = daAlink_c::SMODE_SUMO_LOSE; -} - -/* 800D0948-800D095C 0CB288 0014+00 1/0 0/0 0/0 .text checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c - */ -extern "C" bool checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c(daAlink_c* this_, const fopAc_ac_c* p_actor) { - return this_->field_0x27f4 == p_actor; -} - -/* 800D095C-800D0970 0CB29C 0014+00 1/0 0/0 0/0 .text - * checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c */ -extern "C" bool checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c(daAlink_c* this_, const fopAc_ac_c* p_actor) { - return this_->field_0x281c.getActorConst() == p_actor; -} - -/* 800D0970-800D0984 0CB2B0 0014+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daAlink_cFs */ -extern "C" void setWolfEnemyHangBiteAngle__9daAlink_cFs(daAlink_c* this_, s16 angle) { - if (this_->mProcID != daAlink_c::PROC_WOLF_ENEMY_HANG_BITE) { - return; - } - this_->mProcVar4.field_0x3010 = angle; -} - -/* 800D0984-800D0998 0CB2C4 0014+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daAlink_cFi */ -extern "C" void setSumouGraspCancelCount__9daAlink_cFi(daAlink_c* this_, int param_0) { - if (this_->mProcID != daAlink_c::PROC_SUMOU_MOVE) { - return; - } - this_->mProcVar2.field_0x300c = param_0; -} - -/* 800D0998-800D09AC 0CB2D8 0014+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daAlink_cCFv - */ -extern "C" bool checkItemSwordEquip__9daAlink_cCFv(daAlink_c* this_) { - return this_->mEquipItem == 0x103; -} - -/* 800D09AC-800D09B4 0CB2EC 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daAlink_cCFv - */ -extern "C" f32 getSinkShapeOffset__9daAlink_cCFv(daAlink_c* this_) { - return this_->mSinkShapeOffset; -} - -/* 800D09B4-800D09C8 0CB2F4 0014+00 1/0 0/0 0/0 .text checkSinkDead__9daAlink_cCFv */ -extern "C" BOOL checkSinkDead__9daAlink_cCFv(daAlink_c* this_) { - return this_->field_0x2fbd == 0xFF; -} - -/* 800D09C8-800D09DC 0CB308 0014+00 1/0 0/0 0/0 .text checkCutJumpMode__9daAlink_cCFv */ -extern "C" BOOL checkCutJumpMode__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CUT_JUMP; -} - -/* 800D09DC-800D09E4 0CB31C 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daAlink_cCFv */ -extern "C" s16 getGiantPuzzleAimAngle__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcVar2.mPuzzleAimAngle; -} - -/* 800D09E4-800D09EC 0CB324 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daAlink_cCFv */ -extern "C" u8 getSwordChangeWaitTimer__9daAlink_cCFv(daAlink_c* this_) { - return this_->mSwordChangeWaitTimer; -} - -/* 800D09EC-800D0A14 0CB32C 0028+00 1/0 0/0 0/0 .text checkMetamorphose__9daAlink_cCFv */ -extern "C" BOOL checkMetamorphose__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_METAMORPHOSE && this_->mProcVar1.field_0x300a == 0; -} - -/* 800D0A14-800D0A28 0CB354 0014+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daAlink_cCFv */ -extern "C" BOOL checkWolfDownAttackPullOut__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_WOLF_DOWN_AT_LAND; -} - -/* 800D0A28-800D0A30 0CB368 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daAlink_cCFv */ -extern "C" void getMidnaAtnPos__9daAlink_cCFv() { - // asm bool daAlink_c::getMidnaAtnPos() const { - // NONMATCHING -} - -/* 800D0A30-800D0A44 0CB370 0014+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daAlink_cCFv */ -extern "C" bool checkCopyRodEquip__9daAlink_cCFv(daAlink_c* this_) { - return this_->mEquipItem == fpcNm_ITEM_COPY_ROD; -} - -/* 800D0A44-800D0A6C 0CB384 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daAlink_cCFv */ -extern "C" bool checkCanoeFishingGetLeft__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e == 0; -} - -/* 800D0A6C-800D0A94 0CB3AC 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daAlink_cCFv */ -extern "C" bool checkCanoeFishingGetRight__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_CANOE_FISHING_GET && this_->mProcVar3.field_0x300e == 1; -} - -/* 800D0A94-800D0A9C 0CB3D4 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daAlink_cCFv - */ -extern "C" u8 checkBeeChildDrink__9daAlink_cCFv(daAlink_c* this_) { - return this_->field_0x2fd3; -} - -/* 800D0A9C-800D0AA4 0CB3DC 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daAlink_cFv */ -extern "C" Z2WolfHowlMgr* getWolfHowlMgrP__9daAlink_cFv(daAlink_c* this_) { - return &this_->mZ2WolfHowlMgr; -} - -/* 800D0AA4-800D0AC8 0CB3E4 0024+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daAlink_cCFv */ -extern "C" BOOL checkWolfHowlSuccessAnime__9daAlink_cCFv(daAlink_c* this_) { - return this_->checkUnderMove0BckNoArcWolf(daAlink_c::WANM_HOWL_SUCCESS); -} - -/* 800D0AC8-800D0AF0 0CB408 0028+00 1/0 0/0 0/0 .text checkOctaIealHang__9daAlink_cCFv */ -extern "C" bool checkOctaIealHang__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_BOSS_BODY_HANG && this_->field_0x32cc == 0; -} - -/* 800D0AF0-800D0B08 0CB430 0018+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daAlink_cFv */ -extern "C" void cancelOctaIealHang__9daAlink_cFv(daAlink_c* this_) { - if (this_->mProcID != daAlink_c::PROC_BOSS_BODY_HANG) { - return; - } - this_->mProcVar3.field_0x300e = 1; -} - -/* 800D0B08-800D0B20 0CB448 0018+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daAlink_cFv */ -extern "C" void cancelDragonHangBackJump__9daAlink_cFv(daAlink_c* this_) { - if (this_->mProcID != daAlink_c::PROC_BOSS_BODY_HANG) { - return; - } - this_->mProcVar3.field_0x300e = -1; -} - -/* 800D0B20-800D0B38 0CB460 0018+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daAlink_cFv - */ -extern "C" void setOctaIealWildHang__9daAlink_cFv(daAlink_c* this_) { - if (this_->mProcID != daAlink_c::PROC_BOSS_BODY_HANG) { - return; - } - this_->mProcVar0.field_0x3008 = 1; -} - -/* 800D0B38-800D0B60 0CB478 0028+00 1/0 0/0 0/0 .text checkDragonHangRide__9daAlink_cCFv - */ -extern "C" bool checkDragonHangRide__9daAlink_cCFv(daAlink_c* this_) { - return this_->mProcID == daAlink_c::PROC_BOSS_BODY_HANG && this_->field_0x32cc != 0; -} - -/* 800D0B60-800D0B8C 0CB4A0 002C+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daAlink_cFUlUl */ -extern "C" void playerStartCollisionSE__9daAlink_cFUlUl(daAlink_c* this_, u32 param_0, u32 param_1) { - this_->mZ2Link.startCollisionSE(param_0, param_1); -} - -/* 800D0B8C-800D0C6C 0CB4CC 00E0+00 1/0 0/0 0/0 .text __dt__16daAlink_matAnm_cFv */ -// daAlink_matAnm_c::~daAlink_matAnm_c() { -extern "C" void __dt__16daAlink_matAnm_cFv() { - // NONMATCHING -} - -/* 800D0C6C-800D0CDC 0CB5AC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 800D0CDC-800D0D38 0CB61C 005C+00 1/0 0/0 0/0 .text __dt__Q29daAlink_c14hsChainShape_cFv */ -extern "C" void __dt__Q29daAlink_c14hsChainShape_cFv() { - // NONMATCHING -} diff --git a/src/d/actor/d_a_alink_swim.inc b/src/d/actor/d_a_alink_swim.inc index 6271466edb4..7f9557943b5 100644 --- a/src/d/actor/d_a_alink_swim.inc +++ b/src/d/actor/d_a_alink_swim.inc @@ -1567,6 +1567,9 @@ int daAlink_c::procOctaIealSpitInit() { return 1; } +static f32 dummyFloat() { + return -34.0f; +} /* 80105A00-80105A84 100340 0084+00 1/0 0/0 0/0 .text procOctaIealSpit__9daAlink_cFv */ int daAlink_c::procOctaIealSpit() { diff --git a/src/d/actor/d_a_alink_swindow.inc b/src/d/actor/d_a_alink_swindow.inc index c307c19da26..71a881ba5fc 100644 --- a/src/d/actor/d_a_alink_swindow.inc +++ b/src/d/actor/d_a_alink_swindow.inc @@ -6,6 +6,10 @@ #include "d/actor/d_a_alink.h" #include "JSystem/JKernel/JKRExpHeap.h" +static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1); +static int daAlink_headModelCallBack(J3DJoint* i_joint, int param_1); +static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1); + /* 8013FF28-8013FF90 13A868 0068+00 2/2 0/0 0/0 .text setArcName__9daAlink_cFi */ void daAlink_c::setArcName(BOOL i_isWolf) { if (i_isWolf) { @@ -326,6 +330,9 @@ void daAlink_c::statusWindowExecute(const cXyz* i_pos, s16 i_angle) { } } +/* 804531E8-804531F0 0017E8 0008+00 1/1 0/0 0/0 .sdata2 waterColor$53845 */ +static const GXColorS10 waterColor = {0, 0, 0, 0}; + /* 80140984-80140AC8 13B2C4 0144+00 0/0 1/1 0/0 .text statusWindowDraw__9daAlink_cFv */ void daAlink_c::statusWindowDraw() { if (mClothesChangeWaitTimer == 0) { diff --git a/src/d/actor/d_a_alink_weakfn.inc b/src/d/actor/d_a_alink_weakfn.inc deleted file mode 100644 index cb1e0901010..00000000000 --- a/src/d/actor/d_a_alink_weakfn.inc +++ /dev/null @@ -1,1292 +0,0 @@ -// TODO: This isn't a real file, this is a hack to build OK with -sym on -// To properly fix, these symbols need to be compiler generated - -/* 80140C80-80140CDC 13B5C0 005C+00 1/0 0/0 0/0 .text __dt__8dEyeHL_cFv */ -// dEyeHL_c::~dEyeHL_c() { -extern "C" void __dt__8dEyeHL_cFv() { - // NONMATCHING -} - -/* 80140CDC-80140D24 13B61C 0048+00 0/0 1/0 0/0 .text __dt__18daPy_sightPacket_cFv */ -// daPy_sightPacket_c::~daPy_sightPacket_c() { -extern "C" void __dt__18daPy_sightPacket_cFv() { - // NONMATCHING -} - -/* 80140D24-80140D80 13B664 005C+00 3/2 0/0 0/0 .text __dt__16daPy_frameCtrl_cFv */ -// daPy_frameCtrl_c::~daPy_frameCtrl_c() { -extern "C" void __dt__16daPy_frameCtrl_cFv() { - // NONMATCHING -} - -/* 80140D80-80140DCC 13B6C0 004C+00 1/1 0/0 0/0 .text __ct__16daPy_frameCtrl_cFv */ -// daPy_frameCtrl_c::daPy_frameCtrl_c() { -extern "C" void __ct__16daPy_frameCtrl_cFv() { - // NONMATCHING -} - -/* 80140DCC-80140DF0 13B70C 0024+00 1/1 0/0 0/0 .text __defctor__14daPy_anmHeap_cFv */ -// void daPy_anmHeap_c::__defctor() { -extern "C" void __defctor__14daPy_anmHeap_cFv() { - // NONMATCHING -} - -/* 80140DF0-80140E2C 13B730 003C+00 2/2 0/0 0/0 .text __dt__19mDoExt_AnmRatioPackFv */ -extern "C" void __dt__19mDoExt_AnmRatioPackFv() { - // NONMATCHING -} - -/* 80140E2C-80140E40 13B76C 0014+00 1/1 0/0 0/0 .text __ct__19mDoExt_AnmRatioPackFv */ -extern "C" void __ct__19mDoExt_AnmRatioPackFv() { - // NONMATCHING -} - -/* 80140E40-80140EB8 13B780 0078+00 4/3 0/0 0/0 .text __dt__16dBgS_LinkRoofChkFv */ -// dBgS_LinkRoofChk::~dBgS_LinkRoofChk() { -extern "C" void __dt__16dBgS_LinkRoofChkFv() { - // NONMATCHING -} - -/* 80140EB8-80140F30 13B7F8 0078+00 4/3 0/0 0/0 .text __dt__15dBgS_LinkGndChkFv */ -// dBgS_LinkGndChk::~dBgS_LinkGndChk() { -extern "C" void __dt__15dBgS_LinkGndChkFv() { - // NONMATCHING -} - -/* 80140F30-80140FA0 13B870 0070+00 3/2 0/0 0/0 .text __dt__13dBgS_LinkAcchFv */ -// dBgS_LinkAcch::~dBgS_LinkAcch() { -extern "C" void __dt__13dBgS_LinkAcchFv() { - // NONMATCHING -} - -/* 80140FA0-80141020 13B8E0 0080+00 1/1 0/0 0/0 .text __ct__8dCcD_CpsFv */ -// dCcD_Cps::dCcD_Cps() { -extern "C" void __ct__8dCcD_CpsFv() { - // NONMATCHING -} - -/* 80141020-801410A4 13B960 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ -// dCcD_Cyl::dCcD_Cyl() { -extern "C" void __ct__8dCcD_CylFv() { - // NONMATCHING -} - -/* 801410A4-801410EC 13B9E4 0048+00 0/0 1/0 0/0 .text __dt__9cCcD_SttsFv */ -// cCcD_Stts::~cCcD_Stts() { -extern "C" void __dt__9cCcD_SttsFv() { - // NONMATCHING -} - -/* 801410EC-8014111C 13BA2C 0030+00 1/1 0/0 0/0 .text __ct__16daPy_actorKeep_cFv */ -extern "C" void __ct__16daPy_actorKeep_cFv() { - // NONMATCHING -} - -/* 8014111C-8014112C 13BA5C 0010+00 1/1 0/0 0/0 .text - * onNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ -extern "C" void onNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2(daPy_py_c* this_, daPy_py_c::daPy_FLG2 pFlag) { - this_->mNoResetFlg2 |= pFlag; -} - -/* 8014112C-8014113C 13BA6C 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ -extern "C" void offNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0() { - // NONMATCHING -} - -/* 8014113C-80141190 13BA7C 0054+00 1/1 0/0 0/0 .text mDoAud_seStartLevel__FUlPC3VecUlSc - */ -extern "C" void mDoAud_seStartLevel__FUlPC3VecUlSc() { - // NONMATCHING -} - -/* 80141190-8014119C 13BAD0 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg2__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG2 */ -extern "C" void checkEndResetFlg2__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG2() { - // NONMATCHING -} - -/* 8014119C-801411B0 13BADC 0014+00 1/1 0/0 0/0 .text dComIfGp_setBottleStatus__FUcUc */ -static void dComIfGp_setBottleStatus__FUcUc(u8 param_0, u8 param_1) { - // NONMATCHING -} - -/* 801411B0-801411D4 13BAF0 0024+00 1/1 0/0 0/0 .text getSumouMode__9daPy_py_cCFv */ -extern "C" void getSumouMode__9daPy_py_cCFv() { - // NONMATCHING -} - -/* 801411D4-801411E0 13BB14 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg3__9daPy_py_cCFQ29daPy_py_c9daPy_FLG3 */ -extern "C" void checkNoResetFlg3__9daPy_py_cCFQ29daPy_py_c9daPy_FLG3() { - // NONMATCHING -} - -/* 801411E0-801411F0 13BB20 0010+00 1/1 0/0 0/0 .text onCondition__11dEvt_info_cFUs */ -extern "C" void onCondition__11dEvt_info_cFUs() { - // NONMATCHING -} - -/* 801411F0-80141200 13BB30 0010+00 1/1 4/4 0/0 .text __ct__8cM3dGPlaFv */ -// cM3dGPla::cM3dGPla() { -extern "C" void __ct__8cM3dGPlaFv() { - // NONMATCHING -} - -/* 80141200-80141210 13BB40 0010+00 1/1 0/0 0/0 .text offCondition__11dEvt_info_cFUs */ -extern "C" void offCondition__11dEvt_info_cFUs() { - // NONMATCHING -} - -/* 80141210-80141230 13BB50 0020+00 1/1 0/0 0/0 .text checkShieldGet__9daPy_py_cFv */ -extern "C" BOOL checkShieldGet__9daPy_py_cFv() { - return dComIfGs_getSelectEquipShield() != fpcNm_ITEM_NONE; -} - -/* 80141230-80141264 13BB70 0034+00 1/1 0/0 0/0 .text fopAcM_onSwitch__FPC10fopAc_ac_ci - */ -extern "C" void fopAcM_onSwitch__FPC10fopAc_ac_ci(fopAc_ac_c const* param_0, int param_1) { - // NONMATCHING -} - -/* 80141264-80141294 13BBA4 0030+00 1/1 0/0 0/0 .text dComIfGs_isItemFirstBit__FUc */ -extern "C" int dComIfGs_isItemFirstBit__FUc(u8 i_no) { - return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no); -} - -/* 80141294-801412A0 13BBD4 000C+00 1/1 0/0 0/0 .text - * dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class */ -extern "C" void dStage_stagInfo_GetSaveTbl__FP21stage_stag_info_class() { - // NONMATCHING -} - -/* 801412A0-801412B0 13BBE0 0010+00 1/1 0/0 0/0 .text dComIfGp_getStage__Fv */ -extern "C" void dComIfGp_getStage__Fv() { - // NONMATCHING -} - -/* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv - */ -extern "C" u32 checkEquipHeavyBoots__9daPy_py_cCFv(daPy_py_c* this_) { - return this_->checkNoResetFlg0(daPy_py_c::FLG0_EQUIP_HVY_BOOTS); -} - -/* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */ -extern "C" void fopAcM_GetName__FPv() { - // NONMATCHING -} - -/* 801412C4-801412D4 13BC04 0010+00 1/1 0/0 0/0 .text - * onNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0 */ -extern "C" void onNoResetFlg0__9daPy_py_cFQ29daPy_py_c9daPy_FLG0(daPy_py_c* this_, daPy_py_c::daPy_FLG0 pFlag) { - this_->mNoResetFlg0 |= pFlag; -} - -/* 801412D4-801412F8 13BC14 0024+00 1/1 0/0 0/0 .text isOrderOK__14dEvt_control_cFv */ -extern "C" void isOrderOK__14dEvt_control_cFv() { - // NONMATCHING -} - -/* 801412F8-80141308 13BC38 0010+00 1/1 0/0 0/0 .text dComIfGp_getEvent__Fv */ -extern "C" dEvt_control_c& dComIfGp_getEvent__Fv() { - return g_dComIfG_gameInfo.play.getEvent(); -} - -/* 80141308-80141324 13BC48 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus0__FiUl - */ -extern "C" u32 dComIfGp_checkPlayerStatus0__FiUl(int param_0, u32 param_1) { - // NONMATCHING -} - -/* 80141324-80141340 13BC64 001C+00 1/1 0/0 0/0 .text dComIfGp_checkPlayerStatus1__FiUl - */ -extern "C" u32 dComIfGp_checkPlayerStatus1__FiUl(int param_0, u32 param_1) { - // NONMATCHING -} - -/* 80141340-8014134C 13BC80 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg1__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG1 */ -extern "C" u32 checkEndResetFlg1__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG1(daPy_py_c* this_, daPy_py_c::daPy_ERFLG1 pFlag) { - return this_->mEndResetFlg1 & pFlag; -} - -/* 8014134C-8014135C 13BC8C 0010+00 1/1 0/0 0/0 .text dComIfGp_getEventManager__Fv */ -extern "C" dEvent_manager_c& dComIfGp_getEventManager__Fv() { - return g_dComIfG_gameInfo.play.getEvtManager(); -} - -/* 8014135C-8014136C 13BC9C 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1 */ -extern "C" void offNoResetFlg1__9daPy_py_cFQ29daPy_py_c9daPy_FLG1() { - // NONMATCHING -} - -/* 8014136C-8014137C 13BCAC 0010+00 1/1 0/0 0/0 .text - * offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2 */ -extern "C" void offNoResetFlg2__9daPy_py_cFQ29daPy_py_c9daPy_FLG2() { - // NONMATCHING -} - -/* 8014137C-80141388 13BCBC 000C+00 1/1 0/0 0/0 .text setSpecialDemoType__11daPy_demo_cFv - */ -extern "C" void setSpecialDemoType__11daPy_demo_cFv(daPy_demo_c* this_) { - this_->setDemoType(5); -} - -/* 80141388-8014139C 13BCC8 0014+00 1/1 0/0 0/0 .text checkCommandCatch__11dEvt_info_cFv - */ -extern "C" void checkCommandCatch__11dEvt_info_cFv() { - // NONMATCHING -} - -/* 8014139C-801413CC 13BCDC 0030+00 1/1 1/1 0/0 .text dComIfGs_isEventBit__FUs */ -extern "C" BOOL dComIfGs_isEventBit__FUs(u16 id) { - return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); -} - -/* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */ -extern "C" u32 checkWolf__9daPy_py_cCFv(daPy_py_c* this_) { - return this_->checkNoResetFlg1(daPy_py_c::FLG1_IS_WOLF); -} - -/* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */ -extern "C" BOOL checkSwordGet__9daPy_py_cFv() { - return dComIfGs_getSelectEquipSword() != 0xFF; -} - -/* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text - * checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */ -extern "C" u32 checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0(daPy_py_c* this_, daPy_py_c::daPy_RFLG0 pFlag) { - return this_->mResetFlg0 & pFlag; -} - -/* 80141404-80141410 13BD44 000C+00 1/1 0/0 0/0 .text ChkGroundHit__9dBgS_AcchCFv */ -extern "C" bool ChkGroundHit__9dBgS_AcchCFv(dBgS_Acch* this_) { - return this_->m_flags & dBgS_Acch::GROUND_HIT; -} - -/* 80141410-8014141C 13BD50 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg0__9daPy_py_cCFQ29daPy_py_c9daPy_FLG0 */ -extern "C" u32 checkNoResetFlg0__9daPy_py_cCFQ29daPy_py_c9daPy_FLG0(daPy_py_c* this_, daPy_py_c::daPy_FLG0 pFlag) { - return this_->mNoResetFlg0 & pFlag; -} - -/* 8014141C-80141438 13BD5C 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */ -static int dComIfGp_getPlayerCameraID__Fi(int param_0) { - // NONMATCHING -} - -/* 80141438-80141450 13BD78 0018+00 1/1 0/0 0/0 .text dComIfGp_event_chkEventFlag__FUs */ -extern "C" u16 dComIfGp_event_chkEventFlag__FUs(u16 flag) { - return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); -} - -/* 80141450-80141464 13BD90 0014+00 1/1 0/0 0/0 .text checkCommandDoor__11dEvt_info_cFv - */ -extern "C" BOOL checkCommandDoor__11dEvt_info_cFv(dEvt_info_c* this_) { - return this_->mCommand == 3; -} - -/* 80141464-801414A4 13BDA4 0040+00 1/1 0/0 0/0 .text - * dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci */ -extern "C" s32 dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci(char const* param_0, fopAc_ac_c* param_1, int param_2) { - return dComIfGp_getPEvtManager()->getMyStaffId(param_0, param_1, param_2); -} - -/* 801414A4-801414C0 13BDE4 001C+00 1/1 0/0 0/0 .text dComIfGp_event_runCheck__Fv */ -extern "C" BOOL dComIfGp_event_runCheck__Fv() { - return g_dComIfG_gameInfo.play.getEvent().runCheck(); -} - -/* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text - * checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */ -extern "C" u32 checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2(daPy_py_c* this_, daPy_py_c::daPy_FLG2 pFlag) { - return this_->mNoResetFlg2 & pFlag; -} - -/* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */ -extern "C" u32 checkMagneBootsOn__9daPy_py_cCFv(daPy_py_c* this_) { - return this_->checkNoResetFlg0(daPy_py_c::FLG0_MAGNE_BOOTS_ON); -} - -/* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */ -extern "C" daHorse_c* dComIfGp_getHorseActor__Fv() { - return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); -} - -/* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */ -extern "C" u32 checkBoarSingleBattle__9daPy_py_cCFv(daPy_py_c* this_) { - return this_->checkNoResetFlg2(daPy_py_c::FLG2_BOAR_SINGLE_BATTLE); -} - -/* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text - * checkEndResetFlg0__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG0 */ -extern "C" u32 checkEndResetFlg0__9daPy_py_cCFQ29daPy_py_c11daPy_ERFLG0(daPy_py_c* this_, daPy_py_c::daPy_ERFLG0 pFlag) { - return this_->mEndResetFlg0 & pFlag; -} - -/* 80141500-80141508 13BE40 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daPy_py_cCFv */ -extern "C" bool getMidnaAtnPos__9daPy_py_cCFv() { - return false; -} - -/* 80141508-8014150C 13BE48 0004+00 1/0 0/0 0/0 .text setMidnaMsgNum__9daPy_py_cFP10fopAc_ac_cUs - */ -extern "C" void setMidnaMsgNum__9daPy_py_cFP10fopAc_ac_cUs() { - /* empty function */ -} - -/* 8014150C-80141514 13BE4C 0008+00 1/0 0/0 0/0 .text getModelMtx__9daPy_py_cFv */ -extern "C" void getModelMtx__9daPy_py_cFv() { - // NONMATCHING -} - -/* 80141514-8014151C 13BE54 0008+00 1/0 0/0 0/0 .text getInvMtx__9daPy_py_cFv */ -extern "C" void getInvMtx__9daPy_py_cFv() { - // NONMATCHING -} - -/* 8014151C-80141524 13BE5C 0008+00 1/0 0/0 0/0 .text getShadowTalkAtnPos__9daPy_py_cFv - */ -extern "C" void getShadowTalkAtnPos__9daPy_py_cFv() { - // NONMATCHING -} - -/* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */ -extern "C" void getLeftItemMatrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 8014152C-80141534 13BE6C 0008+00 1/0 0/0 0/0 .text getRightItemMatrix__9daPy_py_cFv */ -extern "C" void getRightItemMatrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 80141534-8014153C 13BE74 0008+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daPy_py_cFv */ -extern "C" void getLeftHandMatrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 8014153C-80141544 13BE7C 0008+00 1/0 0/0 0/0 .text getRightHandMatrix__9daPy_py_cFv */ -extern "C" void getRightHandMatrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 80141544-8014154C 13BE84 0008+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daPy_py_cFv */ -extern "C" void getLinkBackBone1Matrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 8014154C-80141554 13BE8C 0008+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daPy_py_cFv */ -extern "C" void getWolfMouthMatrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 80141554-8014155C 13BE94 0008+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daPy_py_cFv */ -extern "C" void getWolfBackbone2Matrix__9daPy_py_cFv() { - // NONMATCHING -} - -/* 8014155C-80141564 13BE9C 0008+00 1/0 0/0 0/0 .text getBottleMtx__9daPy_py_cFv */ -extern "C" bool getBottleMtx__9daPy_py_cFv() { - return NULL; -} - -/* 80141564-8014156C 13BEA4 0008+00 1/0 0/0 0/0 .text checkPlayerGuard__9daPy_py_cCFv */ -extern "C" bool checkPlayerGuard__9daPy_py_cCFv() { - return false; -} - -/* 8014156C-80141574 13BEAC 0008+00 1/0 0/0 0/0 .text checkAutoJump__9daPy_py_cCFv */ -extern "C" bool checkAutoJump__9daPy_py_cCFv() { - return false; -} - -/* 80141574-8014157C 13BEB4 0008+00 1/0 0/0 0/0 .text checkSideStep__9daPy_py_cCFv */ -extern "C" bool checkSideStep__9daPy_py_cCFv() { - return false; -} - -/* 8014157C-80141584 13BEBC 0008+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daPy_py_cCFv - */ -extern "C" bool checkWolfTriggerJump__9daPy_py_cCFv() { - return false; -} - -/* 80141584-8014158C 13BEC4 0008+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daPy_py_cCFv - */ -extern "C" bool checkGuardBreakMode__9daPy_py_cCFv() { - return false; -} - -/* 8014158C-80141594 13BECC 0008+00 1/0 0/0 0/0 .text checkLv3Slide__9daPy_py_cCFv */ -extern "C" bool checkLv3Slide__9daPy_py_cCFv() { - return false; -} - -/* 80141594-8014159C 13BED4 0008+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daPy_py_cCFv */ -extern "C" bool checkWolfHowlDemoMode__9daPy_py_cCFv() { - return false; -} - -/* 8014159C-801415A4 13BEDC 0008+00 1/0 0/0 0/0 .text checkChainBlockPushPull__9daPy_py_cFv */ -extern "C" bool checkChainBlockPushPull__9daPy_py_cFv() { - return false; -} - -/* 801415A4-801415AC 13BEE4 0008+00 1/0 0/0 0/0 .text checkElecDamage__9daPy_py_cCFv */ -extern "C" bool checkElecDamage__9daPy_py_cCFv() { - return false; -} - -/* 801415AC-801415B4 13BEEC 0008+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daPy_py_cCFv */ -extern "C" bool checkEmptyBottleSwing__9daPy_py_cCFv() { - return false; -} - -/* 801415B4-801415BC 13BEF4 0008+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daPy_py_cCFv - */ -extern "C" bool checkBottleSwingMode__9daPy_py_cCFv() { - return false; -} - -/* 801415BC-801415C4 13BEFC 0008+00 1/0 0/0 0/0 .text checkHawkWait__9daPy_py_cCFv */ -extern "C" bool checkHawkWait__9daPy_py_cCFv() { - return false; -} - -/* 801415C4-801415CC 13BF04 0008+00 1/0 0/0 0/0 .text checkGoatThrow__9daPy_py_cCFv */ -extern "C" bool checkGoatThrow__9daPy_py_cCFv() { - return false; -} - -/* 801415CC-801415D4 13BF0C 0008+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daPy_py_cCFv - */ -extern "C" bool checkGoatThrowAfter__9daPy_py_cCFv() { - return false; -} - -/* 801415D4-801415DC 13BF14 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daPy_py_cCFv - */ -extern "C" bool checkWolfTagLockJump__9daPy_py_cCFv() { - return false; -} - -/* 801415DC-801415E4 13BF1C 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daPy_py_cCFv */ -extern "C" bool checkWolfTagLockJumpLand__9daPy_py_cCFv() { - return false; -} - -/* 801415E4-801415EC 13BF24 0008+00 1/0 0/0 0/0 .text checkWolfRope__9daPy_py_cFv */ -extern "C" bool checkWolfRope__9daPy_py_cFv() { - return false; -} - -/* 801415EC-801415F4 13BF2C 0008+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daPy_py_cCFv */ -extern "C" bool checkWolfRopeHang__9daPy_py_cCFv() { - return false; -} - -/* 801415F4-801415FC 13BF34 0008+00 1/0 0/0 0/0 .text checkRollJump__9daPy_py_cCFv */ -extern "C" bool checkRollJump__9daPy_py_cCFv() { - return false; -} - -/* 801415FC-80141604 13BF3C 0008+00 1/0 0/0 0/0 .text checkGoronRideWait__9daPy_py_cCFv - */ -extern "C" bool checkGoronRideWait__9daPy_py_cCFv() { - return false; -} - -/* 80141604-8014160C 13BF44 0008+00 1/0 0/0 0/0 .text checkWolfChain__9daPy_py_cCFv */ -extern "C" bool checkWolfChain__9daPy_py_cCFv() { - return false; -} - -/* 8014160C-80141614 13BF4C 0008+00 1/0 0/0 0/0 .text checkWolfWait__9daPy_py_cCFv */ -extern "C" bool checkWolfWait__9daPy_py_cCFv() { - return false; -} - -/* 80141614-8014161C 13BF54 0008+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daPy_py_cCFv - */ -extern "C" bool checkWolfJumpAttack__9daPy_py_cCFv() { - return false; -} - -/* 8014161C-80141624 13BF5C 0008+00 1/0 0/0 0/0 .text checkWolfRSit__9daPy_py_cCFv */ -extern "C" bool checkWolfRSit__9daPy_py_cCFv() { - return false; -} - -/* 80141624-8014162C 13BF64 0008+00 2/0 0/0 0/0 .text checkBubbleFly__9daPy_py_cCFv */ -extern "C" bool checkBubbleFly__9daPy_py_cCFv() { - return false; -} - -/* 8014162C-80141634 13BF6C 0008+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daPy_py_cCFv - */ -extern "C" bool checkBottleDrinkEnd__9daPy_py_cCFv() { - return false; -} - -/* 80141634-8014163C 13BF74 0008+00 1/0 0/0 0/0 .text checkWolfDig__9daPy_py_cCFv */ -extern "C" bool checkWolfDig__9daPy_py_cCFv() { - return false; -} - -/* 8014163C-80141644 13BF7C 0008+00 1/0 0/0 0/0 .text checkCutCharge__9daPy_py_cCFv */ -extern "C" bool checkCutCharge__9daPy_py_cCFv() { - return false; -} - -/* 80141644-8014164C 13BF84 0008+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daPy_py_cCFv - */ -extern "C" bool checkCutTurnCharge__9daPy_py_cCFv() { - return false; -} - -/* 8014164C-80141654 13BF8C 0008+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daPy_py_cCFv */ -extern "C" bool checkCutLargeJumpCharge__9daPy_py_cCFv() { - return false; -} - -/* 80141654-8014165C 13BF94 0008+00 2/0 0/0 0/0 .text getBokoFlamePos__9daPy_py_cFP4cXyz - */ -extern "C" bool getBokoFlamePos__9daPy_py_cFP4cXyz() { - return false; -} - -/* 8014165C-80141664 13BF9C 0008+00 1/0 0/0 0/0 .text checkComboCutTurn__9daPy_py_cCFv */ -extern "C" bool checkComboCutTurn__9daPy_py_cCFv() { - return false; -} - -/* 80141664-8014166C 13BFA4 0008+00 1/0 0/0 0/0 .text checkClimbMove__9daPy_py_cCFv */ -extern "C" bool checkClimbMove__9daPy_py_cCFv() { - return false; -} - -/* 8014166C-80141674 13BFAC 0008+00 1/0 0/0 0/0 .text checkGrassWhistle__9daPy_py_cCFv */ -extern "C" bool checkGrassWhistle__9daPy_py_cCFv() { - return false; -} - -/* 80141674-8014167C 13BFB4 0008+00 1/0 0/0 0/0 .text checkBoarRun__9daPy_py_cCFv */ -extern "C" bool checkBoarRun__9daPy_py_cCFv() { - return false; -} - -/* 8014167C-80141684 13BFBC 0008+00 2/0 0/0 0/0 .text checkFmChainPut__9daPy_py_cCFv */ -extern "C" bool checkFmChainPut__9daPy_py_cCFv() { - return false; -} - -/* 80141684-8014168C 13BFC4 0008+00 2/0 0/0 0/0 .text checkHorseElecDamage__9daPy_py_cCFv - */ -extern "C" bool checkHorseElecDamage__9daPy_py_cCFv() { - return false; -} - -/* 8014168C-80141694 13BFCC 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daPy_py_cCFv */ -extern "C" f32 getBaseAnimeFrameRate__9daPy_py_cCFv() { - return 1.0f; -} - -/* 80141694-8014169C 13BFD4 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daPy_py_cCFv */ -extern "C" f32 getBaseAnimeFrame__9daPy_py_cCFv() { - return 0.0f; -} - -/* 8014169C-801416A0 13BFDC 0004+00 1/0 0/0 0/0 .text setAnimeFrame__9daPy_py_cFf */ -extern "C" void setAnimeFrame__9daPy_py_cFf() { - /* empty function */ -} - -/* 801416A0-801416A8 13BFE0 0008+00 1/0 0/0 0/0 .text checkWolfLock__9daPy_py_cCFP10fopAc_ac_c */ -extern "C" bool checkWolfLock__9daPy_py_cCFP10fopAc_ac_c() { - return false; -} - -/* 801416A8-801416B0 13BFE8 0008+00 1/0 0/0 0/0 .text cancelWolfLock__9daPy_py_cFP10fopAc_ac_c */ -extern "C" bool cancelWolfLock__9daPy_py_cFP10fopAc_ac_c() { - return false; -} - -/* 801416B0-801416B8 13BFF0 0008+00 1/0 0/0 0/0 .text getItemID__9daPy_py_cCFv */ -extern "C" s32 getItemID__9daPy_py_cCFv() { - return -1; -} - -/* 801416B8-801416C0 13BFF8 0008+00 1/0 0/0 0/0 .text exchangeGrabActor__9daPy_py_cFP10fopAc_ac_c - */ -extern "C" bool exchangeGrabActor__9daPy_py_cFP10fopAc_ac_c() { - return false; -} - -/* 801416C0-801416C8 13C000 0008+00 1/0 0/0 0/0 .text setForceGrab__9daPy_py_cFP10fopAc_ac_cii */ -extern "C" bool setForceGrab__9daPy_py_cFP10fopAc_ac_cii() { - return false; -} - -/* 801416C8-801416CC 13C008 0004+00 1/0 0/0 0/0 .text setForcePutPos__9daPy_py_cFRC4cXyz - */ -extern "C" void setForcePutPos__9daPy_py_cFRC4cXyz() { - /* empty function */ -} - -/* 801416CC-801416D4 13C00C 0008+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daPy_py_cFv */ -extern "C" bool checkPlayerNoDraw__9daPy_py_cFv() { - return false; -} - -/* 801416D4-801416DC 13C014 0008+00 2/0 0/0 0/0 .text checkRopeTag__9daPy_py_cFv */ -extern "C" bool checkRopeTag__9daPy_py_cFv() { - return false; -} - -/* 801416DC-801416E0 13C01C 0004+00 1/0 0/0 0/0 .text voiceStart__9daPy_py_cFUl */ -extern "C" void voiceStart__9daPy_py_cFUl() { - /* empty function */ -} - -/* 801416E0-801416E4 13C020 0004+00 1/0 0/0 0/0 .text seStartOnlyReverb__9daPy_py_cFUl */ -extern "C" void seStartOnlyReverb__9daPy_py_cFUl() { - /* empty function */ -} - -/* 801416E4-801416E8 13C024 0004+00 1/0 0/0 0/0 .text seStartOnlyReverbLevel__9daPy_py_cFUl */ -extern "C" void seStartOnlyReverbLevel__9daPy_py_cFUl() { - /* empty function */ -} - -/* 801416E8-801416EC 13C028 0004+00 1/0 0/0 0/0 .text setOutPower__9daPy_py_cFfsi */ -extern "C" void setOutPower__9daPy_py_cFfsi() { - /* empty function */ -} - -/* 801416EC-801416F0 13C02C 0004+00 1/0 0/0 0/0 .text - * setGrabCollisionOffset__9daPy_py_cFffP13cBgS_PolyInfo */ -extern "C" void setGrabCollisionOffset__9daPy_py_cFffP13cBgS_PolyInfo() { - /* empty function */ -} - -/* 801416F0-801416F4 13C030 0004+00 2/0 0/0 0/0 .text onMagneGrab__9daPy_py_cFff */ -extern "C" void onMagneGrab__9daPy_py_cFff() { - /* empty function */ -} - -/* 801416F4-801416FC 13C034 0008+00 1/0 0/0 0/0 .text getModelJointMtx__9daPy_py_cFUs */ -extern "C" bool getModelJointMtx__9daPy_py_cFUs() { - return NULL; -} - -/* 801416FC-80141704 13C03C 0008+00 1/0 0/0 0/0 .text getHeadMtx__9daPy_py_cFv */ -extern "C" bool getHeadMtx__9daPy_py_cFv() { - return NULL; -} - -/* 80141704-8014170C 13C044 0008+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz - */ -extern "C" bool setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz() { - return false; -} - -/* 8014170C-80141714 13C04C 0008+00 1/0 0/0 0/0 .text checkIronBallReturn__9daPy_py_cCFv - */ -extern "C" bool checkIronBallReturn__9daPy_py_cCFv() { - return false; -} - -/* 80141714-8014171C 13C054 0008+00 1/0 0/0 0/0 .text checkIronBallGroundStop__9daPy_py_cCFv */ -extern "C" bool checkIronBallGroundStop__9daPy_py_cCFv() { - return false; -} - -/* 8014171C-80141724 13C05C 0008+00 1/0 0/0 0/0 .text - * checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv */ -extern "C" bool checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv() { - return false; -} - -/* 80141724-8014172C 13C064 0008+00 2/0 0/0 0/0 .text checkPointSubWindowMode__9daPy_py_cCFv */ -extern "C" bool checkPointSubWindowMode__9daPy_py_cCFv() { - return false; -} - -/* 8014172C-80141730 13C06C 0004+00 1/0 0/0 0/0 .text setClothesChange__9daPy_py_cFi */ -extern "C" void setClothesChange__9daPy_py_cFi() { - /* empty function */ -} - -/* 80141730-80141734 13C070 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPA4_f */ -extern "C" void setPlayerPosAndAngle__9daPy_py_cFPA4_f() { - /* empty function */ -} - -/* 80141734-80141738 13C074 0004+00 1/0 0/0 0/0 .text - * setPlayerPosAndAngle__9daPy_py_cFPC4cXyzPC5csXyz */ -extern "C" void setPlayerPosAndAngle__9daPy_py_cFPC4cXyzPC5csXyz() { - /* empty function */ -} - -/* 80141738-8014173C 13C078 0004+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daPy_py_cFPC4cXyzsi - */ -extern "C" void setPlayerPosAndAngle__9daPy_py_cFPC4cXyzsi() { - /* empty function */ -} - -/* 8014173C-80141744 13C07C 0008+00 1/0 0/0 0/0 .text setThrowDamage__9daPy_py_cFsffiii - */ -extern "C" bool setThrowDamage__9daPy_py_cFsffiii() { - return false; -} - -/* 80141744-8014174C 13C084 0008+00 1/0 0/0 0/0 .text checkSetNpcTks__9daPy_py_cFP4cXyzii - */ -extern "C" bool checkSetNpcTks__9daPy_py_cFP4cXyzii() { - return false; -} - -/* 8014174C-80141754 13C08C 0008+00 1/0 0/0 0/0 .text setRollJump__9daPy_py_cFffs */ -extern "C" bool setRollJump__9daPy_py_cFffs() { - return 0; -} - -/* 80141754-80141758 13C094 0004+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daPy_py_cFUlUl */ -extern "C" void playerStartCollisionSE__9daPy_py_cFUlUl() { - /* empty function */ -} - -/* 80141758-8014175C 13C098 0004+00 2/0 0/0 0/0 .text changeTextureAnime__9daPy_py_cFUsUsi */ -extern "C" void changeTextureAnime__9daPy_py_cFUsUsi() { - /* empty function */ -} - -/* 8014175C-80141760 13C09C 0004+00 2/0 0/0 0/0 .text cancelChangeTextureAnime__9daPy_py_cFv */ -extern "C" void cancelChangeTextureAnime__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141760-80141764 13C0A0 0004+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daPy_py_cFv */ -extern "C" void cancelDungeonWarpReadyNeck__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141764-80141768 13C0A4 0004+00 1/0 0/0 0/0 .text - * onSceneChangeArea__9daPy_py_cFUcUcP10fopAc_ac_c */ -extern "C" void onSceneChangeArea__9daPy_py_cFUcUcP10fopAc_ac_c() { - /* empty function */ -} - -/* 80141768-8014176C 13C0A8 0004+00 1/0 0/0 0/0 .text - * onSceneChangeAreaJump__9daPy_py_cFUcUcP10fopAc_ac_c */ -extern "C" void onSceneChangeAreaJump__9daPy_py_cFUcUcP10fopAc_ac_c() { - /* empty function */ -} - -/* 8014176C-80141770 13C0AC 0004+00 1/0 0/0 0/0 .text onSceneChangeDead__9daPy_py_cFUci - */ -extern "C" void onSceneChangeDead__9daPy_py_cFUci() { - /* empty function */ -} - -/* 80141770-80141778 13C0B0 0008+00 1/0 0/0 0/0 .text getSpinnerActor__9daPy_py_cFv */ -extern "C" bool getSpinnerActor__9daPy_py_cFv() { - return NULL; -} - -/* 80141778-80141780 13C0B8 0008+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daPy_py_cCFv */ -extern "C" bool checkHorseRideNotReady__9daPy_py_cCFv() { - return false; -} - -/* 80141780-80141788 13C0C0 0008+00 1/0 0/0 0/0 .text checkArrowChargeEnd__9daPy_py_cCFv - */ -extern "C" bool checkArrowChargeEnd__9daPy_py_cCFv() { - return false; -} - -/* 80141788-80141790 13C0C8 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daPy_py_cCFv - */ -extern "C" f32 getSearchBallScale__9daPy_py_cCFv() { - return 0.0f; -} - -/* 80141790-80141798 13C0D0 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daPy_py_cFv */ -extern "C" bool checkFastShotTime__9daPy_py_cFv() { - return 0; -} - -/* 80141798-801417A0 13C0D8 0008+00 1/0 0/0 0/0 .text checkNoEquipItem__9daPy_py_cCFv */ -extern "C" bool checkNoEquipItem__9daPy_py_cCFv() { - return true; -} - -/* 801417A0-801417A8 13C0E0 0008+00 2/0 0/0 0/0 .text checkFireMaterial__9daPy_py_cCFv */ -extern "C" bool checkFireMaterial__9daPy_py_cCFv() { - return false; -} - -/* 801417A8-801417B0 13C0E8 0008+00 1/0 0/0 0/0 .text checkKandelaarSwing__9daPy_py_cCFi - */ -extern "C" bool checkKandelaarSwing__9daPy_py_cCFi() { - return false; -} - -/* 801417B0-801417B8 13C0F0 0008+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daPy_py_cCFv - */ -extern "C" bool getBoardCutTurnOffsetAngleY__9daPy_py_cCFv() { - return 0; -} - -/* 801417B8-801417C0 13C0F8 0008+00 2/0 0/0 0/0 .text getMagneHitPos__9daPy_py_cFv */ -extern "C" cXyz* getMagneHitPos__9daPy_py_cFv(daPy_py_c* this_) { - return &this_->mSwordTopPos; -} - -/* 801417C0-801417C8 13C100 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daPy_py_cFv - */ -extern "C" cXyz* getMagneBootsTopVec__9daPy_py_cFv(daPy_py_c* this_) { - return &this_->current.pos; -} - -/* 801417C8-801417D0 13C108 0008+00 1/0 0/0 0/0 .text checkUseKandelaar__9daPy_py_cFi */ -extern "C" bool checkUseKandelaar__9daPy_py_cFi() { - return false; -} - -/* 801417D0-801417D4 13C110 0004+00 1/0 0/0 0/0 .text setDkCaught__9daPy_py_cFP10fopAc_ac_c */ -extern "C" void setDkCaught__9daPy_py_cFP10fopAc_ac_c() { - /* empty function */ -} - -/* 801417D4-801417D8 13C114 0004+00 1/0 0/0 0/0 .text onPressedDamage__9daPy_py_cFRC4cXyzs */ -extern "C" void onPressedDamage__9daPy_py_cFRC4cXyzs() { - /* empty function */ -} - -/* 801417D8-801417E0 13C118 0008+00 1/0 0/0 0/0 .text checkPriActorOwn__9daPy_py_cCFPC10fopAc_ac_c - */ -extern "C" bool checkPriActorOwn__9daPy_py_cCFPC10fopAc_ac_c() { - return false; -} - -/* 801417E0-801417E8 13C120 0008+00 1/0 0/0 0/0 .text - * onWolfEnemyBiteAll__9daPy_py_cFP10fopAc_ac_cQ29daPy_py_c9daPy_FLG2 */ -extern "C" bool onWolfEnemyBiteAll__9daPy_py_cFP10fopAc_ac_cQ29daPy_py_c9daPy_FLG2() { - return false; -} - -/* 801417E8-801417F0 13C128 0008+00 1/0 0/0 0/0 .text - * checkWolfEnemyBiteAllOwn__9daPy_py_cCFPC10fopAc_ac_c */ -extern "C" bool checkWolfEnemyBiteAllOwn__9daPy_py_cCFPC10fopAc_ac_c() { - return false; -} - -/* 801417F0-801417F4 13C130 0004+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daPy_py_cFs */ -extern "C" void setWolfEnemyHangBiteAngle__9daPy_py_cFs() { - /* empty function */ -} - -/* 801417F4-801417F8 13C134 0004+00 1/0 0/0 0/0 .text setKandelaarMtx__9daPy_py_cFPA4_fii - */ -extern "C" void setKandelaarMtx__9daPy_py_cFPA4_fii() { - /* empty function */ -} - -/* 801417F8-80141800 13C138 0008+00 1/0 0/0 0/0 .text getStickAngleFromPlayerShape__9daPy_py_cCFPs - */ -extern "C" bool getStickAngleFromPlayerShape__9daPy_py_cCFPs() { - return false; -} - -/* 80141800-80141808 13C140 0008+00 1/0 0/0 0/0 .text checkSpinnerPathMove__9daPy_py_cFv - */ -extern "C" bool checkSpinnerPathMove__9daPy_py_cFv() { - return false; -} - -/* 80141808-80141810 13C148 0008+00 1/0 0/0 0/0 .text checkSpinnerTriggerAttack__9daPy_py_cFv */ -extern "C" bool checkSpinnerTriggerAttack__9daPy_py_cFv() { - return false; -} - -/* 80141810-80141814 13C150 0004+00 1/0 0/0 0/0 .text onSpinnerPathForceRemove__9daPy_py_cFv */ -extern "C" void onSpinnerPathForceRemove__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141814-8014181C 13C154 0008+00 1/0 0/0 0/0 .text getIronBallBgHit__9daPy_py_cCFv */ -extern "C" bool getIronBallBgHit__9daPy_py_cCFv() { - return 0; -} - -/* 8014181C-80141824 13C15C 0008+00 1/0 0/0 0/0 .text getIronBallCenterPos__9daPy_py_cFv - */ -extern "C" bool getIronBallCenterPos__9daPy_py_cFv() { - return NULL; -} - -/* 80141824-8014182C 13C164 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daPy_py_cCFv */ -extern "C" bool checkCanoeFishingGetLeft__9daPy_py_cCFv() { - return false; -} - -/* 8014182C-80141834 13C16C 0008+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daPy_py_cCFv */ -extern "C" bool checkCanoeFishingGetRight__9daPy_py_cCFv() { - return false; -} - -/* 80141834-8014183C 13C174 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daPy_py_cCFv - */ -extern "C" bool checkBeeChildDrink__9daPy_py_cCFv() { - return false; -} - -/* 8014183C-80141840 13C17C 0004+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daPy_py_cFv */ -extern "C" void skipPortalObjWarp__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141840-80141848 13C180 0008+00 1/0 0/0 0/0 .text checkTreasureRupeeReturn__9daPy_py_cCFi */ -extern "C" bool checkTreasureRupeeReturn__9daPy_py_cCFi() { - return false; -} - -/* 80141848-8014184C 13C188 0004+00 1/0 0/0 0/0 .text setSumouReady__9daPy_py_cFP10fopAc_ac_c */ -extern "C" void setSumouReady__9daPy_py_cFP10fopAc_ac_c() { - /* empty function */ -} - -/* 8014184C-80141854 13C18C 0008+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daPy_py_cFi */ -extern "C" bool checkAcceptDungeonWarpAlink__9daPy_py_cFi() { - return false; -} - -/* 80141854-8014185C 13C194 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daPy_py_cCFv */ -extern "C" bool getSumouCounter__9daPy_py_cCFv() { - return 0; -} - -/* 8014185C-80141864 13C19C 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daPy_py_cCFv - */ -extern "C" bool checkSumouWithstand__9daPy_py_cCFv() { - return 0; -} - -/* 80141864-80141868 13C1A4 0004+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daPy_py_cFv - */ -extern "C" void cancelGoronThrowEvent__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141868-8014186C 13C1A8 0004+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daPy_py_cFi */ -extern "C" void setSumouGraspCancelCount__9daPy_py_cFi() { - /* empty function */ -} - -/* 8014186C-80141870 13C1AC 0004+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daPy_py_cFs */ -extern "C" void setSumouPushBackDirection__9daPy_py_cFs() { - /* empty function */ -} - -/* 80141870-80141874 13C1B0 0004+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daPy_py_cFv */ -extern "C" void setSumouLoseHeadUp__9daPy_py_cFv() { - /* empty function */ -} - -/* 80141874-8014187C 13C1B4 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daPy_py_cCFv */ -extern "C" void getGiantPuzzleAimAngle__9daPy_py_cCFv() { - // NONMATCHING -} - -/* 8014187C-80141880 13C1BC 0004+00 1/0 0/0 0/0 .text setGoronSideMove__9daPy_py_cFP10fopAc_ac_c - */ -extern "C" void setGoronSideMove__9daPy_py_cFP10fopAc_ac_c() { - /* empty function */ -} - -/* 80141880-80141884 13C1C0 0004+00 1/0 0/0 0/0 .text setCargoCarry__9daPy_py_cFP10fopAc_ac_c */ -extern "C" void setCargoCarry__9daPy_py_cFP10fopAc_ac_c() { - /* empty function */ -} - -/* 80141884-8014188C 13C1C4 0008+00 2/0 0/0 0/0 .text getDpdFarFlg__9daPy_py_cCFv */ -extern "C" bool getDpdFarFlg__9daPy_py_cCFv() { - return false; -} - -/* 8014188C-80141894 13C1CC 0008+00 1/0 0/0 0/0 .text getHookshotTopPos__9daPy_py_cFv */ -extern "C" bool getHookshotTopPos__9daPy_py_cFv() { - return NULL; -} - -/* 80141894-8014189C 13C1D4 0008+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daPy_py_cCFv */ -extern "C" bool checkHookshotReturnMode__9daPy_py_cCFv() { - return false; -} - -/* 8014189C-801418A4 13C1DC 0008+00 1/0 0/0 0/0 .text checkHookshotShootReturnMode__9daPy_py_cCFv - */ -extern "C" bool checkHookshotShootReturnMode__9daPy_py_cCFv() { - return false; -} - -/* 801418A4-801418AC 13C1E4 0008+00 1/0 0/0 0/0 .text checkOctaIealHang__9daPy_py_cCFv */ -extern "C" bool checkOctaIealHang__9daPy_py_cCFv() { - return false; -} - -/* 801418AC-801418B0 13C1EC 0004+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daPy_py_cFv */ -extern "C" void cancelOctaIealHang__9daPy_py_cFv() { - /* empty function */ -} - -/* 801418B0-801418B4 13C1F0 0004+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daPy_py_cFv */ -extern "C" void cancelDragonHangBackJump__9daPy_py_cFv() { - /* empty function */ -} - -/* 801418B4-801418B8 13C1F4 0004+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daPy_py_cFv - */ -extern "C" void setOctaIealWildHang__9daPy_py_cFv() { - /* empty function */ -} - -/* 801418B8-801418C0 13C1F8 0008+00 1/0 0/0 0/0 .text checkDragonHangRide__9daPy_py_cCFv - */ -extern "C" bool checkDragonHangRide__9daPy_py_cCFv() { - return false; -} - -/* 801418C0-801418C4 13C200 0004+00 1/0 0/0 0/0 .text changeDragonActor__9daPy_py_cFP10fopAc_ac_c - */ -extern "C" void changeDragonActor__9daPy_py_cFP10fopAc_ac_c() { - /* empty function */ -} - -/* 801418C4-801418CC 13C204 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daPy_py_cCFv */ -extern "C" bool getClothesChangeWaitTimer__9daPy_py_cCFv() { - return 0; -} - -/* 801418CC-801418D4 13C20C 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daPy_py_cCFv */ -extern "C" bool getShieldChangeWaitTimer__9daPy_py_cCFv() { - return 0; -} - -/* 801418D4-801418DC 13C214 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daPy_py_cCFv */ -extern "C" bool getSwordChangeWaitTimer__9daPy_py_cCFv() { - return 0; -} - -/* 801418DC-801418E4 13C21C 0008+00 1/0 0/0 0/0 .text checkMetamorphose__9daPy_py_cCFv */ -extern "C" bool checkMetamorphose__9daPy_py_cCFv() { - return false; -} - -/* 801418E4-801418EC 13C224 0008+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daPy_py_cCFv */ -extern "C" bool checkWolfDownAttackPullOut__9daPy_py_cCFv() { - return false; -} - -/* 801418EC-801418F4 13C22C 0008+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daPy_py_cCFv */ -extern "C" bool checkBootsOrArmorHeavy__9daPy_py_cCFv() { - return false; -} - -/* 801418F4-801418FC 13C234 0008+00 1/0 0/0 0/0 .text getBottleOpenAppearItem__9daPy_py_cCFv */ -extern "C" s32 getBottleOpenAppearItem__9daPy_py_cCFv() { - return -1; -} - -/* 801418FC-80141904 13C23C 0008+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daPy_py_cCFv - */ -extern "C" bool checkItemSwordEquip__9daPy_py_cCFv() { - return false; -} - -/* 80141904-8014190C 13C244 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daPy_py_cCFv - */ -extern "C" f32 getSinkShapeOffset__9daPy_py_cCFv() { - return 0.0f; -} - -/* 8014190C-80141914 13C24C 0008+00 1/0 0/0 0/0 .text checkSinkDead__9daPy_py_cCFv */ -extern "C" bool checkSinkDead__9daPy_py_cCFv() { - return false; -} - -/* 80141914-8014191C 13C254 0008+00 1/0 0/0 0/0 .text checkHorseStart__9daPy_py_cFv */ -extern "C" bool checkHorseStart__9daPy_py_cFv() { - return false; -} - -/* 8014191C-80141924 13C25C 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daPy_py_cFv */ -extern "C" bool getWolfHowlMgrP__9daPy_py_cFv() { - return NULL; -} - -/* 80141924-8014192C 13C264 0008+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daPy_py_cCFv */ -extern "C" bool checkWolfHowlSuccessAnime__9daPy_py_cCFv() { - return false; -} - -/* 8014192C-80141934 13C26C 0008+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daPy_py_cFv */ -extern "C" bool checkCopyRodTopUse__9daPy_py_cFv() { - return false; -} - -/* 80141934-8014193C 13C274 0008+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daPy_py_cCFv */ -extern "C" bool checkCopyRodEquip__9daPy_py_cCFv() { - return false; -} - -/* 8014193C-80141944 13C27C 0008+00 1/0 0/0 0/0 .text checkCutJumpMode__9daPy_py_cCFv */ -extern "C" bool checkCutJumpMode__9daPy_py_cCFv() { - return false; -} - -/* 80141944-8014194C 13C284 0008+00 1/1 0/0 0/0 .text getZeldaActor__9daHorse_cFv */ -extern "C" void getZeldaActor__9daHorse_cFv() { - // NONMATCHING -} - -/* 8014194C-8014195C 13C28C 0010+00 1/1 0/0 0/0 .text dComIfGp_getDoStatus__Fv */ -static u8 dComIfGp_getDoStatus__Fv() { - // NONMATCHING -} - -/* 8014195C-8014196C 13C29C 0010+00 1/1 5/5 0/0 .text __ct__4cXyzFfff */ -extern "C" void __ct__4cXyzFfff(f32 param_0, f32 param_1, f32 param_2) { - // NONMATCHING -} - -/* 8014196C-80141988 13C2AC 001C+00 1/1 0/0 0/0 .text dMeter2Info_offUseButton__Fi */ -extern "C" void dMeter2Info_offUseButton__Fi() { - // NONMATCHING -} - -/* 80141988-80141990 -00001 0008+00 0/0 0/0 0/0 .text setLinkState__14Z2CreatureLinkFUc - */ -extern "C" void setLinkState__14Z2CreatureLinkFUc(Z2CreatureLink* this_, u8 param_0) { - //*(u8*)(((u8*)this_) + 192) this->field_0xc0 = (u8)(param_0); -} - -/* 80141990-801419A0 13C2D0 0010+00 1/1 0/0 0/0 .text dComIfGs_getRupee__Fv */ -u16 dComIfGs_getRupee__Fv() { - // NONMATCHING -} - -/* 801419A0-801419B8 13C2E0 0018+00 1/1 0/0 0/0 .text dComIfGp_setItemRupeeCount__Fl */ -void dComIfGp_setItemRupeeCount__Fl(s32 param_0) { - // NONMATCHING -} - -/* 801419B8-801419F4 13C2F8 003C+00 1/1 0/0 0/0 .text dMeter2Info_setFloatingMessage__FUssb */ -extern "C" void dMeter2Info_setFloatingMessage__FUssb() { - // NONMATCHING -} - -/* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */ -extern "C" void onForcePanic__9daMidna_cFv() { - // NONMATCHING -} - -/* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */ -extern "C" void checkForceNormalColor__9daMidna_cCFv() { - // NONMATCHING -} - -/* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv - */ -extern "C" void checkForceTiredColor__9daMidna_cCFv() { - // NONMATCHING -} - -/* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */ -extern "C" void checkMidnaTired__9daMidna_cFv() { - // NONMATCHING -} - -/* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */ -extern "C" void onNoServiceWait__9daMidna_cFv() { - // NONMATCHING -} - -/* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv - */ -extern "C" void setControllActorData__8daCrod_cFv() { - // NONMATCHING -} - -/* 80141ACC-80141AE8 13C40C 001C+00 1/1 0/0 0/0 .text - * PrmAbstract__5daObjFPC10fopAc_ac_cQ312daObjMovebox5Act_c5Prm_eQ312daObjMovebox5Act_c5Prm_e - */ -extern "C" void func_80141ACC(void* _this, fopAc_ac_c const* param_0, - daObjMovebox::Act_c::Prm_e param_1, - daObjMovebox::Act_c::Prm_e param_2) { - // NONMATCHING -} - -/* 80141AE8-80141B04 13C428 001C+00 1/1 4/4 0/0 .text cLib_calcTimer__FPUc */ -extern "C" u8 func_80141AE8(u8*) { - // NONMATCHING -} - -/* 80141B04-801446D4 13C444 2BD0+00 0/0 1/0 0/0 .text __sinit_d_a_alink_cpp */ -/* void __sinit_d_a_alink_cpp(){// NONMATCHING -} */ - -/* 801446D4-801446DC 13F014 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_801446D4() { - // NONMATCHING -} - -/* 801446DC-801446E4 13F01C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_801446DC() { - // NONMATCHING -} - -/* 801446E4-801446EC 13F024 0008+00 1/0 0/0 0/0 .text @36@__dt__13dBgS_LinkAcchFv */ -static void func_801446E4() { - // NONMATCHING -} - -/* 801446EC-801446F4 13F02C 0008+00 1/0 0/0 0/0 .text @20@__dt__13dBgS_LinkAcchFv */ -static void func_801446EC() { - // NONMATCHING -} - -/* 801446F4-801446FC 13F034 0008+00 1/0 0/0 0/0 .text @20@__dt__15dBgS_LinkGndChkFv */ -static void func_801446F4() { - // NONMATCHING -} - -/* 801446FC-80144704 13F03C 0008+00 1/0 0/0 0/0 .text @76@__dt__15dBgS_LinkGndChkFv */ -static void func_801446FC() { - // NONMATCHING -} - -/* 80144704-8014470C 13F044 0008+00 1/0 0/0 0/0 .text @60@__dt__15dBgS_LinkGndChkFv */ -static void func_80144704() { - // NONMATCHING -} - -/* 8014470C-80144714 13F04C 0008+00 1/0 0/0 0/0 .text @16@__dt__16dBgS_LinkRoofChkFv */ -static void func_8014470C() { - // NONMATCHING -} - -/* 80144714-8014471C 13F054 0008+00 1/0 0/0 0/0 .text @52@__dt__16dBgS_LinkRoofChkFv */ -static void func_80144714() { - // NONMATCHING -} - -/* 8014471C-80144724 13F05C 0008+00 1/0 0/0 0/0 .text @36@__dt__16dBgS_LinkRoofChkFv */ -static void func_8014471C() { - // NONMATCHING -} - -/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_alink_whistle.inc b/src/d/actor/d_a_alink_whistle.inc index f05a2b59b82..450bbe04bcc 100644 --- a/src/d/actor/d_a_alink_whistle.inc +++ b/src/d/actor/d_a_alink_whistle.inc @@ -28,6 +28,12 @@ static fopAc_ac_c* daAlink_searchHawk(fopAc_ac_c* i_actor, void* i_data) { return NULL; } +/* 80453020-80453024 001620 0004+00 1/1 0/0 0/0 .sdata2 grassWhistleIdx$33097 */ +static const u16 grassWhistleIdx[2] = { + 3, + 3, +}; + /* 80111784-8011181C 10C0C4 0098+00 1/1 0/0 0/0 .text setGrassWhistleModel__9daAlink_cFi */ void daAlink_c::setGrassWhistleModel(int modelType) { diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc index 0ecbe5d9039..e476ed7ffae 100644 --- a/src/d/actor/d_a_alink_wolf.inc +++ b/src/d/actor/d_a_alink_wolf.inc @@ -631,7 +631,7 @@ void daAlink_c::setSpeedAndAngleWolf() { (mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_MOVE)) { cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, var_r30, var_r29, var_r28); - if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.85f) { + if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.6f) { var_r26 = 1; } } else if (mProcID == PROC_WOLF_MOVE && @@ -641,7 +641,7 @@ void daAlink_c::setSpeedAndAngleWolf() { return; } else { cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, var_r30, var_r29, var_r28); - if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.85f) { + if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.6f) { var_r26 = 1; } } @@ -1823,6 +1823,18 @@ void daAlink_c::changeWolfBlendRate(int param_0) { } } +/* 8045314C-80453150 00174C 0004+00 1/1 0/0 0/0 .sdata2 fFootJoint$44785 */ +static const u16 fFootJoint[] = { + 0x0010, + 0x0015, +}; + +/* 80453150-80453154 001750 0004+00 1/1 0/0 0/0 .sdata2 bFootJoint$44786 */ +static const u16 bFootJoint[] = { + 0x001C, + 0x0021, +}; + /* 8012AD1C-8012B724 12565C 0A08+00 1/1 0/0 0/0 .text setWolfFootMatrix__9daAlink_cFv */ void daAlink_c::setWolfFootMatrix() { daAlink_footData_c* var_r29 = mFootData1; @@ -1933,6 +1945,9 @@ void daAlink_c::wolfFootBgCheck() { int sp40[2]; f32 sp38[2]; + static Vec const localFootOffset = {6.0f, -5.0f, 0.0f}; + static Vec const frontOffset = {0.0f, 0.0f, 50.0f}; + mDoMtx_multVec(mpLinkModel->getAnmMtx(0x13), &localFootOffset, &spC8); mDoMtx_multVec(mpLinkModel->getAnmMtx(0x18), &localFootOffset, &spD4); mDoMtx_multVec(mpLinkModel->getAnmMtx(0x1F), &localFootOffset, &spE0); @@ -2187,6 +2202,9 @@ void daAlink_c::checkWolfAtnDoCharge() {} /* 8012C30C-8012CB0C 126C4C 0800+00 1/1 0/0 0/0 .text setWolfChainPos__9daAlink_cFv */ // NONMATCHING - regalloc void daAlink_c::setWolfChainPos() { + static Vec const wolfChainBaseOffset = {22.0f, 0.0f, -12.0f}; + static Vec const wolfChainVec = {0.0f, 0.0f, -9.0f}; + if (mClothesChangeWaitTimer == 0) { cXyz* var_r29 = field_0x363c; cXyz* var_r26 = field_0x366c; @@ -2320,6 +2338,12 @@ void daAlink_c::setWolfChainPos() { /* 8012CB0C-8012CBE4 12744C 00D8+00 1/1 0/0 0/0 .text setWolfAnmVoice__9daAlink_cFv */ void daAlink_c::setWolfAnmVoice() { + static u32 const label[12] = { + Z2SE_WL_V_BREATH_SIT, Z2SE_WL_V_BREATH_WAIT, Z2SE_WL_V_BREATH_WALK, Z2SE_WL_V_BREATH_TIRED, + Z2SE_WL_V_DASH, Z2SE_WL_V_BREATH_JUMP, Z2SE_WL_V_SLIP_CLIMB, Z2SE_WL_V_PUSH_ROCK, + Z2SE_WL_V_TURN_BACK, Z2SE_WL_V_HOLD_THROW, Z2SE_WL_V_FAILED, Z2SE_WL_V_NOSE, + }; + s8* var_r29 = (s8*)field_0x2160; if (field_0x2fd8 >= 12 || field_0x215c == NULL) { @@ -4292,7 +4316,7 @@ f32 daAlink_c::getWolfRopeMoveSpeed() { frame -= 13.5f; } - return daAlinkHIO_wlRope_c0::m.field_0x24 * frameCtrl->getRate() * cM_fsin(0.2327106f * frame); + return daAlinkHIO_wlRope_c0::m.field_0x24 * frameCtrl->getRate() * cM_fsin(0.23271057f * frame); } /* 80131718-801319F0 12C058 02D8+00 6/6 0/0 0/0 .text setWolfRopePosY__9daAlink_cFv */ @@ -5556,8 +5580,8 @@ int daAlink_c::procWolfHangWallCatchInit(int param_0) { current.angle.y = shape_angle.y; - field_0x3588.x = 0.3386448f; - field_0x3588.z = -29.52514f; + field_0x3588.x = 0.33864477f; + field_0x3588.z = -29.525135f; mNormalSpeed = 0.0f; speed.y = 0.0f; @@ -6133,7 +6157,7 @@ int daAlink_c::procWolfScreamWait() { /* 801370E4-8013712C 131A24 0048+00 3/3 0/0 0/0 .text getWolfLieMoveAnmSpeed__9daAlink_cFv */ f32 daAlink_c::getWolfLieMoveAnmSpeed() { if (field_0x3198 != 0) { - return getAnmSpeedStickRate(0.5f, 1.5f); + return getAnmSpeedStickRate(0.5f, 2.0f); } return getAnmSpeedStickRate(daAlinkHIO_wlLie_c0::m.field_0x3C, @@ -6153,7 +6177,7 @@ f32 daAlink_c::getWolfLieMoveSpeed() { } return daAlinkHIO_wlLie_c0::m.field_0x34 * frameCtrl_p->getRate() * - cM_fsin(var_f1 * 0.2094395f); + cM_fsin(var_f1 * 0.20943952f); } /* 801371A0-801371FC 131AE0 005C+00 0/0 0/0 2/2 .text checkMidnaDisappearMode__9daAlink_cCFv */ @@ -7101,6 +7125,9 @@ void daAlink_c::checkWolfComboCnt() { /* 801393A4-801395B4 133CE4 0210+00 4/4 0/0 0/0 .text checkWolfAttackAction__9daAlink_cFv */ BOOL daAlink_c::checkWolfAttackAction() { + static int const normalType0[] = {3, 3, 3, 0, 0}; + static int const normalType1[] = {0, 0, 0, 3, 3}; + if (mComboCutCount == 4) { resetCombo(1); } @@ -7146,7 +7173,7 @@ BOOL daAlink_c::checkWolfAttackAction() { } else if (mComboCutCount == 1 && atk_direction == DIR_FORWARD) { return procWolfJumpAttackInit(0); } else { - return procWolfWaitAttackInit(normalType1_50860[atk_direction]); + return procWolfWaitAttackInit(normalType1[atk_direction]); } } @@ -7746,6 +7773,30 @@ int daAlink_c::procWolfJumpAttackNormalLand() { /* 8013ADF0-8013AFC0 135730 01D0+00 2/2 0/0 0/0 .text procWolfWaitAttackInit__9daAlink_cFi */ int daAlink_c::procWolfWaitAttackInit(int i_attackType) { + struct daAlink_WCutParamTbl { + /* 0x0 */ daAlink_c::daAlink_WANM m_anmID; + /* 0x4 */ u8 m_cutType; + }; // Size: 0x8 + + 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, + }, + }; + const daAlinkHIO_wlAtWait_c1* atk_hio; const daAlink_WCutParamTbl* atk_params = &dataTabl[i_attackType]; @@ -8110,7 +8161,7 @@ int daAlink_c::procWolfDownAtMissLand() { /* 8013BE24-8013C3E4 136764 05C0+00 2/2 0/0 0/0 .text procWolfLockAttackInit__9daAlink_cFi */ int daAlink_c::procWolfLockAttackInit(int param_0) { commonProcInit(PROC_WOLF_LOCK_ATTACK); - setSingleAnimeWolfParam(WANM_ATTACK_A_START, &daAlinkHIO_wlAtLock_c0::m.field_0x0); + setSingleAnimeWolfParam(WANM_ATTACK_A_START, &daAlinkHIO_wlAtNjump_c0::m.field_0x0); if (fopAcM_GetName(mWolfLockAcKeep[0].getActor()) == PROC_E_YMB) { mProcVar5.field_0x3012 = 1; @@ -9344,6 +9395,16 @@ int daAlink_c::procWolfDig() { return 1; } +/* 804531D8-804531E0 0017D8 0008+00 1/1 0/0 0/0 .sdata2 snowID$53110 */ +static const u16 snowID[] = { + 0x884D, 0x884E, 0x8851, 0x8852, +}; + +/* 804531E0-804531E8 0017E0 0008+00 1/1 0/0 0/0 .sdata2 smokeID$53111 */ +static const u16 smokeID[] = { + 0x83A0, 0x83A1, 0x83A4, 0x83A5, +}; + /* 8013F4A8-8013F7C4 139DE8 031C+00 2/2 0/0 0/0 .text procWolfDigThroughInit__9daAlink_cFi */ int daAlink_c::procWolfDigThroughInit(int param_0) { if (param_0 != 0) { diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index bb831c8f920..7b695aa0077 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -522,10 +522,6 @@ bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) { return checkNowWolf() && linkGrabSubjectNoDraw(i_actor); } -u32 daPy_py_c::getLastSceneMode() { - return dComIfGs_getLastSceneMode() & 0xF; -} - /* 8015F660-8015F698 159FA0 0038+00 2/2 1/1 1/1 .text checkRoomRestartStart__9daPy_py_cFv */ bool daPy_py_c::checkRoomRestartStart() { diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 58b69104760..8fa9081798b 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -424,10 +424,6 @@ void positionOf__9dCamera_cFP10fopAc_ac_c(); void setFlag__9dCamera_cFUl(); void eyePos__9dCamera_cFP10fopAc_ac_c(); -u32 daPy_py_c::getLastSceneMode() { - return dComIfGs_getLastSceneMode() & 0xF; -} - // // Declarations: //