1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
void GameCommand_Init()
{
// make gg call menu QC theCommands
localcmd("alias qc_cmd \"menu_cmd $*\"\n");
}
string _dumptree_space;
void _dumptree_open(entity pass, entity me)
{
string s;
s = me.toString(me);
if(s == "")
s = me.classname;
else
s = strcat(me.classname, ": ", s);
print(_dumptree_space, etos(me), " (", s, ")");
if(me.firstChild)
{
print(" {\n");
_dumptree_space = strcat(_dumptree_space, " ");
}
else
print("\n");
}
void _dumptree_close(entity pass, entity me)
{
if(me.firstChild)
{
_dumptree_space = substring(_dumptree_space, 0, strlen(_dumptree_space) - 2);
print(_dumptree_space, "}\n");
}
}
void GameCommand(string theCommand)
{
float argc;
argc = tokenize_console(theCommand);
if(argv(0) == "help" || argc == 0)
{
print("Usage: menu_cmd theCommand..., where possible theCommands are:\n");
print(" sync - reloads all cvars on the current menu page\n");
print(" directmenu ITEM - select a menu item as main item\n");
GameCommand_Generic("help");
return;
}
if(GameCommand_Generic(theCommand))
return;
if(argv(0) == "sync")
{
loadAllCvars(main);
return;
}
if(argv(0) == "directmenu") if(argc == 2)
{
// switch to a menu item
if(!isdemo()) // don't allow this command in demos
m_goto(argv(1));
return;
}
if(argv(0) == "skinselect")
{
m_goto_skin_selector();
return;
}
if(argv(0) == "dumptree")
{
_dumptree_space = "";
depthfirst(main, parent, firstChild, nextSibling, _dumptree_open, _dumptree_close, NULL);
return;
}
#if 0
if(argv(0) == "tokentest")
{
string s;
float i, n;
print("SANE tokenizer:\n");
s = cvar_string("tokentest");
n = tokenize_console_force_builtin(s);
for(i = -n; i < n; ++i)
{
print("token ", ftos(i), ": '", argv(i), "' = ");
print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
}
print(".\n");
print("INSANE tokenizer:\n");
s = cvar_string("tokentest");
n = tokenize(s);
for(i = -n; i < n; ++i)
{
print("token ", ftos(i), ": '", argv(i), "' = ");
print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
}
print(".\n");
print("EMULATED tokenizer:\n");
s = cvar_string("tokentest");
n = tokenize_console_force_emulation(s);
for(i = -n; i < n; ++i)
{
print("token ", ftos(i), ": '", argv(i), "' = ");
print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n");
}
print(".\n");
return;
}
#endif
print("Invalid theCommand. For a list of supported theCommands, try menu_cmd help.\n");
}
|