X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fcommand%2Fmenu_cmd.qc;h=b933a9194f4747bf8f5e5c7e61505e5abdb1392f;hb=19d753312f0deff7bd297822907874d532e9303e;hp=bb55a671bad802feb51cc1e4fb1dcd3be92ade08;hpb=873f1b3ef177d3b290982be4adb3707482b8c6fc;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/command/menu_cmd.qc b/qcsrc/menu/command/menu_cmd.qc index bb55a671b..b933a9194 100644 --- a/qcsrc/menu/command/menu_cmd.qc +++ b/qcsrc/menu/command/menu_cmd.qc @@ -7,6 +7,7 @@ #include +.void(entity me, int argsbuf) readInputArgs; .entity firstChild, nextSibling; string _dumptree_space; @@ -43,12 +44,14 @@ void GameCommand(string theCommand) int argc = tokenize_console(theCommand); string ss = strtolower(argv(0)); + // TODO port these commands to the command system if (argv(0) == "help" || argc == 0) { - LOG_HELP(_("Usage: menu_cmd command..., where possible commands are:")); - LOG_HELP(_(" sync - reloads all cvars on the current menu page")); - LOG_HELP(_(" directmenu ITEM - select a menu item as main item")); - LOG_HELP(_(" dumptree - dump the state of the menu as a tree to the console")); + LOG_HELP("Usage:^3 menu_cmd [], where possible commands are:"); + LOG_HELP(" 'sync' reloads all cvars on the current menu page"); + LOG_HELP(" 'directmenu' shows the menu window named (or the menu window containing an item named )"); + LOG_HELP(" if is not specified it shows the list of available items in the console"); + LOG_HELP(" 'dumptree' dumps the state of the menu as a tree to the console"); LOG_HELP("\nGeneric commands shared by all programs:"); GenericCommand_macro_help(); @@ -77,7 +80,7 @@ void GameCommand(string theCommand) if (argc == 1) { - LOG_HELP(_("Available options:")); + LOG_HELP("Available items:"); FOREACH_ENTITY_ORDERED(it.name != "", { if (it.classname == "vtbl") continue; @@ -95,6 +98,27 @@ void GameCommand(string theCommand) m_play_click_sound(MENU_SOUND_OPEN); m_goto(strcat(filter, argv(1))); // switch to a menu item } + else if(argc > 2 && !isdemo()) + { + entity e = NULL; + float argsbuf = 0; + string s = strzone(argv(1)); // dialog name + for(int i = 0; (e = nextent(e)); ) + if(e.classname != "vtbl" && e.name == strcat(filter, s)) + { + argsbuf = buf_create(); + if(argsbuf >= 0) + if(e.readInputArgs) + { + for(i = 2; i < argc; ++i) + bufstr_add(argsbuf, argv(i), 1); + e.readInputArgs(e, argsbuf); + m_goto(strcat(filter, s)); + } + if(argsbuf >= 0) + buf_del(argsbuf); + } + } return; } @@ -126,5 +150,5 @@ void GameCommand(string theCommand) if(MUTATOR_CALLHOOK(Menu_ConsoleCommand, ss, argc, theCommand)) // handled by a mutator return; - LOG_INFO(_("Invalid command. For a list of supported commands, try menu_cmd help.")); + LOG_INFO("Invalid command. For a list of supported commands, try menu_cmd help."); }