summaryrefslogtreecommitdiff
path: root/src/d/d_ovlp_fade.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2023-10-13 19:22:57 -0700
committerJasper St. Pierre <jstpierre@mecheye.net>2023-10-13 19:22:57 -0700
commita5641b0ba9e6222749fbc78307943b83db618c93 (patch)
tree07331d4fe4f335491c3a6423fc9a9793e033ec61 /src/d/d_ovlp_fade.cpp
parentccad35b7c2701850e4db3de78f393c6a2e560f58 (diff)
f_op_overlap cleanup, d_ovlp_fade progress
remove a bunch of externs
Diffstat (limited to 'src/d/d_ovlp_fade.cpp')
-rw-r--r--src/d/d_ovlp_fade.cpp160
1 files changed, 142 insertions, 18 deletions
diff --git a/src/d/d_ovlp_fade.cpp b/src/d/d_ovlp_fade.cpp
index 10b5a441..b94b879f 100644
--- a/src/d/d_ovlp_fade.cpp
+++ b/src/d/d_ovlp_fade.cpp
@@ -3,46 +3,170 @@
// Translation Unit: d_ovlp_fade.cpp
//
-#include "d_ovlp_fade.h"
-#include "dolphin/types.h"
+#include "f_op/f_op_overlap.h"
+#include "f_op/f_op_overlap_mng.h"
+#include "f_pc/f_pc_manager.h"
+#include "d/d_procname.h"
+#include "m_Do/m_Do_graphic.h"
+
+class overlap1_class : public overlap_task_class {
+public:
+ /* 0xCC */ s32 mFadeOutTime;
+ /* 0xD0 */ s32 mFadeInTime;
+};
+
+BOOL (*dOvlpFd_execute_f)(overlap1_class*);
/* 802235CC-802235D4 .text dOvlpFd_Draw__FP14overlap1_class */
-void dOvlpFd_Draw(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_Draw(overlap1_class* i_this) {
+ return TRUE;
}
/* 802235D4-802236AC .text dOvlpFd_FadeOut__FP14overlap1_class */
-void dOvlpFd_FadeOut(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_FadeOut(overlap1_class* i_this) {
+ /* Nonmatching - extra comparisons */
+ if (i_this->mFadeOutTime == 0) {
+ if (fpcM_GetProfName(i_this) != PROC_OVERLAP6) {
+ if (!mDoGph_gInf_c::startFadeIn(26))
+ return TRUE;
+ i_this->mFadeOutTime = 26;
+ } else {
+ if (mDoGph_gInf_c::startFadeIn(0))
+ return TRUE;
+ i_this->mFadeOutTime = 1;
+ }
+ }
+
+ fopOvlpM_SceneIsStart();
+ if (--i_this->mFadeOutTime == 0) {
+ fopOvlpM_Done(i_this);
+ i_this->mFadeOutTime++;
+ }
+
+ return TRUE;
}
/* 802236AC-802236E4 .text dOvlpFd_Wait__FP14overlap1_class */
-void dOvlpFd_Wait(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_Wait(overlap1_class* i_this) {
+ if (fopOvlpM_IsOutReq(i_this))
+ dOvlpFd_execute_f = dOvlpFd_FadeOut;
+ return TRUE;
}
/* 802236E4-802237A4 .text dOvlpFd_FadeIn__FP14overlap1_class */
-void dOvlpFd_FadeIn(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_FadeIn(overlap1_class* i_this) {
+ if (i_this->mFadeInTime == 0) {
+ i_this->mFadeInTime = 26;
+ if (fpcM_GetProfName(i_this) == PROC_OVERLAP0 || fpcM_GetProfName(i_this) == PROC_OVERLAP7) {
+ mDoGph_gInf_c::startFadeOut(26);
+ }
+ }
+
+ if (--i_this->mFadeInTime == 0) {
+ dOvlpFd_execute_f = dOvlpFd_Wait;
+ mDoGph_gInf_c::startFadeOut(0);
+ fopOvlpM_Done(i_this);
+ }
+
+ return TRUE;
}
/* 802237A4-802237D0 .text dOvlpFd_Execute__FP14overlap1_class */
-void dOvlpFd_Execute(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_Execute(overlap1_class* i_this) {
+ dOvlpFd_execute_f(i_this);
+ return TRUE;
}
/* 802237D0-802237D8 .text dOvlpFd_IsDelete__FP14overlap1_class */
-void dOvlpFd_IsDelete(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_IsDelete(overlap1_class* i_this) {
+ return TRUE;
}
/* 802237D8-802237E0 .text dOvlpFd_Delete__FP14overlap1_class */
-void dOvlpFd_Delete(overlap1_class*) {
- /* Nonmatching */
+BOOL dOvlpFd_Delete(overlap1_class* i_this) {
+ return TRUE;
}
/* 802237E0-802237F4 .text dOvlpFd_Create__FPv */
-void dOvlpFd_Create(void*) {
- /* Nonmatching */
+BOOL dOvlpFd_Create(void* i_this) {
+ dOvlpFd_execute_f = dOvlpFd_FadeIn;
+ return cPhs_COMPLEATE_e;
}
+overlap_method_class l_dOvlpFd_Method = {
+ (process_method_func)dOvlpFd_Create,
+ (process_method_func)dOvlpFd_Delete,
+ (process_method_func)dOvlpFd_Execute,
+ (process_method_func)dOvlpFd_IsDelete,
+ (process_method_func)dOvlpFd_Draw,
+};
+
+overlap_process_profile_definition g_profile_OVERLAP0 = {
+ fpcLy_ROOT_e,
+ 0,
+ fpcPi_CURRENT_e,
+ PROC_OVERLAP0,
+ &g_fpcLf_Method.mBase,
+ sizeof(overlap1_class),
+ 0,
+ 0,
+ &g_fopOvlp_Method,
+ 0x1E1,
+ &l_dOvlpFd_Method,
+};
+
+overlap_process_profile_definition g_profile_OVERLAP1 = {
+ fpcLy_ROOT_e,
+ 0,
+ fpcPi_CURRENT_e,
+ PROC_OVERLAP1,
+ &g_fpcLf_Method.mBase,
+ sizeof(overlap1_class),
+ 0,
+ 0,
+ &g_fopOvlp_Method,
+ 0x1E2,
+ &l_dOvlpFd_Method,
+};
+
+overlap_process_profile_definition g_profile_OVERLAP6 = {
+ fpcLy_ROOT_e,
+ 0,
+ fpcPi_CURRENT_e,
+ PROC_OVERLAP6,
+ &g_fpcLf_Method.mBase,
+ sizeof(overlap1_class),
+ 0,
+ 0,
+ &g_fopOvlp_Method,
+ 0x1E7,
+ &l_dOvlpFd_Method,
+};
+
+overlap_process_profile_definition g_profile_OVERLAP7 = {
+ fpcLy_ROOT_e,
+ 0,
+ fpcPi_CURRENT_e,
+ PROC_OVERLAP7,
+ &g_fpcLf_Method.mBase,
+ sizeof(overlap1_class),
+ 0,
+ 0,
+ &g_fopOvlp_Method,
+ 0x1E8,
+ &l_dOvlpFd_Method,
+};
+
+overlap_process_profile_definition g_profile_OVERLAP8 = {
+ fpcLy_ROOT_e,
+ 0,
+ fpcPi_CURRENT_e,
+ PROC_OVERLAP8,
+ &g_fpcLf_Method.mBase,
+ sizeof(overlap1_class),
+ 0,
+ 0,
+ &g_fopOvlp_Method,
+ 0x1E9,
+ &l_dOvlpFd_Method,
+};