/* ================= PlayerSettings_DrawEffects ================= */ static void PlayerSettings_DrawEffects( void *self ) { menulist_s *item, *item1, *item2, *item3; qboolean focus; int style; float *color; item = (menulist_s *)self; item1 = &s_playersettings.effects; item2 = &s_playersettings.effects2; item3 = &s_playersettings.effects3; focus = (item1->generic.parent->cursor == item1->generic.menuPosition) || (item2->generic.parent->cursor == item2->generic.menuPosition) || (item3->generic.parent->cursor == item3->generic.menuPosition); // focus = (item->generic.parent->cursor == item->generic.menuPosition); style = UI_LEFT|UI_SMALLFONT; color = text_color_normal; if( focus ) { style |= UI_PULSE; color = text_color_highlight; } if ( item->generic.id == ID_EFFECTS ) UI_DrawProportionalString( item->generic.x, item->generic.y, "Effects", style, color ); focus = (item->generic.parent->cursor == item->generic.menuPosition); UI_DrawHandlePic( item->generic.x + 64, item->generic.y + PROP_HEIGHT + 8, 128, 8, s_playersettings.fxBasePic ); UI_DrawHandlePic( item->generic.x + 64 + item->curvalue * 16 + 8, item->generic.y + PROP_HEIGHT + 6, 16, 12, s_playersettings.fxPic[item->curvalue] ); }
/* ================= M_MotdMenu_Graphics ================= */ static void M_MotdMenu_Graphics( void ) { int i; int x = 15; int y = 15; for (i = s_motdstuff.scrollnum; i < motdtextnum && i < (MIN_MOTD_LINES + s_motdstuff.scrollnum); ++i) { UI_DrawProportionalString( x, y, motdtext[i], UI_SMALLFONT | UI_LEFT, colorTable[CT_WHITE]); y += 21; } //UI_FrameBottom_Graphics(); // Bottom two thirds // Print version UI_DrawProportionalString( 371, 445, Q3_VERSION, UI_TINYFONT, colorTable[CT_BLACK]); trap_R_SetColor( colorTable[s_motdstuff.quitmenu.color] ); UI_DrawHandlePic(s_motdstuff.quitmenu.generic.x - 14, s_motdstuff.quitmenu.generic.y, MENU_BUTTON_MED_HEIGHT, s_motdstuff.quitmenu.height, uis.graphicButtonLeftEnd); UI_DrawHandlePic(s_motdstuff.disconnect.generic.x - 14, s_motdstuff.disconnect.generic.y, MENU_BUTTON_MED_HEIGHT, s_motdstuff.disconnect.height, uis.graphicButtonLeftEnd); trap_R_SetColor( colorTable[CT_LTBLUE1]); //LTBROWN1]); UI_DrawHandlePic( 28, 440, 287, 17, uis.whiteShader); // Bottom front Line UI_DrawHandlePic( 0, 440, 25, 25, s_motdstuff.halfroundl_22); UI_DrawHandlePic( 319, 440, 25, 25, uis.halfroundr_22); trap_R_SetColor(NULL); }
void UI_DrawConnect( const char *servername, const char *updateInfoString ) { #if 0 // if connecting to a local host, don't draw anything before the // gamestate message. This allows cinematics to start seamlessly if ( connState < CA_LOADING && !strcmp( cls.servername, "localhost" ) ) { UI_SetColor( g_color_table[0] ); re.DrawFill (0, 0, re.scrWidth, re.scrHeight); UI_SetColor( NULL ); return; } #endif qboolean qValid; byte *levelPic = ui.SCR_GetScreenshot(&qValid); // draw the dialog background if (!qValid) { UI_DrawHandlePic(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, uis.menuBackShader ); } else { UI_DrawThumbNail(0,SCREEN_HEIGHT, SCREEN_WIDTH, -SCREEN_HEIGHT, levelPic ); // blend a detail texture over it qhandle_t detail = ui.R_RegisterShader( "levelShotDetail" ); UI_DrawHandlePic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, detail ); } UI_DrawConnectText( servername, updateInfoString ); }
/* ================= PlayerSettings_DrawEffects ================= */ static void PlayerSettings_DrawEffects2( void *self ) { menulist_s *item; item = (menulist_s *)self; UI_DrawHandlePic( item->generic.x + 64, item->generic.y + 8, 128, 8, s_playersettings.fxBasePic ); UI_DrawHandlePic( item->generic.x + 64 + item->curvalue * 16 + 8, item->generic.y + 6, 16, 12, s_playersettings.fxPic[item->curvalue] ); }
/* ================= Slider_Draw ================= */ static void Slider_Draw( menuslider_s *s ) { int x; int y; int style; float *color; int button; qboolean focus; x = s->generic.x; y = s->generic.y; focus = (s->generic.parent->cursor == s->generic.menuPosition); if( s->generic.flags & QMF_GRAYED ) { color = text_color_disabled; style = UI_SMALLFONT; } else if( focus ) { color = text_color_highlight; style = UI_SMALLFONT | UI_PULSE; } else { color = text_color_normal; style = UI_SMALLFONT; } // draw label UI_DrawString( x - SMALLCHAR_WIDTH, y, s->generic.name, UI_RIGHT|style, color ); // draw slider UI_SetColor( color ); UI_DrawHandlePic( x + SMALLCHAR_WIDTH, y, 96, 16, sliderBar ); UI_SetColor( NULL ); // clamp thumb if( s->maxvalue > s->minvalue ) { s->range = ( s->curvalue - s->minvalue ) / ( float ) ( s->maxvalue - s->minvalue ); if( s->range < 0 ) { s->range = 0; } else if( s->range > 1) { s->range = 1; } } else { s->range = 0; } // draw thumb if( style & UI_PULSE) { button = sliderButton_1; } else { button = sliderButton_0; } UI_DrawHandlePic( (int)( x + 2*SMALLCHAR_WIDTH + (SLIDER_RANGE-1)*SMALLCHAR_WIDTH* s->range ) - 2, y - 2, 12, 20, button ); }
static void Slider_Draw(menuslider_s *s) { int x; int y; int style; float *color; int button; qboolean focus; x = s->generic.x; y = s->generic.y; focus = (s->generic.parent->cursor == s->generic.menuPosition); if (s->generic.flags & QMF_GRAYED) { color = colorTextDisabled; style = 0; } else if (focus) { color = colorTextHighlight; style = FONT_PULSE; } else { color = colorTextNormal; style = 0; } // draw label SCR_DrawString(x - SMALLCHAR_SIZE, y, s->generic.name, SMALLCHAR_SIZE, style | FONT_RIGHT, color); // draw slider trap_R_SetColor(color); UI_DrawHandlePic(x + SMALLCHAR_SIZE, y, 96, 16, sliderBar); // clamp thumb if (s->maxvalue > s->minvalue) { s->range = (s->curvalue - s->minvalue) / (float) (s->maxvalue - s->minvalue); if (s->range < 0) { s->range = 0; } else if (s->range > 1) { s->range = 1; } } else { s->range = 0; } // draw thumb if (style & FONT_PULSE) { button = sliderButton_1; } else { button = sliderButton_0; } UI_DrawHandlePic((int)(x + 2*SMALLCHAR_SIZE + (SLIDER_RANGE-1)*SMALLCHAR_SIZE* s->range) - 2, y - 2, 12, 20, button); }
/* ================= RadioButton_Draw ================= */ static void RadioButton_Draw( menuradiobutton_s *rb ) { int x; int y; float *color; int style; qboolean focus; x = rb->generic.x; y = rb->generic.y; focus = (rb->generic.parent->cursor == rb->generic.menuPosition); if ( rb->generic.flags & QMF_GRAYED ) { color = text_color_disabled; style = UI_LEFT|UI_SMALLFONT; } else if ( focus ) { color = text_color_highlight; style = UI_LEFT|UI_PULSE|UI_SMALLFONT; } else { color = text_color_normal; style = UI_LEFT|UI_SMALLFONT; } if ( focus ) { // draw cursor UI_FillRect( rb->generic.left, rb->generic.top, rb->generic.right-rb->generic.left+1, rb->generic.bottom-rb->generic.top+1, listbar_color ); UI_DrawChar( x, y, 13, UI_CENTER|UI_BLINK|UI_SMALLFONT, color); } if ( rb->generic.name ) UI_DrawString( x - SMALLCHAR_WIDTH, y, rb->generic.name, UI_RIGHT|UI_SMALLFONT, color ); if ( !rb->curvalue ) { UI_DrawHandlePic( x + SMALLCHAR_WIDTH, y + 2, 16, 16, uis.rb_off); UI_DrawString( x + SMALLCHAR_WIDTH + 16, y, "off", style, color ); } else { UI_DrawHandlePic( x + SMALLCHAR_WIDTH, y + 2, 16, 16, uis.rb_on ); UI_DrawString( x + SMALLCHAR_WIDTH + 16, y, "on", style, color ); } }
static void Button_Draw(menubutton_s *b) { float x, y; int style; float *color; qhandle_t shader; x = b->generic.left; y = b->generic.top; if (b->generic.flags & QMF_GRAYED) { color = colorTextDisabled; } else { color = colorBlack; } style = b->style | FONT_SMALL; if (Menu_ItemAtCursor(b->generic.parent) == b) { style |= FONT_PULSE; trap_R_SetColor(colorOrange); shader = uis.button; // shader = uis.buttonHover; } else { trap_R_SetColor(colorYellow); shader = uis.button; } UI_DrawHandlePic(x, y, BUTTON_WIDTH, BUTTON_HEIGHT, shader); SCR_DrawString(x + BUTTON_WIDTH / 2, y + (BUTTON_HEIGHT - 14) / 2, b->string, 14, style | FONT_CENTER, color); }
// Draw the stars spent on the current force power void UI_DrawForceStars(rectDef_t *rect, float scale, vec4_t color, int textStyle, int forceindex, int val, int min, int max) { int i,pad = 4; int xPos,width = 16; int starcolor; if (val < min || val > max) { val = min; } if (1) // if (val) { xPos = rect->x; for (i=FORCE_LEVEL_1;i<=max;i++) { starcolor = bgForcePowerCost[forceindex][i]; if (uiForcePowersDisabled[forceindex]) { vec4_t grColor = {0.2f, 0.2f, 0.2f, 1.0f}; trap->R_SetColor(grColor); } if (val >= i) { // Draw a star. UI_DrawHandlePic( xPos, rect->y+6, width, width, uiForceStarShaders[starcolor][1] ); } else { // Draw a circle. UI_DrawHandlePic( xPos, rect->y+6, width, width, uiForceStarShaders[starcolor][0] ); } if (uiForcePowersDisabled[forceindex]) { trap->R_SetColor(NULL); } xPos += width + pad; } } }
/* ================= PlayerSettings_DrawEffects ================= */ static void PlayerSettings_DrawEffects( void *self ) { menulist_s *item; qboolean focus; int style; float *color; item = (menulist_s *)self; focus = (item->generic.parent->cursor == item->generic.menuPosition); style = UI_LEFT|UI_SMALLFONT|UI_CURSORSHADOW; color = text_color_normal; if( focus ) { style |= UI_PULSE; color = text_color_highlight; } UI_DrawProportionalString( item->generic.x, item->generic.y, "Effects", style, color ); UI_DrawHandlePic( item->generic.x + 64, item->generic.y + PROP_HEIGHT + 8, 128, 8, s_playersettings.fxBasePic ); UI_DrawHandlePic( item->generic.x + 64 + item->curvalue * 16 + 8, item->generic.y + PROP_HEIGHT + 6, 16, 12, s_playersettings.fxPic[item->curvalue] ); }
static void RadioButton_Draw(menuradiobutton_s *rb) { float x; float y; float *color; int style; qboolean focus; x = rb->generic.x; y = rb->generic.y; focus = (rb->generic.parent->cursor == rb->generic.menuPosition); if (rb->generic.flags & QMF_GRAYED) { color = colorTextDisabled; style = 0; } else if (focus) { color = colorTextHighlight; style = FONT_PULSE; } else { color = colorTextNormal; style = 0; } if (rb->generic.name) { SCR_DrawString(x + 18, y, rb->generic.name, SMALLCHAR_SIZE, style, color); } y += (SMALLCHAR_SIZE - 16) / 2; if (!rb->curvalue) { UI_DrawHandlePic(x, y, 16, 16, uis.rb_off); } else { UI_DrawHandlePic(x, y, 16, 16, uis.rb_on); } }
/* ======================================================================================================================================= Crosshair_Draw ======================================================================================================================================= */ static void Crosshair_Draw(void *self) { menulist_s *s; float *color; int x, y; int style; qboolean focus; s = (menulist_s *)self; x = s->generic.x; y = s->generic.y; style = UI_SMALLFONT; focus = (s->generic.parent->cursor == s->generic.menuPosition); if (s->generic.flags & QMF_GRAYED) { color = text_color_disabled; } else if (focus) { color = text_color_highlight; style |= UI_PULSE; } else if (s->generic.flags & QMF_BLINK) { color = text_color_highlight; style |= UI_BLINK; } else { color = text_color_normal; } if (focus) { // draw cursor UI_FillRect(s->generic.left, s->generic.top, s->generic.right - s->generic.left + 1, s->generic.bottom - s->generic.top + 1, listbar_color); UI_DrawChar(x, y, 13, UI_CENTER|UI_BLINK|UI_SMALLFONT, color); } UI_DrawString(x - SMALLCHAR_WIDTH, y, s->generic.name, style|UI_RIGHT, color); if (!s->curvalue) { return; } UI_DrawHandlePic(x + SMALLCHAR_WIDTH, y - 4, 24, 24, s_preferences.crosshairShader[s->curvalue]); }
/* ======================== UI_DrawConnectScreen This will also be overlaid on the cgame info screen during loading to prevent it from blinking away too rapidly on local or lan games. ======================== */ void UI_DrawConnectScreen( qboolean overlay ) { char *s; uiClientState_t cstate; char info[MAX_INFO_VALUE]; Menu_Cache(); if ( !overlay ) { // draw the dialog background UI_SetColor( color_white ); UI_DrawHandlePic( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, uis.connecting ); } // see what information we should display trap_GetClientState( &cstate ); info[0] = '\0'; if( trap_GetConfigString( CS_SERVERINFO, info, sizeof(info) ) ) { UI_DrawProportionalString( 320, 16, va( "Loading %s", Info_ValueForKey( info, "mapname" ) ), UI_BIGFONT|UI_CENTER|UI_DROPSHADOW, 1.0, g_color_table[60] ); } UI_DrawProportionalString( 320, 64, va("Connecting to %s", cstate.servername), UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, 0.75, g_color_table[60] ); //UI_DrawProportionalString( 320, 96, "Press Esc to abort", UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, menu_text_color ); // display global MOTD at bottom UI_DrawProportionalString( SCREEN_WIDTH/2, SCREEN_HEIGHT-32, Info_ValueForKey( cstate.updateInfoString, "motd" ), UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, 0.75, menu_text_color ); // print any server info (server full, bad version, etc) if ( cstate.connState < CA_CONNECTED ) { UI_DrawProportionalString_AutoWrapped( 320, 192, 630, 20, cstate.messageString, UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, menu_text_color ); //Here is what prints the ban message! //Com_Printf("DBG: %s\n", cstate.messageString); } #if 0 // display password field if ( passwordNeeded ) { s_ingame_menu.x = SCREEN_WIDTH * 0.50 - 128; s_ingame_menu.nitems = 0; s_ingame_menu.wrapAround = qtrue; passwordField.generic.type = MTYPE_FIELD; passwordField.generic.name = "Password:"******"password"), sizeof(passwordField.field.buffer) ); Menu_AddItem( &s_ingame_menu, ( void * ) &s_customize_player_action ); MField_Draw( &passwordField ); } #endif if ( lastConnState > cstate.connState ) { lastLoadingText[0] = '\0'; } lastConnState = cstate.connState; switch ( cstate.connState ) { case CA_CONNECTING: s = va("Awaiting challenge...%i", cstate.connectPacketCount); break; case CA_CHALLENGING: s = va("Awaiting connection...%i", cstate.connectPacketCount); break; case CA_CONNECTED: { char downloadName[MAX_INFO_VALUE]; trap_Cvar_VariableStringBuffer( "cl_downloadName", downloadName, sizeof(downloadName) ); if (*downloadName) { UI_DisplayDownloadInfo( downloadName ); return; } } s = "Awaiting gamestate..."; break; case CA_LOADING: return; case CA_PRIMED: return; default: return; } UI_DrawProportionalString( 320, 128, s, UI_CENTER|UI_SMALLFONT|UI_DROPSHADOW, 0.75, g_color_table[60] ); // password required / connection rejected information goes here }
/* ================= StartServer_ItemPage_Old_DrawItemButton ================= */ static void StartServer_ItemPage_Old_DrawItemButton( void* ptr ) { int x; int y; float *color; int style; qboolean focus; menuradiobutton_s *rb; char* iconname; qhandle_t icon; vec4_t gcolor; rb = (menuradiobutton_s*)ptr; x = rb->generic.x; y = rb->generic.y; gcolor[0] = 1.0; gcolor[1] = 1.0; gcolor[2] = 1.0; gcolor[3] = 1.0; // load the icon iconname = bg_itemlist[ s_itemcontrols_old.itemCtrl[rb->generic.id].bg_index ].icon; icon = trap_R_RegisterShaderNoMip(va("uie_%s", iconname)); if (!icon) icon = trap_R_RegisterShaderNoMip(iconname); // setup text colour states focus = (rb->generic.parent->cursor == rb->generic.menuPosition); if ( rb->generic.flags & QMF_GRAYED ) { gcolor[3] = 0.3; color = text_color_disabled; style = UI_LEFT|UI_SMALLFONT; } else if ( focus ) { color = text_color_highlight; style = UI_LEFT|UI_PULSE|UI_SMALLFONT; } else { color = text_color_normal; style = UI_LEFT|UI_SMALLFONT; } // draw it! if ( rb->generic.name ) UI_DrawString( x - SMALLCHAR_WIDTH, y, rb->generic.name, UI_RIGHT|UI_SMALLFONT, color ); if ( !rb->curvalue ) { gcolor[3] = 0.3; UI_DrawString( x + 16, y, "off", style, color ); } else { UI_DrawString( x + 16, y, "on", style, color ); } trap_R_SetColor(gcolor); // square image, always UI_DrawHandlePic( x - 5, y, SMALLCHAR_HEIGHT, SMALLCHAR_HEIGHT, icon); trap_R_SetColor(NULL); }
/* ================= M_TurboliftMenu_Graphics ================= */ static void M_TurboliftMenu_Graphics (void) { menubitmap_s *holdDeck; int i,length,xTurboStart; int numColor,roundColor; // Draw the basic screen frame // Upper corners trap_R_SetColor( colorTable[CT_DKPURPLE1]); UI_DrawHandlePic( 20, 24, 64, 32, corner_ul_24_60); // Upper corner UI_DrawHandlePic( 20, 353, 64, 16, corner_ll_12_60); // Lower Corner trap_R_SetColor( colorTable[CT_LTPURPLE1] ); //colorTable[CT_LTBLUE1] //[CT_DKGOLD1] //colorTable[CT_VDKPURPLE2] UI_DrawHandlePic( 100, 86, 128, 128, turbolift); // Turbolift graphic // Lower corners trap_R_SetColor( colorTable[CT_DKPURPLE3]); //colorTable[CT_VDKPURPLE2] UI_DrawHandlePic( 20, 375, 64, -16, corner_ll_12_60); // UI_DrawHandlePic( 20, 440, 64, 16, corner_ll_12_60); // xTurboStart = 604; length = UI_ProportionalStringWidth( menu_normal_text[MNT_TURBOLIFT],UI_BIGFONT); length += 4; // Upper half trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1 UI_DrawHandlePic( 79, 24, xTurboStart - (79 + length), PROP_BIG_HEIGHT, uis.whiteShader); // Top left line UI_DrawHandlePic( 20, 60, 60, 40, uis.whiteShader); // trap_R_SetColor( colorTable[CT_DKPURPLE3]); UI_DrawHandlePic( 20, 106, 60, 11, uis.whiteShader); // trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1 UI_DrawHandlePic( 20, 123, 60, 240, uis.whiteShader); // Left hand column UI_DrawHandlePic( 69, 356, 245, 12, uis.whiteShader); // trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_DKPURPLE1] UI_DrawHandlePic(319, 356, 93, 5, uis.whiteShader); // UI_DrawHandlePic(319, 360, 31, 8, uis.whiteShader); // UI_DrawHandlePic(381, 360, 31, 8, uis.whiteShader); // trap_R_SetColor( colorTable[CT_DKPURPLE1]); UI_DrawHandlePic(417, 356, 93, 12, uis.whiteShader); // UI_DrawHandlePic(510, 356,114, 12, uis.whiteShader); // // Lower half trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_VDKPURPLE2] UI_DrawHandlePic( 20, 380, 60, 70, uis.whiteShader); // Left Column trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_VDKPURPLE2] UI_DrawHandlePic( 69, 376, 158, 12, uis.whiteShader); // Top line UI_DrawHandlePic(232, 376, 82, 12, uis.whiteShader); // Top line UI_DrawHandlePic(417, 376, 12, 12, uis.whiteShader); // UI_DrawHandlePic(434, 376, 190, 12, uis.whiteShader); // // Funky indent trap_R_SetColor( colorTable[CT_DKPURPLE1] ); //colorTable[CT_DKGOLD1] UI_DrawHandlePic(319, 383, 93, 5, uis.whiteShader); // UI_DrawHandlePic(319, 376, 31, 8, uis.whiteShader); // UI_DrawHandlePic(381, 376, 31, 8, uis.whiteShader); // // Bottom line trap_R_SetColor( colorTable[CT_DKPURPLE3] ); //colorTable[CT_VDKPURPLE2] UI_DrawHandlePic( 69, 443, 287, 12, uis.whiteShader); // trap_R_SetColor( colorTable[CT_DKPURPLE1]); //colorTable[CT_DKGOLD1] UI_DrawHandlePic(364, 443, 260, 12, uis.whiteShader); // Bottom line UI_DrawProportionalString( xTurboStart, 24, menu_normal_text[MNT_TURBOLIFT], UI_BIGFONT | UI_RIGHT, colorTable[CT_WHITE]); trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1 UI_DrawHandlePic( 607, 24,-16, 32, leftRound); holdDeck = &s_turbolift.deck1; // Print deck buttons for (i=0;i<s_turbolift.maxDecks;i++) { if (s_turbolift.deckData[i].deckNum ) { if (s_turbolift.chosenDeck == i) // This deck was chosen { numColor = CT_WHITE;//CT_LTGOLD1; roundColor = CT_LTPURPLE1;//CT_LTGOLD1; } else // This deck was not chosen { numColor = CT_WHITE; roundColor = CT_DKPURPLE1;//CT_DKGOLD1; } UI_DrawProportionalString( holdDeck->generic.x - 6, holdDeck->generic.y, va("%d",s_turbolift.deckData[i].deckNum), UI_BIGFONT|UI_RIGHT, colorTable[numColor]); //i+1 trap_R_SetColor( colorTable[roundColor]); UI_DrawHandlePic( holdDeck->generic.x - 45, holdDeck->generic.y, 16, 32, leftRound); } holdDeck++; } if ( s_turbolift.highLightedDeck >= 0 ) { UI_DrawProportionalString( 353, 409, s_turbolift.deckData[s_turbolift.highLightedDeck].deckDesc, UI_SMALLFONT|UI_CENTER, colorTable[CT_WHITE]); } else { UI_DrawProportionalString( 353, 409, menu_normal_text[MNT_SPECFICYDECK], UI_SMALLFONT|UI_CENTER, colorTable[CT_WHITE]); } // Round graphic on left of engage & quit button trap_R_SetColor( colorTable[s_turbolift.quitmenu.color]); UI_DrawHandlePic(s_turbolift.engage.generic.x - 14, s_turbolift.engage.generic.y, MENU_BUTTON_MED_HEIGHT, s_turbolift.engage.height, uis.graphicButtonLeftEnd); UI_DrawHandlePic(s_turbolift.quitmenu.generic.x - 14, s_turbolift.quitmenu.generic.y, MENU_BUTTON_MED_HEIGHT, s_turbolift.quitmenu.height, uis.graphicButtonLeftEnd); }
/* ======================== UI_DrawConnectText This will also be overlaid on the cgame info screen during loading to prevent it from blinking away too rapidly on local or lan games. matches CG_DrawInformation from cg_info.cpp. ======================== */ void UI_DrawConnectText( const char *servername, const char *updateInfoString ) { char *s; connstate_t connState; // char info[MAX_INFO_VALUE]; int textX,textY; int padY; Menu_Cache(); connState = ui.GetClientState(); // ui.R_SetColor( colorTable[CT_DKPURPLE2]); // info[0] = '\0'; // ui.GetConfigString( CS_SERVERINFO, info, sizeof(info) ); // if( info[0] ) // { // UI_DrawProportionalString( 320, 16, va( "%s %s",menu_normal_text[MNT_TRANSPORTING], Info_ValueForKey( info, "mapname" ) ), UI_SMALLFONT|UI_CENTER, colorTable[CT_LTGOLD1] ); // UI_DrawProportionalString( 320, 16, va( "%s ...",menu_normal_text[MNT_TRANSPORTING] ), UI_SMALLFONT|UI_CENTER, colorTable[CT_LTGOLD1] ); // } // UI_DrawString( 16, 10, va("Connecting to %s", servername), UI_LEFT|UI_BIGFONT, menu_text_color ); // UI_DrawString( 16, 26, "Press Esc to abort", UI_LEFT|UI_BIGFONT, menu_text_color ); // display global MOTD at bottom UI_DrawString( SCREEN_WIDTH/2, SCREEN_HEIGHT-20, Info_ValueForKey( updateInfoString, "motd" ), UI_CENTER|UI_BIGFONT, menu_text_color ); // print any server info if ( connState < CA_CONNECTED ) { UI_DrawString( 16, 160, connectionMessageString, UI_LEFT|UI_BIGFONT, menu_text_color ); } if ( connState == CA_CONNECTING ) { s = connectionDialogString; // try number } else { s = ""; } textX = 267; textY = 270; padY = 24; // Awaiting callenge UI_DrawProportionalString( textX, textY, va("%s...%s",menu_normal_text[MNT_TARGETINGSCANNERS], s),UI_SMALLFONT, colorTable[CT_LTGOLD1]); ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicEmptyCircle2); if ( connState == CA_CONNECTING ) { ui.R_SetColor( colorTable[CT_WHITE]); return; } ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicCircle2); if ( connState == CA_CHALLENGING ) { s = connectionDialogString; // try number } else { s = ""; } // Awaiting connection textY += padY; UI_DrawProportionalString( textX, textY, va("%s...%s",menu_normal_text[MNT_SCANNINGAREA], s),UI_SMALLFONT, colorTable[CT_LTGOLD1]); ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicEmptyCircle2); if ( connState == CA_CHALLENGING ) { ui.R_SetColor( colorTable[CT_WHITE]); return; } ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicCircle2); // Awaiting gamestate textY += padY; UI_DrawProportionalString( textX, textY, va("%s...",menu_normal_text[MNT_CONFIRMINGBEAMIN]),UI_SMALLFONT, colorTable[CT_LTGOLD1]); ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicEmptyCircle2); if ( connState == CA_CONNECTED ) { ui.R_SetColor( colorTable[CT_WHITE]); return; } ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicCircle2); // Loading textY += padY; UI_DrawProportionalString( textX, textY, va("%s...",menu_normal_text[MNT_LOCKINGPOSTION]),UI_SMALLFONT, colorTable[CT_LTGOLD1]); ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicEmptyCircle2); if ( connState == CA_LOADING ) { ui.R_SetColor( colorTable[CT_WHITE]); return; } ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicCircle2); // Awaiting snap shot textY += padY; UI_DrawProportionalString( textX, textY, va("%s . . .",menu_normal_text[MNT_INITIATINGTRANSPORT]),UI_SMALLFONT, colorTable[CT_LTGOLD1]); ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicEmptyCircle2); if ( connState == CA_PRIMED ) { ui.R_SetColor( colorTable[CT_WHITE]); return; } ui.R_SetColor( colorTable[CT_LTGOLD1]); UI_DrawHandlePic(textX - 24,textY + 1, 16, 16, uis.graphicCircle2); }
static void Main_MenuDraw(void) { refdef_t refdef; refEntity_t ent; vec3_t origin; vec3_t angles; float adjust; float x, y, w, h; vec4_t color; qboolean connected = qtrue; vec4_t oldColor = {0.8, 0.8, 0.8, 1}; // FIXME dont call on every update... s_main.servers = (int) trap_Cvar_VariableValue("ma_servers"); s_main.players = (int) trap_Cvar_VariableValue("ma_players"); s_main.motd = UI_Cvar_VariableString("ma_motd"); if (!s_main.motd || !Q_stricmp(s_main.motd, "")) { s_main.motd = "Failed to connect to master server"; connected = qfalse; } // options the refdef memset(&refdef, 0, sizeof ( refdef)); refdef.rdflags = RDF_NOWORLDMODEL; AxisClear(refdef.viewaxis); x = 0; y = 0; w = 640; h = 120; UI_AdjustFrom640(&x, &y, &w, &h); refdef.x = x; refdef.y = y; refdef.width = w; refdef.height = h; adjust = 0; // JDC: Kenneth asked me to stop this 1.0 * sin( (float)uis.realtime / 1000 ); refdef.fov_x = 60 + adjust; refdef.fov_y = 19.6875 + adjust; refdef.time = uis.realtime; origin[0] = 300; origin[1] = 0; origin[2] = -32; trap_R_ClearScene(); // add the model memset(&ent, 0, sizeof (ent)); /*adjust = 5.0 * sin((float) uis.realtime / 5000); VectorSet(angles, 0, 180 + adjust, 0); AnglesToAxis(angles, ent.axis); ent.hModel = s_main.bannerModel; VectorCopy(origin, ent.origin); VectorCopy(origin, ent.lightingOrigin); ent.renderfx = RF_LIGHTING_ORIGIN | RF_NOSHADOW; VectorCopy(ent.origin, ent.oldorigin);*/ x = 0; y = 0; w = 640; h = 64; UI_FillRect(x, y, w, h, color_black); x = 16; y = 16; UI_DrawString(x, y, "Hazewood", UI_LEFT, color_green); x = 196; y = 28; if (connected) { UI_DrawString(x, y, va("%s", s_main.motd), UI_LEFT | UI_SMALLERFONT, color_white); } else { UI_DrawString(x, y, va("%s", s_main.motd), UI_LEFT | UI_SMALLERFONT, color_red); } x = 640 - 196 + 48; y = 12; if (s_main.servers > 0) { UI_DrawString(x, y, va("%i Servers", s_main.servers), UI_LEFT | UI_SMALLFONT, color_blue); } else { UI_DrawString(x, y, va("%i Servers", s_main.servers), UI_LEFT | UI_SMALLFONT, color_red); } y = 36; if (s_main.players > 0) { UI_DrawString(x, y, va("%i Players", s_main.players), UI_LEFT | UI_SMALLFONT, color_blue); } else { UI_DrawString(x, y, va("%i Players", s_main.players), UI_LEFT | UI_SMALLFONT, color_red); } x = 0; y = 480 - 64; w = 640; h = 64; UI_FillRect(x, y, w, h, color_black); x = 0; y = 64; w = 640; h = 480 - 128; if (!s_main.up) { s_main.fade -= ((float) uis.frametime) / 10.0f; } else { s_main.fade += ((float) uis.frametime) / 10.0f; } if (s_main.fade >= 1200.0f) { s_main.up = qfalse; s_main.currentScene++; if (s_main.currentScene >= MAX_MENU_SCENES) { s_main.currentScene = 0; } } if (s_main.fade <= -100.0f) { s_main.up = qtrue; } Vector4Copy(oldColor, color); UI_DrawHandlePic(x, y, w, h, trap_R_RegisterShaderNoMip(va("gfx/scenes/%i", s_main.currentScene))); color[3] = s_main.fade / 1000.0f; if (color[3] > 1) { color[3] = 1; } if (color[3] < 0) { color[3] = 0; } trap_R_SetColor(color); UI_DrawNamedPic(x, y, w, h, "gfx/colors/blue.jpg"); trap_R_SetColor(oldColor); trap_R_AddRefEntityToScene(&ent); trap_R_RenderScene(&refdef); if (strlen(s_errorMessage.errorMessage)) { UI_DrawProportionalString_AutoWrapped(320, 192, 600, 20, s_errorMessage.errorMessage, UI_CENTER | UI_SMALLFONT | UI_DROPSHADOW, menu_text_color); } else { Menu_Draw(&s_main.menu); } }
/* =============== UI_DrawHelpMenuImg =============== */ static void UI_DrawHelpMenuImg( void ) { //if ( helpMenuInfo.img ) { UI_DrawHandlePic( helpMenuInfo.x, helpMenuInfo.y, helpMenuInfo.width, helpMenuInfo.height, helpMenuInfo.img ); //} }
static void ConfirmMenu_Draw( void ) { UI_MenuFrame(&s_confirm.menu); // End of upper line ui.R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic( 482, 136, MENU_BUTTON_MED_WIDTH - 22, MENU_BUTTON_MED_HEIGHT, uis.whiteShader); UI_DrawHandlePic( 460 + MENU_BUTTON_MED_WIDTH -6 , 136, -19, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd); //right ui.R_SetColor( colorTable[CT_DKBLUE2]); UI_DrawHandlePic( 30, 203, 47, 186, uis.whiteShader); // Left hand column UI_DrawProportionalString( 74, 66, "286",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "386",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "486",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 207, "8088",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "12799",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); ui.R_SetColor( colorTable[CT_LTBLUE1]); UI_DrawHandlePic( 132, 142, 128, -64, s_confirm.cornerPic); // Top Left corner UI_DrawHandlePic( 132, 352, 128, 64, s_confirm.cornerPic); // Bottom Left corner UI_DrawHandlePic( 429, 142, -128, -64, s_confirm.cornerPic); // Top Right corner UI_DrawHandlePic( 429, 352, -128, 64, s_confirm.cornerPic); // Bottom Right corner UI_DrawHandlePic(145,175, 395, 18, uis.whiteShader); // Top UI_DrawHandlePic(132,193, 47, 175, uis.whiteShader); // Left side UI_DrawHandlePic(510,193, 47, 175, uis.whiteShader); // Right side UI_DrawHandlePic(147,365, 65, 18, uis.whiteShader); // Bottom Left UI_DrawHandlePic(477,365, 65, 18, uis.whiteShader); // Bottom Right UI_DrawProportionalString( 345, 269, s_confirm.question, UI_SMALLFONT | UI_CENTER, color_red ); Menu_Draw( &s_confirm.menu ); if( s_confirm.draw ) { s_confirm.draw(); } }
void M_CDKey_Graphics (void) { UI_MenuFrame(&s_cdkey_menu); UI_Setup_MenuButtons(); ui.R_SetColor( colorTable[CT_DKPURPLE2]); UI_DrawHandlePic(30,203, 47, 121, uis.whiteShader); // Long left hand column square UI_DrawHandlePic(30,327, 47, 28, uis.whiteShader); // Long left hand column square UI_DrawHandlePic(30,358, 47, 31, uis.whiteShader); // Long left hand column square // Numbers for left hand column squares UI_DrawProportionalString( 73, 206, "ST-181",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 73, 330, "65",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 73, 361, "201",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); ui.R_SetColor( colorTable[CT_WHITE]); UI_DrawNamedPic(97, 160, 512, 256, ART_WORMHOLE); UI_DrawProportionalString( 611, 165, "WORMHOLE STRUCTURE", UI_RIGHT | UI_SMALLFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 419, 321, "POINT SINGULARITY", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 360, 221, "VERTERONE MEMBRANE", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 265, 329, "POSITIVE CTL REGION", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 199, 288, "NEGATIVE CTL REGION", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 287, 184, "RING SINGULARITY", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 158, 230, "FTR PIPELINE", UI_TINYFONT, colorTable[CT_LTORANGE]); ui.R_SetColor( colorTable[CT_DKBLUE1]); UI_DrawHandlePic( 80,358, 185, 18, uis.whiteShader); // Bar behind ENTER CD KEY UI_DrawHandlePic( 118,417, 128, 18, uis.whiteShader); // Bar behind ACCEPT UI_DrawHandlePic( 267, 376, 8, 59, uis.whiteShader); // Right hand side of box UI_DrawNamedPic(263, 358, 16, 32, ART_FRAME); UI_DrawProportionalString( 146, 358, "ENTER CD KEY", UI_SMALLFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 152, 418, "ACCEPT", UI_SMALLFONT, colorTable[CT_LTORANGE]); ui.R_SetColor( colorTable[CT_DKGREY2]); UI_DrawHandlePic( 95,383, 160, 20, uis.whiteShader); // Grey square to type in ui.R_SetColor( colorTable[CT_WHITE]); UI_DrawHandlePic( 95,402, 160, 1, uis.whiteShader); // White line to type above ui.R_SetColor( colorTable[CT_DKPURPLE1]); UI_DrawHandlePic( 516,208, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 541,208, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 566,208, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 591,208, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 516,399, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 541,399, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 566,399, 21, 8, uis.whiteShader); // Bar above labels UI_DrawHandlePic( 591,399, 21, 8, uis.whiteShader); // Bar above labels UI_DrawProportionalString( 516, 223, "DIM : 74156", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 237, "XYS DG : 21", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 251, "VGVH-A : 129430", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 275, "TTFN : 98231", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 289, "BB IO : 45", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 303, "R-T-PPL : 32", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 317, "B1 YOT : 810257", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 341, "XTR NTL: 171", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 355, "HGH NTL: 1348", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 369, "MED NTL: 45333", UI_TINYFONT, colorTable[CT_LTORANGE]); UI_DrawProportionalString( 516, 383, "LOW NTL: 29", UI_TINYFONT, colorTable[CT_LTORANGE]); // Menu frame numbers UI_DrawProportionalString( 74, 66, "67811",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "5656",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "76-0021",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "456181",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); }
/* =============== UI_CreditMenu_Draw =============== */ static void UI_CreditMenu_Draw( void ) { UI_DrawHandlePic(0,0,640,480,trap_R_RegisterShaderNoMip("menu/creditz.jpg")); }
/* ================= M_NetworkMenu_Graphics ================= */ void M_NetworkMenu_Graphics (void) { UI_MenuFrame(&networkOptionsInfo.menu); UI_Setup_MenuButtons(); UI_DrawProportionalString( 74, 66, "925",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "88PK",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "8125",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 206, "358677",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "3-679",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); // Rest of Bottom1_Graphics trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic( 30, 203, 47, 69, uis.whiteShader); // Top Left column above UI_DrawHandlePic( 30, 275, 47, 66, uis.whiteShader); // Top Left column middle UI_DrawHandlePic( 30, 344, 47, 45, uis.whiteShader); // Top Left column below // Brackets around Video Data trap_R_SetColor( colorTable[CT_LTPURPLE1]); UI_DrawHandlePic(158,163, 16, 16, uis.graphicBracket1CornerLU); UI_DrawHandlePic(158,179, 8, 233, uis.whiteShader); UI_DrawHandlePic(158,412, 16, -16, uis.graphicBracket1CornerLU); //LD UI_DrawHandlePic(174,163, 320, 8, uis.whiteShader); // Top line UI_DrawHandlePic(494,163, 128, 128, networkOptionsInfo.swooshTop); // Top swoosh UI_DrawHandlePic(501,188, 110, 54, uis.whiteShader); // Top right column UI_DrawHandlePic(501,245, 110, 100, uis.whiteShader); // Middle right column UI_DrawHandlePic(501,348, 110, 55, uis.whiteShader); // Bottom right column UI_DrawHandlePic(494,406, 128, 128, networkOptionsInfo.swooshBottom); // Bottom swoosh UI_DrawHandlePic(174,420, 320, 8, uis.whiteShader); // Bottom line }
static void UI_SPLevelMenu_MenuDraw( void ) { int n, i; int x, y; vec4_t color; int level; // int fraglimit; int pad; char buf[MAX_INFO_VALUE]; char string[64]; if( levelMenuInfo.reinit ) { UI_PopMenu(); UI_SPLevelMenu(); return; } // draw player name trap_Cvar_VariableStringBuffer( "name", string, 32 ); Q_CleanStr( string ); UI_DrawProportionalString( 320, PLAYER_Y, string, UI_CENTER|UI_SMALLFONT, color_orange ); // check for model changes trap_Cvar_VariableStringBuffer( "model", buf, sizeof(buf) ); if( Q_stricmp( buf, levelMenuInfo.playerModel ) != 0 ) { Q_strncpyz( levelMenuInfo.playerModel, buf, sizeof(levelMenuInfo.playerModel) ); PlayerIcon( levelMenuInfo.playerModel, levelMenuInfo.playerPicName, sizeof(levelMenuInfo.playerPicName) ); levelMenuInfo.item_player.shader = 0; } // standard menu drawing Menu_Draw( &levelMenuInfo.menu ); // draw player award levels y = AWARDS_Y; i = 0; for( n = 0; n < 6; n++ ) { level = levelMenuInfo.awardLevels[n]; if( level > 0 ) { if( i & 1 ) { x = 224 - (i - 1 ) / 2 * (48 + 16); } else { x = 368 + i / 2 * (48 + 16); } i++; if( level == 1 ) { continue; } if( level >= 1000000 ) { Com_sprintf( string, sizeof(string), "%im", level / 1000000 ); } else if( level >= 1000 ) { Com_sprintf( string, sizeof(string), "%ik", level / 1000 ); } else { Com_sprintf( string, sizeof(string), "%i", level ); } UI_DrawString( x + 24, y + 48, string, UI_CENTER, color_yellow ); } } UI_DrawProportionalString( 18, 38, va( "Tier %i", selectedArenaSet + 1 ), UI_LEFT|UI_SMALLFONT, color_orange ); for ( n = 0; n < levelMenuInfo.numMaps; n++ ) { x = levelMenuInfo.item_maps[n].generic.x; y = levelMenuInfo.item_maps[n].generic.y; UI_FillRect( x, y + 96, 128, 18, color_black ); } if ( selectedArenaSet > currentSet ) { UI_DrawProportionalString( 320, 216, "ACCESS DENIED", UI_CENTER|UI_BIGFONT, color_red ); return; } // show levelshots for levels of current tier Vector4Copy( color_white, color ); color[3] = 0.5+0.5*sin(uis.realtime/PULSE_DIVISOR); for ( n = 0; n < levelMenuInfo.numMaps; n++ ) { x = levelMenuInfo.item_maps[n].generic.x; y = levelMenuInfo.item_maps[n].generic.y; UI_DrawString( x + 64, y + 96, levelMenuInfo.levelNames[n], UI_CENTER|UI_SMALLFONT, color_orange ); if( levelMenuInfo.levelScores[n] == 1 ) { UI_DrawHandlePic( x, y, 128, 96, levelMenuInfo.levelCompletePic[levelMenuInfo.levelScoresSkill[n] - 1] ); } if ( n == selectedArena ) { if( Menu_ItemAtCursor( &levelMenuInfo.menu ) == &levelMenuInfo.item_maps[n] ) { trap_R_SetColor( color ); } UI_DrawHandlePic( x-1, y-1, 130, 130 - 14, levelMenuInfo.levelSelectedPic ); trap_R_SetColor( NULL ); } else if( Menu_ItemAtCursor( &levelMenuInfo.menu ) == &levelMenuInfo.item_maps[n] ) { trap_R_SetColor( color ); UI_DrawHandlePic( x-31, y-30, 256, 256-27, levelMenuInfo.levelFocusPic); trap_R_SetColor( NULL ); } } // show map name and long name of selected level y = 192; Q_strncpyz( buf, Info_ValueForKey( levelMenuInfo.selectedArenaInfo, "map" ), 20 ); Q_strupr( buf ); Com_sprintf( string, sizeof(string), "%s: %s", buf, Info_ValueForKey( levelMenuInfo.selectedArenaInfo, "longname" ) ); UI_DrawProportionalString( 320, y, string, UI_CENTER|UI_SMALLFONT, color_orange ); // fraglimit = atoi( Info_ValueForKey( levelMenuInfo.selectedArenaInfo, "fraglimit" ) ); // UI_DrawString( 18, 212, va("Frags %i", fraglimit) , UI_LEFT|UI_SMALLFONT, color_orange ); // draw bot opponents y += 24; pad = (7 - levelMenuInfo.numBots) * (64 + 26) / 2; for( n = 0; n < levelMenuInfo.numBots; n++ ) { x = 18 + pad + (64 + 26) * n; if( levelMenuInfo.botPics[n] ) { UI_DrawHandlePic( x, y, 64, 64, levelMenuInfo.botPics[n]); } else { UI_FillRect( x, y, 64, 64, color_black ); UI_DrawProportionalString( x+22, y+18, "?", UI_BIGFONT, color_orange ); } UI_DrawString( x, y + 64, levelMenuInfo.botNames[n], UI_SMALLFONT|UI_LEFT, color_orange ); } }
/* ================= M_MainMenu_Graphics ================= */ void ModsMenu_Graphics (void) { // Draw the basic screen layout UI_MenuFrame(&s_mods.menu); UI_DrawProportionalString( 74, 66, "66",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "122855",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "81",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 206, "4561",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "2000",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); ui.R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(30,203, 47, 123, uis.whiteShader); // Top left column square on bottom 3rd UI_DrawHandlePic(30,328, 47, 61, uis.whiteShader); // Bottom left column square on bottom 3rd UI_DrawProportionalString( 74, 206, "38",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 332, "28",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); ui.R_SetColor( colorTable[CT_DKPURPLE3]); UI_DrawHandlePic(127, 167, 32, 32, s_mods.corner_ul); UI_DrawHandlePic(550, 167, 32, 32, s_mods.corner_ur); UI_DrawHandlePic(127, 410, 32, 32, s_mods.corner_ll); UI_DrawHandlePic(550, 410, 32, 32, s_mods.corner_lr); UI_DrawHandlePic(149, 167, 402, 18, uis.whiteShader); // Top line UI_DrawHandlePic(127, 192, 18, 215, uis.whiteShader); // Left side UI_DrawHandlePic(554, 192, 18, 215, uis.whiteShader); // Right side UI_DrawHandlePic(149, 414, 133, 18, uis.whiteShader); // Bottom line to left of button UI_DrawHandlePic(418, 414, 133, 18, uis.whiteShader); // Bottom line to right of button UI_DrawProportionalString( 210, 168, menu_normal_text[MNT_AVAILABLEMODS], UI_SMALLFONT, colorTable[CT_LTPURPLE3]); UI_DrawProportionalString( 568, 170, "38-56",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); }
void Bitmap_Draw(menubitmap_s *b) { float x; float y; float w; float h; vec4_t tempcolor; float* color; x = b->generic.x; y = b->generic.y; w = b->width; h = b->height; if (b->generic.flags & QMF_RIGHT_JUSTIFY) { x = x - w; } else if (b->generic.flags & QMF_CENTER_JUSTIFY) { x = x - w/2; } // used to refresh shader if (b->generic.name && !b->shader) { b->shader = trap_R_RegisterShaderNoMip(b->generic.name); if (!b->shader && b->errorpic) { b->shader = trap_R_RegisterShaderNoMip(b->errorpic); } } if (b->focuspic && !b->focusshader) { b->focusshader = trap_R_RegisterShaderNoMip(b->focuspic); } if (b->generic.flags & QMF_GRAYED) { if (b->shader) { trap_R_SetColor(colorMdGrey); UI_DrawHandlePic(x, y, w, h, b->shader); trap_R_SetColor(NULL); } } else { if (b->shader) { UI_DrawHandlePic(x, y, w, h, b->shader); } if ( ((b->generic.flags & QMF_PULSE) || (b->generic.flags & QMF_PULSEIFFOCUS)) && (Menu_ItemAtCursor(b->generic.parent) == b)) { if (b->focuscolor) { tempcolor[0] = b->focuscolor[0]; tempcolor[1] = b->focuscolor[1]; tempcolor[2] = b->focuscolor[2]; color = tempcolor; } else { color = colorPulse; } color[3] = 0.5+0.5*sin(uis.realtime/PULSE_DIVISOR); trap_R_SetColor(color); UI_DrawHandlePic(x, y, w, h, b->focusshader); trap_R_SetColor(NULL); } else if ((b->generic.flags & QMF_HIGHLIGHT) || ((b->generic.flags & QMF_HIGHLIGHT_IF_FOCUS) && (Menu_ItemAtCursor(b->generic.parent) == b))) { if (b->focuscolor) { trap_R_SetColor(b->focuscolor); UI_DrawHandlePic(x, y, w, h, b->focusshader); trap_R_SetColor(NULL); } else { UI_DrawHandlePic(x, y, w, h, b->focusshader); } } } }
/* ================= Preferences_MenuDraw ================= */ static void Preferences_MenuDraw( void ) { Preferences_MenuBlinkies(); UI_MenuFrame(&s_gameoptions_menu); UI_Setup_MenuButtons(); ui.R_SetColor( colorTable[CT_DKPURPLE2]); UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left hand column square // UI_DrawHandlePic(304,171, 306, 12, uis.whiteShader); // Top bar off round buttons // UI_DrawHandlePic(315,408, 295, 12, uis.whiteShader); // Bottom bar off round buttons UI_DrawHandlePic(304,171, 299, 12, uis.whiteShader); // Top bar off round buttons UI_DrawHandlePic(315,408, 288, 12, uis.whiteShader); // Bottom bar off round buttons UI_DrawHandlePic( 293, 171, 16, 16, gameoptionsmenu_cache.slant1); // Slant at top UI_DrawHandlePic( 303, 408, 16, 16, gameoptionsmenu_cache.slant2); // Slant at bottom UI_DrawHandlePic( 543, 171, 128, 32, gameoptionsmenu_cache.swooptop); UI_DrawHandlePic( 543, 396, 128, 32, gameoptionsmenu_cache.swoopbottom); UI_DrawHandlePic(548, 193, 64,10, uis.whiteShader); // Top of right hand column UI_DrawHandlePic(548, 389, 64, 7, uis.whiteShader); // Bottom of right hand column UI_DrawHandlePic( 548, 206, 64, 256, gameoptionsmenu_cache.singraph); // The graph ui.R_SetColor( colorTable[CT_DKBLUE1]); UI_DrawHandlePic( 548, 206, 64, 180, gameoptionsmenu_cache.graphbox); // The frame around the graph ui.R_SetColor( colorTable[CT_DKBLUE1]); UI_DrawHandlePic(377, 265, 8, 87, uis.whiteShader); // Lefthand side of CROSSHAIR box UI_DrawHandlePic(503, 265, 8, 87, uis.whiteShader); // Righthand side of CROSSHAIR box UI_DrawHandlePic(385, 355, 116, 3, uis.whiteShader); // Bottom of CROSSHAIR box UI_DrawHandlePic( 377, 352, 16, 16, gameoptionsmenu_cache.lswoop); // lower left hand swoop UI_DrawHandlePic( 500, 352, 16, 16, gameoptionsmenu_cache.lswoop2); // lower right hand swoop UI_DrawHandlePic( 377, 244, 16, 32, gameoptionsmenu_cache.tallswoop); // upper left hand swoop UI_DrawHandlePic( 497, 244, 16, 32, gameoptionsmenu_cache.tallswoop2); // upper right hand swoop ui.R_SetColor( colorTable[CT_YELLOW]); if (curCrosshair) { UI_DrawHandlePic(427,293, 32, 32, crosshairShader[curCrosshair]); // Draw crosshair } else { UI_DrawProportionalString( 427, 293, menu_normal_text[MNT_CROSSHAIR_NONE],UI_CENTER|UI_SMALLFONT, colorTable[CT_LTGOLD1]); // No crosshair } ui.R_SetColor( colorTable[CT_DKPURPLE2]); UI_DrawHandlePic( 97, 298, 128, 64, gameoptionsmenu_cache.round1); UI_DrawHandlePic( 97, 339, 128, 128, gameoptionsmenu_cache.round2); ui.R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(111, 234, 64, 64, gameoptionsmenu_cache.round10); ui.R_SetColor( colorTable[CT_DKBROWN1]); UI_DrawHandlePic(138, 254, 32, 64, gameoptionsmenu_cache.round11); // Numbers along right hand column UI_DrawProportionalString( 606, 191, "11663",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); // Top number UI_DrawProportionalString( 606, 393, "71961",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); // Bottom number UI_PrintMenuGraphics(gameoptionsmenu_graphics,GOMG_MAX); // Numbers in center of round button UI_DrawProportionalString( 163, 283, "551",UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 163, 300, "29",UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 224, 283, "336",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 224, 300, "1040",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); // Lower left hand squares UI_DrawProportionalString( 100, 326, "761-0903",UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 100, 408, "8236",UI_TINYFONT, colorTable[CT_BLACK]); // Menu frame numbers UI_DrawProportionalString( 74, 66, "1776",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "9214",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "2510-81",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 206, "644",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "1001001",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); Menu_Draw( &s_gameoptions_menu ); }
/* ================= M_Sound_Graphics ================= */ void M_Sound_Graphics (void) { UI_MenuFrame(&soundOptionsInfo.menu); trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left column square on bottom 3rd // Network Frame trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(88,164, 524, 18, uis.whiteShader); // Top line UI_DrawHandlePic(88,182, 36, 39, uis.whiteShader); // Left column UI_DrawProportionalString( 130, 165, menu_normal_text[MNT_NETWORK],UI_SMALLFONT,colorTable[CT_BLACK]); // Top if (soundOptionsInfo.a3dtimer > uis.realtime) { UI_DrawProportionalString( 490, 305, menu_normal_text[MNT_A3DNOTAVAILABLE],UI_CENTER|UI_SMALLFONT, colorTable[CT_WHITE]); } // Sound Frame trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(88,228, 524, 18, uis.whiteShader); // Top line UI_DrawHandlePic(88,246, 36, 27, uis.whiteShader); // Left column UI_DrawHandlePic(88,277, 36, 25, uis.whiteShader); // Left column UI_DrawProportionalString( 130, 229, menu_normal_text[MNT_SOUND],UI_SMALLFONT,colorTable[CT_BLACK]); // Top trap_R_SetColor( colorTable[CT_LTBROWN1]); UI_DrawHandlePic(112,303, 500, 4, uis.whiteShader); // Middle long line UI_DrawHandlePic( 88, 300, 64, 8, soundOptionsInfo.corner); // Corner graphic trap_R_SetColor( colorTable[CT_DKBROWN1]); UI_DrawHandlePic(356,342, 8, 93, uis.whiteShader); // Middle Bottom Left column trap_R_SetColor( colorTable[CT_LTPURPLE1]); UI_DrawHandlePic( 98, 359, 248, 64,soundOptionsInfo.grid); trap_R_SetColor( colorTable[CT_LTBLUE1]); UI_DrawHandlePic( 98, 359, 248, 64, soundOptionsInfo.wave1); trap_R_SetColor( colorTable[CT_DKBROWN1]); UI_DrawHandlePic(96,359, 4, 64, uis.whiteShader); // Left side of frame UI_DrawHandlePic(342,359, 4, 64, uis.whiteShader); // Right side of frame UI_DrawHandlePic(96,355, 250, 4, uis.whiteShader); // Top of frame UI_DrawHandlePic(96,423, 250, 4, uis.whiteShader); // Bottom of frame UI_DrawHandlePic(367,342, 8, 93, uis.whiteShader); // Middle Bottom Right column trap_R_SetColor( colorTable[CT_LTPURPLE1]); UI_DrawHandlePic( 392, 359, 220, 64, soundOptionsInfo.grid); trap_R_SetColor( colorTable[CT_LTRED1]); UI_DrawHandlePic( 392, 359, 220, 64, soundOptionsInfo.wave2); trap_R_SetColor( colorTable[CT_DKBROWN1]); UI_DrawHandlePic(392, 359, 4, 64, uis.whiteShader); // Left side of frame UI_DrawHandlePic(608, 359, 4, 64, uis.whiteShader); // Right side of frame UI_DrawHandlePic(392,355, 220, 4, uis.whiteShader); // Top of frame UI_DrawHandlePic(392,423, 220, 4, uis.whiteShader); // Bottom of frame UI_Setup_MenuButtons(); UI_DrawProportionalString( 74, 66, "29876",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "568",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "45-009",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 206, "18856",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "18857",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); }
/* ================= DemoMenu_Graphics ================= */ static void DemoMenu_Graphics (void) { // Draw the basic screen layout UI_MenuFrame(&s_demos.menu); UI_DrawProportionalString( 74, 66, "88134-7",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 84, "56-0990",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 188, "3456",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 206, "7618",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 395, "692",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); trap_R_SetColor( colorTable[CT_DKBLUE2]); UI_DrawHandlePic(30,203, 47, 130, uis.whiteShader); // Top left column square on bottom 2 3rds UI_DrawHandlePic(30,336, 47, 16, uis.whiteShader); // Middle left column square on bottom 2 3rds UI_DrawHandlePic(30,355, 47, 34, uis.whiteShader); // Bottom left column square on bottom 2 3rds // Numbers for left hand side UI_DrawProportionalString( 74, 206, "52662",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 339, "662",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 74, 358, "101235",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]); // Current game box trap_R_SetColor( colorTable[CT_DKPURPLE2]); UI_DrawHandlePic(130,64, 88, 24, uis.whiteShader); // Left Side of current game line box 3 UI_DrawHandlePic(218,64, 320, 3, uis.whiteShader); // Top of current game line UI_DrawHandlePic(218,85, 320, 3, uis.whiteShader); // Bottom of current game line UI_DrawHandlePic(516,64, 44, 24, uis.whiteShader); // Right side of current game line UI_DrawHandlePic(113, 64, 32, 32, s_demos.currentGameTopLeft); // Upper left corner of current game box UI_DrawHandlePic(113, 97, 32, 32, s_demos.currentGameBotLeft); // Bottom left corner of current game box UI_DrawHandlePic(559, 64, 32, 32, s_demos.currentGameTopRight); // Upper right corner of current game box UI_DrawHandlePic(552, 97, -32, 32, s_demos.currentGameBotLeft); // Bottom right corner of current game box UI_DrawHandlePic(113,91, 18, 6, uis.whiteShader); // Left side of current game line UI_DrawHandlePic(566,91, 18, 6, uis.whiteShader); // Right side of current game line UI_DrawHandlePic(138,101, 142, 18, uis.whiteShader); // Lower bar to left side of 'engage' UI_DrawHandlePic(416,101, 143, 18, uis.whiteShader); // Lower bar to right side of 'engage' // Available Demos trap_R_SetColor( colorTable[CT_DKPURPLE2]); UI_DrawHandlePic(189, 168, 32, 32, s_demos.directoryUpperCorner1); // Left Upper corner of directory box UI_DrawHandlePic(189, 421, 32, 32, s_demos.directoryLowerCorner1); // Left Lower corner of directory box UI_DrawHandlePic(481, 168, 32, 32, s_demos.directoryUpperCorner2); // Right Upper corner of directory box UI_DrawHandlePic(470, 421, -32, 32, s_demos.directoryLowerCorner1); // Right Lower corner of directory box UI_DrawHandlePic(205, 168, 277, 18, uis.whiteShader); // Top bar UI_DrawHandlePic(189, 193, 16, 224, uis.whiteShader); // Left column {//TiM - Arrow Boxes UI_DrawHandlePic(485, 193, 16, 16, uis.whiteShader); // Up Arrow UI_DrawHandlePic(485, 212, 16, 187, uis.whiteShader); // Right column UI_DrawHandlePic(485, 402, 16, 16, uis.whiteShader); // Down Arrow } UI_DrawHandlePic(205, 424, 277, 8, uis.whiteShader); // Bottom bar UI_DrawProportionalString( 124, 67, "67B",UI_TINYFONT, colorTable[CT_BLACK]); UI_DrawProportionalString( 220, 169, menu_normal_text[MNT_CURRENTDEMOSAVAILABLE], UI_SMALLFONT, colorTable[CT_BLACK]); }