Old revision #pjfxbqdcs | New revision #po9qykj5r | ||
---|---|---|---|
4 | engine_list.KeepValue(1); | 4 | engine_list.KeepValue(1); |
5 | 5 | ||
6 | local small_aircraft = AIAirport.GetAirportType(tile_1) == AIAirport.AT_SMALL || AIAirport.GetAirportType(tile_2) == AIAirport.AT_SMALL || | 6 | local small_aircraft = AIAirport.GetAirportType(tile_1) == AIAirport.AT_SMALL || AIAirport.GetAirportType(tile_2) == AIAirport.AT_SMALL || |
7 | AIAirport.GetAirportType(tile_1) == AIAirport.AT_COMMUTER || | 7 | AIAirport.GetAirportType(tile_1) == AIAirport.AT_COMMUTER || AIAirport.GetAirportType(tile_2) == AIAirport.AT_COMMUTER; |
8 | if (small_aircraft) { | 8 | if (small_aircraft) { |
9 | engine_list.Valuate(AIEngine.GetPlaneType); | 9 | engine_list.Valuate(AIEngine.GetPlaneType); |
10 | engine_list.RemoveValue(AIAirport.PT_BIG_PLANE); | 10 | engine_list.RemoveValue(AIAirport.PT_BIG_PLANE); | … | … |
20 | 20 | ||
21 | engine_list.Valuate(AIEngine.GetMaxSpeed); | 21 | engine_list.Valuate(AIEngine.GetMaxSpeed); |
22 | engine_list.Sort(AIList.SORT_BY_VALUE, AIList.SORT_DESCENDING); | 22 | engine_list.Sort(AIList.SORT_BY_VALUE, AIList.SORT_DESCENDING); |
23 | |||
23 | local dist = AIMap.DistanceSquare(tile_1, tile_2); | 24 | local dist = AIMap.DistanceSquare(tile_1, tile_2); |
24 | engine_list.Valuate(AIEngine.GetMaximumOrderDistance); | 24 | engine_list.Valuate(WrightAI.GetMaximumOrderDistance); |
25 | 25 | engine_list.KeepAboveValue(dist - 1); | |
26 | local temp_list = AIList(); | ||
27 | temp_list.AddList(engine_list); | ||
28 | temp_list.KeepValue(0); | ||
29 | for (local i = temp_list.Begin(); temp_list.HasNext(); i = temp_list.Next) { | ||
30 | temp_list.SetValue(i, 0xFFFFFFFF); | ||
31 | } | ||
32 | engine_list.RemoveValue(0); | ||
33 | engine_list.AddList(temp_list); | ||
34 | engine_list.Sort(AIList.SORT_BY_VALUE, AIList.SORT_DESCENDING); | 27 | engine_list.Sort(AIList.SORT_BY_VALUE, AIList.SORT_DESCENDING); |
35 | AILog.Warning(AIEngine.GetName(engine_list.Begin()) + " maximum distance is " + engine_list.GetValue(engine_list.Begin())); | 28 | AILog.Warning(AIEngine.GetName(engine_list.Begin()) + " maximum distance is " + engine_list.GetValue(engine_list.Begin())); |
36 | 29 | … | … |
39 | } else { | 32 | } else { |
40 | return engine_list.Begin(); | 33 | return engine_list.Begin(); |
41 | } | 34 | } |
35 | } | ||
36 | |||
37 | function::WrightAI::GetMaximumOrderDistance(engine) { | ||
38 | local dist = AIEngine.GetMaximumOrderDistance(engine); | ||
39 | return dist == 0 ? 0xFFFFFFFF : dist; | ||
42 | } | 40 | } |