hedgewars/uVisualGears.pas
changeset 15585 f8c1492601fe
parent 14584 ab79cd4a7382
child 15772 95db10dcad71
equal deleted inserted replaced
15584:b2b72fc7fc14 15585:f8c1492601fe
   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