diff --git a/include/d/d_msg_object/d_msg_object.h b/include/d/d_msg_object/d_msg_object.h new file mode 100644 index 00000000000..5ed276a3bbd --- /dev/null +++ b/include/d/d_msg_object/d_msg_object.h @@ -0,0 +1,8 @@ +#ifndef D_MSG_OBJECT_H_ +#define D_MSG_OBJECT_H_ + +#include "dolphin/types.h" + +class dMsgObject_c; + +#endif \ No newline at end of file diff --git a/include/f/f_op/f_op_msg_mng.h b/include/f/f_op/f_op_msg_mng.h index e9c0a1723b1..ec02ecbdb5e 100644 --- a/include/f/f_op/f_op_msg_mng.h +++ b/include/f/f_op/f_op_msg_mng.h @@ -6,4 +6,6 @@ #include "dolphin/types.h" #include "f/f_op/f_op_actor.h" +typedef int (*fopMsgCreateFunc)(void*); + #endif \ No newline at end of file diff --git a/src/f/f_op/f_op_msg_mng.cpp b/src/f/f_op/f_op_msg_mng.cpp index 74537fc6961..ba6997887ba 100644 --- a/src/f/f_op/f_op_msg_mng.cpp +++ b/src/f/f_op/f_op_msg_mng.cpp @@ -11,6 +11,7 @@ #include "f/f_pc/f_pc_node.h" #include "f/f_pc/f_pc_priority.h" #include "f/f_pc/f_pc_executor.h" +#include "d/d_msg_object/d_msg_object.h" // additional symbols needed for f_op_msg_mng.cpp // autogenerated by split.py v0.4 at 2021-02-15 20:21:51.945228 @@ -129,7 +130,7 @@ void fopMsgM_Delete(void* pProc) { // createAppend__FP10fopAc_ac_cP4cXyzPUlPUlUi // createAppend(fopAc_ac_c*, cXyz*, u32*, u32*, unsigned int) -asm void createAppend(fopAc_ac_c*, cXyz*, u32*, u32*, unsigned int) { +asm dMsgObject_c** createAppend(fopAc_ac_c*, cXyz*, u32*, u32*, unsigned int) { nofralloc #include "f/f_op/f_op_msg_mng/asm/func_8001FA6C.s" } @@ -141,12 +142,18 @@ asm void createTimerAppend(int, u32, u8, u8, f32, f32, f32, f32, unsigned int) { #include "f/f_op/f_op_msg_mng/asm/func_8001FB50.s" } -// fopMsgM_create__FsP10fopAc_ac_cP4cXyzPUlPUlPFPv_i -// fopMsgM_create__FsP10fopAc_ac_cP4cXyzPUlPUlPFPv_i(s16, fopAc_ac_c*, cXyz*, u32*, u32*, int -// (*)(void*)) -asm void fopMsgM_create(s16, fopAc_ac_c*, cXyz*, u32*, u32*, int (*)(void*)) { - nofralloc -#include "f/f_op/f_op_msg_mng/asm/func_8001FC4C.s" +s32 fopMsgM_create(s16 param_1, fopAc_ac_c* pActor, cXyz* pPosition, u32* param_4, u32* param_5, fopMsgCreateFunc param_6) { + s32 ret; + dMsgObject_c** ppMsg = createAppend(pActor,pPosition,param_4,param_5,-1); + + if (!ppMsg) { + ret = -1; + } else { + layer_class* pLayer = fpcLy_CurrentLayer(); + ret = fpcSCtRq_Request(pLayer,param_1,(stdCreateFunc)param_6,0,ppMsg); + } + + return ret; } // fop_Timer_create__FsUcUlUcUcffffPFPv_i