hedgewars/uCollisions.pas
changeset 7270 93e92e82d5c8
parent 7268 3a61c53346a8
child 7272 71df899c4163
equal deleted inserted replaced
7268:3a61c53346a8 7270:93e92e82d5c8
    80 with cinfos[Count] do
    80 with cinfos[Count] do
    81     begin
    81     begin
    82     X:= hwRound(Gear^.X);
    82     X:= hwRound(Gear^.X);
    83     Y:= hwRound(Gear^.Y);
    83     Y:= hwRound(Gear^.Y);
    84     Radius:= Gear^.Radius;
    84     Radius:= Gear^.Radius;
    85     ChangeRoundInLand(X, Y, Radius - 1, true);
    85     ChangeRoundInLand(X, Y, Radius - 1, true, Gear = CurrentHedgehog^.Gear);
    86     cGear:= Gear
    86     cGear:= Gear
    87     end;
    87     end;
    88 Gear^.CollisionIndex:= Count;
    88 Gear^.CollisionIndex:= Count;
    89 inc(Count);
    89 inc(Count);
    90 // mines are the easiest way to overflow collision
    90 // mines are the easiest way to overflow collision
   101 procedure DeleteCI(Gear: PGear);
   101 procedure DeleteCI(Gear: PGear);
   102 begin
   102 begin
   103 if Gear^.CollisionIndex >= 0 then
   103 if Gear^.CollisionIndex >= 0 then
   104     begin
   104     begin
   105     with cinfos[Gear^.CollisionIndex] do
   105     with cinfos[Gear^.CollisionIndex] do
   106         ChangeRoundInLand(X, Y, Radius - 1, false);
   106         ChangeRoundInLand(X, Y, Radius - 1, false, Gear = CurrentHedgehog^.Gear);
   107     cinfos[Gear^.CollisionIndex]:= cinfos[Pred(Count)];
   107     cinfos[Gear^.CollisionIndex]:= cinfos[Pred(Count)];
   108     cinfos[Gear^.CollisionIndex].cGear^.CollisionIndex:= Gear^.CollisionIndex;
   108     cinfos[Gear^.CollisionIndex].cGear^.CollisionIndex:= Gear^.CollisionIndex;
   109     Gear^.CollisionIndex:= -1;
   109     Gear^.CollisionIndex:= -1;
   110     dec(Count)
   110     dec(Count)
   111     end;
   111     end;