Loading

Revision differences

Old revision #p9xonsoqaNew revision #psjlkah9v
4            local tileList = AITileList();  4            local tileList = AITileList();  
5            tileList.AddRectangle(rectangleCoordinates[0], rectangleCoordinates[1]);  5            tileList.AddRectangle(rectangleCoordinates[0], rectangleCoordinates[1]);  
6  6  
7            if (airport1_tile != 0) {  7            local tempList = AITileList();
8                /* If we have the tile of the first airport, we don't want the second airport to be as close or as further */  8            tempList.AddList(tileList);
9                tileList.Valuate(AITile.GetDistanceSquareToTile, airport1_tile);  9            for (local tile = tileList.Begin(); !tileList.IsEnd(); tile = tileList.Next()) {
10                tileList.KeepBetweenValue(min_dist, max_dist);  10                if (airport1_tile != 0) {
11                tileList.Valuate(WrightAI.DistanceRealFake, airport1_tile);  11                    /* If we have the tile of the first airport, we don't want the second airport to be as close or as further */
12                tileList.KeepBelowValue(fakedist);  12                    local distance_square = AITile.GetDistanceSquareToTile(tile, airport1_tile);
13                if (tileList.Count() == 0) continue;  13                    if (!(distance_square > min_dist)) {
   14                        tempList.RemoveItem(tile);
   15                        continue;
   16                    }
   17                    if (!(distance_square < max_dist)) {
   18                        tempList.RemoveItem(tile);
   19                        continue;
   20                    }
   21                    if (!(WrightAI.DistanceRealFake(tile, airport1_tile) < fakedist)) {
   22                        tempList.RemoveItem(tile);
   23                        continue;
   24                    }
   25                }
   26
   27                if (!(AITile.IsBuildableRectangle(tile, airport_x, airport_y))) {
   28                    tempList.RemoveItem(tile);
   29                    continue;
   30                }
   31
   32                /* Sort on acceptance, remove places that don't have acceptance */
   33                if (AITile.GetCargoAcceptance(tile, this.cargoId, airport_x, airport_y, airport_rad) < 10) {
   34                    tempList.RemoveItem(tile);
   35                    continue;
   36                }
   37               
   38                local cargo_production = AITile.GetCargoProduction(tile, this.cargoId, airport_x, airport_y, airport_rad);
   39                if (cargo_production < 18) {
   40                    tempList.RemoveItem(tile);
   41                    continue;
   42                } else {
   43                    tempList.SetValue(tile, cargo_production);
   44                }
14            }  45            }  
  46            tileList.Clear();  
  47            tileList.AddList(tempList);  
15  48  
16            tileList.Valuate(AITile.IsBuildableRectangle, airport_x, airport_y);  49//            if (airport1_tile != 0) {
17            tileList.KeepValue(1)  50//                /* If we have the tile of the first airport, we don't want the second airport to be as close or as further */
18            if (tileList.Count() == 0) continue;  51//                tileList.Valuate(AITile.GetDistanceSquareToTile, airport1_tile);
19  52//                tileList.KeepBetweenValue(min_dist, max_dist);
20            /* Sort on acceptance, remove places that don't have acceptance */  53//                tileList.Valuate(WrightAI.DistanceRealFake, airport1_tile);
21            tileList.Valuate(AITile.GetCargoAcceptance, this.cargoId, airport_x, airport_y, airport_rad);  54//                tileList.KeepBelowValue(fakedist);
22            tileList.RemoveBelowValue(10);  55//                if (tileList.Count() == 0) continue;
23            if (tileList.Count() == 0) continue;  56//            }
24  57//
25            tileList.Valuate(AITile.GetCargoProduction, this.cargoId, airport_x, airport_y, airport_rad);  58//            tileList.Valuate(AITile.IsBuildableRectangle, airport_x, airport_y);
26            tileList.RemoveBelowValue(18);  59//            tileList.KeepValue(1)
   60//            if (tileList.Count() == 0) continue;
   61//
   62//            /* Sort on acceptance, remove places that don't have acceptance */
   63//            tileList.Valuate(AITile.GetCargoAcceptance, this.cargoId, airport_x, airport_y, airport_rad);
   64//            tileList.RemoveBelowValue(10);
   65//            if (tileList.Count() == 0) continue;
   66//
   67//            tileList.Valuate(AITile.GetCargoProduction, this.cargoId, airport_x, airport_y, airport_rad);
   68//            tileList.RemoveBelowValue(18);
27            /* Couldn't find a suitable place for this town, skip to the next */  69            /* Couldn't find a suitable place for this town, skip to the next */  
28            if (tileList.Count() == 0) continue;  70            if (tileList.Count() == 0) continue;  
29            tileList.Sort(AIList.SORT_BY_VALUE, false); 71            tileList.Sort(AIList.SORT_BY_VALUE, false);