# HG changeset patch # User unc0rr # Date 1181577152 0 # Node ID b06c5aace2faf8231ac989d932408cbef28f41be # Parent 6a9bf1852bbcaa4fa175334da28726a315a61f7a - Many fixes related to hh switcher diff -r 6a9bf1852bbc -r b06c5aace2fa hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Thu Jun 07 18:09:54 2007 +0000 +++ b/hedgewars/GSHandlers.inc Mon Jun 11 15:52:32 2007 +0000 @@ -1172,7 +1172,7 @@ begin AllInactive:= false; -if (Gear^.Message and not gm_Switch) <> 0 then +if ((Gear^.Message and not gm_Switch) <> 0) or (TurnTimeLeft = 0) then begin HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; Msg:= Gear^.Message and not gm_Switch; diff -r 6a9bf1852bbc -r b06c5aace2fa hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Thu Jun 07 18:09:54 2007 +0000 +++ b/hedgewars/HHHandlers.inc Mon Jun 11 15:52:32 2007 +0000 @@ -264,15 +264,17 @@ Gear^.State:= Gear^.State or gstFalling or gstMoving; Gear^.dY:= Gear^.dY + cGravity end else - if (not Gear^.dY.isNegative) then begin - CheckHHDamage(Gear); if ((hwAbs(Gear^.dX) + hwAbs(Gear^.dY)) < _0_55) and ((Gear^.State and gstHHJumping) <> 0) then SetLittle(Gear^.dX); - Gear^.State:= Gear^.State and not (gstFalling or gstHHJumping or gstHHHJump); + if not Gear^.dY.isNegative then + begin + CheckHHDamage(Gear); + Gear^.State:= Gear^.State and not (gstFalling or gstHHJumping or gstHHHJump); + Gear^.dY:= _0; + end else Gear^.dY:= Gear^.dY + cGravity; - if Gear^.dY > _0 then Gear^.dY:= _0; if ((Gear^.State and gstMoving) <> 0) then Gear^.dX:= Gear^.dX * Gear^.Friction end; @@ -374,7 +376,6 @@ end; Gear^.Message:= Gear^.Message and not (gm_LJump or gm_HJump); - if ((Gear^.State and gstHHJumping) <> 0) and TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then SetLittle(Gear^.dX); diff -r 6a9bf1852bbc -r b06c5aace2fa hedgewars/uGears.pas --- a/hedgewars/uGears.pas Thu Jun 07 18:09:54 2007 +0000 +++ b/hedgewars/uGears.pas Mon Jun 11 15:52:32 2007 +0000 @@ -288,6 +288,9 @@ Result^.Timer:= 1100; Result^.Z:= 2000; end; + gtSwitcher: begin + Result^.Z:= cCurrHHZ + end; end; InsertGearToList(Result); AddGear:= Result diff -r 6a9bf1852bbc -r b06c5aace2fa hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Thu Jun 07 18:09:54 2007 +0000 +++ b/hedgewars/uTeams.pas Mon Jun 11 15:52:32 2007 +0000 @@ -131,6 +131,7 @@ with CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog] do if Gear <> nil then begin + AttacksNum:= 0; Gear^.Message:= 0; Gear^.Z:= cHHZ; RemoveGearFromList(Gear); @@ -150,7 +151,6 @@ with CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog] do begin - AttacksNum:= 0; with Gear^ do begin Z:= cCurrHHZ;