hedgewars/uGears.pas
changeset 3428 46a2694867bc
parent 3427 b49ed5673727
child 3429 1f12646331d4
equal deleted inserted replaced
3427:b49ed5673727 3428:46a2694867bc
   181             @doStepMolotov,
   181             @doStepMolotov,
   182             @doStepCase,
   182             @doStepCase,
   183             @doStepBirdy,
   183             @doStepBirdy,
   184             @doStepBigExplosion,
   184             @doStepBigExplosion,
   185             @doStepEggWork,
   185             @doStepEggWork,
   186             @doStepMovingPortal,
   186             @doStepPortalShot,
   187             @doStepPiano,
   187             @doStepPiano,
   188             @doStepBomb,
   188             @doStepBomb,
   189             @doStepSineGunShot
   189             @doStepSineGunShot
   190             );
   190             );
   191 
   191 
   477                 gear^.ImpactSound:= sndMelonImpact;
   477                 gear^.ImpactSound:= sndMelonImpact;
   478                 gear^.nImpactSounds:= 1;
   478                 gear^.nImpactSounds:= 1;
   479                 gear^.AdvBounce:= 0;
   479                 gear^.AdvBounce:= 0;
   480                 gear^.Radius:= 16;
   480                 gear^.Radius:= 16;
   481                 gear^.Tag:= 0;
   481                 gear^.Tag:= 0;
       
   482                 gear^.Timer:= 15000;
       
   483                 gear^.RenderTimer:= false;
       
   484                 gear^.Health:= 100;
   482                 end;
   485                 end;
   483        gtPiano: begin
   486        gtPiano: begin
   484                 gear^.Radius:= 32
   487                 gear^.Radius:= 32
   485                 end;
   488                 end;
   486  gtSineGunShot: begin
   489  gtSineGunShot: begin
   509     FreeTexture(Gear^.Tex);
   512     FreeTexture(Gear^.Tex);
   510     Gear^.Tex:= nil
   513     Gear^.Tex:= nil
   511     end;
   514     end;
   512 
   515 
   513 // make sure that portals have their link removed before deletion
   516 // make sure that portals have their link removed before deletion
   514 if (Gear^.Kind = gtPortal) and (Gear^.IntersectGear <> nil) then
   517 if (Gear^.Kind = gtPortal) then
   515     Gear^.IntersectGear^.IntersectGear:= nil
   518     if (Gear^.IntersectGear <> nil) then
       
   519         Gear^.IntersectGear^.IntersectGear:= nil
   516 
   520 
   517 else if Gear^.Kind = gtHedgehog then
   521 else if Gear^.Kind = gtHedgehog then
   518     if (CurAmmoGear <> nil) and (CurrentHedgehog^.Gear = Gear) then
   522     if (CurAmmoGear <> nil) and (CurrentHedgehog^.Gear = Gear) then
   519         begin
   523         begin
   520         Gear^.Message:= gm_Destroy;
   524         Gear^.Message:= gm_Destroy;
   676         if Gear^.RenderTimer and (Gear^.Timer > 500) and ((Gear^.Timer mod 1000) = 0) then
   680         if Gear^.RenderTimer and (Gear^.Timer > 500) and ((Gear^.Timer mod 1000) = 0) then
   677             begin
   681             begin
   678             if Gear^.Tex <> nil then FreeTexture(Gear^.Tex);
   682             if Gear^.Tex <> nil then FreeTexture(Gear^.Tex);
   679             Gear^.Tex:= RenderStringTex(inttostr(Gear^.Timer div 1000), cWhiteColor, fntSmall);
   683             Gear^.Tex:= RenderStringTex(inttostr(Gear^.Timer div 1000), cWhiteColor, fntSmall);
   680             end;
   684             end;
       
   685 AddFileLog('doing step for gear '+intToStr(Gear^.uid)+' (type '+EnumToStr(Gear^.Kind)+')');
   681         Gear^.doStep(Gear);
   686         Gear^.doStep(Gear);
   682         end
   687         end
   683     end;
   688     end;
   684 
   689 
   685 if AllInactive then
   690 if AllInactive then