Skip to content

Commit d5d248c

Browse files
authoredMay 12, 2018
Camera: Improve subpixel movement (#7319)
1 parent 9dd432c commit d5d248c

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed
 

‎src/game.cpp

+13-10
Original file line numberDiff line numberDiff line change
@@ -2333,13 +2333,15 @@ void Game::updateCameraDirection(CameraOrientation *cam, float dtime)
23332333
}
23342334
#endif
23352335

2336-
if (m_first_loop_after_window_activation)
2336+
if (m_first_loop_after_window_activation) {
23372337
m_first_loop_after_window_activation = false;
2338-
else
2338+
2339+
input->setMousePos(driver->getScreenSize().Width / 2,
2340+
driver->getScreenSize().Height / 2);
2341+
} else {
23392342
updateCameraOrientation(cam, dtime);
2343+
}
23402344

2341-
input->setMousePos((driver->getScreenSize().Width / 2),
2342-
(driver->getScreenSize().Height / 2));
23432345
} else {
23442346

23452347
#ifndef ANDROID
@@ -2361,17 +2363,18 @@ void Game::updateCameraOrientation(CameraOrientation *cam, float dtime)
23612363
cam->camera_pitch = g_touchscreengui->getPitch();
23622364
} else {
23632365
#endif
2364-
2365-
s32 dx = input->getMousePos().X - (driver->getScreenSize().Width / 2);
2366-
s32 dy = input->getMousePos().Y - (driver->getScreenSize().Height / 2);
2366+
v2s32 center(driver->getScreenSize().Width / 2, driver->getScreenSize().Height / 2);
2367+
v2s32 dist = input->getMousePos() - center;
23672368

23682369
if (m_invert_mouse || camera->getCameraMode() == CAMERA_MODE_THIRD_FRONT) {
2369-
dy = -dy;
2370+
dist.Y = -dist.Y;
23702371
}
23712372

2372-
cam->camera_yaw -= dx * m_cache_mouse_sensitivity;
2373-
cam->camera_pitch += dy * m_cache_mouse_sensitivity;
2373+
cam->camera_yaw -= dist.X * m_cache_mouse_sensitivity;
2374+
cam->camera_pitch += dist.Y * m_cache_mouse_sensitivity;
23742375

2376+
if (dist.X != 0 || dist.Y != 0)
2377+
input->setMousePos(center.X, center.Y);
23752378
#ifdef HAVE_TOUCHSCREENGUI
23762379
}
23772380
#endif

0 commit comments

Comments
 (0)
Please sign in to comment.