(svn r3052) Fix last commit *grml*
authortron
Sun, 16 Oct 2005 14:12:21 +0000
changeset 2523 cab22b46dca9
parent 2522 8ca253e76703
child 2524 5919ff778fde
(svn r3052) Fix last commit *grml*
ai/default/default.c
train_cmd.c
vehicle.h
--- a/ai/default/default.c	Sun Oct 16 14:07:11 2005 +0000
+++ b/ai/default/default.c	Sun Oct 16 14:12:21 2005 +0000
@@ -133,16 +133,12 @@
 		const RailVehicleInfo *rvi = RailVehInfo(i);
 		const Engine* e = GetEngine(i);
 
-		if (e->railtype != railtype ||
-				rvi->flags & RVI_WAGON ||
-				(rvi->flags & RVI_MULTIHEAD && flag & 1) ||
-				!HASBIT(e->player_avail, _current_player) ||
-				e->reliability < 0x8A3D) {
+		if (e->railtype != railtype || rvi->flags & RVI_WAGON
+		    || !HASBIT(e->player_avail, _current_player) || e->reliability < 0x8A3D)
 			continue;
-		}
 
 		ret = DoCommandByTile(tile, i, 0, 0, CMD_BUILD_RAIL_VEHICLE);
-		if (!CmdFailed(ret) && ret <= money &&
+		if (!CmdFailed(ret) && (!(_cmd_build_rail_veh_var1&1) || !(flag&1)) && ret <= money &&
 				_cmd_build_rail_veh_score >= best_veh_score) {
 			best_veh_score = _cmd_build_rail_veh_score;
 			best_veh_index = i;
--- a/train_cmd.c	Sun Oct 16 14:07:11 2005 +0000
+++ b/train_cmd.c	Sun Oct 16 14:12:21 2005 +0000
@@ -498,6 +498,24 @@
 	}
 }
 
+static const byte _railveh_unk1[] = {
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 1, 1, 0, 0, 0,
+	0, 0, 0, 0, 1, 0, 1, 0,
+	0, 1, 1, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 1,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0,
+};
+
 static const byte _railveh_score[] = {
 	1, 4, 7, 19, 20, 30, 31, 19,
 	20, 21, 22, 10, 11, 30, 31, 32,
@@ -572,6 +590,8 @@
 		if (!IsTileOwner(tile, _current_player)) return CMD_ERROR;
 	}
 
+	_cmd_build_rail_veh_var1 = 0;
+
 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
 
 	rvi = RailVehInfo(p1);
@@ -656,6 +676,7 @@
 			InvalidateWindow(WC_COMPANY, v->owner);
 		}
 	}
+	_cmd_build_rail_veh_var1 = _railveh_unk1[p1];
 	_cmd_build_rail_veh_score = _railveh_score[p1];
 
 	InvalidateWindow(WC_REPLACE_VEHICLE, VEH_Train); // updates the replace Train window
--- a/vehicle.h	Sun Oct 16 14:07:11 2005 +0000
+++ b/vehicle.h	Sun Oct 16 14:12:21 2005 +0000
@@ -447,6 +447,7 @@
 VARDEF VehicleID _new_roadveh_id;
 VARDEF uint16 _aircraft_refit_capacity;
 VARDEF byte _cmd_build_rail_veh_score;
+VARDEF byte _cmd_build_rail_veh_var1;
 
 // for each player, for each vehicle type, keep a list of the vehicles.
 //VARDEF Vehicle *_vehicle_arr[8][4];