SRC遊んだり書いたり。時々プログラミング

SRCの感想とか技術解説とか、そんな感じのアレ!

セーブデータをちっちゃくする方策。の現状と指針

これは何?

SRCでファイアーエムブレムっぽい挙動を再現するインクルード「FESRC」に、不具合の一つとして以下があります。

  • セーブデータが肥大化する

これを解決するための方策の、そのメモ書きです。

余剰データを削除しよう

現在のFESRCには、その仕様上、かなりのゴミデータが蓄積されてしまっています。
そのゴミデータが

  1. そもそも蓄積しないように
  2. 蓄積されてしまったゴミデータを削除するように

する事で、SRC本来の小さなセーブデータファイルにする事を目指します。

ステータス設定用アイテムを削除しよう

現在

FESRCには、ファイアーエムブレム固有のステータスを表現するために、内部的にユニットにアイテムを持たせています。
そのアイテムは、たとえばザコ敵に設定したものなら本来ステージ終了時には破棄されるべきものですが、現在、ステージクリア後もどんどん蓄積されていってしまってる状況です。

対策

ステージ終了時、ユニットに未装着のステータス設定用アイテムを一括削除するようにする。

想定される効果

セーブデータファイルが3~4割ほど小さくなりそう。

そもそも蓄積しないように

現在

ステータス設定用アイテムの他、パイロットの方へは、ステータスを設定するために特殊技能を付加しています。
これは特に膨大な量なので、蓄積しないようにすれば、セーブデータのダイエットに大きな効果が望めます。

対策

ステージ終了時、自軍以外の全(ザコ)パイロットのステータス設定用技能を削除する。

想定される効果

セーブデータの大幅なサイズダウンが望める。8割位?

現状解決が困難な事象

現在

ステータス設定用技能については、対象のパイロットが存在していないと削除できないため、ステージ終了後のエピローグ時点でしか削除を実行できないと思われる。
(エピローグが終わり、インターミッションに入った時点で、パイロットデータが破棄される)

よって、既に作成されているセーブデータについては、この方法でのサイズダウンは望めない。

考えうる対策

正規の方法での削除は困難なので、セーブデータを直に操作するプログラムを組むのが得策みたい。