summaryrefslogtreecommitdiff
path: root/ai
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-10-18 07:01:00 +0000
committertron <tron@openttd.org>2005-10-18 07:01:00 +0000
commita85d68ed574f547af2ccaeec1ddaff589480598f (patch)
treea9e1c8d1f0c24a73580b5124a2e50ab1823ab161 /ai
parent82d0f525e5a4c0512d910f27496f0ee8e65ce041 (diff)
downloadopenttd-a85d68ed574f547af2ccaeec1ddaff589480598f.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')
-rw-r--r--ai/default/default.c10
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;