diff options
author | tron <tron@openttd.org> | 2005-10-18 07:01:00 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2005-10-18 07:01:00 +0000 |
commit | d4752ba0da4c6387020167b3acee938ed14d9a66 (patch) | |
tree | a9e1c8d1f0c24a73580b5124a2e50ab1823ab161 /ai/default | |
parent | d4463b4b950163ebe6cb8db989967ce65ad75da5 (diff) | |
download | openttd-d4752ba0da4c6387020167b3acee938ed14d9a66.tar.xz |
(svn r3058) The default AI may not build dual headed trains under certain circumstances.
Simplify this check by testing the rail vehicle info flags instead of passing a global variable around.
Note: This is not exactly the original behaviour, because the Lev4 was always allowed to be built, but i guess that was a glitch.
Diffstat (limited to 'ai/default')
-rw-r--r-- | ai/default/default.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ai/default/default.c b/ai/default/default.c index 8257b0026..59227e32a 100644 --- a/ai/default/default.c +++ b/ai/default/default.c @@ -133,12 +133,16 @@ static int AiChooseTrainToBuild(byte railtype, int32 money, byte flag, TileIndex const RailVehicleInfo *rvi = RailVehInfo(i); const Engine* e = GetEngine(i); - if (e->railtype != railtype || rvi->flags & RVI_WAGON - || !HASBIT(e->player_avail, _current_player) || e->reliability < 0x8A3D) + if (e->railtype != railtype || + rvi->flags & RVI_WAGON || + (rvi->flags & RVI_MULTIHEAD && flag & 1) || + !HASBIT(e->player_avail, _current_player) || + e->reliability < 0x8A3D) { continue; + } ret = DoCommandByTile(tile, i, 0, 0, CMD_BUILD_RAIL_VEHICLE); - if (!CmdFailed(ret) && (!(_cmd_build_rail_veh_var1&1) || !(flag&1)) && ret <= money && + if (!CmdFailed(ret) && ret <= money && _cmd_build_rail_veh_score >= best_veh_score) { best_veh_score = _cmd_build_rail_veh_score; best_veh_index = i; |