X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=menu.c;h=c729750b73667b9d4715a4f449f1d8d542d206ff;hb=5385844e6dd47a347e48032f0e5b191358d82266;hp=157d3ccc8ce9ff15f653334602bf778e3d9969ae;hpb=7bbc05e4b0d3041dfdac6fc6c5506710594fe2c9;p=xonotic%2Fdarkplaces.git diff --git a/menu.c b/menu.c index 157d3ccc..c729750b 100644 --- a/menu.c +++ b/menu.c @@ -19,10 +19,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "quakedef.h" -#ifdef _WIN32 -#include "winquake.h" -#endif - void (*vid_menudrawfn)(void); void (*vid_menukeyfn)(int key); @@ -50,6 +46,7 @@ void M_Menu_Main_f (void); void M_Menu_LanConfig_f (void); void M_Menu_GameOptions_f (void); void M_Menu_Search_f (void); +void M_Menu_InetSearch_f (void); void M_Menu_ServerList_f (void); void M_Main_Draw (void); @@ -68,6 +65,7 @@ void M_Main_Draw (void); void M_LanConfig_Draw (void); void M_GameOptions_Draw (void); void M_Search_Draw (void); +void M_InetSearch_Draw (void); void M_ServerList_Draw (void); void M_Main_Key (int key); @@ -86,6 +84,7 @@ void M_Main_Key (int key); void M_LanConfig_Key (int key); void M_GameOptions_Key (int key); void M_Search_Key (int key); +void M_InetSearch_Key (int key); void M_ServerList_Key (int key); qboolean m_entersound; // play after drawing a frame, so caching @@ -857,7 +856,7 @@ void M_MultiPlayer_Draw (void) if (ipxAvailable || tcpipAvailable) return; - M_PrintWhite ((320/2) - ((27*8)/2), 148, "No Communications Available"); + M_PrintWhite ((320/2) - ((27*8)/2), 168, "No Communications Available"); } @@ -2152,8 +2151,8 @@ void M_Quit_Draw (void) /* LAN CONFIG MENU */ int lanConfig_cursor = -1; -int lanConfig_cursor_table [] = {72, 92, 124}; -#define NUM_LANCONFIG_CMDS 3 +int lanConfig_cursor_table [] = {72, 92, 112, 144}; +#define NUM_LANCONFIG_CMDS 4 int lanConfig_port; char lanConfig_portname[6]; @@ -2217,9 +2216,10 @@ void M_LanConfig_Draw (void) if (JoiningGame) { M_Print (basex, lanConfig_cursor_table[1], "Search for local games..."); - M_Print (basex, 108, "Join game at:"); - M_DrawTextBox (basex+8, lanConfig_cursor_table[2]-8, 22, 1); - M_Print (basex+16, lanConfig_cursor_table[2], lanConfig_joinname); + M_Print (basex, lanConfig_cursor_table[2], "Search for internet games..."); + M_Print (basex, 128, "Join game at:"); + M_DrawTextBox (basex+8, lanConfig_cursor_table[3]-8, 22, 1); + M_Print (basex+16, lanConfig_cursor_table[3], lanConfig_joinname); } else { @@ -2232,11 +2232,11 @@ void M_LanConfig_Draw (void) if (lanConfig_cursor == 0) M_DrawCharacter (basex+9*8 + 8*strlen(lanConfig_portname), lanConfig_cursor_table [0], 10+((int)(realtime*4)&1)); - if (lanConfig_cursor == 2) - M_DrawCharacter (basex+16 + 8*strlen(lanConfig_joinname), lanConfig_cursor_table [2], 10+((int)(realtime*4)&1)); + if (lanConfig_cursor == 3) + M_DrawCharacter (basex+16 + 8*strlen(lanConfig_joinname), lanConfig_cursor_table [3], 10+((int)(realtime*4)&1)); if (*m_return_reason) - M_PrintWhite (basex, 148, m_return_reason); + M_PrintWhite (basex, 168, m_return_reason); } @@ -2272,18 +2272,21 @@ void M_LanConfig_Key (int key) M_ConfigureNetSubsystem (); - if (lanConfig_cursor == 1) + if (lanConfig_cursor == 1 || lanConfig_cursor == 2) { if (StartingGame) { M_Menu_GameOptions_f (); break; } - M_Menu_Search_f(); + if (lanConfig_cursor == 1) + M_Menu_Search_f(); + else + M_Menu_InetSearch_f(); break; } - if (lanConfig_cursor == 2) + if (lanConfig_cursor == 3) { m_return_state = m_state; m_return_onerror = true; @@ -2302,7 +2305,7 @@ void M_LanConfig_Key (int key) lanConfig_portname[strlen(lanConfig_portname)-1] = 0; } - if (lanConfig_cursor == 2) + if (lanConfig_cursor == 3) { if (strlen(lanConfig_joinname)) lanConfig_joinname[strlen(lanConfig_joinname)-1] = 0; @@ -2313,7 +2316,7 @@ void M_LanConfig_Key (int key) if (key < 32 || key > 127) break; - if (lanConfig_cursor == 2) + if (lanConfig_cursor == 3) { l = strlen(lanConfig_joinname); if (l < 21) @@ -2336,7 +2339,7 @@ void M_LanConfig_Key (int key) } } - if (StartingGame && lanConfig_cursor == 2) + if (StartingGame && lanConfig_cursor == 3) { if (key == K_UPARROW) lanConfig_cursor = 1; @@ -2550,7 +2553,9 @@ level_t transfusionlevels[] = {"bb6", "Twin Fortress"}, {"bb7", "Midgard"}, {"bb8", "Fun With Heads"}, + {"e1m1", "Cradle to Grave"}, + {"e1m2", "Wrong Side of the Tracks"}, {"e1m7", "Altar of Stone"}, {"dm1", "Monolith Building 11"}, @@ -2568,7 +2573,9 @@ level_t transfusionlevels[] = {"crypt", "The Crypt"}, {"bb3_2k1", "Bodies Infusion"}, + {"dcamp", "DeathCamp"}, {"dranzbb6", "Black Coffee"}, + {"highnoon", "HighNoon"}, {"qbb1", "The Confluence"}, {"qbb2", "KathartiK"}, {"qbb3", "Caleb's Woodland Retreat"}, @@ -2578,11 +2585,12 @@ level_t transfusionlevels[] = episode_t transfusionepisodes[] = { - {"Blood", 0, 10}, - {"Plasma Pack", 10, 4}, - {"Cryptic Passage", 14, 2}, - {"Blood 2", 16, 5}, - {"Custom", 21, 7} + {"Blood", 0, 8}, + {"Blood Single Player", 8, 3}, + {"Plasma Pack", 11, 4}, + {"Cryptic Passage", 15, 2}, + {"Blood 2", 17, 5}, + {"Custom", 22, 9} }; gamelevels_t sharewarequakegame = {"Shareware Quake", quakelevels, quakeepisodes, 2}; @@ -2590,7 +2598,7 @@ gamelevels_t registeredquakegame = {"Quake", quakelevels, quakeepisodes, 7}; gamelevels_t hipnoticgame = {"Scourge of Armagon", hipnoticlevels, hipnoticepisodes, 6}; gamelevels_t roguegame = {"Dissolution of Eternity", roguelevels, rogueepisodes, 4}; gamelevels_t nehahragame = {"Nehahra", nehahralevels, nehahraepisodes, 4}; -gamelevels_t transfusiongame = {"Transfusion", transfusionlevels, transfusionepisodes, 5}; +gamelevels_t transfusiongame = {"Transfusion", transfusionlevels, transfusionepisodes, 6}; typedef struct { @@ -2634,7 +2642,7 @@ void M_Menu_GameOptions_f (void) if (maxplayers == 0) maxplayers = svs.maxclients; if (maxplayers < 2) - maxplayers = svs.maxclientslimit; + maxplayers = MAX_SCOREBOARD; } @@ -2783,9 +2791,9 @@ void M_NetStart_Change (int dir) { case 1: maxplayers += dir; - if (maxplayers > svs.maxclientslimit) + if (maxplayers > MAX_SCOREBOARD) { - maxplayers = svs.maxclientslimit; + maxplayers = MAX_SCOREBOARD; m_serverInfoMessage = true; m_serverInfoMessageTime = realtime; } @@ -2996,6 +3004,63 @@ void M_Search_Key (int key) { } +//============================================================================= +/* INTERNET SEARCH MENU */ + +void M_Menu_InetSearch_f (void) +{ + key_dest = key_menu; + m_state = m_search; + m_entersound = false; + slistSilent = true; + slistLocal = false; + searchComplete = false; + NET_InetSlist_f(); + +} + + +void M_InetSearch_Draw (void) +{ + cachepic_t *p; + int x; + + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, "gfx/p_multi.lmp"); + x = (320/2) - ((12*8)/2) + 4; + M_DrawTextBox (x-8, 32, 12, 1); + M_Print (x, 40, "Searching..."); + + if(slistInProgress) + { + NET_Poll(); + return; + } + + if (! searchComplete) + { + searchComplete = true; + searchCompleteTime = realtime; + } + + if (hostCacheCount) + { + M_Menu_ServerList_f (); + return; + } + + M_PrintWhite ((320/2) - ((22*8)/2), 64, "No Quake servers found"); + if ((realtime - searchCompleteTime) < 3.0) + return; + + M_Menu_LanConfig_f (); +} + + +void M_InetSearch_Key (int key) +{ +} + //============================================================================= /* SLIST MENU */ @@ -3051,7 +3116,7 @@ void M_ServerList_Draw (void) M_DrawCharacter (0, 32 + slist_cursor*8, 12+((int)(realtime*4)&1)); if (*m_return_reason) - M_PrintWhite (16, 148, m_return_reason); + M_PrintWhite (16, 168, m_return_reason); }