hedgewars/uAIMisc.pas
changeset 370 c75410fe3133
parent 369 2aed85310727
child 371 731ad6d27bd1
equal deleted inserted replaced
369:2aed85310727 370:c75410fe3133
    42 function RatePlace(Gear: PGear): integer;
    42 function RatePlace(Gear: PGear): integer;
    43 function TestColl(x, y, r: integer): boolean;
    43 function TestColl(x, y, r: integer): boolean;
    44 function RateExplosion(Me: PGear; x, y, r: integer): integer;
    44 function RateExplosion(Me: PGear; x, y, r: integer): integer;
    45 function RateShove(Me: PGear; x, y, r, power: integer): integer;
    45 function RateShove(Me: PGear; x, y, r, power: integer): integer;
    46 function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
    46 function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
    47 //function rndSign(num: integer): integer;
    47 function AIrndSign(num: integer): integer;
    48 
    48 
    49 var ThinkingHH: PGear;
    49 var ThinkingHH: PGear;
    50     Targets: TTargets;
    50     Targets: TTargets;
    51                        
    51                        
    52 implementation
    52 implementation
   344          or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - 1;
   344          or TestCollisionYwithGear(Gear, -1)) then Gear^.Y:= Gear^.Y - 1;
   345       end;
   345       end;
   346 
   346 
   347    if not TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
   347    if not TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
   348       begin
   348       begin
   349       Gear^.X:= Gear^.X + Gear^.dX;
   349       Gear^.X:= Gear^.X + hwSign(Gear^.dX);
   350       inc(GoInfo.Ticks, cHHStepTicks)
   350       inc(GoInfo.Ticks, cHHStepTicks)
   351       end;
   351       end;
   352    if not TestCollisionYwithGear(Gear, 1) then
   352    if not TestCollisionYwithGear(Gear, 1) then
   353    begin
   353    begin
   354    Gear^.Y:= Gear^.Y + 1;
   354    Gear^.Y:= Gear^.Y + 1;
   386    end
   386    end
   387 until (pX = hwRound(Gear^.X)) and (pY = hwRound(Gear^.Y)) and ((Gear^.State and gstFalling) = 0);
   387 until (pX = hwRound(Gear^.X)) and (pY = hwRound(Gear^.Y)) and ((Gear^.State and gstFalling) = 0);
   388 HHJump(AltGear, jmpHJump, GoInfo)
   388 HHJump(AltGear, jmpHJump, GoInfo)
   389 end;
   389 end;
   390 
   390 
   391 {function rndSign(num: integer): integer;
   391 function AIrndSign(num: integer): integer;
   392 begin
   392 begin
   393 if random(2) = 0 then Result:=   num
   393 if random(2) = 0 then AIrndSign:=   num
   394                  else Result:= - num
   394                  else AIrndSign:= - num
   395 end;  }
   395 end;  
   396 
   396 
   397 end.
   397 end.