private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { clearRoom(); //add layout objects ! string f = (string)listBox1.Items[listBox1.SelectedIndex]; BinaryReader br = new BinaryReader(new FileStream("Layout\\" + f, FileMode.Open, FileAccess.Read)); string type = br.ReadString(); List <SaveObject> data = new List <SaveObject>(); while (br.BaseStream.Position != br.BaseStream.Length) { data.Add(new SaveObject(br, typeof(Room_Object))); } foreach (SaveObject o in data) { if (o.type == typeof(Room_Object)) { Room_Object ro = scene.room.addObject(o.tid, (byte)(o.x), (byte)(o.y), o.size, o.layer); if (ro != null) { ro.setRoom(scene.room); ro.options = o.options; scene.room.tilesObjects.Add(ro); } } } scene.room.reloadGfx(); scene.DrawRoom(); scene.Refresh(); }
public void readTiles(BinaryReader br) { short count = br.ReadInt16(); for (int j = 0; j < count; j++) { //<Tiles Objects Data> //short ID ,byte X, byte Y, byte Layer short id = br.ReadInt16(); byte x = br.ReadByte(); byte y = br.ReadByte(); byte size = br.ReadByte(); byte layer = br.ReadByte(); ObjectOption options = (ObjectOption)br.ReadByte(); if ((options & ObjectOption.Door) == ObjectOption.Door) { Room_Object o = new object_door(id, x, y, size, layer); if (o != null) { o.options = (ObjectOption)options; o.setRoom(activeScene.room); activeScene.room.tilesObjects.Add(o); } } else { Room_Object o = activeScene.room.addObject(id, x, y, size, layer); if (o != null) { o.options = (ObjectOption)options; o.setRoom(activeScene.room); activeScene.room.tilesObjects.Add(o); } } } }