/********************************************************* * getLines returns a representation of each line from * * the input files as a map<string, vector<string> > to * * be passed to the user defined reduce function. * * ******************************************************/ void RunReduce::getLines(unorderedMap &keyValues) { std::vector<std::string> lines; std::vector<std::string>::const_iterator linesIT; merger<std::string>(lines, files_); for(linesIT = lines.begin();linesIT!=lines.end();linesIT++) { std::string key(getKey(*linesIT)); std::vector<std::string> values; parseMapLine(values, *linesIT); if(keyValues.find(key) == keyValues.end()) { //Not in structure strVectorPtr initialValue(new std::vector<std::string>(values)); keyValues[key] = initialValue; } else { //Contained in structure std::vector<std::string>::const_iterator valuesIT = values.begin(); std::vector<std::string>::const_iterator end = values.end(); while(valuesIT != end) { keyValues[key]->push_back(*valuesIT); ++valuesIT; } } } }
void MapLoader::loadFromFile() { std::fstream mapFile; mapFile.open("data/map.txt"); if (!mapFile.good()) return; std::string stringLine; prepareMapVector(); while (!mapFile.eof()){ std::getline(mapFile, stringLine); if (stringLine != "[---]"){ parseMapLine(stringLine); } else{ _mapsData.push_back(_map); prepareMapVector(); } } _mapsData.push_back(_map); }
std::vector<std::vector<std::vector<char>>> MapLoader::loadSpecialMaps() { std::vector<std::vector<std::vector<char>>> special_maps; std::string stringline; prepareMapVector(); /* xxxExxxxxxx x.x.x..xx.x xx.xx.x...x x...x..x..x xx....x.x.x xx.......x xExxxxxxx */ stringline = "xxxExxxxxxx"; parseMapLine(stringline); stringline = "x.x.x..xx.x"; parseMapLine(stringline); stringline = "xx.xx.x...x"; parseMapLine(stringline); stringline = "x...x..x..x"; parseMapLine(stringline); stringline = "xx....x.x.x"; parseMapLine(stringline); stringline = " xx.......x"; parseMapLine(stringline); stringline = " xExxxxxxx"; parseMapLine(stringline); special_maps.push_back(_map); prepareMapVector(); /* xxxxx E...xx xxx..xxx xx...xx xx...x xxxEx */ stringline = "xxxxx"; parseMapLine(stringline); stringline = "E...xx"; parseMapLine(stringline); stringline = "xxx..xx"; parseMapLine(stringline); stringline = " xx..xxx"; parseMapLine(stringline); stringline = " xx...x"; parseMapLine(stringline); stringline = " xxxEx"; parseMapLine(stringline); special_maps.push_back(_map); prepareMapVector(); /* xxxExxx x.....x x.....x x.....x xxxExxx */ stringline = "xxxExxx"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "xxxExxx"; parseMapLine(stringline); special_maps.push_back(_map); prepareMapVector(); /* xxxExxx x.....x x.....x x.....x xxxxxxx */ stringline = "xxxExxx"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "x.....x"; parseMapLine(stringline); stringline = "xxxxxxx"; parseMapLine(stringline); special_maps.push_back(_map); return special_maps; }