int smallestRouteFile(const string &f) { int i, r; Grid v; Level l; //Init v = readFile(f); //Copy left side numbers for(i = 0; i < v.size(); i++) l.push_back(v[i][0]); //Calc smallest to right for(i = 1; i < v.size(); i++) l = NextLevel(v, l, i); //get smallest at first position sort(l.begin(), l.end()); return l[0]; }
SymbolTable::iterator SymbolTable::addLevel(Level lev, SymbolTable::iterator before){ auto chk = lookup.find(lev.name); if(chk != lookup.end()){ iterator iter = chk->second; iter->merge(lev.begin(), lev.end()); return iter; }else if(before!=levelList.end()){ double ind1 = before->getIndex(); double ind2 = ind1-10; if(ind2 < 0) throw TableException(); else if(!before->prev.empty()) ind2 = getLevel(before->prev)->getIndex(); lev.setIndex((ind1+ind2)/2); lev.prev = before->prev; before->prev = lev.name; }else{ lev.setIndex(mx_ind); mx_ind+=1e6; lev.prev = (--levelList.end())->name; } levelList.push_back(lev); return lookup[lev.name] = --levelList.end(); }
void Game::run(){ sf::Clock clock; c::initialize(); logger::timing("Constants initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds."); clock.restart(); gi::initalize(window); gi::smoothCamera = true; logger::timing("Graphics interface initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds."); gi::renderWindow->setMouseCursorVisible(false); Level* level = NULL; Time lastTime; while(gi::startOfFrame()){ if(!managerInitialized){ gi::darken(1.0f); gi::endOfFrame(); clock.restart(); manager = new Manager(); manager->initialize(window); logger::timing("Manager initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds."); controller = new Controller(); controller->initialize(manager); managerInitialized = true; continue; } if(level == NULL){ gi::darken(1.0f); gi::endOfFrame(); clock.restart(); level = new Level(manager, controller); level->begin(); logger::timing("Level initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds."); clock.restart(); } if(manager->inputManager->isPressed(Keyboard::Escape)){ window->close(); } Time time = clock.getElapsedTime(); float dt = (time - lastTime).asSeconds(); gi::collisionBoxes = manager->inputManager->isPressed(Keyboard::C); manager->tick(window, time, dt); window->clear(); level->tick(); manager->menuManager->draw(time); lastTime = time; gi::endOfFrame(); } delete level; manager->finalize(window); delete manager; gi::finalize(); delete controller; }