Add enum for player's equipped item

This commit is contained in:
LagoLunatic
2024-05-10 00:19:26 -04:00
parent af61ba5f0a
commit 91891dc313
7 changed files with 154 additions and 139 deletions
+21 -6
View File
@@ -802,6 +802,21 @@ public:
ModeFlg_PARRY = 0x80000000,
};
enum {
daPyItem_NONE_e = 0x100,
daPyItem_BOKO_e = 0x101,
daPyItem_UNK102_e = 0x102,
daPyItem_SWORD_e = 0x103,
daPyItem_UNK104_e = 0x104,
daPyItem_DRINK_BOTTLE_e = 0x105,
daPyItem_OPEN_BOTTLE_e = 0x106,
daPyItem_ESA_e = 0x107,
daPyItem_BOW_e = 0x108,
daPyItem_PHOTOBOX_e = 0x109,
daPyItem_UNK10A_e = 0x10A,
daPyItem_UNK10B_e = 0x10B,
};
typedef BOOL (daPy_lk_c::*ProcFunc)();
void seStartOnlyReverb(u32);
@@ -1846,7 +1861,7 @@ public:
/* 0x2E84 */ J3DModel* mpHbootsModels[2];
/* 0x2E8C */ J3DModel* mpPringModel;
/* 0x2E90 */ JKRSolidHeap* mpItemHeaps[2];
/* 0x2E98 */ J3DModel* mpHeldItemModel;
/* 0x2E98 */ J3DModel* mpEquipItemModel;
/* 0x2E9C */ mDoExt_bckAnm mSwordAnim;
/* 0x2EAC */ mDoExt_McaMorf* mpParachuteFanMorf;
/* 0x2EB0 */ J3DAnmTevRegKey* mpBombBrk;
@@ -1858,9 +1873,9 @@ public:
/* 0x2EC8 */ J3DAnmTextureSRTKey* mpGicer01Btk;
/* 0x2ECC */ JKRSolidHeap* mpItemAnimeHeap;
/* 0x2ED0 */ void* m_item_bck_buffer;
/* 0x2ED4 */ J3DAnmTextureSRTKey* mpHeldItemBtk;
/* 0x2ED4 */ J3DAnmTextureSRTKey* mpEquipItemBtk;
/* 0x2ED8 */ J3DAnmTextureSRTKey* mpSwordBtk;
/* 0x2EDC */ J3DAnmTevRegKey* mpHeldItemBrk;
/* 0x2EDC */ J3DAnmTevRegKey* mpEquipItemBrk;
/* 0x2EE0 */ J3DModel* mpBottleContentsModel;
/* 0x2EE4 */ J3DModel* mpBottleCapModel;
/* 0x2EE8 */ J3DModel* mpSwordModel1;
@@ -1942,7 +1957,7 @@ public:
/* 0x34BA */ u8 m34BA;
/* 0x34BB */ u8 mCurrItemHeapIdx;
/* 0x34BC */ u8 m34BC;
/* 0x34BD */ u8 mLastUsedItemButtonIdx;
/* 0x34BD */ u8 mReadyItemIdx; // Which of the three item buttons the player last used.
/* 0x34BE */ u8 m34BE;
/* 0x34BF */ s8 mReverb;
/* 0x34C0 */ u8 mLeftHandIdx;
@@ -2025,14 +2040,14 @@ public:
/* 0x354C */ s16 mTinkleHoverTimer;
/* 0x354E */ s16 mTinkleShieldTimer;
/* 0x3550 */ s16 m3550;
/* 0x3552 */ u16 mKeepItemType;
/* 0x3552 */ u16 mKeepItem; // The item Link was previously holding in his hand, and is now temporarily put away.
/* 0x3554 */ s16 m3554;
/* 0x3556 */ u8 m3556[0x3558 - 0x3556];
/* 0x3558 */ s16 m3558;
/* 0x355A */ s16 m355A;
/* 0x355C */ s16 m355C;
/* 0x355E */ s16 m355E;
/* 0x3560 */ u16 mHeldItemType;
/* 0x3560 */ u16 mEquipItem; // The item Link is currently holding in his hand.
/* 0x3562 */ u16 m3562;
/* 0x3564 */ s16 m3564;
/* 0x3566 */ s16 m3566;
+1 -1
View File
@@ -20,7 +20,7 @@ void daPy_lk_c::getDemoLookActor() {
/* 8012CDD4-8012CE2C .text setTinkleCeiverModel__9daPy_lk_cFv */
void daPy_lk_c::setTinkleCeiverModel() {
JKRHeap* oldHeap = setItemHeap();
initModel(&mpHeldItemModel, LINK_BDL_TCEIVER, 0x13000022);
initModel(&mpEquipItemModel, LINK_BDL_TCEIVER, 0x13000022);
mDoExt_setCurrentHeap(oldHeap);
}
+2 -2
View File
@@ -94,9 +94,9 @@ void daPy_lk_c::setParachuteFanModel(f32 f31) {
);
if (mpParachuteFanMorf == NULL || mpParachuteFanMorf->getModel() == NULL) { JUT_ASSERT(323, 0); }
mpHeldItemModel = mpParachuteFanMorf->getModel();
mpEquipItemModel = mpParachuteFanMorf->getModel();
mDoExt_setCurrentHeap(oldHeap);
mpHeldItemModel->setUserArea(reinterpret_cast<u32>(this));
mpEquipItemModel->setUserArea(reinterpret_cast<u32>(this));
modelData->getJointNodePointer(0x01)->setCallBack(daPy_parachuteJointCallback); // skeleton_root_Lroot joint
modelData->getJointNodePointer(0x07)->setCallBack(daPy_parachuteJointCallback); // skeleton_root_Rroot joint
modelData->getJointNodePointer(0x03)->setCallBack(daPy_parachuteJointCallback); // skeleton_root_LarmB joint
+5 -5
View File
@@ -19,13 +19,13 @@
/* 80154334-801543A0 .text setHyoiModel__9daPy_lk_cFv */
void daPy_lk_c::setHyoiModel() {
if (mHeldItemType == dItem_HYOI_PEAR_e) {
if (mEquipItem == dItem_HYOI_PEAR_e) {
return;
}
JKRHeap* oldHeap = setItemHeap();
initModel(&mpHeldItemModel, LINK_BDL_HYOINOMI, 0x13000022);
initModel(&mpEquipItemModel, LINK_BDL_HYOINOMI, 0x13000022);
mDoExt_setCurrentHeap(oldHeap);
mHeldItemType = dItem_HYOI_PEAR_e;
mEquipItem = dItem_HYOI_PEAR_e;
}
/* 801543A0-801546F4 .text procFoodThrow_init__9daPy_lk_cFv */
@@ -140,7 +140,7 @@ BOOL daPy_lk_c::procFoodThrow() {
dComIfGs_setReserveBaitEmpty(2);
}
} else {
dComIfGs_setReserveBaitEmpty(mLastUsedItemButtonIdx);
dComIfGs_setReserveBaitEmpty(mReadyItemIdx);
}
}
}
@@ -151,7 +151,7 @@ BOOL daPy_lk_c::procFoodThrow() {
BOOL daPy_lk_c::procFoodSet_init() {
if (mCurProc == daPyProc_FOOD_SET_e) {
if (mDemo.getParam0() == 1) {
if (mHeldItemType == dItem_HYOI_PEAR_e) {
if (mEquipItem == dItem_HYOI_PEAR_e) {
u8 btnIdx = dComIfGp_event_getTalkXYBtn();
if (btnIdx == 1) {
dComIfGs_setEquipBottleItemEmpty(0);
+101 -101
View File
@@ -311,9 +311,9 @@ void daPy_lk_c::voiceStart(u32 param_1) {
/* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemButton() const {
if (mLastUsedItemButtonIdx == 0) {
if (mReadyItemIdx == 0) {
return m34C9 & 0x04;
} else if (mLastUsedItemButtonIdx == 1) {
} else if (mReadyItemIdx == 1) {
return m34C9 & 0x08;
} else {
return m34C9 & 0x10;
@@ -322,9 +322,9 @@ BOOL daPy_lk_c::itemButton() const {
/* 801031DC-80103214 .text itemTrigger__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemTrigger() const {
if (mLastUsedItemButtonIdx == 0) {
if (mReadyItemIdx == 0) {
return mPressedButtons & 0x04;
} else if (mLastUsedItemButtonIdx == 1) {
} else if (mReadyItemIdx == 1) {
return mPressedButtons & 0x08;
} else {
return mPressedButtons & 0x10;
@@ -333,9 +333,9 @@ BOOL daPy_lk_c::itemTrigger() const {
/* 80103214-80103258 .text getReadyItem__9daPy_lk_cFv */
u8 daPy_lk_c::getReadyItem() {
if (mLastUsedItemButtonIdx == 0) {
if (mReadyItemIdx == 0) {
return dComIfGp_getSelectItem(0);
} else if (mLastUsedItemButtonIdx == 1) {
} else if (mReadyItemIdx == 1) {
return dComIfGp_getSelectItem(1);
} else {
return dComIfGp_getSelectItem(2);
@@ -363,15 +363,15 @@ BOOL daPy_lk_c::checkGroupItem(int param_1, int itemNo) {
BOOL daPy_lk_c::checkSetItemTrigger(int param_1, int param_2) {
if (param_2 == 0 || !daPy_dmEcallBack_c::checkCurse()) {
if (mPressedButtons & 0x04 && checkGroupItem(param_1, dComIfGp_getSelectItem(0))) {
mLastUsedItemButtonIdx = 0;
mReadyItemIdx = 0;
return TRUE;
}
if (mPressedButtons & 0x08 && checkGroupItem(param_1, dComIfGp_getSelectItem(1))) {
mLastUsedItemButtonIdx = 1;
mReadyItemIdx = 1;
return TRUE;
}
if (mPressedButtons & 0x10 && checkGroupItem(param_1, dComIfGp_getSelectItem(2))) {
mLastUsedItemButtonIdx = 2;
mReadyItemIdx = 2;
return TRUE;
}
}
@@ -1023,15 +1023,15 @@ BOOL daPy_lk_c::draw() {
if (mpBottleContentsModel != NULL) {
updateDLSetLight(mpBottleContentsModel, 0);
}
if (mpHeldItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(0)) {
if (!checkBowItem(mHeldItemType) || !checkPlayerGuard()) {
if (mHeldItemType == dItem_HOOKSHOT_e) {
if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(0)) {
if (!checkBowItem(mEquipItem) || !checkPlayerGuard()) {
if (mEquipItem == dItem_HOOKSHOT_e) {
if (mActorKeepEquip.getActor()) {
daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor();
mpHeldItemModel->setAnmMtx(4, hookshot->getMtxTop());
mpEquipItemModel->setAnmMtx(4, hookshot->getMtxTop());
}
}
entryDLSetLight(mpHeldItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
entryDLSetLight(mpEquipItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
if (mpSwordModel1 != NULL) {
if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX) {
updateDLSetLight(mpSwordModel1, 0);
@@ -1118,11 +1118,11 @@ void daPy_lk_c::setActorPointer() {
mActorKeepThrow.setActor();
mActorKeepEquip.setActor();
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
fopAc_ac_c* actor = mActorKeepEquip.getActor();
if (actor == NULL || !fopAcM_checkCarryNow(actor)) {
mActorKeepEquip.clearData();
mHeldItemType = 0x100;
mEquipItem = daPyItem_NONE_e;
}
}
@@ -1363,17 +1363,17 @@ BOOL daPy_lk_c::checkEquipAnime() const {
void daPy_lk_c::deleteEquipItem(BOOL param_1) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
if (param_1 && (mHeldItemType != 0x100 && mHeldItemType != 0x101)) {
if (mHeldItemType == 0x103) {
if (param_1 && (mEquipItem != daPyItem_NONE_e && mEquipItem != daPyItem_BOKO_e)) {
if (mEquipItem == daPyItem_SWORD_e) {
seStartOnlyReverb(JA_SE_LK_SW_PUTIN_S);
} else {
seStartOnlyReverb(JA_SE_LK_ITEM_TAKEOUT);
}
}
if (mHeldItemType == 0x103) {
if (mEquipItem == daPyItem_SWORD_e) {
mDoAud_bgmSetSwordUsing(0);
} else if (mHeldItemType == 0x101) {
} else if (mEquipItem == daPyItem_BOKO_e) {
if (equipActor != NULL) {
fopAcM_cancelCarryNow(equipActor);
}
@@ -1381,25 +1381,25 @@ void daPy_lk_c::deleteEquipItem(BOOL param_1) {
fopAcM_delete(equipActor);
}
if ((mHeldItemType == dItem_GRAPPLING_HOOK_e && checkRopeAnime()) ||
(mHeldItemType == dItem_BOOMERANG_e && checkBoomerangAnime()) ||
(mHeldItemType == dItem_HOOKSHOT_e && checkHookshotReadyAnime()) ||
(checkBowItem(mHeldItemType) && checkBowAnime())
if ((mEquipItem == dItem_GRAPPLING_HOOK_e && checkRopeAnime()) ||
(mEquipItem == dItem_BOOMERANG_e && checkBoomerangAnime()) ||
(mEquipItem == dItem_HOOKSHOT_e && checkHookshotReadyAnime()) ||
(checkBowItem(mEquipItem) && checkBowAnime())
) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
}
mActorKeepEquip.clearData();
mHeldItemType = 0x100;
mpHeldItemModel = NULL;
mEquipItem = daPyItem_NONE_e;
mpEquipItemModel = NULL;
if (mSwordAnim.getBckAnm() != NULL) {
mSwordAnim.changeBckOnly(NULL);
}
mpParachuteFanMorf = NULL;
mpHeldItemBtk = NULL;
mpEquipItemBtk = NULL;
mpBottleContentsModel = NULL;
mpBottleCapModel = NULL;
mpHeldItemBrk = NULL;
mpEquipItemBrk = NULL;
mpSwordBtk = NULL;
mpSwordModel1 = NULL;
m3454.end();
@@ -1418,31 +1418,31 @@ void daPy_lk_c::setFallVoice() {
/* 8010C7F4-8010C854 .text keepItemData__9daPy_lk_cFv */
/* Saves which item the player was holding in their hand so it can be restored later. */
void daPy_lk_c::keepItemData() {
mKeepItemType = mHeldItemType;
mKeepItem = mEquipItem;
deleteEquipItem(FALSE);
if (mKeepItemType == 0x101) {
mKeepItemType = 0x100;
} else if (mKeepItemType == 0x100) {
mKeepItemType = 0x10B;
if (mKeepItem == daPyItem_BOKO_e) {
mKeepItem = daPyItem_NONE_e;
} else if (mKeepItem == daPyItem_NONE_e) {
mKeepItem = daPyItem_UNK10B_e;
}
}
/* 8010C854-8010C8D4 .text returnKeepItemData__9daPy_lk_cFv */
/* Restores which item the player was holding in their hand. */
void daPy_lk_c::returnKeepItemData() {
if (mKeepItemType == 0x100) {
if (mKeepItem == daPyItem_NONE_e) {
return;
}
deleteEquipItem(FALSE);
mHeldItemType = mKeepItemType;
mKeepItemType = 0x100;
mEquipItem = mKeepItem;
mKeepItem = daPyItem_NONE_e;
if (mHeldItemType == 0x10B) {
mHeldItemType = 0x100;
} else if (mHeldItemType == 0x103) {
if (mEquipItem == daPyItem_UNK10B_e) {
mEquipItem = daPyItem_NONE_e;
} else if (mEquipItem == daPyItem_SWORD_e) {
setSwordModel(TRUE);
} else {
makeItemType();
@@ -1451,21 +1451,21 @@ void daPy_lk_c::returnKeepItemData() {
/* 8010C8D4-8010CB70 .text makeItemType__9daPy_lk_cFv */
void daPy_lk_c::makeItemType() {
if (mHeldItemType == dItem_GRAPPLING_HOOK_e) {
if (mEquipItem == dItem_GRAPPLING_HOOK_e) {
fopAc_ac_c* rope = (fopAc_ac_c*)fopAcM_fastCreate(PROC_HIMO2, 0, &current.pos);
mActorKeepEquip.setData(rope);
} else if (mHeldItemType == dItem_HOOKSHOT_e) {
} else if (mEquipItem == dItem_HOOKSHOT_e) {
fopAc_ac_c* hookshot = (fopAc_ac_c*)fopAcM_fastCreate(PROC_HOOKSHOT, 0, &current.pos);
mActorKeepEquip.setData(hookshot);
setHookshotModel();
} else if (mHeldItemType == dItem_BOOMERANG_e) {
} else if (mEquipItem == dItem_BOOMERANG_e) {
fopAc_ac_c* boomerang = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOOMERANG, 0, &current.pos);
mActorKeepEquip.setData(boomerang);
return;
} else if (mHeldItemType == BOMB_BAG) {
} else if (mEquipItem == BOMB_BAG) {
fopAc_ac_c* bomb = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOMB, daBomb_c::prm_make(daBomb_c::STATE_3, false, false), &current.pos);
mActorKeepGrab.setData(bomb);
mHeldItemType = 0x100;
mEquipItem = daPyItem_NONE_e;
if (mActorKeepGrab.getActor() != NULL) {
setActAnimeUpper(LKANM_BCK_GRABWAIT, UPPER_MOVE2_e, 0.0f, 0.0f, -1, 5.0f);
mActivePlayerBombs++;
@@ -1474,37 +1474,37 @@ void daPy_lk_c::makeItemType() {
m35C8 = 17.0f;
}
return;
} else if (checkBowItem(mHeldItemType)) {
} else if (checkBowItem(mEquipItem)) {
setBowModel();
return;
} else if (mHeldItemType == dItem_TELESCOPE_e) {
} else if (mEquipItem == dItem_TELESCOPE_e) {
setScopeModel();
return;
} else if (checkPhotoBoxItem(mHeldItemType)) {
} else if (checkPhotoBoxItem(mEquipItem)) {
setPhotoBoxModel();
return;
} else if (mHeldItemType == dItem_TINGLE_TUNER_e) {
} else if (mEquipItem == dItem_TINGLE_TUNER_e) {
setTinkleCeiverModel();
return;
} else if (mHeldItemType == dItem_DEKU_LEAF_e) {
} else if (mEquipItem == dItem_DEKU_LEAF_e) {
setSmallFanModel();
return;
} else if (mHeldItemType == dItem_WIND_WAKER_e) {
mHeldItemType = dItem_NONE_e;
} else if (mEquipItem == dItem_WIND_WAKER_e) {
mEquipItem = dItem_NONE_e;
setTactModel();
return;
} else if (mHeldItemType == dItem_SKULL_HAMMER_e) {
} else if (mEquipItem == dItem_SKULL_HAMMER_e) {
setHammerModel();
return;
} else if (mHeldItemType == EMPTY_BOTTLE) {
setBottleModel(mHeldItemType);
} else if (mEquipItem == EMPTY_BOTTLE) {
setBottleModel(mEquipItem);
return;
} else {
return;
}
if (mActorKeepEquip.getActor() == NULL) {
mHeldItemType = 0x100;
mEquipItem = daPyItem_NONE_e;
offResetFlg0(daPyRFlg0_UNK80);
}
}
@@ -1512,19 +1512,19 @@ void daPy_lk_c::makeItemType() {
/* 8010CB70-8010CBC8 .text setScopeModel__9daPy_lk_cFv */
void daPy_lk_c::setScopeModel() {
JKRHeap* oldHeap = setItemHeap();
initModel(&mpHeldItemModel, LINK_BDL_TELESCOPE, 0x37221222);
initModel(&mpEquipItemModel, LINK_BDL_TELESCOPE, 0x37221222);
mDoExt_setCurrentHeap(oldHeap);
}
/* 8010CBC8-8010CC78 .text setPhotoBoxModel__9daPy_lk_cFv */
void daPy_lk_c::setPhotoBoxModel() {
JKRHeap* oldHeap = setItemHeap();
initModel(&mpHeldItemModel, LINK_BDL_CAMERA, 0x37221222);
initModel(&mpEquipItemModel, LINK_BDL_CAMERA, 0x37221222);
mDoExt_setCurrentHeap(oldHeap);
if (mHeldItemType == CAMERA) {
mpHeldItemModel->getModelData()->getJointNodePointer(0x02)->getMesh()->getShape()->hide();
if (mEquipItem == CAMERA) {
mpEquipItemModel->getModelData()->getJointNodePointer(0x02)->getMesh()->getShape()->hide();
} else {
mpHeldItemModel->getModelData()->getJointNodePointer(0x02)->getMesh()->getShape()->show();
mpEquipItemModel->getModelData()->getJointNodePointer(0x02)->getMesh()->getShape()->show();
}
}
@@ -1546,21 +1546,21 @@ BOOL daPy_lk_c::checkItemChangeFromButton() {
!checkPlayerGuard()
) {
if (!daPy_dmEcallBack_c::checkCurse()) {
if (mPressedButtons & 0x02 && checkSwordEquip() && mHeldItemType != 0x103) {
if (mPressedButtons & 0x02 && checkSwordEquip() && mEquipItem != daPyItem_SWORD_e) {
setAnimeEquipSword(1);
} else if (mPressedButtons & 0x04) {
if (checkNewItemChange(0)) {
mLastUsedItemButtonIdx = 0;
mReadyItemIdx = 0;
return TRUE;
}
} else if (mPressedButtons & 0x08) {
if (checkNewItemChange(1)) {
mLastUsedItemButtonIdx = 1;
mReadyItemIdx = 1;
return TRUE;
}
} else if (mPressedButtons & 0x10) {
if (checkNewItemChange(2)) {
mLastUsedItemButtonIdx = 2;
mReadyItemIdx = 2;
return TRUE;
}
} else if (mPressedButtons & 0x01) {
@@ -1574,8 +1574,8 @@ BOOL daPy_lk_c::checkItemChangeFromButton() {
} else if (mAcch.ChkGroundHit() && !daPy_lk_c::checkPlayerFly()) {
if (checkEquipHeavyBoots() && checkSetItemTrigger(dItem_IRON_BOOTS_e, 0)) {
return procBootsEquip_init(dItem_IRON_BOOTS_e);
} else if (checkSetItemTrigger(0x105, 0)) {
return procBottleDrink_init(dComIfGp_getSelectItem(mLastUsedItemButtonIdx));
} else if (checkSetItemTrigger(daPyItem_DRINK_BOTTLE_e, 0)) {
return procBottleDrink_init(dComIfGp_getSelectItem(mReadyItemIdx));
} else if (checkSetItemTrigger(FAIRY_BOTTLE, 0)) {
return procBottleOpen_init(FAIRY_BOTTLE);
} else if (mPressedButtons & 0x01) {
@@ -1853,7 +1853,7 @@ BOOL daPy_lk_c::changeDamageProc() {
freeHookshotItem();
if (!checkSuccessGuard(r27)) {
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
deleteEquipItem(FALSE);
}
@@ -1910,7 +1910,7 @@ BOOL daPy_lk_c::changeDamageProc() {
}
} else if (r30) {
changePlayer(this);
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
deleteEquipItem(FALSE);
}
setDamagePoint(-damage);
@@ -2055,14 +2055,14 @@ BOOL daPy_lk_c::commonProcInit(daPy_PROC proc) {
mActorKeepRope.clearData();
} else if (mCurProc == daPyProc_DEMO_TALISMAN_WAIT_e) {
seStartOnlyReverb(JA_SE_LK_ITEM_TAKEOUT);
mpHeldItemModel = NULL;
mpEquipItemModel = NULL;
} else if (mCurProc == daPyProc_FAN_SWING_e) {
setSmallFanModel();
} else if (mCurProc == daPyProc_FAN_GLIDE_e) {
deleteEquipItem(FALSE);
maxFallSpeed = daPy_HIO_autoJump_c0::m.field_0x10;
setSmallFanModel();
mHeldItemType = dItem_DEKU_LEAF_e;
mEquipItem = dItem_DEKU_LEAF_e;
m35F0 = m3688.y;
m3730 = cXyz::Zero;
m34E0 = 0;
@@ -2192,9 +2192,9 @@ BOOL daPy_lk_c::commonProcInit(daPy_PROC proc) {
m35EC = 0.0f;
if (mHeldItemType == dItem_SKULL_HAMMER_e) {
if (mEquipItem == dItem_SKULL_HAMMER_e) {
mSwordAnim.changeBckOnly(getItemAnimeResource(0x97));
} else if (checkBowItem(mHeldItemType) && !checkBowAnime()) {
} else if (checkBowItem(mEquipItem) && !checkBowAnime()) {
mSwordAnim.changeBckOnly(getItemAnimeResource(0xD));
}
@@ -2245,7 +2245,7 @@ BOOL daPy_lk_c::procCall_init() {
daPy_matAnm_c::setMabaTimer(1);
setSingleMoveAnime(ANM_YOBU, 1.0f, 0.0f, -1, daPy_HIO_basic_c0::m.field_0xC);
current.angle.y = shape_angle.y;
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
deleteEquipItem(FALSE);
}
voiceStart(0x2A);
@@ -2849,7 +2849,7 @@ f32 daPy_lk_c::getBlurTopRate() {
return 0.0f;
}
if (mHeldItemType == 0x103) {
if (mEquipItem == daPyItem_SWORD_e) {
if (checkNormalSwordEquip()) {
return 0.5f;
} else {
@@ -2857,7 +2857,7 @@ f32 daPy_lk_c::getBlurTopRate() {
}
}
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
if (mActorKeepEquip.getActor() == NULL) {
return 0.0f;
} else {
@@ -3186,7 +3186,7 @@ BOOL daPy_lk_c::execute() {
if (dComIfGp_event_runCheck()) {
mStaffIdx = dComIfGp_evmng_getMyStaffId("Link", this);
if (eventInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(0x4) && mHeldItemType == 0x101) {
if (eventInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(0x4) && mEquipItem == daPyItem_BOKO_e) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
if (equipActor) {
s16 angle = shape_angle.y + 0x8000;
@@ -3226,7 +3226,7 @@ BOOL daPy_lk_c::execute() {
dComIfGp_setDoStatus(0);
dComIfGp_setRStatus(0);
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
dComIfGp_setAStatus(0x2F);
} else if (checkSwordEquip()) {
dComIfGp_setAStatus(0x35);
@@ -3277,7 +3277,7 @@ BOOL daPy_lk_c::execute() {
freeGrabItem();
}
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
if (equipActor == NULL || !fopAcM_checkCarryNow(equipActor)) {
deleteEquipItem(FALSE);
}
@@ -3295,7 +3295,7 @@ BOOL daPy_lk_c::execute() {
setDemoData();
setStickData();
if (mHeldItemType == dItem_GRAPPLING_HOOK_e &&
if (mEquipItem == dItem_GRAPPLING_HOOK_e &&
(mCurProc == daPyProc_ROPE_SUBJECT_e || mCurProc == daPyProc_ROPE_MOVE_e) &&
mActorKeepEquip.getActor() != NULL && fopAcM_GetParam(mActorKeepEquip.getActor()) == 2
) {
@@ -3316,7 +3316,7 @@ BOOL daPy_lk_c::execute() {
checkItemAction();
if (mHeldItemType == 0x103 && (m34C4 == 2 || m34C4 == 3)) {
if (mEquipItem == daPyItem_SWORD_e && (m34C4 == 2 || m34C4 == 3)) {
if (mAtCps[0].ChkAtHit() || mAtCps[1].ChkAtHit() || mAtCps[2].ChkAtHit()) {
m34C4 += 2;
}
@@ -3536,9 +3536,9 @@ BOOL daPy_lk_c::execute() {
if (mCurProc == daPyProc_CUT_F_e || mCurProc == daPyProc_BT_VERTICAL_JUMP_CUT_e) {
if (checkNormalSwordEquip()) {
mpSwordTipStabModel->setBaseTRMtx(mpHeldItemModel->getAnmMtx(0x03));
mpSwordTipStabModel->setBaseTRMtx(mpEquipItemModel->getAnmMtx(0x03));
} else {
mpSwordTipStabModel->setBaseTRMtx(mpHeldItemModel->getAnmMtx(0x04));
mpSwordTipStabModel->setBaseTRMtx(mpEquipItemModel->getAnmMtx(0x04));
}
}
@@ -3547,24 +3547,24 @@ BOOL daPy_lk_c::execute() {
m36D0 = mSwordTopPos;
m36DC = m36C4;
if (mHeldItemType == 0x101 && mActorKeepEquip.getActor()) {
if (mEquipItem == daPyItem_BOKO_e && mActorKeepEquip.getActor()) {
daBoko_c* boko = static_cast<daBoko_c*>(mActorKeepEquip.getActor());
boko->getTopPos(&mSwordTopPos);
boko->getBlurRootPos(&m36C4);
} else if (mHeldItemType == dItem_SKULL_HAMMER_e) {
cMtx_multVec(mpHeldItemModel->getBaseTRMtx(), &hammer_top, &mSwordTopPos);
cMtx_multVec(mpHeldItemModel->getBaseTRMtx(), &hammer_root, &m36C4);
} else if (mHeldItemType == 0x103) {
} else if (mEquipItem == dItem_SKULL_HAMMER_e) {
cMtx_multVec(mpEquipItemModel->getBaseTRMtx(), &hammer_top, &mSwordTopPos);
cMtx_multVec(mpEquipItemModel->getBaseTRMtx(), &hammer_root, &m36C4);
} else if (mEquipItem == daPyItem_SWORD_e) {
if (checkNormalSwordEquip()) {
cMtx_multVec(mpHeldItemModel->getAnmMtx(0x01), &nsword_top, &mSwordTopPos);
mDoMtx_multVecZero(mpHeldItemModel->getAnmMtx(0x02), &m36C4);
cMtx_multVec(mpEquipItemModel->getAnmMtx(0x01), &nsword_top, &mSwordTopPos);
mDoMtx_multVecZero(mpEquipItemModel->getAnmMtx(0x02), &m36C4);
} else {
mDoMtx_multVecZero(mpHeldItemModel->getAnmMtx(0x01), &m36C4);
cMtx_multVec(mpHeldItemModel->getAnmMtx(0x01), &msword_top, &mSwordTopPos);
mDoMtx_multVecZero(mpEquipItemModel->getAnmMtx(0x01), &m36C4);
cMtx_multVec(mpEquipItemModel->getAnmMtx(0x01), &msword_top, &mSwordTopPos);
}
} else if (mCurProc == daPyProc_FAN_SWING_e) {
mDoMtx_multVecZero(mpHeldItemModel->getBaseTRMtx(), &m36C4);
cMtx_multVec(mpHeldItemModel->getAnmMtx(0x06), &fan_top, &mSwordTopPos);
mDoMtx_multVecZero(mpEquipItemModel->getBaseTRMtx(), &m36C4);
cMtx_multVec(mpEquipItemModel->getAnmMtx(0x06), &fan_top, &mSwordTopPos);
} else {
mDoMtx_multVecZero(mpCLModel->getAnmMtx(0x0D), &m36C4);
mDoMtx_multVecZero(mpCLModel->getAnmMtx(0x0D), &mSwordTopPos);
@@ -4119,8 +4119,8 @@ void daPy_lk_c::playerInit() {
mAcchCir[2].SetWall(125.0f, 35.0f);
mHeadTopPos.setall(0.0f);
mHeight = 125.0f;
mHeldItemType = 0x100;
mKeepItemType = 0x100;
mEquipItem = daPyItem_NONE_e;
mKeepItem = daPyItem_NONE_e;
mCameraInfoIdx = dComIfGp_getPlayerCameraID(0);
mpAttention = &dComIfGp_getAttention();
@@ -4558,19 +4558,19 @@ void daPy_lk_c::setHandModel(daPy_ANM anmIdx) {
/* 801288A0-8012894C .text getAnmData__9daPy_lk_cCFQ29daPy_lk_c8daPy_ANM */
const daPy_anmIndex_c* daPy_lk_c::getAnmData(daPy_ANM anm) const {
if (mHeldItemType == 0x103) {
if (mEquipItem == daPyItem_SWORD_e) {
if (anm < (s32)ARRAY_SIZE(mSwordAnmIndexTable)) {
return &mSwordAnmIndexTable[anm];
}
} else if (mHeldItemType == 0x101) {
} else if (mEquipItem == daPyItem_BOKO_e) {
if (anm < (s32)ARRAY_SIZE(mBokoAnmIndexTable)) {
return &mBokoAnmIndexTable[anm];
}
} else if (mHeldItemType == dItem_SKULL_HAMMER_e) {
} else if (mEquipItem == dItem_SKULL_HAMMER_e) {
if (anm < (s32)ARRAY_SIZE(mHammerAnmIndexTable)) {
return &mHammerAnmIndexTable[anm];
}
} else if (mHeldItemType == dItem_BOOMERANG_e || mHeldItemType == dItem_DEKU_LEAF_e || mHeldItemType == dItem_TELESCOPE_e) {
} else if (mEquipItem == dItem_BOOMERANG_e || mEquipItem == dItem_DEKU_LEAF_e || mEquipItem == dItem_TELESCOPE_e) {
if (anm == ANM_DASH) {
return &mSwordAnmIndexTable[anm];
}
@@ -4580,7 +4580,7 @@ const daPy_anmIndex_c* daPy_lk_c::getAnmData(daPy_ANM anm) const {
/* 8012894C-80128988 .text checkGrabWeapon__9daPy_lk_cFi */
BOOL daPy_lk_c::checkGrabWeapon(int r4) {
if (mHeldItemType == 0x101 && mActorKeepEquip.getActor() != NULL) {
if (mEquipItem == daPyItem_BOKO_e && mActorKeepEquip.getActor() != NULL) {
daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor();
if (r4 == 6 || fopAcM_GetParam(boko) == r4) {
return TRUE;
@@ -4650,7 +4650,7 @@ void daPy_lk_c::endDemoMode() {
/* 80128F8C-8012901C .text getBokoFlamePos__9daPy_lk_cFP4cXyz */
BOOL daPy_lk_c::getBokoFlamePos(cXyz* outPos) {
if (mHeldItemType == 0x101) {
if (mEquipItem == daPyItem_BOKO_e) {
daBoko_c* boko = (daBoko_c*)fopAcM_SearchByID(mActorKeepEquip.getID());
if (boko && boko->m2C4 != 0) { // maybe daBoko_c::getFlameTimer inline
*outPos = mSwordTopPos;
+12 -12
View File
@@ -54,21 +54,21 @@ void daPy_lk_c::setSwordModel(BOOL r28) {
J3DAnmTransform* bck = checkNormalSwordEquip() ? getItemAnimeResource(LKANM_BCK_CUTAA) : getItemAnimeResource(LKANM_BCK_CUTAMS);
mHeldItemType = 0x103;
mEquipItem = daPyItem_SWORD_e;
JKRHeap* oldHeap = setItemHeap();
const sword_model_tbl_s& model_tbl = checkNormalSwordEquip() ? sword_model_tbl[0] : sword_model_tbl[1];
J3DModelData* modelData = initModel(&mpHeldItemModel, model_tbl.bladeModel, 0x37221222);
J3DModelData* modelData = initModel(&mpEquipItemModel, model_tbl.bladeModel, 0x37221222);
BOOL ret = mSwordAnim.init(modelData, bck, false, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
if (!ret) { JUT_ASSERT(86, 0); }
if (!checkNormalSwordEquip()) {
buffer = new(0x20) u8[0x400];
JKRReadIdxResource(buffer, 0x400, LKANM_BTK_TSWMS, dComIfGp_getAnmArchive());
mpHeldItemBtk = static_cast<J3DAnmTextureSRTKey*>(J3DAnmLoaderDataBase::load(buffer));
mpHeldItemBtk->setFrame(0.0f);
mpHeldItemBtk->searchUpdateMaterialID(modelData);
modelData->entryTexMtxAnimator(mpHeldItemBtk);
mpEquipItemBtk = static_cast<J3DAnmTextureSRTKey*>(J3DAnmLoaderDataBase::load(buffer));
mpEquipItemBtk->setFrame(0.0f);
mpEquipItemBtk->searchUpdateMaterialID(modelData);
modelData->entryTexMtxAnimator(mpEquipItemBtk);
}
mSwBlur.mpPosBuffer = new(0x20) u8[0x4800];
@@ -83,10 +83,10 @@ void daPy_lk_c::setSwordModel(BOOL r28) {
buffer = new(0x20) u8[0x400];
JKRReadIdxResource(buffer, 0x400, model_tbl.glowBrk, dComIfGp_getAnmArchive());
mpHeldItemBrk = static_cast<J3DAnmTevRegKey*>(J3DAnmLoaderDataBase::load(buffer));
mpHeldItemBrk->setFrame(0.0f);
mpHeldItemBrk->searchUpdateMaterialID(modelData);
modelData->entryTevRegAnimator(mpHeldItemBrk);
mpEquipItemBrk = static_cast<J3DAnmTevRegKey*>(J3DAnmLoaderDataBase::load(buffer));
mpEquipItemBrk->setFrame(0.0f);
mpEquipItemBrk->searchUpdateMaterialID(modelData);
modelData->entryTevRegAnimator(mpEquipItemBrk);
modelData = initModel(&mpSwordTipStabModel, model_tbl.tipStabModel, 0x13000223);
@@ -220,7 +220,7 @@ void daPy_lk_c::setExtraFinishCutAtParam(u8 cutType) {
/* 8015585C-80155970 .text setJumpCutAtParam__9daPy_lk_cFv */
void daPy_lk_c::setJumpCutAtParam() {
mCutCount = 0;
if (mHeldItemType == 0x103) {
if (mEquipItem == daPyItem_SWORD_e) {
int atp;
f32 radius;
if (checkNormalSwordEquip()) {
@@ -233,7 +233,7 @@ void daPy_lk_c::setJumpCutAtParam() {
m35FC = daPy_HIO_cut_c0::m.field_0x58;
}
setAtParam(AT_TYPE_SWORD, atp, dCcG_At_Spl_UNK1, dCcD_SE_UNK1, G_AT_MARK_BIG_HIT, 0xA, radius);
} else if (mHeldItemType == dItem_SKULL_HAMMER_e) {
} else if (mEquipItem == dItem_SKULL_HAMMER_e) {
setAtParam(AT_TYPE_SKULL_HAMMER, 4, dCcG_At_Spl_UNK1, dCcD_SE_UNK5, G_AT_MARK_NORMAL_HIT, 0x13, 50.0f);
} else if (mActorKeepEquip.getActor()) {
setEnemyWeaponAtParam(TRUE);
+12 -12
View File
@@ -30,20 +30,20 @@ u32 daPy_lk_c::getDayNightParamData() {
/* 8014D7D4-8014D8AC .text setTactModel__9daPy_lk_cFv */
void daPy_lk_c::setTactModel() {
if (mHeldItemType == dItem_WIND_WAKER_e)
if (mEquipItem == dItem_WIND_WAKER_e)
return;
deleteEquipItem(FALSE);
mHeldItemType = dItem_WIND_WAKER_e;
mEquipItem = dItem_WIND_WAKER_e;
JKRHeap* oldHeap = setItemHeap();
J3DModelData* modelData = initModel(&mpHeldItemModel, LINK_BDL_TAKT, 0x37221222);
J3DModelData* modelData = initModel(&mpEquipItemModel, LINK_BDL_TAKT, 0x37221222);
u8* buffer = new(0x20) u8[0x400];
dComIfGp_getAnmArchive()->readIdxResource(buffer, 0x400, LKANM_BRK_TTAKT);
mpHeldItemBrk = (J3DAnmTevRegKey*)J3DAnmLoaderDataBase::load(buffer);
mpHeldItemBrk->setFrame(0.0f);
mpHeldItemBrk->searchUpdateMaterialID(modelData);
modelData->entryTevRegAnimator(mpHeldItemBrk);
mpEquipItemBrk = (J3DAnmTevRegKey*)J3DAnmLoaderDataBase::load(buffer);
mpEquipItemBrk->setFrame(0.0f);
mpEquipItemBrk->searchUpdateMaterialID(modelData);
modelData->entryTevRegAnimator(mpEquipItemBrk);
mDoExt_setCurrentHeap(oldHeap);
}
@@ -124,10 +124,10 @@ void daPy_lk_c::setTactZev(uint tactZevPartnerPID, int r30, char* r31) {
/* 8014DA78-8014DACC .text getTactTopPos__9daPy_lk_cFP4cXyz */
BOOL daPy_lk_c::getTactTopPos(cXyz* out) {
if (mHeldItemType != dItem_WIND_WAKER_e || mpHeldItemModel == NULL) {
if (mEquipItem != dItem_WIND_WAKER_e || mpEquipItemModel == NULL) {
return FALSE;
} else {
MTXMultVec(mpHeldItemModel->getBaseTRMtx(), &l_tact_top, out);
MTXMultVec(mpEquipItemModel->getBaseTRMtx(), &l_tact_top, out);
return TRUE;
}
}
@@ -275,7 +275,7 @@ BOOL daPy_lk_c::procTactWait_init(int r30) {
initShipRideUseItem(r31, 2);
m34D2 = -1;
m32E4.makeEmitter(0x50, mpHeldItemModel->getBaseTRMtx(), &current.pos, NULL);
m32E4.makeEmitter(0x50, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
m3570 = r30;
m34D8 = 0;
m3574 = -1;
@@ -348,7 +348,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) {
}
}
m32E4.makeEmitter(0x51, mpHeldItemModel->getBaseTRMtx(), &current.pos, NULL);
m32E4.makeEmitter(0x51, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
m34D0 = 0;
m3574 = r30;
m3624 = 0;
@@ -488,7 +488,7 @@ BOOL daPy_lk_c::procTactPlayOriginal_init() {
mDoAud_tact_setStickPos(m3570, m3574);
mDoAud_tact_playArmSwing(m3570, m3574);
setTactModel();
m32E4.makeEmitter(0x51, mpHeldItemModel->getBaseTRMtx(), &current.pos, NULL);
m32E4.makeEmitter(0x51, mpEquipItemModel->getBaseTRMtx(), &current.pos, NULL);
m34D6 = 0xF;
m34DA = 0;
mDoAud_taktModeMute();