From 8cfe4d6a67ddbde35169adbe2ea0b1c87730ac82 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 3 Nov 2006 23:06:54 +0000 Subject: (svn r7057) -Codechange: Remove hardcoded lists of road vehicles for each cargo type in favour of just checking the cargo type of each vehicle. --- ai/default/default.c | 7 +++++-- ai/trolly/build.c | 7 +++++-- misc.c | 3 --- table/landscape_const.h | 19 ------------------- variables.h | 2 -- 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; -- cgit v1.2.3-54-g00ecf