# HG changeset patch # User alfadur # Date 1592694260 -10800 # Node ID 969f67193d0bd1b28a6c4b8010cbf5a0df948a81 # Parent 106d7162caeabce4f8554561bf574e636c470033 throttle wiggling diff -r 106d7162caea -r 969f67193d0b hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Fri Jun 05 21:58:17 2020 +0300 +++ b/hedgewars/uGearsHandlersMess.pas Sun Jun 21 02:04:20 2020 +0300 @@ -1869,6 +1869,7 @@ begin Gear^.dX := SignAs(AngleSin(HHGear^.Angle) * _0_5, Gear^.dX); Gear^.dY := AngleCos(HHGear^.Angle) * ( - _0_5); + BTPrevAngle := HHGear^.Angle; dig := true end; @@ -1935,6 +1936,17 @@ HHGear^.State := HHGear^.State and (not gstNoDamage); end; + if HHGear^.dX.isNegative <> (Gear^.Tag = -1) then + begin + inc(Gear^.WDTimer); + if Gear^.WDTimer > 150 then + begin + Gear^.WDTimer := 0; + Gear^.Tag := - Gear^.Tag; + end + end else + Gear^.WDTimer := 0; + if (TurnTimeLeft = 0) or (Gear^.Timer = 0) or ((HHGear^.Message and gmAttack) <> 0) then begin @@ -1965,6 +1977,14 @@ HHGear^.Message := 0; HHGear^.State := HHGear^.State or gstNotKickable; RefillProximityCache(Gear, 200); + + //Throttle counter for direction changes + Gear^.WDTimer := 0; + if HHGear^.dX.isNegative then + Gear^.Tag := -1 + else + Gear^.Tag := 1; + Gear^.SoundChannel := LoopSound(sndBlowTorch); Gear^.doStep := @doStepBlowTorchWork end; diff -r 106d7162caea -r 969f67193d0b hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Fri Jun 05 21:58:17 2020 +0300 +++ b/hedgewars/uGearsRender.pas Sun Jun 21 02:04:20 2020 +0300 @@ -662,8 +662,9 @@ end; gtBlowTorch: begin - DrawSpriteRotated(sprBlowTorch, hx, hy, sign, aangle); - DrawHedgehog(sx, sy, + sign:= CurAmmoGear^.Tag; + DrawSpriteRotated(sprBlowTorch, ox + 8 * sign, oy - 2, sign, aangle); + DrawHedgehog(ox + 1, oy - 3, sign, 3, HH^.visStepPos div 2, @@ -673,8 +674,8 @@ begin DrawTextureF(curhat, 1, - sx, - sy - 5, + ox + 1, + oy - 8, 0, sign, 32, @@ -688,8 +689,8 @@ Tint(HH^.Team^.Clan^.Color shl 8 or $FF); DrawTextureF(curhat, 1, - sx, - sy - 5, + ox + 1, + oy - 8, tx, sign, 32, @@ -697,7 +698,8 @@ untint end end; - defaultPos:= false + defaultPos:= false; + sign:= hwSign(Gear^.dX); end; gtFirePunch: begin