]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/main.qc
Revert buggy implementation of sending the welcome message only once on connection
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / main.qc
index 67b259c180bb9c4c1b9e6468a96e28170c7e66aa..75fb7169e1017755cef2531825d0f9f68c5d5cca 100644 (file)
@@ -471,6 +471,32 @@ float CSQC_InputEvent(int bInputType, float nPrimary, float nSecondary)
        if(override)
                return true;
 
+       if(bInputType == 3 || bInputType == 2)
+               return false;
+
+       // at this point bInputType can only be 0 or 1 (key pressed or released)
+       bool key_pressed = (bInputType == 0);
+
+       if(key_pressed) {
+               if(nPrimary == K_ALT) hudShiftState |= S_ALT;
+               if(nPrimary == K_CTRL) hudShiftState |= S_CTRL;
+               if(nPrimary == K_SHIFT) hudShiftState |= S_SHIFT;
+       }
+       else {
+               if(nPrimary == K_ALT) hudShiftState -= (hudShiftState & S_ALT);
+               if(nPrimary == K_CTRL) hudShiftState -= (hudShiftState & S_CTRL);
+               if(nPrimary == K_SHIFT) hudShiftState -= (hudShiftState & S_SHIFT);
+       }
+
+       if (nPrimary == K_ESCAPE && !(hudShiftState & S_SHIFT) && key_pressed)
+       {
+               if (cvar("_menu_gamemenu_dialog_available"))
+               {
+                       localcmd("\nmenu_showgamemenudialog\n");
+                       return true;
+               }
+       }
+
        return false;
 }
 
@@ -1011,6 +1037,7 @@ void Fog_Force()
                localcmd(sprintf("\nfog %s\nr_fog_exp2 0\nr_drawfog 1\n", forcefog));
 }
 
+bool net_handle_ServerWelcome();
 NET_HANDLE(ENT_CLIENT_SCORES_INFO, bool isnew)
 {
        make_pure(this);
@@ -1026,6 +1053,7 @@ NET_HANDLE(ENT_CLIENT_SCORES_INFO, bool isnew)
                strcpy(teamscores_label(i), ReadString());
                teamscores_flags(i) = ReadByte();
        }
+       net_handle_ServerWelcome();
        return = true;
        Scoreboard_InitScores();
        Gamemode_Init();
@@ -1286,7 +1314,7 @@ NET_HANDLE(TE_CSQC_WEAPONCOMPLAIN, bool isNew)
        }
 }
 
-NET_HANDLE(TE_CSQC_SERVERINFO, bool isNew)
+bool net_handle_ServerWelcome()
 {
        bool campaign = ReadByte();
        if (campaign)
@@ -1317,7 +1345,7 @@ NET_HANDLE(TE_CSQC_SERVERINFO, bool isNew)
 
        string msg = "";
        msg = strcat(msg, ver);
-       msg = strcat(msg, "^8\n\n", sprintf(_("Game type: ^1%s"), MapInfo_Type_ToText(gametype)), "^8\n");
+       msg = strcat(msg, "^8\n\n", strcat(_("Gametype:"), " ^1", MapInfo_Type_ToText(gametype)), "^8\n");
        if(modifications != "")
                msg = strcat(msg, "^8\n", _("Active modifications:"), " ^3", modifications, "^8\n");
        if (cache_mutatormsg != "")
@@ -1339,6 +1367,11 @@ NET_HANDLE(TE_CSQC_SERVERINFO, bool isNew)
        return true;
 }
 
+NET_HANDLE(TE_CSQC_SERVERWELCOME, bool isNew)
+{
+       return net_handle_ServerWelcome();
+}
+
 string _getcommandkey(string cmd_name, string command, bool forcename)
 {
        string keys;