その13
アップデート時のセーブデータの整合
http://d.hatena.ne.jp/nepo_n/20051030
一つは、ラベル名と読み取り位置をもち、スクリプトのバージョンが変われば
読み取り位置ではなくそのラベルから開始する、というものです。
これは処理が簡単で、ラベルごとの画面表示情報を保持しておくだけでokです。
ただ、セーブポイント(ラベル)をこまめに作っておかないと、パッチを当てたら大分前に戻ってしまった、なんてことになってしまいます。
二つ目、位置を整合させる方法です。
例えば、
「い」でセーブして、それ以前に追加されたらその分ずらせばいいわけです。
あいうえお
そこでパッチ用の構文を用意します。
・書式
[version 〜] // バージョンを記述
[+ 〜 +] // 追加
[- 〜 -] // 削除
[-あ-][+わ+]いうえお
一番始めにpatcherを起動し、パッチ構文を検索、記憶します。
次に全てのセーブファイルを正規化して、パッチ情報をファイルに書き出します。
というのは、1と2と3のバージョンがあるとして、1→2→3とバージョンアップできれば問題ないですが
CD-Rにいれてた昔のセーブデータとかで1→3されても内部で1→2→3とするためです。
なのでアップロードデータの配布者は、自分で作ったバージョンアップファイルを一緒に添付することになります。
スクリプトが巨大になるとパッチ位置を把握できなくなるので、その対策というわけでもあります。