/* ================= Main_MenuEvent ================= */ void Main_MenuEvent(void* ptr, int event) { if (event != QM_ACTIVATED) { return; } switch (((menucommon_s*) ptr)->id) { case ID_SINGLEPLAYER: UI_SPLevelMenu(); break; case ID_MULTIPLAYER: UI_ArenaServersMenu(); break; case ID_OPTIONS: UI_SetupMenu(); break; case ID_DEMOS: UI_DemosMenu(); break; case ID_EXIT: UI_ConfirmMenu("Exit " PRODUCT_NAME "?", 0, MainMenu_ExitAction); break; } }
/* ================= Main_MenuEvent ================= */ void Main_MenuEvent (void* ptr, int event) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_SINGLEPLAYER: UI_SPLevelMenu(); break; case ID_MULTIPLAYER: UI_ArenaServersMenu(); break; case ID_SETUP: UI_SetupMenu(); break; case ID_DEMOS: UI_DemosMenu(qfalse); break; case ID_QLDEMOS: UI_DemosMenu(qtrue); break; case ID_CINEMATICS: UI_CinematicsMenu(); break; case ID_MODS: UI_ModsMenu(); break; case ID_TEAMARENA: trap_Cvar_Set( "fs_game", BASETA); trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart;" ); break; case ID_OPEN_QUAKE_LIVE_DIRECTORY: trap_OpenQuakeLiveDirectory(); break; case ID_OPEN_WOLFCAM_DIRECTORY: trap_OpenWolfcamDirectory(); break; case ID_EXIT: //UI_ConfirmMenu( "EXIT GAME?", 0, MainMenu_ExitAction ); trap_Cmd_ExecuteText( EXEC_APPEND, "quit\n" ); break; } }
static void UI_SPLevelMenu_ResetAction( qboolean result ) { if( !result ) { return; } // clear game variables UI_NewGame(); trap_Cvar_SetValue( "ui_spSelection", -4 ); // make the level select menu re-initialize UI_PopMenu(); UI_SPLevelMenu(); }
/* ================= Main_MenuEvent ================= */ void Main_MenuEvent (void* ptr, int event) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_SINGLEPLAYER: UI_SPLevelMenu(); break; case ID_MULTIPLAYER: if(ui_setupchecked.integer) UI_ArenaServersMenu(); else UI_FirstConnectMenu(); break; case ID_SETUP: UI_SetupMenu(); break; case ID_DEMOS: UI_DemosMenu(); break; /*case ID_CINEMATICS: UI_CinematicsMenu(); break;*/ case ID_CHALLENGES: UI_Challenges(); break; case ID_MODS: UI_ModsMenu(); break; case ID_TEAMARENA: trap_Cvar_Set( "fs_game", "missionpack"); trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart;" ); break; case ID_EXIT: //UI_ConfirmMenu( "EXIT GAME?", 0, MainMenu_ExitAction ); UI_CreditMenu(); break; } }
/* ================= Reset_MenuEvent ================= */ void Reset_MenuEvent(void* ptr, int event) { if( event != QM_ACTIVATED ) { return; } UI_PopMenu(); if( ((menucommon_s*)ptr)->id == ID_NO ) { return; } // reset the game, pop the level menu and restart it so it updates UI_NewGame(); trap_Cvar_SetValue( "ui_spSelection", 0 ); UI_PopMenu(); UI_SPLevelMenu(); }
static void UI_SPLevelMenu_ResetAction( qboolean result ) { if( !result ) { return; } // clear game variables UI_NewGame(); if ( UI_GetSpecialArenaInfo( "training" ) ) { trap_Cvar_SetValue( "ui_spSelection", -4 ); } else { trap_Cvar_SetValue( "ui_spSelection", 0 ); } // make the level select menu re-initialize UI_PopMenu(); UI_SPLevelMenu(); }
/* ================= Main_MenuEvent ================= */ void Main_MenuEvent (void* ptr, int event) { if( event != QM_ACTIVATED ) { return; } switch( ((menucommon_s*)ptr)->id ) { case ID_SINGLEPLAYER: UI_SPLevelMenu(); break; case ID_MULTIPLAYER: UI_ArenaServersMenu(); break; case ID_SETUP: UI_SetupMenu(); break; case ID_DEMOS: UI_DemosMenu(); break; case ID_CINEMATICS: UI_CinematicsMenu(); break; case ID_MODS: UI_ModsMenu(); break; #ifndef MISSIONPACK case ID_TEAMARENA: trap_Cvar_Set( "fs_game", BASETA); trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart;" ); break; #endif case ID_EXIT: UI_ConfirmMenu( "EXIT GAME?", 0, MainMenu_ExitAction ); break; } }
/* ================= UI_SPLevelMenu_f ================= */ void UI_SPLevelMenu_f( void ) { trap_Key_SetCatcher( KEYCATCH_UI ); uis.menusp = 0; UI_SPLevelMenu(); }
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 ); } }