diff src/xmlmap.d @ 3:a9af6ec19195

working map and tileset loading
author fred@reichbier.de
date Thu, 17 Jul 2008 21:34:53 +0200
parents fc2f936a961c
children
line wrap: on
line diff
--- a/src/xmlmap.d	Thu Jul 17 21:06:43 2008 +0200
+++ b/src/xmlmap.d	Thu Jul 17 21:34:53 2008 +0200
@@ -8,6 +8,9 @@
 import tango.io.Stdout; // TODO
 import tools;
 import imagecache;
+import dsfml.system.all;
+import Text = tango.text.Util;
+
 
 alias XmlPath!(char).NodeSet NodeSet;
 alias Document!(char).Node NodeImpl;
@@ -38,9 +41,20 @@
     auto tiles_node = root.child.nodes[0];
     char[] tileset_file = tiles_node.getAttribute("tileset").value;
     auto tilemap = new Tilemap(parse_tileset(cache, read_file_contents(tileset_file)), width, height, 32, 32); // TODO: variable tile size
+    int layer_id=0;
     foreach(NodeImpl layer_node; tiles_node.query["layer"].nodes) {
 	int tile_width = Integer.parse(layer_node.getAttribute("tilewidth").value);
 	int tile_height = Integer.parse(layer_node.getAttribute("tileheight").value);
+	tilemap.layer_tsizes[layer_id] = Vector2i(tile_width, tile_height);
+	char[][] content_ = Text.delimit(Text.trim(layer_node.value), ",");
+	int i=0;
+	for(int x=0; x < width; x++) {
+	    for(int y=0; y < height; y++) {
+		tilemap.map[layer_id][x][y] = Integer.parse(content_[i]);
+		i++;
+	    }
+	}
+	layer_id++;
     }
     return tilemap;
 }