all d_ovlp_fade done (#2031)

* ovlp_fade / ovlp_fade2 done

* ovlp_fade3 done

* remove asm
This commit is contained in:
TakaRikka
2024-01-13 01:46:47 -08:00
committed by GitHub
parent 4bd825e76c
commit 6260020b3e
44 changed files with 1017 additions and 2436 deletions
+2 -1
View File
@@ -65,7 +65,7 @@ public:
static JFWDisplay* getManager() { return sManager; }
int startFadeOut(int param_0) {
bool startFadeOut(int param_0) {
if (mFader != NULL) {
return mFader->startFadeOut(param_0);
}
@@ -86,6 +86,7 @@ public:
void setDrawDoneMethod(EDrawDone drawDone) { mDrawDoneMethod = drawDone; }
void setFader(JUTFader* fader) { mFader = fader; }
JUTFader* getFader() const { return mFader; }
void setClearColor(JUtility::TColor color) { mClearColor = color; }
static JFWDisplay* sManager;
+7 -2
View File
@@ -401,8 +401,9 @@ public:
s8 getNextStageLayer() { return mNextStage.getLayer(); }
s16 getNextStagePoint() { return mNextStage.getPoint(); }
s8 getNextStageWipe() { return mNextStage.getWipe(); }
bool isEnableNextStage() { return mNextStage.isEnable(); }
BOOL isEnableNextStage() { return mNextStage.isEnable(); }
void offEnableNextStage() { mNextStage.offEnable(); }
u8 getNextStageWipeSpeed() { return mNextStage.getWipeSpeed(); }
void setNextStage(const char* stage, s8 roomNo, s16 point, s8 layer, s8 wipe, u8 wipe_speed) {
mNextStage.set(stage, roomNo, point, layer, wipe, wipe_speed);
}
@@ -2145,10 +2146,14 @@ inline s32 dComIfGp_getNextStageWipe() {
return g_dComIfG_gameInfo.play.getNextStageWipe();
}
inline bool dComIfGp_isEnableNextStage() {
inline BOOL dComIfGp_isEnableNextStage() {
return g_dComIfG_gameInfo.play.isEnableNextStage();
}
inline u8 dComIfGp_getNextStageWipeSpeed() {
return g_dComIfG_gameInfo.play.getNextStageWipeSpeed();
}
inline s16 dComIfGp_getNextStagePoint() {
return g_dComIfG_gameInfo.play.getNextStagePoint();
}
+5
View File
@@ -33,6 +33,11 @@ public:
virtual void draw();
};
class dDlst_snapShot_c : public dDlst_base_c {
public:
/* 80252ED4 */ virtual void draw();
};
class dDlst_effectLine_c : public dDlst_base_c {
public:
/* 80053E9C */ virtual void draw();
+2 -1
View File
@@ -890,8 +890,9 @@ public:
}
void set(const char*, s8, s16, s8, s8, u8);
void offEnable() { enabled = 0; }
s8 isEnable() const { return enabled; }
BOOL isEnable() const { return enabled; }
s8 getWipe() const { return wipe; }
u8 getWipeSpeed() const { return wipe_speed; }
private:
s8 enabled;
+39 -1
View File
@@ -1,6 +1,44 @@
#ifndef D_OVLP_D_OVLP_FADE2_H
#define D_OVLP_D_OVLP_FADE2_H
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_overlap_mng.h"
class dOvlpFd2_dlst_c : public dDlst_base_c {
public:
/* 8025247C */ virtual void draw();
/* 80252E8C */ virtual ~dOvlpFd2_dlst_c() {}
MtxP getMtx() { return mMtx; }
void entry() { dComIfGd_set2DXlu(this); }
/* 0x4 */ Mtx mMtx;
};
class dOvlpFd2_c : public overlap_task_class {
public:
/* 80252990 */ dOvlpFd2_c();
/* 802529F4 */ void execFirstSnap();
/* 80252A78 */ void execFadeOut();
/* 80252BC0 */ void execNextSnap();
/* 80252C68 */ void execFadeIn();
inline void draw();
inline void execute();
typedef void (dOvlpFd2_c::*executeFn)();
void setExecute(executeFn i_func) { mExecuteFn = i_func; }
/* 0x0CC */ executeFn mExecuteFn;
/* 0x0D8 */ dDlst_snapShot_c mSnapshot_c;
/* 0x0DC */ dOvlpFd2_dlst_c mDlst_c;
/* 0x110 */ s16 field_0x110;
/* 0x112 */ s16 field_0x112;
/* 0x114 */ s16 field_0x114;
/* 0x118 */ f32 field_0x118;
/* 0x11C */ u8 field_0x11c;
/* 0x11D */ s8 mTimer;
/* 0x11E */ u8 field_0x11e;
};
#endif /* D_OVLP_D_OVLP_FADE2_H */
+40 -1
View File
@@ -1,6 +1,45 @@
#ifndef D_OVLP_D_OVLP_FADE3_H
#define D_OVLP_D_OVLP_FADE3_H
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_overlap_mng.h"
class dOvlpFd3_dlst_c : public dDlst_base_c {
public:
/* 80252F28 */ virtual void draw();
/* 802538E8 */ virtual ~dOvlpFd3_dlst_c() {}
MtxP getMtx() { return mMtx; }
void entry() { dComIfGd_set2DXlu(this); }
/* 0x4 */ Mtx mMtx;
};
class dOvlpFd3_c : public overlap_task_class {
public:
/* 8025343C */ dOvlpFd3_c();
/* 80253518 */ void execFirstSnap();
/* 802535AC */ void execFadeOut();
/* 8025368C */ void execNextSnap();
/* 80253730 */ void execFadeIn();
inline void draw();
inline void execute();
typedef void (dOvlpFd3_c::*executeFn)();
void setExecute(executeFn i_func) { mExecuteFn = i_func; }
/* 0x0CC */ executeFn mExecuteFn;
/* 0x0D8 */ dDlst_snapShot_c mSnapshot_c;
/* 0x0DC */ dOvlpFd3_dlst_c mDlst_c;
/* 0x110 */ s16 field_0x110;
/* 0x112 */ s16 field_0x112;
/* 0x114 */ s16 field_0x114;
/* 0x118 */ f32 field_0x118;
/* 0x11C */ u8 field_0x11c;
/* 0x11D */ s8 mTimer;
/* 0x11E */ u8 field_0x11e;
/* 0x11F */ u8 field_0x11f;
};
#endif /* D_OVLP_D_OVLP_FADE3_H */
+231
View File
@@ -7,9 +7,21 @@
class mDoDvdThd_mountXArchive_c;
class mDoDvdThd_toMainRam_c;
class dScnPly_reg_childHIO_c {
public:
/* 0x00 */ void* vtable;
/* 0x04 */ f32 mFloatReg[30];
/* 0x7C */ s16 mShortReg[10];
};
class dScnPly_reg_HIO_c {
public:
/* 8025AD78 */ virtual ~dScnPly_reg_HIO_c();
#ifdef DEBUG
/* 0x4 */ u8 field_0x4[0x8 - 0x4];
/* 0x8 */ dScnPly_reg_childHIO_c mChildReg[26];
#endif
};
class mDoHIO_entry_c {
@@ -79,5 +91,224 @@ public:
};
extern u8 g_envHIO[68];
extern u8 g_regHIO[4];
/**
* === Register Usage ===
* Short Reg(00-09) ... -32768 - +32768
* Float Reg(00-19) ... -100000.0 - +100000.0
* Float Reg(20-24) ... 0.0 - 1.0
* Float Reg(25-29) ... -1.0 - +1.0
*/
#ifdef DEBUG
// Morita
#define TREG_F(i) g_regHIO.mChildReg[0].mFloatReg[i]
#define TREG_S(i) g_regHIO.mChildReg[0].mShortReg[i]
// Matsutani
#define DREG_F(i) g_regHIO.mChildReg[1].mFloatReg[i]
#define DREG_S(i) g_regHIO.mChildReg[1].mShortReg[i]
// Iwawaki
#define IREG_F(i) g_regHIO.mChildReg[2].mFloatReg[i]
#define IREG_S(i) g_regHIO.mChildReg[2].mShortReg[i]
// Sasa
#define SREG_F(i) g_regHIO.mChildReg[3].mFloatReg[i]
#define SREG_S(i) g_regHIO.mChildReg[3].mShortReg[i]
// Umemiya
#define UREG_F(i) g_regHIO.mChildReg[4].mFloatReg[i]
#define UREG_S(i) g_regHIO.mChildReg[4].mShortReg[i]
// Ogawa
#define OREG_F(i) g_regHIO.mChildReg[5].mFloatReg[i]
#define OREG_S(i) g_regHIO.mChildReg[5].mShortReg[i]
// Sakaguchi
#define YREG_F(i) g_regHIO.mChildReg[6].mFloatReg[i]
#define YREG_S(i) g_regHIO.mChildReg[6].mShortReg[i]
// Sakai
#define KREG_F(i) g_regHIO.mChildReg[7].mFloatReg[i]
#define KREG_S(i) g_regHIO.mChildReg[7].mShortReg[i]
// Hara
#define BREG_F(i) g_regHIO.mChildReg[8].mFloatReg[i]
#define BREG_S(i) g_regHIO.mChildReg[8].mShortReg[i]
// Sumiyoshi
#define MREG_F(i) g_regHIO.mChildReg[9].mFloatReg[i]
#define MREG_S(i) g_regHIO.mChildReg[9].mShortReg[i]
// Takeshita
#define AREG_F(i) g_regHIO.mChildReg[10].mFloatReg[i]
#define AREG_S(i) g_regHIO.mChildReg[10].mShortReg[i]
// Yoshida
#define PREG_F(i) g_regHIO.mChildReg[11].mFloatReg[i]
#define PREG_S(i) g_regHIO.mChildReg[11].mShortReg[i]
// Noma
#define NREG_F(i) g_regHIO.mChildReg[12].mFloatReg[i]
#define NREG_S(i) g_regHIO.mChildReg[12].mShortReg[i]
// Nishiwaki
#define WREG_F(i) g_regHIO.mChildReg[13].mFloatReg[i]
#define WREG_S(i) g_regHIO.mChildReg[13].mShortReg[i]
// Masaro
#define JREG_F(i) g_regHIO.mChildReg[14].mFloatReg[i]
#define JREG_S(i) g_regHIO.mChildReg[14].mShortReg[i]
// Hayakawa
#define HREG_F(i) g_regHIO.mChildReg[15].mFloatReg[i]
#define HREG_S(i) g_regHIO.mChildReg[15].mShortReg[i]
// Sadamoto
#define VREG_F(i) g_regHIO.mChildReg[16].mFloatReg[i]
#define VREG_S(i) g_regHIO.mChildReg[16].mShortReg[i]
// Nishikawa
#define XREG_F(i) g_regHIO.mChildReg[17].mFloatReg[i]
#define XREG_S(i) g_regHIO.mChildReg[17].mShortReg[i]
// Suzuki
#define ZREG_F(i) g_regHIO.mChildReg[18].mFloatReg[i]
#define ZREG_S(i) g_regHIO.mChildReg[18].mShortReg[i]
// Nakanishi
#define nREG_F(i) g_regHIO.mChildReg[19].mFloatReg[i]
#define nREG_S(i) g_regHIO.mChildReg[19].mShortReg[i]
// Kuwajima
#define kREG_F(i) g_regHIO.mChildReg[20].mFloatReg[i]
#define kREG_S(i) g_regHIO.mChildReg[20].mShortReg[i]
// Okajima
#define oREG_F(i) g_regHIO.mChildReg[21].mFloatReg[i]
#define oREG_S(i) g_regHIO.mChildReg[21].mShortReg[i]
// Yamazaki
#define yREG_F(i) g_regHIO.mChildReg[22].mFloatReg[i]
#define yREG_S(i) g_regHIO.mChildReg[22].mShortReg[i]
// Ashida
#define aREG_F(i) g_regHIO.mChildReg[23].mFloatReg[i]
#define aREG_S(i) g_regHIO.mChildReg[23].mShortReg[i]
// Okada
#define hREG_F(i) g_regHIO.mChildReg[24].mFloatReg[i]
#define hREG_S(i) g_regHIO.mChildReg[24].mShortReg[i]
// Takahashi
#define tREG_F(i) g_regHIO.mChildReg[25].mFloatReg[i]
#define tREG_S(i) g_regHIO.mChildReg[25].mShortReg[i]
#else
// Morita
#define TREG_F(i)
#define TREG_S(i)
// Matsutani
#define DREG_F(i)
#define DREG_S(i)
// Iwawaki
#define IREG_F(i)
#define IREG_S(i)
// Sasa
#define SREG_F(i)
#define SREG_S(i)
// Umemiya
#define UREG_F(i)
#define UREG_S(i)
// Ogawa
#define OREG_F(i)
#define OREG_S(i)
// Sakaguchi
#define YREG_F(i)
#define YREG_S(i)
// Sakai
#define KREG_F(i)
#define KREG_S(i)
// Hara
#define BREG_F(i)
#define BREG_S(i)
// Sumiyoshi
#define MREG_F(i)
#define MREG_S(i)
// Takeshita
#define AREG_F(i)
#define AREG_S(i)
// Yoshida
#define PREG_F(i)
#define PREG_S(i)
// Noma
#define NREG_F(i)
#define NREG_S(i)
// Nishiwaki
#define WREG_F(i)
#define WREG_S(i)
// Masaro
#define JREG_F(i)
#define JREG_S(i)
// Hayakawa
#define HREG_F(i)
#define HREG_S(i)
// Sadamoto
#define VREG_F(i)
#define VREG_S(i)
// Nishikawa
#define XREG_F(i)
#define XREG_S(i)
// Suzuki
#define ZREG_F(i)
#define ZREG_S(i)
// Nakanishi
#define nREG_F(i)
#define nREG_S(i)
// Kuwajima
#define kREG_F(i)
#define kREG_S(i)
// Okajima
#define oREG_F(i)
#define oREG_S(i)
// Yamazaki
#define yREG_F(i)
#define yREG_S(i)
// Ashida
#define aREG_F(i)
#define aREG_S(i)
// Okada
#define hREG_F(i)
#define hREG_S(i)
// Takahashi
#define tREG_F(i)
#define tREG_S(i)
#endif
#endif /* D_S_D_S_PLAY_H */
+5
View File
@@ -154,6 +154,11 @@ inline void GXPosition2s8(s8 x, s8 y) {
GFX_FIFO(s8) = y;
}
inline void GXPosition2s16(s16 x, s16 y) {
GFX_FIFO(s16) = x;
GFX_FIFO(s16) = y;
}
inline void i_GXPosition3s16(s16 x, s16 y, s16 z) {
GFX_FIFO(s16) = x;
GFX_FIFO(s16) = y;
+15
View File
@@ -1,7 +1,22 @@
#ifndef F_F_OP_OVERLAP_H_
#define F_F_OP_OVERLAP_H_
#include "f_pc/f_pc_leaf.h"
class overlap_task_class : public leafdraw_class {
public:
/* 0xC0 */ leafdraw_method_class* field_0xc0;
/* 0xC4 */ u8 field_0xc4; // used as both u8 and request_base_class* ??
/* 0xC8 */ int field_0xc8;
}; // Size: 0xCC
struct overlap_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ leafdraw_method_class* mSubMtd;
}; // Size: 0x28
static s32 fopOvlp_Draw(void* param_1);
extern leafdraw_method_class g_fopOvlp_Method;
#endif
+2 -14
View File
@@ -1,23 +1,11 @@
#ifndef F_F_OP_OVERLAP_MNG_H_
#define F_F_OP_OVERLAP_MNG_H_
#include "f_pc/f_pc_leaf.h"
#include "f_op/f_op_overlap.h"
#include "f_pc/f_pc_manager.h"
struct request_base_class;
class overlap_task_class : public leafdraw_class {
public:
/* 0xC0 */ leafdraw_method_class* field_0xc0;
/* 0xC4 */ u8 field_0xc4; // used as both u8 and request_base_class* ??
/* 0xC8 */ int field_0xc8;
}; // Size: 0xD8?
struct overlap_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ leafdraw_method_class* mSubMtd;
}; // Size: 0x28
int fopOvlpM_SceneIsStop();
int fopOvlpM_SceneIsStart();
void fopOvlpM_Management();
+2
View File
@@ -34,6 +34,8 @@ s32 mDoAud_load1stDynamicWave();
static void mDoAud_setLinkGroupInfo(u8 param_0);
static void mDoAud_setLinkHp(s32 param_0, s32 param_1);
static void mDoAud_seStartLevel(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3);
void mDoAud_setFadeInStart(u8 param_0);
void mDoAud_setFadeOutStart(u8 param_0);
inline void mDoAud_bgmSetSwordUsing(s32 id) {
Z2AudioMgr::getInterface()->bgmSetSwordUsing(id);