# HG changeset patch # User unc0rr # Date 1291491194 -10800 # Node ID ffb766e85150172e829dff1aae9327f6964ab6fb # Parent a0c8779713f267ca3864d96e4d01fbf944298bc1 - Change painted map file format - Stub for uLandPainted.pas diff -r a0c8779713f2 -r ffb766e85150 hedgewars/CMakeLists.txt --- 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 diff -r a0c8779713f2 -r ffb766e85150 hedgewars/uLandPainted.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 + * + * 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. diff -r a0c8779713f2 -r ffb766e85150 tools/drawMapTest/drawmapscene.cpp --- 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))