X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=menu.c;h=4cf1b583e8a12a20614dc8b045c356143a98f8ec;hb=7305ab0695a23466c3554c8670c3b8a38bbc54a9;hp=0e856961216ef82944cac1c9def5fd967b71e118;hpb=e4b3858e7aca0ead91be1d8f675db084d025abad;p=xonotic%2Fdarkplaces.git diff --git a/menu.c b/menu.c index 0e856961..4cf1b583 100644 --- a/menu.c +++ b/menu.c @@ -32,7 +32,7 @@ void (*vid_menukeyfn)(int key); int NehGameType; -enum {m_none, m_main, m_demo, m_singleplayer, m_load, m_save, m_multiplayer, m_setup, m_net, m_options, m_video, m_keys, m_help, m_quit, m_serialconfig, m_modemconfig, m_lanconfig, m_gameoptions, m_search, m_slist} m_state; +enum m_state_e m_state; void M_Menu_Main_f (void); void M_Menu_SinglePlayer_f (void); @@ -46,8 +46,6 @@ void M_Menu_Main_f (void); void M_Menu_Video_f (void); void M_Menu_Help_f (void); void M_Menu_Quit_f (void); -void M_Menu_SerialConfig_f (void); - void M_Menu_ModemConfig_f (void); void M_Menu_LanConfig_f (void); void M_Menu_GameOptions_f (void); void M_Menu_Search_f (void); @@ -65,8 +63,6 @@ void M_Main_Draw (void); void M_Video_Draw (void); void M_Help_Draw (void); void M_Quit_Draw (void); -void M_SerialConfig_Draw (void); - void M_ModemConfig_Draw (void); void M_LanConfig_Draw (void); void M_GameOptions_Draw (void); void M_Search_Draw (void); @@ -84,8 +80,6 @@ void M_Main_Key (int key); void M_Video_Key (int key); void M_Help_Key (int key); void M_Quit_Key (int key); -void M_SerialConfig_Key (int key); - void M_ModemConfig_Key (int key); void M_LanConfig_Key (int key); void M_GameOptions_Key (int key); void M_Search_Key (int key); @@ -93,7 +87,7 @@ void M_ServerList_Key (int key); qboolean m_entersound; // play after drawing a frame, so caching // won't disrupt the sound -qboolean m_recursiveDraw; +//qboolean m_recursiveDraw; int m_return_state; qboolean m_return_onerror; @@ -101,10 +95,8 @@ char m_return_reason [32]; #define StartingGame (m_multiplayer_cursor == 1) #define JoiningGame (m_multiplayer_cursor == 0) -#define SerialConfig (m_net_cursor == 0) -#define DirectConfig (m_net_cursor == 1) -#define IPXConfig (m_net_cursor == 2) -#define TCPIPConfig (m_net_cursor == 3) +#define IPXConfig (m_net_cursor == 0) +#define TCPIPConfig (m_net_cursor == 1) void M_ConfigureNetSubsystem(void); @@ -280,6 +272,52 @@ void M_ToggleMenu_f (void) } } +// LordHavoc: FIXME: finish this menu stuff +#if 0 +#define MAXMENUITEMS 128 + +typedef struct menuitem_s +{ + char *string; // may be text, or an image to use, or a cvar name, depending on the functions used + char *description; + char *command; // used by command items mainly (when used, this command is executed) + cvar_t *cvar; // used for cvar items (sliders, number boxes), value is retrieved from the cvar itself + int selectable; // purely decorative if this is false + int selected; // true if this menu item is currently selected, used by funcs so they don't need to know anything but fields in the menuitem + float selecttime; // the time that this menu item was activated (copied from realtime), used for animating selection flashs and such + float color[4]; // current color for the item (may be different than base color, due to selection flash effects) + float basecolor[4]; // the base color + float x, y, width, height; // width and height are used for mouse selection + void(*drawfunc)(struct menuitem_s *item); + void(*activefunc)(struct menuitem_s *item); +// void(*selectfunc)(struct menuitem_s *item); +// void(*deselectfunc)(struct menuitem_s *item); + void(*usefunc)(struct menuitem_s *item); +} +menuitem_t; + +menuitem_t menuitem[MAXMENUITEMS]; +int menuitems; + +void menuitem_text_drawfunc(struct menuitem_s *item) +{ + // FIXME: handle color flashs and such when selected + M_Print (item->x, item->y, item->string); +} + +void menuitem_image_drawfunc(struct menuitem_s *item) +{ + qpic_t *p = Draw_CachePic (item->string); + // FIXME: handle color flashs and such when selected + M_DrawPic (item->x, item->y, p); +} + +void menuitem_command_usefunc(struct menuitem_s *item) +{ + Cbuf_AddText (item->command); +} +#endif + int demo_cursor; void M_Demo_Draw (void) { @@ -350,7 +388,7 @@ void M_Demo_Key (int k) S_LocalSound ("misc/menu2.wav"); m_state = m_none; key_dest = key_game; - SCR_BeginLoadingPlaque (); +// SCR_BeginLoadingPlaque (); Cbuf_AddText (va ("playdemo %s\n", Demos[demo_cursor].name)); return; @@ -426,7 +464,7 @@ void M_Main_Draw (void) else M_DrawPic (72, 32, Draw_CachePic ("gfx/mainmenu.lmp")); - f = (int)(host_time * 10)%6; + f = (int)(realtime * 10)%6; M_DrawPic (54, 32 + m_main_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); } @@ -599,7 +637,7 @@ void M_SinglePlayer_Draw (void) M_DrawPic ( (320-p->width)/2, 4, p); M_DrawPic (72, 32, Draw_CachePic ("gfx/sp_menu.lmp") ); - f = (int)(host_time * 10)%6; + f = (int)(realtime * 10)%6; M_DrawPic (54, 32 + m_singleplayer_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); } @@ -631,9 +669,6 @@ void M_SinglePlayer_Key (int key) switch (m_singleplayer_cursor) { case 0: - if (sv.active) - if (!SCR_ModalMessage("Are you sure you want to\nstart a new game?\n")) - break; key_dest = key_game; if (sv.active) Cbuf_AddText ("disconnect\n"); @@ -668,7 +703,8 @@ void M_ScanSaves (void) { int i, j; char name[MAX_OSPATH]; - FILE *f; + char *str; + QFile *f; int version; for (i=0 ; iwidth)/2, 4, p); M_DrawPic (72, 32, Draw_CachePic ("gfx/mp_menu.lmp") ); - f = (int)(host_time * 10)%6; + f = (int)(realtime * 10)%6; M_DrawPic (54, 32 + m_multiplayer_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); - if (serialAvailable || ipxAvailable || tcpipAvailable) + if (ipxAvailable || tcpipAvailable) return; M_PrintWhite ((320/2) - ((27*8)/2), 148, "No Communications Available"); } @@ -882,12 +920,12 @@ void M_MultiPlayer_Key (int key) switch (m_multiplayer_cursor) { case 0: - if (serialAvailable || ipxAvailable || tcpipAvailable) + if (ipxAvailable || tcpipAvailable) M_Menu_Net_f (); break; case 1: - if (serialAvailable || ipxAvailable || tcpipAvailable) + if (ipxAvailable || tcpipAvailable) M_Menu_Net_f (); break; @@ -1082,16 +1120,6 @@ int m_net_saveHeight; char *net_helpMessage [] = { /* .........1.........2.... */ - " ", - " Two computers connected", - " through two modems. ", - " ", - - " ", - " Two computers connected", - " by a null-modem cable. ", - " ", - " Novell network LANs ", " or Windows 95 DOS-box. ", " ", @@ -1108,7 +1136,7 @@ void M_Menu_Net_f (void) key_dest = key_menu; m_state = m_net; m_entersound = true; - m_net_items = 4; + m_net_items = 2; if (m_net_cursor >= m_net_items) m_net_cursor = 0; @@ -1128,41 +1156,6 @@ void M_Net_Draw (void) f = 32; - if (serialAvailable) - { - p = Draw_CachePic ("gfx/netmen1.lmp"); - } - else - { -#ifdef _WIN32 - p = NULL; -#else - p = Draw_CachePic ("gfx/dim_modm.lmp"); -#endif - } - - if (p) - M_DrawPic (72, f, p); - - f += 19; - - if (serialAvailable) - { - p = Draw_CachePic ("gfx/netmen2.lmp"); - } - else - { -#ifdef _WIN32 - p = NULL; -#else - p = Draw_CachePic ("gfx/dim_drct.lmp"); -#endif - } - - if (p) - M_DrawPic (72, f, p); - - f += 19; if (ipxAvailable) p = Draw_CachePic ("gfx/netmen3.lmp"); else @@ -1188,10 +1181,8 @@ void M_Net_Draw (void) f += 8; M_Print (f, 142, net_helpMessage[m_net_cursor*4+0]); M_Print (f, 150, net_helpMessage[m_net_cursor*4+1]); - M_Print (f, 158, net_helpMessage[m_net_cursor*4+2]); - M_Print (f, 166, net_helpMessage[m_net_cursor*4+3]); - f = (int)(host_time * 10)%6; + f = (int)(realtime * 10)%6; M_DrawPic (54, 32 + m_net_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); } @@ -1223,45 +1214,29 @@ again: switch (m_net_cursor) { case 0: - M_Menu_SerialConfig_f (); - break; - - case 1: - M_Menu_SerialConfig_f (); - break; - - case 2: M_Menu_LanConfig_f (); break; - case 3: + case 1: M_Menu_LanConfig_f (); break; - case 4: + case 2: // multiprotocol break; } } - if (m_net_cursor == 0 && !serialAvailable) + if (m_net_cursor == 0 && !ipxAvailable) goto again; - if (m_net_cursor == 1 && !serialAvailable) - goto again; - if (m_net_cursor == 2 && !ipxAvailable) - goto again; - if (m_net_cursor == 3 && !tcpipAvailable) + if (m_net_cursor == 1 && !tcpipAvailable) goto again; } //============================================================================= /* OPTIONS MENU */ -#ifdef _WIN32 -#define OPTIONS_ITEMS 14 -#else -#define OPTIONS_ITEMS 13 -#endif +#define OPTIONS_ITEMS 21 #define SLIDER_RANGE 10 @@ -1272,13 +1247,6 @@ void M_Menu_Options_f (void) key_dest = key_menu; m_state = m_options; m_entersound = true; - -#ifdef _WIN32 - if ((options_cursor == 13) && (modestate != MS_WINDOWED)) - { - options_cursor = 0; - } -#endif } @@ -1289,51 +1257,41 @@ void M_AdjustSliders (int dir) switch (options_cursor) { case 3: // screen size - scr_viewsize.value += dir * 10; - if (scr_viewsize.value < 30) - scr_viewsize.value = 30; - if (scr_viewsize.value > 120) - scr_viewsize.value = 120; - Cvar_SetValue ("viewsize", scr_viewsize.value); - break; - case 4: // brightness - brightness.value += dir * 0.25; - if (brightness.value < 1) - brightness.value = 1; - if (brightness.value > 5) - brightness.value = 5; - Cvar_SetValue ("brightness", brightness.value); - break; - case 5: // mouse speed - sensitivity.value += dir * 0.5; - if (sensitivity.value < 1) - sensitivity.value = 1; - if (sensitivity.value > 50) - sensitivity.value = 50; - Cvar_SetValue ("sensitivity", sensitivity.value); - break; - case 6: // music volume + Cvar_SetValue ("viewsize", bound(30, scr_viewsize.value + dir * 10, 120)); + break; + + case 4: // overbright rendering + Cvar_SetValue ("gl_lightmode", !gl_lightmode.value); + break; + + case 5: // hardware gamma + Cvar_SetValue ("vid_gamma", bound(1, vid_gamma.value + dir * 0.25, 5)); + break; + case 6: // hardware brightness + Cvar_SetValue ("vid_brightness", bound(1, vid_brightness.value + dir * 0.25, 5)); + break; + case 7: // hardware contrast + Cvar_SetValue ("vid_contrast", bound(0.2, vid_contrast.value + dir * 0.08, 1)); + break; + case 8: // software brightness + Cvar_SetValue ("r_brightness", bound(1, r_brightness.value + dir * 0.25, 5)); + break; + case 9: // software base brightness + Cvar_SetValue ("r_contrast", bound(0.2, r_contrast.value + dir * 0.08, 1)); + break; + case 10: // music volume #ifdef _WIN32 bgmvolume.value += dir * 1.0; #else bgmvolume.value += dir * 0.1; #endif - if (bgmvolume.value < 0) - bgmvolume.value = 0; - if (bgmvolume.value > 1) - bgmvolume.value = 1; - Cvar_SetValue ("bgmvolume", bgmvolume.value); - break; - case 7: // sfx volume - volume.value += dir * 0.1; - if (volume.value < 0) - volume.value = 0; - if (volume.value > 1) - volume.value = 1; - Cvar_SetValue ("volume", volume.value); - break; - - case 8: // always run + Cvar_SetValue ("bgmvolume", bound(1, bgmvolume.value, 5)); + break; + case 11: // sfx volume + Cvar_SetValue ("volume", bound(1, volume.value + dir * 0.1, 5)); + break; + + case 12: // always run if (cl_forwardspeed.value > 200) { Cvar_SetValue ("cl_forwardspeed", 200); @@ -1346,23 +1304,33 @@ void M_AdjustSliders (int dir) } break; - case 9: // invert mouse - Cvar_SetValue ("m_pitch", -m_pitch.value); - break; - - case 10: // lookspring + case 13: // lookspring Cvar_SetValue ("lookspring", !lookspring.value); break; - case 11: // lookstrafe + case 14: // lookstrafe Cvar_SetValue ("lookstrafe", !lookstrafe.value); break; -#ifdef _WIN32 - case 13: // _windowed_mouse - Cvar_SetValue ("_windowed_mouse", !_windowed_mouse.value); + case 15: // mouse speed + Cvar_SetValue ("sensitivity", bound(1, sensitivity.value + dir * 0.5, 50)); + break; + + case 16: // mouse look + Cvar_SetValue ("freelook", !freelook.value); + break; + + case 17: // invert mouse + Cvar_SetValue ("m_pitch", -m_pitch.value); + break; + + case 18: // windowed mouse + Cvar_SetValue ("vid_mouse", !vid_mouse.value); + break; + + case 19: + Cvar_SetValue ("crosshair", bound(0, crosshair.value + dir, 5)); break; -#endif } } @@ -1398,62 +1366,38 @@ void M_DrawCheckbox (int x, int y, int on) void M_Options_Draw (void) { - float r; + float y; qpic_t *p; - M_DrawPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); - p = Draw_CachePic ("gfx/p_option.lmp"); - M_DrawPic ( (320-p->width)/2, 4, p); - - M_Print (16, 32, " Customize controls"); - M_Print (16, 40, " Go to console"); - M_Print (16, 48, " Reset to defaults"); - - M_Print (16, 56, " Screen size"); - r = (scr_viewsize.value - 30) / (120 - 30); - M_DrawSlider (220, 56, r); - - M_Print (16, 64, " Brightness"); - r = (brightness.value - 1) / 4; - M_DrawSlider (220, 64, r); - - M_Print (16, 72, " Mouse Speed"); - r = (sensitivity.value - 1)/50; - M_DrawSlider (220, 72, r); - - M_Print (16, 80, " CD Music Volume"); - r = bgmvolume.value; - M_DrawSlider (220, 80, r); - - M_Print (16, 88, " Sound Volume"); - r = volume.value; - M_DrawSlider (220, 88, r); - - M_Print (16, 96, " Always Run"); - M_DrawCheckbox (220, 96, cl_forwardspeed.value > 200); - - M_Print (16, 104, " Invert Mouse"); - M_DrawCheckbox (220, 104, m_pitch.value < 0); - - M_Print (16, 112, " Lookspring"); - M_DrawCheckbox (220, 112, lookspring.value); - - M_Print (16, 120, " Lookstrafe"); - M_DrawCheckbox (220, 120, lookstrafe.value); - - if (vid_menudrawfn) - M_Print (16, 128, " Video Options"); - -#ifdef _WIN32 - if (modestate == MS_WINDOWED) - { - M_Print (16, 136, " Use Mouse"); - M_DrawCheckbox (220, 136, _windowed_mouse.value); - } -#endif - -// cursor - M_DrawCharacter (200, 32 + options_cursor*8, 12+((int)(realtime*4)&1)); + M_DrawPic(16, 4, Draw_CachePic("gfx/qplaque.lmp") ); + p = Draw_CachePic("gfx/p_option.lmp"); + M_DrawPic((320-p->width)/2, 4, p); + + y = 32; + M_Print(16, y, " Customize controls");y += 8; + M_Print(16, y, " Go to console");y += 8; + M_Print(16, y, " Reset to defaults");y += 8; + M_Print(16, y, " Screen size");M_DrawSlider(220, y, (scr_viewsize.value - 30) /(120 - 30));y += 8; + M_Print(16, y, " Overbright Rendering");M_DrawCheckbox(220, y, gl_lightmode.value);y += 8; + M_Print(16, y, " Hardware Gamma");M_DrawSlider(220, y, (vid_gamma.value - 1) / 4);y += 8; + M_Print(16, y, " Hardware Brightness");M_DrawSlider(220, y, (vid_brightness.value - 1) / 4);y += 8; + M_Print(16, y, " Hardware Contrast");M_DrawSlider(220, y, (vid_contrast.value - 0.2) / 0.8);y += 8; + M_Print(16, y, " Software Brightness");M_DrawSlider(220, y, (r_brightness.value - 1) / 4);y += 8; + M_Print(16, y, " Software Contrast");M_DrawSlider(220, y, (r_contrast.value - 0.2) / 0.8);y += 8; + M_Print(16, y, " CD Music Volume");M_DrawSlider(220, y, bgmvolume.value);y += 8; + M_Print(16, y, " Sound Volume");M_DrawSlider(220, y, volume.value);y += 8; + M_Print(16, y, " Always Run");M_DrawCheckbox(220, y, cl_forwardspeed.value > 200);y += 8; + M_Print(16, y, " Lookspring");M_DrawCheckbox(220, y, lookspring.value);y += 8; + M_Print(16, y, " Lookstrafe");M_DrawCheckbox(220, y, lookstrafe.value);y += 8; + M_Print(16, y, " Mouse Speed");M_DrawSlider(220, y, (sensitivity.value - 1)/50);y += 8; + M_Print(16, y, " Mouse Look");M_DrawCheckbox(220, y, freelook.value);y += 8; + M_Print(16, y, " Invert Mouse");M_DrawCheckbox(220, y, m_pitch.value < 0);y += 8; + M_Print(16, y, " Use Mouse");M_DrawCheckbox(220, y, vid_mouse.value);y += 8; + M_Print(16, y, " Crosshair");M_DrawSlider(220, y, crosshair.value / 5);y += 8; + M_Print(16, y, " Video Options");y += 8; + + // cursor + M_DrawCharacter(200, 32 + options_cursor*8, 12+((int)(realtime*4)&1)); } @@ -1479,7 +1423,7 @@ void M_Options_Key (int k) case 2: Cbuf_AddText ("exec default.cfg\n"); break; - case 12: + case 20: M_Menu_Video_f (); break; default: @@ -1510,24 +1454,6 @@ void M_Options_Key (int k) M_AdjustSliders (1); break; } - - if (options_cursor == 12 && vid_menudrawfn == NULL) - { - if (k == K_UPARROW) - options_cursor = 11; - else - options_cursor = 0; - } - -#ifdef _WIN32 - if ((options_cursor == 13) && (modestate != MS_WINDOWED)) - { - if (k == K_UPARROW) - options_cursor = 12; - else - options_cursor = 0; - } -#endif } //============================================================================= @@ -1801,10 +1727,11 @@ int msgNumber; int m_quit_prevstate; qboolean wasInMenus; -#ifndef _WIN32 +//#ifndef _WIN32 char *quitMessage [] = { /* .........1.........2.... */ +/* " Are you gonna quit ", " this game just like ", " everything else? ", @@ -1844,8 +1771,30 @@ char *quitMessage [] = " throw a blanket-party ", " for you next time! ", " " + */ + +/* .........1.........2.... */ + " ", + " Tired of fragging ", + " already? ", + " ", + + " ", + " Quit now and forfeit ", + " your bodycount? ", + " ", + + " ", + " Are you sure you ", + " want to quit? ", + " ", + + " ", + " Off to do something ", + " constructive? ", + " ", }; -#endif +//#endif void M_Menu_Quit_f (void) { @@ -1856,7 +1805,7 @@ void M_Menu_Quit_f (void) m_quit_prevstate = m_state; m_state = m_quit; m_entersound = true; - msgNumber = rand()&7; + msgNumber = rand()&3; //&7; } @@ -1897,11 +1846,12 @@ void M_Quit_Draw (void) if (wasInMenus) { m_state = m_quit_prevstate; - m_recursiveDraw = true; +// m_recursiveDraw = true; M_Draw (); m_state = m_quit; } +/* #ifdef _WIN32 M_DrawTextBox (0, 0, 38, 23); M_PrintWhite (16, 12, " Quake version 1.09 by id Software\n\n"); @@ -1926,477 +1876,13 @@ void M_Quit_Draw (void) M_PrintWhite (16, 172, "Nothing Interactive, Inc. All rights\n"); M_PrintWhite (16, 180, "reserved. Press y to exit\n"); #else +*/ M_DrawTextBox (56, 76, 24, 4); M_Print (64, 84, quitMessage[msgNumber*4+0]); M_Print (64, 92, quitMessage[msgNumber*4+1]); M_Print (64, 100, quitMessage[msgNumber*4+2]); M_Print (64, 108, quitMessage[msgNumber*4+3]); -#endif -} - -//============================================================================= - -/* SERIAL CONFIG MENU */ - -int serialConfig_cursor; -int serialConfig_cursor_table[] = {48, 64, 80, 96, 112, 132}; -#define NUM_SERIALCONFIG_CMDS 6 - -static int ISA_uarts[] = {0x3f8,0x2f8,0x3e8,0x2e8}; -static int ISA_IRQs[] = {4,3,4,3}; -int serialConfig_baudrate[] = {9600,14400,19200,28800,38400,57600}; - -int serialConfig_comport; -int serialConfig_irq ; -int serialConfig_baud; -char serialConfig_phone[16]; - -void M_Menu_SerialConfig_f (void) -{ - int n; - int port; - int baudrate; - qboolean useModem; - - key_dest = key_menu; - m_state = m_serialconfig; - m_entersound = true; - if (JoiningGame && SerialConfig) - serialConfig_cursor = 4; - else - serialConfig_cursor = 5; - - (*GetComPortConfig) (0, &port, &serialConfig_irq, &baudrate, &useModem); - - // map uart's port to COMx - for (n = 0; n < 4; n++) - if (ISA_uarts[n] == port) - break; - if (n == 4) - { - n = 0; - serialConfig_irq = 4; - } - serialConfig_comport = n + 1; - - // map baudrate to index - for (n = 0; n < 6; n++) - if (serialConfig_baudrate[n] == baudrate) - break; - if (n == 6) - n = 5; - serialConfig_baud = n; - - m_return_onerror = false; - m_return_reason[0] = 0; -} - - -void M_SerialConfig_Draw (void) -{ - qpic_t *p; - int basex; - char *startJoin; - char *directModem; - - M_DrawPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); - p = Draw_CachePic ("gfx/p_multi.lmp"); - basex = (320-p->width)/2; - M_DrawPic (basex, 4, p); - - if (StartingGame) - startJoin = "New Game"; - else - startJoin = "Join Game"; - if (SerialConfig) - directModem = "Modem"; - else - directModem = "Direct Connect"; - M_Print (basex, 32, va ("%s - %s", startJoin, directModem)); - basex += 8; - - M_Print (basex, serialConfig_cursor_table[0], "Port"); - M_DrawTextBox (160, 40, 4, 1); - M_Print (168, serialConfig_cursor_table[0], va("COM%u", serialConfig_comport)); - - M_Print (basex, serialConfig_cursor_table[1], "IRQ"); - M_DrawTextBox (160, serialConfig_cursor_table[1]-8, 1, 1); - M_Print (168, serialConfig_cursor_table[1], va("%u", serialConfig_irq)); - - M_Print (basex, serialConfig_cursor_table[2], "Baud"); - M_DrawTextBox (160, serialConfig_cursor_table[2]-8, 5, 1); - M_Print (168, serialConfig_cursor_table[2], va("%u", serialConfig_baudrate[serialConfig_baud])); - - if (SerialConfig) - { - M_Print (basex, serialConfig_cursor_table[3], "Modem Setup..."); - if (JoiningGame) - { - M_Print (basex, serialConfig_cursor_table[4], "Phone number"); - M_DrawTextBox (160, serialConfig_cursor_table[4]-8, 16, 1); - M_Print (168, serialConfig_cursor_table[4], serialConfig_phone); - } - } - - if (JoiningGame) - { - M_DrawTextBox (basex, serialConfig_cursor_table[5]-8, 7, 1); - M_Print (basex+8, serialConfig_cursor_table[5], "Connect"); - } - else - { - M_DrawTextBox (basex, serialConfig_cursor_table[5]-8, 2, 1); - M_Print (basex+8, serialConfig_cursor_table[5], "OK"); - } - - M_DrawCharacter (basex-8, serialConfig_cursor_table [serialConfig_cursor], 12+((int)(realtime*4)&1)); - - if (serialConfig_cursor == 4) - M_DrawCharacter (168 + 8*strlen(serialConfig_phone), serialConfig_cursor_table [serialConfig_cursor], 10+((int)(realtime*4)&1)); - - if (*m_return_reason) - M_PrintWhite (basex, 148, m_return_reason); -} - - -void M_SerialConfig_Key (int key) -{ - int l; - - switch (key) - { - case K_ESCAPE: - M_Menu_Net_f (); - break; - - case K_UPARROW: - S_LocalSound ("misc/menu1.wav"); - serialConfig_cursor--; - if (serialConfig_cursor < 0) - serialConfig_cursor = NUM_SERIALCONFIG_CMDS-1; - break; - - case K_DOWNARROW: - S_LocalSound ("misc/menu1.wav"); - serialConfig_cursor++; - if (serialConfig_cursor >= NUM_SERIALCONFIG_CMDS) - serialConfig_cursor = 0; - break; - - case K_LEFTARROW: - if (serialConfig_cursor > 2) - break; - S_LocalSound ("misc/menu3.wav"); - - if (serialConfig_cursor == 0) - { - serialConfig_comport--; - if (serialConfig_comport == 0) - serialConfig_comport = 4; - serialConfig_irq = ISA_IRQs[serialConfig_comport-1]; - } - - if (serialConfig_cursor == 1) - { - serialConfig_irq--; - if (serialConfig_irq == 6) - serialConfig_irq = 5; - if (serialConfig_irq == 1) - serialConfig_irq = 7; - } - - if (serialConfig_cursor == 2) - { - serialConfig_baud--; - if (serialConfig_baud < 0) - serialConfig_baud = 5; - } - - break; - - case K_RIGHTARROW: - if (serialConfig_cursor > 2) - break; -forward: - S_LocalSound ("misc/menu3.wav"); - - if (serialConfig_cursor == 0) - { - serialConfig_comport++; - if (serialConfig_comport > 4) - serialConfig_comport = 1; - serialConfig_irq = ISA_IRQs[serialConfig_comport-1]; - } - - if (serialConfig_cursor == 1) - { - serialConfig_irq++; - if (serialConfig_irq == 6) - serialConfig_irq = 7; - if (serialConfig_irq == 8) - serialConfig_irq = 2; - } - - if (serialConfig_cursor == 2) - { - serialConfig_baud++; - if (serialConfig_baud > 5) - serialConfig_baud = 0; - } - - break; - - case K_ENTER: - if (serialConfig_cursor < 3) - goto forward; - - m_entersound = true; - - if (serialConfig_cursor == 3) - { - (*SetComPortConfig) (0, ISA_uarts[serialConfig_comport-1], serialConfig_irq, serialConfig_baudrate[serialConfig_baud], SerialConfig); - - M_Menu_ModemConfig_f (); - break; - } - - if (serialConfig_cursor == 4) - { - serialConfig_cursor = 5; - break; - } - - // serialConfig_cursor == 5 (OK/CONNECT) - (*SetComPortConfig) (0, ISA_uarts[serialConfig_comport-1], serialConfig_irq, serialConfig_baudrate[serialConfig_baud], SerialConfig); - - M_ConfigureNetSubsystem (); - - if (StartingGame) - { - M_Menu_GameOptions_f (); - break; - } - - m_return_state = m_state; - m_return_onerror = true; - key_dest = key_game; - m_state = m_none; - - if (SerialConfig) - Cbuf_AddText (va ("connect \"%s\"\n", serialConfig_phone)); - else - Cbuf_AddText ("connect\n"); - break; - - case K_BACKSPACE: - if (serialConfig_cursor == 4) - { - if (strlen(serialConfig_phone)) - serialConfig_phone[strlen(serialConfig_phone)-1] = 0; - } - break; - - default: - if (key < 32 || key > 127) - break; - if (serialConfig_cursor == 4) - { - l = strlen(serialConfig_phone); - if (l < 15) - { - serialConfig_phone[l+1] = 0; - serialConfig_phone[l] = key; - } - } - } - - if (DirectConfig && (serialConfig_cursor == 3 || serialConfig_cursor == 4)) - { - if (key == K_UPARROW) - serialConfig_cursor = 2; - else - serialConfig_cursor = 5; - } - - if (SerialConfig && StartingGame && serialConfig_cursor == 4) - { - if (key == K_UPARROW) - serialConfig_cursor = 3; - else - serialConfig_cursor = 5; - } -} - -//============================================================================= -/* MODEM CONFIG MENU */ - -int modemConfig_cursor; -int modemConfig_cursor_table [] = {40, 56, 88, 120, 156}; -#define NUM_MODEMCONFIG_CMDS 5 - -char modemConfig_dialing; -char modemConfig_clear [16]; -char modemConfig_init [32]; -char modemConfig_hangup [16]; - -void M_Menu_ModemConfig_f (void) -{ - key_dest = key_menu; - m_state = m_modemconfig; - m_entersound = true; - (*GetModemConfig) (0, &modemConfig_dialing, modemConfig_clear, modemConfig_init, modemConfig_hangup); -} - - -void M_ModemConfig_Draw (void) -{ - qpic_t *p; - int basex; - - M_DrawPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); - p = Draw_CachePic ("gfx/p_multi.lmp"); - basex = (320-p->width)/2; - M_DrawPic (basex, 4, p); - basex += 8; - - if (modemConfig_dialing == 'P') - M_Print (basex, modemConfig_cursor_table[0], "Pulse Dialing"); - else - M_Print (basex, modemConfig_cursor_table[0], "Touch Tone Dialing"); - - M_Print (basex, modemConfig_cursor_table[1], "Clear"); - M_DrawTextBox (basex, modemConfig_cursor_table[1]+4, 16, 1); - M_Print (basex+8, modemConfig_cursor_table[1]+12, modemConfig_clear); - if (modemConfig_cursor == 1) - M_DrawCharacter (basex+8 + 8*strlen(modemConfig_clear), modemConfig_cursor_table[1]+12, 10+((int)(realtime*4)&1)); - - M_Print (basex, modemConfig_cursor_table[2], "Init"); - M_DrawTextBox (basex, modemConfig_cursor_table[2]+4, 30, 1); - M_Print (basex+8, modemConfig_cursor_table[2]+12, modemConfig_init); - if (modemConfig_cursor == 2) - M_DrawCharacter (basex+8 + 8*strlen(modemConfig_init), modemConfig_cursor_table[2]+12, 10+((int)(realtime*4)&1)); - - M_Print (basex, modemConfig_cursor_table[3], "Hangup"); - M_DrawTextBox (basex, modemConfig_cursor_table[3]+4, 16, 1); - M_Print (basex+8, modemConfig_cursor_table[3]+12, modemConfig_hangup); - if (modemConfig_cursor == 3) - M_DrawCharacter (basex+8 + 8*strlen(modemConfig_hangup), modemConfig_cursor_table[3]+12, 10+((int)(realtime*4)&1)); - - M_DrawTextBox (basex, modemConfig_cursor_table[4]-8, 2, 1); - M_Print (basex+8, modemConfig_cursor_table[4], "OK"); - - M_DrawCharacter (basex-8, modemConfig_cursor_table [modemConfig_cursor], 12+((int)(realtime*4)&1)); -} - - -void M_ModemConfig_Key (int key) -{ - int l; - - switch (key) - { - case K_ESCAPE: - M_Menu_SerialConfig_f (); - break; - - case K_UPARROW: - S_LocalSound ("misc/menu1.wav"); - modemConfig_cursor--; - if (modemConfig_cursor < 0) - modemConfig_cursor = NUM_MODEMCONFIG_CMDS-1; - break; - - case K_DOWNARROW: - S_LocalSound ("misc/menu1.wav"); - modemConfig_cursor++; - if (modemConfig_cursor >= NUM_MODEMCONFIG_CMDS) - modemConfig_cursor = 0; - break; - - case K_LEFTARROW: - case K_RIGHTARROW: - if (modemConfig_cursor == 0) - { - if (modemConfig_dialing == 'P') - modemConfig_dialing = 'T'; - else - modemConfig_dialing = 'P'; - S_LocalSound ("misc/menu1.wav"); - } - break; - - case K_ENTER: - if (modemConfig_cursor == 0) - { - if (modemConfig_dialing == 'P') - modemConfig_dialing = 'T'; - else - modemConfig_dialing = 'P'; - m_entersound = true; - } - - if (modemConfig_cursor == 4) - { - (*SetModemConfig) (0, va ("%c", modemConfig_dialing), modemConfig_clear, modemConfig_init, modemConfig_hangup); - m_entersound = true; - M_Menu_SerialConfig_f (); - } - break; - - case K_BACKSPACE: - if (modemConfig_cursor == 1) - { - if (strlen(modemConfig_clear)) - modemConfig_clear[strlen(modemConfig_clear)-1] = 0; - } - - if (modemConfig_cursor == 2) - { - if (strlen(modemConfig_init)) - modemConfig_init[strlen(modemConfig_init)-1] = 0; - } - - if (modemConfig_cursor == 3) - { - if (strlen(modemConfig_hangup)) - modemConfig_hangup[strlen(modemConfig_hangup)-1] = 0; - } - break; - - default: - if (key < 32 || key > 127) - break; - - if (modemConfig_cursor == 1) - { - l = strlen(modemConfig_clear); - if (l < 15) - { - modemConfig_clear[l+1] = 0; - modemConfig_clear[l] = key; - } - } - - if (modemConfig_cursor == 2) - { - l = strlen(modemConfig_init); - if (l < 29) - { - modemConfig_init[l+1] = 0; - modemConfig_init[l] = key; - } - } - - if (modemConfig_cursor == 3) - { - l = strlen(modemConfig_hangup); - if (l < 15) - { - modemConfig_hangup[l+1] = 0; - modemConfig_hangup[l] = key; - } - } - } +//#endif } //============================================================================= @@ -3102,7 +2588,7 @@ void M_GameOptions_Key (int key) Cbuf_AddText ("disconnect\n"); Cbuf_AddText ("listen 0\n"); // so host_netport will be re-examined Cbuf_AddText ( va ("maxplayers %u\n", maxplayers) ); - SCR_BeginLoadingPlaque (); +// SCR_BeginLoadingPlaque (); if (hipnotic) Cbuf_AddText ( va ("map %s\n", hipnoticlevels[hipnoticepisodes[startepisode].firstLevel + startlevel].name) ); @@ -3341,24 +2827,20 @@ void M_Draw (void) if (m_state == m_none || key_dest != key_menu) return; + /* if (!m_recursiveDraw) { - scr_copyeverything = 1; - if (scr_con_current) { Draw_ConsoleBackground (vid.height); S_ExtraUpdate (); } -// else -// Draw_FadeScreen (); - - scr_fullupdate = 0; } else { m_recursiveDraw = false; } + */ switch (m_state) { @@ -3417,14 +2899,6 @@ void M_Draw (void) M_Quit_Draw (); break; - case m_serialconfig: - M_SerialConfig_Draw (); - break; - - case m_modemconfig: - M_ModemConfig_Draw (); - break; - case m_lanconfig: M_LanConfig_Draw (); break; @@ -3511,14 +2985,6 @@ void M_Keydown (int key) M_Quit_Key (key); return; - case m_serialconfig: - M_SerialConfig_Key (key); - return; - - case m_modemconfig: - M_ModemConfig_Key (key); - return; - case m_lanconfig: M_LanConfig_Key (key); return; @@ -3543,10 +3009,6 @@ void M_ConfigureNetSubsystem(void) // enable/disable net systems to match desired config Cbuf_AddText ("stopdemo\n"); - if (SerialConfig || DirectConfig) - { - Cbuf_AddText ("com1 enable\n"); - } if (IPXConfig || TCPIPConfig) net_hostport = lanConfig_port;