diff options
| author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-07-28 13:51:32 +0200 |
|---|---|---|
| committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-07-28 13:51:32 +0200 |
| commit | f7a042223f9c82c7764c0df3a3531bda04e9ad64 (patch) | |
| tree | 1d227816dc680ea883ba16a385c2151714e65961 /src/client | |
| parent | 344fddc1727f637b3c4e2a9b88844d952b91fe4f (diff) | |
| download | dragonfireclient-f7a042223f9c82c7764c0df3a3531bda04e9ad64.tar.xz | |
Added cheat Menu
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/client.cpp | 2 | ||||
| -rw-r--r-- | src/client/game.cpp | 37 | ||||
| -rw-r--r-- | src/client/game.h | 4 | ||||
| -rw-r--r-- | src/client/gameui.cpp | 9 | ||||
| -rw-r--r-- | src/client/gameui.h | 2 | ||||
| -rw-r--r-- | src/client/inputhandler.cpp | 6 | ||||
| -rw-r--r-- | src/client/keys.h | 6 |
7 files changed, 60 insertions, 6 deletions
diff --git a/src/client/client.cpp b/src/client/client.cpp index d2330ecae..f7fc637db 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -206,6 +206,8 @@ void Client::loadMods() // Run a callback when mods are loaded m_script->on_mods_loaded(); + m_script->init_cheats(); + // Create objects if they're ready if (m_state == LC_Ready) m_script->on_client_ready(m_env.getLocalPlayer()); diff --git a/src/client/game.cpp b/src/client/game.cpp index b366ac0a3..3c3ce555d 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -593,11 +593,20 @@ bool Game::initGui() // Chat backend and console gui_chat_console = new GUIChatConsole(guienv, guienv->getRootGUIElement(), -1, chat_backend, client, &g_menumgr); + if (!gui_chat_console) { *error_message = "Could not allocate memory for chat console"; errorstream << *error_message << std::endl; return false; } + + m_cheat_menu = new CheatMenu(client); + + if (!m_cheat_menu) { + *error_message = "Could not allocate memory for cheat menu"; + errorstream << *error_message << std::endl; + return false; + } #ifdef HAVE_TOUCHSCREENGUI @@ -1084,6 +1093,16 @@ void Game::processKeyInput() toggleKillaura(); } else if (wasKeyDown(KeyType::FREECAM)) { toggleFreecam(); + } else if (wasKeyDown(KeyType::SELECT_UP)) { + m_cheat_menu->selectUp(); + } else if (wasKeyDown(KeyType::SELECT_DOWN)) { + m_cheat_menu->selectDown(); + } else if (wasKeyDown(KeyType::SELECT_LEFT)) { + m_cheat_menu->selectLeft(); + } else if (wasKeyDown(KeyType::SELECT_RIGHT)) { + m_cheat_menu->selectRight(); + } else if (wasKeyDown(KeyType::SELECT_CONFIRM)) { + m_cheat_menu->selectConfirm(); #if USE_SOUND } else if (wasKeyDown(KeyType::MUTE)) { if (g_settings->getBool("enable_sound")) { @@ -1137,6 +1156,8 @@ void Game::processKeyInput() m_game_ui->toggleChat(); } else if (wasKeyDown(KeyType::TOGGLE_FOG)) { toggleFog(); + } else if (wasKeyDown(KeyType::TOGGLE_CHEAT_MENU)) { + m_game_ui->toggleCheatMenu(); } else if (wasKeyDown(KeyType::TOGGLE_UPDATE_CAMERA)) { toggleUpdateCamera(); } else if (wasKeyDown(KeyType::TOGGLE_DEBUG)) { @@ -2272,7 +2293,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) if (g_settings->getBool("increase_tool_range")) d++; if (g_settings->getBool("increase_tool_range_plus")) - d = 500; + d = 1000; core::line3d<f32> shootline; @@ -3187,13 +3208,19 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, graph->draw(10, screensize.Y - 10, driver, g_fontengine->getFont()); /* + Cheat menu + */ + + if (m_game_ui->m_flags.show_cheat_menu && ! gui_chat_console->isOpen()) + m_cheat_menu->draw(driver, m_game_ui->m_flags.show_debug); + + /* Damage flash */ - if (runData.damage_flash > 0.0f && ! g_settings->getBool("no_hurt_cam")) { + if (runData.damage_flash > 0.0f) { video::SColor color(runData.damage_flash, 180, 0, 0); - driver->draw2DRectangle(color, - core::rect<s32>(0, 0, screensize.X, screensize.Y), - NULL); + if (! g_settings->getBool("no_hurt_cam")) + driver->draw2DRectangle(color, core::rect<s32>(0, 0, screensize.X, screensize.Y), NULL); runData.damage_flash -= 384.0f * dtime; } diff --git a/src/client/game.h b/src/client/game.h index af34fb056..21651c510 100644 --- a/src/client/game.h +++ b/src/client/game.h @@ -41,6 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "filesys.h" #include "gettext.h" +#include "gui/cheatMenu.h" #include "gui/guiChatConsole.h" #include "gui/guiConfirmRegistration.h" #include "gui/guiFormSpecMenu.h" @@ -855,7 +856,7 @@ public: ISoundManager *sound = nullptr; bool sound_is_dummy = false; SoundMaker *soundmaker = nullptr; - + ChatBackend *chat_backend = nullptr; LogOutputBuffer m_chat_log_buf; @@ -865,6 +866,7 @@ public: std::unique_ptr<GameUI> m_game_ui; GUIChatConsole *gui_chat_console = nullptr; // Free using ->Drop() + CheatMenu *m_cheat_menu = nullptr; MapDrawControl *draw_control = nullptr; Camera *camera = nullptr; Clouds *clouds = nullptr; // Free using ->Drop() diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp index a20c2c40d..d34f7343c 100644 --- a/src/client/gameui.cpp +++ b/src/client/gameui.cpp @@ -275,6 +275,15 @@ void GameUI::toggleChat() showTranslatedStatusText("Chat hidden"); } +void GameUI::toggleCheatMenu() +{ + m_flags.show_cheat_menu = !m_flags.show_cheat_menu; + if (m_flags.show_cheat_menu) + showTranslatedStatusText("Cheat Menu shown"); + else + showTranslatedStatusText("Cheat Menu hidden"); +} + void GameUI::toggleHud() { m_flags.show_hud = !m_flags.show_hud; diff --git a/src/client/gameui.h b/src/client/gameui.h index 67c6a9921..0b6298c78 100644 --- a/src/client/gameui.h +++ b/src/client/gameui.h @@ -59,6 +59,7 @@ public: bool show_minimap = false; bool show_debug = true; bool show_profiler_graph = false; + bool show_cheat_menu = true; }; void init(); @@ -91,6 +92,7 @@ public: void updateProfiler(); void toggleChat(); + void toggleCheatMenu(); void toggleHud(); void toggleProfiler(); diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index 3c39976ec..b78304d96 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -62,6 +62,7 @@ void KeyCache::populate() key[KeyType::TOGGLE_HUD] = getKeySetting("keymap_toggle_hud"); key[KeyType::TOGGLE_CHAT] = getKeySetting("keymap_toggle_chat"); key[KeyType::TOGGLE_FOG] = getKeySetting("keymap_toggle_fog"); + key[KeyType::TOGGLE_CHEAT_MENU] = getKeySetting("keymap_toggle_cheat_menu"); key[KeyType::TOGGLE_UPDATE_CAMERA] = getKeySetting("keymap_toggle_update_camera"); key[KeyType::TOGGLE_DEBUG] = getKeySetting("keymap_toggle_debug"); key[KeyType::TOGGLE_PROFILER] = getKeySetting("keymap_toggle_profiler"); @@ -76,6 +77,11 @@ void KeyCache::populate() key[KeyType::FULLBRIGHT] = getKeySetting("keymap_toggle_fullbright"); key[KeyType::KILLAURA] = getKeySetting("keymap_toggle_killaura"); key[KeyType::FREECAM] = getKeySetting("keymap_toggle_freecam"); + key[KeyType::SELECT_UP] = getKeySetting("keymap_select_up"); + key[KeyType::SELECT_DOWN] = getKeySetting("keymap_select_down"); + key[KeyType::SELECT_LEFT] = getKeySetting("keymap_select_left"); + key[KeyType::SELECT_RIGHT] = getKeySetting("keymap_select_right"); + key[KeyType::SELECT_CONFIRM] = getKeySetting("keymap_select_confirm"); key[KeyType::QUICKTUNE_NEXT] = getKeySetting("keymap_quicktune_next"); key[KeyType::QUICKTUNE_PREV] = getKeySetting("keymap_quicktune_prev"); diff --git a/src/client/keys.h b/src/client/keys.h index 68ba197f0..98c51f7a5 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -61,6 +61,7 @@ public: TOGGLE_HUD, TOGGLE_CHAT, TOGGLE_FOG, + TOGGLE_CHEAT_MENU, TOGGLE_UPDATE_CAMERA, TOGGLE_DEBUG, TOGGLE_PROFILER, @@ -73,6 +74,11 @@ public: FULLBRIGHT, KILLAURA, FREECAM, + SELECT_UP, + SELECT_DOWN, + SELECT_LEFT, + SELECT_RIGHT, + SELECT_CONFIRM, QUICKTUNE_NEXT, QUICKTUNE_PREV, |
