diff options
Diffstat (limited to 'terminal-game-utils.hpp')
| -rw-r--r-- | terminal-game-utils.hpp | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/terminal-game-utils.hpp b/terminal-game-utils.hpp index 0e41074..d7d9522 100644 --- a/terminal-game-utils.hpp +++ b/terminal-game-utils.hpp @@ -1,3 +1,4 @@ +#include <format> #include <iostream> #include <map> #include <ostream> @@ -6,7 +7,7 @@ #include <termios.h> #include <unistd.h> -namespace TGU { +namespace tgu { inline struct termios orig_termios; @@ -146,13 +147,12 @@ inline GameKey GetKeyPress() { keypress_string += c; } - if (KeyMap.count(keypress_string)) + if (KeyMap.find(keypress_string) != KeyMap.end()) return KeyMap[keypress_string]; - - return KeyMap[keypress_string]; + return GameKey::INVALID; } -// Terminal color printers: +// Text printers: inline void TextGreen() { std::cout << "\033[32m"; } @@ -160,12 +160,24 @@ inline void TextRed() { std::cout << "\033[31m"; } inline void TextBlue() { std::cout << "\033[34m"; } -inline void TextReset() { std::cout << "\033[0m"; } - inline void TextRGB(int r, int g, int b) { std::cout << std::format("\033[38;2;{};{};{}m", r, g, b); }; +// Background printers: + +inline void BGGreen() { std::cout << "\033[42m"; } + +inline void BGRed() { std::cout << "\033[41m"; } + +inline void BGBlue() { std::cout << "\033[44m"; } + +inline void BGRGB(int r, int g, int b) { + std::cout << std::format("\033[48;2;{};{};{}m", r, g, b); +} + +inline void TerminalColorReset() { std::cout << "\033[0m"; } + // Game buffer printers: inline void EnterGameBuffer() { std::cout << "\033[?1049h"; } @@ -173,6 +185,14 @@ inline void EnterGameBuffer() { std::cout << "\033[?1049h"; } inline void LeaveGameBuffer() { std::cout << "\033[?1049l"; } inline void MoveCursor(int row, int col) { - std::cout << "\033[" << row << ";" << col << "H" << std::flush; + std::cout << "\033[" << (row + 1) << ";" << (col + 1) << "H" << std::flush; +} + +inline void MakeCursorVisible() { std::cout << "\033[?25h"; } + +inline void MakeCursorInvisible() { + std::cout << "\033[?25l"; + atexit(MakeCursorVisible); } -}; // namespace TGU + +}; // namespace tgu |
