Ignore:
Timestamp:
Apr 6, 2021, 8:11:02 PM (5 years ago)
Author:
chronos
Message:
  • Modified: Merged trunk branch version r348 into highdpi branch.
Location:
branches/highdpi/AI/StdAI
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/highdpi/AI/StdAI/AI.pas

    r303 r349  
    11221122            begin // settlers could be added to this city
    11231123              Happy := BasicHappy;
    1124               for i := 0 to 27 do
     1124              for i := 0 to nWonder - 1 do
    11251125                if Built[i] > 0 then
    11261126                  Inc(Happy);
     
    25962596          if (iix >= 0) and (((Imp[iix].Kind in [ikNatLocal, ikNatGlobal]) and
    25972597            (RO.NatBuilt[iix] > 0)) or ((Imp[iix].Kind = ikWonder) and
    2598             (RO.Wonder[iix].CityID <> -1))) then
     2598            (RO.Wonder[iix].CityID <> WonderNotBuiltYet))) then
    25992599            CheckProd := True;
    26002600        end;
  • branches/highdpi/AI/StdAI/Barbarina.pas

    r303 r349  
    12421242      WonderAvailable := WonderAvailable and PrimeWonder; // alway prefer prime wonders
    12431243    Count := 0;
    1244     for iix := 0 to 27 do
     1244    for iix := 0 to nWonder - 1 do
    12451245    begin
    12461246      if (1 shl iix) and WonderAvailable <> 0 then
     
    12541254    end;
    12551255    Count := Random(Count);
    1256     for iix := 0 to 27 do
     1256    for iix := 0 to nWonder - 1 do
    12571257    begin
    12581258      if (1 shl iix) and WonderAvailable <> 0 then
     
    13261326  WonderAvailable := 0;
    13271327  WonderInWork := 0;
    1328   for iix := 0 to 27 do
     1328  for iix := 0 to nWonder - 1 do
    13291329    if (Imp[iix].Preq <> preNA) and ((Imp[iix].Preq = preNone) or
    1330       IsResearched(Imp[iix].Preq)) and (RO.Wonder[iix].CityID = -1) then
     1330      IsResearched(Imp[iix].Preq)) and (RO.Wonder[iix].CityID = WonderNotBuiltYet) then
    13311331      Inc(WonderAvailable, 1 shl iix);
    13321332  for cix := 0 to RO.nCity - 1 do
     
    13341334    begin
    13351335      iix := City_CurrentImprovementProject(cix);
    1336       if (iix >= 0) and (iix < 28) then
     1336      if (iix >= 0) and (iix < nWonder) then
    13371337        Inc(WonderInWork, 1 shl iix)
    13381338      else if iix = imPalace then
     
    14281428
    14291429          iix := City_CurrentImprovementProject(cix);
    1430           if (iix >= 0) and (iix < 28) or (iix = imPalace) or
     1430          if (iix >= 0) and (iix < nWonder) or (iix = imPalace) or
    14311431            (iix = imShipComp) or (iix = imShipPow) or (iix = imShipHab) then
    14321432            City_OptimizeTiles(cix, rwMaxProd)
     
    14471447          if cix = cixNewCapital then
    14481448            City_StartImprovement(cix, imPalace)
    1449           else if (iix >= 0) and (iix < 28) and ((1 shl iix) and
     1449          else if (iix >= 0) and (iix < nWonder) and ((1 shl iix) and
    14501450            WonderAvailable <> 0) then
    14511451          // complete wonder production first
     
    15001500              if ((RO.Government <> gDespotism) or (RO.nUn >= RO.nCity * 4)) and
    15011501                not IsResearched(adMassProduction) and (Built[imPalace] > 0) and
    1502                 (RO.Wonder[woZeus].CityID = -1) and City_Improvable(cix, woZeus) then
     1502                (RO.Wonder[woZeus].CityID = WonderNotBuiltYet) and City_Improvable(cix, woZeus) then
    15031503                City_StartImprovement(cix, woZeus)
    15041504              else if (City_CurrentImprovementProject(cix) >= 0) and
    1505                 (City_CurrentImprovementProject(cix) < 28) then
     1505                (City_CurrentImprovementProject(cix) < nWonder) then
    15061506              begin// wonder already built, try to switch to different one
    15071507                if (WonderAvailable and not WonderInWork > 0) and
     
    15531553              begin // low prio projects
    15541554                ImportantCity := WillProduceColonyShip or (Built[imPalace] > 0);
    1555                 for iix := 0 to 27 do
     1555                for iix := 0 to nWonder - 1 do
    15561556                  if Built[iix] > 0 then
    15571557                    ImportantCity := True;
     
    16051605            City_RebuildImprovement(cix, imTownHall)
    16061606          else if (RO.Government = gFundamentalism) and not WillProduceColonyShip then
    1607             for iix := 28 to nImp - 1 do
     1607            for iix := nWonder to nImp - 1 do
    16081608              if (Built[iix] > 0) and
    16091609                ((iix in [imTemple, imTheater, imCathedral, imColosseum,
  • branches/highdpi/AI/StdAI/Protocol.pas

    r303 r349  
    1111  nImp = 70; { number of improvements }
    1212  nPl = 15; { max number of players, don't change! }
     13  nWonder = 28; { max number of wonders }
    1314  nUmax = 4096; { max units/player, don't set above 4096 }
    1415  nCmax = 1024; { max cities/player, don't set above 4096 }
     
    12651266mcHospital = mcSupplyShip;
    12661267
     1268// Wonders CityID constants
     1269WonderNotBuiltYet = -1;
     1270WonderDestroyed = -2;
     1271
    12671272type
    12681273  TServerCall = function (Command, Player, Subject: Integer; var Data)
     
    12871292    Flags: Cardinal;
    12881293  end;
     1294  PUn = ^TUn;
    12891295
    12901296  { TCity }
     
    13101316    // array value =1 indicates built improvement
    13111317  end;
     1318  PCity = ^TCity;
    13121319
    13131320  TModel = packed record
     
    13481355    Flags: Word;
    13491356  end;
     1357  PUnitInfo = ^TUnitInfo;
    13501358
    13511359  TCityInfo = packed record
     
    13581366    Flags: Word;
    13591367  end;
     1368  PCityInfo = ^TCityInfo;
    13601369
    13611370  TModelInfo = packed record
     
    15871596
    15881597  TTileList = array [0 .. INFIN] of Cardinal;
     1598  PTileList = ^TTileList;
    15891599  TTileObservedLastList = array [0 .. INFIN] of SmallInt;
    15901600  TOwnerList = array [0 .. INFIN] of ShortInt;
     
    16411651    Tribute: array [0 .. nPl - 1] of Integer; // no longer in use
    16421652    TributePaid: array [0 .. nPl - 1] of Integer; // no longer in use
    1643     Wonder: array [0 .. 27] of TWonderInfo;
     1653    Wonder: array [0 .. nWonder - 1] of TWonderInfo;
    16441654    Ship: array [0 .. nPl - 1] of TShipInfo;
    1645     NatBuilt: array [28 .. (nImp + 3) div 4 * 4 - 1] of ShortInt;
     1655    NatBuilt: array [nWonder .. (nImp + 3) div 4 * 4 - 1] of ShortInt;
    16461656    nBattleHistory: Integer;
    16471657    BattleHistory: ^TBattleList; // complete list of all my battles in the whole game
     
    17681778procedure DelphiRandomize;
    17691779
     1780
    17701781implementation
    17711782
  • branches/highdpi/AI/StdAI/ToolAI.pas

    r303 r349  
    234234      Inc(Result, CityReport.FoodRep - CityReport.Eaten);
    235235  end;
    236   for i := 28 to nImp - 1 do
     236  for i := nWonder to nImp - 1 do
    237237    if MyCity[cix].Built[i] > 0 then
    238238      Dec(Result, Imp[i].Maint);
Note: See TracChangeset for help on using the changeset viewer.