Illust Logic Paint Save Data Format

Illust Logic Paintのテキストセーブ形式の仕様に関する解説です
基本的にこのデータに無い内容は未定義とし, 実装依存部分とします
但し, 参考までにIllust Logic Paint Plus 1.00, Illust Logic Paint 3.05での挙動をそれぞれ[LP+], [LP3]として挙げておきます
(この部分は将来変更される可能性もあります)

基本ルール

データブロック構成

  1. サイズデータ (1行 x 4データ)
    順に横方向のサイズ(X), 縦方向のサイズ(Y), 数字セル(上)の最大高さ(H), 数字セル(左)の最大幅(W)
    H, Wの各値がデータと矛盾する場合の動作は未定義とします
    [LP+] H, Wの項目は無視され, 他のデータから計算されます
    [LP3] H, Wを越える数字行がある場合, 右側から配置されて余った部分は無視されます
    [LP3] H, Wが大きすぎる場合は一旦何処かの数字を数値入力モードで弄れば修正されるはずです(自動では直しません)
  2. 数字データ (X行 x (1 ~ H)データ + Y行 x (1 ~ W)データ)
    ロジックを表示したときの各列(行)の数字を上から下(左から右)にデータを区切って入力します
    此処の解釈はデータ入力モードと同様のルーチンで処理されるので0は無視されます
    データがH, Wに満たないところは0で埋められていると仮定します
    データがH, Wを超えたときの動作は未定義とします([LP3] 1.の通り)
  3. セルデータ (Y行 x X列)
    ロジックの各セルの色をロジック表示と同じ位置関係で区切って入力します
    0は白, 1~8はパレット(5.)の各色に対応しています
    9以上や負数を入れた場合の挙動は未定義です([LP3] エラー終了するでしょう)
    2.と違ってデータは0を認識します
    [LP+][LP3] 各行の不足分は右に0を付加, 余剰分は無視します
  4. 数字状態データ (X行 x (1 ~ H)データ + Y行 x (1 ~ W)データ)
    ロジックの各セルがチェックされている時は1(True), そうでないときには0(False)を2.と同じ配置で入力します
    実際に0, 1以外の数値が入っているときの動作は未定義です([LP+][LP3] 0以外の数値に解釈できる時は1と等価に扱います)
  5. パレットデータ (1行 x 8列, カラーのみ)
    パレットの1~8の各色を8進数表記でBBGGRR 16進形式で表記します
    パレット0(空白)は白固定で色設定は出来ません
    16進の値として等価であれば頭の0の桁は省略できます
    数値の頭には"0x"や"&H"のプリフィックスをつけてはいけません
    HTMLの色表記の形式(RRGGBB)とは逆なので注意してください
    この節が無い場合, パレットはデフォルトのもので初期化されます
    [LP3] VBのカラー表記(&H, &を除いたもの)で256色のパレット(使う人はいるのか?)やシステムカラーを設定できたりします([LP+]では出来ません)が, 互換性等は保証しません
  6. 数字色データ (X行 x (1 ~ H)データ + Y行 x (1 ~ W)データ, カラーのみ)
    2.と同じ配置で5.のパレットに従って色を入力します
    データ中に出現する0の扱いは未定義です
    [LP+] データ中の0は無視されます
    [LP+] データ不足分は1で埋められ, 余剰分は無視されます
    [LP3] データ中の0は無視されませんが, 本来設定出来ない色なので動作の保証は出来ません
    [LP3] データ不足分を0で埋められてしまいますので上記の理由により不足は無いようにしてください
    [LP3] データ余剰分はH, Wまでは読み込んでその列の数値を再設定するまでは内部的に保持してしまいますが, 本来設定すべきでないところなので動作の保証は出来ません(問題は無いはずですが…)

その他不明な点等がある場合には管理人にご連絡いただければある程度は説明します
実際にIllust Logic Paintに色々なデータを出力 / 入力させて確かめていただいても結構です