Skip to content

Commit 880687f

Browse files
committed
fix tile layer rendering
1 parent 617c16d commit 880687f

File tree

3 files changed

+61
-74
lines changed

3 files changed

+61
-74
lines changed
Lines changed: 53 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,66 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<map version="1.0" tiledversion="1.0.3" orientation="staggered" renderorder="right-down" width="25" height="50" tilewidth="64" tileheight="32" infinite="1" staggeraxis="y" staggerindex="odd" nextobjectid="1">
2+
<map version="1.4" tiledversion="1.4.3" orientation="staggered" renderorder="right-down" width="25" height="50" tilewidth="64" tileheight="32" infinite="1" staggeraxis="y" staggerindex="odd" nextlayerid="2" nextobjectid="1">
33
<tileset firstgid="1" name="isometric_grass_and_water" tilewidth="64" tileheight="64" tilecount="24" columns="4">
44
<tileoffset x="0" y="16"/>
55
<grid orientation="isometric" width="64" height="32"/>
66
<image source="isometric_grass_and_water.png" width="256" height="384"/>
7-
<terraintypes>
8-
<terrain name="Grass" tile="0"/>
9-
<terrain name="Water" tile="22"/>
10-
</terraintypes>
11-
<tile id="0" terrain="0,0,0,0"/>
12-
<tile id="1" terrain="0,0,0,0"/>
13-
<tile id="2" terrain="0,0,0,0"/>
14-
<tile id="3" terrain="0,0,0,0"/>
15-
<tile id="4" terrain="0,0,0,1"/>
16-
<tile id="5" terrain="0,0,1,0"/>
17-
<tile id="6" terrain="1,0,0,0"/>
18-
<tile id="7" terrain="0,1,0,0"/>
19-
<tile id="8" terrain="0,1,1,1"/>
20-
<tile id="9" terrain="1,0,1,1"/>
21-
<tile id="10" terrain="1,1,1,0"/>
22-
<tile id="11" terrain="1,1,0,1"/>
23-
<tile id="12" terrain="0,0,1,1"/>
24-
<tile id="13" terrain="1,0,1,0"/>
25-
<tile id="14" terrain="1,1,0,0"/>
26-
<tile id="15" terrain="0,1,0,1"/>
27-
<tile id="16" terrain="0,0,1,1"/>
28-
<tile id="17" terrain="1,0,1,0"/>
29-
<tile id="18" terrain="1,1,0,0"/>
30-
<tile id="19" terrain="0,1,0,1"/>
31-
<tile id="20" terrain="0,1,1,0"/>
32-
<tile id="21" terrain="1,0,0,1"/>
33-
<tile id="22" terrain="1,1,1,1"/>
34-
<tile id="23" terrain="1,1,1,1"/>
357
<wangsets>
36-
<wangset name="Grass and Water" tile="15">
37-
<wangcornercolor name="Grass" color="#8ab022" tile="0" probability="1"/>
38-
<wangcornercolor name="Water" color="#378dc2" tile="23" probability="1"/>
39-
<wangtile tileid="0" wangid="0x10101010"/>
40-
<wangtile tileid="1" wangid="0x10101010"/>
41-
<wangtile tileid="2" wangid="0x10101010"/>
42-
<wangtile tileid="3" wangid="0x10101010"/>
43-
<wangtile tileid="4" wangid="0x10102010"/>
44-
<wangtile tileid="5" wangid="0x10201010"/>
45-
<wangtile tileid="6" wangid="0x20101010"/>
46-
<wangtile tileid="7" wangid="0x10101020"/>
47-
<wangtile tileid="8" wangid="0x10202020"/>
48-
<wangtile tileid="9" wangid="0x20202010"/>
49-
<wangtile tileid="10" wangid="0x20201020"/>
50-
<wangtile tileid="11" wangid="0x20102020"/>
51-
<wangtile tileid="12" wangid="0x10202010"/>
52-
<wangtile tileid="13" wangid="0x20201010"/>
53-
<wangtile tileid="14" wangid="0x20101020"/>
54-
<wangtile tileid="15" wangid="0x10102020"/>
55-
<wangtile tileid="16" wangid="0x10202010"/>
56-
<wangtile tileid="17" wangid="0x20201010"/>
57-
<wangtile tileid="18" wangid="0x20101020"/>
58-
<wangtile tileid="19" wangid="0x10102020"/>
59-
<wangtile tileid="20" wangid="0x10201020"/>
60-
<wangtile tileid="21" wangid="0x20102010"/>
61-
<wangtile tileid="22" wangid="0x20202020"/>
62-
<wangtile tileid="23" wangid="0x20202020"/>
8+
<wangset name="Terrains" type="corner" tile="15">
9+
<wangcolor name="Grass" color="#8ae234" tile="0" probability="1"/>
10+
<wangcolor name="Water" color="#729fcf" tile="22" probability="1"/>
11+
<wangtile tileid="0" wangid="0,1,0,1,0,1,0,1"/>
12+
<wangtile tileid="1" wangid="0,1,0,1,0,1,0,1"/>
13+
<wangtile tileid="2" wangid="0,1,0,1,0,1,0,1"/>
14+
<wangtile tileid="3" wangid="0,1,0,1,0,1,0,1"/>
15+
<wangtile tileid="4" wangid="0,1,0,2,0,1,0,1"/>
16+
<wangtile tileid="5" wangid="0,1,0,1,0,2,0,1"/>
17+
<wangtile tileid="6" wangid="0,1,0,1,0,1,0,2"/>
18+
<wangtile tileid="7" wangid="0,2,0,1,0,1,0,1"/>
19+
<wangtile tileid="8" wangid="0,2,0,2,0,2,0,1"/>
20+
<wangtile tileid="9" wangid="0,1,0,2,0,2,0,2"/>
21+
<wangtile tileid="10" wangid="0,2,0,1,0,2,0,2"/>
22+
<wangtile tileid="11" wangid="0,2,0,2,0,1,0,2"/>
23+
<wangtile tileid="12" wangid="0,1,0,2,0,2,0,1"/>
24+
<wangtile tileid="13" wangid="0,1,0,1,0,2,0,2"/>
25+
<wangtile tileid="14" wangid="0,2,0,1,0,1,0,2"/>
26+
<wangtile tileid="15" wangid="0,2,0,2,0,1,0,1"/>
27+
<wangtile tileid="16" wangid="0,1,0,2,0,2,0,1"/>
28+
<wangtile tileid="17" wangid="0,1,0,1,0,2,0,2"/>
29+
<wangtile tileid="18" wangid="0,2,0,1,0,1,0,2"/>
30+
<wangtile tileid="19" wangid="0,2,0,2,0,1,0,1"/>
31+
<wangtile tileid="20" wangid="0,2,0,1,0,2,0,1"/>
32+
<wangtile tileid="21" wangid="0,1,0,2,0,1,0,2"/>
33+
<wangtile tileid="22" wangid="0,2,0,2,0,2,0,2"/>
34+
<wangtile tileid="23" wangid="0,2,0,2,0,2,0,2"/>
6335
</wangset>
6436
</wangsets>
6537
</tileset>
66-
<layer name="Tile Layer 1" width="25" height="50">
38+
<layer id="1" name="Tile Layer 1" width="25" height="50">
6739
<data encoding="base64" compression="zlib">
68-
eJytl21zozAMhE0ghCOlpJAp+f+/9OIZ7fCwNaHt3QcNAduSdvXmPFJKj6csT7k+ZQ55i28PrF+ecgqpntLgvY73JtZq/Nb5LO+xlqULO7Ix2fkKe1237Gst+z6GXGz9DnzC4DYa7HdM2j8V9uhdWPKeM6ROW3/JHTFJ3gv88ncXGPLzT0hrPJXw8HsfZ9yXynSMERf5pP2Ukq+K+YQ90lkHL208B/BGH8UdfZIeiXzTmvSKp09w1Nu+nBMfoZ/nyF1+n4Nv+SL+G7wrh5fQ0yA+j7Cjc8xp6SRHzD3G4h66esR0NLvMM88rcj/E/ipt43pLa50OaZsHS9imvrPFQxhu8LXF98zBNa195QNxFpbB9IhP5kKV1pqmHfF1SWv/WiIOwqPvwn9La2547Lu07YPMUWFhf2zjO7nSPtljPVZmh/mstYxlDh1XxF/7hfuStn2PuVzDjvLZ8yx/+wy9A/iVP+wnFc76PKDvrCu939JaF3r25ov3qwrPGrqG0KGZcodOzhzxr3PMI+Lw2mSOKfZ3068c6MH/3eLN2ijFfkRclD/SPaW1NhTrm8WFPPlsYvyZGzNwqb+9gcsu1sg3+5Xzx34lWzN0NNApHRfsVz8mllP6is3npuq9xn6f//KnA49eJ6U7DfujzzDPV/Zk1ajPSuIo2dy79zivp4hVW7DxE/Gcpz9d2vb73whzxOMmTHs4zvZ8JV4Dytf8VK2UzmWM6nV7XHquMV5Zt2a7epifzzWQe9K0o1+547NBdb6EDfFUslGl9Q71iiOPO2e15uQrrrRWikmDNYnqWvr9jl8S9tDB1nTn0AzRXFddsxe/slEZt/zOGcK70Bz4eX8o1bjrEu7BbFP/A3Y0A3jXe4WB3LZm1/+/Ca96vd73ckpxXyB92vJXEvnSpS22PSxzgYculTHod184e9QP+V9TMeHd3eNBnaPZPeKKNVXCoH2aj7RxhGM0nZ5LLqpb9a0x7de5x+SavmJyrqSLM+RyoJ9YJsThuiP8X+x3aPWdvTzmveo9rXdll1c9UzV1hEd3HvVZ3pmPRPVytP+73O7VwHdwHIl6fGlNfelf9KrHDwU77Hu/saEer9rkf8T/YUNxLNVna3v0/S8kYST7
40+
<chunk x="0" y="0" width="16" height="16">
41+
eJxdk9sSgyAQQ7FSsVovtY76/19amEnGUx4yCrtks1m4QghXxpkxZnyFt/YuxFPGQ2gyImIFc0Yr9OLw+U35jeL+lpqLkMBbYjt0JdTl+Q351ua1NZScJ9CCY676qf971S7fl9CBY9Ca59intSzywfWcb2+aSnsrrZ2+E3qJ4Dan9fqMtR/QPVR5u2ad4If7jVh7jqe4I/ygbvdl/Zzjpfqek/1gr5P4m/Dv0RruOzZVnrr2ihod9ovOMdx3+RPuO7Cg7x055nAPKdzv4VTf1sF7wjfDOVkD31KnfftMDs7UsaRZjYK9pM/m8EzreZS9QzUm9fwDPTIJFw==
42+
</chunk>
43+
<chunk x="16" y="0" width="16" height="16">
44+
eJyVUu0KwjAMvGbVjU3F/XLv/6Q2kNCbShMDBytrch+pAJCGqaEaCp31e1S/+oqd/d+oKt2VDy2S4Od7FWctjqifPbiOrH7mYR2CHP8FPTP2zV5GtVuvzrnie5cS9B82Y2mYSYcj0v8yXt77P/lr/0p3J/OS9a/67+iZPU2P7y/iv5GHYv0r8vtn/ZrhRrP8LUX8B3qGM/oeMvtT/gfOeblvfwujegOrqALV
45+
</chunk>
46+
<chunk x="0" y="16" width="16" height="16">
47+
eJydUtkKwzAMy+FerOtGU0j//0tngwJamga2B5HEtuQrwTkXFF4hgIdtUIy4l/dbsShOnJ44keKe8G+wH8QzZCAQN1JsRtwO/aPiPnAXaHDds+KlSIoJ70y8Hf6Tai4aQjZP+onqmRCzUu0lN/chpJPALfYZb+bxHMV970Mob4mfKEer5kD63GOs4r277rGlx71Guv+DOvcviDcaQ3X2IO5av+3E/q39tbHD452wz3a80F5bPfP8WjNYO/w6Z823+rfODIR8BR8vlwUi
48+
</chunk>
49+
<chunk x="16" y="16" width="16" height="16">
50+
eJydUlsOwzAIg66vPdS11aTl/icdaLbCF8mGZJFIMTaQIiI3w2C4AH4ecfacxd0wgzMZFDwNNbNw7QXvX6jFGiNqZDHj7W7YwInetcHf8HY1nFL7n0IfWSiwBL/exyF989Pgd8DdvRSps8gi7oz5Kd+59viPs6K+58cf+uxlhT5n09In4t579cnjzjzzL/To0zN5R/DPnlr6/H9v8Om9h0995xfUuP7gn/+NXM+n1Lm0+B9/vgOT
51+
</chunk>
52+
<chunk x="0" y="32" width="16" height="16">
53+
eJy9k1EPgjAMhDsVQUFFXLL9/1/qFrt4XFrliYcvwLrj2ksaRCQAvT5j4Ua1Y6ErzIWLEgxqPRWedB5Vk7WeHH3UWqYeZtJmxztD/Uz/bOfZ8R/gXuVKMzGsf4FH0v4Hx9vqvzLBvZbBJOvZPT17Jc3c8vbyf9B9zhyx9C2D0ejlX//YwwJzjw4HR99DFnf9tvD8cZZF36vXST57gDvxS7/FY286+e7xGy8BCeE=
54+
</chunk>
55+
<chunk x="16" y="32" width="16" height="16">
56+
eJydkosKgzAMRaNO3Xzt4UD//0u9xVwMZbTpCgdRcm5CzSwid7CDUZ8DuIFKSZ0ZrGABE9hABxqnv2lGb+YYCv231k/mvS7wd52Z/TkTZ0gdzhvq1iivtH+ofUaZHv9jZqXv7R9qF60L/7zWDH7L+axr5Lrz3rgenx4z7O61Gb+KsO5Xzvsp8S3ch3997mPqtMov/+Xo/5BzV+MMurn+B0mZBM8=
57+
</chunk>
58+
<chunk x="0" y="48" width="16" height="16">
59+
eJxjZGBgYCQRiwAxJxSTqpcDiCWQ8CgYBaNg4AAADXoAkA==
60+
</chunk>
61+
<chunk x="16" y="48" width="16" height="16">
62+
eJwTZ2BgEAdiTiDmBWJGKBYAYgmoHD4AUwPCbFC9HGjio2AUjILBCQBLaAEh
63+
</chunk>
6964
</data>
7065
</layer>
7166
</map>

library/core/Tmx.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,7 @@ inline namespace v1 {
385385

386386
inflateInit2(&stream, 15 + 32); // allow to decode gzip and zlib format
387387

388-
int n = 0;
389388
for (;;) {
390-
n++;
391389
stream.next_out = tmp;
392390
stream.avail_out = TmpLength;
393391

@@ -437,7 +435,7 @@ inline namespace v1 {
437435
}
438436

439437
std::vector<uint8_t> parseDataBuffer(const pugi::xml_node node, TmxFormat format) {
440-
assert(node.name() == "data"s);
438+
assert(node.name() == "data"s || node.name() == "chunk"s);
441439

442440
std::vector<uint8_t> data;
443441

library/graphics/TileLayer.cc

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -211,17 +211,11 @@ inline namespace v1 {
211211

212212
RectF bounds = m_properties->computeCellBounds(coords);
213213
Vector2f position = bounds.getPosition();
214+
position.y += bounds.getSize().width - sheet.tileset.getTileSize().width;
214215
position += sheet.tileset.getOffset();
215-
Vector2f boxSize = bounds.getSize();
216+
Vector2f size = sheet.tileset.getTileSize();
216217

217-
// Keep the tile ratio
218-
const Vector2f tileSize = sheet.tileset.getTileSize();
219-
if ((tileSize.width / tileSize.height) != 1.0f) {
220-
const Vector2f ratio = tileSize / boxSize;
221-
boxSize *= ratio;
222-
}
223-
224-
RectF box = RectF::fromPositionSize(position, boxSize);
218+
bounds = RectF::fromPositionSize(position, size);
225219

226220
// texture coords
227221

@@ -231,10 +225,10 @@ inline namespace v1 {
231225

232226
Vertex vertices[4];
233227

234-
vertices[0].position = box.getTopLeft();
235-
vertices[1].position = box.getTopRight();
236-
vertices[2].position = box.getBottomLeft();
237-
vertices[3].position = box.getBottomRight();
228+
vertices[0].position = bounds.getTopLeft();
229+
vertices[1].position = bounds.getTopRight();
230+
vertices[2].position = bounds.getBottomLeft();
231+
vertices[3].position = bounds.getBottomRight();
238232

239233
vertices[0].texCoords = gf::priv::computeTextureCoords(textureCoords.getTopLeft());
240234
vertices[1].texCoords = gf::priv::computeTextureCoords(textureCoords.getTopRight());

0 commit comments

Comments
 (0)