/* =============== UI_JoystickMenu =============== */ void UI_JoystickMenu( int localClient ) { UI_Joystick_MenuInit(localClient); UI_PushMenu( &joystickMenu.menu ); }
/* ================= UI_GraphicsOptionsMenu ================= */ void UI_GraphicsOptionsMenu( void ) { GraphicsOptions_MenuInit(); UI_PushMenu( &s_graphicsoptions.menu ); Menu_SetCursorToItem( &s_graphicsoptions.menu, &s_graphicsoptions.graphics ); }
/* =============== UI_ModsMenu =============== */ void UI_ModsMenu( void ) { UI_Mods_MenuInit(); UI_PushMenu( &s_mods.menu ); }
/* ================= UI_InServerMenu ================= */ void UI_InServerMenu( void ) { InServer_MenuInit(); UI_PushMenu( &s_inserver.menu ); }
/* =============== UI_DemosMenu =============== */ void UI_DemosMenu( void ) { Demos_MenuInit(); UI_PushMenu( &s_demos.menu ); }
/* ======================================================================================================================================= UI_PreferencesMenu ======================================================================================================================================= */ void UI_PreferencesMenu(void) { Preferences_MenuInit(); UI_PushMenu(&s_preferences.menu); }
/* ================= UI_AddBotsMenu ================= */ void UI_AddBotsMenu( void ) { UI_AddBotsMenu_Init(); UI_PushMenu( &addBotsMenuInfo.menu ); }
/* ================= UI_ArenaServersMenu ================= */ void UI_ArenaServersMenu( void ) { ArenaServers_MenuInit(); UI_PushMenu( &g_arenaservers.menu ); }
void M_Menu_Keys_f (void) { Keys_MenuInit(); UI_PushMenu( Keys_MenuDraw, Keys_MenuKey ); }
/* =============== UI_SystemConfigMenu =============== */ void UI_SystemConfigMenu( void ) { Options_MenuInit(); UI_PushMenu ( &s_options.menu ); }
void M_Menu_Options_Ingame_f (void) { Options_Ingame_MenuInit(); UI_PushMenu ( Options_Ingame_MenuDraw, Options_Ingame_MenuKey ); }
/* =============== UI_MainMenu The main menu only comes up when not in a game, so make sure that the attract loop server is down and that local cinematics are killed =============== */ void UI_MainMenu( void ) { int y; qboolean teamArena = qfalse; int style = UI_CENTER | UI_DROPSHADOW; trap_Cvar_Set( "sv_killserver", "1" ); if( !uis.demoversion && !ui_cdkeychecked.integer ) { char key[17]; trap_GetCDKey( key, sizeof(key) ); if( trap_VerifyCDKey( key, NULL ) == qfalse ) { UI_CDKeyMenu(); return; } } memset( &s_main, 0 ,sizeof(mainmenu_t) ); memset( &s_errorMessage, 0 ,sizeof(errorMessage_t) ); // com_errorMessage would need that too MainMenu_Cache(); trap_Cvar_VariableStringBuffer( "com_errorMessage", s_errorMessage.errorMessage, sizeof(s_errorMessage.errorMessage) ); if (strlen(s_errorMessage.errorMessage)) { s_errorMessage.menu.draw = Main_MenuDraw; s_errorMessage.menu.key = ErrorMessage_Key; s_errorMessage.menu.fullscreen = qtrue; s_errorMessage.menu.wrapAround = qtrue; s_errorMessage.menu.showlogo = qtrue; trap_Key_SetCatcher( KEYCATCH_UI ); uis.menusp = 0; UI_PushMenu ( &s_errorMessage.menu ); return; } s_main.menu.draw = Main_MenuDraw; s_main.menu.fullscreen = qtrue; s_main.menu.wrapAround = qtrue; s_main.menu.showlogo = qtrue; y = 150; s_main.singleplayer.generic.type = MTYPE_PTEXT; s_main.singleplayer.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.singleplayer.generic.x = 320; s_main.singleplayer.generic.y = y; s_main.singleplayer.generic.id = ID_SINGLEPLAYER; s_main.singleplayer.generic.callback = Main_MenuEvent; s_main.singleplayer.string = "SINGLE PLAYER"; s_main.singleplayer.color = color_red; s_main.singleplayer.style = style; y += MAIN_MENU_VERTICAL_SPACING; s_main.multiplayer.generic.type = MTYPE_PTEXT; s_main.multiplayer.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.multiplayer.generic.x = 320; s_main.multiplayer.generic.y = y; s_main.multiplayer.generic.id = ID_MULTIPLAYER; s_main.multiplayer.generic.callback = Main_MenuEvent; s_main.multiplayer.string = "MULTIPLAYER"; s_main.multiplayer.color = color_red; s_main.multiplayer.style = style; y += MAIN_MENU_VERTICAL_SPACING; s_main.setup.generic.type = MTYPE_PTEXT; s_main.setup.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.setup.generic.x = 320; s_main.setup.generic.y = y; s_main.setup.generic.id = ID_SETUP; s_main.setup.generic.callback = Main_MenuEvent; s_main.setup.string = "SETUP"; s_main.setup.color = color_red; s_main.setup.style = style; y += MAIN_MENU_VERTICAL_SPACING; s_main.demos.generic.type = MTYPE_PTEXT; s_main.demos.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.demos.generic.x = 320; s_main.demos.generic.y = y; s_main.demos.generic.id = ID_DEMOS; s_main.demos.generic.callback = Main_MenuEvent; s_main.demos.string = "DEMOS"; s_main.demos.color = color_red; s_main.demos.style = style; y += MAIN_MENU_VERTICAL_SPACING; s_main.cinematics.generic.type = MTYPE_PTEXT; s_main.cinematics.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.cinematics.generic.x = 320; s_main.cinematics.generic.y = y; s_main.cinematics.generic.id = ID_CINEMATICS; s_main.cinematics.generic.callback = Main_MenuEvent; s_main.cinematics.string = "CINEMATICS"; s_main.cinematics.color = color_red; s_main.cinematics.style = style; if (UI_TeamArenaExists()) { teamArena = qtrue; y += MAIN_MENU_VERTICAL_SPACING; s_main.teamArena.generic.type = MTYPE_PTEXT; s_main.teamArena.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.teamArena.generic.x = 320; s_main.teamArena.generic.y = y; s_main.teamArena.generic.id = ID_TEAMARENA; s_main.teamArena.generic.callback = Main_MenuEvent; s_main.teamArena.string = "TEAM ARENA"; s_main.teamArena.color = color_red; s_main.teamArena.style = style; } #if 0 y += MAIN_MENU_VERTICAL_SPACING; s_main.mods.generic.type = MTYPE_PTEXT; s_main.mods.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.mods.generic.x = 320; s_main.mods.generic.y = y; s_main.mods.generic.id = ID_MODS; s_main.mods.generic.callback = Main_MenuEvent; s_main.mods.string = "MODS"; s_main.mods.color = color_red; s_main.mods.style = style; #endif y += MAIN_MENU_VERTICAL_SPACING; s_main.exit.generic.type = MTYPE_PTEXT; s_main.exit.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.exit.generic.x = 320; s_main.exit.generic.y = y; s_main.exit.generic.id = ID_EXIT; s_main.exit.generic.callback = Main_MenuEvent; s_main.exit.string = "EXIT"; s_main.exit.color = color_red; s_main.exit.style = style; Menu_AddItem( &s_main.menu, &s_main.singleplayer ); Menu_AddItem( &s_main.menu, &s_main.multiplayer ); Menu_AddItem( &s_main.menu, &s_main.setup ); Menu_AddItem( &s_main.menu, &s_main.demos ); Menu_AddItem( &s_main.menu, &s_main.cinematics ); if (teamArena) { Menu_AddItem( &s_main.menu, &s_main.teamArena ); } //Menu_AddItem( &s_main.menu, &s_main.mods ); Menu_AddItem( &s_main.menu, &s_main.exit ); trap_Key_SetCatcher( KEYCATCH_UI ); uis.menusp = 0; UI_PushMenu ( &s_main.menu ); }
/* =============== UI_TeamOrdersMenu =============== */ void UI_TeamOrdersMenu( void ) { UI_TeamOrdersMenu_Init(); UI_PushMenu( &teamOrdersMenuInfo.menu ); }
/* =============== UI_LoginMenu =============== */ void UI_LoginMenu( void ) { Login_MenuInit(); UI_PushMenu ( &s_login.menu ); }
/* =============== UI_NetworkOptionsMenu =============== */ void UI_NetworkOptionsMenu( void ) { UI_NetworkOptionsMenu_Init(); UI_PushMenu( &networkOptionsInfo.menu ); Menu_SetCursorToItem( &networkOptionsInfo.menu, &networkOptionsInfo.network ); }
/* ================= UI_SpecifyLeagueMenu ================= */ void UI_SpecifyLeagueMenu(void) { SpecifyLeague_MenuInit(); UI_PushMenu(&s_specifyleague.menu); }
/* =============== UI_SoundOptionsMenu =============== */ void UI_SoundOptionsMenu( void ) { UI_SoundOptionsMenu_Init(); UI_PushMenu( &soundOptionsInfo.menu ); Menu_SetCursorToItem( &soundOptionsInfo.menu, &soundOptionsInfo.sound ); }
/* ================= UI_SPPostgameMenu_f ================= */ void UI_SPPostgameMenu_f( void ) { int playerGameRank; int playerClientNum; int n; int oldFrags, newFrags; const char *arena; int awardValues[6]; char map[MAX_QPATH]; char info[MAX_INFO_STRING]; memset( &postgameMenuInfo, 0, sizeof(postgameMenuInfo) ); trap_GetConfigString( CS_SYSTEMINFO, info, sizeof(info) ); postgameMenuInfo.serverId = atoi( Info_ValueForKey( info, "sv_serverid" ) ); trap_GetConfigString( CS_SERVERINFO, info, sizeof(info) ); Q_strncpyz( map, Info_ValueForKey( info, "mapname" ), sizeof(map) ); arena = UI_GetArenaInfoByMap( map ); if ( !arena ) { return; } Q_strncpyz( arenainfo, arena, sizeof(arenainfo) ); postgameMenuInfo.level = atoi( Info_ValueForKey( arenainfo, "num" ) ); postgameMenuInfo.numClients = atoi( UI_Argv( 1 ) ); playerClientNum = atoi( UI_Argv( 2 ) ); playerGameRank = 8; // in case they ended game as a spectator if( postgameMenuInfo.numClients > MAX_SCOREBOARD_CLIENTS ) { postgameMenuInfo.numClients = MAX_SCOREBOARD_CLIENTS; } for( n = 0; n < postgameMenuInfo.numClients; n++ ) { postgameMenuInfo.clientNums[n] = atoi( UI_Argv( 8 + n * 3 + 1 ) ); postgameMenuInfo.ranks[n] = atoi( UI_Argv( 8 + n * 3 + 2 ) ); postgameMenuInfo.scores[n] = atoi( UI_Argv( 8 + n * 3 + 3 ) ); if( postgameMenuInfo.clientNums[n] == playerClientNum ) { playerGameRank = (postgameMenuInfo.ranks[n] & ~RANK_TIED_FLAG) + 1; } } UI_SetBestScore( postgameMenuInfo.level, playerGameRank ); // process award stats and prepare presentation data awardValues[AWARD_ACCURACY] = atoi( UI_Argv( 3 ) ); awardValues[AWARD_IMPRESSIVE] = atoi( UI_Argv( 4 ) ); awardValues[AWARD_EXCELLENT] = atoi( UI_Argv( 5 ) ); awardValues[AWARD_GAUNTLET] = atoi( UI_Argv( 6 ) ); awardValues[AWARD_FRAGS] = atoi( UI_Argv( 7 ) ); awardValues[AWARD_PERFECT] = atoi( UI_Argv( 8 ) ); postgameMenuInfo.numAwards = 0; if( awardValues[AWARD_ACCURACY] >= 50 ) { UI_LogAwardData( AWARD_ACCURACY, 1 ); postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_ACCURACY; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = awardValues[AWARD_ACCURACY]; postgameMenuInfo.numAwards++; } if( awardValues[AWARD_IMPRESSIVE] ) { UI_LogAwardData( AWARD_IMPRESSIVE, awardValues[AWARD_IMPRESSIVE] ); postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_IMPRESSIVE; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = awardValues[AWARD_IMPRESSIVE]; postgameMenuInfo.numAwards++; } if( awardValues[AWARD_EXCELLENT] ) { UI_LogAwardData( AWARD_EXCELLENT, awardValues[AWARD_EXCELLENT] ); postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_EXCELLENT; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = awardValues[AWARD_EXCELLENT]; postgameMenuInfo.numAwards++; } if( awardValues[AWARD_GAUNTLET] ) { UI_LogAwardData( AWARD_GAUNTLET, awardValues[AWARD_GAUNTLET] ); postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_GAUNTLET; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = awardValues[AWARD_GAUNTLET]; postgameMenuInfo.numAwards++; } oldFrags = UI_GetAwardLevel( AWARD_FRAGS ) / 100; UI_LogAwardData( AWARD_FRAGS, awardValues[AWARD_FRAGS] ); newFrags = UI_GetAwardLevel( AWARD_FRAGS ) / 100; if( newFrags > oldFrags ) { postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_FRAGS; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = newFrags * 100; postgameMenuInfo.numAwards++; } if( awardValues[AWARD_PERFECT] ) { UI_LogAwardData( AWARD_PERFECT, 1 ); postgameMenuInfo.awardsEarned[postgameMenuInfo.numAwards] = AWARD_PERFECT; postgameMenuInfo.awardsLevels[postgameMenuInfo.numAwards] = 1; postgameMenuInfo.numAwards++; } if ( playerGameRank == 1 ) { postgameMenuInfo.won = UI_TierCompleted( postgameMenuInfo.level ); } else { postgameMenuInfo.won = -1; } postgameMenuInfo.starttime = uis.realtime; postgameMenuInfo.scoreboardtime = uis.realtime; trap_Key_SetCatcher( KEYCATCH_UI ); uis.menusp = 0; UI_SPPostgameMenu_Init(); UI_PushMenu( &postgameMenuInfo.menu ); if ( playerGameRank == 1 ) { Menu_SetCursorToItem( &postgameMenuInfo.menu, &postgameMenuInfo.item_next ); } else { Menu_SetCursorToItem( &postgameMenuInfo.menu, &postgameMenuInfo.item_again ); } Prepname( 0 ); Prepname( 1 ); Prepname( 2 ); if ( playerGameRank != 1 ) { postgameMenuInfo.winnerSound = trap_S_RegisterSound( va( "sound/player/announce/%s_wins.wav", postgameMenuInfo.placeNames[0] ), qfalse ); trap_Cmd_ExecuteText( EXEC_APPEND, "music music/loss\n" ); } else { postgameMenuInfo.winnerSound = trap_S_RegisterSound( "sound/player/announce/youwin.wav", qfalse ); trap_Cmd_ExecuteText( EXEC_APPEND, "music music/win\n" ); } postgameMenuInfo.phase = 1; postgameMenuInfo.lastTier = UI_GetNumSPTiers(); if ( UI_GetSpecialArenaInfo( "final" ) ) { postgameMenuInfo.lastTier++; } }
void M_Menu_Options_Screen_f (void) { Options_Screen_MenuInit(); UI_PushMenu ( Options_Screen_MenuDraw, Options_Screen_MenuKey, Options_Screen_Teardown ); }
/* ================= UI_SpecifyServerMenu ================= */ void UI_SpecifyServerMenu( void ) { SpecifyServer_MenuInit(); UI_PushMenu( &s_specifyserver.menu ); }
void M_Menu_Options_Interface_f (void) { Options_Interface_MenuInit(); UI_PushMenu ( Options_Interface_MenuDraw, Options_Interface_MenuKey, Options_Interface_Teardown ); }
/* =============== UI_SetupMenu =============== */ void UI_SetupMenu( void ) { UI_SetupMenu_Init(); UI_PushMenu( &setupMenuInfo.menu ); }
void UI_SPSkillMenu( const char *arenaInfo ) { UI_SPSkillMenu_Init(); skillMenuInfo.arenaInfo = arenaInfo; UI_PushMenu( &skillMenuInfo.menu ); Menu_SetCursorToItem( &skillMenuInfo.menu, &skillMenuInfo.item_fight ); }
/* ================= UI_ServerInfoMenu ================= */ void UI_ServerInfoMenu( void ) { const char *s; char key[MAX_INFO_KEY]; char value[MAX_INFO_VALUE]; // zero set all our globals memset( &s_serverinfo, 0 ,sizeof(serverinfo_t) ); ServerInfo_Cache(); s_serverinfo.menu.draw = ServerInfo_MenuDraw; s_serverinfo.menu.key = ServerInfo_MenuKey; s_serverinfo.menu.wrapAround = qtrue; s_serverinfo.menu.fullscreen = qtrue; s_serverinfo.banner.generic.type = MTYPE_BTEXT; s_serverinfo.banner.generic.x = 320; s_serverinfo.banner.generic.y = 16; s_serverinfo.banner.string = "SERVER INFO"; s_serverinfo.banner.color = color_white; s_serverinfo.banner.style = UI_CENTER; s_serverinfo.framel.generic.type = MTYPE_BITMAP; s_serverinfo.framel.generic.name = SERVERINFO_FRAMEL; s_serverinfo.framel.generic.flags = QMF_INACTIVE; s_serverinfo.framel.generic.x = 0; s_serverinfo.framel.generic.y = 78; s_serverinfo.framel.width = 256; s_serverinfo.framel.height = 329; s_serverinfo.framer.generic.type = MTYPE_BITMAP; s_serverinfo.framer.generic.name = SERVERINFO_FRAMER; s_serverinfo.framer.generic.flags = QMF_INACTIVE; s_serverinfo.framer.generic.x = 376; s_serverinfo.framer.generic.y = 76; s_serverinfo.framer.width = 256; s_serverinfo.framer.height = 334; s_serverinfo.add.generic.type = MTYPE_PTEXT; s_serverinfo.add.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_serverinfo.add.generic.callback = ServerInfo_Event; s_serverinfo.add.generic.id = ID_ADD; s_serverinfo.add.generic.x = 320; s_serverinfo.add.generic.y = 371; s_serverinfo.add.string = "ADD TO FAVORITES"; s_serverinfo.add.style = UI_CENTER|UI_SMALLFONT; s_serverinfo.add.color = color_red; if( trap_Cvar_VariableValue( "sv_running" ) ) { s_serverinfo.add.generic.flags |= QMF_GRAYED; } s_serverinfo.back.generic.type = MTYPE_BITMAP; s_serverinfo.back.generic.name = SERVERINFO_BACK0; s_serverinfo.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS; s_serverinfo.back.generic.callback = ServerInfo_Event; s_serverinfo.back.generic.id = ID_BACK; s_serverinfo.back.generic.x = 0; s_serverinfo.back.generic.y = 480-64; s_serverinfo.back.width = 128; s_serverinfo.back.height = 64; s_serverinfo.back.focuspic = SERVERINFO_BACK1; trap_GetConfigString( CS_SERVERINFO, s_serverinfo.info, MAX_INFO_STRING ); s_serverinfo.numlines = 0; s = s_serverinfo.info; while ( s ) { Info_NextPair( &s, key, value ); if ( !key[0] ) { break; } s_serverinfo.numlines++; } if (s_serverinfo.numlines > 16) s_serverinfo.numlines = 16; Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.banner ); Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framel ); Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framer ); Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.add ); Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.back ); UI_PushMenu( &s_serverinfo.menu ); }
/* ================= UI_PlayerSettingsMenu ================= */ void UI_PlayerSettingsMenu( void ) { PlayerSettings_MenuInit(); UI_PushMenu( &s_playersettings.menu ); }
void UI_ConfirmMenu( const char *question, void (*draw)( void ), void (*action)( qboolean result ) ) { // uiClientState_t cstate; int n1, n2, n3; int l1, l2, l3; // zero set all our globals memset( &s_confirm, 0, sizeof(s_confirm) ); ConfirmMenu_Cache(); Mouse_Show(); n1 = UI_ProportionalStringWidth( "YES/NO",UI_SMALLFONT ); n2 = UI_ProportionalStringWidth( "YES",UI_SMALLFONT ) + PROP_GAP_WIDTH; n3 = UI_ProportionalStringWidth( "/",UI_SMALLFONT ) + PROP_GAP_WIDTH; l1 = 320 - ( n1 / 2 ); l2 = l1 + n2; l3 = l2 + n3; s_confirm.slashX = l2; s_confirm.question = question; s_confirm.draw = draw; s_confirm.action = action; s_confirm.menu.draw = ConfirmMenu_Draw; s_confirm.menu.key = ConfirmMenu_Key; s_confirm.menu.wrapAround = qtrue; s_confirm.menu.fullscreen = qtrue; s_confirm.menu.descX = MENU_DESC_X; s_confirm.menu.descY = MENU_DESC_Y; s_confirm.menu.titleX = MENU_TITLE_X; s_confirm.menu.titleY = MENU_TITLE_Y; s_confirm.menu.titleI = MNT_CONFIRMATIONMENU_TITLE; s_confirm.menu.footNoteEnum = MNT_CONFIRMATION; s_confirm.yes.generic.type = MTYPE_BITMAP; s_confirm.yes.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_confirm.yes.generic.x = 215; s_confirm.yes.generic.y = 365; s_confirm.yes.generic.callback = ConfirmMenu_Event; s_confirm.yes.generic.id = ID_CONFIRM_YES; s_confirm.yes.generic.name = GRAPHIC_SQUARE; s_confirm.yes.width = MENU_BUTTON_MED_WIDTH; s_confirm.yes.height = MENU_BUTTON_MED_HEIGHT; s_confirm.yes.color = CT_DKPURPLE1; s_confirm.yes.color2 = CT_LTPURPLE1; s_confirm.yes.textX = MENU_BUTTON_TEXT_X; s_confirm.yes.textY = MENU_BUTTON_TEXT_Y; s_confirm.yes.textEnum = MBT_GENERIC_YES; s_confirm.yes.textcolor = CT_BLACK; s_confirm.yes.textcolor2 = CT_WHITE; s_confirm.no.generic.type = MTYPE_BITMAP; s_confirm.no.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_confirm.no.generic.x = 371; s_confirm.no.generic.y = 365; s_confirm.no.generic.callback = ConfirmMenu_Event; s_confirm.no.generic.id = ID_CONFIRM_NO; s_confirm.no.generic.name = GRAPHIC_SQUARE; s_confirm.no.width = 103; s_confirm.no.height = MENU_BUTTON_MED_HEIGHT; s_confirm.no.color = CT_DKPURPLE1; s_confirm.no.color2 = CT_LTPURPLE1; s_confirm.no.textX = MENU_BUTTON_TEXT_X; s_confirm.no.textY = MENU_BUTTON_TEXT_Y; s_confirm.no.textEnum = MBT_GENERIC_NO; s_confirm.no.textcolor = CT_BLACK; s_confirm.no.textcolor2 = CT_WHITE; Menu_AddItem( &s_confirm.menu, &s_confirm.yes ); Menu_AddItem( &s_confirm.menu, &s_confirm.no ); UI_PushMenu( &s_confirm.menu ); // Menu_SetCursorToItem( &s_confirm.menu, &s_confirm.no ); }
/* ================= UI_DriverInfo_Menu ================= */ static void UI_DriverInfo_Menu( void ) { char* eptr; int i; int len; // zero set all our globals memset( &s_driverinfo, 0 ,sizeof(driverinfo_t) ); DriverInfo_Cache(); s_driverinfo.menu.fullscreen = qtrue; s_driverinfo.menu.draw = DriverInfo_MenuDraw; s_driverinfo.banner.generic.type = MTYPE_BTEXT; s_driverinfo.banner.generic.x = 320; s_driverinfo.banner.generic.y = 16; s_driverinfo.banner.string = "DRIVER INFO"; s_driverinfo.banner.color = color_white; s_driverinfo.banner.style = UI_CENTER; s_driverinfo.framel.generic.type = MTYPE_BITMAP; s_driverinfo.framel.generic.name = DRIVERINFO_FRAMEL; s_driverinfo.framel.generic.flags = QMF_INACTIVE; s_driverinfo.framel.generic.x = 0; s_driverinfo.framel.generic.y = 78; s_driverinfo.framel.width = 256; s_driverinfo.framel.height = 329; s_driverinfo.framer.generic.type = MTYPE_BITMAP; s_driverinfo.framer.generic.name = DRIVERINFO_FRAMER; s_driverinfo.framer.generic.flags = QMF_INACTIVE; s_driverinfo.framer.generic.x = 376; s_driverinfo.framer.generic.y = 76; s_driverinfo.framer.width = 256; s_driverinfo.framer.height = 334; s_driverinfo.back.generic.type = MTYPE_BITMAP; s_driverinfo.back.generic.name = DRIVERINFO_BACK0; s_driverinfo.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS; s_driverinfo.back.generic.callback = DriverInfo_Event; s_driverinfo.back.generic.id = ID_DRIVERINFOBACK; s_driverinfo.back.generic.x = 0; s_driverinfo.back.generic.y = 480-64; s_driverinfo.back.width = 128; s_driverinfo.back.height = 64; s_driverinfo.back.focuspic = DRIVERINFO_BACK1; // TTimo: overflow with particularly long GL extensions (such as the gf3) // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=399 // NOTE: could have pushed the size of stringbuff, but the list is already out of the screen // (no matter what your resolution) Q_strncpyz(s_driverinfo.stringbuff, uis.glconfig.extensions_string, 1024); // build null terminated extension strings eptr = s_driverinfo.stringbuff; while ( s_driverinfo.numstrings<40 && *eptr ) { while ( *eptr && *eptr == ' ' ) *eptr++ = '\0'; // track start of valid string if (*eptr && *eptr != ' ') s_driverinfo.strings[s_driverinfo.numstrings++] = eptr; while ( *eptr && *eptr != ' ' ) eptr++; } // safety length strings for display for (i=0; i<s_driverinfo.numstrings; i++) { len = strlen(s_driverinfo.strings[i]); if (len > 32) { s_driverinfo.strings[i][len-1] = '>'; s_driverinfo.strings[i][len] = '\0'; } } Menu_AddItem( &s_driverinfo.menu, &s_driverinfo.banner ); Menu_AddItem( &s_driverinfo.menu, &s_driverinfo.framel ); Menu_AddItem( &s_driverinfo.menu, &s_driverinfo.framer ); Menu_AddItem( &s_driverinfo.menu, &s_driverinfo.back ); UI_PushMenu( &s_driverinfo.menu ); }
/* =============== UI_TeamMainMenu =============== */ void UI_TeamMainMenu( void ) { TeamMain_MenuInit(); UI_PushMenu ( &s_teammain.menu ); }
/* =============== UI_CinematicsMenu =============== */ void UI_CinematicsMenu( void ) { UI_CinematicsMenu_Init(); UI_PushMenu( &cinematicsMenuInfo.menu ); }
void M_Menu_DMOptions_f(void) { DMOptions_MenuInit(); UI_PushMenu(DMOptions_MenuDraw, DMOptions_MenuKey); }