equal
deleted
inserted
replaced
45 function TestCollisionYKick(Gear: PGear; Dir: LongInt): boolean; |
45 function TestCollisionYKick(Gear: PGear; Dir: LongInt): boolean; |
46 |
46 |
47 function TestCollisionX(Gear: PGear; Dir: LongInt): boolean; |
47 function TestCollisionX(Gear: PGear; Dir: LongInt): boolean; |
48 function TestCollisionY(Gear: PGear; Dir: LongInt): boolean; |
48 function TestCollisionY(Gear: PGear; Dir: LongInt): boolean; |
49 |
49 |
50 function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt): boolean; |
50 function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; |
51 function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt): boolean; |
51 function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; |
52 |
52 |
53 function calcSlopeTangent(Gear: PGear; collisionX, collisionY: LongInt; var outDeltaX, outDeltaY: LongInt; TestWord: LongWord): Boolean; |
53 function calcSlopeTangent(Gear: PGear; collisionX, collisionY: LongInt; var outDeltaX, outDeltaY: LongInt; TestWord: LongWord): Boolean; |
54 |
54 |
55 implementation |
55 implementation |
56 uses uConsts, uLandGraphics, uVariables, uDebug, uGears; |
56 uses uConsts, uLandGraphics, uVariables, uDebug, uGears; |
289 exit(false) |
289 exit(false) |
290 end |
290 end |
291 end |
291 end |
292 end; |
292 end; |
293 |
293 |
294 function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt): boolean; |
294 function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; |
295 begin |
295 begin |
296 Gear^.X:= Gear^.X + ShiftX; |
296 Gear^.X:= Gear^.X + ShiftX; |
297 Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); |
297 Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); |
298 TestCollisionXwithXYShift:= TestCollisionXwithGear(Gear, Dir); |
298 if withGear then |
|
299 TestCollisionXwithXYShift:= TestCollisionXwithGear(Gear, Dir) |
|
300 else TestCollisionXwithXYShift:= TestCollisionX(Gear, Dir); |
299 Gear^.X:= Gear^.X - ShiftX; |
301 Gear^.X:= Gear^.X - ShiftX; |
300 Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY) |
302 Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY) |
301 end; |
303 end; |
302 function TestCollisionX(Gear: PGear; Dir: LongInt): boolean; |
304 function TestCollisionX(Gear: PGear; Dir: LongInt): boolean; |
303 var x, y, i: LongInt; |
305 var x, y, i: LongInt; |
335 until (x > i); |
337 until (x > i); |
336 end; |
338 end; |
337 TestCollisionY:= false |
339 TestCollisionY:= false |
338 end; |
340 end; |
339 |
341 |
340 function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt): boolean; |
342 function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; |
341 begin |
343 begin |
342 Gear^.X:= Gear^.X + int2hwFloat(ShiftX); |
344 Gear^.X:= Gear^.X + int2hwFloat(ShiftX); |
343 Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); |
345 Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); |
344 TestCollisionYwithXYShift:= TestCollisionYwithGear(Gear, Dir); |
346 if withGear then TestCollisionYwithXYShift:= TestCollisionYwithGear(Gear, Dir) |
|
347 else TestCollisionYwithXYShift:= TestCollisionY(Gear, Dir); |
345 Gear^.X:= Gear^.X - int2hwFloat(ShiftX); |
348 Gear^.X:= Gear^.X - int2hwFloat(ShiftX); |
346 Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY) |
349 Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY) |
347 end; |
350 end; |
348 |
351 |
349 |
352 |