diff --git a/src/Game.cpp b/src/Game.cpp index 6295b2a..38de1a7 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -39,25 +39,48 @@ Game::~Game() { bIsRunning.store(false); } void Game::initWindow() { + int LINE_WIDTH = 0; + #ifdef _WIN64 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO csbi; - GetConsoleScreenBufferInfo(hConsole, &csbi); - LINE_HEIGHT = csbi.srWindow.Bottom - csbi.srWindow.Top + 1; + if (GetConsoleScreenBufferInfo(hConsole, &csbi)) { + LINE_HEIGHT = csbi.srWindow.Bottom - csbi.srWindow.Top + 1; + LINE_WIDTH = csbi.srWindow.Right - csbi.srWindow.Left + 1; + } else { + LINE_HEIGHT = 25; + LINE_WIDTH = 80; + } #else struct winsize win; - ioctl(STDOUT_FILENO, TIOCGWINSZ, &win); - LINE_HEIGHT = win.ws_row; - int LINE_WIDTH = win.ws_col; + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) == 0) { + LINE_HEIGHT = win.ws_row; + LINE_WIDTH = win.ws_col; + } else { + LINE_HEIGHT = 25; + LINE_WIDTH = 80; + } #endif + while (LINE_HEIGHT < 18 || LINE_WIDTH < 40) { - std::cout< #include +#define WIN32_LEAN_AND_MEAN +#ifdef store +#undef store +#endif #endif void InputMonitor::start(const Callback& callback)