📄 console.cpp
字号:
/* console io
* Template CS game
* (C)2001 Mat Sutcliffe. See license.txt for license info (GPL)
*/
#include <cssysdef.h>
#include <iutil/objreg.h>
#include <iutil/cfgmgr.h>
#include <csutil/cfgfile.h>
#include <ivaria/conin.h>
#include <ivaria/conout.h>
#include "console.h"
#include "sys.h"
SCF_IMPLEMENT_IBASE(Console::PerformCallback)
SCF_IMPLEMENTS_INTERFACE(iConsoleExecCallback)
SCF_IMPLEMENT_IBASE_END
Console::Console(iObjectRegistry *objreg) {
conout = CS_QUERY_REGISTRY(objreg, iConsoleOutput);
conin = CS_QUERY_REGISTRY(objreg, iConsoleInput);
conin->Bind(conout);
Console::PerformCallback* cb = new Console::PerformCallback(objreg);
conin->SetExecuteCallback(cb);
cb->DecRef ();
conout->AutoUpdate(0);
conout->SetTransparency(1);
hide();
}
Console::PerformCallback::PerformCallback (iObjectRegistry *objreg) {
SCF_CONSTRUCT_IBASE (NULL);
conf = new csConfigFile ();
csRef<iConfigManager> confmgr (CS_QUERY_REGISTRY(objreg, iConfigManager));
confmgr->AddDomain(conf, iConfigManager::ConfigPriorityCmdLine);
}
void Console::PerformCallback::Execute(const char *cmd) {
char *val = strchr(cmd, '=');
if (val) {
*val = 0;
if (! strchr(cmd + 1, '.')) {
char prefix[64] = GAME ".Bind.";
cmd = strncat(prefix, cmd, 48);
}
conf->SetStr(cmd, ++val);
}
}
void Console::show() {
conout->SetVisible(1);
visible = 1;
}
void Console::hide() {
conout->SetVisible(0);
visible = 0;
}
bool Console::toggle() {
if (conout->GetVisible()) hide(); else show();
return visible;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -