#include "ui_local.h" //=================================================================== // // CDKey Menu // //=================================================================== static int currentFont; // menu action identifiers #define ID_MAINMENU 100 #define ID_CONTROLS 101 #define ID_VIDEO 102 #define ID_SOUND 103 #define ID_CDKEY 104 #define ID_FONT_SMALL 301 #define ID_FONT_MEDIUM 302 #define ID_FONT_LARGE 303 #define ID_FONT_GRID 304 static menuframework_s s_fonts_menu; //static menubitmap_s s_cdkey_mainmenu; //static menubitmap_s s_cdkey_controls; //static menubitmap_s s_cdkey_video; //static menubitmap_s s_cdkey_sound; //static menubitmap_s s_cdkey_game; //static menubitmap_s s_cdkey_cdkey; static menubitmap_s s_fonts_small; static menubitmap_s s_fonts_medium; static menubitmap_s s_fonts_large; static menubitmap_s s_fonts_grid; /* ================= M_GridFont_Graphics ================= */ void M_GridFont_Graphics (void) { int x,y,color; int i,i2,xInc; char character[2]; character[1] = 0; y = 190; color = CT_LTORANGE; for (i=32;i<256;) { x = 100; for (i2=0;i2<30;++i2,++i) { character[0] = i; UI_DrawString(x, y, character, UI_SMALLFONT, colorTable[CT_WHITE], qtrue); xInc =SMALLCHAR_WIDTH + 1; if (xInc > 0) { x += xInc; } if (i>=256) { break; } } y += (SMALLCHAR_HEIGHT * 1.25); } } /* ================= M_LargeFont_Graphics ================= */ void M_LargeFont_Graphics (void) { int x,y,color; int i,i2,xInc; char character[2]; character[1] = 0; y = 190; color = CT_LTORANGE; for (i=32;i<256;) { x = 100; for (i2=0;i2<30;++i2,++i) { character[0] = i; UI_DrawProportionalString( x, y, character, UI_BIGFONT, colorTable[color] ); xInc = UI_ProportionalStringWidth( character,UI_BIGFONT) + 1; if (xInc > 0) { x += xInc; } if (i>=256) { break; } } y += 30; } } /* ================= M_MediumFont_Graphics ================= */ void M_MediumFont_Graphics (void) { int x,y,color; int i,i2,xInc; char character[2]; character[1] = 0; y = 190; color = CT_LTORANGE; for (i=32;i<256;) { x = 100; for (i2=0;i2<30;++i2,++i) { character[0] = i; UI_DrawProportionalString( x, y, character, UI_SMALLFONT, colorTable[color] ); xInc = UI_ProportionalStringWidth( character,UI_SMALLFONT) + 1; if (xInc > 0) { x += xInc; } if (i>=256) { break; } } y += 24; } } /* ================= M_SmallFont_Graphics ================= */ void M_SmallFont_Graphics (void) { int x,y,color; int i,i2,xInc; char character[2]; character[1] = 0; y = 190; color = CT_LTORANGE; for (i=32;i<256;) { x = 100; for (i2=0;i2<30;++i2,++i) { character[0] = i; UI_DrawProportionalString( x, y, character, UI_TINYFONT, colorTable[color] ); xInc = UI_ProportionalStringWidth( character,UI_TINYFONT) + 1; if (xInc > 0) { x += xInc; } if (i>=256) { break; } } y += 16; } } /* ================= M_Fonts_Graphics ================= */ void M_Fonts_Graphics (void) { UI_MenuFrame(&s_fonts_menu); UI_Setup_MenuButtons(); trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left column square on bottom 3rd switch (currentFont) { case ID_FONT_SMALL : M_SmallFont_Graphics(); break; case ID_FONT_MEDIUM : M_MediumFont_Graphics(); break; case ID_FONT_LARGE : M_LargeFont_Graphics(); break; case ID_FONT_GRID : M_GridFont_Graphics(); break; } } /* ================= M_Fonts_MenuDraw ================= */ void M_Fonts_MenuDraw (void) { M_Fonts_Graphics(); Menu_Draw( &s_fonts_menu ); } /* ================= Fonts_MenuEvent ================= */ static void Fonts_MenuEvent( void* ptr, int notification ) { menuframework_s* m; if (notification != QM_ACTIVATED) return; m = ((menucommon_s*)ptr)->parent; switch (((menucommon_s*)ptr)->id) { case ID_FONT_SMALL: currentFont = ID_FONT_SMALL; break; case ID_FONT_MEDIUM: currentFont = ID_FONT_MEDIUM; break; case ID_FONT_LARGE: currentFont = ID_FONT_LARGE; break; case ID_FONT_GRID: currentFont = ID_FONT_GRID; break; case ID_VIDEO: UI_PopMenu(); UI_VideoDataMenu(); return; case ID_CONTROLS: UI_PopMenu(); // UI_SetupWeaponsMenu(); break; case ID_SOUND: UI_PopMenu(); UI_SoundMenu(); break; case ID_CDKEY: UI_PopMenu(); UI_CDKeyMenu(); break; case ID_MAINMENU: UI_PopMenu(); break; } } /* ================= M_Fonts_MenuKey ================= */ static sfxHandle_t M_Fonts_MenuKey( int key ) { return Menu_DefaultKey( &s_fonts_menu, key ); } /* =============== UI_FontsMenu_Cache =============== */ void UI_FontsMenu_Cache( void ) { ; } /* =============== FontsMenu_Init =============== */ void FontsMenu_Init(void) { UI_FontsMenu_Cache(); s_fonts_menu.nitems = 0; s_fonts_menu.wrapAround = qtrue; s_fonts_menu.draw = M_Fonts_MenuDraw; s_fonts_menu.key = M_Fonts_MenuKey; s_fonts_menu.fullscreen = qtrue; s_fonts_menu.wrapAround = qfalse; s_fonts_menu.descX = MENU_DESC_X; s_fonts_menu.descY = MENU_DESC_Y; s_fonts_menu.titleX = MENU_TITLE_X; s_fonts_menu.titleY = MENU_TITLE_Y; s_fonts_menu.titleI = MNT_CONTROLSMENU_TITLE; s_fonts_menu.footNoteEnum = MNT_FONTS_DEVELOPER; SetupMenu_TopButtons(&s_fonts_menu,MENU_FONTS,NULL); s_fonts_small.generic.type = MTYPE_BITMAP; s_fonts_small.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_fonts_small.generic.x = 100; s_fonts_small.generic.y = 170; s_fonts_small.generic.name = GRAPHIC_BUTTONRIGHT; s_fonts_small.generic.id = ID_FONT_SMALL; s_fonts_small.generic.callback = Fonts_MenuEvent; s_fonts_small.width = 100; s_fonts_small.height = MENU_BUTTON_MED_HEIGHT; s_fonts_small.color = CT_DKPURPLE1; s_fonts_small.color2 = CT_LTPURPLE1; s_fonts_small.textX = 5; s_fonts_small.textY = 2; s_fonts_small.textEnum = MBT_FONTSSMALL; s_fonts_small.textcolor = CT_BLACK; s_fonts_small.textcolor2 = CT_WHITE; s_fonts_medium.generic.type = MTYPE_BITMAP; s_fonts_medium.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_fonts_medium.generic.x = 250; s_fonts_medium.generic.y = 170; s_fonts_medium.generic.name = GRAPHIC_BUTTONRIGHT; s_fonts_medium.generic.id = ID_FONT_MEDIUM; s_fonts_medium.generic.callback = Fonts_MenuEvent; s_fonts_medium.width = 100; s_fonts_medium.height = MENU_BUTTON_MED_HEIGHT; s_fonts_medium.color = CT_DKPURPLE1; s_fonts_medium.color2 = CT_LTPURPLE1; s_fonts_medium.textX = 5; s_fonts_medium.textY = 2; s_fonts_medium.textEnum = MBT_FONTSMEDIUM; s_fonts_medium.textcolor = CT_BLACK; s_fonts_medium.textcolor2 = CT_WHITE; s_fonts_large.generic.type = MTYPE_BITMAP; s_fonts_large.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_fonts_large.generic.x = 400; s_fonts_large.generic.y = 170; s_fonts_large.generic.name = GRAPHIC_BUTTONRIGHT; s_fonts_large.generic.id = ID_FONT_LARGE; s_fonts_large.generic.callback = Fonts_MenuEvent; s_fonts_large.width = 100; s_fonts_large.height = MENU_BUTTON_MED_HEIGHT; s_fonts_large.color = CT_DKPURPLE1; s_fonts_large.color2 = CT_LTPURPLE1; s_fonts_large.textX = 5; s_fonts_large.textY = 2; s_fonts_large.textEnum = MBT_FONTSLARGE; s_fonts_large.textcolor = CT_BLACK; s_fonts_large.textcolor2 = CT_WHITE; s_fonts_grid.generic.type = MTYPE_BITMAP; s_fonts_grid.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_fonts_grid.generic.x = 550; s_fonts_grid.generic.y = 170; s_fonts_grid.generic.name = GRAPHIC_BUTTONRIGHT; s_fonts_grid.generic.id = ID_FONT_GRID; s_fonts_grid.generic.callback = Fonts_MenuEvent; s_fonts_grid.width = 100; s_fonts_grid.height = MENU_BUTTON_MED_HEIGHT; s_fonts_grid.color = CT_DKPURPLE1; s_fonts_grid.color2 = CT_LTPURPLE1; s_fonts_grid.textX = 5; s_fonts_grid.textY = 2; s_fonts_grid.textEnum = MBT_FONTSGRID; s_fonts_grid.textcolor = CT_BLACK; s_fonts_grid.textcolor2 = CT_WHITE; Menu_AddItem( &s_fonts_menu, ( void * )&s_fonts_small); Menu_AddItem( &s_fonts_menu, ( void * )&s_fonts_medium); Menu_AddItem( &s_fonts_menu, ( void * )&s_fonts_large); Menu_AddItem( &s_fonts_menu, ( void * )&s_fonts_grid); currentFont = ID_FONT_SMALL; } /* =============== UI_FontsMenu =============== */ void UI_FontsMenu( void) { FontsMenu_Init(); UI_PushMenu( &s_fonts_menu); }