| author | tron |
| Sun, 16 Oct 2005 14:12:21 +0000 | |
| changeset 2523 | cab22b46dca9 |
| parent 2522 | 8ca253e76703 |
| child 2524 | 5919ff778fde |
| ai/default/default.c | file | annotate | diff | comparison | revisions | |
| train_cmd.c | file | annotate | diff | comparison | revisions | |
| vehicle.h | file | annotate | diff | comparison | revisions |
--- 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];