チケット #38841

生成テーブル周りの整理

登録: 2019-01-05 10:10 最終更新: 2019-01-05 10:10

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

グローバル変数を引数として参照する暴挙の数々の原因に、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構造体そのものも必要に応じて調整する。

チケットの履歴 (1 件中 1 件表示)

2019-01-05 10:10 更新者: deskull
  • 新しいチケット "生成テーブル周りの整理" が作成されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする