変愚ソースを読む2

次は構造体、types.hだ。改造するときに使いそうなものをざっと見て行くと、

構造体 設定ファイル 説明
feature_type f_info.txt 地形について
object_kind k_info.txt アイテムの種類について
artifact_type a_info.txt アーティファクトについて
ego_item_type e_info.txt アイテムがエゴのときの追加情報
monster_race r_info.txt モンスターの種族について
object_type なし 個別のアイテムについて
monster_type なし 個別のモンスターについて
player_race なし @の種族について
player_class なし @のクラスについて
player_seikaku なし @の性格について
player_type なし 個別の@について

というところ。
設定ファイルがあるものはそっちに詳細が記述されている。モンスターやアイテム、エゴの種類、アーティファクトといったものを追加するだけなら、ソースを読まなくても設定ファイルの書式さえ判れば何とかなる。もっと妙なことをやりたいならソースに手を加えよう。
設定ファイルがないもののうち、object_typeとmonster_typeは個別のものに関する構造体だ。例えて言うならばobject_kindとmonster_raceがクラス、object_typeとmonster_typeがインスタンスを保持するというような。エゴ・モンスターのような、個別のものに新規のフラグを追加するときに触れば良い。
残りは@に関するものだ。正直なところ、改造したいのなら最重要の構造体だ。実際のデータはtables.cに収められている。日本語・英語の表記に始まってStatの修正値、スキルの修正値などなど、スポイラーに載っている表の元データがそこにはある。
最後はplayer_typeだ。race〜seikakuから計算した結果、状態異常やドーピング、技能や魔法の熟練度、などなどをすべて詰め込んでいるので非常に巨大なものになっている。しかも、命名に規則があったりなかったりするし。全部を憶えることはないので必要に応じて検索すると良いだろう。