I did check again for another Objector version, and i found one, however older than the one i sent you.
One is from june 2015, the other from october 2015 (the one from the zip).

I am using the word "smooth zooming" by comparison with the smooth scrolling that was available in some windows controls (Listbox)
To better see what i call smooth zooming change both the
maxK and
ry parameters into the red code section.
case WM_MOUSEWHEEL:
if (GetFocus() != hWnd) { SetFocus(hWnd); }
ry = float(HIINT(wParam)) / 120.0f * gP.rCameraPos[2] / CAMERA_FOVY;
maxK = 2;
if (gP.bEnableSmoothZoom) { // 10-12-2015
//maxK = 11; ry = ry / 10;
maxK = 25; ry = ry / 40.0f;
}
// nBreak += 1;
for (K = 1; K < maxK; K++) {
gP.rCameraPos[2] -= ry;
if (gP.rCameraPos[2] > CAMERA_ZFAR - 1) {
gP.rCameraPos[2] = CAMERA_ZFAR - 1;
} else if (gP.rCameraPos[2] < CAMERA_ZNEAR) {
gP.rCameraPos[2] = CAMERA_ZNEAR;
}
gl_AdjustNearPlane();
gP.bRedraw = TRUE; // Redraw the OpenGL scene
if (maxK > 2) { gl_DrawScene(); Sleep(0); }
}
// myDoEvents(gP.hMain);
// nBreak = 0;
break;The problem is that i am not sure that these values (working fine on my computer) would produce the same effect on others.
I could add inertia, changing the ry value within the loop.
But i want to get something working the same on all computers.