message: Hmm... somehow forgot to add the functions needed to build properly.
diff: @@ -63,6 +63,44 @@ auto mheight = std::bind(map_height, std::ref(generator));
  auto myield = std::bind(mine_yield, std::ref(generator));
  +// ===============================================================================
  +// = STATIC/LOCAL FUNCTIONS
  +// ===============================================================================
  +using TileArray = std::vector<std::vector<std::vector<Tile> > >;
  +static void validateMineLocation(Point_2d& pt, TileArray& ta)
  +{
  + if (ta[0][pt.y()][pt.x()].mine())
  + {
  + //search around the tile for an empty spot
  + if (ta[0][pt.y() - 1][pt.x() - 1].mine()) { pt(pt.x() - 1, pt.y() - 1); }
  + if (ta[0][pt.y() - 1][pt.x()].mine()) { pt(pt.x(), pt.y() - 1); }
  + if (ta[0][pt.y() - 1][pt.x() + 1].mine()) { pt(pt.x() + 1, pt.y() - 1); }
  +
  + if (ta[0][pt.y()][pt.x() - 1].mine()) { pt(pt.x() - 1, pt.y()); }
  + if (ta[0][pt.y()][pt.x() + 1].mine()) { pt(pt.x() + 1, pt.y()); }
  +
  + if (ta[0][pt.y() + 1][pt.x() - 1].mine()) { pt(pt.x() - 1, pt.y() + 1); }
  + if (ta[0][pt.y() + 1][pt.x()].mine()) { pt(pt.x(), pt.y() + 1); }
  + if (ta[0][pt.y() + 1][pt.x() + 1].mine()) { pt(pt.x() + 1, pt.y() + 1); }
  + }
  +}
  +
  +
  +static void addMineSet(Point_2d & pt, Point2dList & plist, TileArray & ta, MineProductionRate rate)
  +{
  + validateMineLocation(pt, ta);
  +
  + ta[0][pt.y()][pt.x()].pushMine(new Mine(rate));
  + ta[0][pt.y()][pt.x()].index(TERRAIN_DOZED);
  +
  + plist.push_back(pt);
  +}
  +
  +
  +
  +// ===============================================================================
  +// = CLASS/PUBLIC FUNCTIONS
  +// ===============================================================================
  /**
  * C'tor
  */
  