mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-11 14:38:38 -04:00
player_main and npc_md work
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user