hedgewars/GSHandlers.inc
changeset 4021 014325c23705
parent 4018 7f2c71638466
child 4023 8de77872ef21
equal deleted inserted replaced
4020:898a55b81d10 4021:014325c23705
  4116         Gear^.Timer := 250;
  4116         Gear^.Timer := 250;
  4117         Gear^.doStep := @doStepIdle;
  4117         Gear^.doStep := @doStepIdle;
  4118         exit;
  4118         exit;
  4119         end;
  4119         end;
  4120 
  4120 
  4121     if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) then 
  4121     if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) then begin
  4122         begin
       
  4123         i := getRandom(Length(graves));
  4122         i := getRandom(Length(graves));
  4124         dec(hh^.Gear^.Health);
  4123         dec(hh^.Gear^.Health);
  4125         if (hh^.Gear^.Health = 0) and (hh^.Gear^.Damage = 0) then
  4124         if (hh^.Gear^.Health = 0) and (hh^.Gear^.Damage = 0) then
  4126             hh^.Gear^.Damage:= 1;
  4125             hh^.Gear^.Damage:= 1;
  4127         RenderHealth(hh^);
  4126         RenderHealth(hh^);
  4130             if hh^.Gear^.Health > 0 then begin
  4129             if hh^.Gear^.Health > 0 then begin
  4131                 dec(hh^.Gear^.Health);
  4130                 dec(hh^.Gear^.Health);
  4132                 inc(graves[i]^.Health);
  4131                 inc(graves[i]^.Health);
  4133             end;
  4132             end;
  4134         end; -}
  4133         end; -}
  4135         end 
  4134     end else begin
  4136     else 
       
  4137         begin
       
  4138         // now really resurrect the hogs with the hp saved in the graves
  4135         // now really resurrect the hogs with the hp saved in the graves
  4139         for i:= 0 to High(graves) do
  4136         for i:= 0 to High(graves) do
  4140             if graves[i]^.Health > 0 then
  4137             if graves[i]^.Health > 0 then begin
  4141                 begin
       
  4142                 resgear := AddGear(hwRound(graves[i]^.X), hwRound(graves[i]^.Y),
  4138                 resgear := AddGear(hwRound(graves[i]^.X), hwRound(graves[i]^.Y),
  4143                         gtHedgehog, gstWait, _0, _0, 0);
  4139                         gtHedgehog, gstWait, _0, _0, 0);
  4144                 resgear^.Hedgehog := graves[i]^.Hedgehog;
  4140                 resgear^.Hedgehog := graves[i]^.Hedgehog;
  4145                 resgear^.Health := graves[i]^.Health;
  4141                 resgear^.Health := graves[i]^.Health;
  4146                 PHedgehog(graves[i]^.Hedgehog)^.Gear := resgear;
  4142                 PHedgehog(graves[i]^.Hedgehog)^.Gear := resgear;
  4147                 DeleteGear(graves[i]);
  4143                 DeleteGear(graves[i]);
  4148                 RenderHealth(PHedgehog(resgear^.Hedgehog)^);
  4144                 RenderHealth(PHedgehog(resgear^.Hedgehog)^);
  4149                 RecountTeamHealth(Phedgehog(resgear^.Hedgehog)^.Team);
  4145                 RecountTeamHealth(Phedgehog(resgear^.Hedgehog)^.Team);
  4150                 end;
  4146                 FreeTexture(PHedgehog(resgear^.Hedgehog)^.HatTex);
       
  4147                 PHedgehog(resgear^.Hedgehog)^.HatTex := Surface2Tex(
       
  4148                     LoadImage(Pathz[ptHats] + '/Reserved/Zombie', ifNone),
       
  4149                     True);
       
  4150             end;
  4151         StopSound(Gear^.SoundChannel);
  4151         StopSound(Gear^.SoundChannel);
  4152         Gear^.Timer := 250;
  4152         Gear^.Timer := 250;
  4153         Gear^.doStep := @doStepIdle;
  4153         Gear^.doStep := @doStepIdle;
  4154         end;
  4154     end;
  4155     //if hh^.Gear^.Health = 0 then doStepHedgehogFree(hh^.Gear);
  4155     //if hh^.Gear^.Health = 0 then doStepHedgehogFree(hh^.Gear);
  4156 end;
  4156 end;
  4157 
  4157 
  4158 procedure doStepResurrector(Gear: PGear);
  4158 procedure doStepResurrector(Gear: PGear);
  4159 var
  4159 var