X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fmain.qc;h=10d18dc3e0515197bb64f1196eec52bd2972d9c2;hb=bf072cdd6407201428cf6486e2ebe68a17ba03fe;hp=58d497aab77b176a9ef60b951762e60d7eecac95;hpb=de16b65a6b90cc32b5e4022c3eed99cce91cd731;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/main.qc b/qcsrc/client/main.qc index 58d497aab..10d18dc3e 100644 --- a/qcsrc/client/main.qc +++ b/qcsrc/client/main.qc @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +51,8 @@ void CSQC_Init() LOG_TRACEF("^4CSQC Build information: ^1%s", WATERMARK); #endif + CheckEngineExtensions(); + { int i = 0; for ( ; i < 255; ++i) @@ -1060,13 +1063,25 @@ bool CSQC_Parse_TempEntity() return false; } +bool autocvar_r_drawfog; +bool autocvar_r_fog_exp2; string forcefog; void Fog_Force() { if (autocvar_cl_orthoview && autocvar_cl_orthoview_nofog) - localcmd("\nr_drawfog 0\n"); + { + if (autocvar_r_drawfog) + cvar_set("r_drawfog", "0"); + } else if (forcefog != "") - localcmd(sprintf("\nfog %s\nr_fog_exp2 0\nr_drawfog 1\n", forcefog)); + { + // using cvar_set as it's faster and safer than a command + if (!autocvar_r_drawfog) + cvar_set("r_drawfog", "1"); + if (autocvar_r_fog_exp2) + cvar_set("r_fog_exp2", "0"); + localcmd(sprintf("\nfog %s\n", forcefog)); + } } bool net_handle_ServerWelcome(); @@ -1366,7 +1381,7 @@ string translate_weaponarena(string s) int n = tokenizebyseparator(s, " & "); string wpn_list = ""; - for (int i = 0; i < n; i++) + for (int i = 0; i < n; ++i) { Weapon wep = Weapon_from_name(argv(i)); if (wep == WEP_Null) @@ -1399,7 +1414,9 @@ string GetVersionMessage(string hostversion, bool version_mismatch, bool version bool net_handle_ServerWelcome() { - campaign = ReadByte(); + int flags = ReadByte(); + + campaign = flags & 1; if (campaign) { int campaign_level = ReadByte(); @@ -1420,8 +1437,9 @@ bool net_handle_ServerWelcome() strcpy(hostname, ReadString()); string hostversion = ReadString(); - bool version_mismatch = ReadByte(); - bool version_check = ReadByte(); + bool version_mismatch = flags & 2; + bool version_check = flags & 4; + MapInfo_Map_titlestring = ReadString(); srv_minplayers = ReadByte(); srv_maxplayers = ReadByte(); string modifications = translate_modifications(ReadString()); @@ -1433,15 +1451,7 @@ bool net_handle_ServerWelcome() msg = strcat(msg, "\n\n", _("Gametype:"), " ^1", MapInfo_Type_ToText(gametype), "\n"); - msg = strcat(msg, "\n", _("Map:"), " ^2"); - if (world.message == "") - msg = strcat(msg, mi_shortname, "\n"); - else - { - int i = strstrofs(world.message, " by ", 0); // matches _MapInfo_Generate() - string longname = i >= 0 ? substring(world.message, 0, i) : world.message; - msg = strcat(msg, (strcasecmp(longname, mi_shortname) ? strcat(mi_shortname, " ^7// ^2") : ""), longname, "\n"); - } + msg = strcat(msg, "\n", _("Map:"), " ", MapInfo_Map_titlestring, "\n"); if (srv_minplayers || srv_maxplayers) {