X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fgamecommand.qc;h=e637bf5aa87a3f71bd43bf99c94f55f1fc5960a7;hb=1900ebdaf5a6a30dd5383ac0f9125c9651815fe5;hp=94357b2270ed928ac907c7676be41147b03cd5f5;hpb=481667b4c4389cd5bb01b88f1ccab09fa4735d40;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/gamecommand.qc b/qcsrc/menu/gamecommand.qc index 94357b227..e637bf5aa 100644 --- a/qcsrc/menu/gamecommand.qc +++ b/qcsrc/menu/gamecommand.qc @@ -31,6 +31,30 @@ void _dumptree_close(entity pass, entity me) } } +float curl_uri_get_pos; +float curl_uri_get_exec[URI_GET_CURL_END - URI_GET_CURL + 1]; +string curl_uri_get_cvar[URI_GET_CURL_END - URI_GET_CURL + 1]; +void Curl_URI_Get_Callback(float id, float status, string data) +{ + float i; + float do_exec; + string do_cvar; + i = id - URI_GET_CURL; + do_exec = curl_uri_get_exec[i]; + do_cvar = curl_uri_get_cvar[i]; + if(status != 0) + { + print(sprintf(_("error: status is %d\n"), status)); + return; + } + if(do_exec) + localcmd(data); + if(do_cvar) + cvar_set(do_cvar, data); + if(!do_exec && !do_cvar) + print(data); +} + void GameCommand(string theCommand) { float argc; @@ -38,9 +62,9 @@ void GameCommand(string 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"); + print(_("Usage: menu_cmd command..., where possible commands 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; } @@ -50,7 +74,7 @@ void GameCommand(string theCommand) if(argv(0) == "sync") { - loadAllCvars(main); + m_sync(); return; } @@ -65,10 +89,7 @@ void GameCommand(string theCommand) if(argv(0) == "directpanelhudmenu") { // switch to a menu item - m_goto("HUDOptions"); - entity panelvar; - panelvar = findstring(NULL, name, "HUDOptions"); - panelvar.change(panelvar, stof(argv(1))); + m_goto(strcat("HUD", argv(1))); return; } @@ -78,6 +99,12 @@ void GameCommand(string theCommand) return; } + if(argv(0) == "languageselect") + { + m_goto_language_selector(); + return; + } + if(argv(0) == "videosettings") { m_goto_video_settings(); @@ -91,50 +118,71 @@ void GameCommand(string theCommand) return; } - if(argv(0) == "setresolution") - { - updateConwidths(); - return; - } - -#if 0 - if(argv(0) == "tokentest") + if(argv(0) == "curl") { - 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) + float do_exec; + string do_cvar; + float key; + float i, j; + string url; + float buf; + float r; + + do_exec = FALSE; + do_cvar = string_null; + key = -1; + + for(i = 1; i+1 < argc; ++i) { - print("token ", ftos(i), ": '", argv(i), "' = "); - print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n"); + if(argv(i) == "--cvar" && i+2 < argc) + { + ++i; + do_cvar = argv(i); + continue; + } + if(argv(i) == "--exec") + { + do_exec = TRUE; + continue; + } + if(argv(i) == "--key" && i+2 < argc) + { + ++i; + key = stof(argv(i)); + continue; + } + break; } - print(".\n"); - print("INSANE tokenizer:\n"); - s = cvar_string("tokentest"); - n = tokenize(s); - for(i = -n; i < n; ++i) + // now, argv(i) is the URL + // following args may be POST parameters + url = argv(i); + ++i; + buf = buf_create(); + j = 0; + for(; i+1 < argc; i += 2) + bufstr_set(buf, ++j, sprintf("%s=%s", uri_escape(argv(i)), uri_escape(argv(i+1)))); + if(i < argc) + bufstr_set(buf, ++j, sprintf("submit=%s", uri_escape(argv(i)))); + + if(j == 0) // no args: GET + r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, string_null, string_null, -1, key); + else // with args: POST + r = crypto_uri_postbuf(url, URI_GET_CURL + curl_uri_get_pos, "application/x-www-form-urlencoded", "&", buf, key); + + if(r) { - print("token ", ftos(i), ": '", argv(i), "' = "); - print(ftos(argv_start_index(i)), " to ", ftos(argv_end_index(i)), "\n"); + curl_uri_get_exec[curl_uri_get_pos] = do_exec; + curl_uri_get_cvar[curl_uri_get_pos] = do_cvar; + curl_uri_get_pos = mod(curl_uri_get_pos + 1, URI_GET_CURL_END - URI_GET_CURL + 1); } - print(".\n"); + else + print(_("error creating curl handle\n")); + + buf_del(buf); - 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"); + print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n")); }