Ticket #38841

生成テーブル周りの整理

Eröffnet am: 2019-01-05 10:10 Letztes Update: 2019-01-05 10:10

Auswertung:
Verantwortlicher:
Status:
Offen [Owner assigned]
Komponente:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

グローバル変数を引数として参照する暴挙の数々の原因に、hook関数ポインタによるモンスター、アイテムの生成テーブル作成が一つあるので、これを将来の拡張に備えて、以下のように整理する。

  • get_mon_num_prep()や、get_obj_num_prep()については、基本的な生成確率テーブルの作成処理として残す。
    • ただし、それを扱うalloc_entry* は現在グローバルに置かれているalloc_race_tableや、alloc_kind_tableを反映するのではなく、引数から受け取った参照ポインタへ返す。
    • get_mon_num_prep()や、get_obj_num_prep()でのhook関数による生成テーブルフィルタはあくまで、DEPTHの階層指定、 bool hoge_hook(FOO_IDX idx)で完結するような処理に留める。
  • 「同族召喚」のような変則的なフィルタの入力のためにグローバル変数参照しているものは前述の*_prep関数で生成されたalloc_entryに、さらにフィルタをかける形で直す。set_kin_bias(SYMBOL_CODE, alloc_entry *)と言った感じか。
  • alloc_entry配列はグローバル変数に置くのではなく、フロア毎に保存する。今更そういう所にメモリをケチる環境は稀で、
  • alloc_entry構造体そのものも必要に応じて調整する。

Ticket-Verlauf (1/1 Historien)

2019-01-05 10:10 Aktualisiert von: deskull
  • New Ticket "生成テーブル周りの整理" created

Dateianhangliste

Keine Anhänge

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden