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; |