mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-10 21:00:55 -04:00
A few f_pc files (#26)
* f_pc_base, one non matching * some of f_pc_manager * f_pc_node OK * f_pc_pause partly * started node_req * more progress * most of node req * delete unused asm * node req header and param names * param renaming * header for manager * review comment struct names * fpcM_Management OK * int -> s32 * merge master * most of f_pc_create_iter * f_pc_stdcreate_req OK * f_pc_fstcreate OK * f_pc_leaf OK * f_pc_draw OK * f_pc_deletor partly * fix parameter type in f_pc_pause * review * review, use cPh enum and fix process_profile_definition struct * convert f_pc files to C * matched more functions * fix global.h * fix variable types * format * mpre Phs enum * fix merge errors * fix gamepad stopPatternedRumble * format * delete leftover files from merge * move asm to correct folder * revert f_pc from C to CPP * remove C hacks and format * format * OK
This commit is contained in:
@@ -4,33 +4,33 @@
|
||||
#include "f/f_pc/f_pc_layer.h"
|
||||
#include "f/f_pc/f_pc_layer_tag.h"
|
||||
|
||||
extern "C" {
|
||||
|
||||
// f_pc_priority::crear$2186
|
||||
extern process_priority_queue_info lbl_804505E8;
|
||||
|
||||
// f_pc_priority::l_fpcPi_Queue
|
||||
extern node_list_class lbl_803F4E58;
|
||||
|
||||
int fpcPi_IsInQueue(process_priority_class* pPi) {
|
||||
return cTg_IsUse(pPi);
|
||||
extern "C" {
|
||||
|
||||
s32 fpcPi_IsInQueue(process_priority_class* pPi) {
|
||||
return cTg_IsUse(&pPi->mBase);
|
||||
}
|
||||
|
||||
int fpcPi_QueueTo(process_priority_class* pPi) {
|
||||
cTg_SingleCut(pPi);
|
||||
s32 fpcPi_QueueTo(process_priority_class* pPi) {
|
||||
cTg_SingleCut(&pPi->mBase);
|
||||
fpcLy_CancelQTo(&pPi->mMtdTag);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int fpcPi_ToQueue(process_priority_class* pPi) {
|
||||
s32 fpcPi_ToQueue(process_priority_class* pPi) {
|
||||
u32 layer = pPi->mInfoQ.mLayer;
|
||||
|
||||
if (cTg_Addition(&lbl_803F4E58, pPi)) {
|
||||
if (cTg_Addition(&lbl_803F4E58, &pPi->mBase)) {
|
||||
if (layer != 0xFFFFFFFD) {
|
||||
layer_class* pLayer = fpcLy_Layer(layer);
|
||||
|
||||
if (!fpcLy_ToCancelQ(pLayer, &pPi->mMtdTag)) {
|
||||
cTg_SingleCut(pPi);
|
||||
cTg_SingleCut(&pPi->mBase);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@ process_priority_class* fpcPi_GetFromQueue(void) {
|
||||
process_priority_class* pPi = (process_priority_class*)cTg_GetFirst(&lbl_803F4E58);
|
||||
|
||||
if (pPi != NULL) {
|
||||
base_process_class* pProc = (base_process_class*)pPi->mpTagData;
|
||||
base_process_class* pProc = (base_process_class*)pPi->mBase.mpTagData;
|
||||
process_priority_class* pProcPi = &pProc->mPi;
|
||||
fpcLy_CancelQTo(&pProcPi->mMtdTag);
|
||||
return pProcPi;
|
||||
@@ -54,23 +54,24 @@ process_priority_class* fpcPi_GetFromQueue(void) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int fpcPi_Delete(process_priority_class* pPi) {
|
||||
s32 fpcPi_Delete(process_priority_class* pPi) {
|
||||
fpcPi_QueueTo(pPi);
|
||||
pPi->mInfoQ = lbl_804505E8;
|
||||
pPi->mInfoQ.mLayer = lbl_804505E8.mLayer;
|
||||
pPi->mInfoQ.mListID = lbl_804505E8.mListID;
|
||||
pPi->mInfoQ.mListPrio = lbl_804505E8.mListPrio;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int fpcPi_IsNormal(unsigned int layer, unsigned short listID, unsigned short priority) {
|
||||
s32 fpcPi_IsNormal(u32 layer, u16 listID, u16 priority) {
|
||||
if ((layer < 0xFFFFFFFE) && (listID < 0xFFFE) && (priority < 0xFFFE))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fpcPi_Change(process_priority_class* pPi, unsigned int layer, unsigned short listID,
|
||||
unsigned short priority) {
|
||||
base_process_class* pProc = (base_process_class*)pPi->mpTagData;
|
||||
int changed = 0;
|
||||
s32 fpcPi_Change(process_priority_class* pPi, u32 layer, u16 listID, u16 priority) {
|
||||
base_process_class* pProc = (base_process_class*)pPi->mBase.mpTagData;
|
||||
BOOL changed = 0;
|
||||
|
||||
if (pProc->mInitState == 3)
|
||||
return 0;
|
||||
@@ -78,7 +79,9 @@ int fpcPi_Change(process_priority_class* pPi, unsigned int layer, unsigned short
|
||||
if (!fpcPi_IsNormal(layer, listID, priority))
|
||||
return 0;
|
||||
|
||||
pPi->mInfoQ = pPi->mInfoCurr;
|
||||
pPi->mInfoQ.mLayer = pPi->mInfoCurr.mLayer;
|
||||
pPi->mInfoQ.mListID = pPi->mInfoCurr.mListID;
|
||||
pPi->mInfoQ.mListPrio = pPi->mInfoCurr.mListPrio;
|
||||
|
||||
if (layer != 0xFFFFFFFD && pPi->mInfoCurr.mLayer != layer) {
|
||||
pPi->mInfoQ.mLayer = layer;
|
||||
@@ -96,7 +99,9 @@ int fpcPi_Change(process_priority_class* pPi, unsigned int layer, unsigned short
|
||||
}
|
||||
|
||||
if (pProc->mInitState == 0 || pProc->mInitState == 1) {
|
||||
pPi->mInfoCurr = pPi->mInfoQ;
|
||||
pPi->mInfoCurr.mLayer = pPi->mInfoQ.mLayer;
|
||||
pPi->mInfoCurr.mListID = pPi->mInfoQ.mListID;
|
||||
pPi->mInfoCurr.mListPrio = pPi->mInfoQ.mListPrio;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -106,15 +111,18 @@ int fpcPi_Change(process_priority_class* pPi, unsigned int layer, unsigned short
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fpcPi_Handler(void) {
|
||||
while (process_priority_class* pPi = fpcPi_GetFromQueue()) {
|
||||
base_process_class* pProc = (base_process_class*)pPi->mpTagData;
|
||||
s32 fpcPi_Handler(void) {
|
||||
process_priority_class* pPi;
|
||||
while (pPi = fpcPi_GetFromQueue()) {
|
||||
base_process_class* pProc = (base_process_class*)pPi->mBase.mpTagData;
|
||||
layer_management_tag_class* pLayerTag = &pProc->mLyTg;
|
||||
line_tag* pLineTag = &pProc->mLnTg;
|
||||
if (fpcLyTg_Move(pLayerTag, pPi->mInfoQ.mLayer, pPi->mInfoQ.mListID,
|
||||
pPi->mInfoQ.mListPrio) == 1) {
|
||||
fpcLnTg_Move(pLineTag, pPi->mInfoCurr.mListID);
|
||||
pPi->mInfoCurr = pPi->mInfoQ;
|
||||
pPi->mInfoCurr.mLayer = pPi->mInfoQ.mLayer;
|
||||
pPi->mInfoCurr.mListID = pPi->mInfoQ.mListID;
|
||||
pPi->mInfoCurr.mListPrio = pPi->mInfoQ.mListPrio;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
@@ -123,17 +131,19 @@ int fpcPi_Handler(void) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int fpcPi_Init(process_priority_class* pPi, void* pUserData, unsigned int layer,
|
||||
unsigned short listID, unsigned short priority) {
|
||||
s32 fpcPi_Init(process_priority_class* pPi, void* pUserData, u32 layer, u16 listID, u16 priority) {
|
||||
if (!fpcPi_IsNormal(layer, listID, priority))
|
||||
return 0;
|
||||
|
||||
pPi->mInfoQ.mLayer = layer;
|
||||
pPi->mInfoQ.mListID = listID;
|
||||
pPi->mInfoQ.mListPrio = priority;
|
||||
pPi->mInfoCurr = pPi->mInfoQ;
|
||||
cTg_Create(pPi, pUserData);
|
||||
|
||||
pPi->mInfoCurr.mLayer = pPi->mInfoQ.mLayer;
|
||||
pPi->mInfoCurr.mListID = pPi->mInfoQ.mListID;
|
||||
pPi->mInfoCurr.mListPrio = pPi->mInfoQ.mListPrio;
|
||||
cTg_Create(&pPi->mBase, pUserData);
|
||||
fpcMtdTg_Init(&pPi->mMtdTag, (process_method_tag_func)fpcPi_Delete, pPi);
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user