equal
deleted
inserted
replaced
67 |
67 |
68 static int CDECL TrainEngineNumberSorter(const void *a, const void *b) |
68 static int CDECL TrainEngineNumberSorter(const void *a, const void *b) |
69 { |
69 { |
70 const EngineID va = *(const EngineID*)a; |
70 const EngineID va = *(const EngineID*)a; |
71 const EngineID vb = *(const EngineID*)b; |
71 const EngineID vb = *(const EngineID*)b; |
72 int r = va - vb; |
72 int r = ListPositionOfEngine(va) - ListPositionOfEngine(vb); |
73 |
73 |
74 return _internal_sort_order ? -r : r; |
74 return _internal_sort_order ? -r : r; |
75 } |
75 } |
76 |
76 |
77 static int CDECL TrainEngineCostSorter(const void *a, const void *b) |
77 static int CDECL TrainEngineCostSorter(const void *a, const void *b) |
413 |
413 |
414 if (engines == NULL) ExtendEngineListSize((const EngineID**)engines, &engine_length, 25); |
414 if (engines == NULL) ExtendEngineListSize((const EngineID**)engines, &engine_length, 25); |
415 if (wagons == NULL) ExtendEngineListSize((const EngineID**)wagons, &wagon_length, 25); |
415 if (wagons == NULL) ExtendEngineListSize((const EngineID**)wagons, &wagon_length, 25); |
416 |
416 |
417 for (j = 0; j < NUM_TRAIN_ENGINES; j++) { |
417 for (j = 0; j < NUM_TRAIN_ENGINES; j++) { |
418 EngineID i = GetRailVehAtPosition(j); |
418 EngineID i = GetRailVehAtPosition(j); // XXX Can be removed when the wagon list is also sorted. |
419 const Engine *e = GetEngine(i); |
419 const Engine *e = GetEngine(i); |
420 const RailVehicleInfo *rvi = RailVehInfo(i); |
420 const RailVehicleInfo *rvi = RailVehInfo(i); |
421 |
421 |
422 if (!HasPowerOnRail(e->railtype, railtype)) continue; |
422 if (!HasPowerOnRail(e->railtype, railtype)) continue; |
423 if (!IsEngineBuildable(i, VEH_Train)) continue; |
423 if (!IsEngineBuildable(i, VEH_Train)) continue; |