diff options
-rw-r--r-- | src/task.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/task.c b/src/task.c new file mode 100644 index 000000000..9458275a4 --- /dev/null +++ b/src/task.c @@ -0,0 +1,27 @@ +void RemoveTask(u8 taskId) +{ + if (gTasks[taskId].isActive) + { + gTasks[taskId].isActive = FALSE; + + if (gTasks[taskId].prev == HEAD_SENTINEL) + { + if (gTasks[taskId].next != TAIL_SENTINEL) + { + gTasks[gTasks[taskId].next].prev = HEAD_SENTINEL; + } + } + else + { + if (gTasks[taskId].next == TAIL_SENTINEL) + { + gTasks[gTasks[taskId].prev].next = TAIL_SENTINEL; + } + else + { + gTasks[gTasks[taskId].prev].next = gTasks[taskId].next; + gTasks[gTasks[taskId].next].prev = gTasks[taskId].prev; + } + } + } +} |