# HG changeset patch # User sheepluva # Date 1404579105 -7200 # Node ID 2af2309207b0751facb295de485d06c441e6d57b # Parent 0eff41e9f63f422ec4bbb6bdf3aef9e32e5fa774 simplify some code diff -r 0eff41e9f63f -r 2af2309207b0 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Sat Jul 05 15:28:32 2014 +0400 +++ b/hedgewars/uGearsHandlersMess.pas Sat Jul 05 18:51:45 2014 +0200 @@ -673,11 +673,7 @@ or (Gear^.Kind = gtBall) then CalcRotationDirAngle(Gear) else if (GameTicks and $1F) = 0 then - begin - if hwRound(Gear^.Y) > cWaterLine then - AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble) - else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace) - end + AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace); end; //////////////////////////////////////////////////////////////////////////////// @@ -694,11 +690,7 @@ exit end; if (GameTicks and $3F) = 0 then - begin - if hwRound(Gear^.Y) > cWaterLine then - AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble) - else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace) - end + AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace); end; //////////////////////////////////////////////////////////////////////////////// @@ -1001,12 +993,8 @@ if (GameTicks and $F) = 0 then begin if (GameTicks and $30) = 0 then - begin - if nuw then - AddVisualGear(gX, gY, vgtBubble) - else - AddVisualGear(gX, gY, vgtBeeTrace); - end; + AddVisualGear(gX, gY, vgtBeeTrace); + Gear^.dX := Gear^.Elasticity * (Gear^.dX + _0_000064 * (Gear^.Target.X - gX)); Gear^.dY := Gear^.Elasticity * (Gear^.dY + _0_000064 * (Gear^.Target.Y - gY)); // make sure new speed isn't higher than original one (which we stored in Friction variable) @@ -2765,11 +2753,7 @@ end; if (GameTicks and $3F) = 0 then - begin - if hwRound(Gear^.Y) > cWaterLine then - AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble) - else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace) - end + AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace); end; //////////////////////////////////////////////////////////////////////////////// @@ -3270,11 +3254,7 @@ doStepFallingGear(Gear); if (GameTicks and $3F) = 0 then - begin - if hwRound(Gear^.Y) > cWaterLine then - AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble) - else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace) - end; + AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace); if ((Gear^.State and gstCollision) <> 0) then begin diff -r 0eff41e9f63f -r 2af2309207b0 hedgewars/uVisualGearsList.pas --- a/hedgewars/uVisualGearsList.pas Sat Jul 05 15:28:32 2014 +0400 +++ b/hedgewars/uVisualGearsList.pas Sat Jul 05 18:51:45 2014 +0200 @@ -40,6 +40,10 @@ function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; inline; begin + // adjust some visual gear types if underwater + if (Y > cWaterLine) and ((Kind = vgtBeeTrace) or (Kind = vgtSmokeTrace) or (Kind = vgtEvilTrace)) then + Kind:= vgtBubble; + AddVisualGear:= AddVisualGear(X, Y, Kind, 0, false, -1); end;