diff options
| author | roy <[email protected]> | 2026-07-05 01:11:04 +0300 |
|---|---|---|
| committer | roy <[email protected]> | 2026-07-05 01:11:04 +0300 |
| commit | a581945aa7c77251420489f4b22222ec15abcd7a (patch) | |
| tree | 428e20c9503ca49ca34dea975cd9b8b293963b0b /terminal-game-utils.hpp | |
| parent | c690c3417dcb6966dc9ab56d41e37427ec1a4e7a (diff) | |
Basic movement finished.
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 |
