日記/2007-11-29 のバックアップ(No.1)

お名前:

父ちゃん情けなくって涙が出てくらぁ。

つーか、自分に対してですが。
なんでこんな基本的なところの設計ミスをしているかなぁ。
自戒の意味も含めて、公開メモ。

  • 報告概要:スキル使用率を最大値にした際に、スキルを使用してくれない。
    • Glenelgではスキルの使用率を「敵タイプごと」に指定できる。
      仕様上、その際の値域は「一切使用しない0〜最大10」となっている。ヘルプ記載もこのとおり。
    • 実際に操作して「スキル使用率を10」にしようとすると、情報ウィンドウには正しく10が設定された旨表示される。
    • ところがこうすると、スキルを一切使ってくれない。
  • 調査結果:設定値保存アルゴリズムの設計ミスによるバグ。
    • 単純に言ってしまうと。
      保存アルゴが「0〜9の値」でしか正しく動いていません。
    • もう少し細かく。
      Glenelgでは設定値の保存の際に、データ文字数削減のために複数の設定値を1つの数値に加工して保存しています。
      具体的には「1桁目はスキルの使用率。2桁目はスキルの使用レベル・・・」というように。
    • ・・・もうお解りですね?
      スキル使用率の記録領域は数値1桁分しか確保していないので、「2桁になる10」は正しく記録できないのです。

・・・情けなくって涙でてくるぜ(笑)
値域の確認なんて、設計の基本中の基本なのに。

・・・ともあれ、どーしたもんか。
直すのは記憶領域のフォーマットをいじれば簡単なんだが、それをやっちゃうと旧設定値との互換性がとれなくなる==ユーザーさんがまた敵ごとの設定をはじめからやり直し、なんだよな。
それはいくらなんでもあんまりだし。
・・・以前に作ったluaフォーマット版を利用するか・・・

お名前: