X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=menu.c;h=5958dcbf88da0eac127dcb129373a6a836bc2cc2;hb=6565597d1fb3cdf77b34f2497e6a0d54c544a9c5;hp=522b97bb3abcae825a936e37a457cd5f4512e4b2;hpb=22bcee42cc485c780d96c90deef808b0ad64d27d;p=xonotic%2Fdarkplaces.git diff --git a/menu.c b/menu.c index 522b97bb..5958dcbf 100644 --- a/menu.c +++ b/menu.c @@ -111,7 +111,7 @@ void M_Update_Return_Reason(char *s) { strlcpy(m_return_reason, s, sizeof(m_return_reason)); if (s) - Con_Printf("%s\n", s); + Con_DPrintf("%s\n", s); } #define StartingGame (m_multiplayer_cursor == 1) @@ -187,30 +187,30 @@ static void M_DrawCharacter (float cx, float cy, int num) char temp[2]; temp[0] = num; temp[1] = 0; - DrawQ_String_Font(menu_x + cx, menu_y + cy, temp, 1, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, temp, 1, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); } static void M_PrintColored(float cx, float cy, const char *str) { - DrawQ_String_Font(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, false, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, false, FONT_MENU); } static void M_Print(float cx, float cy, const char *str) { - DrawQ_String_Font(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); } static void M_PrintRed(float cx, float cy, const char *str) { - DrawQ_String_Font(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 0, 0, 1, 0, NULL, true, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 0, 0, 1, 0, NULL, true, FONT_MENU); } static void M_ItemPrint(float cx, float cy, const char *str, int unghosted) { if (unghosted) - DrawQ_String_Font(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, str, 0, 8, 8, 1, 1, 1, 1, 0, NULL, true, FONT_MENU); else - DrawQ_String_Font(menu_x + cx, menu_y + cy, str, 0, 8, 8, 0.4, 0.4, 0.4, 1, 0, NULL, true, FONT_MENU); + DrawQ_String(menu_x + cx, menu_y + cy, str, 0, 8, 8, 0.4, 0.4, 0.4, 1, 0, NULL, true, FONT_MENU); } static void M_DrawPic(float cx, float cy, const char *picname) @@ -270,23 +270,23 @@ static void M_DrawTextBox(float x, float y, float width, float height) /* ================ -M_ToggleMenu_f +M_ToggleMenu ================ */ -void M_ToggleMenu_f (void) +void M_ToggleMenu(int mode) { m_entersound = true; if ((key_dest != key_menu && key_dest != key_menu_grabbed) || m_state != m_main) { - if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "1")) - return; + if(mode == 0) + return; // the menu is off, and we want it off M_Menu_Main_f (); } else { - if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "0")) - return; + if(mode == 1) + return; // the menu is on, and we want it on key_dest = key_game; m_state = m_none; } @@ -812,18 +812,18 @@ static void M_SinglePlayer_Key (int key, int ascii) static int load_cursor; ///< 0 < load_cursor < MAX_SAVEGAMES -#define MAX_SAVEGAMES 12 static char m_filenames[MAX_SAVEGAMES][SAVEGAME_COMMENT_LENGTH+1]; static int loadable[MAX_SAVEGAMES]; static void M_ScanSaves (void) { - int i, j, len; + int i, j; + size_t len; char name[MAX_OSPATH]; char buf[SAVEGAME_COMMENT_LENGTH + 256]; const char *t; qfile_t *f; - int version; +// int version; for (i=0 ; i fabs(menu_video_resolutions[menu_video_resolution].width - w)) + if (abs(menu_video_resolutions[i].width - w) > abs(menu_video_resolutions[menu_video_resolution].width - w)) continue; // if it is equal in width, check height if (menu_video_resolutions[i].width == w && menu_video_resolutions[menu_video_resolution].width == w) { // if the new mode would be a worse match in height, skip it - if (fabs(menu_video_resolutions[i].height - h) > fabs(menu_video_resolutions[menu_video_resolution].height - h)) + if (abs(menu_video_resolutions[i].height - h) > abs(menu_video_resolutions[menu_video_resolution].height - h)) continue; // if it is equal in width and height, check pixel aspect if (menu_video_resolutions[i].height == h && menu_video_resolutions[menu_video_resolution].height == h) { // if the new mode would be a worse match in pixel aspect, skip it - if (fabs(menu_video_resolutions[i].pixelheight - a) > fabs(menu_video_resolutions[menu_video_resolution].pixelheight - a)) + if (abs(menu_video_resolutions[i].pixelheight - a) > abs(menu_video_resolutions[menu_video_resolution].pixelheight - a)) continue; // if it is equal in everything, skip it (prefer earlier modes) if (menu_video_resolutions[i].pixelheight == a && menu_video_resolutions[menu_video_resolution].pixelheight == a) @@ -2885,7 +2886,7 @@ static void M_Video_Draw (void) // Current and Proposed Resolution M_Print(16, video_cursor_table[t] - 12, " Current Resolution"); if (vid_supportrefreshrate && vid.userefreshrate && vid.fullscreen) - M_Print(220, video_cursor_table[t] - 12, va("%dx%d %dhz", vid.width, vid.height, vid.refreshrate)); + M_Print(220, video_cursor_table[t] - 12, va("%dx%d %.2fhz", vid.width, vid.height, vid.refreshrate)); else M_Print(220, video_cursor_table[t] - 12, va("%dx%d", vid.width, vid.height)); M_Print(16, video_cursor_table[t], " New Resolution"); @@ -2910,7 +2911,7 @@ static void M_Video_Draw (void) // Refresh Rate M_ItemPrint(16, video_cursor_table[t], " Refresh Rate", vid_supportrefreshrate && vid_userefreshrate.integer); - M_DrawSlider(220, video_cursor_table[t], vid_refreshrate.integer, 60, 150); + M_DrawSlider(220, video_cursor_table[t], vid_refreshrate.value, 50, 150); t++; // Fullscreen @@ -2919,19 +2920,19 @@ static void M_Video_Draw (void) t++; // Vertical Sync - M_ItemPrint(16, video_cursor_table[t], " Vertical Sync", gl_videosyncavailable); + M_ItemPrint(16, video_cursor_table[t], " Vertical Sync", true); M_DrawCheckbox(220, video_cursor_table[t], vid_vsync.integer); t++; - M_ItemPrint(16, video_cursor_table[t], " Anisotropic Filter", gl_support_anisotropy); - M_DrawSlider(220, video_cursor_table[t], gl_texture_anisotropy.integer, 1, gl_max_anisotropy); + M_ItemPrint(16, video_cursor_table[t], " Anisotropic Filter", vid.support.ext_texture_filter_anisotropic); + M_DrawSlider(220, video_cursor_table[t], gl_texture_anisotropy.integer, 1, vid.max_anisotropy); t++; M_ItemPrint(16, video_cursor_table[t], " Texture Quality", true); M_DrawSlider(220, video_cursor_table[t], gl_picmip.value, 3, 0); t++; - M_ItemPrint(16, video_cursor_table[t], " Texture Compression", gl_support_texture_compression); + M_ItemPrint(16, video_cursor_table[t], " Texture Compression", vid.support.arb_texture_compression); M_DrawCheckbox(220, video_cursor_table[t], gl_texturecompression.integer); t++; @@ -2973,13 +2974,13 @@ static void M_Menu_Video_AdjustSliders (int dir) else if (video_cursor == t++) Cvar_SetValueQuick (&vid_userefreshrate, !vid_userefreshrate.integer); else if (video_cursor == t++) - Cvar_SetValueQuick (&vid_refreshrate, bound(60, vid_refreshrate.integer + dir, 150)); + Cvar_SetValueQuick (&vid_refreshrate, bound(50, vid_refreshrate.value + dir, 150)); else if (video_cursor == t++) Cvar_SetValueQuick (&vid_fullscreen, !vid_fullscreen.integer); else if (video_cursor == t++) Cvar_SetValueQuick (&vid_vsync, !vid_vsync.integer); else if (video_cursor == t++) - Cvar_SetValueQuick (&gl_texture_anisotropy, bound(1, gl_texture_anisotropy.value * (dir < 0 ? 0.5 : 2.0), gl_max_anisotropy)); + Cvar_SetValueQuick (&gl_texture_anisotropy, bound(1, gl_texture_anisotropy.value * (dir < 0 ? 0.5 : 2.0), vid.max_anisotropy)); else if (video_cursor == t++) Cvar_SetValueQuick (&gl_picmip, bound(0, gl_picmip.value - dir, 3)); else if (video_cursor == t++) @@ -4401,9 +4402,10 @@ static void M_ServerList_Draw (void) { for (n = start;n < end;n++) { + serverlist_entry_t *entry = ServerList_GetViewEntry(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); - M_PrintColored(0, y, serverlist_viewlist[n]->line1);y += 8; - M_PrintColored(0, y, serverlist_viewlist[n]->line2);y += 8; + M_PrintColored(0, y, entry->line1);y += 8; + M_PrintColored(0, y, entry->line2);y += 8; } } else if (realtime - masterquerytime > 10) @@ -4457,7 +4459,7 @@ static void M_ServerList_Key(int k, int ascii) case K_ENTER: S_LocalSound ("sound/misc/menu2.wav"); if (serverlist_viewcount) - Cbuf_AddText(va("connect \"%s\"\n", serverlist_viewlist[slist_cursor]->info.cname)); + Cbuf_AddText(va("connect \"%s\"\n", ServerList_GetViewEntry(slist_cursor)->info.cname)); break; default: @@ -4487,7 +4489,6 @@ typedef struct modlist_entry_s static int modlist_cursor; //static int modlist_viewcount; -#define MODLIST_TOTALSIZE 256 static int modlist_count = 0; static modlist_entry_t modlist[MODLIST_TOTALSIZE]; @@ -4695,7 +4696,7 @@ static void M_ModList_Key(int k, int ascii) static void M_KeyEvent(int key, int ascii, qboolean downevent); static void M_Draw(void); -void M_ToggleMenu_f(void); +void M_ToggleMenu(int mode); static void M_Shutdown(void); void M_Init (void) @@ -5143,11 +5144,12 @@ void MP_Draw (void) R_SelectScene( RST_CLIENT ); } -void MP_ToggleMenu_f (void) +void MP_ToggleMenu(int mode) { PRVM_Begin; PRVM_SetProg(PRVM_MENUPROG); + prog->globals.generic[OFS_PARM0] = (float) mode; PRVM_ExecuteProgram(prog->funcoffsets.m_toggle,"m_toggle() required"); PRVM_End; @@ -5185,6 +5187,7 @@ void MP_Init (void) prog->init_cmd = VM_M_Cmd_Init; prog->reset_cmd = VM_M_Cmd_Reset; prog->error_cmd = MP_Error; + prog->ExecuteProgram = MVM_ExecuteProgram; // allocate the mempools prog->progs_mempool = Mem_AllocPool(M_PROG_FILENAME, 0, NULL); @@ -5212,7 +5215,7 @@ void MP_Restart(void) void (*MR_KeyEvent) (int key, int ascii, qboolean downevent); void (*MR_Draw) (void); -void (*MR_ToggleMenu_f) (void); +void (*MR_ToggleMenu) (int mode); void (*MR_Shutdown) (void); void MR_SetRouting(qboolean forceold) @@ -5225,7 +5228,7 @@ void MR_SetRouting(qboolean forceold) // set menu router function pointers MR_KeyEvent = M_KeyEvent; MR_Draw = M_Draw; - MR_ToggleMenu_f = M_ToggleMenu_f; + MR_ToggleMenu = M_ToggleMenu; MR_Shutdown = M_Shutdown; // init @@ -5242,7 +5245,7 @@ void MR_SetRouting(qboolean forceold) // set menu router function pointers MR_KeyEvent = MP_KeyEvent; MR_Draw = MP_Draw; - MR_ToggleMenu_f = MP_ToggleMenu_f; + MR_ToggleMenu = MP_ToggleMenu; MR_Shutdown = MP_Shutdown; if(!mp_init) @@ -5263,9 +5266,11 @@ void MR_Restart(void) void Call_MR_ToggleMenu_f(void) { + int m; + m = ((Cmd_Argc() < 2) ? -1 : atoi(Cmd_Argv(1))); Host_StartVideo(); - if(MR_ToggleMenu_f) - MR_ToggleMenu_f(); + if(MR_ToggleMenu) + MR_ToggleMenu(m); } void MR_Init_Commands(void) @@ -5377,7 +5382,7 @@ void MR_Init(void) } if(video_resolutions[i].conwidth > video_resolutions[i].width || video_resolutions[i].conheight > video_resolutions[i].height) { - double f1, f2; + int f1, f2; f1 = video_resolutions[i].conwidth > video_resolutions[i].width; f2 = video_resolutions[i].conheight > video_resolutions[i].height; if(f1 > f2)