変愚ソースを読む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から計算した結果、状態異常やドーピング、技能や魔法の熟練度、などなどをすべて詰め込んでいるので非常に巨大なものになっている。しかも、命名に規則があったりなかったりするし。全部を憶えることはないので必要に応じて検索すると良いだろう。