//Puzzle functions void World::loadPuzzles(string file) { //Load puzzles char buffer[64]; string dataText, argText; ifstream lvl(file); int phase = 0; //Helper variables for loading puzzles PartData data; string type, dynamic; vector <PartData> parts; Puzzle *puzzle = NULL; int bonus, challenge, time, par, parX, parY; //Load level while (!lvl.eof()) { //Read to buffer lvl >> buffer; argText = buffer; dataText = buffer; dataText.erase(std::remove(dataText.begin(), dataText.end(), ','), dataText.end()); if (dataText.find("door") != -1) { //Done with description line, start phase 1 phase = 1; } else if (phase && dataText.find("puzzle") != -1) { lvl >> buffer; if (puzzle != NULL) { puzzle->setParts(parts); puzzle->setChallenge(challenge); puzzle->setBonus(bonus); puzzle->setTime(time); puzzle->setParticleSpawn(par, parX, parY); puzzles->push_back(puzzle); } puzzle = new Puzzle(); parts.clear(); bonus = 0; challenge = 0; time = -1; par = 0; parX = 0; parY = 0; } else if (phase) {