hedgewars/uGearsHandlersMess.pas
changeset 15222 deaa316af414
parent 15221 bf11546c1920
child 15224 f16376e9374f
equal deleted inserted replaced
15221:bf11546c1920 15222:deaa316af414
  6231 var HH: PHedgehog;
  6231 var HH: PHedgehog;
  6232     i,j,cnt: LongWord;
  6232     i,j,cnt: LongWord;
  6233     s: ansistring;
  6233     s: ansistring;
  6234 begin
  6234 begin
  6235 HH:= Gear^.Hedgehog;
  6235 HH:= Gear^.Hedgehog;
       
  6236 if Gear^.Tag = 0 then
       
  6237     begin
       
  6238     if HH^.Gear <> nil then
       
  6239         begin
       
  6240         if (HH^.Gear^.Damage <> 0) or (HH^.Gear^.Health = 0) or
       
  6241         ((HH^.Gear^.State and (gstMoving or gstHHDeath or gstHHGone or gstDrowning)) <> 0) then
       
  6242             Gear^.Tag:= 1;
       
  6243         end
       
  6244     else if HH^.GearHidden = nil then
       
  6245         Gear^.Tag:= 1;
       
  6246     if (Gear^.Tag = 1) and (Gear = CurAmmoGear) then
       
  6247         CurAmmoGear:= nil;
       
  6248     end;
       
  6249 
  6236 if Gear^.Pos = 2 then
  6250 if Gear^.Pos = 2 then
  6237     begin
  6251     begin
  6238     StopSoundChan(Gear^.SoundChannel);
  6252     StopSoundChan(Gear^.SoundChannel);
  6239     Gear^.SoundChannel:= -1;
  6253     Gear^.SoundChannel:= -1;
  6240     if (Gear^.Timer = 0) then
  6254     if (Gear^.Timer = 0) then
  6241         begin
  6255         begin
  6242         if (HH^.Gear <> nil) and (HH^.Gear^.State and gstInvisible = 0) then
  6256         if (HH^.Gear <> nil) and (HH^.Gear^.State and gstInvisible = 0) then
  6243             begin
  6257             begin
  6244             AfterAttack;
  6258             if Gear^.Tag = 0 then
  6245             if Gear = CurAmmoGear then CurAmmoGear := nil;
  6259                 AfterAttack;
  6246             if (HH^.Gear^.Damage = 0) and  (HH^.Gear^.Health > 0) and
  6260             if Gear = CurAmmoGear then
  6247             ((Gear^.State and (gstMoving or gstHHDeath or gstHHGone)) = 0) then
  6261                 CurAmmoGear:= nil;
  6248                 HideHog(HH)
  6262             if Gear^.Tag = 0 then
       
  6263                 HideHog(HH);
  6249             end
  6264             end
  6250         else if (HH^.GearHidden <> nil) then
  6265         else if (HH^.GearHidden <> nil) then
  6251             begin
  6266             begin
  6252             RestoreHog(HH);
  6267             RestoreHog(HH);
  6253             s:= ansistring(HH^.Name);
  6268             s:= ansistring(HH^.Name);
  6265 
  6280 
  6266 if (Gear^.Pos = 1) and (GameTicks and $1F = 0) and (Gear^.Power < 255) then
  6281 if (Gear^.Pos = 1) and (GameTicks and $1F = 0) and (Gear^.Power < 255) then
  6267     begin
  6282     begin
  6268     inc(Gear^.Power);
  6283     inc(Gear^.Power);
  6269     if (Gear^.Power = 172) and (HH^.Gear <> nil) and
  6284     if (Gear^.Power = 172) and (HH^.Gear <> nil) and
  6270         (HH^.Gear^.Damage = 0) and (HH^.Gear^.Health > 0) and
  6285         (Gear^.Tag = 0) then
  6271         ((HH^.Gear^.State and (gstMoving or gstHHDeath or gstHHGone)) = 0) then
       
  6272             with HH^.Gear^ do
  6286             with HH^.Gear^ do
  6273                 begin
  6287                 begin
  6274                 State:= State or gstAnimation;
  6288                 State:= State or gstAnimation;
  6275                 Tag:= 2;
  6289                 Tag:= 2;
  6276                 Timer:= 0;
  6290                 Timer:= 0;