Пример #1
0
/*
===============
UI_SetupMenu_Event
===============
*/
static void UI_SetupMenu_Event( void *ptr, int event ) {
	if( event != QM_ACTIVATED ) {
		return;
	}

	switch( ((menucommon_s*)ptr)->id ) {
	case ID_CUSTOMIZEPLAYER:
		UI_PlayerSettingsMenu();
		break;

	case ID_CUSTOMIZECONTROLS:
		UI_ControlsMenu();
		break;

	case ID_SYSTEMCONFIG:
		UI_GraphicsOptionsMenu();
		break;

	case ID_GAME:
		UI_PreferencesMenu();
		break;

	case ID_CDKEY:
		UI_CDKeyMenu();
		break;

//	case ID_LOAD:
//		UI_LoadConfigMenu();
//		break;

//	case ID_SAVE:
//		UI_SaveConfigMenu();
//		break;

	case ID_DEFAULTS:
		UI_ConfirmMenu( "SET TO DEFAULTS?", Setup_ResetDefaults_Draw, Setup_ResetDefaults_Action );
		break;

	case ID_BACK:
		UI_PopMenu();
		break;
	}
}
Пример #2
0
/*
=================
GameOptions_MenuEvent
=================
*/
static void GameOptions_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_SOUND:
			UI_PopMenu();			// Get rid of whatever is ontop
			UI_SoundMenu();			// Move to the Sound Menu
			break;

		case ID_CONTROLS:
			UI_PopMenu();			// Get rid of whatever is ontop
			UI_SetupWeaponsMenu();	// Move to the Controls Menu
			break;

		case ID_VIDEO:
			UI_PopMenu();			// Get rid of whatever is ontop
			UI_VideoDataMenu();		// Move to the Video Menu
			break;

		case ID_GAMEOPTIONS:
			break;

		case ID_CDKEY:
			UI_PopMenu();			// Get rid of whatever is ontop
			UI_CDKeyMenu();			// Move to the CD Key Menu
			break;

		case ID_MAINMENU:
			UI_PopMenu();


	}
}
Пример #3
0
/*
===============
UI_CDKeyMenu_f
===============
 */
void UI_CDKeyMenu_f(void) {
    UI_CDKeyMenu();
}
Пример #4
0
/*
===============
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 | UI_SMALLFONT;
	int type;

	trap_Cvar_Set( "sv_killserver", "1" );

#if 0
	if (0) {  //( !uis.demoversion && !ui_cdkeychecked.integer ) {
		char	key[17];

		trap_GetCDKey( key, sizeof(key) );
		if( trap_VerifyCDKey( key, NULL ) == qfalse ) {
			UI_CDKeyMenu();
			return;
		}
	}
#endif

	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 = qfalse;  //qtrue;

	type = MTYPE_PTEXT;  //MTYPE_TEXT;  // MTYPE_PTEXT

	y = 134;
	s_main.singleplayer.generic.type		= type;
	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			= type;
	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.demos.generic.type				= type;
	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						= "WOLFCAM-DEMOS";
	s_main.demos.color						= color_red;
	s_main.demos.style						= style;

#if 1
	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.qldemos.generic.type				= type;
	s_main.qldemos.generic.flags				= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.qldemos.generic.x					= 320;
	s_main.qldemos.generic.y					= y;
	s_main.qldemos.generic.id					= ID_QLDEMOS;
	s_main.qldemos.generic.callback			= Main_MenuEvent;
	s_main.qldemos.string						= "QUAKELIVE-DEMOS";
	s_main.qldemos.color						= color_red;
	s_main.qldemos.style						= style;
#endif

#if 0
	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.cinematics.generic.type			= type;
	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;
#endif

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.setup.generic.type				= type;
	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;


	if ( !uis.demoversion && UI_TeamArenaExists() ) {
		teamArena = qtrue;
		//y += MAIN_MENU_VERTICAL_SPACING;
		s_main.teamArena.generic.type			= type;
		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 ( !uis.demoversion ) {
		//y += MAIN_MENU_VERTICAL_SPACING;
		s_main.mods.generic.type			= type;
		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;
	}

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.openQuakeLiveDirectory.generic.type				= type;
	s_main.openQuakeLiveDirectory.generic.flags				= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.openQuakeLiveDirectory.generic.x					= 320;
	s_main.openQuakeLiveDirectory.generic.y					= y;
	s_main.openQuakeLiveDirectory.generic.id					= ID_OPEN_QUAKE_LIVE_DIRECTORY;
	s_main.openQuakeLiveDirectory.generic.callback			= Main_MenuEvent;
	s_main.openQuakeLiveDirectory.string						= "OPEN QUAKE LIVE DIRECTORY";
	s_main.openQuakeLiveDirectory.color						= color_red;
	s_main.openQuakeLiveDirectory.style						= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.openWolfcamDirectory.generic.type				= type;
	s_main.openWolfcamDirectory.generic.flags				= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.openWolfcamDirectory.generic.x					= 320;
	s_main.openWolfcamDirectory.generic.y					= y;
	s_main.openWolfcamDirectory.generic.id					= ID_OPEN_WOLFCAM_DIRECTORY;
	s_main.openWolfcamDirectory.generic.callback			= Main_MenuEvent;
	s_main.openWolfcamDirectory.string						= "OPEN WOLFCAM DIRECTORY";
	s_main.openWolfcamDirectory.color						= color_red;
	s_main.openWolfcamDirectory.style						= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.exit.generic.type				= type;
	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 );

	if (!uis.showErrorMenu) {
		Menu_AddItem( &s_main.menu,	&s_main.demos );
		Menu_AddItem(&s_main.menu, &s_main.qldemos);
		//Menu_AddItem( &s_main.menu,	&s_main.cinematics );
		if (teamArena) {
			//Menu_AddItem( &s_main.menu,	&s_main.teamArena );
		}
		if ( !uis.demoversion ) {
			//Menu_AddItem( &s_main.menu,	&s_main.mods );
		}
		Menu_AddItem( &s_main.menu,	&s_main.setup );
	}

	Menu_AddItem(&s_main.menu, &s_main.openQuakeLiveDirectory);
	Menu_AddItem(&s_main.menu, &s_main.openWolfcamDirectory);
	Menu_AddItem( &s_main.menu,	&s_main.exit );

	trap_Key_SetCatcher( KEYCATCH_UI );
	uis.menusp = 0;
	UI_PushMenu ( &s_main.menu );
}
Пример #5
0
/*
===============
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_LEFT | UI_CURSORSHADOW;

	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) );

	MainMenu_Cache();

	s_main.menu.draw = Main_MenuDraw;
	s_main.menu.fullscreen = qtrue;
	s_main.menu.wrapAround = qtrue;

	s_main.backleft.generic.type	= MTYPE_BITMAP;
	s_main.backleft.generic.name	= MAIN_BACKGROUND_LEFT;
	s_main.backleft.generic.flags	= QMF_INACTIVE;
	s_main.backleft.generic.x		= 0;  
	s_main.backleft.generic.y		= 120;
	s_main.backleft.width			= 320;
	s_main.backleft.height			= 360;

	s_main.backright.generic.type	= MTYPE_BITMAP;
	s_main.backright.generic.name	= MAIN_BACKGROUND_RIGHT;
	s_main.backright.generic.flags	= QMF_INACTIVE;
	s_main.backright.generic.x		= 320;  
	s_main.backright.generic.y		= 120;
	s_main.backright.width			= 320;
	s_main.backright.height			= 360;

	y = 160;
	s_main.joingame.generic.type			= MTYPE_PTEXT;
	s_main.joingame.generic.flags			= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.joingame.generic.x				= 20;
	s_main.joingame.generic.y				= y;
	s_main.joingame.generic.id				= ID_JOINGAME;
	s_main.joingame.generic.callback		= Main_MenuEvent; 
	s_main.joingame.string					= "JOIN GAME";
	s_main.joingame.color					= color_orange;
	s_main.joingame.style					= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.startserver.generic.type			= MTYPE_PTEXT;
	s_main.startserver.generic.flags		= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.startserver.generic.x			= 20;
	s_main.startserver.generic.y			= y;
	s_main.startserver.generic.id			= ID_STARTSERVER;
	s_main.startserver.generic.callback		= Main_MenuEvent; 
	s_main.startserver.string				= "START SERVER";
	s_main.startserver.color				= color_orange;
	s_main.startserver.style				= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.setup.generic.type				= MTYPE_PTEXT;
	s_main.setup.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.setup.generic.x					= 20;
	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_orange;
	s_main.setup.style						= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.demos.generic.type				= MTYPE_PTEXT;
	s_main.demos.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.demos.generic.x					= 20;
	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_orange;
	s_main.demos.style						= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.mods.generic.type				= MTYPE_PTEXT;
	s_main.mods.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.mods.generic.x					= 20;
	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_orange;
	s_main.mods.style						= style;

	y += MAIN_MENU_VERTICAL_SPACING;
	s_main.exit.generic.type				= MTYPE_PTEXT;
	s_main.exit.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	s_main.exit.generic.x					= 20;
	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_orange;
	s_main.exit.style						= style;

	Menu_AddItem( &s_main.menu,	&s_main.backleft );
	Menu_AddItem( &s_main.menu,	&s_main.backright );
	Menu_AddItem( &s_main.menu,	&s_main.joingame );
	Menu_AddItem( &s_main.menu,	&s_main.startserver );
	Menu_AddItem( &s_main.menu,	&s_main.setup );
	Menu_AddItem( &s_main.menu,	&s_main.demos );
	Menu_AddItem( &s_main.menu,	&s_main.mods );
	Menu_AddItem( &s_main.menu,	&s_main.exit );             

	uis.addToFavorites = qfalse;
	trap_Key_SetCatcher( KEYCATCH_UI );
	uis.menusp = 0;
	UI_PushMenu ( &s_main.menu );
}