equal
deleted
inserted
replaced
339 |
339 |
340 function TestCollisionXwithGear(Gear: PGear; Dir: LongInt): Word; |
340 function TestCollisionXwithGear(Gear: PGear; Dir: LongInt): Word; |
341 var x, y, i: LongInt; |
341 var x, y, i: LongInt; |
342 begin |
342 begin |
343 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
343 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
344 if (Gear^.CollisionMask = lfNotCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
344 if (Gear^.CollisionMask = lfNotCurHogCrate) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
345 ((hwRound(Gear^.Hedgehog^.Gear^.X) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.X) - Gear^.Radius) or |
345 ((hwRound(Gear^.Hedgehog^.Gear^.X) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.X) - Gear^.Radius) or |
346 (hwRound(Gear^.Hedgehog^.Gear^.X) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.X) + Gear^.Radius)) then |
346 (hwRound(Gear^.Hedgehog^.Gear^.X) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.X) + Gear^.Radius)) then |
347 Gear^.CollisionMask:= $FFFF; |
347 Gear^.CollisionMask:= $FFFF; |
348 |
348 |
349 x:= hwRound(Gear^.X); |
349 x:= hwRound(Gear^.X); |
368 |
368 |
369 function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word; |
369 function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word; |
370 var x, y, i: LongInt; |
370 var x, y, i: LongInt; |
371 begin |
371 begin |
372 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
372 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
373 if (Gear^.CollisionMask = lfNotCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
373 if (Gear^.CollisionMask = lfNotCurHogCrate) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
374 ((hwRound(Gear^.Hedgehog^.Gear^.Y) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.Y) - Gear^.Radius) or |
374 ((hwRound(Gear^.Hedgehog^.Gear^.Y) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.Y) - Gear^.Radius) or |
375 (hwRound(Gear^.Hedgehog^.Gear^.Y) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.Y) + Gear^.Radius)) then |
375 (hwRound(Gear^.Hedgehog^.Gear^.Y) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.Y) + Gear^.Radius)) then |
376 Gear^.CollisionMask:= $FFFF; |
376 Gear^.CollisionMask:= $FFFF; |
377 |
377 |
378 y:= hwRound(Gear^.Y); |
378 y:= hwRound(Gear^.Y); |