1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-15 01:24:45 +02:00

Speedup generating empty map

This commit is contained in:
nordsoft
2022-09-05 21:42:33 +04:00
parent 2aab315f9c
commit 355df51033

View File

@ -54,13 +54,10 @@ std::unique_ptr<CMap> generateEmptyMap(CMapGenOptions & options)
map->width = options.getWidth(); map->width = options.getWidth();
map->height = options.getHeight(); map->height = options.getHeight();
map->twoLevel = options.getHasTwoLevels(); map->twoLevel = options.getHasTwoLevels();
map->initTerrain(); map->initTerrain();
map->getEditManager()->clearTerrain(&CRandomGenerator::getDefault()); map->getEditManager()->clearTerrain(&CRandomGenerator::getDefault());
map->getEditManager()->getTerrainSelection().selectRange(MapRect(int3(0, 0, 0), options.getWidth(), options.getHeight()));
map->getEditManager()->drawTerrain(Terrain("grass"), &CRandomGenerator::getDefault());
//window->controller.setMap(std::move(map));
return std::move(map); return std::move(map);
} }
@ -98,22 +95,15 @@ void WindowNewMap::on_okButtong_clicked()
auto progressBarWnd = new GeneratorProgress(generator, this); auto progressBarWnd = new GeneratorProgress(generator, this);
progressBarWnd->show(); progressBarWnd->show();
//std::thread generate(&::generateRandomMap, std::ref(generator), static_cast<MainWindow*>(parent()));
//progressBarWnd->update();
//generate.join();
//generateRandomMap(generator, static_cast<MainWindow*>(parent()));
auto f = std::async(std::launch::async, &CMapGenerator::generate, &generator); auto f = std::async(std::launch::async, &CMapGenerator::generate, &generator);
progressBarWnd->update(); progressBarWnd->update();
nmap = f.get(); nmap = f.get();
} }
else else
{ {
auto f = std::async(std::launch::async, &::generateEmptyMap, std::ref(mapGenOptions)); auto f = std::async(std::launch::async, &::generateEmptyMap, std::ref(mapGenOptions));
nmap = f.get(); nmap = f.get();
//nmap = generateEmptyMap(mapGenOptions, static_cast<MainWindow*>(parent()));
} }