Mercurial > projects > myrrdin
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; }