private void drawline(GOut g, Coord d, int med, int id, Coord c0, Coord cx,
			Coord sc) {

		Coord m = d.abs();
		Coord r = m.swap();
		Coord off = m.mul(med).add(d.add(m).div(2));
		int min = c0.mul(r).sum();
		int max = cx.mul(r).sum() + 1;
		boolean t = false;
		int begin = min;
		int ol = 1 << id;
		g.chcolor(olc[id]);
		for (int i = min; i <= max; i++) {
			Coord c = r.mul(i).add(m.mul(med)).add(d);
			int ol2;
			try {
				ol2 = getol(c);
			} catch (Loading e) {
				ol2 = ol;
			}
			if (t) {
				if (((ol2 & ol) != 0) || i == max) {
					t = false;
					Coord cb = m2s(tileSize.mul(r.mul(begin).add(off))).add(sc);
					Coord ce = m2s(tileSize.mul(r.mul(i).add(off))).add(sc);
					g.line(cb, ce, 2);
				}
			} else {
				if ((ol2 & ol) == 0) {
					t = true;
					begin = i;
				}
			}
		}
	}