diff options
-rw-r--r-- | src/input_system.cpp | 16 | ||||
-rw-r--r-- | src/input_system.h | 3 |
2 files changed, 19 insertions, 0 deletions
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) { | |||
27 | if (e.key.keysym.sym == SDLK_ESCAPE) { | 27 | if (e.key.keysym.sym == SDLK_ESCAPE) { |
28 | if (debugConsole_) { | 28 | if (debugConsole_) { |
29 | debugConsole_ = false; | 29 | debugConsole_ = false; |
30 | debugHistory_.pop_front(); | ||
30 | game_.unpauseGameplay(); | 31 | game_.unpauseGameplay(); |
31 | SDL_StopTextInput(); | 32 | SDL_StopTextInput(); |
32 | debugText_.clear(); | 33 | debugText_.clear(); |
@@ -41,6 +42,8 @@ void InputSystem::tick(double dt) { | |||
41 | #ifdef TANETANE_DEBUG | 42 | #ifdef TANETANE_DEBUG |
42 | if (!debugConsole_ && !game_.isGameplayPaused()) { | 43 | if (!debugConsole_ && !game_.isGameplayPaused()) { |
43 | debugConsole_ = true; | 44 | debugConsole_ = true; |
45 | debugHistorySelection_ = 0; | ||
46 | debugHistory_.push_front(""); | ||
44 | game_.pauseGameplay(); | 47 | game_.pauseGameplay(); |
45 | SDL_StartTextInput(); | 48 | SDL_StartTextInput(); |
46 | debugText_.clear(); | 49 | debugText_.clear(); |
@@ -48,7 +51,10 @@ void InputSystem::tick(double dt) { | |||
48 | #endif | 51 | #endif |
49 | } else if (debugConsole_ && e.key.keysym.sym == SDLK_RETURN) { | 52 | } else if (debugConsole_ && e.key.keysym.sym == SDLK_RETURN) { |
50 | game_.getSystem<ScriptSystem>().runDebugScript(debugText_); | 53 | game_.getSystem<ScriptSystem>().runDebugScript(debugText_); |
54 | debugHistory_[0] = debugText_; | ||
51 | debugText_.clear(); | 55 | debugText_.clear(); |
56 | debugHistorySelection_ = 0; | ||
57 | debugHistory_.push_front(""); | ||
52 | } else if (debugConsole_ && e.key.keysym.sym == SDLK_BACKSPACE) { | 58 | } else if (debugConsole_ && e.key.keysym.sym == SDLK_BACKSPACE) { |
53 | // Make sure to keep the backtick/heart. | 59 | // Make sure to keep the backtick/heart. |
54 | if (!debugText_.empty()) { | 60 | if (!debugText_.empty()) { |
@@ -141,10 +147,20 @@ void InputSystem::tick(double dt) { | |||
141 | game_.getSystem<MessageSystem>().selectSecondChoice(); | 147 | game_.getSystem<MessageSystem>().selectSecondChoice(); |
142 | } | 148 | } |
143 | } else if (e.key.keysym.sym == SDLK_UP) { | 149 | } else if (e.key.keysym.sym == SDLK_UP) { |
150 | if (debugConsole_ && debugHistorySelection_ < (debugHistory_.size() - 1)) { | ||
151 | debugHistory_[debugHistorySelection_] = debugText_; | ||
152 | debugHistorySelection_++; | ||
153 | debugText_ = debugHistory_[debugHistorySelection_]; | ||
154 | } | ||
144 | if (game_.getSystem<MenuSystem>().isMenuOpen()) { | 155 | if (game_.getSystem<MenuSystem>().isMenuOpen()) { |
145 | game_.getSystem<MenuSystem>().pressedUp(); | 156 | game_.getSystem<MenuSystem>().pressedUp(); |
146 | } | 157 | } |
147 | } else if (e.key.keysym.sym == SDLK_DOWN) { | 158 | } else if (e.key.keysym.sym == SDLK_DOWN) { |
159 | if (debugConsole_ && debugHistorySelection_ > 0) { | ||
160 | debugHistory_[debugHistorySelection_] = debugText_; | ||
161 | debugHistorySelection_--; | ||
162 | debugText_ = debugHistory_[debugHistorySelection_]; | ||
163 | } | ||
148 | if (game_.getSystem<MenuSystem>().isMenuOpen()) { | 164 | if (game_.getSystem<MenuSystem>().isMenuOpen()) { |
149 | game_.getSystem<MenuSystem>().pressedDown(); | 165 | game_.getSystem<MenuSystem>().pressedDown(); |
150 | } | 166 | } |
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 @@ | |||
1 | #ifndef INPUT_SYSTEM_H_47764575 | 1 | #ifndef INPUT_SYSTEM_H_47764575 |
2 | #define INPUT_SYSTEM_H_47764575 | 2 | #define INPUT_SYSTEM_H_47764575 |
3 | 3 | ||
4 | #include <deque> | ||
4 | #include <string> | 5 | #include <string> |
5 | #include "system.h" | 6 | #include "system.h" |
6 | 7 | ||
@@ -24,6 +25,8 @@ private: | |||
24 | Game& game_; | 25 | Game& game_; |
25 | bool debugConsole_ = false; | 26 | bool debugConsole_ = false; |
26 | std::string debugText_; | 27 | std::string debugText_; |
28 | std::deque<std::string> debugHistory_; | ||
29 | int debugHistorySelection_ = 0; | ||
27 | }; | 30 | }; |
28 | 31 | ||
29 | #endif /* end of include guard: INPUT_SYSTEM_H_47764575 */ | 32 | #endif /* end of include guard: INPUT_SYSTEM_H_47764575 */ |