player_main work

This commit is contained in:
LagoLunatic
2023-11-09 18:51:06 -05:00
parent 4186e645d2
commit 15f4354f6a
5 changed files with 1894 additions and 44 deletions
+14 -16
View File
@@ -82,20 +82,20 @@ private:
class daPy_py_c : public fopAc_ac_c {
public:
enum daPy_FLG0 {
daPyFlg0_UNK4 = 0x00000004,
daPyFlg0_UNK10 = 0x00000010,
daPyFlg0_CUT_AT_FLG = 0x00000040,
daPyFlg0_UNK100 = 0x00000100,
daPyFlg0_PUSH_PULL_KEEP = 0x00000800,
daPyFlg0_UNK1000 = 0x00001000,
daPyFlg0_UNK4000 = 0x00004000,
daPyFlg0_UNK10000 = 0x00010000,
daPyFlg0_NO_FALL_VOICE = 0x00040000,
daPyFlg0_SCOPE_CANCEL = 0x00080000,
daPyFlg0_UNK200000 = 0x00200000,
daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000,
daPyFlg0_NO_DRAW = 0x08000000,
daPyFlg0_HEAVY_STATE = 0x40000000,
daPyFlg0_UNK4 = 0x00000004,
daPyFlg0_DEKU_SP_RETURN_FLG = 0x00000010,
daPyFlg0_CUT_AT_FLG = 0x00000040,
daPyFlg0_UNK100 = 0x00000100,
daPyFlg0_PUSH_PULL_KEEP = 0x00000800,
daPyFlg0_UNK1000 = 0x00001000,
daPyFlg0_UNK4000 = 0x00004000,
daPyFlg0_UNK10000 = 0x00010000,
daPyFlg0_NO_FALL_VOICE = 0x00040000,
daPyFlg0_SCOPE_CANCEL = 0x00080000,
daPyFlg0_UNK200000 = 0x00200000,
daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000,
daPyFlg0_NO_DRAW = 0x08000000,
daPyFlg0_HEAVY_STATE = 0x40000000,
};
enum daPy_FLG1 {
@@ -204,8 +204,6 @@ public:
void offConfuse() { offNoResetFlg1(daPyFlg1_CONFUSE); }
bool checkConfuse() const { return checkNoResetFlg1(daPyFlg1_CONFUSE); }
bool checkFreezeState() const { return checkNoResetFlg1(daPyFlg1_FREEZE_STATE); }
void onShipTact() { onNoResetFlg1(daPyFlg1_SHIP_TACT); }
void offShipTact() { offNoResetFlg1(daPyFlg1_SHIP_TACT); }
void onUseArrowEffect() { onNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); }
void offUseArrowEffect() { offNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); }
void onLetterReadEyeMove() { onNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE); }
+39 -9
View File
@@ -2038,7 +2038,6 @@ public:
BOOL procCutExMJ();
BOOL procCutKesa_init();
BOOL procCutKesa();
void checkNoControll() const;
J3DAnmTevRegKey* getBombBrk() { return mpBombBrk; }
J3DAnmTextureSRTKey* getIceArrowBtk() { return mpIceArrowBtk; }
@@ -2052,6 +2051,22 @@ public:
s16 checkTinkleShield() const { return mTinkleShieldTimer; }
void setTinkleShield(s16 time) { mTinkleShieldTimer = time; }
bool checkNoDamageMode() const { return checkEquipDragonShield() || checkTinkleShield() != 0; }
void onShipTact() { onNoResetFlg1(daPyFlg1_SHIP_TACT); }
void offShipTact() { offNoResetFlg1(daPyFlg1_SHIP_TACT); }
void checkShipGetOff() {}
void onShipDrop(s16) {}
void checkCarryActionNow() const {}
void checkNoControll() const {}
void clearDamageWait() {}
void exchangeGrabActor(fopAc_ac_c*) {}
void getDekuLeafWindPos() const {}
void getIceParticleBtk() {}
void getIceWaterParticleBtk() {}
void getShadowID() const {}
void npcStartRestartRoom() {}
void offModeFlg(u32) {}
void setDaiokutaEnd() {}
void setWhirlId(unsigned int) {}
int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; }
int getStartMode() { return (fopAcM_GetParam(this) >> 0x0C) & 0xF; }
@@ -2073,7 +2088,7 @@ public:
virtual BOOL getBokoFlamePos(cXyz*);
virtual BOOL checkTactWait() const { return mCurProcID == PROC_TACT_WAIT_e; }
virtual void setTactZev(unsigned int, int, char*);
virtual void onDekuSpReturnFlg(u8);
virtual void onDekuSpReturnFlg(u8 i_point);
virtual bool checkComboCutTurn() const;
virtual f32 getBaseAnimeFrameRate() { return mFrameCtrlUnder[0].getRate(); }
virtual f32 getBaseAnimeFrame() { return mFrameCtrlUnder[0].getFrame(); }
@@ -2255,8 +2270,8 @@ public:
/* 0x34BD */ u8 mLastUsedEquipItem;
/* 0x34BE */ u8 m34BE;
/* 0x34BF */ s8 mReverb;
/* 0x34C0 */ u8 m34C0;
/* 0x34C1 */ u8 m34C1;
/* 0x34C0 */ u8 mLeftHandIdx;
/* 0x34C1 */ u8 mRightHandIdx;
/* 0x34C2 */ u8 m34C2;
/* 0x34C3 */ u8 m34C3;
/* 0x34C4 */ u8 m34C4;
@@ -2266,7 +2281,7 @@ public:
/* 0x34C8 */ u8 mPressedButtonsBitfield;
/* 0x34C9 */ u8 m34C9;
/* 0x34CA */ u8 m34CA;
/* 0x34CB */ u8 m34CB;
/* 0x34CB */ u8 mDekuSpRestartPoint;
/* 0x34CC */ u8 m34CC[0x34D0 - 0x34CC];
/* 0x34D0 */ s16 m34D0;
/* 0x34D2 */ s16 m34D2;
@@ -2351,7 +2366,7 @@ public:
/* 0x3588 */ u8 m3588[0x358C - 0x3588];
/* 0x358C */ int mStaffIdx;
/* 0x3590 */ int mEventIdx;
/* 0x3594 */ int m3594;
/* 0x3594 */ int mRestartPoint;
/* 0x3598 */ f32 m3598;
/* 0x359C */ u8 m359C[0x35A0 - 0x359C];
/* 0x35A0 */ f32 m35A0;
@@ -2429,10 +2444,25 @@ public:
struct ProcInitTableEntry {
/* 0x00 */ ProcFunc mProcFunc;
/* 0x0C */ u32 mProcFlags;
};
}; // Size: 0x10
static ProcInitTableEntry mProcInitTable[];
static ProcInitTableEntry mProcInitTable[0xDB];
static ProcFunc mDemoProcInitFuncTable[0x4B];
static ProcFunc mDemoProcInitFuncTable[];
struct TexAnmTableEntry {
/* 0x00 */ u16 mBtpIdx;
/* 0x04 */ u16 mBtkIdx;
}; // Size: 0x04
static const TexAnmTableEntry mTexAnmIndexTable[];
struct AnmDataTableEntry {
/* 0x00 */ u16 mUpperBckIdx;
/* 0x02 */ u16 mUnderBckIdx;
/* 0x04 */ u8 mLeftHandIdx;
/* 0x05 */ u8 mRightHandIdx;
/* 0x06 */ u16 mTexAnmIdx;
}; // Size: 0x08
static const AnmDataTableEntry mAnmDataTable[];
}; // Size: 0x4C28
#endif /* D_A_PLAYER_MAIN */
File diff suppressed because it is too large Load Diff
+9 -7
View File
@@ -47,18 +47,20 @@ namespace daTagRet {
struct Act_c : public fopAc_ac_c {
public:
enum Prm_e {
PRM_PLAYER_ID_W = 8,
PRM_PLAYER_ID_S = 0,
PRM_LINK_ID_W = 8,
PRM_LINK_ID_S = 0,
};
s32 _create();
bool _delete();
void set_mtx();
bool _execute();
bool _draw();
u32 prm_get_linkID() const { return daObj::PrmAbstract(this, PRM_LINK_ID_W, PRM_LINK_ID_S); }
public:
u8 unknown_padding[0xC];
/* 0x290 */ u8 m290[0x29C - 0x290];
/* 0x29C */ dCcD_Stts mStts;
/* 0x2D8 */ dCcD_Cyl mCyl;
};
@@ -98,8 +100,8 @@ namespace daTagRet {
dComIfG_Ccsp()->Set(&mCyl);
if (mCyl.ChkCoHit()) {
u32 playerId = daObj::PrmAbstract(this, PRM_PLAYER_ID_W, PRM_PLAYER_ID_S);
daPy_getPlayerLinkActorClass()->onDekuSpReturnFlg(playerId);
u32 linkId = prm_get_linkID();
daPy_getPlayerLinkActorClass()->onDekuSpReturnFlg(linkId);
}
set_mtx();
+1 -2
View File
@@ -1103,7 +1103,6 @@ BOOL dComIfGs_checkSeaLandingEvent(s8 i_roomNo) {
}
/* 800548FC-80054C70 .text dComIfGs_setGameStartStage__Fv */
// NONMATCHING - one tiny reg swap
void dComIfGs_setGameStartStage() {
struct check_data {
/* 0x0 */ u8 mbHasEvent;
@@ -1148,7 +1147,7 @@ void dComIfGs_setGameStartStage() {
dKy_set_nexttime(120.0f);
} else if (stage_type == 7) {
daPy_lk_c* player_p = daPy_getPlayerLinkActorClass();
point = player_p->m3594;
point = player_p->mRestartPoint;
s8 temp_r3 = player_p->current.roomNo;
room_no = temp_r3;