Player inlines and enums

This commit is contained in:
LagoLunatic
2025-01-08 15:05:14 -05:00
parent b18a1e448a
commit 3d63a54587
7 changed files with 107 additions and 76 deletions
+9 -2
View File
@@ -39,7 +39,14 @@ public:
class daPy_demo_c {
public:
enum {
// TODO
DEMO_UNK1_e = 0x01,
DEMO_UNK14_e = 0x14,
DEMO_UNK18_e = 0x18,
DEMO_UNK1D_e = 0x1D,
DEMO_UNK25_e = 0x25,
DEMO_UNK44_e = 0x44,
DEMO_UNK48_e = 0x48,
DEMO_UNK4A_e = 0x4A,
DEMO_LAST_e = 0x4B,
DEMO_NEW_ANM0_e = 0x200,
};
@@ -387,7 +394,7 @@ public:
}
void cancelOriginalDemo() {
mDemo.setSystemDemoType();
mDemo.setDemoMode(1);
mDemo.setDemoMode(daPy_demo_c::DEMO_UNK1_e);
}
void onNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 |= flag; }
+37 -24
View File
@@ -857,6 +857,16 @@ public:
daPyItem_UNK10B_e = 0x10B,
};
enum daPy_lk_ITEM_BTN {
/* 0x01 */ BTN_A = (1 << 0),
/* 0x02 */ BTN_B = (1 << 1),
/* 0x04 */ BTN_X = (1 << 2),
/* 0x08 */ BTN_Y = (1 << 3),
/* 0x10 */ BTN_Z = (1 << 4),
/* 0x20 */ BTN_L = (1 << 5),
/* 0x40 */ BTN_R = (1 << 6),
};
typedef BOOL (daPy_lk_c::*ProcFunc)();
void seStartOnlyReverb(u32);
@@ -989,13 +999,13 @@ public:
BOOL checkScopeEnd();
void setSubjectMode();
BOOL checkMaskDraw();
BOOL checkSubjectEnd(int);
BOOL checkSubjectEnd(BOOL);
BOOL checkGuardAccept();
void cancelNoDamageMode();
BOOL commonProcInit(daPy_PROC proc);
BOOL procScope_init(int);
BOOL procScope();
BOOL procSubjectivity_init(int);
BOOL procSubjectivity_init(BOOL);
BOOL procSubjectivity();
BOOL procCall_init();
BOOL procCall();
@@ -1507,7 +1517,7 @@ public:
BOOL procBoomerangCatch_init();
BOOL procBoomerangCatch();
void bowJointCB(int);
void bowButton() const;
BOOL bowButton() const;
BOOL checkBowReadyAnime() const;
BOOL checkBowAnime() const;
void makeArrow();
@@ -1752,8 +1762,29 @@ public:
J3DAnmTransform* getNowAnmPackUnder(daPy_UNDER idx) { return mAnmRatioUnder[idx].getAnmTransform(); }
J3DAnmTransform* getNowAnmPackUpper(daPy_UPPER idx) { return mAnmRatioUpper[idx].getAnmTransform(); }
BOOL doButton() const { return mItemButton & BTN_A; }
BOOL swordButton() const { return mItemButton & BTN_B; }
BOOL itemButtonX() const { return mItemButton & BTN_X; }
BOOL itemButtonY() const { return mItemButton & BTN_Y; }
BOOL itemButtonZ() const { return mItemButton & BTN_Z; }
BOOL spActionButton() const { return mItemButton & BTN_R; }
BOOL doTrigger() const { return mItemTrigger & BTN_A; }
BOOL talkTrigger() const { return mItemTrigger & BTN_A; }
BOOL swordTrigger() const { return mItemTrigger & BTN_B; }
BOOL cancelTrigger() const { return mItemTrigger & BTN_B; }
BOOL itemTriggerX() const { return mItemTrigger & BTN_X; }
BOOL itemTriggerY() const { return mItemTrigger & BTN_Y; }
BOOL itemTriggerZ() const { return mItemTrigger & BTN_Z; }
BOOL spLTrigger() const { return mItemTrigger & BTN_L; }
BOOL spActionTrigger() const { return mItemTrigger & BTN_R; }
void allTrigger() const {}
void cancelTrigger() const {}
void otherWeaponTrigger() const {}
void spBattleTrigger() const {}
void checkPlayerDemoMode() const {}
void checkSpecialDemoMode() const {}
void checkAttentionLock() {}
void checkBoomerangRock() {}
void checkBothItemEquipAnime() const {}
@@ -1766,40 +1797,22 @@ public:
void checkIsland() const {}
void checkMirrorShieldEquip() const {}
void checkNoUpperAnime() const {}
void checkPlayerDemoMode() const {}
void checkPowerGloveEquip() const {}
void checkRopeThrowAnime() const {}
void checkShieldEquip() const {}
void checkSpecialDemoMode() const {}
void checkSwordEquipAnime() const {}
void checkUpperAnime(u16) const {}
void doButton() const {}
void doTrigger() const {}
void getAnmSpeedStickRate(f32, f32) {}
void getBombWaterPillarBrk() {}
void getBombWaterPillarBtk() {}
void getStartModeFromParam(u32) {}
void getTactLeftHandPos() const {}
void itemButtonX() const {}
void itemButtonY() const {}
void itemButtonZ() const {}
void itemTriggerX() const {}
void itemTriggerY() const {}
void itemTriggerZ() const {}
void otherWeaponTrigger() const {}
void seStartSystem(u32) {}
void setFootEffectPosType(u8) {}
void setSpeedAndAngleBoomerang() {}
void setSpeedAndAngleBow() {}
void setSpeedAndAngleHookshot() {}
void setSpeedAndAngleRope() {}
void spActionButton() const {}
void spActionTrigger() const {}
void spBattleTrigger() const {}
void spLTrigger() const {}
void swordButton() const {}
void swordTrigger() const {}
void talkTrigger() const {}
virtual void setPlayerPosAndAngle(cXyz*, s16);
virtual void setPlayerPosAndAngle(cXyz*, csXyz*);
@@ -2008,8 +2021,8 @@ public:
/* 0x34C5 */ u8 m34C5;
/* 0x34C6 */ u8 m34C6;
/* 0x34C7 */ u8 mActivePlayerBombs;
/* 0x34C8 */ u8 mPressedButtons;
/* 0x34C9 */ u8 m34C9;
/* 0x34C8 */ u8 mItemTrigger;
/* 0x34C9 */ u8 mItemButton;
/* 0x34CA */ u8 m34CA;
/* 0x34CB */ u8 mDekuSpRestartPoint;
/* 0x34CC */ u8 m34CC;
+20 -15
View File
@@ -730,7 +730,7 @@ void daAuction_c::eventMainInit() {
daPy_py_c* pLink = (daPy_py_c*)dComIfGp_getLinkPlayer();
pLink->changeOriginalDemo();
mCurLinkAnm = 1;
mCurLinkAnm = daPy_demo_c::DEMO_UNK1_e;
dComIfGp_event_setTalkPartner(this);
m82F = 0;
@@ -753,8 +753,13 @@ static daAuction_c::ProcFunc_t eventProc[] = {
bool daAuction_c::eventMain() {
daPy_lk_c* pLink = (daPy_lk_c*)dComIfGp_getLinkPlayer();
if (pLink->getBaseAnimeFrameRate() == 0.0f && mCurLinkAnm != 1 && mCurLinkAnm != 0x1D && mCurLinkAnm != 0x25) {
setLinkAnm(1);
if (
pLink->getBaseAnimeFrameRate() == 0.0f &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK1_e &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e &&
mCurLinkAnm != daPy_demo_c::DEMO_UNK25_e
) {
setLinkAnm(daPy_demo_c::DEMO_UNK1_e);
}
mFlags &= 4;
@@ -897,7 +902,7 @@ void daAuction_c::eventMainKai() {
m800 = mCurrBid + 1;
dComIfGp_setMessageSetNumber(mCurrBid + 1);
end = 0x1CFA;
setLinkAnm(0x48);
setLinkAnm(daPy_demo_c::DEMO_UNK48_e);
mpTimer->mpScrnDraw->setShowType(1);
dAuction_screen_gaugeUp();
@@ -929,8 +934,8 @@ void daAuction_c::eventMainKai() {
dComIfGp_setNpcNameMessageID(l_npc_msg_dat[getAucMdlNo(m824)].field_0x00);
setMessage2(msgParam);
setCameraNpc(m824, 0);
if (m824 == 0 && mCurLinkAnm != 0x1D) {
setLinkAnm(0x14);
if (m824 == 0 && mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e) {
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
}
m834 |= 0x20;
@@ -1040,7 +1045,7 @@ void daAuction_c::eventMainUri() {
setCameraNpc(m824, 0);
if (m824 == 0) {
setLinkAnm(0x14);
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
}
m834 |= 0x20;
@@ -1081,8 +1086,8 @@ void daAuction_c::eventMainMsgSet() {
/* 0000279C-0000294C .text eventMainMsgEnd__11daAuction_cFv */
void daAuction_c::eventMainMsgEnd() {
if (eventMesEnd()) {
if (mCurLinkAnm != 1 && mCurLinkAnm != 0x1D) {
setLinkAnm(1);
if (mCurLinkAnm != daPy_demo_c::DEMO_UNK1_e && mCurLinkAnm != daPy_demo_c::DEMO_UNK1D_e) {
setLinkAnm(daPy_demo_c::DEMO_UNK1_e);
}
if (m834 & 0x20) {
@@ -1316,7 +1321,7 @@ u16 daAuction_c::next_msgStatus(u32* pMsgNo) {
m826 = tmp;
m824 = tmp;
if (m826 != 0) {
setLinkAnm(1);
setLinkAnm(daPy_demo_c::DEMO_UNK1_e);
}
break;
}
@@ -1325,12 +1330,12 @@ u16 daAuction_c::next_msgStatus(u32* pMsgNo) {
if (dComIfGs_getRupee() < msgSetNo) {
mDoAud_seStart(JA_SE_AUC_BID_NG);
setLinkAnm(0x4A);
setLinkAnm(daPy_demo_c::DEMO_UNK4A_e);
*pMsgNo = 0x1CFB;
m7C4[0] = 50.0f;
} else if (msgSetNo <= mCurrBid) {
mDoAud_seStart(JA_SE_AUC_BID_NG);
setLinkAnm(0x4A);
setLinkAnm(daPy_demo_c::DEMO_UNK4A_e);
*pMsgNo = 0x1D1E;
m7C4[0] = 50.0f;
} else {
@@ -1388,7 +1393,7 @@ u16 daAuction_c::next_msgStatus(u32* pMsgNo) {
case 0x1D21:
case 0x1D22:
case 0x1D23: {
setLinkAnm(0x14);
setLinkAnm(daPy_demo_c::DEMO_UNK14_e);
int rnd = getRand(6) + 1;
*pMsgNo = l_npc_msg_dat[getAucMdlNo(rnd)].field_0x06;
m825 = rnd;
@@ -1538,8 +1543,8 @@ void daAuction_c::setCameraNpc(int idx, s16 param_2) {
/* 000039FC-00003A3C .text setLinkAnm__11daAuction_cFUc */
void daAuction_c::setLinkAnm(u8 linkAnm) {
if (linkAnm == 1 && m826 == 0) {
linkAnm = 0x1D;
if (linkAnm == daPy_demo_c::DEMO_UNK1_e && m826 == 0) {
linkAnm = daPy_demo_c::DEMO_UNK1D_e;
}
daPy_lk_c* pLink = (daPy_lk_c*)dComIfGp_getLinkPlayer();
+4 -6
View File
@@ -723,9 +723,8 @@ void daObjTpost_c::modeTalkXY() {
}
if(field_0x8E4 != -1 && cLib_calcTimer(&field_0x8E4) == 0) {
player->mDemo.setOriginalDemoType();
player->mDemo.setParam0(0);
player->mDemo.setDemoMode(0x18);
player->changeOriginalDemo();
player->changeDemoMode(daPy_demo_c::DEMO_UNK18_e);
field_0x8E4 = -1;
}
@@ -736,9 +735,8 @@ void daObjTpost_c::modeTalkXY() {
case 0xCF0:
case 0xCF1:
if(player->getBaseAnimeFrameRate() == 0.0f) {
player->mDemo.setOriginalDemoType();
player->mDemo.setParam0(0);
player->mDemo.setDemoMode(1);
player->changeOriginalDemo();
player->changeDemoMode(daPy_demo_c::DEMO_UNK1_e);
}
break;
+6 -2
View File
@@ -24,8 +24,12 @@ static BOOL daPy_bowJointCB(J3DNode*, int) {
}
/* 80149FD0-8014A008 .text bowButton__9daPy_lk_cCFv */
void daPy_lk_c::bowButton() const {
/* Nonmatching */
BOOL daPy_lk_c::bowButton() const {
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e) {
return doButton();
} else {
return itemButton();
}
}
/* 8014A008-8014A02C .text checkBowReadyAnime__9daPy_lk_cCFv */
+29 -25
View File
@@ -293,22 +293,22 @@ void daPy_lk_c::voiceStart(u32 param_1) {
/* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemButton() const {
if (mReadyItemBtn == dItemBtn_X_e) {
return m34C9 & 0x04;
return itemButtonX();
} else if (mReadyItemBtn == dItemBtn_Y_e) {
return m34C9 & 0x08;
return itemButtonY();
} else {
return m34C9 & 0x10;
return itemButtonZ();
}
}
/* 801031DC-80103214 .text itemTrigger__9daPy_lk_cCFv */
BOOL daPy_lk_c::itemTrigger() const {
if (mReadyItemBtn == dItemBtn_X_e) {
return mPressedButtons & 0x04;
return itemTriggerX();
} else if (mReadyItemBtn == dItemBtn_Y_e) {
return mPressedButtons & 0x08;
return itemTriggerY();
} else {
return mPressedButtons & 0x10;
return itemTriggerZ();
}
}
@@ -343,15 +343,15 @@ BOOL daPy_lk_c::checkGroupItem(int param_1, int itemNo) {
/* 801032E4-801033E4 .text checkSetItemTrigger__9daPy_lk_cFii */
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(dItemBtn_X_e))) {
if (itemTriggerX() && checkGroupItem(param_1, dComIfGp_getSelectItem(dItemBtn_X_e))) {
mReadyItemBtn = dItemBtn_X_e;
return TRUE;
}
if (mPressedButtons & 0x08 && checkGroupItem(param_1, dComIfGp_getSelectItem(dItemBtn_Y_e))) {
if (itemTriggerY() && checkGroupItem(param_1, dComIfGp_getSelectItem(dItemBtn_Y_e))) {
mReadyItemBtn = dItemBtn_Y_e;
return TRUE;
}
if (mPressedButtons & 0x10 && checkGroupItem(param_1, dComIfGp_getSelectItem(dItemBtn_Z_e))) {
if (itemTriggerZ() && checkGroupItem(param_1, dComIfGp_getSelectItem(dItemBtn_Z_e))) {
mReadyItemBtn = dItemBtn_Z_e;
return TRUE;
}
@@ -1625,24 +1625,24 @@ BOOL daPy_lk_c::checkItemChangeFromButton() {
!checkPlayerGuard()
) {
if (!daPy_dmEcallBack_c::checkCurse()) {
if (mPressedButtons & 0x02 && checkSwordEquip() && mEquipItem != daPyItem_SWORD_e) {
if (swordTrigger() && checkSwordEquip() && mEquipItem != daPyItem_SWORD_e) {
setAnimeEquipSword(1);
} else if (mPressedButtons & 0x04) {
} else if (itemTriggerX()) {
if (checkNewItemChange(0)) {
mReadyItemBtn = dItemBtn_X_e;
return TRUE;
}
} else if (mPressedButtons & 0x08) {
} else if (itemTriggerY()) {
if (checkNewItemChange(1)) {
mReadyItemBtn = dItemBtn_Y_e;
return TRUE;
}
} else if (mPressedButtons & 0x10) {
} else if (itemTriggerZ()) {
if (checkNewItemChange(2)) {
mReadyItemBtn = dItemBtn_Z_e;
return TRUE;
}
} else if (mPressedButtons & 0x01) {
} else if (doTrigger()) {
if (dComIfGp_getDoStatus() == 0x08) { // A button shows "Put Away"
setAnimeUnequip();
}
@@ -1657,12 +1657,12 @@ BOOL daPy_lk_c::checkItemChangeFromButton() {
return procBottleDrink_init(dComIfGp_getSelectItem(mReadyItemBtn));
} else if (checkSetItemTrigger(FAIRY_BOTTLE, 0)) {
return procBottleOpen_init(FAIRY_BOTTLE);
} else if (mPressedButtons & 0x01) {
} else if (doTrigger()) {
if (dComIfGp_getDoStatus() == 0x08) { // A button shows "Put Away"
setAnimeUnequip();
}
}
} else if (mPressedButtons & 0x01) {
} else if (doTrigger()) {
if (dComIfGp_getDoStatus() == 0x08) { // A button shows "Put Away"
setAnimeUnequip();
}
@@ -2098,9 +2098,10 @@ BOOL daPy_lk_c::checkMaskDraw() {
}
/* 801121C8-80112280 .text checkSubjectEnd__9daPy_lk_cFi */
BOOL daPy_lk_c::checkSubjectEnd(int param_1) {
if(dComIfGp_event_runCheck() || (mPressedButtons & 3) || (m34C9 & 0x20) || dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x2000)) {
if(param_1) {
BOOL daPy_lk_c::checkSubjectEnd(BOOL i_playSound) {
// TODO: these trigger/button checks are likely inlines
if(dComIfGp_event_runCheck() || (mItemTrigger & (BTN_A | BTN_B)) || (mItemButton & BTN_L) || dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x2000)) {
if(i_playSound) {
mDoAud_seStart(JA_SE_SUBJ_VIEW_OUT);
}
@@ -2317,27 +2318,30 @@ BOOL daPy_lk_c::procScope() {
}
/* 80112AA8-80112B18 .text procSubjectivity_init__9daPy_lk_cFi */
BOOL daPy_lk_c::procSubjectivity_init(int param_1) {
BOOL daPy_lk_c::procSubjectivity_init(BOOL i_crouch) {
commonProcInit(daPyProc_SUBJECTIVITY_e);
mVelocity = 0.0f;
setSubjectMode();
if(param_1 == 0) {
if(!i_crouch) {
setBlendMoveAnime(daPy_HIO_basic_c0::m.field_0xC);
}
m3570 = param_1;
m3570 = i_crouch;
return true;
}
/* 80112B18-80112BEC .text procSubjectivity__9daPy_lk_cFv */
BOOL daPy_lk_c::procSubjectivity() {
dComIfGp_setAStatus(7);
dComIfGp_setAStatus(7); // Show "Return" on the B button
if(checkSubjectEnd(0) || (m3570 != 0 && (m34C9 & 0x40) == 0)) {
if(
checkSubjectEnd(FALSE) ||
(m3570 != 0 && !spActionButton() // Player released R while crouching
)) {
mDoAud_seStart(JA_SE_SUBJ_VIEW_OUT);
if(m3570 != 0) {
if(mEquipItem == daPyItem_NONE_e) {
@@ -3118,7 +3122,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
if (!checkNoResetFlg0(daPyFlg0_UNK4000) && (i_point != 0 || dComIfGp_event_compulsory(this))) {
mDemo.setOriginalDemoType();
if (i_point == 0) {
mDemo.setDemoMode(1);
mDemo.setDemoMode(daPy_demo_c::DEMO_UNK1_e);
}
onNoResetFlg0(daPyFlg0_UNK4000);
changePlayer(this);
+2 -2
View File
@@ -338,7 +338,7 @@ BOOL daPy_lk_c::procTactWait() {
dComIfGp_setAStatus(7);
}
if (m34D2 == 0 || ((mPressedButtons & 2) != 0 && dComIfGp_getAStatus() == 7) || m35AC <= 0.0f) {
if (m34D2 == 0 || (cancelTrigger() && dComIfGp_getAStatus() == 7) || m35AC <= 0.0f) {
if (m34D2 != 0) {
resetActAnimeUpper(UPPER_MOVE2_e, -1.0f);
resetActAnimeUpper(UPPER_MOVE1_e, -1.0f);
@@ -347,7 +347,7 @@ BOOL daPy_lk_c::procTactWait() {
g_dComIfG_gameInfo.play.field_0x4947 = 0;
if ((mPressedButtons & 2) != 0 && m3570 == 5) {
if (cancelTrigger() && m3570 == 5) {
m35AC = -1000.0f;
}