# HG changeset patch # User unc0rr # Date 1293130497 -10800 # Node ID d8e1b43482d2fe8b63c729423c46424e479d24c7 # Parent 48ab5ea4e9c9bbbc4ab5c4cf22a3168c2eb829dd - Remove loading from file procedure - Add an assert on data format diff -r 48ab5ea4e9c9 -r d8e1b43482d2 hedgewars/uLandPainted.pas --- a/hedgewars/uLandPainted.pas Thu Dec 23 12:30:33 2010 -0500 +++ b/hedgewars/uLandPainted.pas Thu Dec 23 21:54:57 2010 +0300 @@ -22,12 +22,11 @@ interface -procedure LoadFromFile(fileName: shortstring); procedure Draw; procedure initModule; implementation -uses uLandGraphics, uConsts, uUtils, SDLh, uCommands; +uses uLandGraphics, uConsts, uUtils, SDLh, uCommands, uDebug; type PointRec = packed record X, Y: SmallInt; @@ -106,34 +105,6 @@ end end; - -procedure LoadFromFile(fileName: shortstring); -var - f: file of PointRec; - rec, prevRec: PointRec; -begin - fileMode:= 0; - - assignFile(f, fileName); - reset(f); - - while not eof(f) do - begin - read(f, rec); - rec.X:= SDLNet_Read16(@rec.X); - rec.Y:= SDLNet_Read16(@rec.Y); - - // FIXME: handle single point - if eof(f) or (rec.flags and $80 <> 0) then - else - DrawLineOnLand(prevRec.X, prevRec.Y, rec.X, rec.Y); - - prevRec:= rec; - end; - - closeFile(f); -end; - procedure chDraw(var s: shortstring); var rec: PointRec; prec: ^PointRec; @@ -167,7 +138,12 @@ var pe: PPointEntry; prevPoint: PointRec; begin + // shutup compiler + prevPoint.X:= 0; + prevPoint.Y:= 0; + pe:= pointsListHead; + TryDo((pe = nil) or (pe^.point.flags and $80 <> 0), 'Corrupted draw data', true); while(pe <> nil) do begin @@ -177,7 +153,7 @@ DrawLineOnLand(prevPoint.X, prevPoint.Y, pe^.point.X, pe^.point.Y); prevPoint:= pe^.point; - pe:= pe^.next; + pe:= pe^.next; end; end;