alink data cleanup (#2397)

This commit is contained in:
TakaRikka 2025-04-16 13:03:00 -07:00 committed by GitHub
parent fe2b2ee0e8
commit f08e883783
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 7029 additions and 10021 deletions

View File

@ -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<u8>(&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];

View File

@ -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();

View File

@ -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();

View File

@ -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 &current.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 &current.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; }

View File

@ -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();

View File

@ -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);
}

View File

@ -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);
}

File diff suppressed because it is too large Load Diff

View File

@ -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) {

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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];
}
}

View File

@ -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);

View File

@ -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(&current.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], &current.pos, &shape_angle);
static u16 const effName[] = {0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, 0x09FA};
setEmitter(&field_0x3240[i], effName[i], &current.pos, &shape_angle);
}
}
}

View File

@ -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], &current.pos, &shape_angle);
JPABaseEmitter* emitter = setEmitter(&field_0x326c[i], effName[i], &current.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, &current.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], &current.pos, &shape_angle);
JPABaseEmitter* emitter = setEmitter(&field_0x327c[i], effName[i], &current.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));
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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);

View File

@ -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, &current.pos);
static const Vec localHorseRun = {15.0f, 0.0f, -45.0f};
mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun, &current.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, &current.pos);
static const Vec localHorseRun = {30.0f, 0.0f, -10.0f};
mDoMtx_multVec(horse_p->getSaddleMtx(), &localHorseRun, &current.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, &current.pos);
static const Vec localOffset = {-30.0f, -18.0f, 0.0f};
mDoMtx_multVec(ride_mtx, &localOffset, &current.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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -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() {

View File

@ -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) {

File diff suppressed because it is too large Load Diff

View File

@ -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) {

View File

@ -631,7 +631,7 @@ void daAlink_c::setSpeedAndAngleWolf() {
(mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_MOVE))
{
cLib_addCalcAngleS(&current.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(&current.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) {

View File

@ -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() {

View File

@ -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:
//