mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-26 00:14:33 -04:00
a290c2d52c
* d_a_npc_ks debug code 100% * d_a_npc_rafrel debug code 100% * d_a_npc_inko minor improvements * d_a_npc_gro debug code 100% * d_a_npc_pachi_taro debug code 100% * d_a_npc_passer debug code 100% * d_a_npc_pachi_maro debug code 100% * d_a_npc_post debug code 100% * d_a_obj_bemos debug improvements * d_a_obj_scannon_ten debug code 100% * d_a_b_mgn debug code 100% * d_a_e_fb debug code 100% * d_a_e_gb debug code 100% * d_a_e_hz debug code 100% * d_a_e_cr_egg debug code 100% * d_a_e_md debug code 100% * d_a_e_wb debug code 100% * d_a_obj_mirror_6pole debug code 100% * d_a_obj_spinLift debug data fixes * d_a_obj_pdwall debug data fixes * d_a_obj_ss_drink debug code almost matching * d_a_obj_poFire debug code 100% * d_a_obj_picture debug code 100% * d_a_obj_dust debug code 100% * d_a_obj_fallobj debug code 100% * d_a_obj_itamato debug code almost matching * d_a_obj_syRock debug code 100% * d_a_obj_katatsumuri debug code 100% * d_a_obj_wood_statue debug code 100% * d_a_obj_lv6egate debug code 100% * d_a_tag_qs minor debug symbol fixes * d_a_obj_twGate debug code 100% * d_a_obj_lv6SwGate debug code 100% * d_a_obj_lv6swturn debug code 100% * d_a_obj_lv6Tenbin debug code 100% * d_a_obj_kwheel01 debug code 100% * Fix RTTI order regression (cM3dGCyl vs cBgS_*)
59 lines
1.7 KiB
C++
59 lines
1.7 KiB
C++
/**
|
|
* f_pc_fstcreate_req.cpp
|
|
* Framework - Process Fast Create Request
|
|
*/
|
|
|
|
#include "f_pc/f_pc_fstcreate_req.h"
|
|
#include "f_pc/f_pc_base.h"
|
|
#include "f_pc/f_pc_layer.h"
|
|
#include "f_pc/f_pc_load.h"
|
|
#include "SSystem/SComponent/c_phase.h"
|
|
|
|
int fpcFCtRq_Do(fast_create_request* i_createReq) {
|
|
if (i_createReq->create_func != NULL &&
|
|
i_createReq->create_func(i_createReq->base.process, i_createReq->data) == 0)
|
|
{
|
|
return cPhs_UNK3_e;
|
|
} else {
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
}
|
|
|
|
int fpcFCtRq_Delete(fast_create_request* i_createReq) {
|
|
return 1;
|
|
}
|
|
|
|
base_process_class* fpcFCtRq_Request(layer_class* i_layer, s16 i_procname,
|
|
fstCreateFunc i_createFunc, void* i_createData, void* i_append) {
|
|
static create_request_method_class submethod = {(cPhs__Handler)fpcFCtRq_Do, NULL,
|
|
(process_method_func)fpcFCtRq_Delete};
|
|
|
|
if (!fpcLd_Use(i_procname)) {
|
|
return NULL;
|
|
}
|
|
|
|
fast_create_request* request =
|
|
(fast_create_request*)fpcCtRq_Create(i_layer, sizeof(fast_create_request), &submethod);
|
|
if (request != NULL) {
|
|
base_process_class* proc;
|
|
fpcLy_SetCurrentLayer(i_layer);
|
|
|
|
proc = fpcBs_Create(i_procname, fpcBs_MakeOfId(), i_append);
|
|
if (proc != NULL) {
|
|
proc->create_req = &request->base;
|
|
request->base.process = proc;
|
|
request->base.id = proc->id;
|
|
|
|
if (fpcBs_SubCreate(proc) == 2) {
|
|
request->create_func = i_createFunc;
|
|
request->data = i_createData;
|
|
return proc;
|
|
}
|
|
}
|
|
|
|
fpcCtRq_Cancel(&request->base);
|
|
}
|
|
|
|
return NULL;
|
|
}
|