From 73ecd0a14792e9c9a9a984ed22bbd1d66bcc08ca Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Sat, 27 Mar 2021 18:59:57 -0400 Subject: [PATCH] fopMsgM_SearchByID OK --- src/f/f_op/f_op_msg_mng.cpp | 43 +++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/f/f_op/f_op_msg_mng.cpp b/src/f/f_op/f_op_msg_mng.cpp index df430081778..74537fc6961 100644 --- a/src/f/f_op/f_op_msg_mng.cpp +++ b/src/f/f_op/f_op_msg_mng.cpp @@ -7,6 +7,10 @@ #include "f/f_pc/f_pc_stdcreate_req.h" #include "global.h" #include "m_Do/m_Do_ext/m_Do_ext.h" +#include "f/f_op/f_op_scene_mng.h" +#include "f/f_pc/f_pc_node.h" +#include "f/f_pc/f_pc_priority.h" +#include "f/f_pc/f_pc_executor.h" // additional symbols needed for f_op_msg_mng.cpp // autogenerated by split.py v0.4 at 2021-02-15 20:21:51.945228 @@ -45,7 +49,7 @@ void fopMsgM_messageSet__FUlUl(void); void fopMsgM_setMessageID__FUi(void); void fopMsgM_setStageLayer__FPv(void); void fopMsgM_valueIncrease__FiiUc(void); -void fopScnM_SearchByID(void); +// void fopScnM_SearchByID(void); void fop_Timer_create__FsUcUlUcUcffffPFPv_i(void); void fpcEx_SearchByID__FUi(void); void fpcM_Delete__FPv(void); @@ -62,8 +66,8 @@ extern u8 lbl_803A3970; extern u8 lbl_8043028C; extern u8 lbl_80439A20; extern unsigned int i_msgID; -extern u8 lbl_80450D40; -extern u8 lbl_80450D60; +extern int g_fpcNd_type; +extern unsigned int _mProcID; extern u8 lbl_80451C70; extern u8 lbl_80451C74; extern u8 lbl_80451C78; @@ -73,17 +77,38 @@ extern u8 lbl_80451C84; extern u8 lbl_80451C88; extern u8 lbl_80430188; -// fopMsgM_setStageLayer__FPv -// fopMsgM_setStageLayer__FPv(void*) + +#ifdef NON_MATCHING +// 1 instruction off, needs alot of cleanup +void fopMsgM_setStageLayer(void* param_1) { + struct unk { + u8 field_0x00[0xb4]; + int field_0xB4; + u8 field_0xB8[0x10]; + int* field_0xC8; + }; + + int* pUnk; + + unk* pScene = (unk*)fopScnM_SearchByID(_mProcID); + + if (!fpcBs_Is_JustOfType(g_fpcNd_type,pScene->field_0xB4)) { + pUnk = (int*)-1; + } else { + pUnk = pScene->field_0xC8; + } + + fpcPi_Change((process_priority_class*)param_1,(u32)pUnk,0xFFFD,0xFFFD); +} +#else asm void fopMsgM_setStageLayer(void*) { nofralloc #include "f/f_op/f_op_msg_mng/asm/func_8001F9B4.s" } +#endif -// fopMsgM_SearchByID__FUi -// fopMsgM_SearchByID__FUi(unsigned int) -asm void fopMsgM_SearchByID(unsigned int){nofralloc -#include "f/f_op/f_op_msg_mng/asm/func_8001FA24.s" +void fopMsgM_SearchByID(unsigned int id) { + fpcEx_SearchByID(id); } // matches but can be improved