mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-03 11:00:16 -04:00
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:
committed by
GitHub
parent
89f4055593
commit
eff77cbe26
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user