player_main and npc_md work

This commit is contained in:
LagoLunatic
2023-11-07 17:44:48 -05:00
parent 897279a745
commit ba0374420c
6 changed files with 262 additions and 107 deletions
+14 -11
View File
@@ -206,13 +206,16 @@ public:
bool chkPlayerAction(ActionFunc func) { return mCurrPlayerActionFunc == func; }
bool chkNpcAction(ActionFunc func) { return mCurrNpcActionFunc == func; }
bool isOldLightBodyHit() { return m30F0 & 0x8000; }
bool isOldLightBodyHit() { return cLib_checkBit(m30F0, 0x00008000UL); }
void onDefaultTalkXY() { cLib_onBit(m30F0, 0x00010000UL); }
void offDefaultTalkXY() { cLib_offBit(m30F0, 0x00010000UL); }
bool isDefaultTalkXY() { return cLib_checkBit(m30F0, 0x00010000UL); }
daNpc_Md_c() {}
~daNpc_Md_c();
void XyCheckCB(int);
void XyEventCB(int);
s16 XyCheckCB(int);
s16 XyEventCB(int);
s32 create();
BOOL createHeap();
BOOL setAction(ActionFunc*, ActionFunc, void*);
@@ -222,8 +225,8 @@ public:
void setPlayerAction(ActionFunc, void*);
void getStickAngY(int);
void calcStickPos(short, cXyz*);
void flyCheck();
void mirrorCancelCheck();
BOOL flyCheck();
BOOL mirrorCancelCheck();
void setWingEmitter();
void setHane02Emitter();
void deleteHane02Emitter();
@@ -357,11 +360,11 @@ public:
void emitterDelete(JPABaseEmitter**);
virtual BOOL isTagCheckOK();
virtual f32 getGroundY() {}
virtual MtxP getLeftHandMatrix() {}
virtual MtxP getRightHandMatrix() {}
virtual f32 getBaseAnimeFrameRate() {}
virtual f32 getBaseAnimeFrame() {}
virtual f32 getGroundY() { return mAcch.GetGroundH(); }
virtual MtxP getLeftHandMatrix() { return mCullMtx; }
virtual MtxP getRightHandMatrix() { return mCullMtx; }
virtual f32 getBaseAnimeFrameRate() { return 1.0f; }
virtual f32 getBaseAnimeFrame() { return 0.0f; }
static bool m_flying;
static bool m_mirror;
@@ -380,7 +383,7 @@ public:
/* 0x0504 */ mDoExt_McaMorf* mpWingMorf;
/* 0x0508 */ u8 m0508[0x0520 - 0x0508];
/* 0x0520 */ mDoExt_btpAnm m0520;
/* 0x0534 */ mDoExt_btkAnm m0534;
/* 0x0534 */ mDoExt_btkAnm mLightBtkAnm;
/* 0x0548 */ u8 m0548[0x054C - 0x0548];
/* 0x054C */ dBgS_AcchCir mAcchCir[2];
/* 0x05CC */ dBgS_MirLightLinChk mLinChk;
+1 -3
View File
@@ -8,9 +8,7 @@
class daPy_matAnm_c : public J3DMaterialAnm {
public:
daPy_matAnm_c() { init(); }
void init();
daPy_matAnm_c();
virtual ~daPy_matAnm_c() {}
virtual void calc(J3DMaterial*) const;
+39 -34
View File
@@ -159,6 +159,9 @@ public:
void execute(JPABaseEmitter*);
~daPy_dmEcallBack_c() {}
daPy_dmEcallBack_c() {}
static s16 m_timer;
static u16 m_type;
}; // Size: 0x0C
class daPy_mtxPosFollowEcallBack_c : public daPy_mtxFollowEcallBack_c {
@@ -1215,7 +1218,7 @@ public:
UNDER_MOVE0_e = 0,
};
typedef BOOL (daPy_lk_c::*daPy_ProcFunc)();
typedef BOOL (daPy_lk_c::*ProcFunc)();
void getBoomerangCatchPos() const;
void getLineTopPos();
@@ -1223,11 +1226,11 @@ public:
void seStartOnlyReverb(u32);
void seStartMapInfo(u32);
void seStartSwordCut(u32);
void itemButton() const;
void itemTrigger() const;
BOOL itemButton() const;
BOOL itemTrigger() const;
void getReadyItem();
void checkGroupItem(int, int);
void checkSetItemTrigger(int, int);
BOOL checkGroupItem(int, int);
BOOL checkSetItemTrigger(int, int);
void auraJointCB0(int);
BOOL jointBeforeCB(int, J3DTransformInfo*, Quaternion*);
BOOL jointAfterCB(int, J3DTransformInfo*, Quaternion*);
@@ -1241,9 +1244,9 @@ public:
void getUnderUpperAnime(daPy_anmIndex_c const*, J3DAnmTransform**, J3DAnmTransform**, int, u32);
void setTextureAnimeResource(J3DAnmTexPattern*, int);
void loadTextureAnimeResource(u32, int);
void checkBossBgm();
void checkMabaAnimeBtp(int);
void checkNormalFace();
BOOL checkBossBgm();
BOOL checkMabaAnimeBtp(int);
BOOL checkNormalFace();
void setTextureAnime(u16, int);
void setPriTextureAnime(u16, int);
void resetPriTextureAnime();
@@ -1255,9 +1258,9 @@ public:
void checkSightLine(f32, cXyz*);
void setBootsModel(J3DModel**);
void setItemModel();
void checkUpperReadyAnime() const;
void checkUpperReadyThrowAnime() const;
void checkNoCollisionCorret();
BOOL checkUpperReadyAnime() const;
BOOL checkUpperReadyThrowAnime() const;
BOOL checkNoCollisionCorret();
void setDrawHandModel();
void entryDLSetLight(J3DModel*, u32);
void updateDLSetLight(J3DModel*, u32);
@@ -1281,7 +1284,7 @@ public:
void posMove();
void setShapeAngleToAtnActor();
void cancelItemUpperReadyAnime();
void checkBodyAngleX(s16);
BOOL checkBodyAngleX(s16);
void setBodyAngleToCamera();
void setBodyAngleXReadyAnime();
void setSpeedAndAngleNormal(s16);
@@ -1289,7 +1292,7 @@ public:
void setSpeedAndAngleAtnBack();
void setSpeedAndAngleAtnActor();
void setFrameCtrl(J3DFrameCtrl*, u8, s16, s16, f32, f32);
void checkAtnWaitAnime();
BOOL checkAtnWaitAnime();
void setBlendMoveAnime(f32);
void setBlendAtnBackMoveAnime(f32);
void setBlendAtnMoveAnime(f32);
@@ -1311,18 +1314,18 @@ public:
void setScopeModel();
void setPhotoBoxModel();
void changeDragonShield(int);
void checkNewItemChange(u8);
void checkItemChangeFromButton();
void checkItemAction();
BOOL checkNewItemChange(u8);
BOOL checkItemChangeFromButton();
BOOL checkItemAction();
void getSlidePolygon();
void checkJumpCutFromButton();
BOOL checkJumpCutFromButton();
void orderTalk();
void checkNextActionFromButton();
BOOL checkNextActionFromButton();
void setShieldGuard();
void checkItemModeActorPointer();
void checkNextActionItemFly();
void checkNextMode(int);
void checkIceSlipFall();
BOOL checkItemModeActorPointer();
BOOL checkNextActionItemFly();
BOOL checkNextMode(int);
BOOL checkIceSlipFall();
void setFrontWallType();
void changeFrontWallTypeProc();
void changeSlideProc();
@@ -1343,14 +1346,14 @@ public:
void checkRestHPAnime();
BOOL checkHeavyStateOn();
BOOL checkBottleItem(int) const;
void checkDrinkBottleItem(int) const;
void checkOpenBottleItem(int) const;
BOOL checkDrinkBottleItem(int) const;
BOOL checkOpenBottleItem(int) const;
BOOL checkBowItem(int) const;
void checkPhotoBoxItem(int) const;
void checkScopeEnd();
BOOL checkPhotoBoxItem(int) const;
BOOL checkScopeEnd();
void setSubjectMode();
void checkMaskDraw();
void checkSubjectEnd(int);
BOOL checkMaskDraw();
BOOL checkSubjectEnd(int);
BOOL checkGuardAccept();
void cancelNoDamageMode();
BOOL commonProcInit(daPy_lk_c::daPy_PROC procID);
@@ -2214,7 +2217,7 @@ public:
/* 0x31D0 */ void* mpTextureScrollResData;
/* 0x31D4 */ JKRSolidHeap* mpTextureScrollResHeap;
/* 0x31D8 */ int mCurProcID;
/* 0x31DC */ daPy_ProcFunc mCurProcFunc;
/* 0x31DC */ ProcFunc mCurProcFunc;
/* 0x31E8 */ daPy_footEffect_c m31E8[2];
/* 0x3280 */ dPa_rippleEcallBack m3280;
/* 0x3294 */ daPy_swimTailEcallBack_c mSwimTailEcallBack[2];
@@ -2280,7 +2283,7 @@ public:
/* 0x34E8 */ s16 m34E8;
/* 0x34EA */ s16 m34EA;
/* 0x34EC */ s16 m34EC;
/* 0x34EE */ u16 m34EE;
/* 0x34EE */ u16 mSeAnmIdx;
/* 0x34F0 */ u16 m34F0;
/* 0x34F2 */ s16 m34F2;
/* 0x34F4 */ s16 m34F4;
@@ -2373,7 +2376,7 @@ public:
/* 0x3600 */ f32 m3600;
/* 0x3604 */ f32 m3604;
/* 0x3608 */ f32 m3608;
/* 0x360C */ f32 m360C;
/* 0x360C */ f32 mSeAnmRate;
/* 0x3610 */ f32 m3610;
/* 0x3614 */ int m3614;
/* 0x3618 */ u32 mProcFlags;
@@ -2385,7 +2388,9 @@ public:
/* 0x3630 */ int m3630;
/* 0x3634 */ int m3634;
/* 0x3638 */ int mMsgId;
/* 0x363C */ u8 m363C[0x3644 - 0x363C];
/* 0x363C */ J3DFrameCtrl* mpSeAnmFrameCtrl;
/* 0x3640 */ s16 m3640;
/* 0x3642 */ u8 m3642[0x3644 - 0x3642];
/* 0x3644 */ f32 m3644;
/* 0x3648 */ u8 m3648[0x3654 - 0x3648];
/* 0x3654 */ f32 m3654;
@@ -2422,12 +2427,12 @@ public:
/* 0x4AF0 */ dCcD_Cps mFanWindCps2;
struct ProcInitTableEntry {
/* 0x00 */ daPy_ProcFunc mProcFunc;
/* 0x00 */ ProcFunc mProcFunc;
/* 0x0C */ u32 mProcFlags;
};
static ProcInitTableEntry mProcInitTable[0xDB];
static daPy_ProcFunc mDemoProcInitFuncTable[0x4B];
static ProcFunc mDemoProcInitFuncTable[0x4B];
}; // Size: 0x4C28
#endif /* D_A_PLAYER_MAIN */
+1 -1
View File
@@ -173,7 +173,7 @@ static s16 daNpc_kam_XyEventCB(void* i_this, int param_1) {
}
/* 0000054C-00000568 .text XyEventCB__11daNpc_kam_cFi */
s16 daNpc_kam_c::XyEventCB(int param_1) {
s16 daNpc_kam_c::XyEventCB(int equippedItemIdx) {
onEventAccept();
mCurrEventIdxIdx = 1; // "kamome_call"
return mEventIdxs[1];
+54 -12
View File
@@ -7,6 +7,8 @@
#include "d/d_procname.h"
#include "d/d_com_inf_game.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/d_item_data.h"
#include "m_Do/m_Do_controller_pad.h"
// Needed for the .data section to match.
static f32 dummy1[3] = {1.0f, 1.0f, 1.0f};
@@ -318,23 +320,48 @@ daNpc_Md_HIO_c::daNpc_Md_HIO_c() {
}
/* 000006DC-000006FC .text daNpc_Md_XyCheckCB__FPvi */
static void daNpc_Md_XyCheckCB(void* i_this, int param_1) {
static s16 daNpc_Md_XyCheckCB(void* i_this, int param_1) {
return static_cast<daNpc_Md_c*>(i_this)->XyCheckCB(param_1);
}
/* 000006FC-000007FC .text XyCheckCB__10daNpc_Md_cFi */
void daNpc_Md_c::XyCheckCB(int) {
/* Nonmatching */
s16 daNpc_Md_c::XyCheckCB(int equippedItemIdx) {
u8 selectItemNo = dComIfGp_getSelectItem(equippedItemIdx);
if (m3138 == 3) {
if (selectItemNo == WIND_TACT) {
return TRUE;
}
if (selectItemNo == GOLDEN_FEATHER) {
if (!dComIfGs_isEventBit(0x2E40) || (dComIfGs_isEventBit(0x2E40) && m_seaTalk)) {
return TRUE;
}
}
} else if (m3138 == 5 || m3138 == 4) {
if (selectItemNo == GOLDEN_FEATHER && !dComIfGs_isEventBit(0x3B80)) {
return TRUE;
}
}
if (selectItemNo == GOLDEN_FEATHER) {
dComIfGs_onEventBit(0x2C08);
}
return FALSE;
}
/* 000007FC-0000081C .text daNpc_Md_XyEventCB__FPvi */
static void daNpc_Md_XyEventCB(void* i_this, int param_1) {
static s16 daNpc_Md_XyEventCB(void* i_this, int param_1) {
return static_cast<daNpc_Md_c*>(i_this)->XyEventCB(param_1);
}
/* 0000081C-00000864 .text XyEventCB__10daNpc_Md_cFi */
void daNpc_Md_c::XyEventCB(int) {
/* Nonmatching */
s16 daNpc_Md_c::XyEventCB(int equippedItemIdx) {
u8 selectItemNo = dComIfGp_getSelectItem(equippedItemIdx);
if (selectItemNo == WIND_TACT) {
offDefaultTalkXY();
return mEventIdxTable[5];
} else if (selectItemNo == GOLDEN_FEATHER) {
onDefaultTalkXY();
}
return -1;
}
/* 00000864-00000884 .text CheckCreateHeap__FP10fopAc_ac_c */
@@ -613,7 +640,8 @@ void daNpc_Md_c::playerAction(void* arg) {
/* 00003360-000033C4 .text setPlayerAction__10daNpc_Md_cFM10daNpc_Md_cFPCvPvPv_iPv */
void daNpc_Md_c::setPlayerAction(ActionFunc actionFunc, void* arg) {
/* Nonmatching */
mCurrNpcActionFunc = NULL;
setAction(&mCurrPlayerActionFunc, actionFunc, arg);
}
/* 000033C4-00003430 .text getStickAngY__10daNpc_Md_cFi */
@@ -627,13 +655,22 @@ void daNpc_Md_c::calcStickPos(short, cXyz*) {
}
/* 00003588-0000362C .text flyCheck__10daNpc_Md_cFv */
void daNpc_Md_c::flyCheck() {
/* Nonmatching */
BOOL daNpc_Md_c::flyCheck() {
if (!CPad_CHECK_TRIG_A(0)) {
return FALSE;
}
if (isOldLightBodyHit()) {
setPlayerAction(&mkamaePlayerAction, NULL);
} else {
setPlayerAction(&flyPlayerAction, NULL);
}
return TRUE;
}
/* 0000362C-00003648 .text mirrorCancelCheck__10daNpc_Md_cFv */
void daNpc_Md_c::mirrorCancelCheck() {
BOOL daNpc_Md_c::mirrorCancelCheck() {
/* Nonmatching */
return CPad_CHECK_TRIG_B(0);
}
/* 00003648-00003674 .text setWingEmitter__10daNpc_Md_cFv */
@@ -838,7 +875,12 @@ int daNpc_Md_c::piyo2NpcAction(void*) {
/* 00007824-0000786C .text deleteNpcAction__10daNpc_Md_cFPv */
int daNpc_Md_c::deleteNpcAction(void*) {
/* Nonmatching */
if (mActionStatus == ACTION_STARTING) {
mActionStatus++; // ACTION_ONGOING
} else if (mActionStatus != ACTION_ENDING) {
fopAcM_delete(this);
}
return TRUE;
}
/* 0000786C-00007A98 .text demoFlyNpcAction__10daNpc_Md_cFPv */
@@ -1162,7 +1204,7 @@ BOOL daNpc_Md_c::initLightBtkAnm(bool) {
/* 0000D0B8-0000D0DC .text playLightBtkAnm__10daNpc_Md_cFv */
void daNpc_Md_c::playLightBtkAnm() {
/* Nonmatching */
mLightBtkAnm.play();
}
/* 0000D0DC-0000D4CC .text setAnm__10daNpc_Md_cFi */
+153 -46
View File
@@ -18,6 +18,7 @@
#include "JSystem/JUtility/JUTAssert.h"
#include "d/actor/d_a_itembase.h"
#include "d/d_item_data.h"
#include "d/d_item.h"
#include "d/actor/d_a_player_HIO.inc"
@@ -308,7 +309,7 @@ daPy_lk_c::ProcInitTableEntry daPy_lk_c::mProcInitTable[0xDB] = {
/* 0x5D */ {&daPy_lk_c::procBtJump, 0x88000402},
/* 0x5E */ {&daPy_lk_c::procBtJumpCut, 0x80000402},
/* 0x5F */ {&daPy_lk_c::procBtSlide, 0x80000000},
/* 0x60 */ {&daPy_lk_c::procBtRoll, 0x80008400},
/* 0x60 */ {&daPy_lk_c::procBtRoll, 0x00000000},
/* 0x61 */ {&daPy_lk_c::procBtRollCut, 0x88000402},
/* 0x62 */ {&daPy_lk_c::procBtVerticalJump, 0x88000402},
/* 0x63 */ {&daPy_lk_c::procBtVerticalJumpCut, 0x88000402},
@@ -433,7 +434,7 @@ daPy_lk_c::ProcInitTableEntry daPy_lk_c::mProcInitTable[0xDB] = {
/* 0xDA */ {&daPy_lk_c::dProcIceSlip, 0x00000401},
};
daPy_lk_c::daPy_ProcFunc daPy_lk_c::mDemoProcInitFuncTable[0x4B] = {
daPy_lk_c::ProcFunc daPy_lk_c::mDemoProcInitFuncTable[0x4B] = {
NULL,
NULL,
NULL,
@@ -511,11 +512,37 @@ daPy_lk_c::daPy_ProcFunc daPy_lk_c::mDemoProcInitFuncTable[0x4B] = {
&daPy_lk_c::dProcIceSlip_init,
};
GXColor l_freeze_fade_color = {0xFF, 0xFF, 0xFF, 0xFF};
csXyz l_debug_current_angle;
csXyz l_debug_shape_angle;
u8 daPy_matAnm_c::m_maba_flg;
u8 daPy_matAnm_c::m_eye_move_flg;
u8 daPy_matAnm_c::m_maba_timer;
u8 daPy_matAnm_c::m_morf_frame;
s16 daPy_dmEcallBack_c::m_timer = 0;
u16 daPy_dmEcallBack_c::m_type = 3;
/* 80102E8C-80102EAC .text daPy_createHeap__FP10fopAc_ac_c */
static BOOL daPy_createHeap(fopAc_ac_c* i_this) {
return static_cast<daPy_lk_c*>(i_this)->createHeap();
}
/* 80102EAC-80102F1C .text __ct__13daPy_matAnm_cFv */
daPy_matAnm_c::daPy_matAnm_c() {
mEyePosOld.x = 0.0f;
mEyePosOld.y = 0.0f;
mEyePos.x = 0.0f;
mEyePos.y = 0.0f;
m_maba_flg = 0;
m_eye_move_flg = 0;
m_maba_timer = 0;
m_morf_frame = 0;
}
/* 80102F64-80103074 .text calc__13daPy_matAnm_cCFP11J3DMaterial */
void daPy_matAnm_c::calc(J3DMaterial* mat) const {
daPy_matAnm_c* i_this = const_cast<daPy_matAnm_c*>(this);
@@ -560,13 +587,25 @@ void daPy_lk_c::voiceStart(u32 param_1) {
}
/* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */
void daPy_lk_c::itemButton() const {
/* Nonmatching */
BOOL daPy_lk_c::itemButton() const {
if (mLastUsedEquipItem == 0) {
return m34C9 & 0x04;
} else if (mLastUsedEquipItem == 1) {
return m34C9 & 0x08;
} else {
return m34C9 & 0x10;
}
}
/* 801031DC-80103214 .text itemTrigger__9daPy_lk_cCFv */
void daPy_lk_c::itemTrigger() const {
/* Nonmatching */
BOOL daPy_lk_c::itemTrigger() const {
if (mLastUsedEquipItem == 0) {
return mPressedButtonsBitfield & 0x04;
} else if (mLastUsedEquipItem == 1) {
return mPressedButtonsBitfield & 0x08;
} else {
return mPressedButtonsBitfield & 0x10;
}
}
/* 80103214-80103258 .text getReadyItem__9daPy_lk_cFv */
@@ -575,13 +614,39 @@ void daPy_lk_c::getReadyItem() {
}
/* 80103258-801032E4 .text checkGroupItem__9daPy_lk_cFii */
void daPy_lk_c::checkGroupItem(int, int) {
/* Nonmatching */
BOOL daPy_lk_c::checkGroupItem(int param_1, int itemNo) {
if (param_1 == 0x105) {
return checkDrinkBottleItem(itemNo);
} else if (param_1 == 0x106) {
return checkOpenBottleItem(itemNo);
} else if (param_1 == 0x107) {
return isEsa(itemNo);
} else if (param_1 == 0x108) {
return checkBowItem(itemNo);
} else if (param_1 == 0x109) {
return checkPhotoBoxItem(itemNo);
} else {
return param_1 == itemNo;
}
}
/* 801032E4-801033E4 .text checkSetItemTrigger__9daPy_lk_cFii */
void daPy_lk_c::checkSetItemTrigger(int, int) {
/* Nonmatching */
BOOL daPy_lk_c::checkSetItemTrigger(int param_1, int param_2) {
if (param_2 == 0 || daPy_dmEcallBack_c::m_type != 1) {
if (mPressedButtonsBitfield & 0x04 && checkGroupItem(param_1, dComIfGp_getSelectItem(0))) {
mLastUsedEquipItem = 0;
return TRUE;
}
if (mPressedButtonsBitfield & 0x08 && checkGroupItem(param_1, dComIfGp_getSelectItem(1))) {
mLastUsedEquipItem = 1;
return TRUE;
}
if (mPressedButtonsBitfield & 0x10 && checkGroupItem(param_1, dComIfGp_getSelectItem(2))) {
mLastUsedEquipItem = 2;
return TRUE;
}
}
return FALSE;
}
/* 801033E4-80103450 .text auraJointCB0__9daPy_lk_cFi */
@@ -680,17 +745,20 @@ void daPy_lk_c::loadTextureAnimeResource(u32, int) {
}
/* 80104600-801046CC .text checkBossBgm__9daPy_lk_cFv */
void daPy_lk_c::checkBossBgm() {
BOOL daPy_lk_c::checkBossBgm() {
/* Nonmatching */
}
/* 801046CC-801046EC .text checkMabaAnimeBtp__9daPy_lk_cFi */
void daPy_lk_c::checkMabaAnimeBtp(int) {
/* Nonmatching */
BOOL daPy_lk_c::checkMabaAnimeBtp(int anmIdx) {
if (anmIdx >= LKANM_BTP_TMABAA && anmIdx <= LKANM_BTP_TMABAJ) {
return TRUE;
}
return FALSE;
}
/* 801046EC-80104A08 .text checkNormalFace__9daPy_lk_cFv */
void daPy_lk_c::checkNormalFace() {
BOOL daPy_lk_c::checkNormalFace() {
/* Nonmatching */
}
@@ -760,17 +828,17 @@ void daPy_lk_c::setItemModel() {
}
/* 80106660-801066DC .text checkUpperReadyAnime__9daPy_lk_cCFv */
void daPy_lk_c::checkUpperReadyAnime() const {
BOOL daPy_lk_c::checkUpperReadyAnime() const {
/* Nonmatching */
}
/* 801066DC-80106750 .text checkUpperReadyThrowAnime__9daPy_lk_cCFv */
void daPy_lk_c::checkUpperReadyThrowAnime() const {
BOOL daPy_lk_c::checkUpperReadyThrowAnime() const {
/* Nonmatching */
}
/* 80106750-801067D8 .text checkNoCollisionCorret__9daPy_lk_cFv */
void daPy_lk_c::checkNoCollisionCorret() {
BOOL daPy_lk_c::checkNoCollisionCorret() {
/* Nonmatching */
}
@@ -910,7 +978,7 @@ void daPy_lk_c::cancelItemUpperReadyAnime() {
}
/* 80109F4C-8010A204 .text checkBodyAngleX__9daPy_lk_cFs */
void daPy_lk_c::checkBodyAngleX(s16) {
BOOL daPy_lk_c::checkBodyAngleX(s16) {
/* Nonmatching */
}
@@ -950,7 +1018,7 @@ void daPy_lk_c::setFrameCtrl(J3DFrameCtrl*, u8, s16, s16, f32, f32) {
}
/* 8010ACEC-8010AD2C .text checkAtnWaitAnime__9daPy_lk_cFv */
void daPy_lk_c::checkAtnWaitAnime() {
BOOL daPy_lk_c::checkAtnWaitAnime() {
/* Nonmatching */
}
@@ -1001,7 +1069,12 @@ void daPy_lk_c::setAnimeUnequip() {
/* 8010C430-8010C4A4 .text checkBossGomaStage__9daPy_lk_cFv */
BOOL daPy_lk_c::checkBossGomaStage() {
/* Nonmatching */
if (strcmp(dComIfGp_getStartStageName(), "M_DragB") == 0 ||
strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0)
{
return TRUE;
}
return FALSE;
}
/* 8010C4A4-8010C4C8 .text checkSingleItemEquipAnime__9daPy_lk_cCFv */
@@ -1011,12 +1084,12 @@ BOOL daPy_lk_c::checkSingleItemEquipAnime() const {
/* 8010C4C8-8010C528 .text checkItemEquipAnime__9daPy_lk_cCFv */
BOOL daPy_lk_c::checkItemEquipAnime() const {
/* Nonmatching */
return m_anm_heap_upper[2].mIdx == LKANM_BCK_TAKE || checkSingleItemEquipAnime() || m_anm_heap_upper[2].mIdx == LKANM_BCK_TAKEBOTH;
}
/* 8010C528-8010C570 .text checkEquipAnime__9daPy_lk_cCFv */
BOOL daPy_lk_c::checkEquipAnime() const {
/* Nonmatching */
return m_anm_heap_upper[2].mIdx == LKANM_BCK_REST || checkItemEquipAnime();
}
/* 8010C570-8010C71C .text deleteEquipItem__9daPy_lk_cFi */
@@ -1084,17 +1157,17 @@ void daPy_lk_c::changeDragonShield(int) {
}
/* 8010CD34-8010CFB4 .text checkNewItemChange__9daPy_lk_cFUc */
void daPy_lk_c::checkNewItemChange(u8) {
BOOL daPy_lk_c::checkNewItemChange(u8) {
/* Nonmatching */
}
/* 8010CFB4-8010D26C .text checkItemChangeFromButton__9daPy_lk_cFv */
void daPy_lk_c::checkItemChangeFromButton() {
BOOL daPy_lk_c::checkItemChangeFromButton() {
/* Nonmatching */
}
/* 8010D26C-8010D754 .text checkItemAction__9daPy_lk_cFv */
void daPy_lk_c::checkItemAction() {
BOOL daPy_lk_c::checkItemAction() {
/* Nonmatching */
}
@@ -1104,7 +1177,7 @@ void daPy_lk_c::getSlidePolygon() {
}
/* 8010D810-8010D8B0 .text checkJumpCutFromButton__9daPy_lk_cFv */
void daPy_lk_c::checkJumpCutFromButton() {
BOOL daPy_lk_c::checkJumpCutFromButton() {
/* Nonmatching */
}
@@ -1114,7 +1187,7 @@ void daPy_lk_c::orderTalk() {
}
/* 8010DB58-8010E448 .text checkNextActionFromButton__9daPy_lk_cFv */
void daPy_lk_c::checkNextActionFromButton() {
BOOL daPy_lk_c::checkNextActionFromButton() {
/* Nonmatching */
}
@@ -1124,22 +1197,22 @@ void daPy_lk_c::setShieldGuard() {
}
/* 8010E75C-8010E7C4 .text checkItemModeActorPointer__9daPy_lk_cFv */
void daPy_lk_c::checkItemModeActorPointer() {
BOOL daPy_lk_c::checkItemModeActorPointer() {
/* Nonmatching */
}
/* 8010E7C4-8010E828 .text checkNextActionItemFly__9daPy_lk_cFv */
void daPy_lk_c::checkNextActionItemFly() {
BOOL daPy_lk_c::checkNextActionItemFly() {
/* Nonmatching */
}
/* 8010E828-8010EC78 .text checkNextMode__9daPy_lk_cFi */
void daPy_lk_c::checkNextMode(int) {
BOOL daPy_lk_c::checkNextMode(int) {
/* Nonmatching */
}
/* 8010EC78-8010ED68 .text checkIceSlipFall__9daPy_lk_cFv */
void daPy_lk_c::checkIceSlipFall() {
BOOL daPy_lk_c::checkIceSlipFall() {
/* Nonmatching */
}
@@ -1249,27 +1322,27 @@ BOOL daPy_lk_c::checkBottleItem(int itemNo) const {
}
/* 80111F7C-80111FEC .text checkDrinkBottleItem__9daPy_lk_cCFi */
void daPy_lk_c::checkDrinkBottleItem(int) const {
/* Nonmatching */
BOOL daPy_lk_c::checkDrinkBottleItem(int itemNo) const {
return itemNo == RED_BOTTLE || itemNo == GREEN_BOTTLE || itemNo == BLUE_BOTTLE || itemNo == SOUP_BOTTLE || itemNo == BOTTLESHIP;
}
/* 80111FEC-8011201C .text checkOpenBottleItem__9daPy_lk_cCFi */
void daPy_lk_c::checkOpenBottleItem(int) const {
/* Nonmatching */
BOOL daPy_lk_c::checkOpenBottleItem(int itemNo) const {
return itemNo == FIREFLY_BOTTLE || itemNo == BIN_IN_WATER || itemNo == FWATER_BOTTLE || itemNo == FAIRY_BOTTLE;
}
/* 8011201C-80112044 .text checkBowItem__9daPy_lk_cCFi */
BOOL daPy_lk_c::checkBowItem(int) const {
/* Nonmatching */
BOOL daPy_lk_c::checkBowItem(int itemNo) const {
return itemNo == BOW || itemNo == MAGIC_ARROW || itemNo == LIGHT_ARROW;
}
/* 80112044-80112064 .text checkPhotoBoxItem__9daPy_lk_cCFi */
void daPy_lk_c::checkPhotoBoxItem(int) const {
/* Nonmatching */
BOOL daPy_lk_c::checkPhotoBoxItem(int itemNo) const {
return itemNo == CAMERA || itemNo == CAMERA2;
}
/* 80112064-80112100 .text checkScopeEnd__9daPy_lk_cFv */
void daPy_lk_c::checkScopeEnd() {
BOOL daPy_lk_c::checkScopeEnd() {
/* Nonmatching */
}
@@ -1279,12 +1352,12 @@ void daPy_lk_c::setSubjectMode() {
}
/* 8011215C-801121C8 .text checkMaskDraw__9daPy_lk_cFv */
void daPy_lk_c::checkMaskDraw() {
BOOL daPy_lk_c::checkMaskDraw() {
/* Nonmatching */
}
/* 801121C8-80112280 .text checkSubjectEnd__9daPy_lk_cFi */
void daPy_lk_c::checkSubjectEnd(int) {
BOOL daPy_lk_c::checkSubjectEnd(int) {
/* Nonmatching */
}
@@ -2697,7 +2770,7 @@ void daPy_lk_c::playerInit() {
m31CA = -1;
m31CC = -1;
m31CE = -1;
m34EE = -1;
mSeAnmIdx = -1;
m34F0 = -1;
mpItemHeaps[0] = mDoExt_createSolidHeapFromGameToCurrent(0xE600, 0x20);
@@ -2887,18 +2960,52 @@ static s32 daPy_Create(fopAc_ac_c* i_this) {
}
/* 80127BA0-80127CC0 .text setSeAnime__9daPy_lk_cFPC14daPy_anmHeap_cP12J3DFrameCtrl */
void daPy_lk_c::setSeAnime(const daPy_anmHeap_c*, J3DFrameCtrl*) {
void daPy_lk_c::setSeAnime(const daPy_anmHeap_c* anmHeap, J3DFrameCtrl* frameCtrl) {
/* Nonmatching */
u32 seAnmOffsetInBck = *reinterpret_cast<u32*>(reinterpret_cast<u32>(anmHeap->m_buffer) + 0x1C);
if (seAnmOffsetInBck == -1) {
resetSeAnime();
} else if (mSeAnmIdx == anmHeap->mIdx && m34F0 == anmHeap->field_0x6 && mSeAnmRate * frameCtrl->getRate() >= 0.0f) {
mpSeAnmFrameCtrl = frameCtrl;
} else {
u32 data_size = *reinterpret_cast<u32*>(anmHeap->m_buffer); // TODO
const u32 l_sanm_buffer_size = 0x200;
JUT_ASSERT(22318, data_size < l_sanm_buffer_size);
u32 seAnmPtr = *reinterpret_cast<u32*>(anmHeap->m_buffer); // TODO
cLib_memCpy(m_sanm_buffer, anmHeap->m_buffer, seAnmPtr);
mpSeAnmFrameCtrl = frameCtrl;
mSeAnmIdx = anmHeap->mIdx;
m34F0 = anmHeap->field_0x6;
mSeAnmRate = frameCtrl->getRate();
initSeAnime();
}
}
/* 80127CC0-80127DEC .text initSeAnime__9daPy_lk_cFv */
void daPy_lk_c::initSeAnime() {
/* Nonmatching */
if (mpSeAnmFrameCtrl) {
s16 loop = mpSeAnmFrameCtrl->getLoop();
u32 direction = mpSeAnmFrameCtrl->getRate() >= 0.0f ? 1 : -1;
mJAIZelAnime.initActorAnimSound(m_sanm_buffer, direction, loop);
}
if (mpSeAnmFrameCtrl->getAttribute() == J3DFrameCtrl::LOOP_REPEAT_e) {
f32 position = mpSeAnmFrameCtrl->getFrame() - mpSeAnmFrameCtrl->getRate();
if (position <= mpSeAnmFrameCtrl->getStart()) {
position = mpSeAnmFrameCtrl->getEnd() - position;
} else if (position >= mpSeAnmFrameCtrl->getEnd()) {
position = position - mpSeAnmFrameCtrl->getEnd();
}
mJAIZelAnime.setPlayPosition(position);
}
}
/* 80127DEC-80127E08 .text resetSeAnime__9daPy_lk_cFv */
void daPy_lk_c::resetSeAnime() {
/* Nonmatching */
mSeAnmIdx = -1;
m34F0 = -1;
mpSeAnmFrameCtrl = NULL;
}
/* 80127E08-8012821C .text setMoveAnime__9daPy_lk_cFfffQ29daPy_lk_c8daPy_ANMQ29daPy_lk_c8daPy_ANMif */