Skip to content
Permalink
Browse files

Camera: Fix shootline line offsets II (#9730)

  • Loading branch information
SmallJoker committed Apr 23, 2020
1 parent 6ba44d7 commit ce5b0932f8e17244bd6c1e307f1fce76b16e6474
Showing with 14 additions and 6 deletions.
  1. +14 −6 src/client/game.cpp
@@ -3029,7 +3029,6 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
{
LocalPlayer *player = client->getEnv().getLocalPlayer();

const v3f head_position = camera->getHeadPosition();
const v3f camera_direction = camera->getDirection();
const v3s16 camera_offset = camera->getOffset();

@@ -3045,13 +3044,22 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)

core::line3d<f32> shootline;

if (camera->getCameraMode() != CAMERA_MODE_THIRD_FRONT) {
shootline = core::line3d<f32>(head_position,
head_position + camera_direction * BS * d);
} else {
switch (camera->getCameraMode()) {
case CAMERA_MODE_FIRST:
// Shoot from camera position, with bobbing
shootline.start = camera->getPosition();
break;
case CAMERA_MODE_THIRD:
// Shoot from player head, no bobbing
shootline.start = camera->getHeadPosition();
break;
case CAMERA_MODE_THIRD_FRONT:
shootline.start = camera->getHeadPosition();
// prevent player pointing anything in front-view
shootline = core::line3d<f32>(head_position, head_position);
d = 0;
break;
}
shootline.end = shootline.start + camera_direction * BS * d;

#ifdef HAVE_TOUCHSCREENGUI

0 comments on commit ce5b093

Please sign in to comment.
You can’t perform that action at this time.