equal
deleted
inserted
replaced
315 Gear^.AdvBounce := 10; |
315 Gear^.AdvBounce := 10; |
316 end; |
316 end; |
317 |
317 |
318 if Gear^.AdvBounce > 1 then dec(Gear^.AdvBounce); |
318 if Gear^.AdvBounce > 1 then dec(Gear^.AdvBounce); |
319 |
319 |
320 if isFalling then Gear^.dY := Gear^.dY + cGravity; |
320 if isFalling then |
321 if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed * _4 / Gear^.Radius; |
321 begin |
|
322 Gear^.dY := Gear^.dY + cGravity; |
|
323 if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed * _16 / max(12,sqr(Gear^.Radius)); |
|
324 end; |
322 |
325 |
323 Gear^.X := Gear^.X + Gear^.dX; |
326 Gear^.X := Gear^.X + Gear^.dX; |
324 Gear^.Y := Gear^.Y + Gear^.dY; |
327 Gear^.Y := Gear^.Y + Gear^.dY; |
325 CheckGearDrowning(Gear); |
328 CheckGearDrowning(Gear); |
326 //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and |
329 //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and |
3084 dec(Gear^.Health, fuel div 5); |
3087 dec(Gear^.Health, fuel div 5); |
3085 Gear^.MsgParam := Gear^.MsgParam or (HHGear^.Message and (gmLeft or gmRight)); |
3088 Gear^.MsgParam := Gear^.MsgParam or (HHGear^.Message and (gmLeft or gmRight)); |
3086 Gear^.Timer := GameTicks |
3089 Gear^.Timer := GameTicks |
3087 end |
3090 end |
3088 end; |
3091 end; |
3089 if not isUnderwater and ((GameFlags and gfMoreWind) <> 0) then HHGear^.dX := HHGear^.dX + cWindSpeed * _4 / HHGear^.Radius; |
3092 if not isUnderwater and ((GameFlags and gfMoreWind) <> 0) then HHGear^.dX := HHGear^.dX + cWindSpeed * _16 / sqr(cHHRadius); |
3090 |
3093 |
3091 // erases them all at once :-/ |
3094 // erases them all at once :-/ |
3092 if (Gear^.Timer <> 0) and (GameTicks - Gear^.Timer > 250) then |
3095 if (Gear^.Timer <> 0) and (GameTicks - Gear^.Timer > 250) then |
3093 begin |
3096 begin |
3094 Gear^.Timer := 0; |
3097 Gear^.Timer := 0; |
3216 begin |
3219 begin |
3217 HHGear^.dX := HHGear^.dX + (move * _0_1); |
3220 HHGear^.dX := HHGear^.dX + (move * _0_1); |
3218 dec(Gear^.Health, fuel div 5); |
3221 dec(Gear^.Health, fuel div 5); |
3219 Gear^.MsgParam := Gear^.MsgParam or (HHGear^.Message and (gmLeft or gmRight)); |
3222 Gear^.MsgParam := Gear^.MsgParam or (HHGear^.Message and (gmLeft or gmRight)); |
3220 end; |
3223 end; |
3221 if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _4 / HHGear^.Radius; |
3224 if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _16 / sqr(cHHRadius); |
3222 |
3225 |
3223 if Gear^.Health < 0 then Gear^.Health := 0; |
3226 if Gear^.Health < 0 then Gear^.Health := 0; |
3224 if ((GameTicks and $FF) = 0) and (Gear^.Health < 500) then |
3227 if ((GameTicks and $FF) = 0) and (Gear^.Health < 500) then |
3225 for i:= ((500-Gear^.Health) div 250) downto 0 do |
3228 for i:= ((500-Gear^.Health) div 250) downto 0 do |
3226 AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFeather); |
3229 AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFeather); |