変愚ソースを読む3

前回はデータ構造を扱ったので今回はそのセーブ・ロードを扱う。データ構造を変えた場合は初期化・セーブ・ロードを合わせて変えないとほぼバグが発生するので注意。
save.c

関数 セーブ対象
void wr_item(object_type *o_ptr) 個別のアイテム
void wr_monster(monster_type *m_ptr) 個別のモンスター
void wr_extra(void) @の情報
bool wr_savefile_new(void) バージョンなど環境

新しいフラグなどを作った際にはその変更点をセーブするようにすると共にセーブファイルのバージョンを上げる。元のセーブファイルと互換性がなくなることを明示するためだ。
load.c

関数 ロード対象
void rd_item(object_type *o_ptr) 個別のアイテム
void rd_monster(monster_type *m_ptr) 個別のモンスター
void rd_extra(void) @の情報
errr rd_savefile_new(void) バージョンなど環境

セーブ時と同様に新しいフラグなどをロードする。こちらは元のバージョンのセーブファイルに対しては基本的に今まで通りロードするが、新フラグについては適当な初期値を与えるようにする。