equal
deleted
inserted
replaced
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. |