diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-04 10:50:07 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-04 10:50:07 +0200 |
commit | b9f8f0a232d9d00a323084e0e4807b3e3469720d (patch) | |
tree | 564679fd09da5cb4ef7da82dde5b7d8d5c2d7aee /src/client/game.cpp | |
parent | af085acbd32707576ff9e67c3b267ad6cf267288 (diff) | |
download | dragonfireclient-b9f8f0a232d9d00a323084e0e4807b3e3469720d.tar.xz |
The Robot Update
Diffstat (limited to 'src/client/game.cpp')
-rw-r--r-- | src/client/game.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp index b9e7e4d9b..ba360a153 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -238,11 +238,9 @@ void Game::run() { ProfilerGraph graph; RunStats stats = { 0 }; - CameraOrientation cam_view_target = { 0 }; - CameraOrientation cam_view = { 0 }; FpsControl draw_times = { 0 }; f32 dtime; // in seconds - + /* Clear the profiler */ Profiler::GraphValues dummyvalues; g_profiler->graphGet(dummyvalues); @@ -309,9 +307,8 @@ void Game::run() processClientEvents(&cam_view_target); updateCamera(draw_times.busy_time, dtime); updateSound(dtime); - if (! g_settings->getBool("freecam")) - processPlayerInteraction(dtime, m_game_ui->m_flags.show_hud, - m_game_ui->m_flags.show_debug); + processPlayerInteraction(dtime, m_game_ui->m_flags.show_hud, + m_game_ui->m_flags.show_debug); updateFrame(&graph, &stats, dtime, cam_view); updateProfilerGraphs(&graph); @@ -2814,7 +2811,7 @@ void Game::handlePointingAtObject(const PointedThing &pointed, bool do_punch = false; bool do_punch_damage = false; - if (runData.object_hit_delay_timer <= 0.0) { + if (runData.object_hit_delay_timer <= 0.0 || g_settings->getBool("spamclick")) { do_punch = true; do_punch_damage = true; runData.object_hit_delay_timer = object_hit_delay; @@ -3338,10 +3335,15 @@ void Game::freecamChangedCallback(const std::string &setting_name, void *data) Game *game = (Game *) data; LocalPlayer *player = game->client->getEnv().getLocalPlayer(); static v3f player_pos = player->getPosition(); - if (g_settings->getBool("freecam")) + static v3f player_speed = player->getSpeed(); + if (g_settings->getBool("freecam")) { player_pos = player->getPosition(); - else + player_speed = player->getSpeed(); + game->camera->setCameraMode(CAMERA_MODE_FIRST); + } else { player->setPosition(player_pos); + player->setSpeed(player_speed); + } game->updatePlayerCAOVisibility(); } |