- Change painted map file format
authorunc0rr
Sat, 04 Dec 2010 22:33:14 +0300
changeset 4457 ffb766e85150
parent 4455 a0c8779713f2
child 4458 7351e6f1ee28
- Change painted map file format - Stub for uLandPainted.pas
hedgewars/CMakeLists.txt
hedgewars/uLandPainted.pas
tools/drawMapTest/drawmapscene.cpp
--- a/hedgewars/CMakeLists.txt	Sat Dec 04 11:30:54 2010 -0500
+++ b/hedgewars/CMakeLists.txt	Sat Dec 04 22:33:14 2010 +0300
@@ -60,6 +60,7 @@
     uLand.pas
     uLandGraphics.pas
     uLandObjects.pas
+    uLandPainted.pas
     uLandTemplates.pas
     uLandTexture.pas
     uLocale.pas
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hedgewars/uLandPainted.pas	Sat Dec 04 22:33:14 2010 +0300
@@ -0,0 +1,52 @@
+(*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2010 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ *)
+
+{$INCLUDE "options.inc"}
+
+unit uLandPainted;
+
+interface
+
+procedure LoadFromFile(fileName: shortstring);
+
+implementation
+
+type PointRec = packed record
+    x, y: ShortInt;
+    flags: byte;
+    end;
+
+procedure LoadFromFile(fileName: shortstring);
+var
+    f: file of PointRec;
+    rec: PointRec;
+begin
+    fileMode = foReadOnly;
+
+    assignFile(f, fileName);
+    reset(f);
+
+    while not eof(f) do
+        begin
+        read(f, rec);
+        end;
+
+    closeFile(f);
+end;
+
+end.
--- a/tools/drawMapTest/drawmapscene.cpp	Sat Dec 04 11:30:54 2010 -0500
+++ b/tools/drawMapTest/drawmapscene.cpp	Sat Dec 04 22:33:14 2010 +0300
@@ -94,9 +94,9 @@
             qint16 py = qToBigEndian((qint16)point.y());
             quint8 flags = 2;
             if(!cnt) flags |= 0x80;
-            b.append((const char *)&flags, 1);
             b.append((const char *)&px, 2);
             b.append((const char *)&py, 2);
+            b.append((const char *)&flags, 1);
 
             ++cnt;
         }
@@ -115,12 +115,12 @@
 
     while(data.size() >= 5)
     {
-        quint8 flags = *(quint8 *)data.data();
-        data.remove(0, 1);
         qint16 px = qFromBigEndian(*(qint16 *)data.data());
         data.remove(0, 2);
         qint16 py = qFromBigEndian(*(qint16 *)data.data());
         data.remove(0, 2);
+        quint8 flags = *(quint8 *)data.data();
+        data.remove(0, 1);
 
         //last chunk or first point
         if((data.size() < 5) || (flags & 0x80))