• 追加された行はこの色です。
  • 削除された行はこの色です。
*ダンジョン [#ddd28348]
**型 [#if14c64f]

:tmpdungeon, tmplevel, tmpbranch|dungeon.def で指定した情報が入る構造体
:d_level|ダンジョン番号と階番号が組になった構造体
:s_level|特殊レベルの情報を保持する
:branch|分岐情報を保持する~
分岐は1つのレベルに1つしか置けない

**構造体 [#pcddd2c5]
:sp_levchn|s_level のリンクリスト
:dungeon|tmpdungeon の情報+αが収められる構造体。実際のゲーム中に使われるのはこちら~
実体は dungeons[]
:branches|branch のリンクリスト
--end1 がメインダンジョン 
--end2 がサブダンジョン 
:dungeon_topology|特殊レベルの d_level または dnum を保持している~
sp_levchn を頭から探さずに必要な s_level を得るためのキャッシュのようなもの

**関数 [#h54ba99c]
:init_dungeons()|~
+sp_levchn を初期化する 
+dungeons[] を初期化する 
+init_level() で特殊レベルの情報を読み込む 
+place_level() で特殊レベルを配置する 
+add_level() で sp_levchn に登録する 
+dungeon_topology を登録する 
:assign_level()|d_level の中身をコピーするだけ
:find_level()|sp_levchn のリストの中から名前の一致するレベルを返す
:Is_special()|指定のレベルが sp_levchn にあるレベルなら、その s_level を返す
:Is_branchlev()|指定のレベルが brances に登録されている分岐の始点・終点どちらかに該当すれば、その branch を返す
:dungeon_branch()|指定の名前のサブダンジョンを end2 に持つ branch を返す

**特殊な処理 [#ifd95c38]
***Fort Ludios の分岐 [#m1774523]
ダンジョンの構造は init_dungeons() の時点で全て決定されており、プレイ中に動的に変わることはない。例外は Fort Ludios への分岐で、この入口だけは init_dungeons() の時点では決定できない。このため、Fort Ludios への branch の始点(end1)のダンジョン番号は Dungeons of Doom のものではなく n_dgns(ダンジョン総数) が設定されている。ダンジョン番号は後で実際に portal を置くときに修正している。

***城→死の谷 [#zd35d46b]
-fall_through(), level_tele() から find_hell() を呼んで処理している 
-dodown() は goto_hell() を呼んで処理


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