StdPceFormat Ver 2.00(案)



ParCodeEditor Ver2での標準的なコード記述の構文です。

●全体構造

ファイルID

タイトル部
 タイトル名
 タイトル属性
 タイトルコメント
 コード部
  コード名
  コード属性
  コード行
  コードコメント


●共通の記述

 属性

  タイトル部、コード部に記述できます。

  書式

  [キーワード=値,キーワード=値....]

  という形式で記述します。
  複数行での記述も可能です。

  キーワードが重複した場合は、後に記述したものが優先されます。

  記述できるキーワードの種類や意味については、各項目で説明します。


 コメント

  タイトル部、コード部に記述できます。

  書式

  :コメント文字列
  :コメント文字列
  :コメント文字列
  .
  .
  .

  という形式で記述します。

  複数行での記述も可能です。





●タイトル部

 タイトル名
  タイトル名は行頭に専用のマークを記述する必要があります。
  マークは、PAR2用とPAR3用があります。

   PAR2用  '*2:'
   PAR3用  '*3:'

  

   PAR2用の「へろへろ冒険記」

    *2:へろへろ冒険記


   PAR3用の「へろへろ冒険記」

    *3:へろへろ冒険記



 タイトル属性

  記述方法は「共通の記述」を参照してください。

  指定可能なキーワード


   header
    コードのheader属性のデフォルト値を決めます。

    コードにheader属性がなく、有無の判断ができない場合、ここでの値が使用されます

    指定可能な値

     on
      デフォルトのheader属性をonにします

     off
      デフォルトのheader属性をoffにします

    省略時(記述の無い場合)

     off


   autocodeid
    このタイトルに含まれるコードのコードIDが確定しない場合、
    エラーにするのか、プログラムで自動的に割り当てるのかを指定します。

    ここでの指定はコード属性のデフォルト値であり、コード属性で指定が無い場合、
    この指定が採用されます。


    指定可能な値

     on
      コードIDが確定しない場合、プログラムで割り当てます。

     off
      コードIDの確定しない場合、エラーとします。

    省略時(記述の無い場合)

     off


   gameid
    このタイトルに含まれる全てのコードのgameid属性を、ここでの指定に変更して解釈します。
    コード属性のデフォルト値ではありません。

    記述は16進数で行いますが'h'は付けてはいけません。

    指定可能な値

     0h〜1FFFh

    省略時(記述の無い場合)

     この動作を行わない。


   region
    このタイトルに含まれる全てのコードのregion属性を、ここでの指定に変更して解釈します。
    コード属性のデフォルト値ではありません。

    指定可能な値

     US
     UK
     JP

    省略時(記述の無い場合)

     この動作を行わない。




●コード部

 コード名

  コード名はそのまま記述して下さい。
  タイトル名のように特別なマークは必要ありません。


 コード属性

  記述方法は「共通の記述」を参照してください。
  type属性はPAR2、PAR3共に使えますが、その他の属性はPAR3でのみ指定可能です。
  (PAR2で指定しても無視されます)


  指定可能なキーワード

   header
    コードのヘッダー行(ゲームID等を含んだ行)が記述されているかどうかを指示します。

    ただし、コードが暗号化されている場合は強制的に「含む」になります。

    header属性が含むである場合、master、gameid、region、codeid、parent属性は、基本的にはヘッダー行から
    取得しようとします。

    ヘッダー行の値が気に入らない場合は、その属性を指定すれば上書き変更されます。


    逆にheader属性が「含まない」であるときは、自動判断が基本となります。


    指定可能な値

     on
      ヘッダー行を含んでいます。
     off
      ヘッダー行は含まれていません。

    省略時(記述の無い場合)
     off



   type
    コードのタイプを記述します。

    この属性が記述されている場合は、コードの内容は無視されます。
    例えば、通常コードにtype=folderを記述すると、コード行は無視されます。


    指定可能な値

     code
      一般的なコードを意味します。
     folder
      フォルダーコードを意味します。
     radio
      ラジオフォルダーコードを意味します。

    省略時(記述の無い場合)
     header属性がある場合はコードの内容で判断。

     header属性がない場合、
     コード行が3行以上の場合は'code'。
     コード行の記述がない場合は'folder'。



   master
    マスターコードであることを指示します。

    指定可能な値

     true
      このコードはマスターコードです。
     false
      このコードはマスターコードではありません。

    省略時(記述の無い場合)
     header属性があれば、ヘッダーで判断します。
     ヘッダーが無い場合は'false'とします。



   gameid
    ゲームIDを指定します。
    タイトル属性のgameidが指定されている場合、この指定は無視されます。

    指定可能な値

     0h〜1FFFh

    省略時(記述の無い場合)
     タイトル属性のgameidが指定されている場合はそのゲームIDが使われます。
     header属性があれば、ヘッダー行のものが使用されます。
     それも無い場合、タイトル内のコードでmaster属性を持つものでゲームIDが明確になっている最初のコードの
     ものが使われます。
     それも無い場合、タイトル内のコードでmaster属性でないものでゲームIDが明確になっている最初のコードの
     ものが使われます。

     それでも、確定できない場合はエラーとなります。



   region
    リージョンを指定します。
    タイトル属性のgameidが指定されている場合、この指定は無視されます。

    指定可能な値

     US
     UK
     JP

    省略時(記述の無い場合)
     タイトル属性のregionが指定されている場合はそのリージョンが使われます。
     header属性があれば、ヘッダー行のものが使用されます。
     それも無い場合、タイトル内のコードでmaster属性を持つものでリージョンが明確になっている最初のコードの
     ものが使われます。
     それも無い場合、タイトル内のコードでmaster属性でないものでリージョンが明確になっている最初のコードの
     ものが使われます。

     それでも、確定できない場合はエラーとなります。



   codeid
    コードIDを指定します。

    指定可能な値

     0h〜7FFFFh
      指定コードID

     auto
      コードIDを自動採番する


    省略時(記述の無い場合)
     header属性がonの場合、ヘッダーのコードID。
     header属性がoffでタイトル属性のautocodeidがonの場合は、コードIDが自動採番されます。
     header属性がoffでタイトル属性のautocodeidがoffの場合はエラーになります。



   parent
    コードの階層構造を構築するために必要な属性です。

    指定可能な値
     0h〜7FFFFh
      このコードIDを親とする
      ただし、このコードIDを持つコードがフォルダーや
      ラジオでない場合はエラー

     top
      このコードをトップレベルにする

     auto
      配置位置によって決定する。

    省略時(記述の無い場合)
     header属性がonの場合、ヘッダーのペアレント・コードID。
     header属性がoffの場合、配置位置で判断。

 コード行

  コードは暗号化・非暗号化どちらの記述も可能です。
  しかし、ひとつのコードに暗号化・非暗号化の行が混在してはいけません。

  ひとつのタイトルの中に、暗号化行のコードと非暗号化行のコードがあるのは構いません。
  



 特殊なコード

  階層構造が'auto'の場合、フォルダーの次に記述されたコードは
  そのフォルダーに格納されることを意味しますが、そのフォルダーと同レベルに戻したい場合、
  '*^:'を記述します。


●記述例


*3:へろへろ冒険記     autocodeid=on, header=offが仮定される
[region=jp, autocodeid=on]

(M)
[master=true]         ヘッダーがないのでparent=autoが仮定される

主人公                トップレベルフォルダー
[type=folder]

HP最大1            属性がないのでheader=offが仮定される
00000000 00000000
00000004 00000000

MP最大1
[header=on, parent=auto]
00000000 00000000
00000008 00000000
0000000C 00000000

*^:                   階層を1つ上がってトップレベルに変更

2人目                トップレベルフォルダー
[type=folder]

HP最大2            属性がないのでheader=offが仮定される
00000000 00000000
00000004 00000000

MP最大2
[gameid=12]           ゲームIDはどこでも指定されていないので、これが使われる
00000008 00000000
0000000C 00000000


3人目                トップレベルフォルダー
[type=folder, codeid=9, parent=top]
                      parent=topがないと、「2人目」フォルダーの子になる
HP最大3
[parent=9]            コードIDが9のコードを親にする
00000000 00000000
00000004 00000000

MP最大3            parentが無いので階層構造を自動構築
00000008 00000000
0000000C 00000000




階層構造は次のようになります。

タイトル
 (M)
 主人公
  HP最大1
  MP最大1
 2人目
  HP最大2
  MP最大2
 3人目
  HP最大3
  MP最大3



●利用例

ネットに公開されているPAR3コード(暗号化)を使う場合、

 1.タイトルに*3:を付加

 だけで認識可能です。



ネットに公開されているPAR3コード(非暗号化・ヘッダーあり)を使う場合、

 1.タイトルに*3:を付加
 2.タイトル属性にheader=onを記述

 だけで認識可能です。


ネットに公開されているPAR3コード(非暗号化・ヘッダーなし)を使う場合、

 1.タイトルに*3:を付加
 2.タイトル属性にautocodeid=onを記述
 3.タイトル属性にgameid属性を記述
 4.タイトル属性にregion属性を記述
 5.マスターコードにmaster=true属性を記述

 を追加します。


ネットに公開されているPAR2コードを使う場合、

 1.タイトルに*2:を付加

 を追加します。