特定の操作をするとセーブデータが消し飛ぶ
大物バグの修正、お疲れ様です。その直後ですみませんが、別件バグの報告です。
内容が前回以上に危険なので、自分がのんびりやってる場合じゃないと思い、こちらに投下させていただきます。
内容は題の通り、再現手順は以下になります。
-
デバッグモードにして新規キャラクターを作成。このときイメージを「変更しない」にして、顔画像なしのキャラクターにする。
-
「キャラクター情報」ダイアログを開き、編集 > デザインの編集 から顔画像を指定する。あるいは、デバッガの「キャラクターの情報の編集」ダイアログから顔画像を指定する。
-
セーブすると宿データが飛ぶ
見つけたのは Issue #118 のテスト中(WinXP SP3 / Win7 SP1 64bit)ですが、コミットを巻き戻しても再現したので、昔からあったバグのようです。
こちらも見ていただいて宜しいでしょうか……? お手数をおかけしますが、よろしくお願いします。
Comments (4)
-
repo owner -
repo owner そうじゃないですね。宿データそのものが丸ごと消し飛びますね。なんてこった……。
キャラクターの編集でカード画像を差し替えた際(
Character#set_image()
)、元のカード画像をcw.cwpy.ydata.deletedpaths
に登録します。これはセーブする際に削除するべきファイルのセットです。登録するファイルパスをcw.cwpy.yadodir
と画像ファイルの相対パスを結合して生成しているのですが、カード画像の無いキャラクタの場合は画像ファイルのパスなど存在しないため、cw.cwpy.yadodir
がそのままdeletepaths
に登録されます。セーブの際に登録されたパスが削除され、宿が消し飛びます。set_image()
を直すのはもちろんですが、削除処理自体にも安全のためにチェックを入れたほうがよさそうです。早急に作業します。 -
repo owner set_image()
の修正の他、セーブ処理自体にチェックを入れたので同様の問題は起こりにくくなっているはずです。 -
reporter - changed status to resolved
迅速な対応、ありがとうございます。
修正を確認いたしました。お疲れ様です。
- Log in to comment
これはまずいですね。キャラクター情報の一部が壊れるのでしょうか。XMLの書き出しで属性が文字列になっていない時などに壊れたデータになる事があるようですがその類かもしれません。
急いで調査してみます。