diff --git a/include/f/f_pc/f_pc_searcher.h b/include/f/f_pc/f_pc_searcher.h index 30f743b3f6a..3c61a35994c 100644 --- a/include/f/f_pc/f_pc_searcher.h +++ b/include/f/f_pc/f_pc_searcher.h @@ -7,8 +7,8 @@ extern "C" { -void* fpcSch_JudgeForPName(base_process_class* pProc, void* pUserData); -void* fpcSch_JudgeByID(base_process_class* pProc, void* pUserData); +void* fpcSch_JudgeForPName(void* pProc, void* pUserData); +void* fpcSch_JudgeByID(void* pProc, void* pUserData); }; #endif diff --git a/include/mwcc.h b/include/mwcc.h index c353c7ed9b6..79d6e536ba2 100644 --- a/include/mwcc.h +++ b/include/mwcc.h @@ -18,7 +18,6 @@ void _savegpr_26(void); void _savegpr_27(void); void _savegpr_28(void); void _savegpr_29(void); - void _restgpr_14(void); void _restgpr_15(void); void _restgpr_16(void); @@ -35,13 +34,11 @@ void _restgpr_26(void); void _restgpr_27(void); void _restgpr_28(void); void _restgpr_29(void); - void _savefpr_25(void); void _savefpr_26(void); void _savefpr_27(void); void _savefpr_28(void); void _savefpr_29(void); - void _restfpr_25(void); void _restfpr_26(void); void _restfpr_27(void); diff --git a/src/f/f_op/f_op_scene_mng.cpp b/src/f/f_op/f_op_scene_mng.cpp index cecabc5746c..31508686d90 100644 --- a/src/f/f_op/f_op_scene_mng.cpp +++ b/src/f/f_op/f_op_scene_mng.cpp @@ -2,6 +2,7 @@ #include "f/f_op/f_op_scene_mng.h" #include "f/f_op/f_op_scene_iter.h" +#include "f/f_pc/f_pc_searcher.h" #include "global.h" // additional symbols needed for f_op_scene_mng.cpp @@ -16,7 +17,6 @@ void fopScnM_SearchByID(void); void fopScnRq_Handler(void); void fopScnRq_ReRequest(void); void fopScnRq_Request(void); -void fpcSch_JudgeByID(void); void fopScnIt_Judge__FPFPvPv_PvPv(void); } @@ -24,16 +24,11 @@ void fopScnIt_Judge__FPFPvPv_PvPv(void); // autogenerated by split.py v0.4 at 2021-02-13 20:33:37.409412 extern u8 lbl_804505B8; -// fopScnM_SearchByID__FUi -// fopScnM_SearchByID(unsigned int) -// void* fopScnM_SearchByID(unsigned int id) { -// unsigned int tmp = id + 8; -// return fopScnIt_Judge((fop_ScnItFunc)fpcSch_JudgeByID, (void*)tmp); -// } - -asm void* fopScnM_SearchByID(unsigned int) { - nofralloc -#include "f/f_op_scene_mng/asm/func_8001ECB0.s" +// matches but is proabably wrong +void* fopScnM_SearchByID(unsigned int id) { + unsigned int local_8[2]; + local_8[0] = id; + return fopScnIt_Judge(fpcSch_JudgeByID, (void*)local_8); } extern "C" { diff --git a/src/f/f_pc/f_pc_searcher.cpp b/src/f/f_pc/f_pc_searcher.cpp index 04f196553f4..bc6ac378a20 100644 --- a/src/f/f_pc/f_pc_searcher.cpp +++ b/src/f/f_pc/f_pc_searcher.cpp @@ -2,16 +2,16 @@ #include "f/f_pc/f_pc_searcher.h" #include "f/f_pc/f_pc_base.h" -void* fpcSch_JudgeForPName(base_process_class* pProc, void* pUserData) { +void* fpcSch_JudgeForPName(void* pProc, void* pUserData) { s16 pname = *(s16*)pUserData; - if (pProc->mProcName == pname) + if (((base_process_class*)pProc)->mProcName == pname) return pProc; return NULL; } -void* fpcSch_JudgeByID(base_process_class* pProc, void* pUserData) { +void* fpcSch_JudgeByID(void* pProc, void* pUserData) { s32 id = *(s32*)pUserData; - if (pProc->mBsPcId == id) + if (((base_process_class*)pProc)->mBsPcId == id) return pProc; return NULL; } \ No newline at end of file