diff options
author | Gaƫl C <gael-de-sailly@netc.eu> | 2018-12-01 10:01:32 +0100 |
---|---|---|
committer | SmallJoker <SmallJoker@users.noreply.github.com> | 2018-12-01 10:01:32 +0100 |
commit | 327bad2eafb8cfc05b7f831992be5700a167a53c (patch) | |
tree | 682d70aca114d7d350ed23b22075c96c2fc549be /src/client/game.cpp | |
parent | dcf58a3ad0c1092b3537039ee55892bb7dc83dee (diff) | |
download | minetest-327bad2eafb8cfc05b7f831992be5700a167a53c.tar.gz minetest-327bad2eafb8cfc05b7f831992be5700a167a53c.tar.bz2 minetest-327bad2eafb8cfc05b7f831992be5700a167a53c.zip |
Added pitch fly mode (#7817)
In pitch fly mode, you fly to the exact direction you are pointing at, using the forward key. Other move directions are also pitched accordingly.
It allows smoother and more complex movements.
Can be enabled/disabled by L key by default (set keymap_pitchfly in minetest.conf)
Diffstat (limited to 'src/client/game.cpp')
-rw-r--r-- | src/client/game.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp index 6cf6723e9..418b412fa 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -701,6 +701,7 @@ protected: void openConsole(float scale, const wchar_t *line=NULL); void toggleFreeMove(); void toggleFreeMoveAlt(); + void togglePitchFly(); void toggleFast(); void toggleNoClip(); void toggleCinematic(); @@ -1896,6 +1897,8 @@ void Game::processKeyInput() toggleFreeMove(); } else if (wasKeyDown(KeyType::JUMP)) { toggleFreeMoveAlt(); + } else if (wasKeyDown(KeyType::PITCHFLY)) { + togglePitchFly(); } else if (wasKeyDown(KeyType::FASTMOVE)) { toggleFast(); } else if (wasKeyDown(KeyType::NOCLIP)) { @@ -2107,6 +2110,19 @@ void Game::toggleFreeMoveAlt() } +void Game::togglePitchFly() +{ + bool pitch_fly = !g_settings->getBool("pitch_fly"); + g_settings->set("pitch_fly", bool_to_cstr(pitch_fly)); + + if (pitch_fly) { + m_game_ui->showTranslatedStatusText("Pitch fly mode enabled"); + } else { + m_game_ui->showTranslatedStatusText("Pitch fly mode disabled"); + } +} + + void Game::toggleFast() { bool fast_move = !g_settings->getBool("fast_move"); |