200X共通/解析まとめ/汎用形式

Last-modified: 2018-02-22 (木) 22:37:37

基本形式

データを構成する値の最小単位です。
形式名は既存のプログラミング言語から意味の近しい型を借用していますがあくまで便宜上の名前です。


形式説明出現箇所
berBER圧縮整数。展開後の値はint相当最頻出。多くの項目で用いられる
bool1バイトの真偽値(0が偽、それ以外は真)主にチェックボックスで設定する値
byte符号付き1バイト整数(-128~127)主にラジオボタンで設定する値
short符号付き2バイト整数(-32768~32767)キャラステータスやマップのチップIDなど
int符号付き4バイト整数(-2147483648~2147483647)エリア情報やクリップボード格納時のデータサイズなど
double符号付き8バイト浮動小数(5.0e-324~1.7e+308)セーブ日時
文字列Shift_JISエンコーディングのNULL終端を持たない文字列ファイル名やメッセージなど


配列

基本形式の配列は上述の値が単純に連続して並びます。
たいていの場合は直前にサイズ情報(配列の要素数ではなくバイト長)が得られます。


構造体

基本形式を組み合わせたひとまとまりのデータを構造体とします。
ここでは汎用的な構造体を扱っています。
データベースやマップなどの固有の構造体については専用のページを参照してください。


ペアデータ

200Xのバイナリデータは多くの場合「値とそれに紐付けられた番号」がセットになって格納されています。
この番号と値の組み合わせをペアデータとします。


内容形式備考
番号ber
値のサイズber形式を問わずバイト長で指定
基本形式 or 配列 or 構造体


オブジェクト

1つ以上のペアデータを含む構造体です。
例えば「名前、レベル、ステータス等の要素(ペアデータ)を持つ主人公データ」がオブジェクトにあたります。
各ペアデータは番号が若い順に格納され、重複はありません(仮に重複していた場合は後のもので上書きされます)。
そのため番号をキーとした順序付きの連想配列とみなすこともできます。
また、ペアデータの値が初期値と同じなものは省略が可能です。


内容形式備考
ペアデータ1ペアデータ
ペアデータ2ペアデータ
...
0berオブジェクトの終わりを表す
そのため0はペアデータの番号に使われない


オブジェクトリスト

オブジェクトの配列のような構造体です。
多くの場面でそのように扱われますが、中にはインデックスにあたる番号(ID)が飛び飛びになるケースが存在するので注意が必要です。


内容形式備考
オブジェクトの総数ber
オブジェクト1のIDber
オブジェクト1オブジェクト
オブジェクト2のIDber
オブジェクト2オブジェクト
...


ファイルヘッダ

200X独自フォーマットのファイルのバイナリ先頭に存在し、そのデータの種類を表すシグネチャのようなものです。


内容形式備考
文字列のサイズberバイト長
シグネチャ文字列Lcf***


イベントコマンド

コモンイベント、マップイベント、バトルイベントに含まれるイベントコマンドです。


内容形式備考
コマンドコードber
インデントber繰り返し処理などで中のコマンドが一段下がる時のようなコマンドの深さを指す
単にエディタでの表示だけでなくイベント実行時にも使用される
文字列引数のサイズberバイト長
文字列引数文字列文字列引数を取らないコマンドでは空文字列
数値引数の数ber
数値引数ber[数値引数の数]


イベントデータ

イベントコマンドの配列とほぼ同義です。
末尾にはイベント終端を表す専用コマンドが格納されます。


内容形式備考
イベントコマンド1イベントコマンド
イベントコマンド2イベントコマンド
...
終端コマンドイベントコマンド