diff -r 98cb6606bf67 -r b08ce0293a51 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Thu Aug 10 22:19:35 2006 +0000 +++ b/hedgewars/uLand.pas Fri Aug 11 16:17:50 2006 +0000 @@ -66,9 +66,9 @@ procedure DrawBezierEdge(var pa: TPixAr; Color: Longword); var x, y, i: integer; - tx, ty, vx, vy, vlen, t: real; - r1, r2, r3, r4: real; - x1, y1, x2, y2, cx1, cy1, cx2, cy2, tsq, tcb: real; + tx, ty, vx, vy, vlen, t: Double; + r1, r2, r3, r4: Double; + x1, y1, x2, y2, cx1, cy1, cx2, cy2, tsq, tcb: Double; begin vx:= 0; vy:= 0; @@ -126,11 +126,11 @@ end; end; -procedure BezierizeEdge(var pa: TPixAr; Delta: real); +procedure BezierizeEdge(var pa: TPixAr; Delta: Double); var x, y, i: integer; - tx, ty, vx, vy, vlen, t: real; - r1, r2, r3, r4: real; - x1, y1, x2, y2, cx1, cy1, cx2, cy2, tsq, tcb: real; + tx, ty, vx, vy, vlen, t: Double; + r1, r2, r3, r4: Double; + x1, y1, x2, y2, cx1, cy1, cx2, cy2, tsq, tcb: Double; opa: TPixAr; begin opa:= pa; @@ -327,9 +327,9 @@ procedure PointWave(var Template: TEdgeTemplate; var pa: TPixAr); const MAXPASSES = 32; -var ar: array[0..MAXPASSES, 0..5] of real; +var ar: array[0..MAXPASSES, 0..5] of Double; i, k: integer; - rx, ry, oy: real; + rx, ry, oy: Double; PassesNum: Longword; begin with Template do @@ -512,7 +512,8 @@ end; procedure LoadMap; -var p, x, y, i: Longword; +var x, y: Longword; + p: PByteArray; begin WriteLnToConsole('Loading land from file...'); AddProgress; @@ -522,32 +523,28 @@ if SDL_MustLock(LandSurface) then SDLTry(SDL_LockSurface(LandSurface) >= 0, true); -p:= Longword(LandSurface.pixels); -i:= Longword(@Land); +p:= LandSurface.pixels; case LandSurface.format.BytesPerPixel of 1: OutError('We don''t work with 8 bit surfaces', true); 2: for y:= 0 to 1023 do begin for x:= 0 to 2047 do - if PWord(p + x * 2)^ <> 0 then PLongWord(i + x * 4)^:= COLOR_LAND; - inc(i, 2048 * 4); - inc(p, LandSurface.pitch); + if PWord(@p[x * 2])^ <> 0 then Land[y, x]:= COLOR_LAND; + p:= @p[LandSurface.pitch]; end; 3: for y:= 0 to 1023 do begin for x:= 0 to 2047 do - if (PByte(p + x * 3 + 0)^ <> 0) - or (PByte(p + x * 3 + 1)^ <> 0) - or (PByte(p + x * 3 + 2)^ <> 0) then PLongWord(i + x * 4)^:= COLOR_LAND; - inc(i, 2048 * 4); - inc(p, LandSurface.pitch); + if (p[x * 3 + 0] <> 0) + or (p[x * 3 + 1] <> 0) + or (p[x * 3 + 2] <> 0) then Land[y, x]:= COLOR_LAND; + p:= @p[LandSurface.pitch]; end; 4: for y:= 0 to 1023 do begin for x:= 0 to 2047 do - if PLongword(p + x * 4)^ <> 0 then PLongWord(i + x * 4)^:= COLOR_LAND; - inc(i, 2048 * 4); - inc(p, LandSurface.pitch); + if PLongword(@p[x * 4])^ <> 0 then Land[y, x]:= COLOR_LAND; + p:= @p[LandSurface.pitch]; end; end; if SDL_MustLock(LandSurface) then