branch | noai |
changeset 10776 | 07203fc29812 |
parent 10715 | 6bdf79ffb022 |
child 10829 | 8a0ec0f0f928 |
10774:2c882f0468f2 | 10776:07203fc29812 |
---|---|
252 // default is YAPF type 2 |
252 // default is YAPF type 2 |
253 typedef Trackdir (*PfnChooseRailTrack)(Vehicle*, TileIndex, DiagDirection, TrackBits, bool*); |
253 typedef Trackdir (*PfnChooseRailTrack)(Vehicle*, TileIndex, DiagDirection, TrackBits, bool*); |
254 PfnChooseRailTrack pfnChooseRailTrack = &CYapfRail1::stChooseRailTrack; |
254 PfnChooseRailTrack pfnChooseRailTrack = &CYapfRail1::stChooseRailTrack; |
255 |
255 |
256 // check if non-default YAPF type needed |
256 // check if non-default YAPF type needed |
257 if (_settings.pf.forbid_90_deg) { |
257 if (_settings_game.pf.forbid_90_deg) { |
258 pfnChooseRailTrack = &CYapfRail2::stChooseRailTrack; // Trackdir, forbid 90-deg |
258 pfnChooseRailTrack = &CYapfRail2::stChooseRailTrack; // Trackdir, forbid 90-deg |
259 } |
259 } |
260 |
260 |
261 Trackdir td_ret = pfnChooseRailTrack(v, tile, enterdir, tracks, path_not_found); |
261 Trackdir td_ret = pfnChooseRailTrack(v, tile, enterdir, tracks, path_not_found); |
262 |
262 |
309 |
309 |
310 typedef bool (*PfnCheckReverseTrain)(Vehicle*, TileIndex, Trackdir, TileIndex, Trackdir, int); |
310 typedef bool (*PfnCheckReverseTrain)(Vehicle*, TileIndex, Trackdir, TileIndex, Trackdir, int); |
311 PfnCheckReverseTrain pfnCheckReverseTrain = CYapfRail1::stCheckReverseTrain; |
311 PfnCheckReverseTrain pfnCheckReverseTrain = CYapfRail1::stCheckReverseTrain; |
312 |
312 |
313 // check if non-default YAPF type needed |
313 // check if non-default YAPF type needed |
314 if (_settings.pf.forbid_90_deg) { |
314 if (_settings_game.pf.forbid_90_deg) { |
315 pfnCheckReverseTrain = &CYapfRail2::stCheckReverseTrain; // Trackdir, forbid 90-deg |
315 pfnCheckReverseTrain = &CYapfRail2::stCheckReverseTrain; // Trackdir, forbid 90-deg |
316 } |
316 } |
317 |
317 |
318 /* slightly hackish: If the pathfinders finds a path, the cost of the first node is tested to distinguish between forward- and reverse-path. */ |
318 /* slightly hackish: If the pathfinders finds a path, the cost of the first node is tested to distinguish between forward- and reverse-path. */ |
319 if (reverse_penalty == 0) reverse_penalty = 1; |
319 if (reverse_penalty == 0) reverse_penalty = 1; |
339 |
339 |
340 typedef bool (*PfnFindNearestDepotTwoWay)(Vehicle*, TileIndex, Trackdir, TileIndex, Trackdir, int, int, TileIndex*, bool*); |
340 typedef bool (*PfnFindNearestDepotTwoWay)(Vehicle*, TileIndex, Trackdir, TileIndex, Trackdir, int, int, TileIndex*, bool*); |
341 PfnFindNearestDepotTwoWay pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail1::stFindNearestDepotTwoWay; |
341 PfnFindNearestDepotTwoWay pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail1::stFindNearestDepotTwoWay; |
342 |
342 |
343 // check if non-default YAPF type needed |
343 // check if non-default YAPF type needed |
344 if (_settings.pf.forbid_90_deg) { |
344 if (_settings_game.pf.forbid_90_deg) { |
345 pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail2::stFindNearestDepotTwoWay; // Trackdir, forbid 90-deg |
345 pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail2::stFindNearestDepotTwoWay; // Trackdir, forbid 90-deg |
346 } |
346 } |
347 |
347 |
348 bool ret = pfnFindNearestDepotTwoWay(v, tile, td, last_tile, td_rev, max_distance, reverse_penalty, depot_tile, reversed); |
348 bool ret = pfnFindNearestDepotTwoWay(v, tile, td, last_tile, td_rev, max_distance, reverse_penalty, depot_tile, reversed); |
349 return ret; |
349 return ret; |