461 |
461 |
462 procedure AddClouds; |
462 procedure AddClouds; |
463 var i: LongInt; |
463 var i: LongInt; |
464 begin |
464 begin |
465 for i:= 0 to cCloudsNumber - 1 do |
465 for i:= 0 to cCloudsNumber - 1 do |
466 AddVisualGear(cLeftScreenBorder + i * LongInt(cScreenSpace div (cCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud, 0, true) |
466 AddVisualGear(cLeftScreenBorder + i * LongInt(cScreenSpace div (cCloudsNumber + 1)), LAND_HEIGHT-cCloudOffset, vgtCloud, 0, true) |
467 end; |
467 end; |
468 |
468 |
469 procedure ChangeToSDClouds; |
469 procedure ChangeToSDClouds; |
470 var i, j: LongInt; |
470 var i, j: LongInt; |
471 vg, tmp: PVisualGear; |
471 vg, tmp: PVisualGear; |
482 DeleteVisualGear(vg); |
482 DeleteVisualGear(vg); |
483 vg:= tmp |
483 vg:= tmp |
484 end |
484 end |
485 else vg:= vg^.NextGear; |
485 else vg:= vg^.NextGear; |
486 for j:= 0 to cSDCloudsNumber - 1 do |
486 for j:= 0 to cSDCloudsNumber - 1 do |
487 AddVisualGear(cLeftScreenBorder + j * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud, 0, true) |
487 AddVisualGear(cLeftScreenBorder + j * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-cCloudOffset, vgtCloud, 0, true) |
488 end; |
488 end; |
|
489 end; |
|
490 |
|
491 procedure AddFlake; inline; |
|
492 begin |
|
493 AddVisualGear(cLeftScreenBorder + random(cScreenSpace), LAND_HEIGHT-cCloudOffset+ random(cCloudOffset), vgtFlake); |
489 end; |
494 end; |
490 |
495 |
491 procedure AddFlakes; |
496 procedure AddFlakes; |
492 var i: LongInt; |
497 var i: LongInt; |
493 begin |
498 begin |
494 if (cReducedQuality and rqKillFlakes) <> 0 then |
499 if (cReducedQuality and rqKillFlakes) <> 0 then |
495 exit; |
500 exit; |
496 |
501 |
497 if hasBorder or (not cSnow) then |
502 if hasBorder or (not cSnow) then |
498 for i:= 0 to Pred(vobCount * cScreenSpace div 4096) do |
503 for i:= 0 to Pred(vobCount * cScreenSpace div 4096) do |
499 AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake) |
504 AddFlake |
500 else |
505 else |
501 for i:= 0 to Pred((vobCount * cScreenSpace div 4096) div 3) do |
506 for i:= 0 to Pred((vobCount * cScreenSpace div 4096) div 3) do |
502 AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake); |
507 AddFlake; |
503 end; |
508 end; |
504 |
509 |
505 procedure ChangeToSDFlakes; |
510 procedure ChangeToSDFlakes; |
506 var i: LongInt; |
511 var i: LongInt; |
507 vg, tmp: PVisualGear; |
512 vg, tmp: PVisualGear; |
524 end |
529 end |
525 else vg:= vg^.NextGear; |
530 else vg:= vg^.NextGear; |
526 end; |
531 end; |
527 if hasBorder or (not cSnow) then |
532 if hasBorder or (not cSnow) then |
528 for i:= 0 to Pred(vobSDCount * cScreenSpace div 4096) do |
533 for i:= 0 to Pred(vobSDCount * cScreenSpace div 4096) do |
529 AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake) |
534 AddFlake |
530 else |
535 else |
531 for i:= 0 to Pred((vobSDCount * cScreenSpace div 4096) div 3) do |
536 for i:= 0 to Pred((vobSDCount * cScreenSpace div 4096) div 3) do |
532 AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake); |
537 AddFlake; |
533 end; |
538 end; |
534 |
539 |
535 procedure initModule; |
540 procedure initModule; |
536 var i: LongWord; |
541 var i: LongWord; |
537 begin |
542 begin |