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>
This commit is contained in:
Jasper St. Pierre
2020-11-30 14:26:55 -08:00
committed by GitHub
parent 89f4055593
commit eff77cbe26
88 changed files with 2117 additions and 2243 deletions
+24
View File
@@ -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
+15
View File
@@ -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
+29
View File
@@ -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
+17
View File
@@ -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
+32
View File
@@ -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
+28
View File
@@ -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
+25
View File
@@ -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
+23
View File
@@ -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
+15
View File
@@ -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