equal
deleted
inserted
replaced
197 |
197 |
198 function RateShove(Me: PGear; x, y, r, power: LongInt): LongInt; |
198 function RateShove(Me: PGear; x, y, r, power: LongInt): LongInt; |
199 var i, dmg, Result: LongInt; |
199 var i, dmg, Result: LongInt; |
200 begin |
200 begin |
201 Result:= 0; |
201 Result:= 0; |
202 for i:= 0 to Targets.Count do |
202 for i:= 0 to Pred(Targets.Count) do |
203 with Targets.ar[i] do |
203 with Targets.ar[i] do |
204 begin |
204 begin |
205 dmg:= r - hwRound(Distance(Point.x - x, Point.y - y)); |
205 dmg:= r - hwRound(Distance(Point.x - x, Point.y - y)); |
206 if dmg > 0 then |
206 if dmg > 0 then |
207 begin |
207 begin |
239 if not TestCollisionXwithXYShift(Gear, 0, -2, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - 2 else |
239 if not TestCollisionXwithXYShift(Gear, 0, -2, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - 2 else |
240 if not TestCollisionXwithXYShift(Gear, 0, -1, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - 1; |
240 if not TestCollisionXwithXYShift(Gear, 0, -1, hwSign(Gear^.dX)) then Gear^.Y:= Gear^.Y - 1; |
241 if not (TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) |
241 if not (TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) |
242 or TestCollisionYwithGear(Gear, -1)) then |
242 or TestCollisionYwithGear(Gear, -1)) then |
243 begin |
243 begin |
244 Gear^.dY:= _0_15; |
244 Gear^.dY:= -_0_15; |
245 Gear^.dX:= hwSign(Gear^.dX) * _0_15; |
245 Gear^.dX:= hwSign(Gear^.dX) * _0_15; |
246 Gear^.State:= Gear^.State or gstFalling or gstHHJumping |
246 Gear^.State:= Gear^.State or gstFalling or gstHHJumping |
247 end else exit(Result) |
247 end else exit(Result) |
248 end |
248 end |
249 end; |
249 end; |
251 repeat |
251 repeat |
252 if not (Gear^.Y + cHHRadius < cWaterLine) then exit(Result); |
252 if not (Gear^.Y + cHHRadius < cWaterLine) then exit(Result); |
253 if (Gear^.State and gstFalling) <> 0 then |
253 if (Gear^.State and gstFalling) <> 0 then |
254 begin |
254 begin |
255 if (GoInfo.Ticks = 350) then |
255 if (GoInfo.Ticks = 350) then |
256 if (hwAbs(Gear^.dX) < cLittle + cLittle) and (Gear^.dY < -_0_02) then |
256 if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then |
257 begin |
257 begin |
258 Gear^.dY:= -_0_25; |
258 Gear^.dY:= -_0_25; |
259 Gear^.dX:= hwSign(Gear^.dX) * _0_02 |
259 Gear^.dX:= hwSign(Gear^.dX) * _0_02 |
260 end; |
260 end; |
261 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then SetLittle(Gear^.dX); |
261 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then SetLittle(Gear^.dX); |