概要
指定した魔法をキャラクターが使ったかどうか調べます。
プロトタイプ
void *DetectMagicUse(int magic);
戻り値
指定した魔法を使用したキャラクターがいれば、そのキャラクターのポインタが返ります。それ以外の場合は NULL が返ります。
パラメータ
magic
使用したかどうか調べる魔法のインデックス
解説
DetectMagicUse 関数は、アクションログを調べて、いずれかのキャラクターが magic で指定された魔法を使用したかどうか調べます。指定された魔法を使用したキャラクターがいれば、アクションログからそのデータを削除して、魔法を使用したキャラクターのポインタを返します。NormalProcess 関数が実行されると、それまでのアクションログがクリアされ、同時に新たに魔法が使用される可能性があります。また、OpenItemBox 関数の実行中にも呪符によって魔法が使用される可能性があります。OpenItemBox 関数が実行された後で DetectMagicUse 関数が実行されずに NormalProcess 関数が実行されると、その魔法が使用されたことはわからなくなってしまうので注意してください (しかも、その呪符が使い捨てならなくなってしまいます)。複数のキャラクターが同時に同じ魔法を使用した場合も考慮したい場合、DetectMagicUse 関数の戻り値が NULL になるまで繰り返し実行することで、その魔法を使用した複数のキャラクターをすべて処理することができます。