equal
deleted
inserted
replaced
279 |
279 |
280 Gear^.Y := Gear^.Y + cDrownSpeed; |
280 Gear^.Y := Gear^.Y + cDrownSpeed; |
281 |
281 |
282 if cWaterLine > hwRound(Gear^.Y) + Gear^.Radius then |
282 if cWaterLine > hwRound(Gear^.Y) + Gear^.Radius then |
283 begin |
283 begin |
284 if leftX > hwRound(Gear^.X) - Gear^.Radius then |
284 if LongInt(leftX) + Gear^.Radius > hwRound(Gear^.X) then |
285 Gear^.X := Gear^.X - cDrownSpeed |
285 Gear^.X := Gear^.X - cDrownSpeed |
286 else |
286 else |
287 Gear^.X := Gear^.X + cDrownSpeed; |
287 Gear^.X := Gear^.X + cDrownSpeed; |
288 end |
288 end |
289 else |
289 else |
2669 procedure doStepSwitcherWork(Gear: PGear); |
2669 procedure doStepSwitcherWork(Gear: PGear); |
2670 var |
2670 var |
2671 HHGear: PGear; |
2671 HHGear: PGear; |
2672 hedgehog: PHedgehog; |
2672 hedgehog: PHedgehog; |
2673 State: Longword; |
2673 State: Longword; |
2674 switchDir: LongInt; |
2674 switchDir: Longword; |
2675 begin |
2675 begin |
2676 AllInactive := false; |
2676 AllInactive := false; |
2677 |
2677 |
2678 if ((Gear^.Message and (not (gmSwitch or gmPrecise))) <> 0) or (TurnTimeLeft = 0) then |
2678 if ((Gear^.Message and (not (gmSwitch or gmPrecise))) <> 0) or (TurnTimeLeft = 0) then |
2679 begin |
2679 begin |
2710 HHGear^.Message:= HHGear^.Message or gmRemoveFromList or gmAddToList; |
2710 HHGear^.Message:= HHGear^.Message or gmRemoveFromList or gmAddToList; |
2711 |
2711 |
2712 PlaySound(sndSwitchHog); |
2712 PlaySound(sndSwitchHog); |
2713 |
2713 |
2714 repeat |
2714 repeat |
2715 CurrentTeam^.CurrHedgehog := (CurrentTeam^.CurrHedgehog + switchDir) mod (CurrentTeam^.HedgehogsNumber); |
2715 CurrentTeam^.CurrHedgehog := (CurrentTeam^.CurrHedgehog + switchDir) mod CurrentTeam^.HedgehogsNumber; |
2716 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) and |
2716 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) and |
2717 (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear^.Damage = 0) and |
2717 (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear^.Damage = 0) and |
2718 (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen]=0); |
2718 (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen]=0); |
2719 |
2719 |
2720 SwitchCurrentHedgehog(@CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog]); |
2720 SwitchCurrentHedgehog(@CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog]); |