X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Futil.qc;h=d8640a501c3650344fa836af31d26a38d60192f8;hb=e1907c7dac807e4ccb0bef3a029568a1237d88c7;hp=ac993e622bd0851e3eeb6ef5acb63c43f5e32a0c;hpb=02b5d16c4530ee9c47df90430657a42e5a170c25;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index ac993e622..d8640a501 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -26,7 +26,7 @@ void forAllDescendants(entity root, void(entity, entity) funcPre, void(entity, e depthfirst(root, parent, firstChild, nextSibling, funcPre, funcPost, pass); } -.string cvarName; +.string controlledCvar; void SUB_Null_ee(entity e1, entity e2) { } @@ -53,12 +53,12 @@ void loadAllCvars(entity root) forAllDescendants(root, loadCvarsOf, SUB_Null_ee, NULL); } -.string cvarNames_Multi; +.string controlledCvars_Multi; .void(entity me) saveCvars_Multi; string getCvarsMulti(entity me) { - if (me.cvarNames_Multi) - return me.cvarNames_Multi; + if (me.controlledCvars_Multi) + return me.controlledCvars_Multi; return string_null; } void saveCvarsMulti(entity me) @@ -67,9 +67,9 @@ void saveCvarsMulti(entity me) string s, cvarname; me.saveCvars_Multi(me); - s = cvar_string(me.cvarName); + s = cvar_string(me.controlledCvar); - n = tokenize_console(me.cvarNames_Multi); + n = tokenize_console(me.controlledCvars_Multi); for(i = 0; i < n; ++i) { // cvars prefixed with ! get saved with the inverted value @@ -89,7 +89,7 @@ void saveCvarsMulti(entity me) } void makeMulti(entity e, string otherCvars) { - e.cvarNames_Multi = otherCvars; + e.controlledCvars_Multi = otherCvars; e.saveCvars_Multi = e.saveCvars; e.saveCvars = saveCvarsMulti; } @@ -313,11 +313,6 @@ void URI_Get_Callback(float id, float status, string data) } } -void DisableServerBackwardsCompatibility() -{ - cvar_set("gameversion_min", ftos(100 * floor(cvar("gameversion") / 100))); -} - void UpdateNotification_URI_Get_Callback(float id, float status, string data) { float n; @@ -352,6 +347,7 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data) string s; string un_version = ""; + string un_tosversion = ""; string un_download = ""; string un_url = ""; string un_bannedservers = ""; @@ -372,6 +368,11 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data) un_version = s; break; } + case "T": + { + un_tosversion = s; + break; + } case "C": { un_compatexpire = s; @@ -411,25 +412,17 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data) } } - if(un_version != "") + if(un_version != "" && vercmp(cvar_string("g_xonoticversion"), un_version) < 0) { - if(vercmp(cvar_string("g_xonoticversion"), un_version) < 0) - { - // update needed - _Nex_ExtResponseSystem_UpdateTo = strzone(un_version); - if(un_download) { LOG_INFO(_("Update can be downloaded at:"), "\n", un_download); } - if(un_url) { _Nex_ExtResponseSystem_UpdateToURL = strzone(un_url); } - DisableServerBackwardsCompatibility(); - } - else if(cvar_string("g_xonoticversion") == un_version) - { - if(un_compatexpire != "") - { - string curdate = strftime(false, "%Y%m%d%H%M%S"); - if (strcmp(curdate, un_compatexpire) >= 0) - DisableServerBackwardsCompatibility(); - } - } + // update needed + _Nex_ExtResponseSystem_UpdateTo = strzone(un_version); + if(un_download) { LOG_INFO(_("Update can be downloaded at:"), "\n", un_download); } + if(un_url) { _Nex_ExtResponseSystem_UpdateToURL = strzone(un_url); } + } + + if(un_tosversion != "") + { + _Nex_ExtResponseSystem_NewToS = stof(un_tosversion); } if(un_bannedservers != "") @@ -464,15 +457,8 @@ void updateCheck() if(!_Nex_ExtResponseSystem_Queried) { _Nex_ExtResponseSystem_Queried = 1; - float startcnt; - string uri; - - cvar_set("cl_startcount", ftos(startcnt = cvar("cl_startcount") + 1)); - - // for privacy, munge the start count a little - startcnt = floor((floor(startcnt / 10) + random()) * 10); - uri = sprintf("http://update.xonotic.org/checkupdate.txt?version=%s&cnt=%d", uri_escape(cvar_string("g_xonoticversion")), startcnt); - uri_get(uri, URI_GET_UPDATENOTIFICATION); + cvar_set("cl_startcount", ftos(cvar("cl_startcount") + 1)); + uri_get("https://update.xonotic.org/checkupdate.txt", URI_GET_UPDATENOTIFICATION); } if(_Nex_ExtResponseSystem_PacksStep > 0) @@ -506,16 +492,11 @@ void updateCheck() } -bool show_propermenu = false; - float preMenuInit() { vector sz; vector boxA, boxB; - if(random() < 0.1) - show_propermenu = true; - updateCheck(); MapInfo_Cache_Create(); @@ -560,10 +541,7 @@ void preMenuDraw() fs = ((1/draw_scale.x) * eX + (1/draw_scale.y) * eY) * 12; line = eY * fs.y; string l1, l2; - if(show_propermenu) - l1 = sprintf("Jeff pay 4 new weapons for %s", _Nex_ExtResponseSystem_UpdateTo); - else - l1 = sprintf(_("Update to %s now!"), _Nex_ExtResponseSystem_UpdateTo); + l1 = sprintf(_("Update to %s now!"), _Nex_ExtResponseSystem_UpdateTo); l2 = "http://www.xonotic.org/"; if(_Nex_ExtResponseSystem_UpdateToURL) l2 = _Nex_ExtResponseSystem_UpdateToURL; @@ -582,6 +560,7 @@ void preMenuDraw() draw_CenterText(mid - 1 * line, l1, fs, '1 0 0', 1, 0); draw_CenterText(mid - 0 * line, l2, fs, '0 0 1', 1, 0); } + if (!campaign_name_previous) campaign_name_previous = strzone(strcat(campaign_name, "x")); // force unequal if(campaign_name == campaign_name_previous) @@ -682,13 +661,13 @@ float updateCompression() GAMETYPE(MAPINFO_TYPE_ONSLAUGHT) \ GAMETYPE(MAPINFO_TYPE_ASSAULT) \ /* GAMETYPE(MAPINFO_TYPE_DUEL) */ \ - /* GAMETYPE(MAPINFO_TYPE_INVASION) */ \ /**/ // hidden gametypes come last so indexing always works correctly #define HIDDEN_GAMETYPES \ GAMETYPE(MAPINFO_TYPE_RACE) \ GAMETYPE(MAPINFO_TYPE_CTS) \ + GAMETYPE(MAPINFO_TYPE_INVASION) \ /**/ Gametype GameType_GetID(int cnt) @@ -817,6 +796,18 @@ void dialog_hudpanel_main_settings(entity me, string panelname) e.configureXonoticTextSliderValues(e); } +bool isServerSingleplayer() +{ + return (cvar_string("net_address") == "127.0.0.1" && cvar_string("net_address_ipv6") == "::1"); +} + +void makeServerSingleplayer() +{ + // it doesn't allow clients to connect from different machines + localcmd("defer 0.1 \"sv_cmd settemp net_address 127.0.0.1\"\n"); + localcmd("defer 0.1 \"sv_cmd settemp net_address_ipv6 ::1\"\n"); +} + float getFadedAlpha(float currentAlpha, float startAlpha, float targetAlpha) { if(startAlpha < targetAlpha)