summaryrefslogtreecommitdiff
path: root/include/SComponent
diff options
context:
space:
mode:
authorunknown <pheenoh@gmail.com>2020-12-01 19:04:35 -0500
committerunknown <pheenoh@gmail.com>2020-12-01 19:04:35 -0500
commit91fc5f6f532817dca0763a6e7841ce2a75ecb54d (patch)
treedb6b63a24336b6d767ec12a195cda6520e8d77e9 /include/SComponent
parent1ded84de460526448c0a2f5ffc5c651f4119d21b (diff)
parentac6b191dc19ddd1f155b55890953b7564c6f7b74 (diff)
Merge branch 'master' of https://github.com/zeldaret/tp
Diffstat (limited to 'include/SComponent')
-rw-r--r--include/SComponent/c_list.h24
-rw-r--r--include/SComponent/c_list_iter.h15
-rw-r--r--include/SComponent/c_node.h29
-rw-r--r--include/SComponent/c_node_iter.h17
-rw-r--r--include/SComponent/c_phase.h32
-rw-r--r--include/SComponent/c_tag.h28
-rw-r--r--include/SComponent/c_tag_iter.h25
-rw-r--r--include/SComponent/c_tree.h23
-rw-r--r--include/SComponent/c_tree_iter.h15
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