hedgewars/uCollisions.pas
changeset 13463 f1d349a52bc7
parent 13168 0e7eddfbce8a
child 13464 7b4643ff60ea
equal deleted inserted replaced
13462:4c47a480009b 13463:f1d349a52bc7
   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);