Fix navmesh cache progress bar jumps

When initial approximation of maximum progress based on numer of cells is too
high comparing to real number of navmesh tiles.
pull/3225/head
elsid 3 years ago
parent cc97c4450a
commit 8fedca5780
No known key found for this signature in database
GPG Key ID: B845CB9FEE18AB40

@ -457,11 +457,18 @@ void Launcher::DataFilesPage::updateNavMeshProgress()
QRegularExpressionMatch match = pattern.match(text);
if (!match.hasMatch())
return;
int maximum = match.captured(2).toInt();
int value = match.captured(1).toInt();
const int maximum = match.captured(2).toInt();
if (text.contains("cell"))
maximum *= 100;
ui.navMeshProgressBar->setMaximum(std::max(ui.navMeshProgressBar->maximum(), maximum));
ui.navMeshProgressBar->setValue(match.captured(1).toInt());
ui.navMeshProgressBar->setMaximum(maximum * 100);
else if (maximum > ui.navMeshProgressBar->maximum())
ui.navMeshProgressBar->setMaximum(maximum);
else
value += static_cast<int>(std::round(
(ui.navMeshProgressBar->maximum() - maximum)
* (static_cast<float>(value) / static_cast<float>(maximum))
));
ui.navMeshProgressBar->setValue(value);
}
void Launcher::DataFilesPage::navMeshToolFinished(int exitCode, QProcess::ExitStatus exitStatus)

Loading…
Cancel
Save