Ignore:
Timestamp:
May 19, 2022, 10:39:34 PM (2 years ago)
Author:
chronos
Message:
  • Modified: Use first capital letter in identifiers.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LocalPlayer/Help.pas

    r431 r447  
    4141  THyperText = class(TStringList)
    4242  public
    43     procedure AddLine(s: String = ''; Format: integer = 0; Picpix: Integer = 0;
    44       LinkCategory: integer = 0; LinkIndex: integer = 0);
     43    procedure AddLine(S: String = ''; Format: Integer = 0; Picpix: Integer = 0;
     44      LinkCategory: Integer = 0; LinkIndex: Integer = 0);
    4545    procedure LineFeed;
    4646    procedure AppendList(Source: THyperText);
     
    7878    procedure CloseBtnClick(Sender: TObject);
    7979    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
    80       x, y: integer);
     80      X, Y: Integer);
    8181    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
    82       Shift: TShiftState; x, y: integer);
     82      Shift: TShiftState; X, Y: Integer);
    8383    procedure BackBtnClick(Sender: TObject);
    8484    procedure TopBtnClick(Sender: TObject);
     
    104104    NoMap: TIsoMap;
    105105    x0: array [-2..180] of Integer;
    106     procedure PaintTerrIcon(x, y, xSrc, ySrc: Integer);
     106    procedure PaintTerrIcon(X, Y, xSrc, ySrc: Integer);
    107107    procedure ScrollBarUpdate(Sender: TObject);
    108     procedure Line(ca: TCanvas; i: Integer; lit: Boolean);
     108    procedure Line(ca: TCanvas; I: Integer; lit: Boolean);
    109109    procedure Prepare(sbPos: Integer = 0);
    110110    procedure ShowNewContentProcExecute(NewMode: TWindowMode; HelpContext: string);
     
    176176end;
    177177
    178 procedure THyperText.AddLine(s: String; Format: integer; Picpix: integer;
    179   LinkCategory: integer; LinkIndex: integer);
     178procedure THyperText.AddLine(S: String; Format: Integer; Picpix: Integer;
     179  LinkCategory: Integer; LinkIndex: Integer);
    180180var
    181181  HelpLineInfo: THelpLineInfo;
     
    187187  HelpLineInfo.Picpix := Picpix;
    188188  HelpLineInfo.Link := LinkCategory shl 8 + LinkIndex;
    189   AddObject(s, TObject(HelpLineInfo));
     189  AddObject(S, TObject(HelpLineInfo));
    190190end;
    191191
     
    263263
    264264  nTerrainHelp = 14;
    265   TerrainHelp: array [0 .. nTerrainHelp - 1] of integer = (fGrass, fGrass + 12,
     265  TerrainHelp: array [0 .. nTerrainHelp - 1] of Integer = (fGrass, fGrass + 12,
    266266    fPrairie, fForest, fJungle, fHills, fMountains, fSwamp, fTundra, fArctic,
    267267    fDesert, 3 * 12 { DeadLands } , fShore, fOcean);
    268268
    269269  nJobHelp = 8;
    270   JobHelp: array [0 .. nJobHelp - 1] of integer = (jRoad, jRR, jCanal, jIrr,
     270  JobHelp: array [0 .. nJobHelp - 1] of Integer = (jRoad, jRR, jCanal, jIrr,
    271271    jFarm, jMine, jFort, jBase);
    272272
     
    280280  CaptionLeft := BackBtn.Left + BackBtn.Width;
    281281  CaptionRight := SearchBtn.Left;
    282   inc(ModalFrameIndent, 29);
     282  Inc(ModalFrameIndent, 29);
    283283  MainText := THyperText.Create;
    284284  MainText.OwnsObjects := True;
     
    356356  if ScrollBar.Process(Msg) then begin
    357357    Sel := -1;
    358     SmartUpdateContent(true)
     358    SmartUpdateContent(True)
    359359  end;
    360360  }
     
    364364begin
    365365  if Sel <> -1 then begin
    366     Line(Canvas, Sel, false);
     366    Line(Canvas, Sel, False);
    367367    Sel := -1
    368368  end;
     
    380380end;
    381381
    382 procedure THelpDlg.Line(ca: TCanvas; i: Integer; lit: Boolean);
     382procedure THelpDlg.Line(ca: TCanvas; I: Integer; lit: Boolean);
    383383var
    384   TextColor, x, y: Integer;
     384  TextColor, X, Y: Integer;
    385385  TextSize: TSize;
    386   s: string;
    387 begin
    388   s := MainText[ScrollBar.Position + i];
    389   if s = '' then
     386  S: string;
     387begin
     388  S := MainText[ScrollBar.Position + I];
     389  if S = '' then
    390390    Exit;
    391   x := x0[i];
    392   y := 2 + i * 24;
     391  X := x0[I];
     392  Y := 2 + I * 24;
    393393  if ca = Canvas then
    394394  begin
    395     x := x + SideFrame;
    396     y := y + WideFrame
    397   end;
    398   if THelpLineInfo(MainText.Objects[ScrollBar.Position + i]).Format
     395    X := X + SideFrame;
     396    Y := Y + WideFrame
     397  end;
     398  if THelpLineInfo(MainText.Objects[ScrollBar.Position + I]).Format
    399399    in [pkCaption, pkBigTer, pkRightIcon, pkBigFeature] then
    400400  begin
    401401    ca.Font.Assign(CaptionFont);
    402402    { ca.brush.color:=CaptionColor;
    403       ca.FillRect(rect(x,i*24,x+24,i*24+24));
    404       ca.brush.color:=$FFFFFF;
    405       ca.FrameRect(rect(x+1,i*24+1,x+24-1,i*24+24-1));
     403      ca.FillRect(rect(X,I*24,X+24,I*24+24));
     404      ca.Brush.Color:=$FFFFFF;
     405      ca.FrameRect(rect(X+1,I*24+1,X+24-1,I*24+24-1));
    406406      ca.Brush.Style:=bsClear; }
    407     BitBltCanvas(ca, x, y - 4, 24, 24, HGrSystem.Data.Canvas, 1,
     407    BitBltCanvas(ca, X, Y - 4, 24, 24, HGrSystem.Data.Canvas, 1,
    408408      146);
    409     BiColorTextOut(ca, $FFFFFF, $7F007F, x + 10 - ca.Textwidth(s[1]) div 2,
    410       y - 3, s[1]);
    411     BiColorTextOut(ca, CaptionColor, $7F007F, x + 24, y - 3, copy(s, 2, 255));
     409    BiColorTextOut(ca, $FFFFFF, $7F007F, X + 10 - ca.Textwidth(S[1]) div 2,
     410      Y - 3, S[1]);
     411    BiColorTextOut(ca, CaptionColor, $7F007F, X + 24, Y - 3, Copy(S, 2, 255));
    412412    ca.Font.Assign(UniFont[ftNormal]);
    413413  end
    414   else if THelpLineInfo(MainText.Objects[ScrollBar.Position + i]).Format = pkSection
     414  else if THelpLineInfo(MainText.Objects[ScrollBar.Position + I]).Format = pkSection
    415415  then
    416416  begin
    417417    ca.Font.Assign(CaptionFont);
    418     BiColorTextOut(ca, CaptionColor, $7F007F, x, y - 3, s);
     418    BiColorTextOut(ca, CaptionColor, $7F007F, X, Y - 3, S);
    419419    ca.Font.Assign(UniFont[ftNormal]);
    420420  end
     
    426426    if ca = Canvas then
    427427    begin
    428       TextSize.cx := BiColorTextWidth(ca, s);
    429       TextSize.cy := ca.TextHeight(s);
    430       if y + TextSize.cy >= WideFrame + InnerHeight then
    431         TextSize.cy := WideFrame + InnerHeight - y;
    432       FillSeamless(ca, x, y, TextSize.cx, TextSize.cy, -SideFrame,
     428      TextSize.cx := BiColorTextWidth(ca, S);
     429      TextSize.cy := ca.TextHeight(S);
     430      if Y + TextSize.cy >= WideFrame + InnerHeight then
     431        TextSize.cy := WideFrame + InnerHeight - Y;
     432      FillSeamless(ca, X, Y, TextSize.cx, TextSize.cy, -SideFrame,
    433433        ScrollBar.Position * 24 - WideFrame, Paper);
    434434    end;
    435     BiColorTextOut(ca, TextColor, $7F007F, x, y, s);
     435    BiColorTextOut(ca, TextColor, $7F007F, X, Y, S);
    436436    if lit then
    437437      with ca do
     
    439439        Assert(ca = Canvas);
    440440        Pen.Color := TextColor;
    441         MoveTo(x + 1, y + TextSize.cy - 2);
    442         LineTo(x + TextSize.cx, y + TextSize.cy - 2);
     441        MoveTo(X + 1, Y + TextSize.cy - 2);
     442        LineTo(X + TextSize.cx, Y + TextSize.cy - 2);
    443443      end;
    444444    if (Kind = hkMisc) and (no = miscMain) then
     
    447447end;
    448448
    449 procedure THelpDlg.WaterSign(x0, y0, iix: integer);
     449procedure THelpDlg.WaterSign(x0, y0, iix: Integer);
    450450const
    451451  nHeaven = 28;
    452452  MaxSum = 9 * 9 * 255 * 75 div 100;
    453453var
    454   x, y, dx, dy, xSrc, ySrc, Sum, xx: integer;
    455   Heaven: array [0..nHeaven] of integer;
     454  X, Y, dx, dy, xSrc, ySrc, Sum, xx: Integer;
     455  Heaven: array [0..nHeaven] of Integer;
    456456  PaintPtr: TPixelPointer;
    457457  CoalPtr: TPixelPointer;
     
    471471  for dy := -1 to 1 do
    472472    ImpPtr[dy] := PixelPointer(BigImp, ScaleToNative(xSrc), ScaleToNative(ySrc));
    473   for y := 0 to ScaleToNative(ySizeBig) * 2 - 1 do begin
    474     if ((ScaleToNative(y0) + y) >= 0) and ((ScaleToNative(y0) + y) < ScaleToNative(InnerHeight)) then begin
     473  for Y := 0 to ScaleToNative(ySizeBig) * 2 - 1 do begin
     474    if ((ScaleToNative(y0) + Y) >= 0) and ((ScaleToNative(y0) + Y) < ScaleToNative(InnerHeight)) then begin
    475475      for dy := -1 to 1 do
    476         if ((Max(y + ScaleToNative(dy), 0) shr 1) >= 0) and ((Max(y + ScaleToNative(dy), 0) shr 1) < ScaleToNative(ySizeBig)) then
    477           ImpPtr[dy].SetXY(0, Max(y + ScaleToNative(dy), 0) shr 1);
    478       for x := 0 to ScaleToNative(xSizeBig * 2) - 1 do begin
     476        if ((Max(Y + ScaleToNative(dy), 0) shr 1) >= 0) and ((Max(Y + ScaleToNative(dy), 0) shr 1) < ScaleToNative(ySizeBig)) then
     477          ImpPtr[dy].SetXY(0, Max(Y + ScaleToNative(dy), 0) shr 1);
     478      for X := 0 to ScaleToNative(xSizeBig * 2) - 1 do begin
    479479        Sum := 0;
    480480        for dx := -1 to 1 do begin
    481           xx := Max((x + ScaleToNative(dx)), 0) shr 1;
     481          xx := Max((X + ScaleToNative(dx)), 0) shr 1;
    482482          for dy := -1 to 1 do begin
    483483            ImpPtr[dy].SetX(xx);
    484             if ((y + ScaleToNative(dy)) shr 1 < 0) or ((y + ScaleToNative(dy)) shr 1 >= ScaleToNative(ySizeBig)) or
    485               ((x + ScaleToNative(dx)) shr 1 < 0) or ((x + ScaleToNative(dx)) shr 1 >= ScaleToNative(xSizeBig)) or
    486               ((y + ScaleToNative(dy)) shr 1 < ScaleToNative(nHeaven)) and
     484            if ((Y + ScaleToNative(dy)) shr 1 < 0) or ((Y + ScaleToNative(dy)) shr 1 >= ScaleToNative(ySizeBig)) or
     485              ((X + ScaleToNative(dx)) shr 1 < 0) or ((X + ScaleToNative(dx)) shr 1 >= ScaleToNative(xSizeBig)) or
     486              ((Y + ScaleToNative(dy)) shr 1 < ScaleToNative(nHeaven)) and
    487487              (ImpPtr[dy].Pixel^.B shl 16 + ImpPtr[dy].Pixel^.G shl 8 +
    488               ImpPtr[dy].Pixel^.R = Heaven[(ScaleFromNative(y + ScaleToNative(dy))) shr 1]) then
     488              ImpPtr[dy].Pixel^.R = Heaven[(ScaleFromNative(Y + ScaleToNative(dy))) shr 1]) then
    489489              Sum := Sum + 9 * 255
    490490            else
     
    510510end;
    511511
    512 procedure THelpDlg.PaintTerrIcon(x, y, xSrc, ySrc: integer);
     512procedure THelpDlg.PaintTerrIcon(X, Y, xSrc, ySrc: Integer);
    513513begin
    514514  with NoMap do begin
    515     Frame(OffScreen.Canvas, x - 1, y - 1, x + xSizeBig, y + ySizeBig,
     515    Frame(OffScreen.Canvas, X - 1, Y - 1, X + xSizeBig, Y + ySizeBig,
    516516      $000000, $000000);
    517517    if 2 * yyt < 40 then begin
    518       Sprite(OffScreen, HGrTerrain, x, y, 56, 2 * yyt, xSrc, ySrc);
    519       Sprite(OffScreen, HGrTerrain, x, y + 2 * yyt, 56, 40 - 2 * yyt,
     518      Sprite(OffScreen, HGrTerrain, X, Y, 56, 2 * yyt, xSrc, ySrc);
     519      Sprite(OffScreen, HGrTerrain, X, Y + 2 * yyt, 56, 40 - 2 * yyt,
    520520        xSrc, ySrc);
    521521    end else
    522       Sprite(OffScreen, HGrTerrain, x, y, 56, 40, xSrc, ySrc);
    523     Sprite(OffScreen, HGrTerrain, x, y, xxt, yyt, xSrc + xxt, ySrc + yyt);
    524     Sprite(OffScreen, HGrTerrain, x, y + yyt, xxt, 40 - yyt, xSrc + xxt, ySrc);
    525     Sprite(OffScreen, HGrTerrain, x + xxt, y, 56 - xxt, yyt, xSrc, ySrc + yyt);
    526     Sprite(OffScreen, HGrTerrain, x + xxt, y + yyt, 56 - xxt, 40 - yyt,
     522      Sprite(OffScreen, HGrTerrain, X, Y, 56, 40, xSrc, ySrc);
     523    Sprite(OffScreen, HGrTerrain, X, Y, xxt, yyt, xSrc + xxt, ySrc + yyt);
     524    Sprite(OffScreen, HGrTerrain, X, Y + yyt, xxt, 40 - yyt, xSrc + xxt, ySrc);
     525    Sprite(OffScreen, HGrTerrain, X + xxt, Y, 56 - xxt, yyt, xSrc, ySrc + yyt);
     526    Sprite(OffScreen, HGrTerrain, X + xxt, Y + yyt, 56 - xxt, 40 - yyt,
    527527      xSrc, ySrc);
    528528  end;
     
    531531procedure THelpDlg.OffscreenPaint;
    532532var
    533   i, j, yl, srcno, ofs, cnt, y: Integer;
    534   s: string;
     533  I, J, yl, srcno, ofs, cnt, Y: Integer;
     534  S: string;
    535535  HelpLineInfo: THelpLineInfo;
    536536begin
     
    542542  begin
    543543    Font.Assign(UniFont[ftNormal]);
    544     for i := -ScrollBar.Position to InnerHeight div 24 do
    545       if ScrollBar.Position + i < MainText.Count then
     544    for I := -ScrollBar.Position to InnerHeight div 24 do
     545      if ScrollBar.Position + I < MainText.Count then
    546546      begin
    547         HelpLineInfo := THelpLineInfo(MainText.Objects[ScrollBar.Position + i]);
     547        HelpLineInfo := THelpLineInfo(MainText.Objects[ScrollBar.Position + I]);
    548548        if HelpLineInfo.Format = pkExternal then
    549549        begin
    550550          yl := ExtPic.Height;
    551           if 4 + i * 24 + yl > InnerHeight then
    552             yl := InnerHeight - (4 + i * 24);
    553           BitBltCanvas(OffScreen.Canvas, 8, 4 + i * 24, ExtPic.Width, yl, ExtPic.Canvas,
     551          if 4 + I * 24 + yl > InnerHeight then
     552            yl := InnerHeight - (4 + I * 24);
     553          BitBltCanvas(OffScreen.Canvas, 8, 4 + I * 24, ExtPic.Width, yl, ExtPic.Canvas,
    554554            0, 0);
    555555        end;
    556556      end;
    557     for i := -2 to InnerHeight div 24 do
    558       if (ScrollBar.Position + i >= 0) and (ScrollBar.Position + i < MainText.Count) then
     557    for I := -2 to InnerHeight div 24 do
     558      if (ScrollBar.Position + I >= 0) and (ScrollBar.Position + I < MainText.Count) then
    559559      begin
    560         HelpLineInfo := THelpLineInfo(MainText.Objects[ScrollBar.Position + i]);
     560        HelpLineInfo := THelpLineInfo(MainText.Objects[ScrollBar.Position + I]);
    561561        if HelpLineInfo.Link <> 0 then
    562562        begin
    563563          if (Kind = hkMisc) and (no = miscSearchResult) then
    564             Sprite(OffScreen, HGrSystem, 18, 9 + i * 24, 8, 8, 90, 16)
     564            Sprite(OffScreen, HGrSystem, 18, 9 + I * 24, 8, 8, 90, 16)
    565565          else if HelpLineInfo.Format in [pkSmallIcon_AsPreq, pkAdvIcon_AsPreq]
    566566          then
    567             Sprite(OffScreen, HGrSystem, 12, i * 24 + 5, 14, 14, 65, 20)
     567            Sprite(OffScreen, HGrSystem, 12, I * 24 + 5, 14, 14, 65, 20)
    568568          else if HelpLineInfo.Link and (hkCrossLink shl 8) <> 0 then
    569             Sprite(OffScreen, HGrSystem, 12, i * 24 + 5, 14, 14, 80, 1)
     569            Sprite(OffScreen, HGrSystem, 12, I * 24 + 5, 14, 14, 80, 1)
    570570          else if not((Kind = hkMisc) and (no = miscMain)) then
    571             Sprite(OffScreen, HGrSystem, 10, i * 24 + 6, 14, 14, 65, 1);
    572           x0[i] := 24;
     571            Sprite(OffScreen, HGrSystem, 10, I * 24 + 6, 14, 14, 65, 1);
     572          x0[I] := 24;
    573573        end
    574574        else
    575           x0[i] := 0;
     575          x0[I] := 0;
    576576        case HelpLineInfo.Format of
    577577          pkLogo:
    578578            begin
    579               Server(sGetVersion, 0, 0, j);
    580               s := Format('%d.%d.%d', [j shr 16 and $FF, j shr 8 and $FF,
    581                 j and $FF]);
    582               PaintLogo(OffScreen.Canvas, (InnerWidth - 122) div 2, i * 24 + 1,
     579              Server(sGetVersion, 0, 0, J);
     580              S := Format('%d.%d.%d', [J shr 16 and $FF, J shr 8 and $FF,
     581                J and $FF]);
     582              PaintLogo(OffScreen.Canvas, (InnerWidth - 122) div 2, I * 24 + 1,
    583583                HGrSystem.Data.Canvas.Pixels[95, 1], $000000);
    584584              Font.Assign(UniFont[ftSmall]);
    585585              BiColorTextOut(OffScreen.Canvas, $000000, $7F007F,
    586                 (InnerWidth - Textwidth(s)) div 2, i * 24 + 26, s);
     586                (InnerWidth - Textwidth(S)) div 2, I * 24 + 26, S);
    587587              Font.Assign(UniFont[ftNormal]);
    588588            end;
    589589          pkSmallIcon, pkSmallIcon_AsPreq:
    590590            begin
    591               ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[i], 2 - 1 + i * 24,
    592                 8 + xSizeSmall + x0[i], 2 + 20 + i * 24, $000000, $000000);
     591              ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[I], 2 - 1 + I * 24,
     592                8 + xSizeSmall + x0[I], 2 + 20 + I * 24, $000000, $000000);
    593593              if HelpLineInfo.Picpix = imPalace then
    594                 BitBltCanvas(OffScreen.Canvas, 8 + x0[i], 2 + i * 24,
     594                BitBltCanvas(OffScreen.Canvas, 8 + x0[I], 2 + I * 24,
    595595                  xSizeSmall, ySizeSmall, SmallImp.Canvas,
    596596                  0 * xSizeSmall, 1 * ySizeSmall)
    597597              else
    598                 BitBltCanvas(OffScreen.Canvas, 8 + x0[i], 2 + i * 24,
     598                BitBltCanvas(OffScreen.Canvas, 8 + x0[I], 2 + I * 24,
    599599                  xSizeSmall, ySizeSmall, SmallImp.Canvas,
    600600                  HelpLineInfo.Picpix mod 7 * xSizeSmall,
    601601                  (HelpLineInfo.Picpix + SystemIconLines * 7) div 7 *
    602602                  ySizeSmall);
    603               x0[i] := x0[i] + (8 + 8 + 36);
     603              x0[I] := x0[I] + (8 + 8 + 36);
    604604            end;
    605605          pkBigIcon:
    606606            begin
    607               FrameImage(OffScreen.Canvas, BigImp, x0[i] + 12, i * 24 - 7, 56,
     607              FrameImage(OffScreen.Canvas, BigImp, x0[I] + 12, I * 24 - 7, 56,
    608608                40, HelpLineInfo.Picpix mod 7 * xSizeBig,
    609609                HelpLineInfo.Picpix div 7 * ySizeBig);
    610               x0[i] := 64 + 8 + 8 + x0[i];
     610              x0[I] := 64 + 8 + 8 + x0[I];
    611611            end;
    612612          pkSpecialIcon:
     
    615615                0:
    616616                  FrameImage(OffScreen.Canvas, HGrSystem2.Data,
    617                     12 + x0[i], -7 + i * 24, 56, 40, 137, 127);
     617                    12 + x0[I], -7 + I * 24, 56, 40, 137, 127);
    618618                1:
    619619                  with NoMap do begin
    620                     PaintTerrIcon(12 + x0[i], -7 + i * 24,
     620                    PaintTerrIcon(12 + x0[I], -7 + I * 24,
    621621                      1 + 3 * (xxt * 2 + 1), 1 + yyt);
    622622                    if 2 * yyt < 40 then
    623                       Sprite(OffScreen, HGrTerrain, 12 + x0[i], -7 + 4 + i * 24,
     623                      Sprite(OffScreen, HGrTerrain, 12 + x0[I], -7 + 4 + I * 24,
    624624                        56, 2 * yyt, 1 + 3 * (xxt * 2 + 1) + xxt - 28,
    625625                        1 + yyt + 1 * (yyt * 3 + 1))
    626626                    else
    627                       Sprite(OffScreen, HGrTerrain, 12 + x0[i],
    628                         -7 + 4 + i * 24 - 4, 56, 40, 1 + 3 * (xxt * 2 + 1) + xxt
     627                      Sprite(OffScreen, HGrTerrain, 12 + x0[I],
     628                        -7 + 4 + I * 24 - 4, 56, 40, 1 + 3 * (xxt * 2 + 1) + xxt
    629629                        - 28, 1 + yyt + 1 * (yyt * 3 + 1) + yyt - 20);
    630630                  end;
    631631                2:
    632632                  with NoMap do begin
    633                     PaintTerrIcon(12 + x0[i], -7 + i * 24,
     633                    PaintTerrIcon(12 + x0[I], -7 + I * 24,
    634634                      1 + 7 * (xxt * 2 + 1), 1 + yyt + 4 * (yyt * 3 + 1));
    635635                    if 2 * yyt < 40 then
    636                       Sprite(OffScreen, HGrTerrain, 12 + x0[i], -7 + 4 + i * 24,
     636                      Sprite(OffScreen, HGrTerrain, 12 + x0[I], -7 + 4 + I * 24,
    637637                        56, 32, 1 + 4 * (xxt * 2 + 1) + xxt - 28,
    638638                        1 + yyt + 12 * (yyt * 3 + 1) + yyt - 16)
    639639                    else
    640                       Sprite(OffScreen, HGrTerrain, 12 + x0[i], -7 + 4 + i * 24,
     640                      Sprite(OffScreen, HGrTerrain, 12 + x0[I], -7 + 4 + I * 24,
    641641                        56, 32, 1 + 4 * (xxt * 2 + 1) + xxt - 28,
    642642                        1 + yyt + 12 * (yyt * 3 + 1) + yyt - 16)
    643643                  end;
    644644              end;
    645               x0[i] := 64 + 8 + 8 + x0[i];
     645              x0[I] := 64 + 8 + 8 + x0[I];
    646646            end;
    647647          pkDomain:
    648648            begin
    649               ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[i], 2 - 1 + i * 24,
    650                 8 + 36 + x0[i], 2 + 20 + i * 24, $000000, $000000);
    651               Dump(OffScreen, HGrSystem, 8 + x0[i], 2 + i * 24, 36, 20,
     649              ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[I], 2 - 1 + I * 24,
     650                8 + 36 + x0[I], 2 + 20 + I * 24, $000000, $000000);
     651              Dump(OffScreen, HGrSystem, 8 + x0[I], 2 + I * 24, 36, 20,
    652652                75 + HelpLineInfo.Picpix * 37, 295);
    653               x0[i] := x0[i] + (8 + 8 + 36);
     653              x0[I] := x0[I] + (8 + 8 + 36);
    654654            end;
    655655          pkAdvIcon, pkAdvIcon_AsPreq:
    656656            begin
    657               ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[i], 2 - 1 + i * 24,
    658                 8 + xSizeSmall + x0[i], 2 + ySizeSmall + i * 24,
     657              ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[I], 2 - 1 + I * 24,
     658                8 + xSizeSmall + x0[I], 2 + ySizeSmall + I * 24,
    659659                $000000, $000000);
    660660              if AdvIcon[HelpLineInfo.Picpix] < 84 then
    661                 BitBltCanvas(OffScreen.Canvas, 8 + x0[i], 2 + i * 24,
     661                BitBltCanvas(OffScreen.Canvas, 8 + x0[I], 2 + I * 24,
    662662                  xSizeSmall, ySizeSmall, SmallImp.Canvas,
    663663                  (AdvIcon[HelpLineInfo.Picpix] + SystemIconLines * 7) mod 7 *
     
    665665                  7) div 7 * ySizeSmall)
    666666              else
    667                 Dump(OffScreen, HGrSystem, 8 + x0[i], 2 + i * 24, 36, 20,
     667                Dump(OffScreen, HGrSystem, 8 + x0[I], 2 + I * 24, 36, 20,
    668668                  1 + (AdvIcon[HelpLineInfo.Picpix] - 84) mod 8 * 37,
    669669                  295 + (AdvIcon[HelpLineInfo.Picpix] - 84) div 8 * 21);
    670               j := AdvValue[HelpLineInfo.Picpix] div 1000;
    671               BitBltCanvas(OffScreen.Canvas, x0[i] + 4, 4 + i * 24, 14, 14,
    672                 HGrSystem.Mask.Canvas, 127 + j * 15, 85, SRCAND);
    673               Sprite(OffScreen, HGrSystem, x0[i] + 3, 3 + i * 24, 14, 14,
    674                 127 + j * 15, 85);
    675               x0[i] := x0[i] + (8 + 8 + 36);
     670              J := AdvValue[HelpLineInfo.Picpix] div 1000;
     671              BitBltCanvas(OffScreen.Canvas, x0[I] + 4, 4 + I * 24, 14, 14,
     672                HGrSystem.Mask.Canvas, 127 + J * 15, 85, SRCAND);
     673              Sprite(OffScreen, HGrSystem, x0[I] + 3, 3 + I * 24, 14, 14,
     674                127 + J * 15, 85);
     675              x0[I] := x0[I] + (8 + 8 + 36);
    676676            end;
    677677          pkRightIcon:
    678678            begin
    679679              if Imp[HelpLineInfo.Picpix].Kind <> ikWonder then
    680                 ImpImage(OffScreen.Canvas, InnerWidth - (40 + xSizeBig), i * 24,
     680                ImpImage(OffScreen.Canvas, InnerWidth - (40 + xSizeBig), I * 24,
    681681                  HelpLineInfo.Picpix, gDespotism)
    682682              else
    683                 WaterSign(InnerWidth - (40 + 2 * xSizeBig), i * 24 - 8,
     683                WaterSign(InnerWidth - (40 + 2 * xSizeBig), I * 24 - 8,
    684684                  HelpLineInfo.Picpix + 7);
    685               x0[i] := x0[i] + 8;
     685              x0[I] := x0[I] + 8;
    686686            end;
    687687          pkIllu:
    688             WaterSign(8, i * 24 - 8, HelpLineInfo.Picpix);
     688            WaterSign(8, I * 24 - 8, HelpLineInfo.Picpix);
    689689          pkBigFeature:
    690690            begin
    691691              cnt := 0;
    692               for j := nDomains - 1 downto 0 do
    693                 if 1 shl j and Feature[HelpLineInfo.Picpix].Domains <> 0 then
     692              for J := nDomains - 1 downto 0 do
     693                if 1 shl J and Feature[HelpLineInfo.Picpix].Domains <> 0 then
    694694                begin
    695                   inc(cnt);
     695                  Inc(cnt);
    696696                  Dump(OffScreen, HGrSystem, InnerWidth - 38 - 38 * cnt,
    697                     i * 24 + 1, 36, 20, 75 + j * 37, 295);
    698                   ScreenTools.Frame(OffScreen.Canvas, InnerWidth - 39 - 38 * cnt, i * 24,
    699                     InnerWidth - 2 - 38 * cnt, i * 24 + 21, $000000, $000000);
     697                    I * 24 + 1, 36, 20, 75 + J * 37, 295);
     698                  ScreenTools.Frame(OffScreen.Canvas, InnerWidth - 39 - 38 * cnt, I * 24,
     699                    InnerWidth - 2 - 38 * cnt, I * 24 + 21, $000000, $000000);
    700700                end;
    701701              DarkGradient(OffScreen.Canvas, InnerWidth - 38 - 38 * cnt,
    702                 i * 24 + 23, cnt * 38 - 2, 1);
     702                I * 24 + 23, cnt * 38 - 2, 1);
    703703              ofs := InnerWidth - (39 + 7) - 19 * cnt;
    704704              with OffScreen.Canvas do
    705705              begin
    706                 Brush.color := $C0C0C0;
    707                 FrameRect(Rect(ofs, 1 + 23 + i * 24, ofs + 14,
    708                   15 + 23 + i * 24));
     706                Brush.Color := $C0C0C0;
     707                FrameRect(Rect(ofs, 1 + 23 + I * 24, ofs + 14,
     708                  15 + 23 + I * 24));
    709709                Brush.Style := bsClear;
    710                 Sprite(OffScreen, HGrSystem, ofs + 2, 3 + 23 + i * 24, 10, 10,
     710                Sprite(OffScreen, HGrSystem, ofs + 2, 3 + 23 + I * 24, 10, 10,
    711711                  66 + HelpLineInfo.Picpix mod 11 * 11,
    712712                  137 + HelpLineInfo.Picpix div 11 * 11);
    713713              end;
    714               x0[i] := x0[i] + 8;
     714              x0[I] := x0[I] + 8;
    715715            end;
    716716          pkTer, pkBigTer:
    717717            with NoMap do begin
    718718              if HelpLineInfo.Format = pkBigTer then
    719                 y := i * 24 - 3 + yyt
     719                Y := I * 24 - 3 + yyt
    720720              else
    721                 y := i * 24 + 13;
     721                Y := I * 24 + 13;
    722722              if HelpLineInfo.Picpix >= 3 * 12 then
    723723                srcno := 2 * 9 + 6
     
    730730              if HelpLineInfo.Format = pkTer then
    731731              begin
    732                 ofs := x0[i] + 8;
    733                 x0[i] := 2 * xxt + 8 + ofs;
     732                ofs := x0[I] + 8;
     733                x0[I] := 2 * xxt + 8 + ofs;
    734734              end
    735735              else
    736736              begin
    737737                ofs := InnerWidth - (2 * xxt + 38);
    738                 x0[i] := x0[i] + 8;
     738                x0[I] := x0[I] + 8;
    739739              end;
    740740              if srcno >= fJungle then
    741741              begin
    742                 Sprite(OffScreen, HGrTerrain, ofs + 4, y - yyt + 2, xxt * 2 - 8,
     742                Sprite(OffScreen, HGrTerrain, ofs + 4, Y - yyt + 2, xxt * 2 - 8,
    743743                  yyt * 2 - 4, 5 + 2 * (xxt * 2 + 1),
    744744                  3 + yyt + 2 * (yyt * 3 + 1));
    745                 Sprite(OffScreen, HGrTerrain, ofs, y - 2 * yyt, xxt * 2,
     745                Sprite(OffScreen, HGrTerrain, ofs, Y - 2 * yyt, xxt * 2,
    746746                  yyt * 3 - 2, 1 + srcno mod 9 * (xxt * 2 + 1),
    747747                  1 + srcno div 9 * (yyt * 3 + 1));
    748748              end
    749749              else
    750                 Sprite(OffScreen, HGrTerrain, ofs + 4, y - yyt + 2, xxt * 2 - 8,
     750                Sprite(OffScreen, HGrTerrain, ofs + 4, Y - yyt + 2, xxt * 2 - 8,
    751751                  yyt * 2 - 4, 5 + srcno mod 9 * (xxt * 2 + 1),
    752752                  3 + yyt + srcno div 9 * (yyt * 3 + 1));
    753753              if HelpLineInfo.Picpix >= 3 * 12 then { rare resource }
    754                 Sprite(OffScreen, HGrTerrain, ofs, y - 2 * yyt, xxt * 2,
     754                Sprite(OffScreen, HGrTerrain, ofs, Y - 2 * yyt, xxt * 2,
    755755                  yyt * 3, 1 + 8 * (xxt * 2 + 1),
    756756                  1 + (HelpLineInfo.Picpix - 2 * 12) * (yyt * 3 + 1))
     
    764764                  srcno := 18 + 8 + (HelpLineInfo.Picpix mod 12 - 9) * 18;
    765765                srcno := srcno + HelpLineInfo.Picpix div 12 * 9;
    766                 Sprite(OffScreen, HGrTerrain, ofs, y - 2 * yyt, xxt * 2,
     766                Sprite(OffScreen, HGrTerrain, ofs, Y - 2 * yyt, xxt * 2,
    767767                  yyt * 3, 1 + srcno mod 9 * (xxt * 2 + 1),
    768768                  1 + srcno div 9 * (yyt * 3 + 1));
     
    774774              if HelpLineInfo.Picpix = 5 then
    775775              begin // display mine on hills
    776                 Sprite(OffScreen, HGrTerrain, ofs + 4, i * 24 + 13 - yyt,
     776                Sprite(OffScreen, HGrTerrain, ofs + 4, I * 24 + 13 - yyt,
    777777                  xxt * 2 - 8, yyt * 2 - 4, 5 + 2 * (xxt * 2 + 1),
    778778                  3 + yyt + 2 * (yyt * 3 + 1));
     
    781781              else
    782782                srcno := fPrairie; // display on prairie
    783               Sprite(OffScreen, HGrTerrain, ofs + 4, i * 24 + 13 - yyt,
     783              Sprite(OffScreen, HGrTerrain, ofs + 4, I * 24 + 13 - yyt,
    784784                xxt * 2 - 8, yyt * 2 - 4, 5 + srcno mod 9 * (xxt * 2 + 1),
    785785                3 + yyt + srcno div 9 * (yyt * 3 + 1));
    786786              if HelpLineInfo.Picpix = 12 then { river }
    787                 Sprite(OffScreen, HGrTerrain, ofs, i * 24 + 11 - yyt, xxt * 2,
     787                Sprite(OffScreen, HGrTerrain, ofs, I * 24 + 11 - yyt, xxt * 2,
    788788                  yyt * 2, 1 + 5 * (xxt * 2 + 1), 1 + yyt + 13 * (yyt * 3 + 1))
    789789              else if HelpLineInfo.Picpix >= 3 then { improvement 2 }
    790790              begin
    791791                if HelpLineInfo.Picpix = 6 then
    792                   Sprite(OffScreen, HGrTerrain, ofs, i * 24 + 11 - 2 * yyt,
     792                  Sprite(OffScreen, HGrTerrain, ofs, I * 24 + 11 - 2 * yyt,
    793793                    xxt * 2, yyt * 3, 1 + 7 * (xxt * 2 + 1),
    794794                    1 + 12 * (yyt * 3 + 1));
    795                 Sprite(OffScreen, HGrTerrain, ofs, i * 24 + 11 - 2 * yyt,
     795                Sprite(OffScreen, HGrTerrain, ofs, I * 24 + 11 - 2 * yyt,
    796796                  xxt * 2, yyt * 3, 1 + (HelpLineInfo.Picpix - 3) *
    797797                  (xxt * 2 + 1), 1 + 12 * (yyt * 3 + 1))
     
    799799              else { improvement 1 }
    800800              begin
    801                 Sprite(OffScreen, HGrTerrain, ofs, i * 24 + 11 - 2 * yyt,
     801                Sprite(OffScreen, HGrTerrain, ofs, I * 24 + 11 - 2 * yyt,
    802802                  xxt * 2, yyt * 3, 1 + 2 * (xxt * 2 + 1),
    803803                  1 + (9 + HelpLineInfo.Picpix) * (yyt * 3 + 1));
    804                 Sprite(OffScreen, HGrTerrain, ofs, i * 24 + 11 - 2 * yyt,
     804                Sprite(OffScreen, HGrTerrain, ofs, I * 24 + 11 - 2 * yyt,
    805805                  xxt * 2, yyt * 3, 1 + 5 * (xxt * 2 + 1),
    806806                  1 + (9 + HelpLineInfo.Picpix) * (yyt * 3 + 1))
    807807              end;
    808               x0[i] := x0[i] + 8;
     808              x0[I] := x0[I] + 8;
    809809            end;
    810810          pkModel:
    811811            begin
    812               FrameImage(OffScreen.Canvas, BigImp, x0[i] + 12, i * 24 - 7,
     812              FrameImage(OffScreen.Canvas, BigImp, x0[I] + 12, I * 24 - 7,
    813813                56, 40, 0, 0);
    814               Sprite(OffScreen, HGrStdUnits, x0[i] + 8, i * 24 - 11, 64, 44,
     814              Sprite(OffScreen, HGrStdUnits, x0[I] + 8, I * 24 - 11, 64, 44,
    815815                1 + HelpLineInfo.Picpix mod 10 * 65,
    816816                1 + HelpLineInfo.Picpix div 10 * 49);
    817               x0[i] := 64 + 8 + 8 + x0[i];
     817              x0[I] := 64 + 8 + 8 + x0[I];
    818818            end;
    819819          pkFeature:
    820820            begin
    821               DarkGradient(OffScreen.Canvas, x0[i] + 8 - 1,
    822                 7 + i * 24 - 3, 16, 1);
    823               ScreenTools.Frame(OffScreen.Canvas, x0[i] + 8, 7 + i * 24 - 2, x0[i] + 8 + 13,
    824                 7 + i * 24 - 2 + 13, $C0C0C0, $C0C0C0);
    825               Sprite(OffScreen, HGrSystem, x0[i] + 8 + 2, 7 + i * 24, 10, 10,
     821              DarkGradient(OffScreen.Canvas, x0[I] + 8 - 1,
     822                7 + I * 24 - 3, 16, 1);
     823              ScreenTools.Frame(OffScreen.Canvas, x0[I] + 8, 7 + I * 24 - 2, x0[I] + 8 + 13,
     824                7 + I * 24 - 2 + 13, $C0C0C0, $C0C0C0);
     825              Sprite(OffScreen, HGrSystem, x0[I] + 8 + 2, 7 + I * 24, 10, 10,
    826826                66 + HelpLineInfo.Picpix mod 11 * 11,
    827827                137 + HelpLineInfo.Picpix div 11 * 11);
    828               x0[i] := x0[i] + 8 + 8 + 2 + 13;
     828              x0[I] := x0[I] + 8 + 8 + 2 + 13;
    829829            end;
    830830          pkExp:
    831831            begin
    832               ScreenTools.Frame(OffScreen.Canvas, 20 - 1, 8 - 4 + i * 24, 20 + 12,
    833                 8 + 11 + i * 24, $000000, $000000);
    834               Dump(OffScreen, HGrSystem, 20, 8 - 3 + i * 24, 12, 14,
     832              ScreenTools.Frame(OffScreen.Canvas, 20 - 1, 8 - 4 + I * 24, 20 + 12,
     833                8 + 11 + I * 24, $000000, $000000);
     834              Dump(OffScreen, HGrSystem, 20, 8 - 3 + I * 24, 12, 14,
    835835                121 + HelpLineInfo.Picpix * 13, 28);
    836               x0[i] := 20 + 8 + 11;
     836              x0[I] := 20 + 8 + 11;
    837837            end;
    838838          pkAITStat:
    839839            begin
    840               Sprite(OffScreen, HGrSystem, 20, 6 + i * 24, 14, 14,
     840              Sprite(OffScreen, HGrSystem, 20, 6 + I * 24, 14, 14,
    841841                1 + HelpLineInfo.Picpix * 15, 316);
    842               x0[i] := 20 + 8 + 11;
     842              x0[I] := 20 + 8 + 11;
    843843            end;
    844844          pkGov:
    845845            begin
    846               ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[i], 2 - 1 + i * 24,
    847                 8 + xSizeSmall + x0[i], 2 + 20 + i * 24, $000000, $000000);
    848               BitBltCanvas(OffScreen.Canvas, 8 + x0[i], 2 + i * 24, xSizeSmall,
     846              ScreenTools.Frame(OffScreen.Canvas, 8 - 1 + x0[I], 2 - 1 + I * 24,
     847                8 + xSizeSmall + x0[I], 2 + 20 + I * 24, $000000, $000000);
     848              BitBltCanvas(OffScreen.Canvas, 8 + x0[I], 2 + I * 24, xSizeSmall,
    849849                ySizeSmall, SmallImp.Canvas, (HelpLineInfo.Picpix - 1) *
    850850                xSizeSmall, ySizeSmall);
    851               x0[i] := x0[i] + (8 + 8 + 36);
     851              x0[I] := x0[I] + (8 + 8 + 36);
    852852            end;
    853853          pkDot:
    854854            begin
    855               Sprite(OffScreen, HGrSystem, x0[i] + 18, 9 + i * 24, 8,
     855              Sprite(OffScreen, HGrSystem, x0[I] + 18, 9 + I * 24, 8,
    856856                8, 81, 16);
    857               x0[i] := 20 + 8 + 4;
     857              x0[I] := 20 + 8 + 4;
    858858            end;
    859859          pkNormal_Dot:
    860             x0[i] := 20 + 8 + 4;
     860            x0[I] := 20 + 8 + 4;
    861861          pkNormal_64:
    862             x0[i] := 64 + 8 + 8;
     862            x0[I] := 64 + 8 + 8;
    863863        else
    864           x0[i] := x0[i] + 8;
     864          x0[I] := x0[I] + 8;
    865865        end;
    866         Self.Line(OffScreen.Canvas, i, False)
     866        Self.Line(OffScreen.Canvas, I, False)
    867867      end;
    868868  end;
     
    873873begin
    874874  Sel := -1;
    875   SmartUpdateContent(true)
    876 end;
    877 
    878 procedure THelpDlg.Prepare(sbPos: integer = 0);
     875  SmartUpdateContent(True)
     876end;
     877
     878procedure THelpDlg.Prepare(sbPos: Integer = 0);
    879879var
    880   i, j, Special, Domain, Headline, TerrType, TerrSubType: integer;
    881   s: string;
    882   ps: pchar;
     880  I, J, Special, Domain, Headline, TerrType, TerrSubType: Integer;
     881  S: string;
     882  ps: PChar;
    883883  List: THyperText;
    884884  CheckSeeAlso: Boolean;
    885885
    886   procedure AddAdvance(i: integer);
    887   begin
    888     MainText.AddLine(Phrases.Lookup('ADVANCES', i), pkAdvIcon, i,
    889       hkAdv + hkCrossLink, i);
    890   end;
    891 
    892   procedure AddPreqAdv(i: integer);
    893   begin
    894     MainText.AddLine(Phrases.Lookup('ADVANCES', i), pkAdvIcon_AsPreq, i,
    895       hkAdv + hkCrossLink, i);
    896   end;
    897 
    898   procedure AddImprovement(i: integer);
    899   begin
    900     MainText.AddLine(Phrases.Lookup('IMPROVEMENTS', i), pkSmallIcon, i,
    901       hkImp + hkCrossLink, i);
    902   end;
    903 
    904   procedure AddPreqImp(i: integer);
    905   begin
    906     MainText.AddLine(Phrases.Lookup('IMPROVEMENTS', i), pkSmallIcon_AsPreq, i,
    907       hkImp + hkCrossLink, i);
    908   end;
    909 
    910   procedure AddTerrain(i: integer);
     886  procedure AddAdvance(I: Integer);
     887  begin
     888    MainText.AddLine(Phrases.Lookup('ADVANCES', I), pkAdvIcon, I,
     889      hkAdv + hkCrossLink, I);
     890  end;
     891
     892  procedure AddPreqAdv(I: Integer);
     893  begin
     894    MainText.AddLine(Phrases.Lookup('ADVANCES', I), pkAdvIcon_AsPreq, I,
     895      hkAdv + hkCrossLink, I);
     896  end;
     897
     898  procedure AddImprovement(I: Integer);
     899  begin
     900    MainText.AddLine(Phrases.Lookup('IMPROVEMENTS', I), pkSmallIcon, I,
     901      hkImp + hkCrossLink, I);
     902  end;
     903
     904  procedure AddPreqImp(I: Integer);
     905  begin
     906    MainText.AddLine(Phrases.Lookup('IMPROVEMENTS', I), pkSmallIcon_AsPreq, I,
     907      hkImp + hkCrossLink, I);
     908  end;
     909
     910  procedure AddTerrain(I: Integer);
    911911  begin
    912912    if MainText.Count > 1 then
     
    914914      MainText.LineFeed;
    915915    end;
    916     MainText.AddLine(Phrases.Lookup('TERRAIN', i), pkTer, i, hkTer, i);
    917   end;
    918 
    919   procedure AddFeature(i: integer);
    920   begin
    921     MainText.AddLine(Phrases.Lookup('FEATURES', i), pkFeature, i,
    922       hkFeature + hkCrossLink, i);
    923   end;
    924 
    925   procedure AddModel(i: integer);
     916    MainText.AddLine(Phrases.Lookup('TERRAIN', I), pkTer, I, hkTer, I);
     917  end;
     918
     919  procedure AddFeature(I: Integer);
     920  begin
     921    MainText.AddLine(Phrases.Lookup('FEATURES', I), pkFeature, I,
     922      hkFeature + hkCrossLink, I);
     923  end;
     924
     925  procedure AddModel(I: Integer);
    926926  var
    927     pix: integer;
     927    pix: Integer;
    928928    Name: string;
    929929  begin
    930930    if MainText.Count > 1 then
    931931      MainText.LineFeed;
    932     FindStdModelPicture(SpecialModelPictureCode[i], pix, Name);
    933     MainText.AddLine(Name, pkModel, pix, hkModel + hkCrossLink, i)
     932    FindStdModelPicture(SpecialModelPictureCode[I], pix, Name);
     933    MainText.AddLine(Name, pkModel, pix, hkModel + hkCrossLink, I)
    934934  end;
    935935
    936936  procedure AddStandardBlock(Item: string);
    937937  var
    938     i: integer;
     938    I: Integer;
    939939  begin
    940940    with MainText do
     
    947947      else if Item = 'TECHFORMULA' then
    948948      begin
    949         i := Difficulty;
    950         if i = 0 then
    951           i := 2;
    952         AddLine(Format(HelpText.Lookup('TECHFORMULA'), [TechFormula_M[i],
    953           TechFormula_D[i]]))
     949        I := Difficulty;
     950        if I = 0 then
     951          I := 2;
     952        AddLine(Format(HelpText.Lookup('TECHFORMULA'), [TechFormula_M[I],
     953          TechFormula_D[I]]))
    954954      end
    955955      else if Item = 'EXPERIENCE' then
    956         for i := 0 to nExp - 1 do
    957           AddLine(Phrases.Lookup('EXPERIENCE', i), pkExp, i)
     956        for I := 0 to nExp - 1 do
     957          AddLine(Phrases.Lookup('EXPERIENCE', I), pkExp, I)
    958958      else if Item = 'MODERN' then
    959         for i := 1 to 3 do
     959        for I := 1 to 3 do
    960960        begin
    961961          LineFeed;
    962           AddLine(Phrases.Lookup('TERRAIN', 3 * 12 + i), pkTer, 3 * 12 + i);
     962          AddLine(Phrases.Lookup('TERRAIN', 3 * 12 + I), pkTer, 3 * 12 + I);
    963963        end
    964964      else if Item = 'SAVED' then
    965965        AddLine(DataDir + 'Saved', pkNormal)
    966966      else if Item = 'AITSTAT' then
    967         for i := 0 to 3 do
    968           AddLine(Phrases2.Lookup('AITSTAT', i), pkAITStat, i)
     967        for I := 0 to 3 do
     968          AddLine(Phrases2.Lookup('AITSTAT', I), pkAITStat, I)
    969969    end
    970970  end;
    971971
    972   procedure DecodeItem(s: string; var Category, Index: Integer);
     972  procedure DecodeItem(S: string; var Category, Index: Integer);
    973973  var
    974     i: Integer;
    975   begin
    976     if (Length(s) > 0) and (s[1] = ':') then begin
     974    I: Integer;
     975  begin
     976    if (Length(S) > 0) and (S[1] = ':') then begin
    977977      Category := hkMisc;
    978978      Index := 0;
    979       for i := 3 to length(s) do
    980         Index := Index * 10 + Ord(s[i]) - 48;
    981       case s[2] of
     979      for I := 3 to Length(S) do
     980        Index := Index * 10 + Ord(S[I]) - 48;
     981      case S[2] of
    982982        'A': Category := hkAdv;
    983983        'B': Category := hkImp;
     
    994994    end else begin
    995995      Category := hkText;
    996       Index := HelpText.Gethandle(Copy(s, 1, 255));
     996      Index := HelpText.Gethandle(Copy(S, 1, 255));
    997997    end;
    998998  end;
    999999
    1000   procedure AddTextual(s: string);
     1000  procedure AddTextual(S: string);
    10011001  var
    1002     i: Integer;
    1003     p: Integer;
    1004     l: Integer;
     1002    I: Integer;
     1003    P: Integer;
     1004    L: Integer;
    10051005    ofs: Integer;
    10061006    CurrentFormat: Integer;
     
    10151015    RightMargin := InnerWidth - 16 - GetSystemMetrics(SM_CXVSCROLL);
    10161016    FollowFormat := pkNormal;
    1017     while s <> '' do
     1017    while S <> '' do
    10181018    begin
    10191019      Picpix := 0;
    10201020      LinkCategory := 0;
    10211021      LinkIndex := 0;
    1022       if s[1] = '$' then
     1022      if S[1] = '$' then
    10231023      begin // window caption
    1024         p := 1;
     1024        P := 1;
    10251025        repeat
    1026           inc(p)
    1027         until (p > Length(s)) or (s[p] = '\');
    1028         Caption := Copy(s, 2, p - 2);
    1029         Delete(s, 1, p);
     1026          Inc(P);
     1027        until (P > Length(S)) or (S[P] = '\');
     1028        Caption := Copy(S, 2, P - 2);
     1029        Delete(S, 1, P);
    10301030      end
    1031       else if s[1] = '&' then
     1031      else if S[1] = '&' then
    10321032      begin // standard block
    1033         p := 1;
     1033        P := 1;
    10341034        repeat
    1035           inc(p)
    1036         until (p > Length(s)) or (s[p] = '\');
    1037         AddStandardBlock(Copy(s, 2, p - 2));
    1038         Delete(s, 1, p);
     1035          Inc(P);
     1036        until (P > Length(S)) or (S[P] = '\');
     1037        AddStandardBlock(Copy(S, 2, P - 2));
     1038        Delete(S, 1, P);
    10391039      end
    1040       else if s[1] = '@' then
     1040      else if S[1] = '@' then
    10411041      begin // image
    1042         if (Length(s) >= 2) and (s[2] = '@') then
     1042        if (Length(S) >= 2) and (S[2] = '@') then
    10431043        begin // generate from icon
    10441044          Picpix := 0;
    1045           p := 3;
    1046           while (p <= Length(s)) and (s[p] <> '\') do
     1045          P := 3;
     1046          while (P <= Length(S)) and (S[P] <> '\') do
    10471047          begin
    1048             Picpix := Picpix * 10 + Ord(s[p]) - 48;
    1049             inc(p)
     1048            Picpix := Picpix * 10 + Ord(S[P]) - 48;
     1049            Inc(P);
    10501050          end;
    10511051          if (Picpix < 0) or (Picpix >= nImp) then
     
    10571057        else
    10581058        begin // external image
    1059           p := 1;
     1059          P := 1;
    10601060          repeat
    1061             Inc(p)
    1062           until (p > Length(s)) or (s[p] = '\');
     1061            Inc(P);
     1062          until (P > Length(S)) or (S[P] = '\');
    10631063          if LoadGraphicFile(ExtPic, LocalizedFilePath('Help' +
    1064             DirectorySeparator + Copy(s, 2, p - 2)) + '.png') then
     1064            DirectorySeparator + Copy(S, 2, P - 2)) + '.png') then
    10651065          begin
    10661066            MainText.AddLine('', pkExternal);
    1067             for i := 0 to (ExtPic.Height - 12) div 24 do
     1067            for I := 0 to (ExtPic.Height - 12) div 24 do
    10681068              MainText.LineFeed;
    10691069          end;
    10701070        end;
    1071         Delete(s, 1, p);
     1071        Delete(S, 1, P);
    10721072      end
    10731073      else
    10741074      begin
    1075         case s[1] of
     1075        case S[1] of
    10761076          ':', ';':
    10771077            begin // link
    1078               p := 1;
     1078              P := 1;
    10791079              repeat
    1080                 inc(p)
    1081               until (p > Length(s)) or (s[p] = '\') or (s[p] = ' ');
    1082               DecodeItem(Copy(s, 2, p - 2), LinkCategory, LinkIndex);
     1080                Inc(P)
     1081              until (P > Length(S)) or (S[P] = '\') or (S[P] = ' ');
     1082              DecodeItem(Copy(S, 2, P - 2), LinkCategory, LinkIndex);
    10831083              CurrentFormat := 0;
    10841084              if (LinkCategory <> hkText) and (LinkIndex < 200) then
     
    11121112                    end;
    11131113                end;
    1114               if s[1] = ':' then
     1114              if S[1] = ':' then
    11151115                LinkCategory := LinkCategory + hkCrossLink;
    1116               if (p > Length(s)) or (s[p] = ' ') then
    1117                 Delete(s, 1, p)
     1116              if (P > Length(S)) or (S[P] = ' ') then
     1117                Delete(S, 1, P)
    11181118              else
    1119                 Delete(s, 1, p - 1)
     1119                Delete(S, 1, P - 1)
    11201120            end;
    11211121          '!': // highlited
    1122             if (Length(s) >= 2) and (s[2] = '!') then
     1122            if (Length(S) >= 2) and (S[2] = '!') then
    11231123            begin
    11241124              if MainText.Count > 1 then
     
    11261126              FollowFormat := pkCaption;
    11271127              CurrentFormat := pkCaption;
    1128               Delete(s, 1, 2);
     1128              Delete(S, 1, 2);
    11291129            end
    11301130            else
     
    11321132              FollowFormat := pkSection;
    11331133              CurrentFormat := pkSection;
    1134               Delete(s, 1, 1);
     1134              Delete(S, 1, 1);
    11351135            end;
    11361136          '-':
     
    11381138              FollowFormat := pkNormal_Dot;
    11391139              CurrentFormat := pkDot;
    1140               Delete(s, 1, 1);
     1140              Delete(S, 1, 1);
    11411141            end;
    11421142        else
     
    11471147        else
    11481148          ofs := 8;
    1149         p := 0;
     1149        P := 0;
    11501150        repeat
    11511151          repeat
    1152             Inc(p)
    1153           until (p > Length(s)) or (s[p] = ' ') or (s[p] = '\');
    1154           if (BiColorTextWidth(OffScreen.Canvas, Copy(s, 1, p - 1)) <=
     1152            Inc(P)
     1153          until (P > Length(S)) or (S[P] = ' ') or (S[P] = '\');
     1154          if (BiColorTextWidth(OffScreen.Canvas, Copy(S, 1, P - 1)) <=
    11551155            RightMargin - ofs) then
    1156             l := p - 1
     1156            L := P - 1
    11571157          else
    11581158            Break;
    1159         until (p >= Length(s)) or (s[l + 1] = '\');
    1160         Text := Copy(s, 1, l);
    1161         if LinkCategory and $3f = hkInternet then begin
     1159        until (P >= Length(S)) or (S[L + 1] = '\');
     1160        Text := Copy(S, 1, L);
     1161        if LinkCategory and $3F = hkInternet then begin
    11621162          if LinkIndex = 1 then Text := AITemplateManual
    11631163          else if LinkIndex = 2 then Text := CevoHomepageShort
     
    11661166        MainText.AddLine(Text, CurrentFormat, Picpix, LinkCategory,
    11671167          LinkIndex);
    1168         if (l < Length(s)) and (s[l + 1] = '\') then
     1168        if (L < Length(S)) and (S[L + 1] = '\') then
    11691169          FollowFormat := pkNormal;
    1170         Delete(s, 1, l + 1);
     1170        Delete(S, 1, L + 1);
    11711171      end
    11721172    end
     
    11781178  end;
    11791179
    1180   procedure AddModelText(i: Integer);
     1180  procedure AddModelText(I: Integer);
    11811181  var
    11821182    pix: Integer;
    1183     s: string;
     1183    S: string;
    11841184  begin
    11851185    with MainText do begin
     
    11881188        LineFeed;
    11891189      end;
    1190       FindStdModelPicture(SpecialModelPictureCode[i], pix, s);
    1191       AddLine(s, pkSection);
    1192       AddLine(Format(HelpText.Lookup('STRENGTH'), [SpecialModel[i].Attack,
    1193         SpecialModel[i].Defense]), pkNormal_64);
     1190      FindStdModelPicture(SpecialModelPictureCode[I], pix, S);
     1191      AddLine(S, pkSection);
     1192      AddLine(Format(HelpText.Lookup('STRENGTH'), [SpecialModel[I].Attack,
     1193        SpecialModel[I].Defense]), pkNormal_64);
    11941194      AddLine(Format(HelpText.Lookup('SPEED'),
    1195         [MovementToString(SpecialModel[i].Speed)]), pkModel, pix);
     1195        [MovementToString(SpecialModel[I].Speed)]), pkModel, pix);
    11961196      if Difficulty = 0 then
    1197         AddLine(Format(HelpText.Lookup('BUILDCOST'), [SpecialModel[i].Cost]),
     1197        AddLine(Format(HelpText.Lookup('BUILDCOST'), [SpecialModel[I].Cost]),
    11981198          pkNormal_64)
    11991199      else
    12001200        AddLine(Format(HelpText.Lookup('BUILDCOST'),
    1201           [SpecialModel[i].Cost * BuildCostMod[Difficulty] div 12]),
     1201          [SpecialModel[I].Cost * BuildCostMod[Difficulty] div 12]),
    12021202          pkNormal_64);
    1203       s := HelpText.LookupByHandle(hSPECIALMODEL, i);
    1204       if (s <> '') and (s <> '*') then
    1205         AddTextual(s);
    1206       if SpecialModelPreq[i] >= 0 then
    1207         AddPreqAdv(SpecialModelPreq[i])
    1208       else if SpecialModelPreq[i] = preLighthouse then
     1203      S := HelpText.LookupByHandle(hSPECIALMODEL, I);
     1204      if (S <> '') and (S <> '*') then
     1205        AddTextual(S);
     1206      if SpecialModelPreq[I] >= 0 then
     1207        AddPreqAdv(SpecialModelPreq[I])
     1208      else if SpecialModelPreq[I] = preLighthouse then
    12091209        AddPreqImp(woLighthouse)
    1210       else if SpecialModelPreq[i] = preBuilder then
     1210      else if SpecialModelPreq[I] = preBuilder then
    12111211        AddPreqImp(woPyramids)
    1212       else if SpecialModelPreq[i] = preLeo then
     1212      else if SpecialModelPreq[I] = preLeo then
    12131213        AddPreqImp(woLeo);
    1214       if SpecialModelPreq[i] <> preNone then
     1214      if SpecialModelPreq[I] <> preNone then
    12151215        MainText[Count - 1] := Format(HelpText.Lookup('REQUIRED'),
    12161216          [MainText[Count - 1]]);
     
    12201220  procedure AddJobList;
    12211221  var
    1222     i, JobCost: Integer;
     1222    I, JobCost: Integer;
    12231223  begin
    12241224    with MainText do begin
    1225       for i := 0 to nJobHelp - 1 do begin
    1226         if i > 0 then begin
     1225      for I := 0 to nJobHelp - 1 do begin
     1226        if I > 0 then begin
    12271227          LineFeed;
    12281228          LineFeed;
    12291229        end;
    1230         AddLine(Phrases.Lookup('JOBRESULT', JobHelp[i]), pkSection);
     1230        AddLine(Phrases.Lookup('JOBRESULT', JobHelp[I]), pkSection);
    12311231        AddLine;
    1232         AddLine('', pkTerImp, i);
     1232        AddLine('', pkTerImp, I);
    12331233        AddLine;
    1234         AddTextual(HelpText.LookupByHandle(hJOBHELP, i));
     1234        AddTextual(HelpText.LookupByHandle(hJOBHELP, I));
    12351235        JobCost := -1;
    1236         case JobHelp[i] of
     1236        case JobHelp[I] of
    12371237          jCanal: JobCost := CanalWork;
    12381238          jFort: JobCost := FortWork;
     
    12441244        else
    12451245          AddTextual(HelpText.Lookup('JOBCOSTVAR'));
    1246         if JobPreq[JobHelp[i]] <> preNone then begin
    1247           AddPreqAdv(JobPreq[JobHelp[i]]);
     1246        if JobPreq[JobHelp[I]] <> preNone then begin
     1247          AddPreqAdv(JobPreq[JobHelp[I]]);
    12481248          MainText[Count - 1] := Format(HelpText.Lookup('REQUIRED'),
    12491249            [MainText[Count - 1]]);
     
    12551255  procedure AddGraphicCredits;
    12561256  var
    1257     i: Integer;
    1258     s: string;
     1257    I: Integer;
     1258    S: string;
    12591259    sr: TSearchRec;
    12601260    List, Plus: TStringList;
     
    12711271
    12721272    List.Sort;
    1273     i := 1;
    1274     while i < List.Count do
    1275       if List[i] = List[i - 1] then
    1276         List.Delete(i)
     1273    I := 1;
     1274    while I < List.Count do
     1275      if List[I] = List[I - 1] then
     1276        List.Delete(I)
    12771277      else
    1278         Inc(i);
    1279 
    1280     for i := 0 to List.Count - 1 do begin
    1281       s := List[i];
    1282       while BiColorTextWidth(OffScreen.Canvas, s) > InnerWidth - 16 -
     1278        Inc(I);
     1279
     1280    for I := 0 to List.Count - 1 do begin
     1281      S := List[I];
     1282      while BiColorTextWidth(OffScreen.Canvas, S) > InnerWidth - 16 -
    12831283        GetSystemMetrics(SM_CXVSCROLL) do
    1284         Delete(s, length(s), 1);
    1285       MainText.AddLine(s);
     1284        Delete(S, Length(S), 1);
     1285      MainText.AddLine(S);
    12861286    end;
    12871287    FreeAndNil(List);
     
    12901290  procedure AddSoundCredits;
    12911291  var
    1292     i: Integer;
    1293     s: string;
     1292    I: Integer;
     1293    S: string;
    12941294    List: TStringList;
    12951295  begin
    12961296    List := TStringList.Create;
    12971297    List.LoadFromFile(GetSoundsDir + DirectorySeparator + 'sound.credits.txt');
    1298     for i := 0 to List.Count - 1 do begin
    1299       s := List[i];
    1300       while BiColorTextWidth(OffScreen.Canvas, s) > InnerWidth - 16 -
     1298    for I := 0 to List.Count - 1 do begin
     1299      S := List[I];
     1300      while BiColorTextWidth(OffScreen.Canvas, S) > InnerWidth - 16 -
    13011301        GetSystemMetrics(SM_CXVSCROLL) do
    1302         Delete(s, length(s), 1);
    1303       MainText.AddLine(s);
     1302        Delete(S, Length(S), 1);
     1303      MainText.AddLine(S);
    13041304    end;
    13051305    FreeAndNil(List);
     
    13491349                  hkAdv, 200);
    13501350                LineFeed;
    1351                 FindStdModelPicture(SpecialModelPictureCode[6], i, s);
    1352                 AddLine(HelpText.Lookup('HELPTITLE_MODELLIST'), pkModel, i,
     1351                FindStdModelPicture(SpecialModelPictureCode[6], I, S);
     1352                AddLine(HelpText.Lookup('HELPTITLE_MODELLIST'), pkModel, I,
    13531353                  hkModel, 0);
    13541354                LineFeed;
     
    14021402              begin
    14031403                Caption := HelpText.Lookup('HELPTITLE_GOVLIST');
    1404                 for i := 1 to nGov do
     1404                for I := 1 to nGov do
    14051405                begin
    1406                   AddLine(Phrases.Lookup('GOVERNMENT', i mod nGov), pkSection);
     1406                  AddLine(Phrases.Lookup('GOVERNMENT', I mod nGov), pkSection);
    14071407                  LineFeed;
    1408                   if i = nGov then
     1408                  if I = nGov then
    14091409                    AddLine('', pkBigIcon, 7 * SystemIconLines + imPalace)
    14101410                  else
    1411                     AddLine('', pkBigIcon, i + 6);
     1411                    AddLine('', pkBigIcon, I + 6);
    14121412                  LineFeed;
    1413                   AddTextual(HelpText.LookupByHandle(hGOVHELP, i mod nGov));
    1414                   if i mod nGov >= 2 then
     1413                  AddTextual(HelpText.LookupByHandle(hGOVHELP, I mod nGov));
     1414                  if I mod nGov >= 2 then
    14151415                  begin
    1416                     AddPreqAdv(GovPreq[i mod nGov]);
     1416                    AddPreqAdv(GovPreq[I mod nGov]);
    14171417                    MainText[Count - 1] := Format(HelpText.Lookup('REQUIRED'),
    14181418                      [MainText[Count - 1]]);
    14191419                  end;
    1420                   if i < nGov then
     1420                  if I < nGov then
    14211421                  begin
    14221422                    LineFeed;
     
    14401440          List := THyperText.Create;
    14411441          List.OwnsObjects := True;
    1442           for j := 0 to 3 do
     1442          for J := 0 to 3 do
    14431443          begin
    1444             if j > 0 then
     1444            if J > 0 then
    14451445            begin
    14461446              LineFeed;
    14471447              LineFeed;
    14481448            end;
    1449             AddLine(HelpText.Lookup('TECHAGE', j), pkSection);
    1450             if j = 1 then
     1449            AddLine(HelpText.Lookup('TECHAGE', J), pkSection);
     1450            if J = 1 then
    14511451              AddLine(Phrases.Lookup('ADVANCES', adScience) + ' ' +
    14521452                HelpText.Lookup('BASETECH'), pkAdvIcon, adScience, hkAdv,
    14531453                adScience);
    1454             if j = 2 then
     1454            if J = 2 then
    14551455              AddLine(Phrases.Lookup('ADVANCES', adMassProduction) + ' ' +
    14561456                HelpText.Lookup('BASETECH'), pkAdvIcon, adMassProduction, hkAdv,
    14571457                adMassProduction);
    14581458            List.Clear;
    1459             for i := 0 to nAdv - 1 do
    1460               if (i <> adScience) and (i <> adMassProduction) and
    1461                 (AdvValue[i] div 1000 = j) then
    1462                 List.AddLine(Phrases.Lookup('ADVANCES', i), pkAdvIcon, i,
    1463                   hkAdv, i);
     1459            for I := 0 to nAdv - 1 do
     1460              if (I <> adScience) and (I <> adMassProduction) and
     1461                (AdvValue[I] div 1000 = J) then
     1462                List.AddLine(Phrases.Lookup('ADVANCES', I), pkAdvIcon, I,
     1463                  hkAdv, I);
    14641464            List.Sort;
    14651465            AppendList(List);
     
    14871487          else
    14881488            NextSection('PREREQ');
    1489           for i := 0 to 2 do
    1490             if AdvPreq[no, i] <> preNone then
    1491               AddPreqAdv(AdvPreq[no, i]);
     1489          for I := 0 to 2 do
     1490            if AdvPreq[no, I] <> preNone then
     1491              AddPreqAdv(AdvPreq[no, I]);
    14921492          NextSection('GOVALLOW');
    1493           for i := 2 to nGov - 1 do
    1494             if GovPreq[i] = no then
    1495               AddLine(Phrases.Lookup('GOVERNMENT', i), pkGov, i,
     1493          for I := 2 to nGov - 1 do
     1494            if GovPreq[I] = no then
     1495              AddLine(Phrases.Lookup('GOVERNMENT', I), pkGov, I,
    14961496                hkMisc + hkCrossLink, miscGovList);
    14971497          NextSection('BUILDALLOW');
    1498           for i := 0 to nWonder - 1 do
    1499             if Imp[i].Preq = no then
    1500               AddImprovement(i);
    1501           for i := nWonder to nImp - 1 do
    1502             if (Imp[i].Preq = no) and (Imp[i].Kind <> ikCommon) then
    1503               AddImprovement(i);
    1504           for i := nWonder to nImp - 1 do
    1505             if (Imp[i].Preq = no) and (Imp[i].Kind = ikCommon) then
    1506               AddImprovement(i);
     1498          for I := 0 to nWonder - 1 do
     1499            if Imp[I].Preq = no then
     1500              AddImprovement(I);
     1501          for I := nWonder to nImp - 1 do
     1502            if (Imp[I].Preq = no) and (Imp[I].Kind <> ikCommon) then
     1503              AddImprovement(I);
     1504          for I := nWonder to nImp - 1 do
     1505            if (Imp[I].Preq = no) and (Imp[I].Kind = ikCommon) then
     1506              AddImprovement(I);
    15071507          NextSection('MODELALLOW');
    1508           for i := 0 to nSpecialModel - 1 do
    1509             if SpecialModelPreq[i] = no then
    1510               AddModel(i);
     1508          for I := 0 to nSpecialModel - 1 do
     1509            if SpecialModelPreq[I] = no then
     1510              AddModel(I);
    15111511          NextSection('FEATALLOW');
    1512           for i := 0 to nFeature - 1 do
    1513             if Feature[i].Preq = no then
    1514               AddFeature(i);
     1512          for I := 0 to nFeature - 1 do
     1513            if Feature[I].Preq = no then
     1514              AddFeature(I);
    15151515          NextSection('FOLLOWADV');
    1516           for i := 0 to nAdv - 1 do
    1517             if (AdvPreq[i, 0] = no) or (AdvPreq[i, 1] = no) or
    1518               (AdvPreq[i, 2] = no) then
    1519               AddAdvance(i);
     1516          for I := 0 to nAdv - 1 do
     1517            if (AdvPreq[I, 0] = no) or (AdvPreq[I, 1] = no) or
     1518              (AdvPreq[I, 2] = no) then
     1519              AddAdvance(I);
    15201520          NextSection('UPGRADEALLOW');
    15211521          for Domain := 0 to nDomains - 1 do
    1522             for i := 1 to nUpgrade - 1 do
    1523               if upgrade[Domain, i].Preq = no then
     1522            for I := 1 to nUpgrade - 1 do
     1523              if upgrade[Domain, I].Preq = no then
    15241524              begin
    1525                 if upgrade[Domain, i].Strength > 0 then
     1525                if upgrade[Domain, I].Strength > 0 then
    15261526                  AddLine(Format(HelpText.Lookup('STRENGTHUP'),
    15271527                    [Phrases.Lookup('DOMAIN', Domain), upgrade[Domain,
    1528                     i].Strength]), pkDomain, Domain);
    1529                 if upgrade[Domain, i].Trans > 0 then
     1528                    I].Strength]), pkDomain, Domain);
     1529                if upgrade[Domain, I].Trans > 0 then
    15301530                  AddLine(Format(HelpText.Lookup('TRANSUP'),
    1531                     [Phrases.Lookup('DOMAIN', Domain), upgrade[Domain, i].Trans]
     1531                    [Phrases.Lookup('DOMAIN', Domain), upgrade[Domain, I].Trans]
    15321532                    ), pkDomain, Domain);
    15331533                if no in FutureTech then
    15341534                  AddLine(Format(HelpText.Lookup('COSTUP'),
    1535                     [upgrade[Domain, i].Cost]), pkNormal_Dot)
     1535                    [upgrade[Domain, I].Cost]), pkNormal_Dot)
    15361536                else
    15371537                  AddLine(Format(HelpText.Lookup('COSTMIN'),
    1538                     [upgrade[Domain, i].Cost]), pkNormal_Dot)
     1538                    [upgrade[Domain, I].Cost]), pkNormal_Dot)
    15391539              end;
    15401540          NextSection('EXPIRATION');
    1541           for i := 0 to nWonder - 1 do
    1542             if (Imp[i].Preq <> preNA) and (Imp[i].Expiration = no) then
    1543               AddImprovement(i);
     1541          for I := 0 to nWonder - 1 do
     1542            if (Imp[I].Preq <> preNA) and (Imp[I].Expiration = no) then
     1543              AddImprovement(I);
    15441544          NextSection('ADVEFFECT');
    1545           s := HelpText.LookupByHandle(hADVHELP, no);
    1546           if s <> '*' then
    1547             AddTextual(s);
     1545          S := HelpText.LookupByHandle(hADVHELP, no);
     1546          if S <> '*' then
     1547            AddTextual(S);
    15481548          NextSection('SEEALSO');
    1549           CheckSeeAlso := true
     1549          CheckSeeAlso := True
    15501550        end;
    15511551
     
    15571557          List := THyperText.Create;
    15581558          List.OwnsObjects := True;
    1559           for i := nWonder to nImp - 1 do
    1560             if (i <> imTrGoods) and (Imp[i].Preq <> preNA) and
    1561               (Imp[i].Kind = ikCommon) then
    1562               List.AddLine(Phrases.Lookup('IMPROVEMENTS', i), pkSmallIcon,
    1563                 i, hkImp, i);
     1559          for I := nWonder to nImp - 1 do
     1560            if (I <> imTrGoods) and (Imp[I].Preq <> preNA) and
     1561              (Imp[I].Kind = ikCommon) then
     1562              List.AddLine(Phrases.Lookup('IMPROVEMENTS', I), pkSmallIcon,
     1563                I, hkImp, I);
    15641564          List.Sort;
    15651565          AppendList(List);
     
    15701570          Caption := HelpText.Lookup('HELPTITLE_UNIQUELIST');
    15711571          // AddLine(HelpText.Lookup('HELPTITLE_UNIQUELIST'),pkSection);
    1572           for i := nWonder to nImp - 1 do
    1573             if (Imp[i].Preq <> preNA) and
    1574               ((Imp[i].Kind = ikNatLocal) or (Imp[i].Kind = ikNatGlobal)) then
    1575               AddLine(Phrases.Lookup('IMPROVEMENTS', i), pkSmallIcon, i,
    1576                 hkImp, i);
     1572          for I := nWonder to nImp - 1 do
     1573            if (Imp[I].Preq <> preNA) and
     1574              ((Imp[I].Kind = ikNatLocal) or (Imp[I].Kind = ikNatGlobal)) then
     1575              AddLine(Phrases.Lookup('IMPROVEMENTS', I), pkSmallIcon, I,
     1576                hkImp, I);
    15771577          { LineFeed;
    15781578            LineFeed;
    15791579            AddLine(HelpText.Lookup('HELPTITLE_SHIPPARTLIST'),pkSection);
    1580             for i:= nWonder to nImp-1 do
    1581             if (Imp[i].Preq<>preNA) and (Imp[i].Kind=ikShipPart) then
    1582             AddLine(Phrases.Lookup('IMPROVEMENTS',i),pkSmallIcon,i,hkImp,i); }
     1580            for I:= nWonder to nImp-1 do
     1581            if (Imp[I].Preq<>preNA) and (Imp[I].Kind=ikShipPart) then
     1582            AddLine(Phrases.Lookup('IMPROVEMENTS',I),pkSmallIcon,I,hkImp,I); }
    15831583        end
    15841584        else if no = 202 then
     
    15861586          Caption := HelpText.Lookup('HELPTITLE_WONDERLIST');
    15871587          // AddLine(HelpText.Lookup('HELPTITLE_WONDERLIST'),pkSection);
    1588           for i := 0 to nWonder - 1 do
    1589             if Imp[i].Preq <> preNA then
    1590               AddLine(Phrases.Lookup('IMPROVEMENTS', i), pkSmallIcon, i,
    1591                 hkImp, i);
     1588          for I := 0 to nWonder - 1 do
     1589            if Imp[I].Preq <> preNA then
     1590              AddLine(Phrases.Lookup('IMPROVEMENTS', I), pkSmallIcon, I,
     1591                hkImp, I);
    15921592        end
    15931593        else
     
    16271627          NextSection('COSTS');
    16281628          if Difficulty = 0 then
    1629             s := Format(HelpText.Lookup('BUILDCOST'), [Imp[no].Cost])
     1629            S := Format(HelpText.Lookup('BUILDCOST'), [Imp[no].Cost])
    16301630          else
    1631             s := Format(HelpText.Lookup('BUILDCOST'),
     1631            S := Format(HelpText.Lookup('BUILDCOST'),
    16321632              [Imp[no].Cost * BuildCostMod[Difficulty] div 12]);
    1633           AddLine(s);
     1633          AddLine(S);
    16341634          if Imp[no].Maint > 0 then
    16351635            AddLine(Format(HelpText.Lookup('MAINTCOST'), [Imp[no].Maint]));
    1636           j := 0;
    1637           for i := 0 to nImpReplacement - 1 do
    1638             if ImpReplacement[i].NewImp = no then
    1639             begin
    1640               if j = 0 then
     1636          J := 0;
     1637          for I := 0 to nImpReplacement - 1 do
     1638            if ImpReplacement[I].NewImp = no then
     1639            begin
     1640              if J = 0 then
    16411641              begin
    16421642                NextSection('REPLACE');
    16431643                AddItem('REPLACETEXT');
    1644                 j := 1;
     1644                J := 1;
    16451645              end;
    1646               AddImprovement(ImpReplacement[i].OldImp);
     1646              AddImprovement(ImpReplacement[I].OldImp);
    16471647            end;
    16481648          if Imp[no].Kind = ikShipPart then
     
    16501650            LineFeed;
    16511651            if no = imShipComp then
    1652               i := 1
     1652              I := 1
    16531653            else if no = imShipPow then
    1654               i := 2
     1654              I := 2
    16551655            else { if no=imShipHab then }
    1656               i := 3;
     1656              I := 3;
    16571657            AddLine(Format(HelpText.Lookup('RAREREQUIRED'),
    1658               [Phrases.Lookup('TERRAIN', 3 * 12 + i)]), pkTer, 3 * 12 + i);
     1658              [Phrases.Lookup('TERRAIN', 3 * 12 + I)]), pkTer, 3 * 12 + I);
    16591659          end;
    16601660          if (no < nWonder) and (Imp[no].Expiration >= 0) then
    16611661          begin
    16621662            NextSection('EXPIRATION');
    1663             s := Format(HelpText.Lookup('EXPWITH'),
     1663            S := Format(HelpText.Lookup('EXPWITH'),
    16641664              [Phrases.Lookup('ADVANCES', Imp[no].Expiration)]);
    16651665            if no = woPyramids then
    1666               s := s + ' ' + HelpText.Lookup('EXPSLAVE');
    1667             AddTextual(s);
     1666              S := S + ' ' + HelpText.Lookup('EXPSLAVE');
     1667            AddTextual(S);
    16681668          end;
    16691669          NextSection('SEEALSO');
    16701670          if (no < nWonder) and (Imp[no].Expiration >= 0) then
    16711671            AddImprovement(woEiffel);
    1672           for i := 0 to nImpReplacement - 1 do
    1673             if ImpReplacement[i].OldImp = no then
    1674               AddImprovement(ImpReplacement[i].NewImp);
     1672          for I := 0 to nImpReplacement - 1 do
     1673            if ImpReplacement[I].OldImp = no then
     1674              AddImprovement(ImpReplacement[I].NewImp);
    16751675          if no = imSupermarket then
    16761676            AddLine(HelpText.Lookup('HELPTITLE_JOBLIST'), pkNormal, 0,
    16771677              hkMisc + hkCrossLink, miscJobList);
    1678           CheckSeeAlso := true;
     1678          CheckSeeAlso := True;
    16791679        end;
    16801680
     
    16841684          Caption := HelpText.Lookup('HELPTITLE_TERLIST');
    16851685          // AddLine(HelpText.Lookup('HELPTITLE_TERLIST'),pkSection);
    1686           for i := 0 to nTerrainHelp - 1 do
    1687             AddTerrain(TerrainHelp[i]);
     1686          for I := 0 to nTerrainHelp - 1 do
     1687            AddTerrain(TerrainHelp[I]);
    16881688        end
    16891689        else
     
    17461746            begin
    17471747              LineFeed;
    1748               i := TransTerrain;
    1749               if (TerrType <> fGrass) and (i <> fGrass) then
    1750                 i := i + TerrSubType * 12;
     1748              I := TransTerrain;
     1749              if (TerrType <> fGrass) and (I <> fGrass) then
     1750                I := I + TerrSubType * 12;
    17511751              // trafo to same Special resource group
    17521752              AddLine(Format(HelpText.Lookup('TRAFO'),
    1753                 [Phrases.Lookup('TERRAIN', i)]), pkTer, i,
    1754                 hkTer + hkCrossLink, i);
     1753                [Phrases.Lookup('TERRAIN', I)]), pkTer, I,
     1754                hkTer + hkCrossLink, I);
    17551755              if no = fSwamp + 12 then
    17561756              begin
     
    17601760                  TransTerrain + 24, hkTer + hkCrossLink, TransTerrain + 24);
    17611761              end
    1762               else if i = fGrass then
     1762              else if I = fGrass then
    17631763              begin
    17641764                LineFeed;
     
    17901790                  AddLine(Phrases.Lookup('TERRAIN', no + Special * 12), pkTer,
    17911791                    no + Special * 12);
    1792                   i := FoodRes[Special] - FoodRes[0];
    1793                   if i <> 0 then
     1792                  I := FoodRes[Special] - FoodRes[0];
     1793                  if I <> 0 then
    17941794                    MainText[Count - 1] := MainText[Count - 1] +
    1795                       Format(HelpText.Lookup('SPECIALFOOD'), [i]);
    1796                   i := ProdRes[Special] - ProdRes[0];
    1797                   if i <> 0 then
     1795                      Format(HelpText.Lookup('SPECIALFOOD'), [I]);
     1796                  I := ProdRes[Special] - ProdRes[0];
     1797                  if I <> 0 then
    17981798                    MainText[Count - 1] := MainText[Count - 1] +
    1799                       Format(HelpText.Lookup('SPECIALPROD'), [i]);
    1800                   i := TradeRes[Special] - TradeRes[0];
    1801                   if i <> 0 then
     1799                      Format(HelpText.Lookup('SPECIALPROD'), [I]);
     1800                  I := TradeRes[Special] - TradeRes[0];
     1801                  if I <> 0 then
    18021802                    MainText[Count - 1] := MainText[Count - 1] +
    1803                       Format(HelpText.Lookup('SPECIALTRADE'), [i]);
     1803                      Format(HelpText.Lookup('SPECIALTRADE'), [I]);
    18041804                end;
    18051805            end;
     
    18131813              NextSection('SEEALSO');
    18141814              AddImprovement(woGardens);
    1815               CheckSeeAlso := true
     1815              CheckSeeAlso := True
    18161816            end;
    18171817          end;
     
    18371837            end;
    18381838            List.Clear;
    1839             for i := 0 to nFeature - 1 do
    1840               if Feature[i].Preq <> preNA then
     1839            for I := 0 to nFeature - 1 do
     1840              if Feature[I].Preq <> preNA then
    18411841              begin
    1842                 if i < mcFirstNonCap then
    1843                   j := 0
    1844                 else if i in AutoFeature then
    1845                   j := 2
     1842                if I < mcFirstNonCap then
     1843                  J := 0
     1844                else if I in AutoFeature then
     1845                  J := 2
    18461846                else
    1847                   j := 1;
    1848                 if j = Special then
    1849                   List.AddLine(Phrases.Lookup('FEATURES', i), pkFeature, i,
    1850                     hkFeature, i);
     1847                  J := 1;
     1848                if J = Special then
     1849                  List.AddLine(Phrases.Lookup('FEATURES', I), pkFeature, I,
     1850                    hkFeature, I);
    18511851              end;
    18521852            List.Sort;
     
    18711871          begin
    18721872            NextSection('COSTS');
    1873             s := IntToStr(Feature[no].Cost);
     1873            S := IntToStr(Feature[no].Cost);
    18741874            if Feature[no].Cost >= 0 then
    1875               s := '+' + s;
    1876             AddLine(Format(HelpText.Lookup('COSTBASE'), [s]));
     1875              S := '+' + S;
     1876            AddLine(Format(HelpText.Lookup('COSTBASE'), [S]));
    18771877            if Feature[no].Weight > 0 then
    18781878            begin
     
    19011901        begin
    19021902          Caption := HelpText.Lookup('HELPTITLE_MODELLIST');
    1903           for i := 0 to nSpecialModel - 1 do
    1904             if i <> 2 then
    1905               AddModelText(i);
     1903          for I := 0 to nSpecialModel - 1 do
     1904            if I <> 2 then
     1905              AddModelText(I);
    19061906          LineFeed;
    19071907          AddItem('MODELNOTE');
     
    19101910    end;
    19111911    if CheckSeeAlso then
    1912       for i := 0 to nSeeAlso - 1 do
    1913         if (SeeAlso[i].Kind = Kind) and (SeeAlso[i].no = no) then
    1914           case SeeAlso[i].SeeKind of
    1915             hkImp: AddImprovement(SeeAlso[i].SeeNo);
    1916             hkAdv: AddAdvance(SeeAlso[i].SeeNo);
    1917             hkFeature: AddFeature(SeeAlso[i].SeeNo);
     1912      for I := 0 to nSeeAlso - 1 do
     1913        if (SeeAlso[I].Kind = Kind) and (SeeAlso[I].no = no) then
     1914          case SeeAlso[I].SeeKind of
     1915            hkImp: AddImprovement(SeeAlso[I].SeeNo);
     1916            hkAdv: AddAdvance(SeeAlso[I].SeeNo);
     1917            hkFeature: AddFeature(SeeAlso[I].SeeNo);
    19181918          end;
    19191919    if (Headline >= 0) and (Count = Headline + 1) then
     
    19491949
    19501950procedure THelpDlg.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
    1951   x, y: integer);
     1951  X, Y: Integer);
    19521952var
    19531953  i0, Sel0: Integer;
    19541954begin
    1955   y := y - WideFrame;
     1955  Y := Y - WideFrame;
    19561956  i0 := ScrollBar.Position;
    19571957  Sel0 := Sel;
    1958   if (x >= SideFrame) and (x < SideFrame + InnerWidth) and (y >= 0) and
    1959     (y < InnerHeight) and (y mod 24 >= 8) then
    1960     Sel := y div 24
     1958  if (X >= SideFrame) and (X < SideFrame + InnerWidth) and (Y >= 0) and
     1959    (Y < InnerHeight) and (Y mod 24 >= 8) then
     1960    Sel := Y div 24
    19611961  else
    19621962    Sel := -1;
     
    19741974
    19751975procedure THelpDlg.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
    1976   Shift: TShiftState; x, y: integer);
     1976  Shift: TShiftState; X, Y: Integer);
    19771977begin
    19781978  if Sel >= 0 then
     
    19871987      begin
    19881988        if (Link >= $8000) and (Link and $3FFF = liInvalid) then
    1989           exit; // invalid link;
     1989          Exit; // invalid link;
    19901990        if Link >= $8000 then
    19911991          ShowNewContent(FWindowMode, hkText, Link and $3FFF)
     
    20792079procedure THelpDlg.Search(SearchString: string);
    20802080var
    2081   h, i, PrevHandle, PrevIndex, p, RightMargin: Integer;
    2082   s: string;
     2081  H, I, PrevHandle, PrevIndex, P, RightMargin: Integer;
     2082  S: string;
    20832083  mADVHELP, mIMPHELP, mFEATUREHELP: set of 0 .. 255;
    20842084  bGOVHELP, bSPECIALMODEL, bJOBHELP: Boolean;
     
    20942094  // search in generic reference
    20952095  SearchString := UpperCase(SearchString);
    2096   for i := 0 to 35 + 4 do begin
    2097     s := Phrases.Lookup('TERRAIN', i);
    2098     if pos(SearchString, UpperCase(s)) > 0 then
    2099       if i < 36 then
    2100         SearchResult.AddLine(s + ' ' + HelpText.Lookup('HELPSPEC_TER'),
    2101           pkNormal, 0, hkTer + hkCrossLink, i)
     2096  for I := 0 to 35 + 4 do begin
     2097    S := Phrases.Lookup('TERRAIN', I);
     2098    if Pos(SearchString, UpperCase(S)) > 0 then
     2099      if I < 36 then
     2100        SearchResult.AddLine(S + ' ' + HelpText.Lookup('HELPSPEC_TER'),
     2101          pkNormal, 0, hkTer + hkCrossLink, I)
    21022102      else
    21032103      begin
     
    21052105          HelpText.Lookup('HELPSPEC_TER'), pkNormal, 0,
    21062106          hkTer + hkCrossLink, 36);
    2107         if i > 36 then
     2107        if I > 36 then
    21082108          SearchResult.AddLine(Phrases.Lookup('IMPROVEMENTS',
    2109             imShipComp + i - 37) + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART'),
    2110             pkNormal, 0, hkImp + hkCrossLink, imShipComp + i - 37);
     2109            imShipComp + I - 37) + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART'),
     2110            pkNormal, 0, hkImp + hkCrossLink, imShipComp + I - 37);
    21112111        Break;
    21122112      end;
    21132113  end;
    2114   for i := 0 to nJobHelp - 1 do
    2115     if pos(SearchString, UpperCase(Phrases.Lookup('JOBRESULT', JobHelp[i]))) > 0
     2114  for I := 0 to nJobHelp - 1 do
     2115    if Pos(SearchString, UpperCase(Phrases.Lookup('JOBRESULT', JobHelp[I]))) > 0
    21162116    then
    21172117    begin
     
    21212121      Break;
    21222122    end;
    2123   for i := 0 to nAdv - 1 do
    2124   begin
    2125     s := Phrases.Lookup('ADVANCES', i);
    2126     if pos(SearchString, UpperCase(s)) > 0 then
     2123  for I := 0 to nAdv - 1 do
     2124  begin
     2125    S := Phrases.Lookup('ADVANCES', I);
     2126    if Pos(SearchString, UpperCase(S)) > 0 then
    21272127    begin
    2128       if i in FutureTech then
    2129         s := s + ' ' + HelpText.Lookup('HELPSPEC_FUTURE')
     2128      if I in FutureTech then
     2129        S := S + ' ' + HelpText.Lookup('HELPSPEC_FUTURE')
    21302130      else
    2131         s := s + ' ' + HelpText.Lookup('HELPSPEC_ADV');
    2132       SearchResult.AddLine(s, pkNormal, 0, hkAdv + hkCrossLink, i);
    2133       include(mADVHELP, i);
     2131        S := S + ' ' + HelpText.Lookup('HELPSPEC_ADV');
     2132      SearchResult.AddLine(S, pkNormal, 0, hkAdv + hkCrossLink, I);
     2133      Include(mADVHELP, I);
    21342134    end;
    21352135  end;
    2136   for i := 0 to nSpecialModel - 1 do
    2137   begin
    2138     FindStdModelPicture(SpecialModelPictureCode[i], h, s);
    2139     if pos(SearchString, UpperCase(s)) > 0 then
     2136  for I := 0 to nSpecialModel - 1 do
     2137  begin
     2138    FindStdModelPicture(SpecialModelPictureCode[I], H, S);
     2139    if Pos(SearchString, UpperCase(S)) > 0 then
    21402140    begin
    21412141      SearchResult.AddLine(HelpText.Lookup('HELPTITLE_MODELLIST'), pkNormal, 0,
     
    21452145    end;
    21462146  end;
    2147   for i := 0 to nFeature - 1 do
    2148   begin
    2149     s := Phrases.Lookup('FEATURES', i);
    2150     if Pos(SearchString, UpperCase(s)) > 0 then
     2147  for I := 0 to nFeature - 1 do
     2148  begin
     2149    S := Phrases.Lookup('FEATURES', I);
     2150    if Pos(SearchString, UpperCase(S)) > 0 then
    21512151    begin
    2152       if i < mcFirstNonCap then
    2153         s := s + ' ' + HelpText.Lookup('HELPSPEC_CAP')
    2154       else if i in AutoFeature then
    2155         s := s + ' ' + HelpText.Lookup('HELPSPEC_STANDARD')
     2152      if I < mcFirstNonCap then
     2153        S := S + ' ' + HelpText.Lookup('HELPSPEC_CAP')
     2154      else if I in AutoFeature then
     2155        S := S + ' ' + HelpText.Lookup('HELPSPEC_STANDARD')
    21562156      else
    2157         s := s + ' ' + HelpText.Lookup('HELPSPEC_FEATURE');
    2158       SearchResult.AddLine(s, pkNormal, 0, hkFeature + hkCrossLink, i);
    2159       Include(mFEATUREHELP, i);
     2157        S := S + ' ' + HelpText.Lookup('HELPSPEC_FEATURE');
     2158      SearchResult.AddLine(S, pkNormal, 0, hkFeature + hkCrossLink, I);
     2159      Include(mFEATUREHELP, I);
    21602160    end;
    21612161  end;
    2162   for i := 0 to nImp - 1 do
    2163   begin
    2164     s := Phrases.Lookup('IMPROVEMENTS', i);
    2165     if Pos(SearchString, UpperCase(s)) > 0 then
     2162  for I := 0 to nImp - 1 do
     2163  begin
     2164    S := Phrases.Lookup('IMPROVEMENTS', I);
     2165    if Pos(SearchString, UpperCase(S)) > 0 then
    21662166    begin
    2167       case Imp[i].Kind of
     2167      case Imp[I].Kind of
    21682168        ikWonder:
    2169           s := s + ' ' + HelpText.Lookup('HELPSPEC_WONDER');
     2169          S := S + ' ' + HelpText.Lookup('HELPSPEC_WONDER');
    21702170        ikCommon:
    2171           s := s + ' ' + HelpText.Lookup('HELPSPEC_IMP');
     2171          S := S + ' ' + HelpText.Lookup('HELPSPEC_IMP');
    21722172        ikShipPart:
    2173           s := s + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART');
     2173          S := S + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART');
    21742174      else
    2175         s := s + ' ' + HelpText.Lookup('HELPSPEC_NAT')
     2175        S := S + ' ' + HelpText.Lookup('HELPSPEC_NAT')
    21762176      end;
    2177       SearchResult.AddLine(s, pkNormal, 0, hkImp + hkCrossLink, i);
    2178       Include(mIMPHELP, i);
     2177      SearchResult.AddLine(S, pkNormal, 0, hkImp + hkCrossLink, I);
     2178      Include(mIMPHELP, I);
    21792179    end
    21802180  end;
    2181   for i := 0 to nGov - 1 do
    2182     if Pos(SearchString, UpperCase(Phrases.Lookup('GOVERNMENT', i))) > 0 then
     2181  for I := 0 to nGov - 1 do
     2182    if Pos(SearchString, UpperCase(Phrases.Lookup('GOVERNMENT', I))) > 0 then
    21832183    begin
    21842184      SearchResult.AddLine(HelpText.Lookup('HELPTITLE_GOVLIST'), pkNormal, 0,
     
    21892189
    21902190  // full text search
    2191   h := -1;
     2191  H := -1;
    21922192  repeat
    2193     PrevHandle := h;
    2194     PrevIndex := i;
    2195     if not HelpText.Search(SearchString, h, i) then
     2193    PrevHandle := H;
     2194    PrevIndex := I;
     2195    if not HelpText.Search(SearchString, H, I) then
    21962196      Break;
    2197     if h = hADVHELP then
     2197    if H = hADVHELP then
    21982198    begin
    2199       if (i >= 0) and ((i <> PrevIndex) or (h <> PrevHandle)) and
    2200         not(i in mADVHELP) then
     2199      if (I >= 0) and ((I <> PrevIndex) or (H <> PrevHandle)) and
     2200        not(I in mADVHELP) then
    22012201      begin
    2202         s := Phrases.Lookup('ADVANCES', i);
    2203         if i in FutureTech then
    2204           s := s + ' ' + HelpText.Lookup('HELPSPEC_FUTURE')
     2202        S := Phrases.Lookup('ADVANCES', I);
     2203        if I in FutureTech then
     2204          S := S + ' ' + HelpText.Lookup('HELPSPEC_FUTURE')
    22052205        else
    2206           s := s + ' ' + HelpText.Lookup('HELPSPEC_ADV');
    2207         SearchResult.AddLine(s, pkNormal, 0, hkAdv + hkCrossLink, i)
     2206          S := S + ' ' + HelpText.Lookup('HELPSPEC_ADV');
     2207        SearchResult.AddLine(S, pkNormal, 0, hkAdv + hkCrossLink, I)
    22082208      end;
    22092209    end
    2210     else if h = hIMPHELP then
     2210    else if H = hIMPHELP then
    22112211    begin
    2212       if (i >= 0) and ((i <> PrevIndex) or (h <> PrevHandle)) and
    2213         not(i in mIMPHELP) then
     2212      if (I >= 0) and ((I <> PrevIndex) or (H <> PrevHandle)) and
     2213        not(I in mIMPHELP) then
    22142214      begin
    2215         s := Phrases.Lookup('IMPROVEMENTS', i);
    2216         case Imp[i].Kind of
     2215        S := Phrases.Lookup('IMPROVEMENTS', I);
     2216        case Imp[I].Kind of
    22172217          ikWonder:
    2218             s := s + ' ' + HelpText.Lookup('HELPSPEC_WONDER');
     2218            S := S + ' ' + HelpText.Lookup('HELPSPEC_WONDER');
    22192219          ikCommon:
    2220             s := s + ' ' + HelpText.Lookup('HELPSPEC_IMP');
     2220            S := S + ' ' + HelpText.Lookup('HELPSPEC_IMP');
    22212221          ikShipPart:
    2222             s := s + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART');
     2222            S := S + ' ' + HelpText.Lookup('HELPSPEC_SHIPPART');
    22232223        else
    2224           s := s + ' ' + HelpText.Lookup('HELPSPEC_NAT')
     2224          S := S + ' ' + HelpText.Lookup('HELPSPEC_NAT')
    22252225        end;
    2226         SearchResult.AddLine(s, pkNormal, 0, hkImp + hkCrossLink, i)
     2226        SearchResult.AddLine(S, pkNormal, 0, hkImp + hkCrossLink, I)
    22272227      end;
    22282228    end
    2229     else if h = hFEATUREHELP then
     2229    else if H = hFEATUREHELP then
    22302230    begin
    2231       if (i >= 0) and ((i <> PrevIndex) or (h <> PrevHandle)) and
    2232         not(i in mFEATUREHELP) then
     2231      if (I >= 0) and ((I <> PrevIndex) or (H <> PrevHandle)) and
     2232        not(I in mFEATUREHELP) then
    22332233      begin
    2234         s := Phrases.Lookup('FEATURES', i);
    2235         if i < mcFirstNonCap then
    2236           s := s + ' ' + HelpText.Lookup('HELPSPEC_CAP')
    2237         else if i in AutoFeature then
    2238           s := s + ' ' + HelpText.Lookup('HELPSPEC_STANDARD')
     2234        S := Phrases.Lookup('FEATURES', I);
     2235        if I < mcFirstNonCap then
     2236          S := S + ' ' + HelpText.Lookup('HELPSPEC_CAP')
     2237        else if I in AutoFeature then
     2238          S := S + ' ' + HelpText.Lookup('HELPSPEC_STANDARD')
    22392239        else
    2240           s := s + ' ' + HelpText.Lookup('HELPSPEC_FEATURE');
    2241         SearchResult.AddLine(s, pkNormal, 0, hkFeature + hkCrossLink, i);
     2240          S := S + ' ' + HelpText.Lookup('HELPSPEC_FEATURE');
     2241        SearchResult.AddLine(S, pkNormal, 0, hkFeature + hkCrossLink, I);
    22422242      end;
    22432243    end
    2244     else if h = hGOVHELP then
     2244    else if H = hGOVHELP then
    22452245    begin
    2246       if (i >= 0) and (h <> PrevHandle) and not bGOVHELP then
     2246      if (I >= 0) and (H <> PrevHandle) and not bGOVHELP then
    22472247        SearchResult.AddLine(HelpText.Lookup('HELPTITLE_GOVLIST'), pkNormal, 0,
    22482248          hkMisc + hkCrossLink, miscGovList)
    22492249    end
    2250     else if h = hSPECIALMODEL then
     2250    else if H = hSPECIALMODEL then
    22512251    begin
    2252       if (i >= 0) and (h <> PrevHandle) and not bSPECIALMODEL then
     2252      if (I >= 0) and (H <> PrevHandle) and not bSPECIALMODEL then
    22532253        SearchResult.AddLine(HelpText.Lookup('HELPTITLE_MODELLIST'), pkNormal,
    22542254          0, hkModel + hkCrossLink, 0)
    22552255    end
    2256     else if h = hJOBHELP then
     2256    else if H = hJOBHELP then
    22572257    begin
    2258       if (i >= 0) and (h <> PrevHandle) and not bJOBHELP then
     2258      if (I >= 0) and (H <> PrevHandle) and not bJOBHELP then
    22592259        SearchResult.AddLine(HelpText.Lookup('HELPTITLE_JOBLIST'), pkNormal, 0,
    22602260          hkMisc + hkCrossLink, miscJobList)
    22612261    end
    2262     else if { (h<>hMAIN) and } (h <> PrevHandle) then
     2262    else if { (h<>hMAIN) and } (H <> PrevHandle) then
    22632263    begin
    2264       s := HelpText.LookupByHandle(h);
    2265       p := Pos('$', s);
    2266       if p > 0 then
     2264      S := HelpText.LookupByHandle(H);
     2265      P := Pos('$', S);
     2266      if P > 0 then
    22672267      begin
    2268         s := Copy(s, p + 1, maxint);
    2269         p := Pos('\', s);
    2270         if p > 0 then
    2271           s := Copy(s, 1, p - 1);
    2272         SearchResult.AddLine(s, pkNormal, 0, hkText + hkCrossLink, h);
     2268        S := Copy(S, P + 1, maxint);
     2269        P := Pos('\', S);
     2270        if P > 0 then
     2271          S := Copy(S, 1, P - 1);
     2272        SearchResult.AddLine(S, pkNormal, 0, hkText + hkCrossLink, H);
    22732273      end;
    22742274    end;
     
    22782278    RightMargin := InnerWidth - 16 - GetSystemMetrics(SM_CXVSCROLL);
    22792279    OffScreen.Canvas.Font.Assign(UniFont[ftNormal]);
    2280     for i := 0 to SearchResult.Count - 1 do
     2280    for I := 0 to SearchResult.Count - 1 do
    22812281    begin
    2282       while BiColorTextWidth(OffScreen.Canvas, SearchResult[i]) >
     2282      while BiColorTextWidth(OffScreen.Canvas, SearchResult[I]) >
    22832283        RightMargin - 32 do
    2284         SearchResult[i] := copy(SearchResult[i], 1, length(SearchResult[i]) - 1)
     2284        SearchResult[I] := Copy(SearchResult[I], 1, Length(SearchResult[I]) - 1)
    22852285    end;
    22862286  end;
Note: See TracChangeset for help on using the changeset viewer.