MIP-003で行った車庫行き扱いの改良2点について簡単に説明します。
詳細は README_MIP_ja.txt および INTERNAL_MIP_ja.txt をごらんください。
背景・動機:
私がかつてプレーしていた時に、編成組替えなどをする場合の車庫送りで無用なストレスを感じていた事に端を発しています。
オリジナルの「車庫へ」ボタンは、その場で「最寄りの」車庫へ「今すぐに」むかってしまうものため、
その時点の営業運行を終着駅まで終らせてから回送として車庫に入れたい場合、
* 手でスケジュールの中に車庫行きエントリを追加
するか、
* ほど良いタイミングで「回送」を押して、終着駅を出るところで「車庫へ」を押す
のどちらかを行う必要があります。
扱う編成が増えてくると、この(やり過ぎかもしれないけど)マメな操作の負担はまあまあになってきて
時に「Simutransってシューティングゲームだったっけ?」と思うことさえあったり
なんとか一発で「営業運転の区切が着いたら車庫に入る」という操作ができないものかと思っていました。
SMART_GO_HOME_DEPOT:「車庫へ」ボタンの改造:
一回押すと、以前に出庫した車庫 (これをhome depotとして、元のSimutransでも記憶している) へ行くエントリを
以前に出庫した後に最初に到着した駅の手前へ挿入します。この「以前に出庫した車庫」を所属車庫と考え、
現在の運行の区切で所属車庫に戻らせるという指示になります。
二回押すと、オリジナルと同じ「最寄りの車庫へ」という動作になります。
なお、「最寄りの車庫」の探索も、負荷が若干下がるようにアルゴリズムを追加しています。
(とりあえず狭い範囲で探索させてから無かったら探索範囲を広げるという単純な手法)
NO_LOAD_BEYOND_DEPOT: 車庫より先への積載を行わない
スケジュールの中に車庫行き項目が入っている場合、その車庫行きから先の駅へ行く旅客・貨物の積載を行いません。
これによって、往復路線でかつ始点や終点の後に車庫行きになっている場合は、これらの駅から回送で入庫することになります。
入庫時の積荷は入庫とともに捨てられることになるので、一般的には問題ないと思われますが、
128な人のブログで紹介されているような「わざと車庫送りにして旅客を捨てる」というテクニックが通用しなくなります。
この二つを組み合わせることによって、
* 往復路線で
* 始点あるいは終点の近辺に車庫がある
場合は、ボタン一発で程良い回送+入庫ができるようになります。
以上、簡単な説明でした。
これをバイナリの方に入れるかどうかは悩むところですが、とりえずバグ出しをしたいので入れてみます。
使いにくくて困るという方がいらしたら言ってください。抜くか実行時に機能を切れるように考えます。
(補足: 00:28)
現状、SMART_GO_HOME_DEPOT だけだと、始点駅や終点駅のすぐ手前に車庫行きが挿入されてしまいます。
(スケジュールと車庫の関係次第ですが)
始点や終点が車庫と並んで引き上げ線になっていると都合が良いです。
もしくは、SMART_GO_HOME_DEPOT_STEP_BACK という実験中のオプションを有効にすれば、
始終点駅のすぐ後に車庫行きが挿入されます。また出庫する時は始終点駅から運行を再開するようになります。
ただし動作検証が充分でありません。