th123_ai(仮)の進捗報告その10+α

バグ修正だけとか、もう進捗じゃないよねって気もする。せっかくの10個目なのにね。
ついでにAIManagerも更新。

th123_ai.zip@ver0.86e
・ver0.86よりobj_disおよびobj_dis2で未発見時10000ではなく2147483647を返していた不具合の修正。
・中間ファイルが削除されずそのまま放置される事があった不具合の修正

AIManager@ver0.81b
・対象キャラクターが複数であるAIを表示する方法が無かった不具合の修正
・メインウィンドウ(AIリスト)のタイトルバーにバージョン表記を追加

10000ではなく2147483647(4バイト限界)を返していたのは、以前ブレイジングスターが消えないというバグを聞いて検証した時に変更してそのままだった。
別にこのままでもいいんだけど下位互換がなくなるので修正。
中間ファイルはth105_ai.iniが存在するという前提で処理をしていてこけていたせい。
”複数”が表示不能は絞込条件作り忘れただけ。
バージョン表記はぶっちゃけ自分用、なきゃ更新忘れる。

get_obj_hitareaバグは根が深そうなのでまとまった時間が取れるまで放置なんだ、すまない。
いや、まだまともに見たわけでもないんだけど、思い当たる原因どおりなら下手すると丸1日かかるレベルの大問題のはず。


ここからは雑談。
AIManagerのおかげで導入はものすごく楽になったんですが、未だにデッキ整備の問題が大きい。
これを何とかしたいなと思うけど、キー操作経由以外で干渉する気が無いので手が無い。
起動してプロフ製作しデッキ整えてキャラセレに入るところまで自動化する?
ないない、そんなの逆に不便になること確実だし。
うーむ、何か良い手は無い物か。

紫AI@電車の人ごめんなさい

AIManagerで紫AI@電車の説明文が欠けている気がして気になっていたのですが、出社1時間前という今になって原因が判明したので急いで修正。

AIManager@ver0.81a
・意図しない文字数制限により、説明が256文字以上送信できていなかった不具合の修正。
・AI送信時に例外エラーを吐く事があった不具合の修正

256制限とかテストしたつもりでしてなかったよという話。
いや、本当にもうごめんなさい。

送信時例外はバッファオーバーフロー、といっても説明文2000字超えないと出ないはずだから前Verでは関係なかったはず。


あ、それと針巫女で星蓮船のNノーコンクリアしました。
といっても22日の時点で既にクリアしていて書き忘れていただけだけど……w

抱えオチ:6ボム
クリア時残機:2
クリア時残ボム:2
合計:12ボム余裕あり
一番残機落としたステージ:4面

後が無く好き勝手できるからだろうけど、4面>5面+6面ってぐらい4面難しかった。
4面は開始時点残機MAXでクリア時4機切ってるとかなんなの……

wordpressアップデートによる不具合?

このブログはwordpressというphpアプリで動いているのですが(ドメイン名のwordpressもそこから来ている)
アップデートしないとウイルスにかかると聞いて試みたところ予想外の問題に遭遇して時間をつぶしました。

以前のVerは覚えてませんが、2.8.4-jaへのアップデートによって起きた問題です。
ただ、wordpressというよりはphp側のバグにも見えるのでなんともいえない。
経緯は以下の通り。
・自動アップデート中に止まる
・そのせいなのか管理画面の表示がおかしい
・仕方ないので手動アップデートを試みる
・無事成功したが管理画面はおかしいまま
・調べてみるとCSSがtext/htmlで来ているせいだとわかる
・該当のphpファイル(wp-admin/load-styles.php)を覗けばきちんと付加しているように見える
・中途処理で上書きされていると考え、付加する処理を末尾に移してみる
・直った

問題なのは、詳しく調べてみたら中途処理による上書きではなく
単純に二回目以降のheaderでないとContent-Typeが正常に指定できないらしいという事。

以下、問題のコード
header(‘Content-Type: text/css’);
header(‘Expires: ‘ . gmdate( “D, d M Y H:i:s”, time() + $expires_offset ) . ‘ GMT’);
こうすれば動く(順番入れ替えただけ)
header(‘Expires: ‘ . gmdate( “D, d M Y H:i:s”, time() + $expires_offset ) . ‘ GMT’);
header(‘Content-Type: text/css’);
こうしても動く(無駄にheaderを呼ぶだけ)
header(‘:’);
header(‘Content-Type: text/css’);
header(‘Expires: ‘ . gmdate( “D, d M Y H:i:s”, time() + $expires_offset ) . ‘ GMT’);
ちなみに、一度目のheaderを完全に空文字で呼ぶと動かない。

原因不明、というか挙動的にまっとうな動作には見えない。
これはバグなのではなかろうか?
ちなみにサーバの仕様覗いてきたらphpのVerは5.2.5だそうです。