⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 console.cpp

📁 3D游戏模板
💻 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 + -