スリムはいいけれど・・・
プロスピの選手データを公開しました。
まぁ・・・必要としている人は少ないでしょうが、
へぇ~ってな感じでヒマな方は眺めてみてください。
そんなことよりリスト早くしろよって声も聞こえてきそうですが、
ほったらかしにして他のことできるか!・・・とか、
一度火が点いたら止められない!・・・とか、
そういう性格なんでしょうがないです。
まぁ・・・無駄の無い製作のためには下準備は大切ってことで。
セーブデータ全体を見渡してみると、
選手の起用情報や登録情報を管理している部分が超スリムになってました。
5(24h)→5完全版(1Ch)→6(Eh)と脅威の圧縮です!
が・・・このせいで改造している側にとってはめんどいことに・・・
以前は管理アドレスが書かれていたのでそれを取り込んでいたのですが、
今回はIDが書かれています。
このIDは登録された順に連番になっていく方式で、
100人作って更に101人目を1人目に上書きしても連番が続きます。
まぁ、ID=固有値なんだから当たり前なんですが。ww
しかし、これまでは選手IDを探すのに以前は住所が解っていたから簡単だった、
ところが、今回は選手IDを探すのにIDを使わないといけない。
・・・これってデータ照合するのに総当たりが必要になるってことなんですよ。
というわけで、総当たりする方法を考えました。
//登録人数読み込み・・・反復回数
&D[C0] == GET(E410,1)
//登録人数分処理反復
FOR(&D[C1] = 1 TO &D[C0])
//固有値取得
&D[C2] == &D[C1]
&D[C2] -= 1
&D[C2] *= 114
&D[C2] += E45C
&D[C3] == GET(&D[C2],2)
//登録場所反復
FOR(&D[C4] = 1 TO &D[C0])
&D[C5] == &D[C4]
&D[C5] -= 1
&D[C5] *= E
&D[C5] += BE00
&D[C6] == GET(&D[C5],2)
//固有値照合
&D[C7] == &D[C3]
&D[C8] == &D[C6]
&D[C8] ^= &D[C7]
IF(&D[C8] == 0)
//ここのスペースに処理
ENDIF
NEXT
NEXT
要は、IDをXORでほんとに照合しちゃっているんですが、
この方法だとですね、1人登録している場合は1*1=1回照合なんですけど、
100人だと100*100=10000回照合という、当然のハードワーク・・・
しかも、セーブデータ上で選手追加をした場合、そのIDはもちろん無いわけで、
上書きすることができないんですよね・・・ぉぉぅ・・・
対処法としては、選手コピーで上書きするか別の方法を考えるか・・・
難しいなぁ・・・てかめんど・・・
コメント