From 5d26059b09de73130b2a0c68e1663691594f6a51 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Sat, 27 Mar 2021 23:10:21 -0400 Subject: [PATCH] fopVw_Draw OK --- include/f/f_op/f_op_scene.h | 2 ++ include/f/f_op/f_op_scene_tag.h | 4 ++++ include/f/f_op/f_op_view.h | 13 +++++++++++++ src/f/f_op/f_op_scene.cpp | 22 ++++++++++++++++------ src/f/f_op/f_op_scene_tag.cpp | 2 +- src/f/f_op/f_op_view.cpp | 24 +++++++++--------------- 6 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 include/f/f_op/f_op_view.h diff --git a/include/f/f_op/f_op_scene.h b/include/f/f_op/f_op_scene.h index 0ff9955abf8..964df0008af 100644 --- a/include/f/f_op/f_op_scene.h +++ b/include/f/f_op/f_op_scene.h @@ -2,6 +2,7 @@ #define F_F_OP_SCENE_H_ #include "dolphin/types.h" +#include "f/f_op/f_op_scene_tag.h" #include "f/f_pc/f_pc_node.h" class scene_class { @@ -12,6 +13,7 @@ public: /* 0x02C */ int* field_0x2C; /* 0x030 */ u8 field_0x30[0x17C]; /* 0x1AC */ process_method_class* mpProcessMtd; + /* 0x1B0 */ scene_tag_class* field_0x1b0; }; #endif \ No newline at end of file diff --git a/include/f/f_op/f_op_scene_tag.h b/include/f/f_op/f_op_scene_tag.h index 152c3ff34d5..f19dd425257 100644 --- a/include/f/f_op/f_op_scene_tag.h +++ b/include/f/f_op/f_op_scene_tag.h @@ -5,4 +5,8 @@ class scene_tag_class; +void fopScnTg_QueueTo(scene_tag_class* pSceneTag); +void fopScnTg_ToQueue(scene_tag_class* pSceneTag); +void fopScnTg_Init(scene_tag_class* pSceneTag, void* pData); + #endif \ No newline at end of file diff --git a/include/f/f_op/f_op_view.h b/include/f/f_op/f_op_view.h new file mode 100644 index 00000000000..41ee5697825 --- /dev/null +++ b/include/f/f_op/f_op_view.h @@ -0,0 +1,13 @@ +#ifndef F_F_OP_VIEW_H_ +#define F_F_OP_VIEW_H_ + +#include "dolphin/types.h" +#include "f/f_pc/f_pc_leaf.h" + +class view_class { +public: + /* 0x00 */ u8 field_0x00[0xc0]; + /* 0xC0 */ leafdraw_method_class* pmLeafdrawMtd; +}; + +#endif \ No newline at end of file diff --git a/src/f/f_op/f_op_scene.cpp b/src/f/f_op/f_op_scene.cpp index f6f208ffa3a..0438fce522b 100644 --- a/src/f/f_op/f_op_scene.cpp +++ b/src/f/f_op/f_op_scene.cpp @@ -1,9 +1,10 @@ /* f_op_scene.cpp autogenerated by split.py v0.4 at 2021-02-15 21:09:24.524260 */ -#include "global.h" #include "f/f_op/f_op_scene.h" #include "f/f_op/f_op_scene_pause.h" +#include "f/f_op/f_op_scene_tag.h" #include "f/f_pc/f_pc_node.h" +#include "global.h" // additional symbols needed for f_op_scene.cpp // autogenerated by split.py v0.4 at 2021-02-15 21:09:24.524298 @@ -27,23 +28,32 @@ void fopScn_Create__FPv(void); // autogenerated by split.py v0.4 at 2021-02-15 21:09:24.524304 void fopScn_Draw(scene_class* pScene) { - fpcNd_DrawMethod((nodedraw_method_class*)pScene->mpProcessMtd,pScene); + fpcNd_DrawMethod((nodedraw_method_class*)pScene->mpProcessMtd, pScene); } void fopScn_Execute(scene_class* pScene) { - fpcMtd_Execute(pScene->mpProcessMtd,pScene); + fpcMtd_Execute(pScene->mpProcessMtd, pScene); } s32 fopScn_IsDelete(void* param_1) { - return fpcMtd_IsDelete(((scene_class*)param_1)->mpProcessMtd,param_1); + return fpcMtd_IsDelete(((scene_class*)param_1)->mpProcessMtd, param_1); } -// fopScn_Delete__FPv -// fopScn_Delete(void*) +#ifdef NON_MATCHING +s32 fopScn_Delete(void* param_1) { + scene_class* pScene = (scene_class*)param_1; + s32 ret = fpcMtd_Delete(pScene->mpProcessMtd, param_1); + if (ret == 1) { + fopScnTg_QueueTo(pScene->field_0x1b0); + } + return ret; +} +#else asm void fopScn_Delete(void*) { nofralloc #include "f/f_op/f_op_scene/asm/func_8001EBAC.s" } +#endif // fopScn_Create__FPv // fopScn_Create(void*) diff --git a/src/f/f_op/f_op_scene_tag.cpp b/src/f/f_op/f_op_scene_tag.cpp index ab7c892dbb2..8df6a76a0d4 100644 --- a/src/f/f_op/f_op_scene_tag.cpp +++ b/src/f/f_op/f_op_scene_tag.cpp @@ -17,5 +17,5 @@ void fopScnTg_ToQueue(scene_tag_class* pSceneTag) { } void fopScnTg_Init(scene_tag_class* pSceneTag, void* pData) { - cTg_Create((create_tag_class*)pSceneTag,pData); + cTg_Create((create_tag_class*)pSceneTag, pData); } diff --git a/src/f/f_op/f_op_view.cpp b/src/f/f_op/f_op_view.cpp index 720925e9ebd..679896ad2d2 100644 --- a/src/f/f_op/f_op_view.cpp +++ b/src/f/f_op/f_op_view.cpp @@ -1,5 +1,7 @@ /* f_op_view.cpp autogenerated by split.py v0.4 at 2021-02-15 20:05:33.635938 */ +#include "f/f_op/f_op_view.h" +#include "f/f_pc/f_pc_leaf.h" #include "global.h" // additional symbols needed for f_op_view.cpp @@ -17,42 +19,34 @@ void fopVw_Delete__FP10view_class(void); void fopVw_Create__FPv(void); } -// additional symbols needed for f_op_view.cpp -// autogenerated by split.py v0.4 at 2021-02-15 20:05:33.635984 - -extern "C" { -// fopVw_Draw__FP10view_class -// fopVw_Draw__FP10view_class(view_class*) -asm void fopVw_Draw__FP10view_class(void) { - nofralloc -#include "f/f_op/f_op_view/asm/func_8001F1A8.s" +void fopVw_Draw(view_class* pView) { + fpcLf_DrawMethod(pView->pmLeafdrawMtd, pView); } // fopVw_Execute__FP10view_class // fopVw_Execute(view_class*) -asm void fopVw_Execute__FP10view_class(void) { +asm void fopVw_Execute(view_class*) { nofralloc #include "f/f_op/f_op_view/asm/func_8001F1D0.s" } // fopVw_IsDelete__FPv // fopVw_IsDelete(void*) -asm void fopVw_IsDelete__FPv(void) { +asm void fopVw_IsDelete(void*) { nofralloc #include "f/f_op/f_op_view/asm/func_8001F1F8.s" } // fopVw_Delete__FP10view_class // fopVw_Delete(view_class*) -asm void fopVw_Delete__FP10view_class(void) { +asm void fopVw_Delete(view_class*) { nofralloc #include "f/f_op/f_op_view/asm/func_8001F220.s" } // fopVw_Create__FPv // fopVw_Create(void*) -asm void fopVw_Create__FPv(void) { +asm void fopVw_Create(void*) { nofralloc #include "f/f_op/f_op_view/asm/func_8001F248.s" -} -}; +} \ No newline at end of file