hedgewars/uGearsHedgehog.pas
changeset 13846 b2cc4e4e380c
parent 13837 10a3b80130b5
child 13856 f01798038c2e
equal deleted inserted replaced
13845:219c2e588874 13846:b2cc4e4e380c
   184     color: LongWord;
   184     color: LongWord;
   185 begin
   185 begin
   186 Gear^.Message:= Gear^.Message and (not gmTimer);
   186 Gear^.Message:= Gear^.Message and (not gmTimer);
   187 CurWeapon:= GetCurAmmoEntry(Gear^.Hedgehog^);
   187 CurWeapon:= GetCurAmmoEntry(Gear^.Hedgehog^);
   188 with Gear^.Hedgehog^ do
   188 with Gear^.Hedgehog^ do
       
   189     if (((Gear^.State and gstAttacked) <> 0) and (GameFlags and gfInfAttack = 0))
       
   190     or ((Gear^.State and gstHHDriven) = 0) then
       
   191         exit;
   189     if ((Gear^.Message and gmPrecise) <> 0) and ((CurWeapon^.Propz and ammoprop_SetBounce) <> 0) then
   192     if ((Gear^.Message and gmPrecise) <> 0) and ((CurWeapon^.Propz and ammoprop_SetBounce) <> 0) then
   190         begin
   193         begin
   191         color:= Gear^.Hedgehog^.Team^.Clan^.Color;
   194         color:= Gear^.Hedgehog^.Team^.Clan^.Color;
   192 
   195 
   193         case Gear^.MsgParam of
   196         case Gear^.MsgParam of
   577                 if speech <> nil then
   580                 if speech <> nil then
   578                     begin
   581                     begin
   579                     speech^.Text:= SpeechText;
   582                     speech^.Text:= SpeechText;
   580                     speech^.Hedgehog:= Gear^.Hedgehog;
   583                     speech^.Hedgehog:= Gear^.Hedgehog;
   581                     speech^.FrameTicks:= SpeechType;
   584                     speech^.FrameTicks:= SpeechType;
   582                     AddChatString(#9+FormatA(trmsg[sidChatHog], [Gear^.Hedgehog^.Name, SpeechText]));
   585                     AddChatString(#9+FormatA(trmsg[sidChatHog], Gear^.Hedgehog^.Name, SpeechText));
   583                     end;
   586                     end;
   584                 SpeechText:= ''
   587                 SpeechText:= ''
   585                 end;
   588                 end;
   586 
   589 
   587             Power:= 0;
   590             Power:= 0;
   864         exit;
   867         exit;
   865     GHStepTicks:= 200;
   868     GHStepTicks:= 200;
   866     exit
   869     exit
   867     end;
   870     end;
   868 
   871 
       
   872 if (Gear^.Hedgehog^.Unplaced) then
       
   873     exit;
       
   874 
   869     if ((Gear^.Message and gmAnimate) <> 0) then
   875     if ((Gear^.Message and gmAnimate) <> 0) then
   870         begin
   876         begin
   871         Gear^.Message:= 0;
   877         Gear^.Message:= 0;
   872         Gear^.State:= Gear^.State or gstAnimation;
   878         Gear^.State:= Gear^.State or gstAnimation;
   873         Gear^.Tag:= Gear^.MsgParam;
   879         Gear^.Tag:= Gear^.MsgParam;
   908         PlaySoundV(sndJump3, Gear^.Hedgehog^.Team^.voicepack);
   914         PlaySoundV(sndJump3, Gear^.Hedgehog^.Team^.voicepack);
   909         exit
   915         exit
   910         end;
   916         end;
   911 
   917 
   912     if (Gear^.Message and (gmLeft or gmRight) <> 0) and (Gear^.State and gstMoving = 0) and 
   918     if (Gear^.Message and (gmLeft or gmRight) <> 0) and (Gear^.State and gstMoving = 0) and 
   913 		(CheckGearNear(Gear, gtPortal, 26, 26) <> nil) then 
   919 		(CheckGearNear(Gear, gtPortal, 26, 26) = nil) then
   914 		Gear^.PortalCounter:= 0;
   920 		Gear^.PortalCounter:= 0;
   915     PrevdX:= hwSign(Gear^.dX);
   921     PrevdX:= hwSign(Gear^.dX);
   916     if (Gear^.Message and gmLeft  )<>0 then
   922     if (Gear^.Message and gmLeft  )<>0 then
   917         Gear^.dX:= -cLittle else
   923         Gear^.dX:= -cLittle else
   918     if (Gear^.Message and gmRight )<>0 then
   924     if (Gear^.Message and gmRight )<>0 then