pokeheartgold/include/task.h
2022-03-12 14:30:52 -05:00

46 lines
1.3 KiB
C

#ifndef POKEHEARTGOLD_TASK_H
#define POKEHEARTGOLD_TASK_H
#include "fieldmap.h"
#include "overlay_manager.h"
typedef struct TaskManager TaskManager;
typedef BOOL (*TaskFunc)(TaskManager *taskman);
typedef struct TaskManagerUnkSub1C {
u32 unk0;
} TaskManagerUnkSub1C;
struct UnkTaskEnv {
int state;
const OVY_MGR_TEMPLATE *template;
void *work;
};
struct TaskManager {
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_GetSys(TaskManager *taskManager);
void *TaskManager_GetEnv(TaskManager *taskManager);
u32 *TaskManager_GetStatePtr(TaskManager *taskManager);
u32 sub_02050658(TaskManager *taskManager);
#endif //POKEHEARTGOLD_TASK_H