diff -r e32fa14529f8 -r c374fe590272 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Wed Dec 07 20:36:55 2005 +0000 +++ b/hedgewars/uLand.pas Fri Dec 16 20:57:14 2005 +0000 @@ -348,9 +348,9 @@ inc(t, 2) until (y > 1023) or (CountNonZeroz(x, y) <> 0); if (t > 22) and (y < 1023) then AddHHPoint(x, y - 12); - inc(y, 100) + inc(y, 80) end; - inc(x, 120) + inc(x, 100) end; if HHPoints.Last < cMaxHHs then @@ -371,8 +371,8 @@ end; procedure PointWave(var Template: TEdgeTemplate; var pa: TPixAr); -const MAXPASSES = 16; -var ar: array[1..MAXPASSES, 0..5] of real; +const MAXPASSES = 32; +var ar: array[0..MAXPASSES, 0..5] of real; i, k: integer; rx, ry, oy: real; PassesNum: Longword; @@ -381,13 +381,15 @@ begin PassesNum:= PassMin + getrandom(PassDelta); TryDo(PassesNum < MAXPASSES, 'Passes number too big', true); + ar[0, 1]:= WaveFreqMin; + ar[0, 4]:= WaveFreqMin; for i:= 1 to PassesNum do // initialize random parameters begin ar[i, 0]:= WaveAmplMin + getrandom * WaveAmplDelta; - ar[i, 1]:= WaveFreqMin + getrandom * WaveFreqDelta; + ar[i, 1]:= ar[i - 1, 1] + (getrandom * 0.7 + 0.3) * WaveFreqDelta; ar[i, 2]:= getrandom * pi * 2; ar[i, 3]:= WaveAmplMin + getrandom * WaveAmplDelta; - ar[i, 4]:= WaveFreqMin + getrandom * WaveFreqDelta; + ar[i, 4]:= ar[i - 1, 4] + (getrandom * 0.7 + 0.3) * WaveFreqDelta; ar[i, 5]:= getrandom * pi * 2; end; end; @@ -413,6 +415,24 @@ begin with Template do begin + if canMirror then + if getrandom(16) < 8 then + begin + for i:= 0 to pred(BasePointsCount) do + BasePoints^[i].x:= 2047 - BasePoints^[i].x; + for i:= 0 to pred(FillPointsCount) do + FillPoints^[i].x:= 2047 - FillPoints^[i].x; + end; + + if canFlip then + if getrandom(16) < 8 then + begin + for i:= 0 to pred(BasePointsCount) do + BasePoints^[i].y:= 1023 - BasePoints^[i].y; + for i:= 0 to pred(FillPointsCount) do + FillPoints^[i].y:= 1023 - FillPoints^[i].y; + end; + pa.Count:= BasePointsCount; for i:= 0 to pred(pa.Count) do pa.ar[i]:= BasePoints^[i]; @@ -443,6 +463,7 @@ with PixelFormat^ do LandSurface:= SDL_CreateRGBSurface(SDL_HWSURFACE, 2048, 1024, BitsPerPixel, RMask, GMask, BMask, 0); SDL_FillRect(LandSurface, nil, 0); +AddProgress; AddObjects(LandSurface);