pokeheartgold/include/task.h
2023-06-21 19:41:52 +01:00

45 lines
1.3 KiB
C

#ifndef POKEHEARTGOLD_TASK_H
#define POKEHEARTGOLD_TASK_H
#include "fieldmap.h"
#include "overlay_manager.h"
typedef BOOL (*TaskFunc)(TaskManager *taskman);
typedef struct TaskManagerUnkSub1C {
u32 unk0;
} TaskManagerUnkSub1C;
struct UnkTaskEnv {
int state;
const OVY_MGR_TEMPLATE *template;
void *work;
};
struct TaskManager { //declared in field_system.h
TaskManager *prev;
TaskFunc func;
u32 state;
void *env;
u32 unk10;
void *unk14;
FieldSystem *fsys;
TaskManagerUnkSub1C *unk1C; // size=4
};
TaskManager *FieldSys_CreateTask(FieldSystem *fsys, TaskFunc taskFunc, void *env);
void TaskManager_Jump(TaskManager *taskman, TaskFunc taskFunc, void *env);
void TaskManager_Call(TaskManager *taskman, TaskFunc taskFunc, void *env);
BOOL Fsys_RunTaskFrame(FieldSystem *fsys);
BOOL Fsys_TaskIsRunning(FieldSystem *fsys);
BOOL FieldSys_ApplicationIsRunning(FieldSystem *fsys);
void sub_020505C0(FieldSystem *fsys);
BOOL sub_020505C8(FieldSystem *fsys);
void CallApplicationAsTask(TaskManager *taskManager, const OVY_MGR_TEMPLATE *template, void *work);
FieldSystem *TaskManager_GetFieldSystem(TaskManager *taskManager);
void *TaskManager_GetEnv(TaskManager *taskManager);
u32 *TaskManager_GetStatePtr(TaskManager *taskManager);
u32 sub_02050658(TaskManager *taskManager);
#endif //POKEHEARTGOLD_TASK_H