hedgewars/uGears.pas
changeset 4024 1ffb84b3823d
parent 4007 c76c895825ab
child 4034 634a8c8682de
child 4037 0f8ec120e90d
equal deleted inserted replaced
4023:8de77872ef21 4024:1ffb84b3823d
   119 procedure DeleteGear(Gear: PGear); forward;
   119 procedure DeleteGear(Gear: PGear); forward;
   120 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord); forward;
   120 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord); forward;
   121 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); forward;
   121 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); forward;
   122 procedure AmmoShove(Ammo: PGear; Damage, Power: LongInt); forward;
   122 procedure AmmoShove(Ammo: PGear; Damage, Power: LongInt); forward;
   123 //procedure AmmoFlameWork(Ammo: PGear); forward;
   123 //procedure AmmoFlameWork(Ammo: PGear); forward;
   124 function GearsNear(Gear: PGear; Kind: TGearType; r: LongInt): TPGearArray; forward;
   124 function GearsNear(X, Y: hwFloat; Kind: TGearType; r: LongInt): TPGearArray; forward;
   125 function  CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; forward;
   125 function  CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; forward;
   126 procedure SpawnBoxOfSmth; forward;
   126 procedure SpawnBoxOfSmth; forward;
   127 procedure AfterAttack; forward;
   127 procedure AfterAttack; forward;
   128 procedure HedgehogStep(Gear: PGear); forward;
   128 procedure HedgehogStep(Gear: PGear); forward;
   129 procedure doStepHedgehogMoving(Gear: PGear); forward;
   129 procedure doStepHedgehogMoving(Gear: PGear); forward;
  1515         dec(Count)
  1515         dec(Count)
  1516         end
  1516         end
  1517     end
  1517     end
  1518 end;
  1518 end;
  1519 
  1519 
  1520 function GearsNear(Gear: PGear; Kind: TGearType; r: LongInt): TPGearArray;
  1520 function GearsNear(X, Y: hwFloat; Kind: TGearType; r: LongInt): TPGearArray;
  1521 var
  1521 var
  1522     t: PGear;
  1522     t: PGear;
  1523 begin
  1523 begin
  1524     GearsNear := nil;
  1524     GearsNear := nil;
  1525     t := GearsList;
  1525     t := GearsList;
  1526     while t <> nil do begin
  1526     while t <> nil do begin
  1527         if (t <> Gear) and (t^.Kind = Kind) then begin
  1527         if (t^.Kind = Kind) then begin
  1528             if (Gear^.X - t^.X)*(Gear^.X - t^.X) + (Gear^.Y -
  1528             if (X - t^.X)*(X - t^.X) + (Y - t^.Y)*(Y-t^.Y) <
  1529                    t^.Y)*(Gear^.Y-t^.Y) < int2hwFloat(r)*int2hwFloat(r) then
  1529                 int2hwFloat(r)*int2hwFloat(r) then
  1530             begin
  1530             begin
  1531                 SetLength(GearsNear, Length(GearsNear)+1);
  1531                 SetLength(GearsNear, Length(GearsNear)+1);
  1532                 GearsNear[High(GearsNear)] := t;
  1532                 GearsNear[High(GearsNear)] := t;
  1533             end;
  1533             end;
  1534         end;
  1534         end;