1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
/**
* f_pc_base.cpp
* Framework - Process Base
*/
#include "f_pc/f_pc_base.h"
#include "SSystem/SComponent/c_malloc.h"
#include "SSystem/SComponent/c_phase.h"
#include "SSystem/SStandard/s_basic.h"
#include "f_pc/f_pc_layer.h"
#include "f_pc/f_pc_method.h"
#include "f_pc/f_pc_pause.h"
#include "f_pc/f_pc_profile.h"
#include "global.h"
/* 8002064C-8002065C 0010+00 s=0 e=14 z=0 None .text fpcBs_Is_JustOfType__Fii */
s32 fpcBs_Is_JustOfType(int i_typeA, int i_typeB) {
return checkEqual(i_typeA, i_typeB); // return pType2 == pType1 matches when return type is bool
}
/* ############################################################################################## */
/* 80450D00-80450D04 0004+00 s=1 e=0 z=0 None .sbss g_fpcBs_type */
static int g_fpcBs_type;
/* 8002065C-8002069C 0040+00 s=1 e=5 z=0 None .text fpcBs_MakeOfType__FPi */
s32 fpcBs_MakeOfType(int* i_type) {
static s32 t_type = 0x9130000;
if (*i_type == 0) {
*i_type = ++t_type;
}
return *i_type;
}
/* 8002069C-800206C4 0028+00 s=0 e=2 z=0 None .text fpcBs_MakeOfId__Fv */
s32 fpcBs_MakeOfId() {
static s32 process_id = 1;
return process_id++;
}
/* 800206C4-80020720 005C+00 s=0 e=1 z=0 None .text fpcBs_Execute__FP18base_process_class */
s32 fpcBs_Execute(base_process_class* i_proc) {
s32 result;
layer_class* savedLayer = fpcLy_CurrentLayer();
fpcLy_SetCurrentLayer(i_proc->mLyTg.mpLayer);
result = fpcMtd_Execute(i_proc->mpPcMtd, i_proc);
fpcLy_SetCurrentLayer(savedLayer);
return result;
}
/* 80020720-80020760 0040+00 s=2 e=0 z=0 None .text fpcBs_DeleteAppend__FP18base_process_class
*/
void fpcBs_DeleteAppend(base_process_class* i_proc) {
if (i_proc->mpUserData != NULL) {
cMl::free(i_proc->mpUserData);
i_proc->mpUserData = NULL;
}
}
/* 80020760-800207BC 005C+00 s=0 e=1 z=0 None .text fpcBs_IsDelete__FP18base_process_class */
s32 fpcBs_IsDelete(base_process_class* i_proc) {
s32 result;
layer_class* savedLayer = fpcLy_CurrentLayer();
fpcLy_SetCurrentLayer(i_proc->mLyTg.mpLayer);
result = fpcMtd_IsDelete(i_proc->mpPcMtd, i_proc);
fpcLy_SetCurrentLayer(savedLayer);
return result;
}
/* 800207BC-80020820 0064+00 s=0 e=2 z=0 None .text fpcBs_Delete__FP18base_process_class */
s32 fpcBs_Delete(base_process_class* i_proc) {
s32 deleteResult = fpcMtd_Delete(i_proc->mpPcMtd, i_proc);
if (deleteResult == 1) {
fpcBs_DeleteAppend(i_proc);
i_proc->mBsType = 0;
cMl::free(i_proc);
}
return deleteResult;
}
/* 80020820-8002091C 00FC+00 s=0 e=2 z=0 None .text fpcBs_Create__FsUiPv */
base_process_class* fpcBs_Create(s16 i_procTypeID, unsigned int i_procID, void* i_data) {
process_profile_definition* procProfDef;
base_process_class* procClass;
u32 size;
procProfDef = (process_profile_definition*)fpcPf_Get(i_procTypeID);
size = procProfDef->mSize + procProfDef->mSizeOther;
procClass = (base_process_class*)cMl::memalignB(-4, size);
if (procClass == NULL) {
return NULL;
} else {
sBs_ClearArea(procClass, size);
fpcLyTg_Init(&procClass->mLyTg, procProfDef->mLayerID, procClass);
fpcLnTg_Init(&procClass->mLnTg, procClass);
fpcDtTg_Init(&procClass->mDtTg, procClass);
fpcPi_Init(&procClass->mPi, procClass, procProfDef->mLayerID, procProfDef->mListID,
procProfDef->mListPrio);
procClass->mInitState = 0;
procClass->mUnk0 = 0;
procClass->mBsPcId = i_procID;
procClass->mBsTypeId = i_procTypeID;
procClass->mBsType = fpcBs_MakeOfType(&g_fpcBs_type);
procClass->mProcName = procProfDef->mProcName;
fpcPause_Init(procClass);
procClass->mpPcMtd = procProfDef->sub_method;
procClass->mpProf = procProfDef;
procClass->mpUserData = i_data;
procClass->mParameters = procProfDef->mParameters;
return procClass;
}
}
s32 fpcBs_SubCreate(base_process_class* i_proc) {
switch (fpcMtd_Create(i_proc->mpPcMtd, i_proc)) {
case 2:
case cPhs_COMPLEATE_e:
fpcBs_DeleteAppend(i_proc);
i_proc->mUnk2 = 2;
return 2;
case cPhs_INIT_e:
case 1:
i_proc->mInitState = 1;
i_proc->mUnk2 = 0;
return cPhs_INIT_e;
case 3:
i_proc->mUnk2 = 3;
return 3;
case cPhs_ERROR_e:
default:
i_proc->mUnk2 = 5;
return cPhs_ERROR_e;
}
}
|