X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=menu.c;h=7417844b5d67a72792e3837e14c9fd45db3c7917;hb=a854130c17f1490cf5fb25650994c12d8c9ad0a7;hp=afae9ad2296602c7b8f8ee8dadd70678538fae12;hpb=c8da47e131e620b5a1d611ed10450985c8c2e2c5;p=xonotic%2Fdarkplaces.git diff --git a/menu.c b/menu.c index afae9ad2..7417844b 100644 --- a/menu.c +++ b/menu.c @@ -82,30 +82,30 @@ static void M_ServerList_Draw (void); static void M_ModList_Draw (void); -static void M_Main_Key (int key, char ascii); - static void M_SinglePlayer_Key (int key, char ascii); - static void M_Transfusion_Episode_Key (int key, char ascii); - static void M_Transfusion_Skill_Key (int key, char ascii); - static void M_Load_Key (int key, char ascii); - static void M_Save_Key (int key, char ascii); - static void M_MultiPlayer_Key (int key, char ascii); - static void M_Setup_Key (int key, char ascii); - static void M_Options_Key (int key, char ascii); - static void M_Options_Effects_Key (int key, char ascii); - static void M_Options_Graphics_Key (int key, char ascii); - static void M_Options_ColorControl_Key (int key, char ascii); - static void M_Keys_Key (int key, char ascii); - static void M_Reset_Key (int key, char ascii); - static void M_Video_Key (int key, char ascii); - static void M_Help_Key (int key, char ascii); - static void M_Credits_Key (int key, char ascii); - static void M_Quit_Key (int key, char ascii); -static void M_LanConfig_Key (int key, char ascii); -static void M_GameOptions_Key (int key, char ascii); -static void M_ServerList_Key (int key, char ascii); -static void M_ModList_Key (int key, char ascii); - -static qboolean m_entersound; // play after drawing a frame, so caching won't disrupt the sound +static void M_Main_Key (int key, int ascii); + static void M_SinglePlayer_Key (int key, int ascii); + static void M_Transfusion_Episode_Key (int key, int ascii); + static void M_Transfusion_Skill_Key (int key, int ascii); + static void M_Load_Key (int key, int ascii); + static void M_Save_Key (int key, int ascii); + static void M_MultiPlayer_Key (int key, int ascii); + static void M_Setup_Key (int key, int ascii); + static void M_Options_Key (int key, int ascii); + static void M_Options_Effects_Key (int key, int ascii); + static void M_Options_Graphics_Key (int key, int ascii); + static void M_Options_ColorControl_Key (int key, int ascii); + static void M_Keys_Key (int key, int ascii); + static void M_Reset_Key (int key, int ascii); + static void M_Video_Key (int key, int ascii); + static void M_Help_Key (int key, int ascii); + static void M_Credits_Key (int key, int ascii); + static void M_Quit_Key (int key, int ascii); +static void M_LanConfig_Key (int key, int ascii); +static void M_GameOptions_Key (int key, int ascii); +static void M_ServerList_Key (int key, int ascii); +static void M_ModList_Key (int key, int ascii); + +static qboolean m_entersound; ///< play after drawing a frame, so caching won't disrupt the sound void M_Update_Return_Reason(char *s) { @@ -316,7 +316,7 @@ void M_Menu_Demos_f (void) } -static void M_Demo_Key (int k, char ascii) +static void M_Demo_Key (int k, int ascii) { switch (k) { @@ -467,7 +467,7 @@ static void M_Main_Draw (void) } -static void M_Main_Key (int key, char ascii) +static void M_Main_Key (int key, int ascii) { switch (key) { @@ -748,7 +748,7 @@ static void M_SinglePlayer_Draw (void) } -static void M_SinglePlayer_Key (int key, char ascii) +static void M_SinglePlayer_Key (int key, int ascii) { if (gamemode == GAME_GOODVSBAD2 || gamemode == GAME_BATTLEMECH) { @@ -810,7 +810,7 @@ static void M_SinglePlayer_Key (int key, char ascii) //============================================================================= /* LOAD/SAVE MENU */ -static int load_cursor; // 0 < load_cursor < MAX_SAVEGAMES +static int load_cursor; ///< 0 < load_cursor < MAX_SAVEGAMES #define MAX_SAVEGAMES 12 static char m_filenames[MAX_SAVEGAMES][SAVEGAME_COMMENT_LENGTH+1]; @@ -829,8 +829,8 @@ static void M_ScanSaves (void) { strlcpy (m_filenames[i], "--- UNUSED SLOT ---", sizeof(m_filenames[i])); loadable[i] = false; - sprintf (name, "s%i.sav", (int)i); - f = FS_Open (name, "rb", false, false); + dpsnprintf (name, sizeof(name), "s%i.sav", (int)i); + f = FS_OpenRealFile (name, "rb", false); if (!f) continue; // read enough to get the comment @@ -913,7 +913,7 @@ static void M_Save_Draw (void) } -static void M_Load_Key (int k, char ascii) +static void M_Load_Key (int k, int ascii) { switch (k) { @@ -954,7 +954,7 @@ static void M_Load_Key (int k, char ascii) } -static void M_Save_Key (int k, char ascii) +static void M_Save_Key (int k, int ascii) { switch (k) { @@ -1017,7 +1017,7 @@ static void M_Transfusion_Episode_Draw (void) M_DrawPic (0, 120 + (m_episode_cursor + 1) * 40, va("gfx/menu/episode%iselected", m_episode_cursor + 1)); } -static void M_Transfusion_Episode_Key (int key, char ascii) +static void M_Transfusion_Episode_Key (int key, int ascii) { switch (key) { @@ -1075,7 +1075,7 @@ static void M_Transfusion_Skill_Draw (void) M_DrawPic (0, 140 + (m_skill_cursor + 1) *40, va("gfx/menu/difficulty%iselected", m_skill_cursor + 1)); } -static void M_Transfusion_Skill_Key (int key, char ascii) +static void M_Transfusion_Skill_Key (int key, int ascii) { switch (key) { @@ -1189,7 +1189,7 @@ static void M_MultiPlayer_Draw (void) } -static void M_MultiPlayer_Key (int key, char ascii) +static void M_MultiPlayer_Key (int key, int ascii) { switch (key) { @@ -1382,7 +1382,7 @@ static void M_Setup_Draw (void) } -static void M_Setup_Key (int k, char ascii) +static void M_Setup_Key (int k, int ascii) { int l; @@ -1508,9 +1508,9 @@ static void M_DrawSlider (int x, int y, float num, float rangemin, float rangema M_DrawCharacter (x+i*8, y, 130); M_DrawCharacter (x + (SLIDER_RANGE-1)*8 * range, y, 131); if (fabs((int)num - num) < 0.01) - sprintf(text, "%i", (int)num); + dpsnprintf(text, sizeof(text), "%i", (int)num); else - sprintf(text, "%.3f", num); + dpsnprintf(text, sizeof(text), "%.3f", num); M_Print(x + (SLIDER_RANGE+2) * 8, y, text); } @@ -1553,7 +1553,7 @@ static void M_Menu_Options_AdjustSliders (int dir) else if (options_cursor == optnum++) ; else if (options_cursor == optnum++) ; else if (options_cursor == optnum++) ; - else if (options_cursor == optnum++) Cvar_SetValueQuick(&crosshair, bound(0, crosshair.integer + dir, 6)); + else if (options_cursor == optnum++) Cvar_SetValueQuick(&crosshair, bound(0, crosshair.integer + dir, 7)); else if (options_cursor == optnum++) Cvar_SetValueQuick(&sensitivity, bound(1, sensitivity.value + dir * 0.5, 50)); else if (options_cursor == optnum++) Cvar_SetValueQuick(&m_pitch, -m_pitch.value); else if (options_cursor == optnum++) Cvar_SetValueQuick(&scr_fov, bound(1, scr_fov.integer + dir * 1, 170)); @@ -1642,7 +1642,7 @@ static void M_Options_Draw (void) M_Options_PrintCommand( " Go to console", true); M_Options_PrintCommand( " Reset to defaults", true); M_Options_PrintCommand( " Change Video Mode", true); - M_Options_PrintSlider( " Crosshair", true, crosshair.value, 0, 5); + M_Options_PrintSlider( " Crosshair", true, crosshair.value, 0, 7); M_Options_PrintSlider( " Mouse Speed", true, sensitivity.value, 1, 50); M_Options_PrintCheckbox(" Invert Mouse", true, m_pitch.value < 0); M_Options_PrintSlider( " Field of View", true, scr_fov.integer, 1, 170); @@ -1668,7 +1668,7 @@ static void M_Options_Draw (void) } -static void M_Options_Key (int k, char ascii) +static void M_Options_Key (int k, int ascii) { switch (k) { @@ -1883,7 +1883,7 @@ static void M_Options_Effects_Draw (void) } -static void M_Options_Effects_Key (int k, char ascii) +static void M_Options_Effects_Key (int k, int ascii) { switch (k) { @@ -2019,7 +2019,7 @@ static void M_Options_Graphics_Draw (void) } -static void M_Options_Graphics_Key (int k, char ascii) +static void M_Options_Graphics_Key (int k, int ascii) { switch (k) { @@ -2176,7 +2176,7 @@ static void M_Options_ColorControl_Draw (void) float x, c, s, t, u, v; cachepic_t *p, *dither; - dither = Draw_CachePic ("gfx/colorcontrol/ditherpattern"); + dither = Draw_CachePic_Flags ("gfx/colorcontrol/ditherpattern", CACHEPICFLAG_NOCLAMP); M_Background(320, 256); @@ -2246,7 +2246,7 @@ static void M_Options_ColorControl_Draw (void) } -static void M_Options_ColorControl_Key (int k, char ascii) +static void M_Options_ColorControl_Key (int k, int ascii) { switch (k) { @@ -2511,7 +2511,7 @@ static int bind_grab; void M_Menu_Keys_f (void) { - key_dest = key_menu; + key_dest = key_menu_grabbed; m_state = m_keys; m_entersound = true; } @@ -2620,7 +2620,7 @@ static void M_Keys_Draw (void) } -static void M_Keys_Key (int k, char ascii) +static void M_Keys_Key (int k, int ascii) { char cmd[80]; int keys[NUMKEYS]; @@ -2634,7 +2634,7 @@ static void M_Keys_Key (int k, char ascii) } else //if (k != '`') { - sprintf (cmd, "bind \"%s\" \"%s\"\n", Key_KeynumToString (k), bindnames[keys_cursor][0]); + dpsnprintf (cmd, sizeof(cmd), "bind \"%s\" \"%s\"\n", Key_KeynumToString (k), bindnames[keys_cursor][0]); Cbuf_InsertText (cmd); } @@ -2696,7 +2696,7 @@ void M_Menu_Reset_f (void) } -static void M_Reset_Key (int key, char ascii) +static void M_Reset_Key (int key, int ascii) { switch (key) { @@ -2777,6 +2777,7 @@ video_resolution_t video_resolutions[] = {"WideScreen 16x9" , 683, 384, 683, 384, 1 }, {"WideScreen 16x9" , 960, 540, 640, 360, 1 }, {"WideScreen 16x9" , 1280, 720, 640, 360, 1 }, +{"WideScreen 16x9" , 1360, 768, 680, 384, 1 }, {"WideScreen 16x9" , 1366, 768, 683, 384, 1 }, {"WideScreen 16x9" , 1920,1080, 640, 360, 1 }, {"WideScreen 16x9" , 2560,1440, 640, 360, 1 }, @@ -2958,7 +2959,7 @@ static void M_Menu_Video_AdjustSliders (int dir) } -static void M_Video_Key (int key, char ascii) +static void M_Video_Key (int key, int ascii) { switch (key) { @@ -3041,7 +3042,7 @@ static void M_Help_Draw (void) } -static void M_Help_Key (int key, char ascii) +static void M_Help_Key (int key, int ascii) { switch (key) { @@ -3088,7 +3089,7 @@ static void M_Credits_Draw (void) } -static void M_Credits_Key (int key, char ascii) +static void M_Credits_Key (int key, int ascii) { M_Menu_Main_f (); } @@ -3176,7 +3177,7 @@ static int M_ChooseQuitMessage(int request) break; } return 0; -}; +} void M_Menu_Quit_f (void) { @@ -3195,7 +3196,7 @@ void M_Menu_Quit_f (void) } -static void M_Quit_Key (int key, char ascii) +static void M_Quit_Key (int key, int ascii) { switch (key) { @@ -3256,7 +3257,7 @@ static int lanConfig_cursor_table [] = {56, 76, 84, 120}; static int lanConfig_port; static char lanConfig_portname[6]; -static char lanConfig_joinname[22]; +static char lanConfig_joinname[40]; void M_Menu_LanConfig_f (void) { @@ -3271,7 +3272,7 @@ void M_Menu_LanConfig_f (void) if (StartingGame) lanConfig_cursor = 1; lanConfig_port = 26000; - sprintf(lanConfig_portname, "%u", (unsigned int) lanConfig_port); + dpsnprintf(lanConfig_portname, sizeof(lanConfig_portname), "%u", (unsigned int) lanConfig_port); M_Update_Return_Reason(""); } @@ -3300,7 +3301,7 @@ static void M_LanConfig_Draw (void) basex += 8; M_Print(basex, lanConfig_cursor_table[0], "Port"); - M_DrawTextBox (basex+8*8, lanConfig_cursor_table[0]-8, 6, 1); + M_DrawTextBox (basex+8*8, lanConfig_cursor_table[0]-8, sizeof(lanConfig_portname), 1); M_Print(basex+9*8, lanConfig_cursor_table[0], lanConfig_portname); if (JoiningGame) @@ -3308,7 +3309,7 @@ static void M_LanConfig_Draw (void) 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_DrawTextBox (basex+8, lanConfig_cursor_table[3]-8, sizeof(lanConfig_joinname), 1); M_Print(basex+16, lanConfig_cursor_table[3], lanConfig_joinname); } else @@ -3330,7 +3331,7 @@ static void M_LanConfig_Draw (void) } -static void M_LanConfig_Key (int key, char ascii) +static void M_LanConfig_Key (int key, int ascii) { int l; @@ -3406,7 +3407,7 @@ static void M_LanConfig_Key (int key, char ascii) if (lanConfig_cursor == 3) { l = (int)strlen(lanConfig_joinname); - if (l < 21) + if (l < (int)sizeof(lanConfig_joinname) - 1) { lanConfig_joinname[l+1] = 0; lanConfig_joinname[l] = ascii; @@ -3418,7 +3419,7 @@ static void M_LanConfig_Key (int key, char ascii) if (lanConfig_cursor == 0) { l = (int)strlen(lanConfig_portname); - if (l < 5) + if (l < (int)sizeof(lanConfig_portname) - 1) { lanConfig_portname[l+1] = 0; lanConfig_portname[l] = ascii; @@ -3437,7 +3438,7 @@ static void M_LanConfig_Key (int key, char ascii) l = atoi(lanConfig_portname); if (l <= 65535) lanConfig_port = l; - sprintf(lanConfig_portname, "%u", (unsigned int) lanConfig_port); + dpsnprintf(lanConfig_portname, sizeof(lanConfig_portname), "%u", (unsigned int) lanConfig_port); } //============================================================================= @@ -4238,7 +4239,7 @@ static void M_NetStart_Change (int dir) } } -static void M_GameOptions_Key (int key, char ascii) +static void M_GameOptions_Key (int key, int ascii) { gamelevels_t *g; int l; @@ -4394,7 +4395,7 @@ static void M_ServerList_Draw (void) } -static void M_ServerList_Key(int k, char ascii) +static void M_ServerList_Key(int k, int ascii) { switch (k) { @@ -4468,10 +4469,7 @@ void ModList_RebuildList(void) stringlist_t list; stringlistinit(&list); - if (fs_basedir[0]) - listdirectory(&list, fs_basedir); - else - listdirectory(&list, "./"); + listdirectory(&list, fs_basedir, ""); stringlistsort(&list); modlist_count = 0; modlist_numenabled = fs_numgamedirs; @@ -4617,7 +4615,7 @@ static void M_ModList_Draw (void) } } -static void M_ModList_Key(int k, char ascii) +static void M_ModList_Key(int k, int ascii) { switch (k) { @@ -4667,7 +4665,7 @@ static void M_ModList_Key(int k, char ascii) //============================================================================= /* Menu Subsystem */ -static void M_KeyEvent(int key, char ascii, qboolean downevent); +static void M_KeyEvent(int key, int ascii, qboolean downevent); static void M_Draw(void); void M_ToggleMenu_f(void); static void M_Shutdown(void); @@ -4904,7 +4902,7 @@ void M_Draw (void) } -void M_KeyEvent (int key, char ascii, qboolean downevent) +void M_KeyEvent (int key, int ascii, qboolean downevent) { if (!downevent) return; @@ -5069,7 +5067,7 @@ void MP_Error(const char *format, ...) Host_AbortCurrentFrame(); } -void MP_KeyEvent (int key, char ascii, qboolean downevent) +void MP_KeyEvent (int key, int ascii, qboolean downevent) { PRVM_Begin; PRVM_SetProg(PRVM_MENUPROG); @@ -5168,6 +5166,8 @@ void MP_Init (void) // note: OP_STATE is not supported by menu qc, we don't even try to detect // it here + in_client_mouse = true; + // call the prog init PRVM_ExecuteProgram(prog->funcoffsets.m_init,"m_init() required"); @@ -5182,7 +5182,7 @@ void MP_Restart(void) //============================================================================ // Menu router -void (*MR_KeyEvent) (int key, char ascii, qboolean downevent); +void (*MR_KeyEvent) (int key, int ascii, qboolean downevent); void (*MR_Draw) (void); void (*MR_ToggleMenu_f) (void); void (*MR_Shutdown) (void); @@ -5245,7 +5245,7 @@ void MR_Init_Commands(void) // set router console commands Cvar_RegisterVariable (&forceqmenu); Cvar_RegisterVariable (&menu_options_colorcontrol_correctionvalue); - Cmd_AddCommand ("menu_restart",MR_Restart, "restart menu system (reloads menu.dat"); + Cmd_AddCommand ("menu_restart",MR_Restart, "restart menu system (reloads menu.dat)"); Cmd_AddCommand ("togglemenu", Call_MR_ToggleMenu_f, "opens or closes menu"); }