throws InvalidImageException {
MapData mapData = Game.getMapData();
Rectangle fieldRect = buffer.getFieldRect();
Coordinate fieldStart = fieldRect.getTopLeftCorner();
boolean[][] markedFields = buffer.getMarkedFields();
Graphics2D graphics = buffer.getGraphics();
Shape oldClip = graphics.getClip(); // Is this really necessary?
int arSize = fieldRect.getWidth() + 1 + fieldRect.getHeight() + 1;
boolean[][] markedSections = calculateMarkedSections(markedFields, arSize);
int startx = fieldRect.getHeight();
int endx = startx + 1;
int startDX = -1;
int endDX = 1;
// THINK ABOUT the tries to draw non-existent fields - at moment they
// get prevented by "if"
int refModValue = (markedFields[0].length - 1) % 2;
for (int y = 0; y < markedSections[0].length; y++) {
for (int x = startx; x <= endx; x++) {
if (markedSections[x][y]) {
Coordinate scrPos = new Coordinate();
Coordinate unscrPos = new Coordinate();
unscrPos.x = (y + x - markedFields[0].length + 1) / 2;
unscrPos.y = y - unscrPos.x;
unscrPos = unscrPos.add(fieldStart);
Coordinate imPos = getAbsImagePaintCoord(unscrPos).
add(0, 2 * halfCellHeight).
sub(buffer.getPosition());
boolean left = ((x + y) % 2 == refModValue);