1
0
Fork 0

Compare commits

...

3 Commits

Author SHA1 Message Date
mrmbernardi ddf557d4bb
Merge fe3d5a7718 into 8675d7b498 2025-07-29 04:48:30 +00:00
translators 8675d7b498 Update: Translations from eints
chinese (simplified): 5 changes by WenSimEHRP
2025-07-29 04:48:22 +00:00
Michael Bernardi fe3d5a7718 Fix #10467: [YAPF] Trains do not use all available tracks 2023-07-27 21:25:29 +02:00
2 changed files with 13 additions and 2 deletions

View File

@ -634,8 +634,11 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}在货
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}切换显示货物
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING}
STR_GRAPH_INDUSTRY_CAPTION :{WHITE}{INDUSTRY} - 货物历史
STR_GRAPH_INDUSTRY_RANGE_PRODUCED :已生产
STR_GRAPH_INDUSTRY_RANGE_TRANSPORTED :已运输
STR_GRAPH_INDUSTRY_RANGE_DELIVERED :已送抵
STR_GRAPH_INDUSTRY_RANGE_WAITING :库存
STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}查看详细数据
@ -4023,6 +4026,8 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}上月
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MINUTE_TITLE :{BLACK}上分钟产量:
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK}(已运输 {COMMA}%
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}将屏幕中心移动到当前工业的位置。按住 <Ctrl> 键点选会在新视点中显示工业位置
STR_INDUSTRY_VIEW_CARGO_GRAPH :{BLACK}货物图表
STR_INDUSTRY_VIEW_CARGO_GRAPH_TOOLTIP :{BLACK}显示工业货物历史图表
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}生产等级:{YELLOW}{COMMA}%
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}此工业已经宣布即刻停业倒闭!

View File

@ -161,12 +161,18 @@ public:
if (n.num_signals_passed >= this->sig_look_ahead_costs.size() / 2) return 0;
if (!IsPbsSignal(n.last_signal_type)) return 0;
const Train *v = Yapf().GetVehicle();
assert(v != nullptr);
assert(v->type == VEH_TRAIN);
/* the longer a train waits, the more it will consider longer routes around blocking trains */
int impatience = std::max(0, v->wait_counter - DAY_TICKS / 2);
if (IsRailStationTile(tile) && IsAnyStationTileReserved(tile, trackdir, skipped)) {
return Yapf().PfGetSettings().rail_pbs_station_penalty * (skipped + 1);
return Yapf().PfGetSettings().rail_pbs_station_penalty * (skipped + 1) + impatience;
} else if (TrackOverlapsTracks(GetReservedTrackbits(tile), TrackdirToTrack(trackdir))) {
int cost = Yapf().PfGetSettings().rail_pbs_cross_penalty;
if (!IsDiagonalTrackdir(trackdir)) cost = (cost * YAPF_TILE_CORNER_LENGTH) / YAPF_TILE_LENGTH;
return cost * (skipped + 1);
return cost * (skipped + 1) + impatience;
}
return 0;
}