diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2020-11-30 14:26:55 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-30 17:26:55 -0500 |
| commit | 937da3c59bdc36e6ade59b9ab52ff8acdc71b6de (patch) | |
| tree | b7e90e234641bd93ca6cdb781c27d497af461814 /include/SComponent | |
| parent | 51b0260c808258f2c0b172a80d4b03180cc52e30 (diff) | |
SComponent c_list / c_node (#5)
* SComponent c_list / c_node
* SComponent: c_tree
* SComponent: start c_phase
* SComponent: c_tag
* SComponent: c_counter
* f_pc_line / f_pc_line_tag
the beginnings of the framework process system
* f_pc_method_tag
* SComponent: c_node_iter / c_list_iter / c_tag_iter / c_tree_iter
* f_pc_draw_priority
* f_pc_method_iter
* f_pc_profile
Also add (untested) base header classes for f_pc_base
* f_pc_searcher
* f_pc_create_tag
* f_pc_creator
* f_pc_layer skeleton
* f_pc_method
* f_pc_line_iter
* f_pc_leaf somewhat
* f_pc_delete_tag
* f_pc_create_req
* Fix a few non-matchings
* c_phase: slight additional notes
* c_node: more matching
* fix build
* c_node: One more matching
* f_pc_line_iter: Matching
* f_pc_create_req: a bit more
* f_pc_load, f_pc_deletor partial
* f_pc_executor partial
* f: minor cleanups
* f_pc_executor
Co-authored-by: Pheenoh <pheenoh@gmail.com>
Diffstat (limited to 'include/SComponent')
| -rw-r--r-- | include/SComponent/c_list.h | 24 | ||||
| -rw-r--r-- | include/SComponent/c_list_iter.h | 15 | ||||
| -rw-r--r-- | include/SComponent/c_node.h | 29 | ||||
| -rw-r--r-- | include/SComponent/c_node_iter.h | 17 | ||||
| -rw-r--r-- | include/SComponent/c_phase.h | 32 | ||||
| -rw-r--r-- | include/SComponent/c_tag.h | 28 | ||||
| -rw-r--r-- | include/SComponent/c_tag_iter.h | 25 | ||||
| -rw-r--r-- | include/SComponent/c_tree.h | 23 | ||||
| -rw-r--r-- | include/SComponent/c_tree_iter.h | 15 |
9 files changed, 208 insertions, 0 deletions
diff --git a/include/SComponent/c_list.h b/include/SComponent/c_list.h new file mode 100644 index 0000000000..7a7e6066c0 --- /dev/null +++ b/include/SComponent/c_list.h @@ -0,0 +1,24 @@ + +#ifndef SCOMPONENT_C_LIST_H +#define SCOMPONENT_C_LIST_H + +#include "SComponent/c_node.h" + +struct node_list_class { + node_class *mpHead; + node_class *mpTail; + int mSize; +}; + +extern "C" { + +void cLs_Init(node_list_class *pList); +int cLs_SingleCut(node_class *pNode); +int cLs_Addition(node_list_class *pList, node_class *pNode); +int cLs_Insert(node_list_class *pList, int idx, node_class *pNode); +node_class * cLs_GetFirst(node_list_class *pList); +void cLs_Create(node_list_class *pList); + +}; + +#endif diff --git a/include/SComponent/c_list_iter.h b/include/SComponent/c_list_iter.h new file mode 100644 index 0000000000..06c06590a9 --- /dev/null +++ b/include/SComponent/c_list_iter.h @@ -0,0 +1,15 @@ + +#ifndef SCOMPONENT_C_LIST_ITER_H +#define SCOMPONENT_C_LIST_ITER_H + +#include "SComponent/c_list.h" +#include "SComponent/c_node_iter.h" + +extern "C" { + +int cLsIt_Method(node_list_class *pList, cNdIt_MethodFunc pMethod, void *pUserData); +void * cLsIt_Judge(node_list_class *pList, cNdIt_JudgeFunc pJudge, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_node.h b/include/SComponent/c_node.h new file mode 100644 index 0000000000..73573c0bae --- /dev/null +++ b/include/SComponent/c_node.h @@ -0,0 +1,29 @@ + +#ifndef SCOMPONENT_C_NODE_H +#define SCOMPONENT_C_NODE_H + +struct node_class { + node_class *mpPrevNode; + void *mpData; + node_class *mpNextNode; +}; + +extern "C" { + +void cNd_Join(node_class *pA, node_class *pB); +int cNd_LengthOf(node_class *pNode); +node_class * cNd_First(node_class *pNode); +node_class * cNd_Last(node_class *pNode); +node_class * cNd_Order(node_class *pNode, int idx); +void cNd_SingleCut(node_class *pNode); +void cNd_Cut(node_class *pNode); +void cNd_Addition(node_class *pA, node_class *pB); +void cNd_Insert(node_class *pA, node_class *pB); +void cNd_SetObject(node_class *pNode, void *pData); +void cNd_ClearObject(node_class *pNode); +void cNd_ForcedClear(node_class *pNode); +void cNd_Create(node_class *pNode, void *pData); + +}; + +#endif diff --git a/include/SComponent/c_node_iter.h b/include/SComponent/c_node_iter.h new file mode 100644 index 0000000000..8d76321c05 --- /dev/null +++ b/include/SComponent/c_node_iter.h @@ -0,0 +1,17 @@ + +#ifndef SCOMPONENT_C_NODE_ITER_H +#define SCOMPONENT_C_NODE_ITER_H + +#include "SComponent/c_node.h" + +extern "C" { + +typedef int (*cNdIt_MethodFunc)(node_class *pNode, void *pUserData); +int cNdIt_Method(node_class *pNode, cNdIt_MethodFunc pMethod, void *pUserData); + +typedef void * (*cNdIt_JudgeFunc)(node_class *pNode, void *pUserData); +void * cNdIt_Judge(node_class *pNode, cNdIt_JudgeFunc pJudge, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_phase.h b/include/SComponent/c_phase.h new file mode 100644 index 0000000000..c923711dd4 --- /dev/null +++ b/include/SComponent/c_phase.h @@ -0,0 +1,32 @@ + +#ifndef SCOMPONENT_C_PHASE_H +#define SCOMPONENT_C_PHASE_H + +typedef int (*cPhs__Handler)(void *); + +enum cPhs__Step { + cPhs_ZERO_e = 0x00, + // names from Wind Waker debug strings + cPhs_COMPLEATE_e = 0x04, + cPhs_ERROR_e = 0x05, + cPhs_NEXT_e = 0x06, +}; + +struct request_of_phase_process_class { + cPhs__Handler *mpHandlerTable; + int mPhaseStep; +}; + +extern "C" { + +void cPhs_Reset(request_of_phase_process_class *pPhase); +void cPhs_Set(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable); +void cPhs_UnCompleate(request_of_phase_process_class *pPhase); +int cPhs_Compleate(request_of_phase_process_class *pPhase); +int cPhs_Next(request_of_phase_process_class *pPhase); +int cPhs_Do(request_of_phase_process_class *pPhase, void *pUserData); +int cPhs_Handler(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_tag.h b/include/SComponent/c_tag.h new file mode 100644 index 0000000000..2c73b3ab10 --- /dev/null +++ b/include/SComponent/c_tag.h @@ -0,0 +1,28 @@ + +#ifndef SCOMPONENT_C_TAG_H +#define SCOMPONENT_C_TAG_H + +#include "global.h" +#include "SComponent/c_node.h" +#include "SComponent/c_list.h" +#include "SComponent/c_tree.h" + +struct create_tag_class : public node_class { + void *mpTagData; + s8 mbIsUse; +}; + +extern "C" { + +int cTg_IsUse(create_tag_class *pTag); +int cTg_SingleCutFromTree(create_tag_class *pTag); +int cTg_AdditionToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag); +int cTg_InsertToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag, int idx); +node_class * cTg_GetFirst(node_list_class *pTag); +int cTg_SingleCut(create_tag_class *pTag); +int cTg_Addition(node_list_class *pList, create_tag_class *pTag); +void cTg_Create(create_tag_class *pTag, void *pData); + +}; + +#endif diff --git a/include/SComponent/c_tag_iter.h b/include/SComponent/c_tag_iter.h new file mode 100644 index 0000000000..b750ac9c76 --- /dev/null +++ b/include/SComponent/c_tag_iter.h @@ -0,0 +1,25 @@ + +#ifndef SCOMPONENT_C_TAG_ITER_H +#define SCOMPONENT_C_TAG_ITER_H + +#include "SComponent/c_tag.h" +#include "SComponent/c_node_iter.h" + +struct method_filter { + cNdIt_MethodFunc mpMethodFunc; + void *mpUserData; +}; + +struct judge_filter { + cNdIt_JudgeFunc mpJudgeFunc; + void *mpUserData; +}; + +extern "C" { + +int cTgIt_MethodCall(create_tag_class *pTag, method_filter *pMethodFilter); +void * cTgIt_JudgeFilter(create_tag_class *pTag, judge_filter *pJudgeFilter); + +}; + +#endif diff --git a/include/SComponent/c_tree.h b/include/SComponent/c_tree.h new file mode 100644 index 0000000000..215b5a58e4 --- /dev/null +++ b/include/SComponent/c_tree.h @@ -0,0 +1,23 @@ + +#ifndef SCOMPONENT_C_TREE_H +#define SCOMPONENT_C_TREE_H + +#include "global.h" +#include "SComponent/c_list.h" +#include "SComponent/c_node.h" + +struct node_lists_tree_class { + node_list_class *mpLists; + int mNumLists; +}; + +extern "C" { + +int cTr_SingleCut(node_class *pNode); +int cTr_Addition(node_lists_tree_class *pTree, int listIdx, node_class *pNode); +int cTr_Insert(node_lists_tree_class *pTree, int listIdx, node_class *pNode, int idx); +void cTr_Create(node_lists_tree_class *pTree, node_list_class *pLists, int numLists); + +}; + +#endif diff --git a/include/SComponent/c_tree_iter.h b/include/SComponent/c_tree_iter.h new file mode 100644 index 0000000000..0334500efe --- /dev/null +++ b/include/SComponent/c_tree_iter.h @@ -0,0 +1,15 @@ + +#ifndef SCOMPONENT_C_TREE_ITER_H +#define SCOMPONENT_C_TREE_ITER_H + +#include "SComponent/c_tree.h" +#include "SComponent/c_node_iter.h" + +extern "C" { + +int cTrIt_Method(node_lists_tree_class *pTree, cNdIt_MethodFunc pJudgeFunc, void *pUserData); +void * cTrIt_Judge(node_lists_tree_class *pTree, cNdIt_JudgeFunc pJudgeFunc, void *pUserData); + +}; + +#endif |
