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;
}
}
}
-NET_HANDLE(TE_CSQC_SERVERINFO, bool isNew)
+NET_HANDLE(TE_CSQC_SERVERWELCOME, bool isNew)
{
+ bool campaign = ReadByte();
+ if (campaign)
+ {
+ string campaign_title = ReadString();
+ int campaign_level = ReadByte();
+ string campaign_msg = ReadString();
+ string welcomedialog_args;
+ welcomedialog_args = strcat("HOSTNAME \"", campaign_title, "\"");
+ string key = getcommandkey(_("jump"), "+jump");
+ string msg = strcat(
+ CCR("^F1"), sprintf(_("Level %d:"), campaign_level),
+ sprintf(CCR(" ^BG%s\n^3\n"), campaign_msg),
+ sprintf(CCR(_("^BGPress ^F2%s^BG to enter the game")), key));
+ msg = MakeConsoleSafe(strreplace("\n", "\\n", msg));
+ welcomedialog_args = strcat(welcomedialog_args, " WELCOME \"", msg, "\"");
+ localcmd("\nmenu_cmd directmenu Welcome ", welcomedialog_args, "\n");
+ return true;
+ }
+
bool force_centerprint = ReadByte();
string hostname = ReadString();
string ver = ReadString();
- string gamemode_name = ReadString();
string modifications = ReadString();
string cache_mutatormsg = ReadString();
string mutator_msg = ReadString();
string msg = "";
msg = strcat(msg, ver);
- msg = strcat(msg, "^8\n\n", _("match type is "), " ^1", gamemode_name, "^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");
+ msg = strcat(msg, "^8\n", _("Active modifications:"), " ^3", modifications, "^8\n");
if (cache_mutatormsg != "")
- msg = strcat(msg, "\n\n^8", _("special gameplay tips:"), " ^7", cache_mutatormsg);
+ msg = strcat(msg, "\n\n^8", _("Special gameplay tips:"), " ^7", cache_mutatormsg);
msg = strcat(msg, mutator_msg); // trust that the mutator will do proper formatting
if (motd != "")
msg = strcat(msg, "\n\n^8", _("MOTD:"), " ^7", motd);