Your Name 7368dad717 1.03
2020-07-25 00:22:01 -06:00

621 lines
30 KiB
Plaintext

#include "ui/menudef.h"
#include "ui/framestyle.inc"
#include "ui_mp/newframe.inc"
#include "ui_mp/common_macro.inc"
#include "ui_mp/friendslist.inc"
// Pause menu background... separate menu so that it can draw behind the objective menu
menuDef
{
name "pausedbkgnd"
fullScreen 0
rect 0 0 640 480
focusColor COLOR_FOCUSED
blurWorld 4.8
visible 1
#define SINGLE_PLAYER 1
#include "ui_mp/ingamebg.inc"
}
#undef CHOICE_SIZE_X
#define CHOICE_SIZE_X 200
#define BACKGROUND_COLOR_GRAY_RGB 0.62 0.70 0.70
#ifdef PC
#undef CHOICE_X_START
#define CHOICE_X_START 30
#undef CHOICE_Y_START
#define CHOICE_Y_START -60
#define CHOICE_SEP_1 5
#else
#undef CHOICE_X_START
#define CHOICE_X_START 30
#undef CHOICE_Y_START
#define CHOICE_Y_START -30
#define CHOICE_SEP_1 3
#endif
#ifdef CONSOLE
#define CUSTOM_MATCH ( dvarbool( systemlink ) || dvarbool( xblive_privatematch ) )
#define NOT_CUSTOM_MATCH ( !dvarbool( systemlink ) && !dvarbool( xblive_privatematch ) )
#define RANKEDGAME (dvarBool( onlinegame ) && !dvarBool( xblive_privatematch ))
#define ISHOST (dvarBool( sv_running ))
#define TEAMGAME ( team( name ) != "TEAM_FREE")
#define NOTTEAMGAME ( team( name ) == "TEAM_FREE" )
#define ALLOW_VOTE ( !dvarbool( xblive_basictraining ) && !dvarbool( xblive_wagermatch ) && dvarbool( ui_allowvote ) )
#define IN_PREGAME ( dvarbool( ui_pregame ) )
#else
#define CUSTOM_MATCH ( dvarbool( systemlink ) || dvarbool( xblive_privatematch ) )
#define NOT_CUSTOM_MATCH ( !dvarbool( systemlink ) && !dvarbool( xblive_privatematch ) )
#define RANKEDGAME ( dvarbool( ui_ranked ) )
#define ISHOST ( dvarBool( sv_running ) )
#define TEAMGAME ( team( name ) != "TEAM_FREE")
#define NOTTEAMGAME ( team( name ) == "TEAM_FREE" )
#define ALLOW_VOTE ( !dvarbool( xblive_basictraining ) && !dvarbool( xblive_wagermatch ) && dvarbool( ui_allowvote ) )
#define IN_PREGAME ( dvarbool( ui_pregame ) )
#endif
// ------------------ preprocessing function definitions ------------------
#define PAD_LEFT \
execKeyInt DPAD_LEFT \
{ \
focusFirst; \
show selection_left; \
hide selection_right; \
} \
execKeyInt APAD_LEFT \
{ \
focusFirst; \
show selection_left; \
hide selection_right; \
}
#include "ui_mp/menustyle.inc"
#include "ui_mp/choices_setup_teams.menu"
#undef CHOICE_FOCUS_SOUND
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
#undef CHOICE_GROUP
#define CHOICE_GROUP "class"
#undef CHOICE_HORIZONTAL_ALIGN
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_LEFT
#undef CHOICE_VERTICAL_ALIGN
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
#undef BUTTON_BG_X_START
#define BUTTON_BG_X_START 30
#undef BUTTON_BG_Y_START
#define BUTTON_BG_Y_START 42
#undef CHOICE_TEXTSTYLE
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
#define MAP_BACKGROUND_WIDTH 229
#define MAP_BACKGROUND_HEIGHT 228
#ifdef CONSOLE
#define MAP_BG_Y_START -110
#else // #ifdef CONSOLE
#define MAP_BG_Y_START -120
#endif // #else #ifdef CONSOLE
#define MAP_BG_X_START (-MAP_BACKGROUND_WIDTH - 30)
/* Grey color box which serve as the background for the map image and the contracts menu */
#define MAP_BACKGROUND \
PREPROC_SHADER_DRAW( MAP_BG_X_START MAP_BG_Y_START MAP_BACKGROUND_WIDTH MAP_BACKGROUND_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER, "white", BG_BACKCOLOR )
#define CHOICE_TAB_TEXTSIZE TEXTSIZE_DEFAULT
#define TAB_1_TEXT (locString( "@MENU_TAB_MAP_CAPS" ))
#define TAB_2_TEXT (locString( "@MENU_TAB_CONTRACTS_CAPS" ))
#define TAB_BG_PAD 5
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, CHOICE_TEXTFONT, CHOICE_TAB_TEXTSIZE ) + (TAB_BG_PAD*2) )
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, CHOICE_TEXTFONT, CHOICE_TAB_TEXTSIZE ) + (TAB_BG_PAD*2) )
#define TAB_HEIGHT 18
#define MAP_LIST_TAB_1_X ( MAP_BG_X_START + TAB_BG_PAD )
#define MAP_LIST_TAB_2_X ( MAP_LIST_TAB_1_X + TAB_1_WIDTH )
#define MAP_LIST_TAB_Y ( MAP_BG_Y_START - TAB_HEIGHT )
#define MAP_HEADERSTEXT \
/* highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_1_X, \
MAP_LIST_TAB_Y, \
TAB_1_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
TAB_1_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
1 1 1 1, \
when( dvarInt( showMap ) == 1 );, ; ) \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_1_X, \
MAP_LIST_TAB_Y, \
TAB_1_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
TAB_1_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
BACKGROUND_COLOR_GRAY_RGB .25, \
when( dvarInt( showMap ) == 0 );, ; ) \
/* non highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_2_X, \
MAP_LIST_TAB_Y, \
TAB_2_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
TAB_2_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
1 1 1 1, \
when( dvarInt( showMap ) == 0 && RANKEDGAME );, ; ) \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_2_X, \
MAP_LIST_TAB_Y, \
TAB_2_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
TAB_2_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
BACKGROUND_COLOR_GRAY_RGB .25, \
when( dvarInt( showMap ) == 1 && RANKEDGAME );, ; )
#define MAP_LIST_TAB_1_ACTION \
if( RANKEDGAME ) \
{ \
setDvar showMap 1; \
}
#define MAP_LIST_TAB_2_ACTION \
if( RANKEDGAME ) \
{ \
setDvar showMap 0; \
}
#define MAP_HEADERSBUTTONS \
TAB_ACTION_BUTTON_ADV( MAP_LIST_TAB_1_X, \
MAP_LIST_TAB_Y, \
TAB_1_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
MAP_LIST_TAB_1_ACTION, when( dvarInt( showMap ) == 0 && RANKEDGAME );, ; ) \
TAB_ACTION_BUTTON_ADV( MAP_LIST_TAB_2_X, \
MAP_LIST_TAB_Y, \
TAB_2_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
MAP_LIST_TAB_2_ACTION, when( dvarInt( showMap ) == 1 && RANKEDGAME );, ; ) \
/* Tab for Map */
#define MAP_TAB_1_BG \
itemDef \
{ \
style WINDOW_STYLE_SHADER_FRAMED \
frame 5 0.5 FRAME_OPEN_BOTTOM \
rect 0 MAP_LIST_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER \
exp rect X( MAP_LIST_TAB_1_X ) \
exp rect W( TAB_1_WIDTH ) \
background "menu_mp_lobby_frame_circle" \
forecolor BG_BACKCOLOR \
visible when( dvarInt(showMap) == 1 ); \
decoration \
}
/* Tab for contracts */
#define MAP_TAB_2_BG \
itemDef \
{ \
style WINDOW_STYLE_SHADER_FRAMED \
frame 5 0.5 FRAME_OPEN_BOTTOM \
rect 0 MAP_LIST_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER \
exp rect X( MAP_LIST_TAB_2_X ) \
exp rect W( TAB_2_WIDTH ) \
background "menu_mp_lobby_frame_circle" \
forecolor BG_BACKCOLOR \
visible when( dvarInt(showMap) == 0 && RANKEDGAME ); \
decoration \
}
menuDef
{
name "class"
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_EMPTY
#ifdef CONSOLE
rect 0 0 640 480
blurWorld 7.0
#else
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
#endif
#define ON_ESC scriptMenuResponse "back";
onOpen
{
if ( IsSplitscreen() )
{
close self;
open "class_splitscreen";
}
else
{
focusFirst;
hide selection_right;
setDvar showMap 1;
}
showMenu "pausedbkgnd"
}
onClose
{
hideMenu "pausedbkgnd"
}
onFocus
{
focusFirst;
}
onEsc
{
ON_ESC
}
#ifndef PC
execkeyint BUTTON_START
{
ON_ESC
}
#endif
execkeyint BUTTON_X
{
if( RANKEDGAME )
{
if( dvarInt(showMap) == 0 )
{
setDvar showMap 1;
}
else
{
setDvar showMap 0;
}
}
}
PAD_LEFT
MAP_BACKGROUND
MAP_TAB_1_BG
MAP_TAB_2_BG
#ifdef CONSOLE
#include "ui_mp/ingamebg.inc"
#endif
// -------- GAME TYPE NAME AND DESCRIPTION --------
#define MAPNAME tableLookup( "mp/mapstable.csv", 0, dvarString( mapname ), 3 )
CHOICE_MENU_TITLE_ALIGN_VIS( ( "@" + MAPNAME + "_CAPS" ), HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
#undef BUTTON_BG_Y_START
#define BUTTON_BG_Y_START 70
CHOICE_MENU_TITLE_ALIGN_VIS( toUpper( gametypename() ), HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
PREPROC_TEXT_DRAW_VIS_EX( BUTTON_BG_X_START (BUTTON_BG_Y_START+35) 230 60 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, 0 0,
( gametypedescription() ),
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
1, autowrapped )
// Team icon
#define ICON_SIZE 92
#define ICON_X_START ( MAP_BG_X_START + MAP_BACKGROUND_WIDTH - ICON_SIZE )
#define ICON_RECT ICON_X_START 20 ICON_SIZE ICON_SIZE HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP
PREPROC_SHADER_DRAW_VIS_EX( ICON_RECT, ( dvarString( "g_TeamIcon_Allies" ) ), 1 1 1 1, when( TEAM_IS_MARINES );, ; )
PREPROC_SHADER_DRAW_VIS_EX( ICON_RECT, ( dvarString( "g_TeamIcon_Axis" ) ), 1 1 1 1, when( TEAM_IS_OPFOR );, ; )
//=========================================================
//===================== MENU SELECTION ====================
//=========================================================
#define IS_WAGER_MODE ( dvarInt( "xblive_wagermatch" ) == 1 )
#define IS_CUSTOM_MODE ( dvarInt( "custom_class_mode" ) == 1 )
#define IS_BAREBONES_MODE ( dvarInt( "barebones_class_mode" ) == 1 )
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_barebones", ( IS_BAREBONES_MODE ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_custom", ( IS_CUSTOM_MODE ), ; )
#ifdef CONSOLE
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_wager", ( IS_WAGER_MODE && MAY_CHOOSE_CLASS && !IS_CUSTOM_MODE ), ; )
#endif // CONSOLE
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_marines", ( TEAM_IS_MARINES && MAY_CHOOSE_CLASS && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_opfor", ( TEAM_IS_OPFOR && MAY_CHOOSE_CLASS && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_opfor", ( dvarInt( scr_oldschool ) == 1 && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", ;, ;, ( dvarInt( scr_oldschool ) == 1 ), ; )
#ifdef CONSOLE
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", scriptMenuResponse "changeteam", ( MAY_CHOOSE_TEAM ), ; )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", ;, ;, ( MAY_NOT_CHOOSE_TEAM ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MENU_OPTIONS_CAPS", close self; open ingameoptions, 1, ; )
#define CAN_LEAVE_GAME ( !isVisibilityBitSet( BIT_ROUND_END_KILLCAM ) && !isVisibilityBitSet( BIT_FINAL_KILLCAM ) )
#ifdef PUBLIC_BETA
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_END_GAME_CAPS", open popup_endgame, ( RANKEDGAME == 0 && ISHOST && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty, ( RANKEDGAME == 0 && (ISHOST == 0) && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( RANKEDGAME == 0 && (ISHOST == 0) && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && ISHOST && CAN_LEAVE_GAME && ( !HostMigrationWaitingForPlayers() ) ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty_ranked, ( RANKEDGAME && ISHOST == 0 && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && ISHOST == 0 && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
#else // #ifdef PUBLIC_BETA
//..............................................
// Dev only. Remove me prior to shipping
//FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_BADSPAWN_CAPS", open popup_badspawn, 1, ; )
//..............................................
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_END_GAME_CAPS", open popup_endgame, ( RANKEDGAME == 0 && ISHOST && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty, ( RANKEDGAME == 0 && (ISHOST == 0) && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( RANKEDGAME == 0 && (ISHOST == 0) && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && ISHOST && CAN_LEAVE_GAME && ( !HostMigrationWaitingForPlayers() ) ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty_ranked, ( RANKEDGAME && ISHOST == 0 && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && ISHOST == 0 && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
#endif // #else #ifdef PUBLIC_BETA
#endif // #ifdef CONSOLE
#ifdef PC
#define SQUAD_CAP 12
#define INVITE_MEMBER 1
#define KICK_MEMBER 2
#define SQUAD_BUTTON_START_X -439
#define SQUAD_BUTTON_START_Y -65
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CHANGE_TEAM_CAPS", scriptMenuResponse "changeteam", (dvarBool( ui_allow_teamchange )), ; )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", ;, ;, ( !dvarBool( ui_allow_teamchange ) ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CALL_VOTE_CAPS", open callvote; close self;, ( ALLOW_VOTE ), ; )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 3, "@MPUI_CALL_VOTE_CAPS", ;, ;, ( !ALLOW_VOTE ), ; )
// FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MPUI_MUTE_PLAYERS_CAPS", open muteplayer_menu; close self;, 1, ; )
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_PLAYERS_CAPS", close self; open players;, 1, ; )
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_FRIENDS_CAPS", SETUP_ACTION_INVITE, 1, ; )
CHOICE_NEWICON_VIS( 5, "menu_mp_lobby_new", when( hasinvites() || haspendingfriends() ); )
FRAME_CHOICE_BUTTON_VIS_EX( 6, "@MENU_SETTINGS_CAPS", close self; open options_new_pc; execnow "set ui_allow_graphic_change 0";, 1, ; )
FRAME_CHOICE_BUTTON_VIS_EX( 7, "@MENU_ADD_TO_FAVORITES_CAPS", uiscript createFavoriteIngame; open fav_message_popmenu;, ( ISHOST == 0 ), ; )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 7, "@MENU_ADD_TO_FAVORITES_CAPS", ;, ;, ( ISHOST ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_endgame, ( ( !RANKEDGAME || IN_PREGAME ) && ISHOST && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( ( !RANKEDGAME || IN_PREGAME ) && !ISHOST ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && !IN_PREGAME && ISHOST && CAN_LEAVE_GAME ), ; )
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && !IN_PREGAME && !ISHOST && CAN_LEAVE_GAME ), ; )
#endif // #ifdef PC
//Showing the ingame Xp bar.
#include "ui_mp/popup_player_info.inc"
#define SHOW_XP_BAR ( RANKEDGAME || dvarInt( xblive_basictraining ) )
#define XP_BAR_WIDTH ( Select( dvarInt( widescreen ), 592, 407 ) )
#define XP_TEXT_WIDTH 65
#define X_START (-XP_BAR_WIDTH - XP_TEXT_WIDTH - 100)
#define XP_BAR_Y_START 115
#define REQUIRED_XP int(getDStat( "PlayerStatsList", "RANKXP" )-int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 2)))
#define REQUIRED_XP_STRING (int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 3 ))-REQUIRED_XP)
#define NEXT_LEVEL ( tablelookup( "mp/ranktable.csv", 0, getDStat( "PlayerStatsList", "RANK" ) + 1, 14 ) )
#define BAR_FILLED XP_BAR_WIDTH*((getDStat( "PlayerStatsList", "RANKXP" )-int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 2)))/int(tablelookup("mp/ranktable.csv",0,getDStat( "PlayerStatsList", "RANK" ),3)))
/* BACKGROUND FOR XP BAR */
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
XP_BAR_Y_START,
XP_BAR_WIDTH,
20,
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
"white", BG_BACKCOLOR,
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
XP_BAR_Y_START,
XP_BAR_WIDTH,
20,
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
"menu_mp_bar_shadow", 1 1 1 0.2,
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
/* XP BAR */
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
XP_BAR_Y_START,
(BAR_FILLED),
20,
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
"menu_mp_combatrecord_bar", BAR_COLOR,
when( CAN_RANK_UP && SHOW_XP_BAR ),
; )
/* Tiny arrow at xp bar end */
PREPROC_SHADER_DRAW_ADV_VIS_EX( ( -5 + (X_START+XP_TEXT_WIDTH) + BAR_FILLED),
(XP_BAR_Y_START+18),
10,
10,
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
"ui_arrow_right", BAR_COLOR,
when( CAN_RANK_UP && SHOW_XP_BAR );,
rotation -90; )
/* Label for "NEXT LEVEL" */
PREPROC_TEXT_DRAW_ADV_VIS_EX( X_START,
XP_BAR_Y_START,
XP_BAR_WIDTH,
20,
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
"@MPUI_NEXT_LEVEL_CAPS",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
when( SHOW_XP_BAR ), ; )
/* value for XP NEEDED to next level */
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
XP_BAR_Y_START,
XP_BAR_WIDTH,
20,
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
locString( "MPUI_AAR_XP_NEEDED_CAPS", REQUIRED_XP_STRING ),
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
/* next level */
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+3),
(XP_BAR_Y_START+2),
15,
15,
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
int( NEXT_LEVEL ),
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
when( CAN_RANK_UP && PRESTIGE_NEXT==0 && SHOW_XP_BAR ), ; )
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+3),
(XP_BAR_Y_START+2),
15,
15,
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
"1",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
when( CAN_RANK_UP && PRESTIGE_NEXT && SHOW_XP_BAR ), ; )
/* next level rank icon */
RANK_ICON_ADV( ( X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+6+getTextWidth( NEXT_LEVEL, CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) ), (XP_BAR_Y_START+2), HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER,
tablelookup( "mp/rankIconTable.csv", 0, getDStat( "PlayerStatsList", "RANK" )+1, getDStat( "PlayerStatsList", "PLEVEL" )+1 ),
when( CAN_RANK_UP && PRESTIGE_NEXT==0 && SHOW_XP_BAR ) )
RANK_ICON_ADV( ( X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+6+getTextWidth( "1", CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) ), (XP_BAR_Y_START+2), HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER,
tablelookup( "mp/rankIconTable.csv", 0, 0, getDStat( "PlayerStatsList", "PLEVEL" )+2 ),
when( CAN_RANK_UP && PRESTIGE_NEXT && SHOW_XP_BAR) )
//************************************Contracts********************************
//*****************************************************************************
//Green background
#define BACKGROUND_COLOR_COMPLETED_RGB .34 .9 .34
//Gray background
#define BACKGROUND_COLOR_PROGRESS_RGB BACKGROUND_COLOR_GRAY_RGB
//Red background
#define BACKGROUND_COLOR_EXPIRED_RGB .9 .16 .24
// Yellow Background
#define BACKGROUND_COLOR_PROGRESS_STATUS 0.97 0.85 0.03
#define CONTRACTS_Y_START ( MAP_BG_Y_START + 5 )
#define CONTRACTS_X_START ( MAP_BG_X_START + TAB_BG_PAD )
#define CONTRACTS_WIDTH ( MAP_BACKGROUND_WIDTH - (TAB_BG_PAD*2) )
#define CONTRACTS_HEIGHT ( MAP_BACKGROUND_HEIGHT - TAB_BG_PAD )
#define CONTRACT_INFO( index, visArg ) \
/* BACKGROUND FOR CONTRACT INFO if completed*/ \
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
"white", BACKGROUND_COLOR_COMPLETED_RGB .1, \
when( visArg && dvarInt(showMap) == 0 && IsContractComplete( GetIndexForActiveContract( index ) ) ), \
; ) \
/* BACKGROUND FOR CONTRACT INFO if in progress*/ \
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
"white", BACKGROUND_COLOR_PROGRESS_RGB .1, \
when( visArg && dvarInt(showMap) == 0 && IsContractInProgress( GetIndexForActiveContract( index ) ) ), \
; ) \
/* BACKGROUND FOR CONTRACT INFO if expired*/ \
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
"white", BACKGROUND_COLOR_EXPIRED_RGB .1, \
when( visArg && dvarInt(showMap) == 0 && IsContractExpired( GetIndexForActiveContract( index ) ) ), \
; ) \
/* CONTRACT NAME */ \
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, GetContractName( GetIndexForActiveContract( index ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, CHOICE_TEXTCOLOR, when( visArg ); autowrapped ) \
/* CONTRACT DESC */ \
PREPROC_TEXT_DRAW_VIS( ( CONTRACTS_X_START+2 ) ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 12 ) ( CONTRACTS_WIDTH-2 ) 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, GetContractDesc( GetIndexForActiveContract( index ) ),0.24, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, BACKGROUND_COLOR_PROGRESS_RGB .25, when( visArg ); autowrapped ) \
/* CONTRACT STATUS WHEN COMPLETED */ \
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, "@MPUI_COMPLETE_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_GREEN_RGB 1, when( IsContractComplete( GetIndexForActiveContract( index ) ) > 0 && visArg ) ) \
/* CONTRACT PROGRESS TEXT ( YELLOW WHEN CONTRACT IS IN PROGRESS ) */ \
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, locString("MPUI_CONTRACT_PROGRESS_WITHBRACES", GetContractProgress( GetIndexForActiveContract( index ) ), GetContractRequiredCount( GetIndexForActiveContract( index ) ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_ORANGE_RGB 1, when( IsContractInProgress( GetIndexForActiveContract( index ) ) > 0 && GetContractRequiredCount( GetIndexForActiveContract( index ) ) > 1 && visArg ) ) \
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, locString("MPUI_CONTRACT_NOT_COMPLETE"), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_ORANGE_RGB 1, when( IsContractInProgress( GetIndexForActiveContract( index ) ) > 0 && GetContractRequiredCount( GetIndexForActiveContract( index ) ) == 1 && visArg ) ) \
/* CONTRACT STATUS WHEN EXPIRED */ \
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, "@MPUI_CONTRACT_EXPIRED_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_RED_RGB 1, when( IsContractExpired( GetIndexForActiveContract( index ) ) > 0 && visArg ) ) \
CONTRACT_INFO( 0, ( GetIndexForActiveContract(0) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
CONTRACT_INFO( 1, ( GetIndexForActiveContract(1) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
CONTRACT_INFO( 2, ( GetIndexForActiveContract(2) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
#define NO_ACTIVE_CONTRACTS \
(GetIndexForActiveContract(0) == -1 && GetIndexForActiveContract(1) == -1 && GetIndexForActiveContract(2) == -1)
PREPROC_TEXT_DRAW_VIS_EX( ( CONTRACTS_X_START+20 ) CONTRACTS_Y_START ( CONTRACTS_WIDTH - 40 ) 40 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0,
"@MPUI_AAR_NO_NEW_CONTRACTS",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, CHOICE_TEXTCOLOR,
when( NO_ACTIVE_CONTRACTS && RANKEDGAME && dvarInt(showMap) == 0 );,
autowrapped )
// Tactical Map
#define SHOULD_SHOW_MAP dvarInt(showMap)
#undef RIGHTITEM_ALIGN
#define RIGHTITEM_ALIGN HORIZONTAL_ALIGN_RIGHT
#define MAP_X ( MAP_BG_X_START + 5 )
#define MAP_Y ( 101 )
#include "ui_mp/tactical_map.inc"
// ----------------- BEGIN Scroller --------------------------
#include "ui/scroller.inc"
// ----------------- END Scroller --------------------------
#define SETUP_ACTION_OPENFRIENDLIST \
open menu_friends;
// ------------------ buttons ---------------------
#ifdef PC
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( ON_ESC , when( !dvarInt( ui_show_friends_list_bg ) ) )
#else
// Back button
PREPROC_TEXT_DRAW_VIS( CHOICE_X_START -17 50 17 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_BACK", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( !dvarInt( ui_show_friends_list_bg ) ) )
#endif // PC
// Contracts / Map button
#ifndef PC
PREPROC_TEXT_DRAW_VIS( (MAP_BG_X_START-1) -17 50 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_SHOW_CONTRACTS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( dvarInt( showMap ) == 1 && RANKEDGAME && !dvarInt( ui_show_friends_list_bg ) ) )
PREPROC_TEXT_DRAW_VIS( (MAP_BG_X_START-1) -17 50 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_SHOW_MAP", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( dvarInt( showMap ) == 0 && RANKEDGAME && !dvarInt( ui_show_friends_list_bg ) ) )
// Friends list button
#ifdef PS3
GAMEPAD_BUTTON( -55 -17 70 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, "@PLATFORM_FRIENDLIST", BUTTON_Y { SETUP_ACTION_OPENFRIENDLIST; }, when( !dvarInt( ui_show_friends_list_bg ) && !IS_WAGER_MODE && anySignedInToLiveAndStatsFetched() && canShowContentFromUser( 0 ) ) )
#else // #ifdef PS3
GAMEPAD_BUTTON( -55 -17 70 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, "@PLATFORM_FRIENDLIST", BUTTON_Y { SETUP_ACTION_OPENFRIENDLIST; }, when( !dvarInt( ui_show_friends_list_bg ) && !IS_WAGER_MODE && anySignedInToLiveAndStatsFetched() ) )
#endif // #ifdef PS3
#endif
MAP_HEADERSTEXT
MAP_HEADERSBUTTONS
itemDef
{
name friends_list_bg
style WINDOW_STYLE_FILLED
rect -400 -200 10000 10000
backcolor 0 0 0 0
visible when( IsInGame() );
decoration
state
{
name on
backcolor 0 0 0 0.7
}
}
#include "ui/safearea.menu"
}
#undef CHOICE_GROUP
#define CHOICE_GROUP "popmenu"
#include "ui_mp/popupstyle.inc"
#include "ui/choices_setup_popmenu.menu"
menuDef
{
SYSTEM_POPUP_SETUP_VIS( popup_badspawn, setfocus popup_badspawn_2, ;, 1 )
SYSTEM_POPUP_TITLE_VIS( "@MPUI_REPORT_BADSPAWN", 1 )
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", scriptMenuResponse "badspawn"; close self, 1, ; )
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name popup_badspawn_2 )
}