player_main work, player_ship start

This commit is contained in:
LagoLunatic
2023-11-19 22:33:45 -05:00
parent 785effa0c3
commit c130095d7f
34 changed files with 261 additions and 100 deletions
+1
View File
@@ -114,6 +114,7 @@ public:
daPyFlg1_FORCE_VOMIT_JUMP_SHORT = 0x00010000,
daPyFlg1_FOREST_WATER_USE = 0x00020000,
daPyFlg1_WATER_DROP = 0x00080000,
daPyFlg1_UNK200000 = 0x00200000,
daPyFlg1_UNK800000 = 0x00800000,
daPyFlg1_UNK1000000 = 0x01000000,
daPyFlg1_VINE_CATCH = 0x02000000,
+41 -25
View File
@@ -110,7 +110,7 @@ public:
class daPy_swimTailEcallBack_c : public dPa_levelEcallBack {
public:
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void getMaxWaterY(JGeometry::TVec3<float>*);
void getMaxWaterY(JGeometry::TVec3<f32>*);
void remove();
void execute(JPABaseEmitter*);
void draw(JPABaseEmitter*);
@@ -176,7 +176,7 @@ public:
class daPy_swBlur_c : public J3DPacket {
public:
void initSwBlur(MtxP, int, float, int);
void initSwBlur(MtxP, int, f32, int);
void copySwBlur(MtxP, int);
void draw();
~daPy_swBlur_c() {}
@@ -212,7 +212,10 @@ struct daPy_aura_c {
f32 getFrame() { return mFrame; }
};
class daPy_anmIndex_c;
class daPy_anmIndex_c {
public:
};
enum LINK_RES_FILE_ID { // IDs and indexes are synced
/* BCK */
@@ -1506,13 +1509,13 @@ public:
void initSeAnime();
void resetSeAnime();
void setMoveAnime(f32, f32, f32, daPy_lk_c::daPy_ANM, daPy_lk_c::daPy_ANM, int, f32);
void setSingleMoveAnime(daPy_lk_c::daPy_ANM, float, float, short, float);
BOOL setSingleMoveAnime(daPy_lk_c::daPy_ANM, f32, f32, s16, f32);
void setActAnimeUpper(u16, daPy_lk_c::daPy_UPPER, f32, f32, s16, f32);
void resetActAnimeUpper(daPy_lk_c::daPy_UPPER, float);
void resetActAnimeUpper(daPy_lk_c::daPy_UPPER, f32);
void animeUpdate();
void simpleAnmPlay(J3DAnmBase*);
void setHandModel(daPy_lk_c::daPy_ANM);
void getAnmData(daPy_lk_c::daPy_ANM) const;
daPy_anmIndex_c* getAnmData(daPy_lk_c::daPy_ANM) const;
BOOL checkGrabWeapon(int);
void endDemoMode();
void setAuraEffect();
@@ -2066,7 +2069,6 @@ public:
void getIceWaterParticleBtk() {}
void getShadowID() const {}
void npcStartRestartRoom() {}
void offModeFlg(u32) {}
void setDaiokutaEnd() {}
void setWhirlId(unsigned int) {}
@@ -2074,6 +2076,10 @@ public:
int getStartMode() { return (fopAcM_GetParam(this) >> 0x0C) & 0xF; }
int getStartEvent() { return (fopAcM_GetParam(this) >> 0x18) & 0xFF; }
void onModeFlg(u32 flag) { mModeFlg |= flag; }
void offModeFlg(u32 flag) { mModeFlg &= ~flag; }
BOOL checkModeFlg(u32 flag) const { return mModeFlg & flag; }
request_of_phase_process_class* getPhase() { return &mPhsLoad; }
virtual MtxP getLeftHandMatrix() { return mpCLModel->getAnmMtx(0x08); } // cl_LhandA joint
@@ -2083,7 +2089,7 @@ public:
virtual int getTactTimerCancel() const;
virtual BOOL checkPlayerGuard() const;
virtual fopAc_ac_c* getGrabMissActor();
virtual BOOL checkPlayerFly() const { return mProcFlags & 0x10452822; } // TODO add enum
virtual BOOL checkPlayerFly() const { return checkModeFlg(0x10452822); } // TODO add enum
virtual BOOL checkFrontRoll() const { return mCurProcID == PROC_FRONT_ROLL_e; }
virtual BOOL checkBottleSwing() const { return mCurProcID == PROC_BOTTLE_SWING_e; }
virtual BOOL checkCutCharge() const { return mCurProcID == PROC_CUT_TURN_MOVE_e; }
@@ -2109,7 +2115,7 @@ public:
virtual BOOL setHookshotCarryOffset(unsigned int, const cXyz*);
virtual void setPlayerPosAndAngle(cXyz*, s16);
virtual void setPlayerPosAndAngle(cXyz*, csXyz*);
virtual void setPlayerPosAndAngle(float (*)[4]);
virtual void setPlayerPosAndAngle(MtxP);
virtual BOOL setThrowDamage(cXyz*, s16, f32, f32, int);
virtual void changeTextureAnime(u16, u16, int);
virtual void cancelChangeTextureAnime();
@@ -2165,7 +2171,7 @@ public:
/* 0x2E90 */ JKRSolidHeap* mpItemHeaps[2];
/* 0x2E98 */ J3DModel* mpHeldItemModel;
/* 0x2E9C */ mDoExt_bckAnm mSwordAnim;
/* 0x2EAC */ u8 m2EAC[0x2EB0 - 0x2EAC];
/* 0x2EAC */ mDoExt_McaMorf* m2EAC;
/* 0x2EB0 */ J3DAnmTevRegKey* mpBombBrk;
/* 0x2EB4 */ J3DAnmTevRegKey* mpGwp00BrkData;
/* 0x2EB8 */ J3DAnmTextureSRTKey* mpGwp00BtkData;
@@ -2284,7 +2290,10 @@ public:
/* 0x34C9 */ u8 m34C9;
/* 0x34CA */ u8 m34CA;
/* 0x34CB */ u8 mDekuSpRestartPoint;
/* 0x34CC */ u8 m34CC[0x34D0 - 0x34CC];
/* 0x34CC */ u8 m34CC;
/* 0x34CD */ u8 m34CD;
/* 0x34CE */ u8 m34CE;
/* 0x34CF */ u8 m34CF[0x34D0 - 0x34CF];
/* 0x34D0 */ s16 m34D0;
/* 0x34D2 */ s16 m34D2;
/* 0x34D4 */ s16 m34D4;
@@ -2342,16 +2351,20 @@ public:
/* 0x353C */ s16 m353C;
/* 0x353E */ s16 m353E;
/* 0x3540 */ s16 m3540;
/* 0x3542 */ u8 m3542[0x3544 - 0x3542];
/* 0x3542 */ s16 m3542;
/* 0x3544 */ s16 m3544;
/* 0x3546 */ s16 mShieldFrontRangeYAngle;
/* 0x3548 */ u8 m3548[0x354C - 0x3548];
/* 0x3548 */ s16 m3548;
/* 0x354A */ u8 m354A[0x354C - 0x354A];
/* 0x354C */ s16 m354C;
/* 0x354E */ s16 mTinkleShieldTimer;
/* 0x3550 */ u8 m3550[0x3552 - 0x3550];
/* 0x3550 */ s16 m3550;
/* 0x3552 */ u16 mKeepItemType;
/* 0x3554 */ s16 m3554;
/* 0x3556 */ u8 m3556[0x355E - 0x3556];
/* 0x3556 */ u8 m3556[0x3558 - 0x3556];
/* 0x3558 */ s16 m3558;
/* 0x355A */ s16 m355A;
/* 0x355C */ s16 m355C;
/* 0x355E */ u16 m355E;
/* 0x3560 */ u16 mHeldItemType;
/* 0x3562 */ u8 m3562[0x3564 - 0x3562];
@@ -2362,7 +2375,8 @@ public:
/* 0x356C */ int mCameraInfoIdx;
/* 0x3570 */ int m3570;
/* 0x3574 */ int m3574;
/* 0x3578 */ u8 m3578[0x3580 - 0x3578];
/* 0x3578 */ int m3578;
/* 0x357C */ u8 m357C[0x3580 - 0x357C];
/* 0x3580 */ int m3580;
/* 0x3584 */ int mCurrentGroundAttributeCode;
/* 0x3588 */ u8 m3588[0x358C - 0x3588];
@@ -2373,7 +2387,9 @@ public:
/* 0x359C */ u8 m359C[0x35A0 - 0x359C];
/* 0x35A0 */ f32 m35A0;
/* 0x35A4 */ f32 m35A4;
/* 0x35A8 */ u8 m35A8[0x35BC - 0x35A8];
/* 0x35A8 */ u8 m35A8[0x35B0 - 0x35A8];
/* 0x35B0 */ f32 m35B0;
/* 0x35B4 */ u8 m35B4[0x35BC - 0x35B4];
/* 0x35BC */ f32 mVelocity;
/* 0x35C0 */ u8 m35C0[0x35C4 - 0x35C0];
/* 0x35C4 */ f32 m35C4;
@@ -2396,7 +2412,7 @@ public:
/* 0x360C */ f32 mSeAnmRate;
/* 0x3610 */ f32 m3610;
/* 0x3614 */ int m3614;
/* 0x3618 */ u32 mProcFlags;
/* 0x3618 */ u32 mModeFlg;
/* 0x361C */ u32 mMtrlSndId;
/* 0x3620 */ u32 m3620;
/* 0x3624 */ int m3624;
@@ -2409,9 +2425,8 @@ public:
/* 0x3640 */ s16 m3640;
/* 0x3642 */ u8 m3642[0x3644 - 0x3642];
/* 0x3644 */ f32 m3644;
/* 0x3648 */ u8 m3648[0x3654 - 0x3648];
/* 0x3654 */ f32 m3654;
/* 0x3658 */ u8 m3658[0x3668 - 0x3658];
/* 0x3648 */ Quaternion m3648;
/* 0x3658 */ Quaternion m3658;
/* 0x3668 */ J3DTransformInfo m3668;
/* 0x3688 */ cXyz m3688;
/* 0x3694 */ cXyz mOldSpeed;
@@ -2422,15 +2437,16 @@ public:
/* 0x36D0 */ cXyz m36D0;
/* 0x36DC */ cXyz m36DC;
/* 0x36E8 */ cXyz mHookshotRootPos;
/* 0x36F4 */ u8 m36F4[0x3700 - 0x36F4];
/* 0x36F4 */ cXyz m36F4;
/* 0x3700 */ cXyz m3700;
/* 0x370C */ cXyz m370C;
/* 0x3718 */ u8 m3718[0x3724 - 0x3718];
/* 0x3718 */ cXyz m3718;
/* 0x3724 */ cXyz m3724;
/* 0x3730 */ cXyz m3730;
/* 0x373C */ u8 m373C[0x3748 - 0x373C];
/* 0x373C */ cXyz m373C;
/* 0x3748 */ cXyz m3748;
/* 0x3754 */ u8 m3754[0x37E4 - 0x3754];
/* 0x3754 */ u8 m3754[0x37B4 - 0x3754];
/* 0x37B4 */ Mtx m37B4;
/* 0x37E4 */ daPy_swBlur_c mSwBlur;
/* 0x3DB8 */ daPy_footData_c mFootData[2];
/* 0x3FE8 */ dCcD_Stts mStts;
+4 -3
View File
@@ -100,10 +100,11 @@ public:
/* 0x0304 */ J3DModel* mpSalvageArmModel;
/* 0x0308 */ J3DModel* field_0x308;
/* 0x030C */ mDoExt_3DlineMat1_c mRopeLine;
/* 0x0341 */ u8 field_0x0348[0x034d - 0x0341];
/* 0x034d */ u8 field_0x034d;
/* 0x0348 */ u8 field_0x0348[0x034D - 0x0348];
/* 0x034D */ u8 field_0x034D;
/* 0x034E */ u8 mShipMode;
/* 0x0358 */ u32 field_0x0358; //showing 390
/* 0x034F */ u8 field_0x034F[0x0358 - 0x034F];
/* 0x0358 */ u32 field_0x0358;
/* 0x035C */ int mNextMessageID;
/* 0x0360 */ int mShadowId;
/* 0x0364 */ u8 field_0x0364[0x183C - 0x0364];
+2 -2
View File
@@ -292,7 +292,6 @@ public:
void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
void SetTgMtrl(u8 mtrl) { mGObjTg.SetMtrl(mtrl); }
fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); }
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
cXyz* GetTgVecP() { return mGObjTg.GetVecP(); }
cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); }
@@ -361,9 +360,10 @@ public:
void SubtractCoEffCounter() { mGObjCo.SubtractEffCounter(); }
void OnTgShieldHit() { mGObjTg.OnRPrm(2); }
void OffTgShieldHit() { mGObjTg.OffRPrm(2); }
bool ChkTgShieldHit() { return mGObjTg.ChkRPrm(2); }
void OnAtShieldHit() { mGObjAt.OnRPrm(1); }
void OffAtShieldHit() { mGObjAt.OffRPrm(1); }
void OffTgMagneHit() { mGObjTg.OffRPrm(4); }
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
void SetTgRVec(cXyz& vec) { mGObjTg.SetRVec(vec); }
void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); }
void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); }
+8
View File
@@ -1851,6 +1851,14 @@ inline bool dComIfGp_checkPlayerStatus1(int param_0, u32 flag) {
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 1, flag);
}
inline void dComIfGp_setPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 0, flag);
}
inline void dComIfGp_setPlayerStatus1(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 1, flag);
}
inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag);
}
+4
View File
@@ -97,6 +97,10 @@ inline void mDoAud_seStart(u32 i_sfxID, Vec* i_sePos, u32 param_2, s8 i_reverb)
mDoAud_zelAudio_c::getInterface()->seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
inline void mDoAud_bgmSetSwordUsing(s32 param_1) {
mDoAud_zelAudio_c::getInterface()->bgmSetSwordUsing(param_1);
}
inline void mDoAud_seStop(u32 i_sfxID, s32 param_2) {
mDoAud_zelAudio_c::getInterface()->seStop(i_sfxID, param_2);
}
+1 -1
View File
@@ -619,7 +619,7 @@ JKRSolidHeap * mDoExt_createSolidHeapFromSystem(u32 i_size, u32 i_alignment);
void mDoExt_restoreCurrentHeap();
s32 mDoExt_adjustSolidHeap(JKRSolidHeap * pHeap);
void mDoExt_destroySolidHeap(JKRSolidHeap * pHeap);
JKRHeap* mDoExt_setCurrentHeap(JKRHeap*);
JKRHeap* mDoExt_setCurrentHeap(JKRHeap* pHeap);
JUTFont* mDoExt_getMesgFont();
JUTFont* mDoExt_getRubyFont();
+3 -2
View File
@@ -1,6 +1,7 @@
/**
* d_a_kytag04.cpp
*/
* d_a_kytag04.cpp
*/
#include "JSystem/JKernel/JKRHeap.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_com_inf_game.h"
+3 -2
View File
@@ -1,6 +1,7 @@
/**
* d_a_kytag06.cpp
*/
* d_a_kytag06.cpp
*/
#include "JSystem/JKernel/JKRHeap.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_mng.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
#include "f_op/f_op_camera.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+138 -37
View File
@@ -6,7 +6,7 @@
* Much of Link's code is spread across various `.inc` files and included directly
* into this one to make the file size more managable.
* The original split locations are indicated in the map file.
*/
*/
#include "d/actor/d_a_player_main.h"
#include "d/d_com_inf_game.h"
@@ -2716,17 +2716,26 @@ void daPy_lk_c::setAtnList() {
/* 8010841C-8010848C .text setActor__16daPy_actorKeep_cFv */
void daPy_actorKeep_c::setActor() {
/* Nonmatching */
if (mID != -1) {
mActor = fopAcM_SearchByID(mID);
if (mActor == NULL) {
mID = -1;
}
} else {
mActor = NULL;
}
}
/* 8010848C-801084AC .text setData__16daPy_actorKeep_cFP10fopAc_ac_c */
void daPy_actorKeep_c::setData(fopAc_ac_c*) {
/* Nonmatching */
void daPy_actorKeep_c::setData(fopAc_ac_c* actor) {
mActor = actor;
mID = fopAcM_GetID(actor);
}
/* 801084AC-801084C0 .text clearData__16daPy_actorKeep_cFv */
void daPy_actorKeep_c::clearData() {
/* Nonmatching */
mID = -1;
mActor = NULL;
}
/* 801084C0-80108564 .text setActorPointer__9daPy_lk_cFv */
@@ -2910,8 +2919,53 @@ BOOL daPy_lk_c::checkEquipAnime() const {
}
/* 8010C570-8010C71C .text deleteEquipItem__9daPy_lk_cFi */
void daPy_lk_c::deleteEquipItem(int) {
/* Nonmatching */
void daPy_lk_c::deleteEquipItem(int param_1) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
if (param_1 != 0 && (mHeldItemType != 0x100 && mHeldItemType != 0x101)) {
if (mHeldItemType == 0x103) {
seStartOnlyReverb(JA_SE_LK_SW_PUTIN_S);
} else {
seStartOnlyReverb(JA_SE_LK_ITEM_TAKEOUT);
}
}
if (mHeldItemType == 0x103) {
mDoAud_bgmSetSwordUsing(0);
} else if (mHeldItemType == 0x101) {
if (equipActor != NULL) {
fopAcM_cancelCarryNow(equipActor);
}
} else if (equipActor != NULL) {
fopAcM_delete(equipActor);
}
if ((mHeldItemType == ROPE && checkRopeAnime()) ||
(mHeldItemType == BOOMERANG && checkBoomerangAnime()) ||
(mHeldItemType == HOOKSHOT && m_anm_heap_upper[2].mIdx == LKANM_BCK_HOOKSHOTWAIT) ||
(checkBowItem(mHeldItemType) && checkBowAnime()))
{
resetActAnimeUpper(UPPER_UNK2, -1.0f);
}
mActorKeepEquip.clearData();
mHeldItemType = 0x100;
mpHeldItemModel = NULL;
if (mSwordAnim.getBckAnm() != NULL) {
mSwordAnim.changeBckOnly(NULL);
}
m2EAC = NULL;
mpHeldItemModelAnimTexEx = NULL;
mpBottleContentsModel = NULL;
mpBottleCapModel = NULL;
mpHeldItemAnimBRK = NULL;
mpSwordAnimBTK = NULL;
mpSwordModel1 = NULL;
m3454.end();
mpSwordTipStabModel = NULL;
m2EF8 = 0;
m2EF4 = 0;
m2EF0 = 0;
offNoResetFlg1(daPyFlg1_UNK200000);
}
/* 8010C71C-8010C7F4 .text setFallVoice__9daPy_lk_cFv */
@@ -3180,7 +3234,7 @@ BOOL daPy_lk_c::checkSubjectEnd(int) {
/* 80112280-80112330 .text checkGuardAccept__9daPy_lk_cFv */
BOOL daPy_lk_c::checkGuardAccept() {
if (mProcFlags & 0x40 && !checkBowAnime()) {
if (checkModeFlg(0x40) && !checkBowAnime()) {
u32 stageType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo());
if (stageType != 2 ||
strcmp(dComIfGp_getStartStageName(), "Ojhous") == 0 ||
@@ -3250,28 +3304,28 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) {
returnKeepItemData();
temp_r28 = (mProcFlags & 0x40000) >> 0x12;
temp_r28 = checkModeFlg(0x40000) >> 0x12;
if (mProcFlags & 0x10040820) {
if (checkModeFlg(0x10040820)) {
m34C2 = 0xA;
}
temp_r29 = ((mProcFlags & 0x2) >> 1) ^ 1;
temp_r29 = (checkModeFlg(0x2) >> 1) ^ 1;
mCurProcID = procID;
mCurProcFunc = procInit.mProcFunc;
m3598 = 0.0f;
mProcFlags = procInit.mProcFlags;
mModeFlg = procInit.mProcFlags;
if (m34C2 == 1) {
m34C2 = 2;
}
if (mProcFlags & 0x10040820) {
if (checkModeFlg(0x10040820)) {
m34C2 = 0xB;
}
if (mProcFlags & 0x20) {
if (checkModeFlg(0x20)) {
mAcch.OffLineCheck();
} else {
mAcch.OnLineCheck();
@@ -3298,20 +3352,20 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) {
shape_angle.z = 0;
m34EC = 0;
if (!(checkEquipAnime() && (mProcFlags & 0x4)) && !(mProcFlags & 0x1000)) {
if (!(checkGrabAnime() || checkBoomerangThrowAnime()) || !(mProcFlags & 0x4000)) {
if (!(checkEquipAnime() && checkModeFlg(0x4)) && !checkModeFlg(0x1000)) {
if (!(checkGrabAnime() || checkBoomerangThrowAnime()) || !checkModeFlg(0x4000)) {
resetActAnimeUpper(UPPER_UNK2, -1.0f);
if (!(mProcFlags & 0x00100000)) {
if (!checkModeFlg(0x00100000)) {
freeGrabItem();
}
}
}
if (!(mProcFlags & 0x00100000) && !checkGrabAnime() && mActorKeepGrab.getActor()) {
if (!checkModeFlg(0x00100000) && !checkGrabAnime() && mActorKeepGrab.getActor()) {
freeGrabItem();
}
if (temp_r29 && (mProcFlags & 2)) {
if (temp_r29 && checkModeFlg(0x2)) {
m3688 = current.pos;
m35F0 = m3688.y;
m35F4 = m3688.y;
@@ -3322,7 +3376,7 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) {
mSwimTailEcallBack[1].onEnd();
}
if (!(mProcFlags & 0x40000)) {
if (!checkModeFlg(0x40000)) {
m3608 = 0.0f;
}
@@ -3354,13 +3408,13 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) {
m35E8 = 0.0f;
if (!(mProcFlags & 0x800) && mCurProcID != PROC_ROPE_SUBJECT_e && mCurProcID != PROC_ROPE_MOVE_e) {
if (!checkModeFlg(0x800) && mCurProcID != PROC_ROPE_SUBJECT_e && mCurProcID != PROC_ROPE_MOVE_e) {
freeRopeItem();
}
if (!(mProcFlags & 0x200)) {
if (!checkModeFlg(0x200)) {
freeHookshotItem();
}
if (temp_r28 && !(mProcFlags & 0x40000)) {
if (temp_r28 && !checkModeFlg(0x40000)) {
swimOutAfter(0);
}
@@ -3981,26 +4035,26 @@ void daPy_lk_c::setBgCheckParam() {
mAcchCir[0].SetWallH(-125.0f);
mAcchCir[1].SetWallH(-89.9f);
mAcchCir[2].SetWallH(0.0f);
} else if (mCurProcID == PROC_LARGE_DAMAGE_WALL_e || mProcFlags & 0x410000) {
} else if (mCurProcID == PROC_LARGE_DAMAGE_WALL_e || checkModeFlg(0x410000)) {
mAcchCir[0].SetWallR(5.0f);
} else if (mProcFlags & 0x200000) {
} else if (checkModeFlg(0x200000)) {
mAcchCir[0].SetWallR(40.0f);
} else if (mProcFlags & 0x10) {
} else if (checkModeFlg(0x10)) {
mAcchCir[0].SetWallR(daPy_HIO_wall_c0::m.field_0x50);
if (checkNoResetFlg0(daPyFlg0_UNK10000)) {
mAcchCir[2].SetWallH(89.9f);
}
} else if (mProcFlags & 0x40000) {
} else if (checkModeFlg(0x40000)) {
mAcchCir[0].SetWallR(67.5f);
mAcchCir[0].SetWallH(-5.0f);
mAcchCir[1].SetWallH(0.0f);
mAcchCir[2].SetWallH(20.0f);
} else if (mProcFlags & 0x1000000 && mCurProcID != PROC_CRAWL_END_e) {
} else if (checkModeFlg(0x1000000) && mCurProcID != PROC_CRAWL_END_e) {
mAcchCir[0].SetWallR(30.0f);
mAcchCir[0].SetWallH(10.0f);
mAcchCir[1].SetWallH(50.0f);
mAcchCir[2].SetWallH(50.0f);
} else if (mProcFlags & 0x20) {
} else if (checkModeFlg(0x20)) {
mAcchCir[0].SetWallR(12.5f);
mAcchCir[0].SetWallH(25.0f);
mAcchCir[1].SetWallH(25.0f);
@@ -4161,8 +4215,11 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int eventInfoIdx, f32 param_3, int
}
/* 80120BBC-80120BE0 .text checkSuccessGuard__9daPy_lk_cFi */
BOOL daPy_lk_c::checkSuccessGuard(int) {
/* Nonmatching */
BOOL daPy_lk_c::checkSuccessGuard(int param_1) {
if (!mCyl.ChkTgShieldHit() || param_1 >= 8) {
return FALSE;
}
return TRUE;
}
/* 80120BE0-80120F94 .text setShapeAngleOnGround__9daPy_lk_cFv */
@@ -4425,8 +4482,13 @@ void daPy_lk_c::createAnimeHeap(JKRSolidHeap**, daPy_lk_c::daPy_HEAP_TYPE) {
}
/* 80124A40-80124B30 .text initModel__9daPy_lk_cFPP8J3DModeliUl */
J3DModelData* daPy_lk_c::initModel(J3DModel**, int, u32) {
/* Nonmatching */
J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_differedDlistFlag) {
J3DModelData* tmp_modelData;
tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, i_fileIndex);
JUT_ASSERT(21340, tmp_modelData != 0);
*i_model = mDoExt_J3DModel__create(tmp_modelData, 0x00080000, i_differedDlistFlag);
JUT_ASSERT(21344, *i_model != 0);
return tmp_modelData;
}
/* 80124B30-80124BE4 .text entryBtk__9daPy_lk_cFP12J3DModelDatai */
@@ -4619,7 +4681,7 @@ void daPy_lk_c::playerInit() {
current.angle.z = 0;
shape_angle.z = 0;
m3526 = 8;
m3654 = 1.0f;
m3648.w = 1.0f;
resetSeAnime();
ResTIMG* tmp_tex = (ResTIMG*)dComIfG_getObjectRes("Always", ALWAYS_I4_BALL128B);
@@ -4831,8 +4893,47 @@ void daPy_lk_c::setMoveAnime(f32, f32, f32, daPy_lk_c::daPy_ANM, daPy_lk_c::daPy
}
/* 8012821C-80128494 .text setSingleMoveAnime__9daPy_lk_cFQ29daPy_lk_c8daPy_ANMffsf */
void daPy_lk_c::setSingleMoveAnime(daPy_lk_c::daPy_ANM, f32, f32, s16, f32) {
/* Nonmatching */
BOOL daPy_lk_c::setSingleMoveAnime(daPy_lk_c::daPy_ANM param_1, f32 param_2, f32 param_3, s16 param_4, f32 param_5) {
const daPy_anmIndex_c* anmData = getAnmData(param_1);
J3DAnmTransform* under_bck;
J3DAnmTransform* upper_bck;
getUnderUpperAnime(anmData, &under_bck, &upper_bck, 0, 0xB400);
m_anm_heap_under[1].mIdx = -1;
m_anm_heap_upper[1].mIdx = -1;
mAnmRatioUpper[0].setRatio(1.0f);
mAnmRatioUpper[1].setRatio(0.0f);
mAnmRatioUnder[0].setRatio(1.0f);
mAnmRatioUnder[1].setRatio(0.0f);
mAnmRatioUnder[0].setAnmTransform(under_bck);
mAnmRatioUnder[1].setAnmTransform(NULL);
s16 maxFrame = param_4 < 0 ? under_bck->getFrameMax() : param_4;
f32 f29 = param_2 < 0.0f ? maxFrame-0.001f : param_3;
setFrameCtrl(&mFrameCtrlUnder[0], under_bck->getAttribute(), param_3, maxFrame, param_2, f29);
under_bck->setFrame(f29);
if (upper_bck) {
mAnmRatioUpper[0].setAnmTransform(upper_bck);
maxFrame = param_4 < 0 ? upper_bck->getFrameMax() : param_4;
f29 = param_2 < 0.0f ? maxFrame-0.001f : param_3;
// Note: It uses under_bck->getAttribute() again here instead of using upper_bck->getAttribute().
setFrameCtrl(&mFrameCtrlUpper[0], under_bck->getAttribute(), param_3, maxFrame, param_2, f29);
upper_bck->setFrame(f29);
} else {
mAnmRatioUpper[0].setAnmTransform(under_bck);
}
mAnmRatioUpper[1].setAnmTransform(NULL);
if (param_5 >= 0.0f) {
m_old_fdata->initOldFrameMorf(param_5, 0, 0x2A);
}
setTextureAnime(mAnmDataTable[param_1].mTexAnmIdx, 0);
setHandModel(param_1);
setSeAnime(&m_anm_heap_under[0], &mFrameCtrlUnder[0]);
m34C3 = 0;
return TRUE;
}
/* 80128494-801285F8 .text setActAnimeUpper__9daPy_lk_cFUsQ29daPy_lk_c10daPy_UPPERffsf */
@@ -4862,7 +4963,7 @@ void daPy_lk_c::setHandModel(daPy_lk_c::daPy_ANM anmIdx) {
}
/* 801288A0-8012894C .text getAnmData__9daPy_lk_cCFQ29daPy_lk_c8daPy_ANM */
void daPy_lk_c::getAnmData(daPy_lk_c::daPy_ANM) const {
daPy_anmIndex_c* daPy_lk_c::getAnmData(daPy_lk_c::daPy_ANM) const {
/* Nonmatching */
}
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+33 -5
View File
@@ -8,9 +8,10 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
#include "d/actor/d_a_ship.h"
/* 8013F848-8013F8AC .text shipSpecialDemoStart__9daPy_lk_cFv */
void daPy_lk_c::shipSpecialDemoStart() {
@@ -33,13 +34,40 @@ void daPy_lk_c::setShipRideArmAngle(int, J3DTransformInfo*) {
}
/* 8013FE78-8013FEF4 .text checkShipRideUseItem__9daPy_lk_cFi */
int daPy_lk_c::checkShipRideUseItem(int) {
/* Nonmatching */
int daPy_lk_c::checkShipRideUseItem(int param_1) {
if (dComIfGp_checkPlayerStatus0(0, 0x10000) && dComIfGp_getShipActor() != NULL) {
if (param_1 != 0) {
deleteEquipItem(0);
}
if (checkShipNotNormalMode()) {
return 2;
} else {
return 1;
}
}
return 0;
}
/* 8013FEF4-8013FFC0 .text initShipRideUseItem__9daPy_lk_cFii */
void daPy_lk_c::initShipRideUseItem(int, int) {
/* Nonmatching */
void daPy_lk_c::initShipRideUseItem(int param_1, int param_2) {
if (param_1 == 0) {
return;
}
dComIfGp_getShipActor()->field_0x034D = 2; // TODO probably inline setter
mGravity = 0.0f;
speed.y = 0.0f;
if (param_1 == 1) {
setOldRootQuaternion(0, 0x4000, 0);
}
dComIfGp_setPlayerStatus0(0, 0x10000);
if (param_2 == 2) {
setShipRidePosUseItem();
} else if (param_2 == 1) {
setShipRidePos(1);
} else {
setShipRidePos(0);
}
onModeFlg(0x2000);
}
/* 8013FFC0-80140018 .text setShipRidePosUseItem__9daPy_lk_cFv */
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is known because of an assert contained within
* a function from this file.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"
+1 -1
View File
@@ -8,7 +8,7 @@
*
* The original name of this file is not known, but a best guess was taken
* based on the original names of the functions it contains.
*/
*/
#include "d/actor/d_a_player_main.h"