タスクのようなもの
厳密に言うと違うかもしれない。
車輪の再発明かも。
とりあえず明日以降の自分が当惑しないためにメモしておく
理解可能度は低いと思う。
☆☆☆☆☆☆
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; } }