Skip to content

DOTRAIN

関数名 引数 戻り値
DOTRAIN int なし

API

DOTRAIN trainNo
強制的にTRAINを行う命令です。
@EVENTTRAIN@SHOW_STATUS@SHOW_USERCOM@USERCOM@EVENTCOMEND及びそこから呼び出された関数の中でのみ使用可能です。
引数で指定する番号はtrain.csvで定義した番号に対応しています。
動作はコマンドが選択された場合と同じで、UPDOWNなどの変数を初期化し、SELECTCOMに引数を代入し、@EVENTCOMが呼ばれ、@COM{SELECTCOM}が呼ばれ……という流れになります。

引数が0未満であるか、TRAINNAMEの要素数以上の値であればエラーになりますが、それ以外のチェックは行われません。
引数がtrain.csvで定義されていない数字でも強制的に実行しようとします。
また、@COM_ABLEを呼び出さず、強制的に実行されます。
必要であればDOTRAINの前に以下のようなチェックを行ってください。

SIF ( X < 0 || X >= VARSIZE("TRAINNAME") || TRAINNAME:X == "" )
    RETURN
RESULT = 1
TRYCALLFORM COM_ABLE{X}
SIF RESULT == 0
    RETURN
DOTRAIN X
逆にDOTRAINを用いてTRAINのコマンドを独自に実装することもできます。
例えばtrain.csvを空にしておき、@SHOW_USERCOMで独自に表示し、@USERCOMDOTRAINを行います。
あるいはtrain.csvを空にする代わりに全ての@COM_ABLE0を返すようにしてもよいでしょう。
@COM_ABLEを変更する代わりに、全ての@COM_ABLEを削除し、_replace.csvCOM_ABLE初期値0にする方法もあります。
なお、CALLTRAINの処理の途中でDOTRAINが行われた場合、CALLTRAINの残りは無効になります。

ヒント

命令のみ対応しています。

関連項目