hedgewars/uGears.pas
changeset 2989 b49d87499398
parent 2987 3abaf01b4ce3
child 2990 b62e567f17b9
equal deleted inserted replaced
2988:42fa7fbee89a 2989:b49d87499398
    27     PGear = ^TGear;
    27     PGear = ^TGear;
    28     TGearStepProcedure = procedure (Gear: PGear);
    28     TGearStepProcedure = procedure (Gear: PGear);
    29     TGear = record
    29     TGear = record
    30             NextGear, PrevGear: PGear;
    30             NextGear, PrevGear: PGear;
    31             Active: Boolean;
    31             Active: Boolean;
       
    32             AdvBounce: Boolean;
    32             Invulnerable: Boolean;
    33             Invulnerable: Boolean;
    33             RenderTimer: Boolean;
    34             RenderTimer: Boolean;
    34             Ammo : PAmmo;
    35             Ammo : PAmmo;
    35             State : Longword;
    36             State : Longword;
    36             X : hwFloat;
    37             X : hwFloat;
   252     end;
   253     end;
   253 
   254 
   254 case Kind of
   255 case Kind of
   255    gtAmmo_Bomb,
   256    gtAmmo_Bomb,
   256  gtClusterBomb: begin
   257  gtClusterBomb: begin
       
   258                 gear^.AdvBounce:= true;
   257                 gear^.Radius:= 4;
   259                 gear^.Radius:= 4;
   258                 gear^.Elasticity:= _0_6;
   260                 gear^.Elasticity:= _0_6;
   259                 gear^.Friction:= _0_96;
   261                 gear^.Friction:= _0_96;
   260                 gear^.RenderTimer:= true;
   262                 gear^.RenderTimer:= true;
   261                 if gear^.Timer = 0 then gear^.Timer:= 3000
   263                 if gear^.Timer = 0 then gear^.Timer:= 3000
   262                 end;
   264                 end;
   263   gtWatermelon: begin
   265   gtWatermelon: begin
       
   266                 gear^.AdvBounce:= true;
   264                 gear^.Radius:= 4;
   267                 gear^.Radius:= 4;
   265                 gear^.Elasticity:= _0_8;
   268                 gear^.Elasticity:= _0_8;
   266                 gear^.Friction:= _0_995;
   269                 gear^.Friction:= _0_995;
   267                 gear^.RenderTimer:= true;
   270                 gear^.RenderTimer:= true;
   268                 if gear^.Timer = 0 then gear^.Timer:= 3000
   271                 if gear^.Timer = 0 then gear^.Timer:= 3000
   269                 end;
   272                 end;
   270     gtHedgehog: begin
   273     gtHedgehog: begin
       
   274                 gear^.AdvBounce:= true;
   271                 gear^.Radius:= cHHRadius;
   275                 gear^.Radius:= cHHRadius;
   272                 gear^.Elasticity:= _0_35;
   276                 gear^.Elasticity:= _0_35;
   273                 gear^.Friction:= _0_999;
   277                 gear^.Friction:= _0_999;
   274                 gear^.Angle:= cMaxAngle div 2;
   278                 gear^.Angle:= cMaxAngle div 2;
   275                 gear^.Z:= cHHZ;
   279                 gear^.Z:= cHHZ;
   400                 gear^.Z:= cOnHHZ;
   404                 gear^.Z:= cOnHHZ;
   401                 gear^.RenderTimer:= true;
   405                 gear^.RenderTimer:= true;
   402                 if not dX.isNegative then gear^.Angle:= 1 else gear^.Angle:= 3
   406                 if not dX.isNegative then gear^.Angle:= 1 else gear^.Angle:= 3
   403                 end;
   407                 end;
   404  gtHellishBomb: begin
   408  gtHellishBomb: begin
       
   409                 gear^.AdvBounce:= true;
   405                 gear^.Radius:= 4;
   410                 gear^.Radius:= 4;
   406                 gear^.Elasticity:= _0_5;
   411                 gear^.Elasticity:= _0_5;
   407                 gear^.Friction:= _0_96;
   412                 gear^.Friction:= _0_96;
   408                 gear^.RenderTimer:= true;
   413                 gear^.RenderTimer:= true;
   409                 gear^.Timer:= 5000
   414                 gear^.Timer:= 5000
   411        gtDrill: begin
   416        gtDrill: begin
   412                 gear^.Timer:= 5000;
   417                 gear^.Timer:= 5000;
   413                 gear^.Radius:= 4
   418                 gear^.Radius:= 4
   414                 end;
   419                 end;
   415         gtBall: begin
   420         gtBall: begin
       
   421                 gear^.AdvBounce:= true;
   416                 gear^.Radius:= 5;
   422                 gear^.Radius:= 5;
   417                 gear^.Tag:= random(8);
   423                 gear^.Tag:= random(8);
   418                 gear^.Timer:= 5000;
   424                 gear^.Timer:= 5000;
   419                 gear^.Elasticity:= _0_7;
   425                 gear^.Elasticity:= _0_7;
   420                 gear^.Friction:= _0_995;
   426                 gear^.Friction:= _0_995;