Changeset 27


Ignore:
Timestamp:
Sep 29, 2011, 11:10:27 PM (13 years ago)
Author:
george
Message:
  • Fixed: Tank block in one direction near obstacle. It was not possible to reverse tank direction.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/UCore.pas

    r26 r27  
    1414  EnergySteps = 4000;
    1515  EnergyDecreaseDig = 0.001;
     16  EnergyDecreaseShoot = 0.005;
    1617  ShieldSteps = 40;
    1718  ExplosionBulletCount = 100;
     
    1920  ExplosionBulletMaxSpeed = 0.5;
    2021  ExplosionBulletMinSpeed = 0.2;
    21   BulletExplosionRange = 3;
    22   ShootDelay = 0.2; // seconds
     22  BulletExplosionRange = 4;
     23  ShootDelay = 0.1; // seconds
    2324  DigDelay = 0.2; // seconds
    24   ShootDigDelay = 0.005; // seconds
    25   ShootEnergyDecrease = 0.01;
     25  ShootDigDelay = 0.05; // seconds
     26  MoveDelay = 0.05; // seconds
    2627  PlayerFrameWidth = 80;
    2728  PlayerFrameHeight = 80;
     
    7879  TMatterKind = (mkSpace, mkDirt, mkRock, mkBullet, mkTankBody,
    7980    mkHome, mkBorder);
     81
     82  TColisionState = record
     83    Blocking: Boolean;
     84    Diggable: Boolean;
     85  end;
    8086
    8187  { TPlayer }
     
    105111    LastShootTime: TDateTime;
    106112    LastDigTime: TDateTime;
     113    LastMoveTime: TDateTime;
    107114    Energy: Real;
    108115    LastEnergy: Real;
     
    113120    procedure Explosion(Position: TPoint; Distance: Integer);
    114121    procedure Control;
     122    function CheckNewDestination: Boolean;
    115123    procedure Tick;
    116124    procedure Paint;
    117125    procedure PlaceHouse;
    118     function CheckColision: TMatterIndex;
     126    function CheckColision: TColisionState;
    119127    procedure ShowTank;
    120128    procedure HideTank;
     
    131139    Player: Integer;
    132140    Color: TColor;
     141    Diggable: Boolean;
     142    Blocking: Boolean;
    133143  end;
    134144
     
    241251  repeat
    242252    Engine.Tick;
    243     Sleep(50);
     253    Sleep(10);
    244254  until Terminated;
    245255end;
     
    314324    Color := $0756b0;
    315325    Player := -1;
     326    Diggable := True;
    316327  end;
    317328  // Dirt2
     
    320331    Color := $2170c3;
    321332    Player := -1;
     333    Diggable := True;
    322334  end;
    323335  // Rock
     
    326338    Color := TColor($9a9a9a);
    327339    Player := -1;
     340    Blocking := True;
    328341  end;
    329342  // Bullet1
     
    351364    Color := clYellow;
    352365    Player := 0;
     366    Blocking := True;
    353367  end;
    354368  // Player 1 home
     
    357371    Color := TColor($00ff00);
    358372    Player := 0;
     373    Blocking := True;
    359374  end;
    360375  // Player 1 body1
     
    363378    Color := TColor($00ff00);
    364379    Player := 0;
     380    Blocking := True;
    365381  end;
    366382  // Player 1 body2
     
    369385    Color := TColor($00a000);
    370386    Player := 0;
     387    Blocking := True;
    371388  end;
    372389
     
    376393    Color := clYellow;
    377394    Player := 1;
     395    Blocking := True;
    378396  end;
    379397  // Player 2 home
     
    382400    Color :=  TColor($ff2c2c);
    383401    Player := 1;
     402    Blocking := True;
    384403  end;
    385404  // Player 2 body1
     
    388407    Color := TColor($ff2c2c);
    389408    Player := 1;
     409    Blocking := True;
    390410  end;
    391411  // Player 2 body2
     
    394414    Color := TColor($b60000);
    395415    Player := 1;
     416    Blocking := True;
    396417  end;
    397418
     
    401422    Color := clYellow;
    402423    Player := 2;
     424    Blocking := True;
    403425  end;
    404426  // Player 3 home
     
    407429    Color :=  TColor($0000ff);
    408430    Player := 2;
     431    Blocking := True;
    409432  end;
    410433  // Player 3 body1
     
    413436    Color := TColor($0000ff);
    414437    Player := 2;
     438    Blocking := True;
    415439  end;
    416440  // Player 3 body2
     
    419443    Color := TColor($0000a0);
    420444    Player := 2;
     445    Blocking := True;
    421446  end;
    422447
     
    426451    Color := clYellow;
    427452    Player := 3;
     453    Blocking := True;
    428454  end;
    429455  // Player 4 home
     
    432458    Color :=  TColor($ff2cff);
    433459    Player := 3;
     460    Blocking := True;
    434461  end;
    435462  // Player 4 body1
     
    438465    Color := TColor($ff2cff);
    439466    Player := 3;
     467    Blocking := True;
    440468  end;
    441469  // Player 4 body2
     
    444472    Color := TColor($b600b6);
    445473    Player := 3;
     474    Blocking := True;
    446475  end;
    447476
     
    451480    Color := clYellow;
    452481    Player := 4;
     482    Blocking := True;
    453483  end;
    454484  // Player 5 home
     
    457487    Color := TColor($ffff2c);
    458488    Player := 4;
     489    Blocking := True;
    459490  end;
    460491  // Player 5 body1
     
    463494    Color := TColor($ffff2c);
    464495    Player := 4;
     496    Blocking := True;
    465497  end;
    466498  // Player 5 body2
     
    469501    Color := TColor($b6b600);
    470502    Player := 4;
     503    Blocking := True;
    471504  end;
    472505
     
    476509    Color := clYellow;
    477510    Player := 5;
     511    Blocking := True;
    478512  end;
    479513  // Player 6 home
     
    482516    Color :=  TColor($2cffff);
    483517    Player := 5;
     518    Blocking := True;
    484519  end;
    485520  // Player 6 body1
     
    488523    Color := TColor($2cffff);
    489524    Player := 5;
     525    Blocking := True;
    490526  end;
    491527  // Player 6 body2
     
    494530    Color := TColor($00b6b6);
    495531    Player := 5;
     532    Blocking := True;
    496533  end;
    497534
     
    501538    Color := clYellow;
    502539    Player := 6;
     540    Blocking := True;
    503541  end;
    504542  // Player 7 home
     
    507545    Color :=  TColor($008cff);
    508546    Player := 6;
     547    Blocking := True;
    509548  end;
    510549  // Player 7 body1
     
    513552    Color := TColor($008cff);
    514553    Player := 6;
     554    Blocking := True;
    515555  end;
    516556  // Player 7 body2
     
    519559    Color := TColor($002da0);
    520560    Player := 6;
     561    Blocking := True;
    521562  end;
    522563
     
    526567    Color := clYellow;
    527568    Player := 7;
     569    Blocking := True;
    528570  end;
    529571  // Player 8 home
     
    532574    Color :=  TColor($d0d0d0);
    533575    Player := 7;
     576    Blocking := True;
    534577  end;
    535578  // Player 8 body1
     
    538581    Color := TColor($d0d0d0);
    539582    Player := 7;
     583    Blocking := True;
    540584  end;
    541585  // Player 8 body2
     
    544588    Color := TColor($707070);
    545589    Player := 7;
     590    Blocking := True;
    546591  end;
    547592end;
     
    658703  I: Integer;
    659704  Pos: TPoint;
     705  ColisionState: TColisionState;
    660706begin
    661707  if Exploded then Exit;
     
    679725    else if (Delta.X = -1) and (Delta.Y = -1) then NewDirection := 7;
    680726
    681     if NewDirection = Direction then
    682       NewPosition := Point(Position.X + Delta.X, Position.Y + Delta.Y)
    683       else NewPosition := Position;
    684     HideTank;
    685     Matter := CheckColision;
    686     if (Matter = miDirt1) and (
    687     (Engine.KeyBoard.KeyState[Ord(Keys.Shoot)] and
    688     ((Now - LastDigTime) > ShootDigDelay * OneSecond)) or
    689     (not Engine.KeyBoard.KeyState[Ord(Keys.Shoot)] and
    690     ((Now - LastDigTime) > DigDelay * OneSecond))) then begin
    691       Dig := not Dig;
    692       with Engine, World do
    693       Surface.Merge(Surface.CreateIndex(
    694         Position.X - TMatrixByte(DigMasks[Direction]).Count.X div 2,
    695         Position.Y - TMatrixByte(DigMasks[Direction]).Count.Y div 2),
    696         TMatrixByte(DigMasks[Direction]), DigProc);
    697       Energy := Energy - EnergyDecreaseDig;
    698       if Energy < 0 then Energy := 0;
    699       Engine.Redraw;
    700       LastDigTime := Now;
    701       Direction := NewDirection;
    702     end;
    703     if (Matter = miSpace) then begin
    704       Position := NewPosition;
    705       Direction := NewDirection;
    706       Engine.Redraw;
    707     end;
    708     ShowTank;
     727    if NewDirection = Direction then begin
     728      NewPosition := Point(Position.X + Delta.X, Position.Y + Delta.Y);
     729      CheckNewDestination;
     730    end else begin
     731        NewPosition := Position;
     732        if not CheckNewDestination then begin
     733          // if direction is changed then try to check movement plus one step
     734          // to prevent tank block
     735          NewPosition := Point(Position.X + Delta.X, Position.Y + Delta.Y);
     736          CheckNewDestination;
     737        end;
     738      end;
    709739  end;
    710740
     
    722752      LastShootTime := Now;
    723753
    724       Energy := Energy - ShootEnergyDecrease;
     754      Energy := Energy - EnergyDecreaseShoot;
    725755      if Energy < 0 then Energy := 0;
    726     end;
     756
     757      // Do not imedietelly clear dirt by bullet in front of tank
     758      //with Engine, World do
     759      //if TMatter(Matter[Surface.Items[Position]]).Diggable ;
     760    end;
     761end;
     762
     763function TPlayer.CheckNewDestination: Boolean;
     764var
     765  ColisionState: TColisionState;
     766begin
     767  Result := False;
     768  HideTank;
     769  ColisionState := CheckColision;
     770  if not ColisionState.Blocking then begin
     771    if ColisionState.Diggable then begin
     772      if (Engine.KeyBoard.KeyState[Ord(Keys.Shoot)] and
     773    ((Now - LastDigTime) > ShootDigDelay * OneSecond)) or
     774    (not Engine.KeyBoard.KeyState[Ord(Keys.Shoot)] and
     775    ((Now - LastDigTime) > DigDelay * OneSecond)) then begin
     776      Dig := not Dig;
     777      with Engine, World do
     778      Surface.Merge(Surface.CreateIndex(
     779        Position.X - TMatrixByte(DigMasks[Direction]).Count.X div 2,
     780        Position.Y - TMatrixByte(DigMasks[Direction]).Count.Y div 2),
     781        TMatrixByte(DigMasks[Direction]), DigProc);
     782      Energy := Energy - EnergyDecreaseDig;
     783      if Energy < 0 then Energy := 0;
     784      Engine.Redraw;
     785      LastDigTime := Now;
     786      Direction := NewDirection;
     787      Result := True;
     788      end;
     789    end else begin
     790      if ((Now - LastMoveTime) > MoveDelay * OneSecond) then begin
     791        Position := NewPosition;
     792        Direction := NewDirection;
     793        Result := True;
     794        Engine.Redraw;
     795        LastMoveTime := Now;
     796      end;
     797    end;
     798  end;
     799  ShowTank;
    727800end;
    728801
     
    776849      ItemsXY[LastPos.X, LastPos.Y] := Byte(miSpace);
    777850    LastPos := Pos;
     851    P := Trunc(Direction.Y);
    778852
    779853    Position.X := Position.X + Direction.X;
     
    794868      if (ItemsXY[Pos.X, Pos.Y] = Byte(miDirt1)) or
    795869        (ItemsXY[Pos.X, Pos.Y] = Byte(miDirt2)) then begin
    796           ItemsXY[Pos.X, Pos.Y] := Byte(miSpace);
     870          //ItemsXY[Pos.X, Pos.Y] := Byte(miSpace);
    797871          if StopByDirt then begin
    798872            Explosion(LastPos, BulletExplosionRange);
     
    804878          for P := 0 to Engine.Players.Count - 1 do
    805879          with TPlayer(Engine.Players[P]) do
    806           if (Id <> P) and
     880          if (Self.Id <> P) and
    807881            (TMatter(Engine.World.Matter[ItemsXY[Pos.X, Pos.Y]]).Kind = mkTankBody) and
    808882            (TMatter(Engine.World.Matter[ItemsXY[Pos.X, Pos.Y]]).Player = P) then
     
    815889    end;
    816890
     891    // Max position limit checking
    817892    with Engine.World.Surface do
    818893    if (Pos.X >= Count.X) or (Pos.X < 0) or
     
    823898      end;
    824899    ItemsXY[Pos.X, Pos.Y] := Byte(miBullet1);
    825     //Engine.World.Surface.ItemsXY[LastPos.X, LastPos.Y] := Byte(smBullet2);
     900    ItemsXY[LastPos.X, LastPos.Y] := Byte(miBullet2);
    826901    Engine.Redraw;
    827902  end;
     
    885960end;
    886961
    887 function TPlayer.CheckColision: TMatterIndex;
     962function TPlayer.CheckColision: TColisionState;
    888963var
    889964  X, Y: Integer;
    890965  XX, YY: Integer;
    891966begin
    892   Result := miSpace;
    893   with Engine.World, TTank(Tanks[NewDirection]) do
     967  Result.Diggable := False;
     968  Result.Blocking := False;
     969  with Engine, World, TTank(Tanks[NewDirection]) do
    894970  for Y := 0 to Image.Count.Y - 1 do
    895971  for X := 0 to Image.Count.X - 1 do begin
    896972    XX := X + NewPosition.X - Image.Count.X div 2;
    897973    YY := Y + NewPosition.Y - Image.Count.Y div 2;
    898     if (Image.ItemsXY[X, Y] > 0) and
    899     (Surface.ItemsXY[XX, YY] <> Byte(miSpace)) then
    900     begin
    901       Result := miDirt1;
    902       if (Surface.ItemsXY[XX, YY] <> Byte(miDirt1)) and
    903       (Surface.ItemsXY[XX, YY] <> Byte(miDirt2)) then
    904       begin
    905         Result := TMatterIndex(Surface.ItemsXY[XX, YY]);
    906         Exit;
    907       end;
     974    if Image.ItemsXY[X, Y] > 0 then begin
     975      if TMatter(Matter[Surface.ItemsXY[XX, YY]]).Blocking then
     976        Result.Blocking := True;
     977      if TMatter(Matter[Surface.ItemsXY[XX, YY]]).Diggable then
     978        Result.Diggable := True;
    908979    end;
    909980  end;
     
    9661037begin
    9671038  if not Exploded then begin
    968     for I := 0 to Distance * 2- 1 do begin
     1039    for I := 0 to Distance * 2 - 1 do begin
    9691040      NewBullet := TBullet.Create;
    9701041      NewBullet.Player := Self;
  • trunk/tunneler.lpi

    r26 r27  
    5050        <TopLine Value="1"/>
    5151        <CursorPos X="61" Y="10"/>
    52         <UsageCount Value="123"/>
     52        <UsageCount Value="128"/>
    5353      </Unit0>
    5454      <Unit1>
     
    6969        <EditorIndex Value="0"/>
    7070        <WindowIndex Value="0"/>
    71         <TopLine Value="1399"/>
    72         <CursorPos X="3" Y="1405"/>
    73         <UsageCount Value="123"/>
     71        <TopLine Value="12"/>
     72        <CursorPos X="1" Y="17"/>
     73        <UsageCount Value="128"/>
    7474        <Loaded Value="True"/>
    7575      </Unit2>
     
    137137      <Unit11>
    138138        <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>
    139         <EditorIndex Value="1"/>
    140         <WindowIndex Value="0"/>
    141         <TopLine Value="152"/>
    142         <CursorPos X="28" Y="159"/>
    143         <UsageCount Value="50"/>
     139        <EditorIndex Value="2"/>
     140        <WindowIndex Value="0"/>
     141        <TopLine Value="449"/>
     142        <CursorPos X="17" Y="468"/>
     143        <UsageCount Value="52"/>
    144144        <Loaded Value="True"/>
    145145      </Unit11>
     
    169169      <Unit15>
    170170        <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericList.inc"/>
     171        <EditorIndex Value="1"/>
    171172        <WindowIndex Value="0"/>
    172173        <TopLine Value="115"/>
    173         <CursorPos X="1" Y="132"/>
    174         <UsageCount Value="26"/>
     174        <CursorPos X="1" Y="134"/>
     175        <UsageCount Value="27"/>
     176        <Loaded Value="True"/>
    175177      </Unit15>
    176178      <Unit16>
     
    387389        <IsPartOfProject Value="True"/>
    388390        <UnitName Value="UPlatform"/>
    389         <UsageCount Value="82"/>
     391        <UsageCount Value="87"/>
    390392      </Unit44>
    391393      <Unit45>
     
    435437        <TopLine Value="120"/>
    436438        <CursorPos X="44" Y="150"/>
    437         <UsageCount Value="67"/>
     439        <UsageCount Value="72"/>
    438440      </Unit50>
    439441      <Unit51>
     
    459461        <TopLine Value="69"/>
    460462        <CursorPos X="3" Y="90"/>
    461         <UsageCount Value="60"/>
     463        <UsageCount Value="65"/>
    462464      </Unit53>
    463465      <Unit54>
     
    467469        <WindowIndex Value="0"/>
    468470        <TopLine Value="29"/>
    469         <CursorPos X="20" Y="56"/>
    470         <UsageCount Value="60"/>
     471        <CursorPos X="33" Y="47"/>
     472        <UsageCount Value="65"/>
    471473      </Unit54>
    472474      <Unit55>
     
    474476        <IsPartOfProject Value="True"/>
    475477        <UnitName Value="URegistry"/>
    476         <UsageCount Value="59"/>
     478        <UsageCount Value="64"/>
    477479      </Unit55>
    478480      <Unit56>
     
    504506        <TopLine Value="34"/>
    505507        <CursorPos X="35" Y="51"/>
    506         <UsageCount Value="51"/>
     508        <UsageCount Value="56"/>
    507509      </Unit59>
    508510      <Unit60>
     
    520522        <ResourceBaseClass Value="Form"/>
    521523        <UnitName Value="UNewGameForm"/>
    522         <EditorIndex Value="5"/>
     524        <EditorIndex Value="4"/>
    523525        <WindowIndex Value="0"/>
    524526        <TopLine Value="44"/>
    525527        <CursorPos X="23" Y="65"/>
    526         <UsageCount Value="51"/>
     528        <UsageCount Value="56"/>
    527529        <Loaded Value="True"/>
    528530        <LoadedDesigner Value="True"/>
     
    535537        <ResourceBaseClass Value="Form"/>
    536538        <UnitName Value="UMainForm"/>
    537         <EditorIndex Value="4"/>
    538         <WindowIndex Value="0"/>
    539         <TopLine Value="35"/>
    540         <CursorPos X="15" Y="49"/>
    541         <UsageCount Value="51"/>
     539        <EditorIndex Value="3"/>
     540        <WindowIndex Value="0"/>
     541        <TopLine Value="78"/>
     542        <CursorPos X="9" Y="93"/>
     543        <UsageCount Value="56"/>
    542544        <Loaded Value="True"/>
    543545      </Unit62>
     
    552554        <TopLine Value="14"/>
    553555        <CursorPos X="19" Y="32"/>
    554         <UsageCount Value="51"/>
     556        <UsageCount Value="56"/>
    555557      </Unit63>
    556558      <Unit64>
     
    609611        <Filename Value="/usr/lib64/lazarus/lcl/graphics.pp"/>
    610612        <UnitName Value="Graphics"/>
    611         <EditorIndex Value="2"/>
    612613        <WindowIndex Value="0"/>
    613614        <TopLine Value="230"/>
    614615        <CursorPos X="18" Y="244"/>
    615         <UsageCount Value="13"/>
    616         <Loaded Value="True"/>
     616        <UsageCount Value="12"/>
    617617      </Unit71>
    618618      <Unit72>
    619619        <Filename Value="/usr/lib64/lazarus/lcl/graphtype.pp"/>
    620620        <UnitName Value="GraphType"/>
    621         <EditorIndex Value="3"/>
    622621        <WindowIndex Value="0"/>
    623622        <TopLine Value="25"/>
    624623        <CursorPos X="3" Y="39"/>
    625         <UsageCount Value="13"/>
    626         <Loaded Value="True"/>
     624        <UsageCount Value="12"/>
    627625      </Unit72>
    628626    </Units>
     
    630628      <Position1>
    631629        <Filename Value="UCore.pas"/>
    632         <Caret Line="1142" Column="79" TopLine="1128"/>
     630        <Caret Line="860" Column="1" TopLine="844"/>
    633631      </Position1>
    634632      <Position2>
    635633        <Filename Value="UCore.pas"/>
    636         <Caret Line="218" Column="39" TopLine="204"/>
     634        <Caret Line="887" Column="1" TopLine="873"/>
    637635      </Position2>
    638636      <Position3>
    639637        <Filename Value="UCore.pas"/>
    640         <Caret Line="209" Column="52" TopLine="209"/>
     638        <Caret Line="888" Column="1" TopLine="873"/>
    641639      </Position3>
    642640      <Position4>
    643641        <Filename Value="UCore.pas"/>
    644         <Caret Line="1134" Column="21" TopLine="1128"/>
     642        <Caret Line="889" Column="1" TopLine="856"/>
    645643      </Position4>
    646644      <Position5>
    647645        <Filename Value="UCore.pas"/>
    648         <Caret Line="1143" Column="36" TopLine="57"/>
     646        <Caret Line="848" Column="1" TopLine="834"/>
    649647      </Position5>
    650648      <Position6>
    651649        <Filename Value="UCore.pas"/>
    652         <Caret Line="1363" Column="31" TopLine="1352"/>
     650        <Caret Line="866" Column="1" TopLine="842"/>
    653651      </Position6>
    654652      <Position7>
    655653        <Filename Value="UCore.pas"/>
    656         <Caret Line="1411" Column="14" TopLine="1399"/>
     654        <Caret Line="867" Column="1" TopLine="843"/>
    657655      </Position7>
    658656      <Position8>
    659657        <Filename Value="UCore.pas"/>
    660         <Caret Line="1260" Column="5" TopLine="1238"/>
     658        <Caret Line="1033" Column="1" TopLine="1019"/>
    661659      </Position8>
    662660      <Position9>
    663661        <Filename Value="UCore.pas"/>
    664         <Caret Line="190" Column="13" TopLine="164"/>
     662        <Caret Line="1034" Column="1" TopLine="1019"/>
    665663      </Position9>
    666664      <Position10>
    667665        <Filename Value="UCore.pas"/>
    668         <Caret Line="1274" Column="24" TopLine="1267"/>
     666        <Caret Line="1035" Column="1" TopLine="1019"/>
    669667      </Position10>
    670668      <Position11>
    671669        <Filename Value="UCore.pas"/>
    672         <Caret Line="1298" Column="42" TopLine="1270"/>
     670        <Caret Line="1036" Column="1" TopLine="1019"/>
    673671      </Position11>
    674672      <Position12>
    675673        <Filename Value="UCore.pas"/>
    676         <Caret Line="1273" Column="11" TopLine="1259"/>
     674        <Caret Line="1037" Column="1" TopLine="1019"/>
    677675      </Position12>
    678676      <Position13>
    679677        <Filename Value="UCore.pas"/>
    680         <Caret Line="676" Column="18" TopLine="658"/>
     678        <Caret Line="1038" Column="1" TopLine="1019"/>
    681679      </Position13>
    682680      <Position14>
    683681        <Filename Value="UCore.pas"/>
    684         <Caret Line="675" Column="12" TopLine="658"/>
     682        <Caret Line="1039" Column="1" TopLine="1019"/>
    685683      </Position14>
    686684      <Position15>
    687685        <Filename Value="UCore.pas"/>
    688         <Caret Line="682" Column="41" TopLine="669"/>
     686        <Caret Line="1040" Column="1" TopLine="1019"/>
    689687      </Position15>
    690688      <Position16>
    691689        <Filename Value="UCore.pas"/>
    692         <Caret Line="681" Column="28" TopLine="667"/>
     690        <Caret Line="1033" Column="25" TopLine="1019"/>
    693691      </Position16>
    694692      <Position17>
    695693        <Filename Value="UCore.pas"/>
    696         <Caret Line="675" Column="11" TopLine="667"/>
     694        <Caret Line="866" Column="1" TopLine="852"/>
    697695      </Position17>
    698696      <Position18>
    699697        <Filename Value="UCore.pas"/>
    700         <Caret Line="682" Column="21" TopLine="681"/>
     698        <Caret Line="741" Column="35" TopLine="738"/>
    701699      </Position18>
    702700      <Position19>
    703701        <Filename Value="UCore.pas"/>
    704         <Caret Line="1268" Column="23" TopLine="1244"/>
     702        <Caret Line="894" Column="15" TopLine="872"/>
    705703      </Position19>
    706704      <Position20>
    707705        <Filename Value="UCore.pas"/>
    708         <Caret Line="682" Column="21" TopLine="668"/>
     706        <Caret Line="844" Column="54" TopLine="834"/>
    709707      </Position20>
    710708      <Position21>
    711709        <Filename Value="UCore.pas"/>
    712         <Caret Line="678" Column="11" TopLine="674"/>
     710        <Caret Line="861" Column="46" TopLine="837"/>
    713711      </Position21>
    714712      <Position22>
    715713        <Filename Value="UCore.pas"/>
    716         <Caret Line="926" Column="42" TopLine="921"/>
     714        <Caret Line="867" Column="20" TopLine="848"/>
    717715      </Position22>
    718716      <Position23>
    719717        <Filename Value="UCore.pas"/>
    720         <Caret Line="88" Column="17" TopLine="73"/>
     718        <Caret Line="873" Column="1" TopLine="855"/>
    721719      </Position23>
    722720      <Position24>
    723721        <Filename Value="UCore.pas"/>
    724         <Caret Line="939" Column="53" TopLine="936"/>
     722        <Caret Line="874" Column="1" TopLine="855"/>
    725723      </Position24>
    726724      <Position25>
    727725        <Filename Value="UCore.pas"/>
    728         <Caret Line="687" Column="46" TopLine="674"/>
     726        <Caret Line="735" Column="29" TopLine="718"/>
    729727      </Position25>
    730728      <Position26>
    731729        <Filename Value="UCore.pas"/>
    732         <Caret Line="88" Column="17" TopLine="81"/>
     730        <Caret Line="113" Column="17" TopLine="108"/>
    733731      </Position26>
    734732      <Position27>
    735733        <Filename Value="UCore.pas"/>
    736         <Caret Line="683" Column="102" TopLine="670"/>
     734        <Caret Line="790" Column="56" TopLine="776"/>
    737735      </Position27>
    738736      <Position28>
    739737        <Filename Value="UCore.pas"/>
    740         <Caret Line="684" Column="37" TopLine="670"/>
     738        <Caret Line="25" Column="7" TopLine="1"/>
    741739      </Position28>
    742740      <Position29>
    743741        <Filename Value="UCore.pas"/>
    744         <Caret Line="868" Column="10" TopLine="866"/>
     742        <Caret Line="900" Column="5" TopLine="886"/>
    745743      </Position29>
    746744      <Position30>
    747745        <Filename Value="UCore.pas"/>
    748         <Caret Line="869" Column="9" TopLine="854"/>
     746        <Caret Line="26" Column="15" TopLine="12"/>
    749747      </Position30>
    750748    </JumpHistory>
Note: See TracChangeset for help on using the changeset viewer.