Seaside Laboratory

Posts

KFM のリスト読み込み方式を変更

ファイル関連処理を標準 C 関数から C++ の fstream に変更したら実行ファイルのサイズが急にでかくなってちょっと鬱。

とりあえず文字列としてで読み込んでから数値へ変換するという方式に変更したところ、以下のようなパラメータが読めなくなってしまった。

以下のようなリストがあった場合、

-VyRy-C-
  0 0-1

数値として読み込むと、

Vy = 0
Ry = 0
C = -1

と解釈されるが、文字列として読むと、

Vy = "0"
Ry = "0-1"
C = ?

となってしまう。

スペースを区切りとしているので "0-1" がひとつのパラメータとして扱われてしまっていた。分離するのは面倒なのでこのまま行く予定。

ちなみに KFX は fscanf を使っているので本来数値であるべき項目が文字列だったりすると読み込みに失敗し、パラメータがひとつずれるという現象が発生する。

追記 (2004/04/01)

モーション読み込み方式変更の代償は大きかった。

意外と多くのキャラが数値をくっつけるイレギュラーな書き方をしているので、キャラが画面外にぶっ飛んでいったりする。プログラムのバグかどうかすぐに判断できないので、あまり心臓によろしくない。噂によるとリスト成形ツールはパラメータをくっつけてしまうらしい。

KFM はキャラのパターンが拡張されているので、新しい方式なら KFA のキャラをそれなりに動かすことも可能だが、問題の方が多かったので従来の fscanf 方式に戻すことにした。