calculate exact values of vehicle steps#569
Conversation
teamhimeh
left a comment
There was a problem hiding this comment.
Automated code review by Antigravity.
This review was generated by analyzing the diff in the context of the full codebase. It specifically addresses the root cause of the test_priority_signal_reserve automated test failure.
teamhimeh
left a comment
There was a problem hiding this comment.
Antigravityによる自動コードレビューです。
先ほどのレビューの日本語訳になります。このレビューはコードベース全体と差分をコンテキストとして分析した結果生成されました。特にCIで失敗している test_priority_signal_reserve テストの根本原因について指摘しています。
| fahr[0]->set_leading(false); // switches off signal checks ... | ||
| uint32 dist = VEHICLE_STEPS_PER_CARUNIT*train_length<<YARDS_PER_VEHICLE_STEP_SHIFT; | ||
| inspecting = self; | ||
| if( using_last_car_steps ) { |
There was a problem hiding this comment.
新しいコードでは、最初から dist に start_step が足され、すべての距離調整が set_leading(false) (シグナルチェック無効)の状態のまま最初の do_drive ループで行われるようになっています。
以前のコードでは、シグナルチェックを無効にして初期配置を行った後、set_leading(true) でシグナルチェックを有効に戻してから、2回目のループで start_step までの微調整を行っていました。
この正確な配置調整時にシグナルチェックが行われなくなったため、自動テスト test_priority_signal_reserve が失敗しています(シグナルの状態評価が誤る、または予約ブロックの確保に失敗するなどの問題が生じています)。初期ステップへの進行時には適切にシグナルチェックが有効になるよう修正をお願いします。
(Antigravity による自動レビュー)
|
|
||
| // is driving direction not change? | ||
| ribi_t::ribi neue_richtung_rwr = ribi_t::backward(fahr[0]->calc_direction(route.front(), route.at(min(2, route.get_count() - 1)))); | ||
| ribi_t::ribi neue_richtung_rwr = ribi_t::backward(front()->calc_direction(route.front(), route.at(min(1, route.get_count() - 1)))); |
There was a problem hiding this comment.
route.at(min(2, route.get_count() - 1)) が min(1, route.get_count() - 1) に変更されました。
Simutransのルーティングにおいて進行方向を確認する際、とくに次のタイルが対角線のステップであったり極端に短い区間である場合、正確な方角を得るために「次の次のタイル (at(2))」を参照する必要があります。これを at(1) に変更すると、カーブやポイントなどで neue_richtung_rwr が誤って計算される可能性があります。
古いコードの min(2, ...) は方向計算のために意図的に2タイル先まで見る設計だったと思われますが、この変更は意図的なものでしょうか?
(Antigravity による自動レビュー)
|
コードの変更内容、既存レビューコメント、CI結果を分析し、変更を網羅するための手動テストケースを作成しました。 提案する手動テストケース
(Automated PR test case generation by AI agent) |
|
ローカルマップにおいて、各種waytypeの上記各条件におけるホーム発着時の挙動を確認しました |
|
また、参照ミス等によるクラッシュは現時点では確認していません |
最後尾の車両の
stepを記録することで、方向転換せずに発車した場合に車両が飛ぶ不具合を最小限にしました