pokeplatinum/include/field_task.h
2024-11-03 16:08:01 -08:00

38 lines
1.3 KiB
C

#ifndef POKEPLATINUM_FIELD_TASK_H
#define POKEPLATINUM_FIELD_TASK_H
#include "field/field_system_decl.h"
#include "overlay_manager.h"
typedef struct FieldTask FieldTask;
typedef BOOL (*FieldTaskFunc)(FieldTask *); // Return TRUE on completion; return FALSE while still running.
struct FieldTask {
FieldTask *prev;
FieldTaskFunc func;
int state;
void *env;
int dummy10;
void *dummy14;
FieldSystem *fieldSys;
int *dummy1C;
};
FieldTask *FieldSystem_CreateTask(FieldSystem *fieldSys, FieldTaskFunc taskFunc, void *taskEnv);
void FieldTask_InitJump(FieldTask *task, FieldTaskFunc taskFunc, void *taskEnv);
FieldTask *FieldTask_InitCall(FieldTask *task, FieldTaskFunc taskFunc, void *taskEnv);
BOOL FieldTask_Run(FieldSystem *fieldSys);
BOOL FieldSystem_IsRunningTask(FieldSystem *fieldSys);
BOOL FieldSystem_IsRunningApplication(FieldSystem *fieldSys);
void FieldSystem_StartFieldMap(FieldSystem *fieldSys);
BOOL FieldSystem_IsRunningFieldMap(FieldSystem *fieldSys);
void FieldTask_RunApplication(FieldTask *task, const OverlayManagerTemplate *overlayTemplate, void *overlayArgs);
FieldSystem *FieldTask_GetFieldSystem(FieldTask *task);
void *FieldTask_GetEnv(FieldTask *task);
int *FieldTask_GetState(FieldTask *task);
u32 FieldTask_GetDummy1CVal(FieldTask *task);
#endif // POKEPLATINUM_FIELD_TASK_H