aboutsummaryrefslogtreecommitdiff
path: root/terminal-game-utils.hpp
diff options
context:
space:
mode:
authorroy <[email protected]>2026-07-05 01:11:04 +0300
committerroy <[email protected]>2026-07-05 01:11:04 +0300
commita581945aa7c77251420489f4b22222ec15abcd7a (patch)
tree428e20c9503ca49ca34dea975cd9b8b293963b0b /terminal-game-utils.hpp
parentc690c3417dcb6966dc9ab56d41e37427ec1a4e7a (diff)
Basic movement finished.
Diffstat (limited to 'terminal-game-utils.hpp')
-rw-r--r--terminal-game-utils.hpp38
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