The Task struct is a single node in the DAG which manages the current game state. Tasks may be associated with a particular Mission or Checkpoint.
Fields
Offset
Size
Type
Name
Notes
0x18
4
int
id
Unique ID for the task
0x20
4
structTask*
pnext
Pointer to the next task
0x54
4
enumTASKS
tasks
Current task state (0, 1, 2, or 3)
0x7c
4
structMission*
pmission
Mission pointer
0x94
4
int
cparents
Count of parent nodes
0x98
4
structTask**
paparents
Pointer to array of parent nodes
0xa0
4
int
cchildren
Count of child nodes
0xa4
4
structTask**
pachildren
Pointer to array or child nodes
0xb8
4
int
checkpoint ID
ID of the associated checkpoint (0 if none)
0xbc
4
int
checkpoint map ID
Map ID for the checkpoint, if any
0xc0
4
int
checkpoint player ID
ID of the player character for the checkpoint, if any
This topic needs further investigation. Is the Checkpoint struct nested inside the Task struct, or is there a pointer the checkpoint data somewhere on the task?