summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-11-03 23:06:54 +0000
committerpeter1138 <peter1138@openttd.org>2006-11-03 23:06:54 +0000
commit8cfe4d6a67ddbde35169adbe2ea0b1c87730ac82 (patch)
treebbeb158718e6311e12e482d43ddb9114a924372a
parentac2b6f39b1f9a1e104fe6859d1a5b7c6afd010f8 (diff)
downloadopenttd-8cfe4d6a67ddbde35169adbe2ea0b1c87730ac82.tar.xz
(svn r7057) -Codechange: Remove hardcoded lists of road vehicles for each cargo type in favour of just checking the cargo type of each vehicle.
-rw-r--r--ai/default/default.c7
-rw-r--r--ai/trolly/build.c7
-rw-r--r--misc.c3
-rw-r--r--table/landscape_const.h19
-rw-r--r--variables.h2
5 files changed, 10 insertions, 28 deletions
diff --git a/ai/default/default.c b/ai/default/default.c
index b78abb5ac..6794d9f26 100644
--- a/ai/default/default.c
+++ b/ai/default/default.c
@@ -163,8 +163,8 @@ static EngineID AiChooseRoadVehToBuild(CargoID cargo, int32 money, TileIndex til
{
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 @@ static EngineID AiChooseRoadVehToBuild(CargoID cargo, int32 money, TileIndex til
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;
diff --git a/ai/trolly/build.c b/ai/trolly/build.c
index ff2158395..059500dc4 100644
--- a/ai/trolly/build.c
+++ b/ai/trolly/build.c
@@ -232,8 +232,8 @@ EngineID AiNew_PickVehicle(Player *p)
// 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 @@ EngineID AiNew_PickVehicle(Player *p)
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;
diff --git a/misc.c b/misc.c
index 4d60dfdf1..c164422d8 100644
--- a/misc.c
+++ b/misc.c
@@ -211,9 +211,6 @@ void InitializeLandscapeVariables(bool only_constants)
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];
diff --git a/table/landscape_const.h b/table/landscape_const.h
index 768a236ca..518a48047 100644
--- a/table/landscape_const.h
+++ b/table/landscape_const.h
@@ -11,9 +11,6 @@ typedef struct CargoTypesValues {
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 @@ static const CargoTypesValues _cargo_types_base_values[4] = {
{
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 @@ static const CargoTypesValues _cargo_types_base_values[4] = {
{
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 @@ static const CargoTypesValues _cargo_types_base_values[4] = {
{
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 @@ static const CargoTypesValues _cargo_types_base_values[4] = {
{
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}
}
};
diff --git a/variables.h b/variables.h
index 3c222ad1a..b8a4536ea 100644
--- a/variables.h
+++ b/variables.h
@@ -353,8 +353,6 @@ typedef struct {
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;