hedgewars/uGearsHandlersMess.pas
changeset 12994 c08c53624c0f
parent 12919 0de553fb7e89
child 13063 004f4f7dc9d4
equal deleted inserted replaced
12993:a15413d896c3 12994:c08c53624c0f
  3810 
  3810 
  3811 const cAngleSpeed =   3;
  3811 const cAngleSpeed =   3;
  3812 var
  3812 var
  3813     HHGear: PGear;
  3813     HHGear: PGear;
  3814     i: LongInt;
  3814     i: LongInt;
       
  3815     s: ansistring;
  3815     dX, dY : hwFloat;
  3816     dX, dY : hwFloat;
  3816     fChanged: boolean;
  3817     fChanged: boolean;
  3817     trueAngle: Longword;
  3818     trueAngle: Longword;
  3818     t: PGear;
  3819     t: PGear;
  3819 begin
  3820 begin
  3888         if Gear^.Timer < 3500 then
  3889         if Gear^.Timer < 3500 then
  3889             AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEvilTrace)
  3890             AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEvilTrace)
  3890     else
  3891     else
  3891         AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
  3892         AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
  3892 
  3893 
  3893     if (HHGear <> nil) and ((HHGear^.Message and gmAttack) <> 0) and (Gear^.Health <> 0) then
  3894     if (HHGear <> nil) and ((HHGear^.Message and gmAttack) <> 0) then
  3894         begin
  3895         begin
  3895         HHGear^.Message := HHGear^.Message and (not gmAttack);
  3896         if (Gear^.Health) <> 0 then
  3896         AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, Gear^.dX * _0_5, Gear^.dY *
  3897             begin
  3897         _0_5, 0);
  3898             HHGear^.Message := HHGear^.Message and (not gmAttack);
  3898         dec(Gear^.Health)
  3899             AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, Gear^.dX * _0_5, Gear^.dY *
       
  3900             _0_5, 0);
       
  3901             dec(Gear^.Health)
       
  3902             end;
       
  3903         s:= ansistring(inttostr(Gear^.Health));
       
  3904         AddCaption(formatA(trmsg[sidRemaining], s), cWhiteColor, capgrpAmmostate);
  3899         end;
  3905         end;
  3900 
  3906 
  3901     if (HHGear <> nil) and ((HHGear^.Message and gmLJump) <> 0) and ((Gear^.State and gsttmpFlag) = 0) then
  3907     if (HHGear <> nil) and ((HHGear^.Message and gmLJump) <> 0) and ((Gear^.State and gsttmpFlag) = 0) then
  3902         begin
  3908         begin
  3903         Gear^.State := Gear^.State or gsttmpFlag;
  3909         Gear^.State := Gear^.State or gsttmpFlag;
  4154 procedure doStepBirdyFly(Gear: PGear);
  4160 procedure doStepBirdyFly(Gear: PGear);
  4155 var
  4161 var
  4156     HHGear: PGear;
  4162     HHGear: PGear;
  4157     fuel, i: LongInt;
  4163     fuel, i: LongInt;
  4158     move: hwFloat;
  4164     move: hwFloat;
       
  4165     s: ansistring;
  4159 begin
  4166 begin
  4160     HHGear := Gear^.Hedgehog^.Gear;
  4167     HHGear := Gear^.Hedgehog^.Gear;
  4161     if HHGear = nil then
  4168     if HHGear = nil then
  4162         begin
  4169         begin
  4163         Gear^.Timer := 0;
  4170         Gear^.Timer := 0;
  4215             begin
  4222             begin
  4216             AddGear(hwRound(Gear^.X), hwRound(Gear^.Y) + 32, gtEgg, 0, Gear^.dX * _0_5, Gear^.dY, 0);
  4223             AddGear(hwRound(Gear^.X), hwRound(Gear^.Y) + 32, gtEgg, 0, Gear^.dX * _0_5, Gear^.dY, 0);
  4217             PlaySound(sndBirdyLay);
  4224             PlaySound(sndBirdyLay);
  4218             dec(Gear^.FlightTime)
  4225             dec(Gear^.FlightTime)
  4219             end;
  4226             end;
       
  4227         s:= ansistring(inttostr(Gear^.FlightTime));
       
  4228         AddCaption(formatA(trmsg[sidRemaining], s), cWhiteColor, capgrpAmmostate);
  4220         end;
  4229         end;
  4221 
  4230 
  4222     if HHGear^.Message and (gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
  4231     if HHGear^.Message and (gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
  4223         Gear^.State := Gear^.State and (not gsttmpFlag);
  4232         Gear^.State := Gear^.State and (not gsttmpFlag);
  4224 
  4233