難解度「A+」
ビットリスト項目
 多くの数値はバイト単位で扱われますが、ときにはビット単位のON/OFFで判別しているものもあるでしょう。毒・眠り・麻痺など、キャラクターの(ON/OFFの絡む)ステータスなどに、利用されているかもしれませんね。書式は
[subject]項目名: bitlist, アドレス, リストファイル, バイトサイズ
です。
アドレス読み書きする対象のアドレスです。詳しいアドレスの書き方は、《A-アドレス》を参照。
リストファイル選択できる一覧として表示するリストファイルを指定します。なお、リストファイル中で空行にあたるビットは、マスクするものとして扱います。ファイル指定の詳細は、《C-ファイル指定》を参照。
バイトサイズ選択はビット単位とはいえ、読み書きはあくまでバイト単位です。その際、何バイト使用するかを1〜4のいずれかで指定します。
 項目名は、"/"区切りで表示先を分けることができます。詳細はリスト項目に準じます。

 リストファイル中での空行(改行のみの行)は、「マスクするビット」であることを意味します。ビット単位でマスクをかけたい場合等に活用してください。画面上ではその行を省いて表示されるので、使用者側が意識することはありません。

 まとめとして、いくつかのパターンでビットリスト項目を書いておきますね。
[subject]ステータス:bitlist,0x400000,状態リスト,1
[subject]技能/固定する:bitlist,0x500000,技能リスト,2
ビットリストは、(マスクビットを使わない場合、)0行目が1、1行目が2、2行目が4、3行目が8、のように、2の乗数で管理しています(ビット単位)。バイトサイズに指定したサイズを越えるような行数にならないよう、気を付けてくださいね。


実数電卓項目
 基本的な部分は、電卓項目と同じです。ただし、扱う数値は整数ではなく実数(小数点を含む数値を許可。厳密には浮動小数点形式)になります。整数と実数ではメモリ中でのデータ表現が異なるため、整数の42と実数の42では、全く違うメモリ内容になります。書式は
[subject]項目名: f_calc, アドレス, 最小値, 最大値, サイズ記号, エンディアン
です。
アドレス読み書きする対象のアドレスです。詳しいアドレスの書き方は、《A-アドレス》を参照。
最小値
最大値
電卓項目に準じます。
サイズ記号この項目で読み書きするバイトサイズを、「float」か「double」のどちらかで指定します。floatは単精度浮動小数点で4バイト。doubleなら倍精度浮動小数点で8バイトを使用します。省略した場合や、サイズ記号が「float」でない場合、「double」になります。なお、サイズ記号よりも[size]属性を優先しますが、その場合も4バイト以内ならfloat、それ以外はdoubleと見なされます。
エンディアン電卓項目に準じます。
 項目名は、"/"区切りで表示先を分けることができます。詳細は電卓項目に準じます。
 「符号の有無」の代わりに「サイズ記号」となっていますが、実数電卓では全てsigned(符号有り)として解釈されるためです。
 まとめとして、いくつかのパターンで実数電卓項目を書いておきます。
[subject]単精度:f_calc,0x400000, 0.82, 2500, float
[subject]倍精度:f_calc,0x500000, -3, 23.55, double
なお、実数電卓項目に対する[io_fep]属性は、入出力演算も小数点を考慮して行われますが、その場合に使用できる演算子は、%(剰余演算子)を除く算術演算子と、関係演算子や論理演算子などの比較演算子のみとなります。




ねくすと せくしょん⇒

≪せくしょん ばっく