- 追加された行はこの色です。
- 削除された行はこの色です。
*階の生成 [#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を利用するメリットはないように思える