ものすごく頑張って、何とかちゃんとユニットの選択ができる買い物ルーチンを書き上げました。
我ながら良くやったと思います。

詳細は後ほど。
例によって限定的な動作テストしかしてませんので、検証のほどよろしくお願いします。

了解。確認しました。今回もオートバイ兵の画像と同じ形式でした。う〜ん、この手の画像がこれ以上出てくるようだと、もうちょっと根本的な対処をしないといけないなあ・・・と思いつつ、今回もまた「とりあえず表示しない」という手で逃げることにしました。以前にソ連のオートバイ兵を表示しようとすると応答なしになるというのを報告しましたが、同様の問題が同じくソ連OOBのEnhanced Modに含まれているT-54でも発生します。
了解。修正しました。年代などを指定して検索、編隊を選択して構成ユニットの詳細を表示しようとするとき、
最初はダブルクリックで、二回目以降はシングルクリックで切り替わる不思議な反応になります
了解。確かに現状では見にくいですよね。Unit タブにボタンを二つ追加して、タブの切り替えなしに候補ユニットの前後を見られるようにしました。Buyer Modeからユニット詳細表示に切り替えた状況で「次へ・前へ」というような操作で選択肢の中から画面推移なしに比較できる機能があるといいかなと……勝手な要望ですが。
Code: Select all
System.NullReferenceException: オブジェクト変数または With ブロック変数が設定されていません。
場所 Microsoft.VisualBasic.CompilerServices.Symbols.Container..ctor(Object Instance)
場所 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
場所 Mr.OOB.Form1.TreeView1_NodeMouseClick(Object sender, TreeNodeMouseClickEventArgs e)
場所 System.Windows.Forms.TreeView.OnNodeMouseClick(TreeNodeMouseClickEventArgs e)
場所 System.Windows.Forms.TreeView.WmNotify(Message& m)
場所 System.Windows.Forms.TreeView.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Depotでも大好評ですね。さすがそのバージョンはDepotの方に投稿しちゃったからです。
おお、そういえば今日は(もう昨日か)誕生日だったですね。ありがとうございます。Happy Birthday!
了解。対応しました。前後の候補ユニットの切り替えは「1/5」というように、総数と現在位置が表示されるとわかりやすいと思います。
え〜と、これはメッセージ通りにOOBに間違いがある、と思ってます。問題の"Recon Co"は、構成編隊のリストの中に自編隊を含んでいます。つまり無限構造になっているのです。Buyer Modeではない通常の状態で、Formationタブからドイツ軍「Recon Co」を選択するとメッセージボックスで「Recalculation Error! Check the OOB!」とエラーになります。
了解。BuyerModeばかり気にしていて基本を忘れてましたね。修正しました。上と同じ状態で何らかの中隊(どれでも)を選択し、右の編成リストでツリーのトップにあたるノードをクリックすると例外が発生します
TrueTroop 設定と HistoricalRatings 設定に対応
Code: Select all
System.OverflowException: 算術演算の結果オーバーフローが発生しました。
場所 Mr.OOB.Form2.hq_cost_recalc()
場所 Mr.OOB.Form3.Btn_ok_Click(Object sender, EventArgs e)
場所 System.Windows.Forms.Control.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
はっきりはわからないのですが、そういうシバリはあるような無いようなって感じかもしれません。Nor司令官殿 wrote:ところで、ちょっと気になったんですが、DepotのPBEMで編隊の一部キャンセルはダメってルールは無くなったんでしょうか?
ああ、こんな基本的かつ重要なことをすっかり忘れてましたよ!現状砲兵の割合計算は Artillery に属するすべてのユニットの合計になっていると思います。そこで、間接射撃可能なユニットの合計のみを自動的に計算してくれたらいいなあと思いました。
そうですね。そういう問題がありましたね。Nor wrote: ちょっとひっかかるのは、機械化迫撃砲(80迫+ハーフトラック)や自動車化迫撃砲(80迫+トラック)といった編隊をどう扱うかです。これらの編隊は、全て「砲兵」扱いにしても構わないのでしょうか?つまり、トラック分のコストまで砲兵コストに含めるべきかということです。
航空機に関しては、DCLでは航空機は師団の指揮下にある場合がほとんどで、その購入費用は対戦で合意した購入ポイントの範囲外で購入できることになっていることが多いと思います。ですので、航空機のコストは砲兵制限に含まれないことが現状では多いと思います。Nor wrote:また、航空機や艦船なんかも「砲兵」扱いにするべきでしょうか?