hedgewars/uLand.pas
changeset 160 207f520b9e83
parent 155 401f4ea24715
child 161 d8870bbf960e
equal deleted inserted replaced
159:63909aecb0ed 160:207f520b9e83
   190           Y:= round(r1 + r2 + r3 + r4);
   190           Y:= round(r1 + r2 + r3 + r4);
   191           t:= t + Delta;
   191           t:= t + Delta;
   192           pa.ar[pa.Count].x:= X;
   192           pa.ar[pa.Count].x:= X;
   193           pa.ar[pa.Count].y:= Y;
   193           pa.ar[pa.Count].y:= Y;
   194           inc(pa.Count);
   194           inc(pa.Count);
   195           TryDo(pa.Count < cMaxEdgePoints, 'Edge points overflow', true)
   195           TryDo(pa.Count <= cMaxEdgePoints, 'Edge points overflow', true)
   196           end;
   196           end;
   197     end;
   197     end;
   198 end;
   198 end;
   199 
   199 
   200 procedure FillLand(x, y: integer);
   200 procedure FillLand(x, y: integer);
   380     OWidth, Width, OHeight, Height,
   380     OWidth, Width, OHeight, Height,
   381     OLeft: integer;
   381     OLeft: integer;
   382     i: integer;
   382     i: integer;
   383 begin
   383 begin
   384 TryDo((pa.ar[0].y < 0) or (pa.ar[0].y > 1023), 'Bad land generated', true);
   384 TryDo((pa.ar[0].y < 0) or (pa.ar[0].y > 1023), 'Bad land generated', true);
       
   385 TryDo((pa.ar[Pred(pa.Count)].y < 0) or (pa.ar[Pred(pa.Count)].y > 1023), 'Bad land generated', true);
   385 isUP:= pa.ar[0].y > 0;
   386 isUP:= pa.ar[0].y > 0;
   386 Left:= 1023;
   387 Left:= 1023;
   387 Right:= Left;
   388 Right:= Left;
   388 Top:= pa.ar[0].y;
   389 Top:= pa.ar[0].y;
   389 Bottom:= Top;
   390 Bottom:= Top;
   569 end;
   570 end;
   570 
   571 
   571 procedure GenPreview;
   572 procedure GenPreview;
   572 var x, y, xx, yy, t, bit: integer;
   573 var x, y, xx, yy, t, bit: integer;
   573 begin
   574 begin
       
   575 WriteLnToConsole('Generating preview...');
   574 GenBlank(EdgeTemplates[getrandom(Succ(High(EdgeTemplates)))]);
   576 GenBlank(EdgeTemplates[getrandom(Succ(High(EdgeTemplates)))]);
   575 
   577 
   576 for y:= 0 to 127 do
   578 for y:= 0 to 127 do
   577     for x:= 0 to 31 do
   579     for x:= 0 to 31 do
   578         begin
   580         begin
   581             begin
   583             begin
   582             t:= 0;
   584             t:= 0;
   583             for yy:= y * 8 to y * 8 + 7 do
   585             for yy:= y * 8 to y * 8 + 7 do
   584                 for xx:= x * 64 + bit * 8 to x * 64 + bit * 8 + 7 do
   586                 for xx:= x * 64 + bit * 8 to x * 64 + bit * 8 + 7 do
   585                     if Land[yy, xx] <> 0 then inc(t);
   587                     if Land[yy, xx] <> 0 then inc(t);
   586             if t > 31 then Preview[y, x]:= Preview[y, x] or ($80 shr bit) 
   588             if t > 8 then Preview[y, x]:= Preview[y, x] or ($80 shr bit) 
   587             end
   589             end
   588         end
   590         end
   589 end;
   591 end;
   590 
   592 
   591 initialization
   593 initialization