in src/main/cpp/launcher/windows/src/Main.c [342:382]
void addProgressPosition(LauncherProperties * props, DWORD add) {
if(isSilent(props)) return;
if ( add > 0 ) {
int64t *mult1 = NULL;
int64t *mult2 = NULL;
int64t *currMult = NULL;
int comp1 = 0;
int comp2 = 0;
int goout = 0;
plus(currentProgressSize, add);
do {
multiply(mult1 = newint64_t(totalProgressSize->Low, totalProgressSize->High), lastCheckedStep);
multiply(mult2 = newint64_t(totalProgressSize->Low, totalProgressSize->High), lastCheckedStep + 1);
multiply(currMult = newint64_t(currentProgressSize->Low, currentProgressSize->High), steps);
comp1 = compareInt64t(currMult, mult1);
if (comp1 == 0) {
goout = 1;
} else {
comp2 = compareInt64t(currMult, mult2);
if (comp2 == 0) {
lastCheckedStep++;
goout = 1;
} else if (comp1 > 0 && comp2 < 0) {
goout = 1;
} else {
lastCheckedStep++;
}
}
FREE(mult1);
FREE(mult2);
FREE(currMult);
if(lastCheckedStep >= steps) {
lastCheckedStep = steps;
goout = 1;
}
} while (!goout);
SendMessage(hwndPB, PBM_SETPOS, lastCheckedStep, 0);
}
}