• 追加された行はこの色です。
  • 削除された行はこの色です。
*階の生成 [#cd9a16af]
***makelevel() [#gdde3510]
u.uz の階を新規に生成する
-特殊レベルなら、makemaz() で特殊レベルをロード
-特殊レベルなら、makemaz() で[[特殊レベルをロード>特殊マップの生成]]
-特殊レベルではないが、現在のダンジョンに PROTONAME が設定されている場合、makemaz() が PROTONAME と現在の階層数からレベル名を生成し、その名前の特殊レベルをロードする
-ノーム坑道(の通常レベル)は、makemaz() で特殊レベル minefill をロード
-クエスト(の通常レベル)は、中間の特殊階より上か下かを判定して特殊レベル *-fila または *-filb をロード
-ゲヘナ(の通常レベル)は迷路を生成
-これらに当てはまらなければ、通常の階を生成
-これらに当てはまらなければ、[[通常の階を生成>通常マップの生成]]

***makelevel(), makemaz() のレベル名決定チャート [#c0431231]
 LEVEL, RNDLEVEL, CHAINLEVEL, RNDCHLEVEL で定義されているレベル?
  │
  ├ Yes → RNDLEVEL, RNDCHLEVEL で定義されてる?
  │         │
  No          ├ Yes → "levelname-" + <num>                   (例: minetn-3)
  │         │
  │          └ No  → "levelname"                            (例: oracle)
  ↓
 PROTONAME が指定してある?
  │
  ├ No  → "", 迷路を生成
  │
   Yes
  ↓
 2階層以上のDUNGEON?
  │
  ├ Yes → ランダムに選ばれるレベル群が定義されてる?
  │         │
  │          ├ Yes → "protoname" + <level> + "-" + <num>    (※これを定義する方法はない)
  │         │
  │          └ No  → "protoname" + <level>                  (例: tower2)
  │
  └ No  → ランダムに選ばれるレベル群が定義されてる?
             │
              ├ Yes → "protoname-" + <num>                   (※これを定義する方法はない)
             │
              └ No  → "protoname"                            (※LEVELで記述するほうが一般的)

PROTONAMEを使っているのは今のところ Vlad's Tower だけのようだ。dungeon.def にレベル名を記述しなくて済むだけで、結局全レベルをレベルファイルに持たなければならないので、特にPROTONAMEを利用するメリットはないように思える


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS