summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_stdcreate_req.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-03-18 12:45:44 -0700
committerGitHub <noreply@github.com>2025-03-18 15:45:44 -0400
commitd3e9175bfb5ca4fce4633e473d8d8a3556c3d3ef (patch)
tree21a10894e590edebe9cd928a2fb48f4e8d061262 /src/f_pc/f_pc_stdcreate_req.cpp
parent58ba86b6a3cfebe38b643b7ffecf72090a720db0 (diff)
d_a_e_pz equivalent (#2330)
* d_a_e_pz equivalent * rename var * match f_pc closer to debug * hopefully fix decompctx * sdk done * remove unneeded file
Diffstat (limited to 'src/f_pc/f_pc_stdcreate_req.cpp')
-rw-r--r--src/f_pc/f_pc_stdcreate_req.cpp41
1 files changed, 33 insertions, 8 deletions
diff --git a/src/f_pc/f_pc_stdcreate_req.cpp b/src/f_pc/f_pc_stdcreate_req.cpp
index 5c985ace73..80191840e6 100644
--- a/src/f_pc/f_pc_stdcreate_req.cpp
+++ b/src/f_pc/f_pc_stdcreate_req.cpp
@@ -7,16 +7,21 @@
#include "f_pc/f_pc_load.h"
#include "f_pc/f_pc_node.h"
#include "f_pc/f_pc_manager.h"
+#include "f_pc/f_pc_debug_sv.h"
+#include <dolphin.h>
/* 80023B70-80023BC4 0054+00 s=1 e=0 z=5 None .text
* fpcSCtRq_phase_Load__FP29standard_create_request_class */
s32 fpcSCtRq_phase_Load(standard_create_request_class* i_request) {
- switch (fpcLd_Load(i_request->process_name)) {
+ int ret = fpcLd_Load(i_request->process_name);
+
+ switch (ret) {
case cPhs_INIT_e:
return cPhs_INIT_e;
case cPhs_COMPLEATE_e:
return cPhs_NEXT_e;
case cPhs_ERROR_e:
+ OS_REPORT("fpcSCtRq_phase_Load %d\n", i_request->process_name);
default:
return cPhs_ERROR_e;
}
@@ -28,7 +33,9 @@ s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* i_request) {
fpcLy_SetCurrentLayer(i_request->base.layer);
i_request->base.process =
fpcBs_Create(i_request->process_name, i_request->base.id, i_request->process_append);
+
if (i_request->base.process == NULL) {
+ OS_REPORT("fpcSCtRq_phase_CreateProcess %d\n", i_request->process_name);
fpcLd_Free(i_request->process_name);
return cPhs_ERROR_e;
} else {
@@ -41,7 +48,18 @@ s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* i_request) {
* fpcSCtRq_phase_SubCreateProcess__FP29standard_create_request_class */
s32 fpcSCtRq_phase_SubCreateProcess(standard_create_request_class* i_request) {
fpcLy_SetCurrentLayer(i_request->base.layer);
- return fpcBs_SubCreate(i_request->base.process);
+ int ret = fpcBs_SubCreate(i_request->base.process);
+
+#ifdef DEBUG
+ if (ret == 0 && i_request->unk_0x60-- <= 0) {
+ i_request->unk_0x60 = 0;
+ if (g_fpcDbSv_service[0] != NULL) {
+ g_fpcDbSv_service[0](i_request->base.process);
+ }
+ }
+#endif
+
+ return ret;
}
/* 80023C64-80023CBC 0058+00 s=1 e=0 z=14 None .text
@@ -59,13 +77,16 @@ s32 fpcSCtRq_phase_IsComplete(standard_create_request_class* i_request) {
/* 80023CBC-80023D0C 0050+00 s=1 e=0 z=5 None .text
* fpcSCtRq_phase_PostMethod__FP29standard_create_request_class */
s32 fpcSCtRq_phase_PostMethod(standard_create_request_class* i_request) {
- if (i_request->create_post_method != NULL &&
- i_request->create_post_method(i_request->base.process, i_request->unk_0x5C) == 0)
- {
- return cPhs_INIT_e;
- } else {
- return cPhs_NEXT_e;
+ stdCreateFunc create_func = i_request->create_post_method;
+
+ if (create_func != NULL) {
+ int ret = create_func(i_request->base.process, i_request->unk_0x5C);
+ if (ret == 0) {
+ return cPhs_INIT_e;
+ }
}
+
+ return cPhs_NEXT_e;
}
/* 80023D0C-80023D14 0008+00 s=1 e=0 z=0 None .text
@@ -138,5 +159,9 @@ fpc_ProcID fpcSCtRq_Request(layer_class* i_layer, s16 i_procName, stdCreateFunc
request->create_post_method = i_createFunc;
request->unk_0x5C = param_4;
request->process_append = i_append;
+#ifdef DEBUG
+ request->unk_0x60 = 60;
+#endif
+
return request->base.id;
}