470 end; |
470 end; |
471 |
471 |
472 //////////////////////////////////////////////////////////////////////////////// |
472 //////////////////////////////////////////////////////////////////////////////// |
473 procedure doStepBeeWork(Gear: PGear); |
473 procedure doStepBeeWork(Gear: PGear); |
474 var t: hwFloat; |
474 var t: hwFloat; |
475 begin |
475 nuw: boolean; |
476 AllInactive:= false; |
476 const uw: boolean = false; |
|
477 begin |
|
478 AllInactive:= false; |
|
479 nuw:= (cWaterLine < hwRound(Gear^.Y) + Gear^.Radius); |
|
480 if nuw and not uw then |
|
481 begin |
|
482 AddVisualGear(hwRound(Gear^.X), cWaterLine, vgtSplash); |
|
483 AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
|
484 AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
|
485 AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
|
486 AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
|
487 StopSound(Gear^.SoundChannel); |
|
488 Gear^.SoundChannel:= LoopSound(sndBeeWater); |
|
489 uw:= nuw |
|
490 end |
|
491 else if not nuw and uw then |
|
492 begin |
|
493 AddVisualGear(hwRound(Gear^.X), cWaterLine, vgtSplash); |
|
494 StopSound(Gear^.SoundChannel); |
|
495 Gear^.SoundChannel:= LoopSound(sndBee); |
|
496 uw:= nuw |
|
497 end; |
|
498 |
|
499 |
477 t:= Distance(Gear^.dX, Gear^.dY); |
500 t:= Distance(Gear^.dX, Gear^.dY); |
478 Gear^.dX:= Gear^.Elasticity * (Gear^.dX + _0_000004 * (TargetPoint.X - hwRound(Gear^.X))); |
501 Gear^.dX:= Gear^.Elasticity * (Gear^.dX + _0_000004 * (TargetPoint.X - hwRound(Gear^.X))); |
479 Gear^.dY:= Gear^.Elasticity * (Gear^.dY + _0_000004 * (TargetPoint.Y - hwRound(Gear^.Y))); |
502 Gear^.dY:= Gear^.Elasticity * (Gear^.dY + _0_000004 * (TargetPoint.Y - hwRound(Gear^.Y))); |
480 |
503 |
481 t:= t / Distance(Gear^.dX, Gear^.dY); |
504 t:= t / Distance(Gear^.dX, Gear^.dY); |