/* =============== 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" ); 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; 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; y = 330; #define PLACE_X 530 s_main.demos.generic.type = MTYPE_PTEXT; s_main.demos.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.demos.generic.x = PLACE_X; 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.setup.generic.type = MTYPE_PTEXT; s_main.setup.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.setup.generic.x = PLACE_X; 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.credits.generic.type = MTYPE_PTEXT; s_main.credits.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.credits.generic.x = PLACE_X; s_main.credits.generic.y = y; s_main.credits.generic.id = ID_CREDITS; s_main.credits.generic.callback = Main_MenuEvent; s_main.credits.string = "CREDITS"; s_main.credits.color = color_red; s_main.credits.style = style; 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 = PLACE_X; 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.demos ); Menu_AddItem( &s_main.menu, &s_main.setup ); Menu_AddItem( &s_main.menu, &s_main.credits ); Menu_AddItem( &s_main.menu, &s_main.exit ); trap_Key_SetCatcher( KEYCATCH_UI ); uis.menusp = 0; UI_PushMenu ( &s_main.menu ); }
/* =============== 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; #ifndef MISSIONPACK qboolean teamArena = qfalse; #endif int style = UI_CENTER | UI_DROPSHADOW; CG_KillServer(); 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; 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 = 134; 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 = text_big_color; 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 = text_big_color; 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 = text_big_color; 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 = text_big_color; 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 = text_big_color; s_main.cinematics.style = style; #ifndef MISSIONPACK if ( !uis.demoversion || !uis.demotestversion && 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 = text_big_color; s_main.teamArena.style = style; } #endif if ( !uis.demoversion || !uis.demotestversion ) { 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 = text_big_color; s_main.mods.style = style; } 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 = text_big_color; 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 ); #ifndef MISSIONPACK if (teamArena) { Menu_AddItem( &s_main.menu, &s_main.teamArena ); } #endif if ( !uis.demoversion || !uis.demotestversion ) { Menu_AddItem( &s_main.menu, &s_main.mods ); } Menu_AddItem( &s_main.menu, &s_main.exit ); uis.menusp = 0; UI_PushMenu ( &s_main.menu ); }
/* =============== 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 ); }
/* =============== 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 ); }
/* =============== 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; int style = UI_CENTER | UI_DROPSHADOW; trap_Cvar_Set( "sv_killserver", "1" ); /* blud, commenting out the cdkey check since iourt doesn't need one 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 = 134; 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_white; 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_white; 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_white; s_main.setup.style = style; // blud commenting out these menu items below! /*blud 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; } 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; // blud commenting out these menu items above! */ 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_white; 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 ); /* also commented out by blud 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_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; int style = UI_CENTER | UI_DROPSHADOW; CG_KillServer(); 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; 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 = 134; 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 = text_big_color; 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 = text_big_color; 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 = text_big_color; 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 = text_big_color; s_main.demos.style = style; /*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 = text_big_color; s_main.mods.style = style;*/ 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 = text_big_color; 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 ); //Menu_AddItem( &s_main.menu, &s_main.mods ); Menu_AddItem( &s_main.menu, &s_main.exit ); uis.menusp = 0; UI_PushMenu ( &s_main.menu ); }
/* =============== 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" ); trap_Cvar_SetValue( "handicap", 100 ); //Reset handicap during server change, it must be ser per game 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 = 134; 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;*/ y += MAIN_MENU_VERTICAL_SPACING; s_main.challenges.generic.type = MTYPE_PTEXT; s_main.challenges.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS; s_main.challenges.generic.x = 320; s_main.challenges.generic.y = y; s_main.challenges.generic.id = ID_CHALLENGES; s_main.challenges.generic.callback = Main_MenuEvent; s_main.challenges.string = "STATISTICS"; s_main.challenges.color = color_red; s_main.challenges.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 = "MISSION PACK"; s_main.teamArena.color = color_red; s_main.teamArena.style = style; } 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; 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 ); Menu_AddItem( &s_main.menu, &s_main.challenges ); 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_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 x, y; int style = UI_LEFT | UI_DROPSHADOW | UI_SMALLFONT; trap_Cvar_Set("sv_killserver", "1"); memset(&s_main, 0, sizeof (mainmenu_t)); memset(&s_errorMessage, 0, sizeof (errorMessage_t)); 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; } trap_S_StartBackgroundTrack("music/mainmenu.ogg", ""); s_main.menu.draw = Main_MenuDraw; s_main.menu.fullscreen = qtrue; s_main.menu.wrapAround = qtrue; s_main.menu.showlogo = qfalse; s_main.fade = -100.0f; s_main.up = qtrue; x = 40; s_main.multiplayer.generic.type = MTYPE_PTEXT; s_main.multiplayer.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_main.multiplayer.generic.x = x; s_main.multiplayer.generic.y = 440; s_main.multiplayer.generic.id = ID_MULTIPLAYER; s_main.multiplayer.generic.callback = Main_MenuEvent; s_main.multiplayer.string = "Multiplayer"; s_main.multiplayer.color = color_blue; s_main.multiplayer.style = style; x += MAIN_MENU_HORIZONTAL_SPACING; s_main.singleplayer.generic.type = MTYPE_PTEXT; s_main.singleplayer.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_main.singleplayer.generic.x = x; s_main.singleplayer.generic.y = 440; s_main.singleplayer.generic.id = ID_SINGLEPLAYER; s_main.singleplayer.generic.callback = Main_MenuEvent; s_main.singleplayer.string = "Singleplayer"; s_main.singleplayer.color = color_blue; s_main.singleplayer.style = style; x += MAIN_MENU_HORIZONTAL_SPACING; s_main.options.generic.type = MTYPE_PTEXT; s_main.options.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_main.options.generic.x = x; s_main.options.generic.y = 440; s_main.options.generic.id = ID_OPTIONS; s_main.options.generic.callback = Main_MenuEvent; s_main.options.string = "Options"; s_main.options.color = color_blue; s_main.options.style = style; x += MAIN_MENU_HORIZONTAL_SPACING; s_main.demos.generic.type = MTYPE_PTEXT; s_main.demos.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_main.demos.generic.x = x; s_main.demos.generic.y = 440; s_main.demos.generic.id = ID_DEMOS; s_main.demos.generic.callback = Main_MenuEvent; s_main.demos.string = "Demos"; s_main.demos.color = color_blue; s_main.demos.style = style; x += MAIN_MENU_HORIZONTAL_SPACING; s_main.exit.generic.type = MTYPE_PTEXT; s_main.exit.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_main.exit.generic.x = x; s_main.exit.generic.y = 440; s_main.exit.generic.id = ID_EXIT; s_main.exit.generic.callback = Main_MenuEvent; s_main.exit.string = "Exit"; s_main.exit.color = color_blue; s_main.exit.style = style; Menu_AddItem(&s_main.menu, &s_main.multiplayer); Menu_AddItem(&s_main.menu, &s_main.singleplayer); Menu_AddItem(&s_main.menu, &s_main.options); Menu_AddItem(&s_main.menu, &s_main.demos); Menu_AddItem(&s_main.menu, &s_main.exit); 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"); trap_Key_SetCatcher(KEYCATCH_UI); uis.menusp = 0; UI_PushMenu(&s_main.menu); }