int main(int argc, char* argv[]) { clock_t tStart = clock(); Grid* grid = Utils::fileToGrid(argv[1]); PathFinder pathFinder = PathFinder(grid); pathFinder.AStar(grid->getStartPosition(), grid->getGoalPosition()); pathFinder.getInstructions(); printf("Execution time: %.5f seconds\n", (double)(clock() - tStart)/CLOCKS_PER_SEC); return 0; }
GameState::GameState(StateStack& stateStack, Context context, States::ID id) : State(stateStack, context, id), mMap(context.textures, context.fonts, &mobManager, &m_light_manager, mMutex), mapSize(mMap.size.x, mMap.size.y), mView(sf::Rect<float>(0, 0, context.window->getSize().x, context.window->getSize().y)), mNormalRender(), mDiffuseRender(), mNormalTextures(), mShader(), mobManager(), mPlayer(context.textures, context.fonts, &mobManager.mobs, &m_projectile_manager, &mMap.tiles, &m_light_manager), mPlayerController(&mPlayer, &pathFinder, &mMap, &mobManager), mParticleSystem(), mLoadingThread(&gen::Map::Gen, &mMap), mFirstLoad(true), m_lost(false), m_win(false) { mLoadingSprite.setTexture(*context.textures->getTexture(Textures::LoadingScreen)); pathFinder = PathFinder(&mMap.tiles, mMap.size); mobManager = MobManager(*context.textures, &mMap.tiles, &pathFinder, &m_projectile_manager.m_spells, &m_projectile_manager.m_arrows); m_projectile_manager = ProjectileManager(&mobManager, &mParticleSystem); mobManager.ptr_spells = &m_projectile_manager.m_spells; mobManager.ptr_arrows = &m_projectile_manager.m_arrows; mPlayer.ptr_tree = &mobManager.m_tree; mPlayer.setPosition(-1280, -720); mCurrentType = gen::Cave; mMap.type = mCurrentType; mCurrentMapTexture = Textures::Cave_Sheet; mView.zoom(1.f); mView.setCenter(-mView.getSize().x, -mView.getSize().y); sf::Vector2u size = context.window->getSize(); mNormalRender.create(size.x, size.y); mDiffuseRender.create(size.x, size.y); mShader.loadFromFile("resources/shaders/shader.frag", sf::Shader::Fragment); loadNormals(); context.mouse->setState(gui::Mouse::Attack); mShader.setParameter("texture", sf::Shader::CurrentTexture); mShader.setParameter("normal", mNormalRender.getTexture()); mShader.setParameter("Resolution", getContext().window->getSize().x, getContext().window->getSize().y); mShader.setParameter("AmbientColor", .1f, .1f, .1f, 0.f); }
static bool HandleMmapTestArea(ChatHandler* handler, const char* args) { float radius = 40.0f; handler->ExtractFloat((char**)&args, radius); CellPair pair(Strawberry::ComputeCellPair(handler->GetSession()->GetPlayer()->GetPositionX(), handler->GetSession()->GetPlayer()->GetPositionY())); Cell cell(pair); cell.SetNoCreate(); std::list<Creature*> creatureList; Creature* const creature = handler->getSelectedCreature(); Strawberry::AnyUnitInObjectRangeCheck go_check(handler->GetSession()->GetPlayer(), radius); Strawberry::CreatureListSearcher<Strawberry::AnyUnitInObjectRangeCheck> go_search(creature, creatureList, go_check); TypeContainerVisitor<Strawberry::CreatureListSearcher<Strawberry::AnyUnitInObjectRangeCheck>, GridTypeMapContainer> go_visit(go_search); // Get Creatures cell.Visit(pair, go_visit, *(handler->GetSession()->GetPlayer()->GetMap()), *(handler->GetSession()->GetPlayer()), radius); if (!creatureList.empty()) { handler->PSendSysMessage("Found %i Creatures.", creatureList.size()); uint32 paths = 0; uint32 uStartTime = getMSTime(); float gx,gy,gz; handler->GetSession()->GetPlayer()->GetPosition(gx,gy,gz); for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr) { PathFinder((*itr), gx, gy, gz); ++paths; } uint32 uPathLoadTime = getMSTimeDiff(uStartTime, getMSTime()); handler->PSendSysMessage("Generated %i paths in %i ms", paths, uPathLoadTime); } else handler->PSendSysMessage("No creatures in %f yard range.", radius); return true; }