hedgewars/VGSHandlers.inc
changeset 4365 4f2b1a152979
parent 4327 224efdd648e1
child 4379 6cd6b77df8b8
equal deleted inserted replaced
4363:e944cc43f7a4 4365:4f2b1a152979
   442 ////////////////////////////////////////////////////////////////////////////////
   442 ////////////////////////////////////////////////////////////////////////////////
   443 procedure doStepSpeechBubbleWork(Gear: PVisualGear; Steps: Longword);
   443 procedure doStepSpeechBubbleWork(Gear: PVisualGear; Steps: Longword);
   444 begin
   444 begin
   445 if Gear^.Timer > Steps then dec(Gear^.Timer, Steps) else Gear^.Timer:= 0;
   445 if Gear^.Timer > Steps then dec(Gear^.Timer, Steps) else Gear^.Timer:= 0;
   446 
   446 
   447 if (PHedgehog(Gear^.Hedgehog)^.Gear <> nil) then
   447 if (Gear^.Hedgehog^.Gear <> nil) then
   448     begin
   448     begin
   449     Gear^.X:= PHedgehog(Gear^.Hedgehog)^.Gear^.X.QWordValue/4294967296 + (Gear^.Tex^.w div 2  - Gear^.FrameTicks);
   449     Gear^.X:= Gear^.Hedgehog^.Gear^.X.QWordValue/4294967296 + (Gear^.Tex^.w div 2  - Gear^.FrameTicks);
   450     Gear^.Y:= PHedgehog(Gear^.Hedgehog)^.Gear^.Y.QWordValue/4294967296 - (16 + Gear^.Tex^.h);
   450     Gear^.Y:= Gear^.Hedgehog^.Gear^.Y.QWordValue/4294967296 - (16 + Gear^.Tex^.h);
   451     end;
   451     end;
   452 
   452 
   453 if Gear^.Timer = 0 then
   453 if Gear^.Timer = 0 then
   454     begin
   454     begin
   455     if PHedgehog(Gear^.Hedgehog)^.SpeechGear = Gear then
   455     if Gear^.Hedgehog^.SpeechGear = Gear then
   456         PHedgehog(Gear^.Hedgehog)^.SpeechGear:= nil;
   456         Gear^.Hedgehog^.SpeechGear:= nil;
   457     DeleteVisualGear(Gear)
   457     DeleteVisualGear(Gear)
   458     end;
   458     end;
   459 end;
   459 end;
   460 
   460 
   461 procedure doStepSpeechBubble(Gear: PVisualGear; Steps: Longword);
   461 procedure doStepSpeechBubble(Gear: PVisualGear; Steps: Longword);
   462 begin
   462 begin
   463 Steps:= Steps; // avoid compiler hint
   463 Steps:= Steps; // avoid compiler hint
   464 
   464 
   465 with PHedgehog(Gear^.Hedgehog)^ do
   465 with Gear^.Hedgehog^ do
   466     if SpeechGear <> nil then SpeechGear^.Timer:= 0;
   466     if SpeechGear <> nil then SpeechGear^.Timer:= 0;
   467 
   467 
   468 PHedgehog(Gear^.Hedgehog)^.SpeechGear:= Gear;
   468 Gear^.Hedgehog^.SpeechGear:= Gear;
   469 
   469 
   470 Gear^.Timer:= max(Length(Gear^.Text) * 150, 3000);
   470 Gear^.Timer:= max(Length(Gear^.Text) * 150, 3000);
   471 
   471 
   472 Gear^.Tex:= RenderSpeechBubbleTex(Gear^.Text, Gear^.FrameTicks, fnt16);
   472 Gear^.Tex:= RenderSpeechBubbleTex(Gear^.Text, Gear^.FrameTicks, fnt16);
   473 
   473 
   510 
   510 
   511 Gear^.dY:= -0.08;
   511 Gear^.dY:= -0.08;
   512 
   512 
   513 str(Gear^.State, s);
   513 str(Gear^.State, s);
   514 if Gear^.Hedgehog <> nil then
   514 if Gear^.Hedgehog <> nil then
   515     Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16)
   515     Gear^.Tex:= RenderStringTex(s, Gear^.Hedgehog^.Team^.Clan^.Color, fnt16)
   516 else
   516 else
   517     Gear^.Tex:= RenderStringTex(s, cWhiteColor, fnt16);
   517     Gear^.Tex:= RenderStringTex(s, cWhiteColor, fnt16);
   518 
   518 
   519 if round(Gear^.Y) < cWaterLine then
   519 if round(Gear^.Y) < cWaterLine then
   520     Gear^.doStep:= @doStepHealthTagWork
   520     Gear^.doStep:= @doStepHealthTagWork