hedgewars/VGSHandlers.inc
changeset 3443 14d12df0d363
parent 3441 f31225f99a06
child 3459 c552aa44108d
equal deleted inserted replaced
3442:69898c6ede14 3443:14d12df0d363
   427 end;
   427 end;
   428 
   428 
   429 ////////////////////////////////////////////////////////////////////////////////
   429 ////////////////////////////////////////////////////////////////////////////////
   430 procedure doStepHealthTagWork(Gear: PVisualGear; Steps: Longword);
   430 procedure doStepHealthTagWork(Gear: PVisualGear; Steps: Longword);
   431 begin
   431 begin
   432 //if Gear^.Kind = gtHealthTag then
       
   433 //    AllInactive:= false;
       
   434 
       
   435 if Steps > Gear^.Timer then
   432 if Steps > Gear^.Timer then
   436     begin
   433     begin
   437 //    if (Gear^.Kind = vgtHealthTag) and (PHedgehog(Gear^.Hedgehog)^.Gear <> nil) then
       
   438 //        PHedgehog(Gear^.Hedgehog)^.Gear^.Active:= true; // to let current hh die
       
   439     DeleteVisualGear(Gear);
   434     DeleteVisualGear(Gear);
   440     end
   435     end
   441 else
   436 else
   442     begin
   437     begin
   443     dec(Gear^.Timer, Steps);
   438     dec(Gear^.Timer, Steps);
   445     end;
   440     end;
   446 end;
   441 end;
   447 
   442 
   448 procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword);
   443 procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword);
   449 begin
   444 begin
   450 //AllInactive:= false;
       
   451 
       
   452 if hwRound(Gear^.Y) < cWaterLine + 10 then
   445 if hwRound(Gear^.Y) < cWaterLine + 10 then
   453     DeleteVisualGear(Gear)
   446     DeleteVisualGear(Gear)
   454 else
   447 else
   455     Gear^.Y:= Gear^.Y - _0_08 * Steps;
   448     Gear^.Y:= Gear^.Y - _0_08 * Steps;
   456 
   449 
   457 end;
   450 end;
   458 
   451 
   459 procedure doStepHealthTag(Gear: PVisualGear; Steps: Longword);
   452 procedure doStepHealthTag(Gear: PVisualGear; Steps: Longword);
   460 var s: shortstring;
   453 var s: shortstring;
   461 begin
   454 begin
   462 //AllInactive:= false;
       
   463 
       
   464 s:= '';
   455 s:= '';
   465 
   456 
   466 Gear^.dY:= -_0_08;
   457 Gear^.dY:= -_0_08;
   467 
   458 
   468 str(Gear^.State, s);
   459 str(Gear^.State, s);
   469 Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16);
   460 Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16);
       
   461 // if you segfault here you probably added this healthtag directly
       
   462 // maybe you should call spawnHealthTagForHH() in uGears.pas instead
   470 
   463 
   471 if hwRound(Gear^.Y) < cWaterLine then
   464 if hwRound(Gear^.Y) < cWaterLine then
   472     Gear^.doStep:= @doStepHealthTagWork
   465     Gear^.doStep:= @doStepHealthTagWork
   473 else
   466 else
   474     Gear^.doStep:= @doStepHealthTagWorkUnderWater;
   467     Gear^.doStep:= @doStepHealthTagWorkUnderWater;