SKIP系¶
| 関数名 | 引数 | 戻り値 |
|---|---|---|
SKIPDISP | int | なし |
NOSKIP | なし | なし |
ENDNOSKIP | なし | なし |
ISSKIP | なし | int |
MOUSESKIP | なし | int |
MESSKIP | なし | int |
API
SKIPDISP bool
NOSKIP
ENDNOSKIP
int ISSKIP
int MOUSESKIP
int MESSKIP
SKIPDISP<数値>- 引数:
0= 無視しないようにする- 0以外 = 無視するようにする
- 内容:このフラグを立てると、
PRINT等の出力が一切行われなくなる- また、このフラグが立ってる間に
INPUTおよびINPUTSに達した場合は - ユーザーが何をすればいい知る術がないこと、また飛ばせば無限ループに入る可能性が高いため
- 警告文と対処法を明示した上でエラーになるようにしてあります
- また、このフラグが立ってる間に
- 引数:
今一般に使われる口上の実装では口上の非表示が可能な場合、
表示と非表示でコマンドの結果が変わったり、動作が変わってしまう場合がある
そこで、これを立てた上で口上を呼び出せば、表示はされることなくそれ以外の処理が行われるため
表示/非表示で同じ動作を期待できる
INPUT/INPUTSがかぶる場合は下記のNOSKIP~ENDNOSKIPで囲んだり、
SKIPDISP 0しておいて、INPUT処理後に再度SKIPDISP 1するなりの対策があります(一応前者推奨)
ちなみに今無視するフラグが立ってるかはISSKIPで取得できます
ver1.808から、SIF文の直後に置いても動作するようになりました。 なお、SKIPDISPを使用すると引数に関係なくRESULT:0が0にリセットされますが仕様となります。
NOSKIP~ENDNOSKIPは表示関係無視フラグを無視する区間を指定できます
この2つで囲った区間はSKIPDISP 1の状態でも表示等される
主にINPUTが必要な場合に使用するとよい
また、この命令はSKIPDISPの状態に影響しないので、
SKIPDISPフラグが立ちうる環境下のコード(例えば表示/非表示のある口上関係)では
これを使うと、絶対に表示する必要がある場所をきちんと表示できるようになります
ISSKIPはSKIPDISPのフラグが0以外(PRINT等の出力を無視)なら1を、そうでなければ0をRESULT:0に代入もしくは返します
MOUSESKIPはEmuera1.810でMESSKIPに統合されました。
MESSKIPを使用してください。
この関数はかつて以下のような処理をしていました。
右クリックが押されてWAITスキップの状態になっているなら1を、そうでなければ0を返します
マクロ処理時のスキップ中は0を返します。
マクロ処理のスキップと右クリックが競合した場合はマクロを優先し0を返します
現在ではEscキーによるスキップと右クリックによるスキップを区別せずに1を返します。
MESSKIPはWAITスキップの状態になっているなら1を、そうでなければ0を返します
ヒント
ISSKIP、MOUSESKIP、MESSKIPは式中関数対応しています。