アットウィキロゴ

タイマー

  • *timer_base が timer_element のリストの先頭を保持
  • timer_element のリストはタイムアウトする順にソートされている
  • run_timers() は先頭から timer_element を見て、タイムアウト時刻が現在時刻(monstermoves)と同じあるいは過ぎていれば、該当するタイムアウト関数を呼び出す
  • タイムアウト関数は、timer.c の timeout_funcs[] に登録する
  • run_timers() は現在 TIMER_OBJECT のタイマしか正しく処理していない

メンバ名 概要
timer_element *next 次のtimer_elementへのポインタ
long timeout タイムアウト時刻
unsigned long tid timerのID
short kind タイマの種類 TIMER_LEVEL等
short func_index タイムアウトしたときに呼ばれる関数の番号 ROT_ORGANIC等
genericptr_t arg 引数へのポインタ 下表参照
Bitfield[1] needs_fixup 0ならargはポインタ 1ならargはID


kind arg 備考
TIMER_LEVEL (なし) 未使用
TIMER_GLOBAL (なし) 未使用
TIMER_OBJECT struct obj * 主な用途はこれ 時間経過でobjの状態を変化させる
TIMER_MONSTER struct monst * 未使用
最終更新:2008年07月30日 13:56