X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=menu.c;h=d121bbfc813046f42947098173451a81fd0074de;hb=b9940e119f194729387b722d265db31219c85b38;hp=fbf688950835927a2d9c35bb19939b384db6bd68;hpb=37c377c90e4701752cb395c46a2c1a7b2f6d2b61;p=xonotic%2Fdarkplaces.git diff --git a/menu.c b/menu.c index fbf68895..d121bbfc 100644 --- a/menu.c +++ b/menu.c @@ -167,8 +167,8 @@ void M_Background(int width, int height) menu_height = bound(1, height, vid_conheight.integer); menu_x = (vid_conwidth.integer - menu_width) * 0.5; menu_y = (vid_conheight.integer - menu_height) * 0.5; - //DrawQ_Fill(menu_x, menu_y, menu_width, menu_height, 0, 0, 0, 0.5, 0); - DrawQ_Fill(0, 0, vid_conwidth.integer, vid_conheight.integer, 0, 0, 0, 0.5, 0); + //DrawQ_Pic(menu_x, menu_y, NULL, menu_width, menu_height, 0, 0, 0, 0.5, 0); + DrawQ_Pic(0, 0, NULL, vid_conwidth.integer, vid_conheight.integer, 0, 0, 0, 0.5, 0); } /* @@ -211,7 +211,7 @@ void M_ItemPrint(float cx, float cy, const char *str, int unghosted) void M_DrawPic (float cx, float cy, const char *picname) { - DrawQ_Pic (menu_x + cx, menu_y + cy, picname, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (menu_x + cx, menu_y + cy, Draw_CachePic(picname, false), 0, 0, 1, 1, 1, 1, 0); } unsigned char identityTable[256]; @@ -394,6 +394,9 @@ void M_Menu_Main_f (void) else MAIN_ITEMS = 7; } + else if (gamemode == GAME_NEXUIZ) { + MAIN_ITEMS = 2; + } else MAIN_ITEMS = 5; @@ -418,25 +421,36 @@ void M_Main_Draw (void) if (gamemode == GAME_TRANSFUSION) { int y1, y2, y3; M_Background(640, 480); - p = Draw_CachePic ("gfx/tb-transfusion", false); - M_DrawPic (640/2 - p->width/2, 40, "gfx/tb-transfusion"); + p = Draw_CachePic ("gfx/menu/tb-transfusion", false); + M_DrawPic (640/2 - p->width/2, 40, "gfx/menu/tb-transfusion"); y2 = 120; // 8 rather than MAIN_ITEMS to skip a number and not miss the last option for (y1 = 1; y1 <= 8; y1++) { if (MAIN_ITEMS == 7 && y1 == 4) y1++; - M_DrawPic (0, y2, va("gfx/mainmenu%i", y1)); + M_DrawPic (0, y2, va("gfx/menu/mainmenu%i", y1)); y2 += 40; } if (MAIN_ITEMS == 7 && m_main_cursor > 2) y3 = m_main_cursor + 2; else y3 = m_main_cursor + 1; - M_DrawPic (0, 120 + m_main_cursor * 40, va("gfx/mainmenu%iselected", y3)); + M_DrawPic (0, 120 + m_main_cursor * 40, va("gfx/menu/mainmenu%iselected", y3)); + return; + } + else if (gamemode == GAME_NEXUIZ) + { + M_Background(640, 480); //fall back is always to 640x480, this makes it most readable at that. + M_PrintRed (40, (480/3)-16, "You have reached this menu due to missing or unlocatable content/data"); + M_Print ((640/2)-92, (480/3), "You may consider adding"); + M_Print ((640/2)-136, (480/3)+8, "-basedir /path/to/nexuiz"); + M_Print ((640/2)-76, (480/3)+16, "to your launch commandline"); + M_Print (640/2 - 48, 480/2, "Open Console"); //The console usually better shows errors (failures) + M_Print (640/2 - 48, 480/2 + 8, "Quit"); + M_DrawCharacter(640/2 - 56, 480/2 + (8 * m_main_cursor), 12+((int)(realtime*4)&1)); return; } - M_Background(320, 200); M_DrawPic (16, 4, "gfx/qplaque"); p = Draw_CachePic ("gfx/ttl_main", false); @@ -674,6 +688,22 @@ void M_Main_Key (int key, char ascii) } } } + else if (gamemode == GAME_NEXUIZ) { + switch (m_main_cursor) + { + case 0: + if (cls.state == ca_connected) + { + m_state = m_none; + key_dest = key_game; + } + Con_ToggleConsole_f (); + break; + case 1: + M_Menu_Quit_f (); + break; + } + } else { switch (m_main_cursor) @@ -727,14 +757,12 @@ void M_SinglePlayer_Draw (void) p = Draw_CachePic ("gfx/ttl_sgl", false); // Some mods don't have a single player mode - if (gamemode == GAME_NEXUIZ || gamemode == GAME_GOODVSBAD2 || gamemode == GAME_BATTLEMECH) + if (gamemode == GAME_GOODVSBAD2 || gamemode == GAME_BATTLEMECH) { M_DrawPic ((320 - p->width) / 2, 4, "gfx/ttl_sgl"); M_DrawTextBox (60, 8 * 8, 23, 4); - if (gamemode == GAME_NEXUIZ) - M_Print(95, 10 * 8, "Nexuiz is for"); - else if (gamemode == GAME_GOODVSBAD2) + if (gamemode == GAME_GOODVSBAD2) M_Print(95, 10 * 8, "Good Vs Bad 2 is for"); else // if (gamemode == GAME_BATTLEMECH) M_Print(95, 10 * 8, "Battlemech is for"); @@ -756,7 +784,7 @@ void M_SinglePlayer_Draw (void) void M_SinglePlayer_Key (int key, char ascii) { - if (gamemode == GAME_NEXUIZ || gamemode == GAME_GOODVSBAD2 || gamemode == GAME_BATTLEMECH) + if (gamemode == GAME_GOODVSBAD2 || gamemode == GAME_BATTLEMECH) { if (key == K_ESCAPE || key == K_ENTER) m_state = m_main; @@ -1014,13 +1042,13 @@ void M_Transfusion_Episode_Draw (void) cachepic_t *p; M_Background(640, 480); - p = Draw_CachePic ("gfx/tb-episodes", false); - M_DrawPic (640/2 - p->width/2, 40, "gfx/tb-episodes"); + p = Draw_CachePic ("gfx/menu/tb-episodes", false); + M_DrawPic (640/2 - p->width/2, 40, "gfx/menu/tb-episodes"); for (y = 0; y < EPISODE_ITEMS; y++){ - M_DrawPic (0, 160 + y * 40, va("gfx/episode%i", y+1)); + M_DrawPic (0, 160 + y * 40, va("gfx/menu/episode%i", y+1)); } - M_DrawPic (0, 120 + (m_episode_cursor + 1) * 40, va("gfx/episode%iselected", m_episode_cursor + 1)); + M_DrawPic (0, 120 + (m_episode_cursor + 1) * 40, va("gfx/menu/episode%iselected", m_episode_cursor + 1)); } void M_Transfusion_Episode_Key (int key, char ascii) @@ -1071,14 +1099,14 @@ void M_Transfusion_Skill_Draw (void) cachepic_t *p; M_Background(640, 480); - p = Draw_CachePic ("gfx/tb-difficulty", false); - M_DrawPic(640/2 - p->width/2, 40, "gfx/tb-difficulty"); + p = Draw_CachePic ("gfx/menu/tb-difficulty", false); + M_DrawPic(640/2 - p->width/2, 40, "gfx/menu/tb-difficulty"); for (y = 0; y < SKILL_ITEMS; y++) { - M_DrawPic (0, 180 + y * 40, va("gfx/difficulty%i", y+1)); + M_DrawPic (0, 180 + y * 40, va("gfx/menu/difficulty%i", y+1)); } - M_DrawPic (0, 140 + (m_skill_cursor + 1) *40, va("gfx/difficulty%iselected", m_skill_cursor + 1)); + M_DrawPic (0, 140 + (m_skill_cursor + 1) *40, va("gfx/menu/difficulty%iselected", m_skill_cursor + 1)); } void M_Transfusion_Skill_Key (int key, char ascii) @@ -1175,11 +1203,11 @@ void M_MultiPlayer_Draw (void) if (gamemode == GAME_TRANSFUSION) { M_Background(640, 480); - p = Draw_CachePic ("gfx/tb-online", false); - M_DrawPic (640/2 - p->width/2, 140, "gfx/tb-online"); + p = Draw_CachePic ("gfx/menu/tb-online", false); + M_DrawPic (640/2 - p->width/2, 140, "gfx/menu/tb-online"); for (f = 1; f <= MULTIPLAYER_ITEMS; f++) - M_DrawPic (0, 180 + f*40, va("gfx/online%i", f)); - M_DrawPic (0, 220 + m_multiplayer_cursor * 40, va("gfx/online%iselected", m_multiplayer_cursor + 1)); + M_DrawPic (0, 180 + f*40, va("gfx/menu/online%i", f)); + M_DrawPic (0, 220 + m_multiplayer_cursor * 40, va("gfx/menu/online%iselected", m_multiplayer_cursor + 1)); return; } M_Background(320, 200); @@ -1615,7 +1643,7 @@ void M_Options_PrintCommand(const char *s, int enabled) { if (opty >= 32) { - DrawQ_Fill(menu_x, menu_y + opty, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); + DrawQ_Pic(menu_x, menu_y + opty, NULL, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); M_ItemPrint(0, opty, s, enabled); } opty += 8; @@ -1626,7 +1654,7 @@ void M_Options_PrintCheckbox(const char *s, int enabled, int yes) { if (opty >= 32) { - DrawQ_Fill(menu_x, menu_y + opty, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); + DrawQ_Pic(menu_x, menu_y + opty, NULL, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); M_ItemPrint(0, opty, s, enabled); M_DrawCheckbox(0 + (int)strlen(s) * 8 + 8, opty, yes); } @@ -1638,7 +1666,7 @@ void M_Options_PrintSlider(const char *s, int enabled, float value, float minval { if (opty >= 32) { - DrawQ_Fill(menu_x, menu_y + opty, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); + DrawQ_Pic(menu_x, menu_y + opty, NULL, 320, 8, optnum == optcursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); M_ItemPrint(0, opty, s, enabled); M_DrawSlider(0 + (int)strlen(s) * 8 + 8, opty, value, minvalue, maxvalue); } @@ -2169,7 +2197,9 @@ void M_Options_ColorControl_Draw (void) { int visible; float x, c, s, t, u, v; - cachepic_t *p; + cachepic_t *p, *dither; + + dither = Draw_CachePic("gfx/colorcontrol/ditherpattern", false); M_Background(320, 256); @@ -2202,17 +2232,17 @@ void M_Options_ColorControl_Draw (void) M_Options_PrintSlider( " White: Grey ", v_color_enable.integer, (v_color_white_r.value + v_color_white_g.value + v_color_white_b.value) / 3, 1, 5); opty += 4; - DrawQ_Fill(menu_x, menu_y + opty, 320, 4 + 64 + 8 + 64 + 4, 0, 0, 0, 1, 0);opty += 4; + DrawQ_Pic(menu_x, menu_y + opty, NULL, 320, 4 + 64 + 8 + 64 + 4, 0, 0, 0, 1, 0);opty += 4; s = (float) 312 / 2 * vid.width / vid_conwidth.integer; t = (float) 4 / 2 * vid.height / vid_conheight.integer; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, "gfx/colorcontrol/ditherpattern", 312, 4, 0,0, 1,0,0,1, s,0, 1,0,0,1, 0,t, 1,0,0,1, s,t, 1,0,0,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 1,0,0,1, 0,1, 0,0,0,1, 1,1, 1,0,0,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, "gfx/colorcontrol/ditherpattern", 312, 4, 0,0, 0,1,0,1, s,0, 0,1,0,1, 0,t, 0,1,0,1, s,t, 0,1,0,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 0,1,0,1, 0,1, 0,0,0,1, 1,1, 0,1,0,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, "gfx/colorcontrol/ditherpattern", 312, 4, 0,0, 0,0,1,1, s,0, 0,0,1,1, 0,t, 0,0,1,1, s,t, 0,0,1,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 0,0,1,1, 0,1, 0,0,0,1, 1,1, 0,0,1,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, "gfx/colorcontrol/ditherpattern", 312, 4, 0,0, 1,1,1,1, s,0, 1,1,1,1, 0,t, 1,1,1,1, s,t, 1,1,1,1, 0);opty += 4; - DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 1,1,1,1, 0,1, 0,0,0,1, 1,1, 1,1,1,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, dither, 312, 4, 0,0, 1,0,0,1, s,0, 1,0,0,1, 0,t, 1,0,0,1, s,t, 1,0,0,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 1,0,0,1, 0,1, 0,0,0,1, 1,1, 1,0,0,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, dither, 312, 4, 0,0, 0,1,0,1, s,0, 0,1,0,1, 0,t, 0,1,0,1, s,t, 0,1,0,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 0,1,0,1, 0,1, 0,0,0,1, 1,1, 0,1,0,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, dither, 312, 4, 0,0, 0,0,1,1, s,0, 0,0,1,1, 0,t, 0,0,1,1, s,t, 0,0,1,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 0,0,1,1, 0,1, 0,0,0,1, 1,1, 0,0,1,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, dither, 312, 4, 0,0, 1,1,1,1, s,0, 1,1,1,1, 0,t, 1,1,1,1, s,t, 1,1,1,1, 0);opty += 4; + DrawQ_SuperPic(menu_x + 4, menu_y + opty, NULL , 312, 4, 0,0, 0,0,0,1, 1,0, 1,1,1,1, 0,1, 0,0,0,1, 1,1, 1,1,1,1, 0);opty += 4; c = menu_options_colorcontrol_correctionvalue.value; // intensity value that should be matched up to a 50% dither to 'correct' quake s = (float) 48 / 2 * vid.width / vid_conwidth.integer; @@ -2221,21 +2251,21 @@ void M_Options_ColorControl_Draw (void) v = t * 0.5; opty += 8; x = 4; - DrawQ_Fill(menu_x + x, menu_y + opty, 64, 48, c, 0, 0, 1, 0); - DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 1,0,0,1, s,0, 1,0,0,1, 0,t, 1,0,0,1, s,t, 1,0,0,1, 0); - DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 1,0,0,1, u,0, 1,0,0,1, 0,v, 1,0,0,1, u,v, 1,0,0,1, 0); + DrawQ_Pic(menu_x + x, menu_y + opty, NULL, 64, 48, c, 0, 0, 1, 0); + DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, dither, 16, 16, 0,0, 1,0,0,1, s,0, 1,0,0,1, 0,t, 1,0,0,1, s,t, 1,0,0,1, 0); + DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, dither, 16, 16, 0,0, 1,0,0,1, u,0, 1,0,0,1, 0,v, 1,0,0,1, u,v, 1,0,0,1, 0); x += 80; - DrawQ_Fill(menu_x + x, menu_y + opty, 64, 48, 0, c, 0, 1, 0); - DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 0,1,0,1, s,0, 0,1,0,1, 0,t, 0,1,0,1, s,t, 0,1,0,1, 0); - DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 0,1,0,1, u,0, 0,1,0,1, 0,v, 0,1,0,1, u,v, 0,1,0,1, 0); + DrawQ_Pic(menu_x + x, menu_y + opty, NULL, 64, 48, 0, c, 0, 1, 0); + DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, dither, 16, 16, 0,0, 0,1,0,1, s,0, 0,1,0,1, 0,t, 0,1,0,1, s,t, 0,1,0,1, 0); + DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, dither, 16, 16, 0,0, 0,1,0,1, u,0, 0,1,0,1, 0,v, 0,1,0,1, u,v, 0,1,0,1, 0); x += 80; - DrawQ_Fill(menu_x + x, menu_y + opty, 64, 48, 0, 0, c, 1, 0); - DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 0,0,1,1, s,0, 0,0,1,1, 0,t, 0,0,1,1, s,t, 0,0,1,1, 0); - DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 0,0,1,1, u,0, 0,0,1,1, 0,v, 0,0,1,1, u,v, 0,0,1,1, 0); + DrawQ_Pic(menu_x + x, menu_y + opty, NULL, 64, 48, 0, 0, c, 1, 0); + DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, dither, 16, 16, 0,0, 0,0,1,1, s,0, 0,0,1,1, 0,t, 0,0,1,1, s,t, 0,0,1,1, 0); + DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, dither, 16, 16, 0,0, 0,0,1,1, u,0, 0,0,1,1, 0,v, 0,0,1,1, u,v, 0,0,1,1, 0); x += 80; - DrawQ_Fill(menu_x + x, menu_y + opty, 64, 48, c, c, c, 1, 0); - DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 1,1,1,1, s,0, 1,1,1,1, 0,t, 1,1,1,1, s,t, 1,1,1,1, 0); - DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, "gfx/colorcontrol/ditherpattern", 16, 16, 0,0, 1,1,1,1, u,0, 1,1,1,1, 0,v, 1,1,1,1, u,v, 1,1,1,1, 0); + DrawQ_Pic(menu_x + x, menu_y + opty, NULL, 64, 48, c, c, c, 1, 0); + DrawQ_SuperPic(menu_x + x + 16, menu_y + opty + 16, dither, 16, 16, 0,0, 1,1,1,1, s,0, 1,1,1,1, 0,t, 1,1,1,1, s,t, 1,1,1,1, 0); + DrawQ_SuperPic(menu_x + x + 32, menu_y + opty + 16, dither, 16, 16, 0,0, 1,1,1,1, u,0, 1,1,1,1, 0,v, 1,1,1,1, u,v, 1,1,1,1, 0); } @@ -2741,8 +2771,10 @@ video_resolution_t video_resolutions[] = {"Standard 4x3" , 1024, 768, 640, 480, 1 }, {"Standard 4x3" , 1152, 864, 640, 480, 1 }, {"Standard 4x3" , 1280, 960, 640, 480, 1 }, +{"Standard 4x3" , 1400,1050, 640, 480, 1 }, {"Standard 4x3" , 1600,1200, 640, 480, 1 }, {"Standard 4x3" , 1792,1344, 640, 480, 1 }, +{"Standard 4x3" , 1856,1392, 640, 480, 1 }, {"Standard 4x3" , 1920,1440, 640, 480, 1 }, {"Standard 4x3" , 2048,1536, 640, 480, 1 }, {"Short Pixel (CRT) 5x4" , 320, 256, 320, 256, 0.9375}, @@ -2783,7 +2815,7 @@ video_resolution_t video_resolutions[] = {"NTSC 3x2" , 360, 240, 360, 240, 1.125 }, {"NTSC 3x2" , 720, 480, 720, 480, 1.125 }, {"PAL 14x11" , 360, 283, 360, 283, 0.9545}, -{"PAL 14x11" , 720, 566, 360, 566, 0.9545}, +{"PAL 14x11" , 720, 566, 720, 566, 0.9545}, {"NES 8x7" , 256, 224, 256, 224, 1.1667}, {"SNES 8x7" , 512, 448, 512, 448, 1.1667}, {NULL, 0, 0, 0, 0, 0} @@ -3048,10 +3080,10 @@ void M_Menu_Credits_f (void) void M_Credits_Draw (void) { M_Background(640, 480); - DrawQ_Pic (0, 0, "gfx/creditsmiddle", 0, 0, 1, 1, 1, 1, 0); + M_DrawPic (0, 0, "gfx/creditsmiddle"); M_Print (640/2 - 14/2*8, 236, "Coming soon..."); - DrawQ_Pic (0, 0, "gfx/creditstop", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (0, 433, "gfx/creditsbottom", 0, 0, 1, 1, 1, 1, 0); + M_DrawPic (0, 0, "gfx/creditstop"); + M_DrawPic (0, 433, "gfx/creditsbottom"); } @@ -3129,6 +3161,9 @@ int M_ChooseQuitMessage(int request) if (request-- == 0) return M_QuitMessage("You prefer free beer over free speech?","Press Y to quit, N to stay",NULL,NULL,NULL,NULL,NULL,NULL); if (request-- == 0) return M_QuitMessage("Is OpenQuartz Propaganda?","Press Y to quit, N to stay",NULL,NULL,NULL,NULL,NULL,NULL); break; + case GAME_NEXUIZ: //frag related quit messages are pointless for a fallback menu! + if (request-- == 0) return M_QuitMessage("Are you sure you want to quit?","Press Y to quit, N to stay",NULL,NULL,NULL,NULL,NULL,NULL); + break; default: if (request-- == 0) return M_QuitMessage("Tired of fragging already?",NULL,NULL,NULL,NULL,NULL,NULL,NULL); if (request-- == 0) return M_QuitMessage("Quit now and forfeit your bodycount?",NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3202,7 +3237,8 @@ void M_Quit_Draw (void) } lines = (lastline - firstline) + 1; M_Background(linelength * 8 + 16, lines * 8 + 16); - M_DrawTextBox(0, 0, linelength, lines); + if (gamemode != GAME_NEXUIZ) //since this is a fallback menu for Nexuiz (no graphics), it is very hard to read with the box + M_DrawTextBox(0, 0, linelength, lines); //this is less obtrusive than hacking up the M_DrawTextBox function for Nexuiz for (i = 0, l = firstline;i < lines;i++, l++) M_Print(8 + 4 * (linelength - strlen(m_quit_message[l])), 8 + 8 * i, m_quit_message[l]); } @@ -3211,8 +3247,8 @@ void M_Quit_Draw (void) /* LAN CONFIG MENU */ int lanConfig_cursor = -1; -int lanConfig_cursor_table [] = {56, 76, 112}; -#define NUM_LANCONFIG_CMDS 3 +int lanConfig_cursor_table [] = {56, 76, 84, 120}; +#define NUM_LANCONFIG_CMDS 4 int lanConfig_port; char lanConfig_portname[6]; @@ -3265,10 +3301,11 @@ void M_LanConfig_Draw (void) if (JoiningGame) { - M_Print(basex, lanConfig_cursor_table[1], "Search for games..."); - M_Print(basex, lanConfig_cursor_table[2]-16, "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[1], "Search for DarkPlaces games..."); + M_Print(basex, lanConfig_cursor_table[2], "Search for QuakeWorld games..."); + M_Print(basex, lanConfig_cursor_table[3]-16, "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 { @@ -3279,10 +3316,10 @@ void M_LanConfig_Draw (void) M_DrawCharacter (basex-8, lanConfig_cursor_table [lanConfig_cursor], 12+((int)(realtime*4)&1)); if (lanConfig_cursor == 0) - M_DrawCharacter (basex+9*8 + 8*strlen(lanConfig_portname), lanConfig_cursor_table [0], 10+((int)(realtime*4)&1)); + M_DrawCharacter (basex+9*8 + 8*strlen(lanConfig_portname), lanConfig_cursor_table [lanConfig_cursor], 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 [lanConfig_cursor], 10+((int)(realtime*4)&1)); if (*m_return_reason) M_Print(basex, 168, m_return_reason); @@ -3304,6 +3341,9 @@ void M_LanConfig_Key (int key, char ascii) lanConfig_cursor--; if (lanConfig_cursor < 0) lanConfig_cursor = NUM_LANCONFIG_CMDS-1; + // when in start game menu, skip the unused search qw servers item + if (StartingGame && lanConfig_cursor == 2) + lanConfig_cursor = 1; break; case K_DOWNARROW: @@ -3311,6 +3351,9 @@ void M_LanConfig_Key (int key, char ascii) lanConfig_cursor++; if (lanConfig_cursor >= NUM_LANCONFIG_CMDS) lanConfig_cursor = 0; + // when in start game menu, skip the unused search qw servers item + if (StartingGame && lanConfig_cursor == 1) + lanConfig_cursor = 2; break; case K_ENTER: @@ -3323,7 +3366,7 @@ void M_LanConfig_Key (int key, char ascii) Cvar_SetValue("port", lanConfig_port); - if (lanConfig_cursor == 1) + if (lanConfig_cursor == 1 || lanConfig_cursor == 2) { if (StartingGame) { @@ -3334,7 +3377,7 @@ void M_LanConfig_Key (int key, char ascii) break; } - if (lanConfig_cursor == 2) + if (lanConfig_cursor == 3) Cbuf_AddText ( va ("connect \"%s\"\n", lanConfig_joinname) ); break; @@ -3345,7 +3388,7 @@ void M_LanConfig_Key (int key, char ascii) 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; @@ -3356,7 +3399,7 @@ void M_LanConfig_Key (int key, char ascii) if (ascii < 32) break; - if (lanConfig_cursor == 2) + if (lanConfig_cursor == 3) { l = (int)strlen(lanConfig_joinname); if (l < 21) @@ -3379,7 +3422,7 @@ void M_LanConfig_Key (int key, char ascii) } } - if (StartingGame && lanConfig_cursor == 2) + if (StartingGame && lanConfig_cursor == 3) { if (key == K_UPARROW) lanConfig_cursor = 1; @@ -3994,10 +4037,10 @@ void M_GameOptions_Draw (void) x = (320-26*8)/2; M_DrawTextBox (x, 138, 24, 4); x += 8; - M_Print(x, 146, " More than 64 players?? "); + M_Print(x, 146, " More than 255 players??"); M_Print(x, 154, " First, question your "); M_Print(x, 162, " sanity, then email "); - M_Print(x, 170, " havoc@telefragged.com "); + M_Print(x, 170, " lordhavoc@ghdigital.com"); } else m_serverInfoMessage = false; @@ -4269,7 +4312,10 @@ void M_Menu_ServerList_f (void) m_entersound = true; slist_cursor = 0; M_Update_Return_Reason(""); - Net_Slist_f(); + if (lanConfig_cursor == 2) + Net_SlistQW_f(); + else + Net_Slist_f(); } @@ -4300,18 +4346,25 @@ void M_ServerList_Draw (void) { for (n = start;n < end;n++) { - DrawQ_Fill(menu_x, menu_y + y, 640, 16, n == slist_cursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); + DrawQ_Pic(menu_x, menu_y + y, NULL, 640, 16, n == slist_cursor ? (0.5 + 0.2 * sin(realtime * M_PI)) : 0, 0, 0, 0.5, 0); M_PrintColored(0, y, serverlist_viewlist[n]->line1);y += 8; M_PrintColored(0, y, serverlist_viewlist[n]->line2);y += 8; } } - else if (realtime - masterquerytime < 3) + else if (realtime - masterquerytime > 10) { if (masterquerycount) M_Print(0, y, "No servers found"); else M_Print(0, y, "No master servers found (network problem?)"); } + else + { + if (serverquerycount) + M_Print(0, y, "Querying servers"); + else + M_Print(0, y, "Querying master servers"); + } } @@ -4324,7 +4377,10 @@ void M_ServerList_Key(int k, char ascii) break; case K_SPACE: - Net_Slist_f(); + if (lanConfig_cursor == 2) + Net_SlistQW_f(); + else + Net_Slist_f(); break; case K_UPARROW: @@ -4550,29 +4606,32 @@ void M_Draw (void) if (gamemode == GAME_TRANSFUSION) { if (m_state != m_credits) { - cachepic_t *p; + cachepic_t *p, *drop1, *drop2, *drop3; int g, scale_x, scale_y, scale_y_repeat, top_offset; float scale_y_rate; scale_y_repeat = vid_conheight.integer * 2; g = (int)(realtime * 64)%96; scale_y_rate = (float)(g+1) / 96; top_offset = (g+12)/12; - p = Draw_CachePic (va("gfx/blooddrip%i", top_offset), false); + p = Draw_CachePic (va("gfx/menu/blooddrip%i", top_offset), false); + drop1 = Draw_CachePic("gfx/menu/blooddrop1", false); + drop2 = Draw_CachePic("gfx/menu/blooddrop2", false); + drop3 = Draw_CachePic("gfx/menu/blooddrop3", false); for (scale_x = 0; scale_x <= vid_conwidth.integer; scale_x += p->width) { for (scale_y = -scale_y_repeat; scale_y <= vid_conheight.integer; scale_y += scale_y_repeat) { - DrawQ_Pic (scale_x + 21, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 116, scale_y_repeat + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop1", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 180, scale_y_repeat * .275 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 242, scale_y_repeat * .75 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 304, scale_y_repeat * .25 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 362, scale_y_repeat * .46125 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 402, scale_y_repeat * .1725 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 438, scale_y_repeat * .9 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop1", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 484, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop3", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 557, scale_y_repeat * .9425 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop1", 0, 0, 1, 1, 1, 1, 0); - DrawQ_Pic (scale_x + 606, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, "gfx/blooddrop2", 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 21, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 116, scale_y_repeat + scale_y + scale_y_rate * scale_y_repeat, drop1, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 180, scale_y_repeat * .275 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 242, scale_y_repeat * .75 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 304, scale_y_repeat * .25 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 362, scale_y_repeat * .46125 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 402, scale_y_repeat * .1725 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 438, scale_y_repeat * .9 + scale_y + scale_y_rate * scale_y_repeat, drop1, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 484, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, drop3, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 557, scale_y_repeat * .9425 + scale_y + scale_y_rate * scale_y_repeat, drop1, 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x + 606, scale_y_repeat * .5 + scale_y + scale_y_rate * scale_y_repeat, drop2, 0, 0, 1, 1, 1, 1, 0); } - DrawQ_Pic (scale_x, -1, va("gfx/blooddrip%i", top_offset), 0, 0, 1, 1, 1, 1, 0); + DrawQ_Pic (scale_x, -1, Draw_CachePic(va("gfx/menu/blooddrip%i", top_offset), false), 0, 0, 1, 1, 1, 1, 0); } } }