Console::Console(const std::string& font, Renderer& r) { const auto screen = GetSdlSurface(r); mSdlConsole = CON_Init(font.c_str(), screen, LINE_COUNT, { 0, 0, static_cast<Uint16>(screen->w), static_cast<Uint16>(screen->h * .75f) }); if (!mSdlConsole) { throw "Unable to create console."; } CON_Alpha(mSdlConsole, ALPHA_LEVEL); CON_Topmost(mSdlConsole); CON_SetPrompt(mSdlConsole, "> "); CON_SetHideKey(mSdlConsole, SDLK_BACKQUOTE); CON_SetExecuteFunction(mSdlConsole, ConsoleCmdHandler); CON_SetTabCompletion(mSdlConsole, ConsoleTabHandler); r.RegisterPostRenderHook([&](void*){ CON_DrawConsole(mSdlConsole); }); gConsoleMap[mSdlConsole] = this; }
ConsoleInformation* RC_ConsoleInit(const char *font_name, SDL_Surface *display_screen, int lines, SDL_Rect rect) { ConsoleInformation *ci = CON_Init(font_name, display_screen, lines, rect); CON_Position(ci, 0, 0); CON_Alpha(ci, 160); CON_Topmost(ci); CON_SetPrompt(ci, "-->"); CON_SetHideKey(ci, 96 /*tilde*/); return ci; }