changeset 5016:f89165e55261 draft

(svn r7057) -Codechange: Remove hardcoded lists of road vehicles for each cargo type in favour of just checking the cargo type of each vehicle.
author peter1138 <peter1138@openttd.org>
date Fri, 03 Nov 2006 23:06:54 +0000
parents 98ba9439e240
children ee0d91f464a0
files ai/default/default.c ai/trolly/build.c misc.c table/landscape_const.h variables.h
diffstat 5 files changed, 10 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/ai/default/default.c
+++ b/ai/default/default.c
@@ -163,8 +163,8 @@
 {
 	EngineID best_veh_index = INVALID_ENGINE;
 	int32 best_veh_cost = 0;
-	EngineID i = _cargoc.ai_roadveh_start[cargo];
-	EngineID end = i + _cargoc.ai_roadveh_count[cargo];
+	EngineID i = ROAD_ENGINES_INDEX;
+	EngineID end = i + NUM_ROAD_ENGINES;
 
 	for (; i != end; i++) {
 		const Engine* e = GetEngine(i);
@@ -174,6 +174,9 @@
 			continue;
 		}
 
+		/* Skip vehicles which can't take our cargo type */
+		if (RoadVehInfo(i)->cargo_type != cargo) continue;
+
 		ret = DoCommand(tile, i, 0, 0, CMD_BUILD_ROAD_VEH);
 		if (!CmdFailed(ret) && ret <= money && ret >= best_veh_cost) {
 			best_veh_cost = ret;
--- a/ai/trolly/build.c
+++ b/ai/trolly/build.c
@@ -232,8 +232,8 @@
 		// Not supported yet
 		return INVALID_ENGINE;
 	} else {
-		EngineID start = _cargoc.ai_roadveh_start[p->ainew.cargo];
-		EngineID end = start + _cargoc.ai_roadveh_count[p->ainew.cargo];
+		EngineID start = ROAD_ENGINES_INDEX;
+		EngineID end   = ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES;
 		EngineID i;
 
 		// Let's check it backwards.. we simply want to best engine available..
@@ -241,6 +241,9 @@
 			const Engine* e = GetEngine(i);
 			int32 ret;
 
+			/* Skip vehicles which can't take our cargo type */
+			if (RoadVehInfo(i)->cargo_type != p->ainew.cargo) continue;
+
 			// Is it availiable?
 			// Also, check if the reliability of the vehicle is above the AI_VEHICLE_MIN_RELIABILTY
 			if (!HASBIT(e->player_avail, _current_player) || e->reliability * 100 < AI_VEHICLE_MIN_RELIABILTY << 16) continue;
--- a/misc.c
+++ b/misc.c
@@ -211,9 +211,6 @@
 
 	lpd = &_cargo_types_base_values[_opt.landscape];
 
-	memcpy(_cargoc.ai_roadveh_start, lpd->road_veh_by_cargo_start,sizeof(lpd->road_veh_by_cargo_start));
-	memcpy(_cargoc.ai_roadveh_count, lpd->road_veh_by_cargo_count,sizeof(lpd->road_veh_by_cargo_count));
-
 	for (i = 0; i != NUM_CARGO; i++) {
 		_cargoc.sprites[i] = lpd->sprites[i];
 
--- a/table/landscape_const.h
+++ b/table/landscape_const.h
@@ -11,9 +11,6 @@
 	uint16 initial_cargo_payment[NUM_CARGO];
 	byte transit_days_table_1[NUM_CARGO];
 	byte transit_days_table_2[NUM_CARGO];
-
-	byte road_veh_by_cargo_start[NUM_CARGO];
-	byte road_veh_by_cargo_count[NUM_CARGO];
 } CargoTypesValues;
 
 
@@ -76,10 +73,6 @@
 		{
 			24, 255, 90, 255, 18, 28, 40, 255, 255, 255, 32, 30,
 		},
-
-		/* normal road veh by cargo start & count */
-		{116, 123, 126, 132, 135, 138, 141, 144, 147, 150, 153, 156},
-		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
 	},
 
 	{
@@ -140,10 +133,6 @@
 		{
 			24, 255, 90, 255, 18, 28, 40, 255, 255, 60, 40, 30
 		},
-
-		/* hilly road veh by cargo start & count */
-		{116, 123, 126, 132, 135, 138, 141, 144, 147, 159, 153, 156},
-		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3},
 	},
 
 	{
@@ -204,10 +193,6 @@
 		{
 			24, 20, 90, 255, 15, 28, 40, 255, 255, 80, 255, 30
 		},
-
-		/* desert road veh by cargo start & count */
-		{116, 171, 126, 132, 168, 138, 141, 144, 162, 165, 153, 156},
-		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
 	},
 
 	{
@@ -268,9 +253,5 @@
 		{
 			24, 255, 90, 255, 30, 40, 60, 75, 25, 80, 255, 50
 		},
-
-		/* candy road veh by cargo start & count */
-		{116, 174, 126, 186, 192, 189, 183, 177, 180, 201, 198, 195},
-		{7, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3}
 	}
 };
--- a/variables.h
+++ b/variables.h
@@ -353,8 +353,6 @@
 	SpriteID sprites[NUM_CARGO];
 	byte transit_days_1[NUM_CARGO];
 	byte transit_days_2[NUM_CARGO];
-	byte ai_roadveh_start[NUM_CARGO];
-	byte ai_roadveh_count[NUM_CARGO];
 } CargoConst;
 
 VARDEF CargoConst _cargoc;