mirror of https://github.com/zeldaret/tp.git
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
|
|
#ifndef F_PC_LAYER_H
|
|
#define F_PC_LAYER_H
|
|
|
|
#include "global.h"
|
|
#include "SComponent/c_node.h"
|
|
#include "SComponent/c_tree.h"
|
|
#include "SComponent/c_tag.h"
|
|
|
|
struct process_method_tag_class;
|
|
struct process_node_class;
|
|
|
|
struct layer_class {
|
|
node_class mNode; // generates different asm for struct copy if using inheritance
|
|
u32 mLayerID;
|
|
node_lists_tree_class mNodeListTree;
|
|
process_node_class *mpPcNode;
|
|
node_list_class mCancelList;
|
|
s32 mCreatingCount:16;// for some reason, the compiler only optimized these into a single word load/store instead of 2 halfword load/store, but only if they are written like this
|
|
s32 mDeletingCount:16;
|
|
};
|
|
|
|
extern "C" {
|
|
|
|
void fpcLy_SetCurrentLayer(layer_class *pLayer);
|
|
layer_class * fpcLy_CurrentLayer(void);
|
|
layer_class * fpcLy_RootLayer(void);
|
|
layer_class * fpcLy_Layer(unsigned int id);
|
|
layer_class * fpcLy_Search(unsigned int id);
|
|
void fpcLy_Regist(layer_class *pLayer);
|
|
|
|
void fpcLy_CreatedMesg(layer_class *pLayer);
|
|
void fpcLy_CreatingMesg(layer_class *pLayer);
|
|
void fpcLy_DeletedMesg(layer_class *pLayer);
|
|
void fpcLy_DeletingMesg(layer_class *pLayer);
|
|
bool fpcLy_IsCreatingMesg(layer_class *pLayer);
|
|
bool fpcLy_IsDeletingMesg(layer_class *pLayer);
|
|
|
|
int fpcLy_IntoQueue(layer_class *pLayer, int treeListIdx, create_tag_class *pTag, int idx);
|
|
int fpcLy_ToQueue(layer_class *pLayer, int treeListIdx, create_tag_class *pTag);
|
|
int fpcLy_QueueTo(layer_class *pLayer, create_tag_class *pTag);
|
|
|
|
void fpcLy_Cancel(layer_class *pLayer);
|
|
bool fpcLy_CancelMethod(process_method_tag_class *pLayer);
|
|
|
|
void fpcLy_CancelQTo(process_method_tag_class *pMthd);
|
|
int fpcLy_ToCancelQ(layer_class *pLayer, process_method_tag_class *pMthd);
|
|
|
|
void fpcLy_Create(layer_class *pLayer, process_node_class *pPcNode, node_list_class *pLists, int listNum);
|
|
int fpcLy_Delete(layer_class *pLayer);
|
|
|
|
};
|
|
|
|
#endif
|