hedgewars/uLand.pas
changeset 51 b6e3ae05857f
parent 37 2b7f2a43b999
child 53 0e27949850e3
--- a/hedgewars/uLand.pas	Sun Jan 15 23:31:34 2006 +0000
+++ b/hedgewars/uLand.pas	Sun Jan 15 23:32:58 2006 +0000
@@ -56,7 +56,7 @@
 var HHPoints: record
               First, Last: word;
               ar: array[1..Pred(cMaxSpawnPoints)] of TPoint
-              end = (First: 1);
+              end;
 
 procedure LogLandDigest;
 var ctx: TSHA1Context;
@@ -127,7 +127,7 @@
           Y:= round(r1 + r2 + r3 + r4);
           t:= t + 0.001;
           if ((x and $FFFFF800) = 0) and ((y and $FFFFFC00) = 0) then
-                Land[y, x]:= $FFFFFF;
+                Land[y, x]:= 0;
           end;
     end;
 end;
@@ -244,15 +244,15 @@
 while Stack.Count > 0 do
       begin
       Pop(xl, xr, y, dir);
-      while (xl > 0) and (Land[y, xl] = 0) do dec(xl);
-      while (xr < 2047) and (Land[y, xr] = 0) do inc(xr);
+      while (xl > 0) and (Land[y, xl] <> 0) do dec(xl);
+      while (xr < 2047) and (Land[y, xr] <> 0) do inc(xr);
       while (xl < xr) do
             begin
-            while (xl <= xr) and (Land[y, xl] <> 0) do inc(xl);
+            while (xl <= xr) and (Land[y, xl] = 0) do inc(xl);
             x:= xl;
-            while (xl <= xr) and (Land[y, xl] = 0) do
+            while (xl <= xr) and (Land[y, xl] <> 0) do
                   begin
-                  Land[y, xl]:= $FFFFFF;
+                  Land[y, xl]:= 0;
                   inc(xl)
                   end;
             if x < xl then
@@ -462,8 +462,11 @@
 
 procedure GenLandSurface;
 var tmpsurf: PSDL_Surface;
+    i: Longword;
 begin
-GenBlank(EdgeTemplates[getrandom(Succ(High(EdgeTemplates)))]);
+for i:= 0 to sizeof(Land) div 4 do
+    PLongword(Longword(@Land) + i * 4)^:= $FFFFFF;
+GenBlank(EdgeTemplates[8{getrandom(Succ(High(EdgeTemplates)))}]);
 
 AddProgress;
 with PixelFormat^ do
@@ -564,4 +567,8 @@
      end
 end;
 
+initialization
+
+HHPoints.First:= 1
+
 end.