タスクのようなもの

厳密に言うと違うかもしれない。
車輪の再発明かも。
とりあえず明日以降の自分が当惑しないためにメモしておく
理解可能度は低いと思う。
☆☆☆☆☆☆
Cっぽくメモ

/*この列挙で上にあるほうが優先度が高くなる*/
enum eTASKS {
	TS_QUITWINDOW,
	TS_COMMAND,
	TS_SENTOU,
	N_TASKS,
};
task_type tsk[N_TASKS];
init_task()
{
	memset(tsk,0,sizeof(tsk));
}
add_task(int tidx)
{
	tsk[tidx].is_able = TRUE;
}
remove_task(int tidx)
{
	tsk[tidx].is_able = FALSE;
}
/*do_tasks()は毎フレーム1回呼ばれる*/
do_tasks()
{
	int tidx;
	for (tidx=0;tidx<N_TASKS;tidx++)
	{
		bool breakflag = FALSE;
		/*有効になっていない場合は次のタスクを調べる*/
		if (tsk[tidx].is_able == FALSE) continue;
		switch(tidx)
		{
		case TS_QUITWINDOW:
			/*終了を訊ねるの操作*/
			if (なんたら、操作された)
			{
				remove_task(tidx);
			}
			/*この操作中は他の動作をしない*/
			breakflag = TRUE;
			break;
		case TS_SENTO:
			do_sento();/*例えばこの中で"add_task(TS_QUITWINDOW)"
							などとされる可能性がある*/
			break;
			/*...*/
		}
		if(breakflag) break;
	}
}