// insert a tile of type into terrain array
private void insertTile(int row, int col, int type) {
switch (type) {
case GRASS:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSTL:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSTC:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSTR:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSML:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSMR:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSBL:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSBC:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case GRASSBR:
terrain[row][col] = new GrassTile(row * TILE_SIZE, col * TILE_SIZE, type);
break;
case WATER:
terrain[row][col] = new WaterTile(m, row * TILE_SIZE, col * TILE_SIZE);
break;
case TREE: