hedgewars/uGears.pas
changeset 4034 634a8c8682de
parent 4024 1ffb84b3823d
child 4047 6c07a302b7c0
equal deleted inserted replaced
4032:4aeab704d006 4034:634a8c8682de
   100 function  GetLaunchX(at: TAmmoType; dir: LongInt; angle: LongInt): LongInt;
   100 function  GetLaunchX(at: TAmmoType; dir: LongInt; angle: LongInt): LongInt;
   101 function  GetLaunchY(at: TAmmoType; angle: LongInt): LongInt;
   101 function  GetLaunchY(at: TAmmoType; angle: LongInt): LongInt;
   102 
   102 
   103 implementation
   103 implementation
   104 uses uWorld, uMisc, uStore, uConsole, uSound, uTeams, uRandom, uCollisions, uLand, uIO, uLandGraphics,
   104 uses uWorld, uMisc, uStore, uConsole, uSound, uTeams, uRandom, uCollisions, uLand, uIO, uLandGraphics,
   105     uAIMisc, uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit;
   105      uAIMisc, uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit, uMobile;
   106 
   106 
   107 const MAXROPEPOINTS = 384;
   107 const MAXROPEPOINTS = 384;
   108 var RopePoints: record
   108 var RopePoints: record
   109                 Count: Longword;
   109                 Count: Longword;
   110                 HookAngle: GLfloat;
   110                 HookAngle: GLfloat;
   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(X, Y: hwFloat; 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;
   363                 gear^.State:= gear^.State or gstMoving;
   363                 gear^.State:= gear^.State or gstMoving;
   364                 gear^.Radius:= 2;
   364                 gear^.Radius:= 2;
   365                 gear^.Elasticity:= _0_55;
   365                 gear^.Elasticity:= _0_55;
   366                 gear^.Friction:= _0_995;
   366                 gear^.Friction:= _0_995;
   367                 if cMinesTime < 0 then
   367                 if cMinesTime < 0 then
   368                     gear^.Timer:= getrandom(4)*1000
   368                     gear^.Timer:= getrandom(6)*1000
   369                 else
   369                 else
   370                     gear^.Timer:= cMinesTime*1;
   370                     gear^.Timer:= cMinesTime*1;
   371                 end;
   371                 end;
   372        gtSMine: begin
   372        gtSMine: begin
   373                 gear^.Health:= 10;
   373                 gear^.Health:= 10;