From 73411749a50f523fb56b2cfda78d759b667b811f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 6 Jul 2021 14:40:01 -0400 Subject: Added debug console command history #5 --- src/input_system.cpp | 16 ++++++++++++++++ src/input_system.h | 3 +++ 2 files changed, 19 insertions(+) (limited to 'src') diff --git a/src/input_system.cpp b/src/input_system.cpp index 56516ac..0758cda 100644 --- a/src/input_system.cpp +++ b/src/input_system.cpp @@ -27,6 +27,7 @@ void InputSystem::tick(double dt) { if (e.key.keysym.sym == SDLK_ESCAPE) { if (debugConsole_) { debugConsole_ = false; + debugHistory_.pop_front(); game_.unpauseGameplay(); SDL_StopTextInput(); debugText_.clear(); @@ -41,6 +42,8 @@ void InputSystem::tick(double dt) { #ifdef TANETANE_DEBUG if (!debugConsole_ && !game_.isGameplayPaused()) { debugConsole_ = true; + debugHistorySelection_ = 0; + debugHistory_.push_front(""); game_.pauseGameplay(); SDL_StartTextInput(); debugText_.clear(); @@ -48,7 +51,10 @@ void InputSystem::tick(double dt) { #endif } else if (debugConsole_ && e.key.keysym.sym == SDLK_RETURN) { game_.getSystem().runDebugScript(debugText_); + debugHistory_[0] = debugText_; debugText_.clear(); + debugHistorySelection_ = 0; + debugHistory_.push_front(""); } else if (debugConsole_ && e.key.keysym.sym == SDLK_BACKSPACE) { // Make sure to keep the backtick/heart. if (!debugText_.empty()) { @@ -141,10 +147,20 @@ void InputSystem::tick(double dt) { game_.getSystem().selectSecondChoice(); } } else if (e.key.keysym.sym == SDLK_UP) { + if (debugConsole_ && debugHistorySelection_ < (debugHistory_.size() - 1)) { + debugHistory_[debugHistorySelection_] = debugText_; + debugHistorySelection_++; + debugText_ = debugHistory_[debugHistorySelection_]; + } if (game_.getSystem().isMenuOpen()) { game_.getSystem().pressedUp(); } } else if (e.key.keysym.sym == SDLK_DOWN) { + if (debugConsole_ && debugHistorySelection_ > 0) { + debugHistory_[debugHistorySelection_] = debugText_; + debugHistorySelection_--; + debugText_ = debugHistory_[debugHistorySelection_]; + } if (game_.getSystem().isMenuOpen()) { game_.getSystem().pressedDown(); } diff --git a/src/input_system.h b/src/input_system.h index a7757b8..c8e0d8c 100644 --- a/src/input_system.h +++ b/src/input_system.h @@ -1,6 +1,7 @@ #ifndef INPUT_SYSTEM_H_47764575 #define INPUT_SYSTEM_H_47764575 +#include #include #include "system.h" @@ -24,6 +25,8 @@ private: Game& game_; bool debugConsole_ = false; std::string debugText_; + std::deque debugHistory_; + int debugHistorySelection_ = 0; }; #endif /* end of include guard: INPUT_SYSTEM_H_47764575 */ -- cgit 1.4.1