summaryrefslogtreecommitdiff
path: root/src/f_op/f_op_overlap.cpp
blob: 9c79c0ff2ee63cc2140973a401bfccc3ffa2236c (plain)
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
/**
 * f_op_overlap.cpp
 * Overlap Process Framework
 */

#include "SSystem/SComponent/c_request.h"
#include "f_op/f_op_overlap.h"
#include "f_op/f_op_overlap_mng.h"
#include "f_pc/f_pc_manager.h"

static s32 fopOvlp_Draw(void* i_ovlp) {
    overlap_task_class* i_this = (overlap_task_class*)i_ovlp;
    return fpcLf_DrawMethod((leafdraw_method_class*)i_this->sub_method, i_this);
}

static s32 fopOvlp_Execute(void* i_ovlp) {
    overlap_task_class* i_this = (overlap_task_class*)i_ovlp;
    return fpcMtd_Execute((process_method_class*)i_this->sub_method, i_this);
}

static s32 fopOvlp_IsDelete(void* i_ovlp) {
    overlap_task_class* i_this = (overlap_task_class*)i_ovlp;
    return fpcMtd_IsDelete((process_method_class*)i_this->sub_method, i_this);
}

static s32 fopOvlp_Delete(void* i_ovlp) {
    overlap_task_class* i_this = (overlap_task_class*)i_ovlp;
    return fpcMtd_Delete((process_method_class*)i_this->sub_method, i_this);
}

static cPhs_State fopOvlp_Create(void* i_ovlp) {
    overlap_task_class* i_this = (overlap_task_class*)i_ovlp;

    if (fpcM_IsFirstCreating(i_this)) {
        overlap_process_profile_definition* profile = (overlap_process_profile_definition*)fpcM_GetProfile(i_this);

        cReq_Create(&i_this->mRq, 1);
        i_this->sub_method = profile->sub_method;
        i_this->mScenePId = fpcM_ERROR_PROCESS_ID_e;
    }

    return fpcMtd_Create((process_method_class*)i_this->sub_method, i_this);
}

leafdraw_method_class g_fopOvlp_Method = {
    (process_method_func)fopOvlp_Create,
    (process_method_func)fopOvlp_Delete,
    (process_method_func)fopOvlp_Execute,
    (process_method_func)fopOvlp_IsDelete,
    (process_method_func)fopOvlp_Draw,
};