その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とするためです。
なのでアップロードデータの配布者は、自分で作ったバージョンアップファイルを一緒に添付することになります。


スクリプトが巨大になるとパッチ位置を把握できなくなるので、その対策というわけでもあります。