# HG changeset patch # User unc0rr # Date 1159302342 0 # Node ID 004493dd60e4b460d93c700080735bdafca8e595 # Parent 5294ada3910b5b1a66c11c303bc7b8f865b52b6d - Better landgen - Small fixes diff -r 5294ada3910b -r 004493dd60e4 QTfrontend/main.cpp --- a/QTfrontend/main.cpp Tue Sep 26 20:24:32 2006 +0000 +++ b/QTfrontend/main.cpp Tue Sep 26 20:25:42 2006 +0000 @@ -73,7 +73,7 @@ Translator.load(":/translations/hedgewars_" + QLocale::system().name()); app.installTranslator(&Translator); - QDir mydir("/home/igor/sources/hedgewars"); + QDir mydir("."); mydir.cd("bin"); bindir = new QDir(mydir); diff -r 5294ada3910b -r 004493dd60e4 hedgewars/CMakeLists.txt --- a/hedgewars/CMakeLists.txt Tue Sep 26 20:24:32 2006 +0000 +++ b/hedgewars/CMakeLists.txt Tue Sep 26 20:25:42 2006 +0000 @@ -24,12 +24,12 @@ string(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" fpc_vers_minor "${fpc_version}") string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" fpc_vers_patch "${fpc_version}") math(EXPR fpc_ver "${fpc_vers_major}*10000 + ${fpc_vers_minor}*100 + ${fpc_vers_patch}") - if (fpc_ver LESS "010902") - message("Minimum required version of FreePascal is 1.9.2") - else (fpc_ver LESS "010902") + if (${fpc_ver} LESS "010906") + message("Minimum required version of FreePascal is 2.0.5") + else (${fpc_ver} LESS "010906") set(pascal_compiler ${fpc_executable}) set(pascal_compiler_flags "-B" "-Sd" "-Xs" "-OG" "-O2" "-Cs2000000" ${hwengine_project}) - endif (fpc_ver LESS "010902") + endif (${fpc_ver} LESS "010906") endif (fpc_version) endif (dcc32version) diff -r 5294ada3910b -r 004493dd60e4 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Tue Sep 26 20:24:32 2006 +0000 +++ b/hedgewars/uLand.pas Tue Sep 26 20:25:42 2006 +0000 @@ -329,11 +329,18 @@ end; end; +function rndSign(num: Double): Double; +begin +if getrandom(2) = 0 then Result:= num + else Result:= - num +end; + + procedure PointWave(var Template: TEdgeTemplate; var pa: TPixAr); const MAXPASSES = 32; -var ar: array[0..MAXPASSES, 0..5] of Double; +var ar: array[0..MAXPASSES, 0..9] of Double; i, k: integer; - rx, ry, oy: Double; + rx, ry, ox, oy: Double; PassesNum: Longword; begin with Template do @@ -350,11 +357,10 @@ ar[i, 3]:= WaveAmplMin + getrandom * WaveAmplDelta; ar[i, 4]:= ar[i - 1, 4] + (getrandom * 0.7 + 0.3) * WaveFreqDelta; ar[i, 5]:= getrandom * pi * 2; - {$IFDEF DEBUGFILE} - AddFileLog('Wave params ¹' + inttostr(i) + ':'); - AddFileLog('X: ampl = ' + floattostr(ar[i, 0]) + '; freq = ' + floattostr(ar[i, 1]) + '; shift = ' + floattostr(ar[i, 2])); - AddFileLog('Y: ampl = ' + floattostr(ar[i, 3]) + '; freq = ' + floattostr(ar[i, 4]) + '; shift = ' + floattostr(ar[i, 5])); - {$ENDIF} + ar[i, 6]:= ar[i, 1] * (getrandom * 2 - 1); + ar[i, 7]:= ar[i, 1] * rndSign(sqrt(1 - sqr(ar[i, 6]))); + ar[i, 8]:= ar[i, 4] * (getrandom * 2 - 1); + ar[i, 9]:= ar[i, 4] * rndSign(sqrt(1 - sqr(ar[i, 8]))); end; end; @@ -364,9 +370,10 @@ ry:= pa.ar[k].y; for i:= 1 to PassesNum do begin + ox:= rx; oy:= ry; - ry:= ry + ar[i, 0] * sin(ar[i, 1] * rx + ar[i, 2]); - rx:= rx + ar[i, 3] * sin(ar[i, 4] * oy + ar[i, 5]); + ry:= ry + ar[i, 0] * sin(ox * ar[i, 6] + oy * ar[i, 7] + ar[i, 2]); + rx:= rx + ar[i, 3] * sin(ox * ar[i, 8] + oy * ar[i, 9] + ar[i, 5]); end; pa.ar[k].x:= round(rx); pa.ar[k].y:= round(ry);