Loading

Revision differences

Old revision #pqpkz9ykhNew revision #pkii1nhhh
1/* Original code */  1class MoneyTest {
2(…)  2    function DoMoneyTest() {
3//    local price = AIEngine.GetPrice(engine);  3        local price = GetPrice();
4//    if (HasMoney(price)) GetMoney(price);  4        if (WrightAI.HasMoney(price)) {
5//    local vehicle = AIVehicle.BuildVehicle(best_hangar, engine);  5            WrightAI.GetMoney(price);
6//    RepayLoan();  6        }
7//    if (!AIVehicle.IsValidVehicle(vehicle)) {  7        if (DoBuild()) {
8//        if (!silent_mode) AILog.Error("Couldn't build the aircraft");  8            WrightAI.RepayLoan();
9//        return -1;  9            return true;
10//    }  10        }
11(…)  11        WrightAI.RepayLoan();
   12        return false;
   13    }
   14}
12  15  
  16class TestBuildAirport extends MoneyTest {  
  17    loc = null;  
  18    tp = null;  
  19    id = null;  
13  20  
14/* Modified code */  21    function DoBuild() {
15class BuildVehicleMoneyTest {  22        return AIExecMode() && AIAirport.BuildAirport(loc, tp, id);
16    function DoMoneyTest() {  23    }
17        if (WrightAI.HasMoney(GetPrice())) WrightAI.GetMoney(GetPrice());  24   
18        if (DoBuildVehicle()) {  25    function GetPrice() {
19            WrightAI.RepayLoan();  26        local last_cost = AIAccounting();
   27        AITestMode() && AIAirport.BuildAirport(loc, tp, id);
   28        return last_cost.GetCosts();
   29    }
   30   
   31    function TryBuild(location, type, theid) {
   32        loc = location;
   33        tp = type;
   34        id = theid;
   35        if (DoMoneyTest()) {
20            return true;  36            return true;  
  37        } else {  
  38            assert(AIError.GetLastError() != AIError.ERR_STATION_TOO_SPREAD_OUT);  
  39            return false;  
21        }  40        }  
22        WrightAI.RepayLoan();    
23        return false;    
24    }  41    }  
25}  42}  
26  43  
27class TestBuildVehicle extends BuildVehicleMoneyTest {  27class TestBuildVehicle extends MoneyTest {
28    h = null;  45    h = null;  
29    e = null;  46    e = null;  
30    v = null;  47    v = null;  
31    p = null;    
32     48     
33    function DoBuildVehicle() {  33    function DoBuild() {
34        v = AIVehicle.BuildVehicle(h, e);  50        v = AIVehicle.BuildVehicle(h, e);  
35        if (!AIVehicle.IsValidVehicle(v)) {  51        if (!AIVehicle.IsValidVehicle(v)) {  
36//            if (!silent_mode) AILog.Error("Couldn't build the aircraft");    
37            return false;  52            return false;  
38        }  53        }  
39        return true;  54        return true;  
  
46    function TryBuild(best_hangar, engine) {  61    function TryBuild(best_hangar, engine) {  
47        h = best_hangar;  62        h = best_hangar;  
48        e = engine;  63        e = engine;  
49        p = GetPrice();    
50        if (DoMoneyTest()) {  64        if (DoMoneyTest()) {  
51            return v;  65            return v;  
52        }  66        }  
53        return null;  67        return null;  
54    }  68    }  
55}  55}
56    
57/* Somewhere else */    
58(…)    
59    local tvb = TestBuildVehicle();    
60    local vehicle = tvb.TryBuild(best_hangar, engine);    
61    if (vehicle == null) {    
62        if (!silent_mode) AILog.Error("Couldn't build the aircraft");    
63        return -1;    
64    }    
65(…)