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

888 lines
39 KiB
Plaintext

#include "ui/menudef.h"
#include "ui_mp/common_macro.inc"
#include "ui_mp/custom_mode.inc"
#define CHOICE_SEP_OFFSET_Y -2
#define CHOICE_SIDEITEM_SPACING -310
#include "ui_mp/menustyle.inc"
#include "ui/choices_setup_common.menu"
#include "ui/choices_setup_popmenu.menu"
#include "ui_mp/stats_info.inc"
#include "ui_mp/overlaybg.inc"
#include "ui_mp/fileshare.inc"
#include "ui/framestyle.inc"
#include "ui_mp/newframe.inc"
#include "ui/frame.inc"
#include "ui_mp/popup_player_info.inc"
#undef CHOICE_TEXTSTYLE
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
#undef CHOICE_GROUP
#define CHOICE_GROUP "menu_game_mode_upload"
#define HINT_TEXT_WIDTH ( FRAME_DEFAULT_WIDTH - ( FRAME_TITLE_X_OFFSET * 2 ) )
menuDef
{
name menu_game_mode_upload
rect 0 0 640 480
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_FILLED
priority MENU_PRI_ONTOP
control MENU_CONTROL_OPENER
soundloop MENU_MUSIC
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
openSlideDirection MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT
closeSlideDirection MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT
onOpen
{
READ_FILE_SHARE;
setdvar ui_custom_save_to_file_share 1;
setDvar fsUnoccupiedHighlightGreen 1;
setLocalVarString ui_choicegroup CHOICE_GROUP;
}
onFocus
{
play CHOICE_FOCUS_SOUND;
activateBlur;
}
onClose
{
setdvar ui_custom_save_to_file_share 0;
deactivateblur;
}
onESC
{
close self;
}
execKeyInt APAD_LEFT { play CHOICE_FOCUS_SOUND; }
execKeyInt DPAD_LEFT { play CHOICE_FOCUS_SOUND; }
execKeyInt APAD_RIGHT { play CHOICE_FOCUS_SOUND; }
execKeyInt DPAD_RIGHT { play CHOICE_FOCUS_SOUND; }
execKeyInt APAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
execKeyInt DPAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
execKeyInt APAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
execKeyInt DPAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
FRAME_DEFAULT
FRAME_TITLE_DEFAULT( "@MENU_FILESHARE_MYSHARE_CAPS", 1 )
PLAYER_INFO_VIS( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, 1 )
itemDef
{
name fileShareSlots
type ITEM_TYPE_LISTBOX
feeder FEEDER_FILESHARE_MYSLOTS
FILESHARE_COMMON_OPTIONS
elementwidth 70
elementheight 70
elementtype LISTBOX_TEXT
textalign HORIZONTAL_ALIGN_LEFT
textfont UI_FONT_NORMAL
forecolor CHOICE_TEXTCOLOR
modal
doubleclick
{
if ( getFeederData( "slot" ) <= 6 )
{
if ( !( FILESHARE_TASKSINPROGRESS ) )
{
play CHOICE_FOCUS_SOUND;
if ( getFeederData( "slotOccupied" ) != 1 )
{
open menu_game_mode_upload_save;
}
else
{
open menu_game_mode_upload_confirm;
}
}
}
}
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
visible 1
FILESHARE_SLOTS_USERAREAS
}
FILESHARE_BOTTOM( fileShareSlots, 1 )
FILESHARE_DETAILS( 35, (FRAME_CHOICE_Y_START-1), HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER,
"menu_game_mode_upload", "fileShareSlots",
getFeederData( "fileShareSlots", "slotOccupied" ) && getFeederData( "fileShareSlots", "count" ) > 0.0 )
#ifdef CONSOLE
PREPROC_TEXT_DRAW_VIS( -144 158 30 15 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
( int( getFeederData( "fileShareSlots", "slot" ) ) + " " + locString( "@MENU_FILESHARE_OF18") ),
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, 1 1 1 1, when( IsPremiumSubscriber() ) )
PREPROC_SHADER_DRAW_VIS_EX( -114 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_left", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 ),
rotation 90; )
PREPROC_SHADER_DRAW_VIS_EX( -107 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 && getFeederData( "fileShareSlots", "slot" ) < 13 ),
rotation 90; )
PREPROC_SHADER_DRAW_VIS_EX( -114 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) <= 6 ),
rotation 90; )
#endif //#ifdef CONSOLE
HINT_TEXT_ALL( 15, CHOICE_X_START, -8, CHOICE_SIZE_X, "@MENU_FILESHARE_CHOOSESLOT", 1 1 1 1, 1, ; )
#ifdef PC
NEW_FRAME_BACK_BUTTON_ACTION( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, close self; )
#else //#ifdef PC
NEW_FRAME_BACK_BUTTON( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT )
PREPROC_TEXT_DRAW_VIS( -160 (FRAME_DEFAULT_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
"@PLATFORM_SELECT",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1,
when( getFeederData( menu_game_mode_upload, fileShareSlots, "slot" ) <= 6 ); )
#endif // #else // #ifdef PC
}
#undef ON_ESC
#define ON_ESC \
close self;
menuDef
{
name custom_select_from_fileshare
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_FILLED
priority MENU_PRI_ONTOP
control MENU_CONTROL_OPENER
soundloop MENU_MUSIC
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
openSlideDirection MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT
closeSlideDirection MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT
onOpen
{
#ifdef PC
exec readfileshare
#endif
setDvar fsUnoccupiedHighlightGreen 2;
setLocalVarString ui_choicegroup CHOICE_GROUP;
}
onFocus
{
activateBlur;
}
onClose
{
deactivateBlur;
}
onESC
{
ON_ESC
}
execKeyInt APAD_LEFT { play CHOICE_FOCUS_SOUND; }
execKeyInt DPAD_LEFT { play CHOICE_FOCUS_SOUND; }
execKeyInt APAD_RIGHT { play CHOICE_FOCUS_SOUND; }
execKeyInt DPAD_RIGHT { play CHOICE_FOCUS_SOUND; }
execKeyInt APAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
execKeyInt DPAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
execKeyInt APAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
execKeyInt DPAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
FRAME_DEFAULT
FRAME_TITLE_DEFAULT( "@CUSTOM_FILESHARE_SELECT_MODE_TITLE", 1 )
FRAME_SUBTITLE_DEFAULT( "@CUSTOM_FILESHARE_SELECT_MODE_DESC", 1 )
PLAYER_INFO_VIS( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, 1 )
itemDef
{
name fileShareSlots
type ITEM_TYPE_LISTBOX
feeder FEEDER_FILESHARE_MYSLOTS
FILESHARE_COMMON_OPTIONS
origin 0 0
elementwidth 70
elementheight 67
elementtype LISTBOX_TEXT
textalign ITEM_ALIGN_MIDDLE_CENTER
textfont UI_FONT_NORMAL
textscale TEXTSIZE_SUBTITLE
forecolor CHOICE_TEXTCOLOR
modal
doubleclick
{
play CHOICE_FOCUS_SOUND;
if ( getFeederData( "slotOccupied" ) && !( FILESHARE_TASKSINPROGRESS ) )
{
if( getFeederData( "fileType" ) == "customgamemode" )
{
execNow downloadCustomGametype (getFeederData( "fileID" )) (getFeederData( "fileSize" ));
closeimmediate custom_select_from_fileshare;
closeimmediate select_game_mode;
}
}
}
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
visible 1
FILESHARE_SLOTS_USERAREAS
}
FILESHARE_BOTTOM( fileShareSlots, 1 )
/* SLOT OCCUPIED */
#define SLOT_OCCUPIED_CONDITION \
( getFeederData( "fileShareSlots", "slotOccupied" ) && getFeederData( "fileShareSlots", "count" ) > 0.0 )
#define SLOT_HAS_GAME_MODE \
( getFeederData( "fileShareSlots", "fileType" ) == "customgamemode" )
#undef FILESHARE_SELECTOR_TOOLTIP_Y
#ifdef PC
#define FILESHARE_SELECTOR_TOOLTIP_Y FILESHARE_TOOLTIP_PC_Y
#else //#ifdef PC
#define FILESHARE_SELECTOR_TOOLTIP_Y 95
#endif //#ifdef PC
// Tooltip - Occupied Slot with custom game mode
PREPROC_SHADER_DRAW_VIS_EX( (FRAME_CHOICE_X_START-2) FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), ; )
PREPROC_TEXT_DRAW_VIS_EX( (FRAME_CHOICE_X_START+8) FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
locString( "CUSTOM_FILESHARE_CGM_HIGHLIGHTED" ),
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), autowrapped; )
// Tooltip - Occupied Slot that is not a custom game mode
PREPROC_SHADER_DRAW_VIS_EX( (FRAME_CHOICE_X_START-2) FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), ; )
PREPROC_TEXT_DRAW_VIS_EX( (FRAME_CHOICE_X_START+8) FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
locString( "CUSTOM_FILESHARE_CANT_SELECT" ),
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), autowrapped; )
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
execKeyInt APAD_UP
{
execnow set fshSelectLastSlotRow 1;
setfocus fileShareSlots;
}
execKeyInt DPAD_UP
{
execnow set fshSelectLastSlotRow 1;
setfocus fileShareSlots;
}
execKeyInt APAD_DOWN
{
execnow set fshSelectFirstSlotRow 1;
setfocus fileShareSlots;
}
execKeyInt DPAD_DOWN
{
execnow set fshSelectFirstSlotRow 1;
setfocus fileShareSlots;
}
#ifdef CONSOLE
PREPROC_TEXT_DRAW_VIS( -146 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
( int( getFeederData( "fileShareSlots", "slot" ) ) ),
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, 1 1 1 1,
1 )
PREPROC_TEXT_DRAW_VIS( -142 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
"@MENU_FILESHARE_OF6",
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, 1 1 1 1,
when ( !IsPremiumSubscriber() ) )
// Top Arrow
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_left", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 ), rotation 90; )
// Bottom Arrow 1
PREPROC_SHADER_DRAW_VIS_EX( -107 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 && getFeederData( "fileShareSlots", "slot" ) < 13 ), rotation 90; )
// Bottom Arrow 2
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
"ui_arrow_right", COLOR_BODY_TEXT,
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) <= 6 ), rotation 90; )
#endif //#ifdef CONSOLE
// File details
FILESHARE_DETAILS( 35, (FRAME_CHOICE_Y_START-1), HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER,
"custom_select_from_fileshare", "fileShareSlots",
SLOT_OCCUPIED_CONDITION )
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
// Button prompts
#ifdef PC
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
#else //#ifdef PC
FRAME_BACK_BUTTON_DEFAULT
PREPROC_TEXT_DRAW_VIS( -160 (FILESHARE_FRAME_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
"@PLATFORM_SELECT",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1,
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ); )
#endif //#ifdef PC
#include "ui/safearea.menu"
}
#define GAMEMODE_NAME_X 40
#define GAMEMODE_NAME_Y ( FRAME_CHOICE_Y_START - 7 )
#define GAMEMODE_NAME_HEIGHT 30
#define GAMEMODE_NAME_SIZE GAMEMODE_IMAGE_WIDTH GAMEMODE_NAME_HEIGHT
#define GAMEMODE_IMAGE_X GAMEMODE_NAME_X
#define GAMEMODE_IMAGE_Y (GAMEMODE_NAME_Y + GAMEMODE_NAME_HEIGHT + 15)
#define GAMEMODE_IMAGE_ASPECT_RATIO 1.0
#define GAMEMODE_IMAGE_WIDTH 180
#define GAMEMODE_IMAGE_HEIGHT (GAMEMODE_IMAGE_WIDTH * GAMEMODE_IMAGE_ASPECT_RATIO)
#define GAMEMODE_IMAGE_SIZE GAMEMODE_IMAGE_WIDTH GAMEMODE_IMAGE_HEIGHT
#define GAMEMODE_DESC_X GAMEMODE_NAME_X
#define GAMEMODE_DESC_Y (GAMEMODE_IMAGE_Y + GAMEMODE_IMAGE_HEIGHT + 15)
#define GAMEMODE_DESC_SIZE GAMEMODE_IMAGE_WIDTH 60
#undef DEFAULT_SLIDE_IN_SPEED
#define DEFAULT_SLIDE_IN_SPEED 180
#undef DEFAULT_SLIDE_OUT_SPEED
#define DEFAULT_SLIDE_OUT_SPEED 180
#undef ON_ESC
#define ON_ESC \
deactivateBlur; \
play uin_navigation_menu_lg_close; \
close self;
menuDef
{
name select_game_mode
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_FILLED
soundloop MENU_MUSIC
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
onOpen
{
activateBlur;
play uin_navigation_menu_lg_open;
setdvar invite_visible "0";
setDvar ui_preview dvarString( ui_gametype );
setFocus gamemode_selection;
execNow refreshFeederSelection gamemode_selection;
execNow movefeeder ( GetGamemodeIndexByName( gamemode_selection, tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 ) ) ) gamemode_selection;
}
onFocus { }
onClose
{
setdvar invite_visible "1";
}
onESC
{
ON_ESC
}
FRAME_DEFAULT
FRAME_TITLE_DEFAULT( "@MPUI_CHANGE_GAME_MODE_CAPS", 1 )
#define GAME_HC_TDM_HACK ( dvarInt( "xblive_basictraining" ) && dvarString( ui_preview ) == "hc_tdm" )
#define GAME_DESC_VIS_ARG ( dvarInt( "xblive_basictraining" ) || dvarBool( splitscreen ) || dvarBool( systemlink ) || getFeederData( "gamemode_selection", "selection" ) != 0 )
#define GAMETYPE_IMAGE tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 3 )
#define GAMEMODE tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 1 )
#define GAMEMODE_DESC tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 2 )
#define GAMEMODE_DESC_DISPLAY( titleText, imageMat, descText, visArg ) \
PREPROC_TEXT_DRAW_ALL( GAMEMODE_NAME_X GAMEMODE_NAME_Y GAMEMODE_NAME_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
titleText, \
TEXTSIZE_TITLE, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
when( visArg );, ; ) \
PREPROC_SHADER_DRAW_VIS_EX( GAMEMODE_IMAGE_X GAMEMODE_IMAGE_Y GAMEMODE_IMAGE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, \
imageMat, 1 1 1 1, \
when( visArg );, \
; ) \
PREPROC_TEXT_DRAW_VIS_EX( GAMEMODE_DESC_X GAMEMODE_DESC_Y GAMEMODE_DESC_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
descText, \
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, \
when( visArg );, autowrapped )
GAMEMODE_DESC_DISPLAY( "@" + GAMEMODE, GAMETYPE_IMAGE, "@" + GAMEMODE_DESC, GAME_DESC_VIS_ARG && !GAME_HC_TDM_HACK )
GAMEMODE_DESC_DISPLAY( "@MPUI_BASIC_TRAINING_HC_TDM", GAMETYPE_IMAGE, "@" + GAMEMODE_DESC, GAME_HC_TDM_HACK )
GAMEMODE_DESC_DISPLAY( "@CUSTOM_CUSTOM_GAME_MODE_CAPS", "playlist_custom", "@CUSTOM_SELECT_FROM_FILESHARE_DESC", !GAME_DESC_VIS_ARG && !GAME_HC_TDM_HACK )
#define RESET_CUSTOM_GAMEMODE_IF_CHANGED \
if( dvarString( "ui_preview" ) != dvarString( "ui_gametype" ) ) \
{ \
execNow "resetCustomGametype"; \
}
// gametype selection ===========================================
itemDef
{
name gamemode_selection
type ITEM_TYPE_LISTBOX
feeder FEEDER_GAMETYPES_BASE
rect (FRAME_CHOICE_X_START-1) ( FRAME_CHOICE_Y_START - 3 ) FRAME_BUTTON_WIDTH 308 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
elementwidth 30
elementheight 19
noscrollbars
noBlinkingHighlight
textfont CHOICE_TEXTFONT
textscale CHOICE_TEXTSIZE
forecolor CHOICE_TEXTCOLOR
focusColor COLOR_TITLE
disablecolor FRAME_GREY_RGB 1
textstyle ITEM_TEXTSTYLE_NORMAL
modal
visible 1
// x y w h len horzAlign vertAlign
userarea 4 0 0 (FRAME_BUTTON_WIDTH+1) 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* BACKGROUND */
17 0 FRAME_BUTTON_WIDTH 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* NAME */
0 1 17 18 16 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* A_BUTTON */
(FRAME_BUTTON_WIDTH-18) 2 14 14 0 ITEM_ALIGN_CENTER ITEM_ALIGN_MIDDLE /* CUSTOMIZED ICON */
onfocus
{
play CHOICE_FOCUS_SOUND;
}
doubleclick
{
if( !GAME_DESC_VIS_ARG )
{
open "custom_select_from_fileshare";
}
else
{
RESET_CUSTOM_GAMEMODE_IF_CHANGED
setDvar ui_gametype dvarString( ui_preview );
play CHOICE_ACTION_SOUND;
execNow "xupdatepartystate";
deactivateBlur;
close self;
}
}
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
}
CUSTOM_MODE_CUSTOMIZED_STAR( FRAME_CHOICE_X_START, ( FRAME_DEFAULT_HEIGHT/2 ) - 70, dvarInt( customGameMode ) )
#ifdef PC
#define BUTTON_SPACING 20
#define RESET_BUTTON_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
FRAME_BUTTON_PC_LEFT_OFFSET( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, RESET_BUTTON_OFFSET, "@PLATFORM_RESET_TO_DEFAULT",
open popup_custom_confirm_revert;, when( dvarBool( customGameMode ) ) )
#else //PC
FRAME_BACK_BUTTON_DEFAULT
CUSTOM_MODE_RESET_TO_DEFAULT_BUTTON( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, -76, open popup_custom_confirm_revert;, dvarBool( customGameMode ) )
#endif //PC
#include "ui/safearea.menu"
}
#define MAPSELECT_NAME_X 20
#define MAPSELECT_NAME_Y (FRAME_CHOICE_Y_START-7)
#define MAPSELECT_NAME_HEIGHT 30
#define MAPSELECT_NAME_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_NAME_HEIGHT
#define MAPSELECT_IMAGE_X MAPSELECT_NAME_X
#define MAPSELECT_IMAGE_Y (MAPSELECT_NAME_Y + MAPSELECT_NAME_HEIGHT + 5)
#define MAPSELECT_IMAGE_ASPECT_RATIO 0.675
#define MAPSELECT_IMAGE_WIDTH 224
#define MAPSELECT_IMAGE_HEIGHT (MAPSELECT_IMAGE_WIDTH * MAPSELECT_IMAGE_ASPECT_RATIO)
#define MAPSELECT_IMAGE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_IMAGE_HEIGHT
#define MAPSELECT_DESC_TITLE_HEIGHT 15
#define MAPSELECT_DESC_TITLE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_TITLE_HEIGHT
#define MAPSELECT_DESC_X MAPSELECT_NAME_X
#define MAPSELECT_DESC_Y (MAPSELECT_IMAGE_Y + MAPSELECT_IMAGE_HEIGHT + 10 )
#define MAPSELECT_DESC_HEIGHT 50
#define MAPSELECT_DESC_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_HEIGHT
#define MAPSELECT_SIZE_X MAPSELECT_NAME_X
#define MAPSELECT_SIZE_Y (MAPSELECT_DESC_Y+MAPSELECT_DESC_TITLE_HEIGHT+MAPSELECT_DESC_HEIGHT)
#define MAPSELECT_SIZE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_HEIGHT
#define SWITCH_MAP_LIST_ACTION \
if( dvarBool( "dlc2" ) || dvarBool( "dlc3" ) || dvarBool( "dlc4" ) ) \
{ \
if( dvarBool( ui_showDLCMaps ) ) \
{ \
setDvar ui_showDLCMaps 0; \
execNow movefeeder 0 map_selection; \
} \
else \
{ \
setDvar ui_showDLCMaps 1; \
execNow movefeeder 0 map_selection; \
} \
}
#define SWITCH_TO_MAPS_ACTION \
setDvar ui_showDLCMaps 0; \
execNow movefeeder 0 map_selection;
#define SWITCH_TO_DLC_ACTION \
setDvar ui_showDLCMaps 1; \
execNow movefeeder 0 map_selection;
#undef ON_ESC
#define ON_ESC \
deactivateBlur; \
play uin_navigation_menu_lg_close; \
close self; \
setDvar settings_map_selected 0;
#define CHOICE_TAB_TEXTSIZE TEXTSIZE_SMALL
#define TAB_1_TEXT (locString( "@MPUI_MAPS_CAPS" ))
#define TAB_2_TEXT (locString( "@MPUI_DLC_MAPS_CAPS" ))
#define TAB_BG_PAD 5
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
#define TAB_HEIGHT 15
#define MAP_TAB_1_X NEW_FRAME_CHOICE_X_START
#define MAP_TAB_2_X ( MAP_TAB_1_X + TAB_1_WIDTH )
#define MAP_TAB_Y ( ( -NEW_FRAME_DEFAULT_HEIGHT / 2 ) + NEW_FRAME_HEADER_HEIGHT - TAB_HEIGHT )
#define MAP_TAB_HEADER( visArg ) \
/* highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_1_X, \
MAP_TAB_Y, \
TAB_1_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
TAB_1_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
NEW_FRAME_ORANGE_RGB 1, when( visArg && dvarBool( ui_showDLCMaps ) == 0 ), ; ) \
/* non highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_1_X, \
MAP_TAB_Y, \
TAB_1_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
TAB_1_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
NEW_FRAME_GRAY_TEXT_COLOR, when( visArg && dvarBool( ui_showDLCMaps ) == 1 ), TAB_MOUSEOVER_HIGHLIGHT; )
#define DLC_TAB_HEADER( visArg ) \
/* highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_2_X, \
MAP_TAB_Y, \
TAB_2_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
TAB_2_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
NEW_FRAME_ORANGE_RGB 1, when( visArg && dvarBool( ui_showDLCMaps ) == 1 ), ; ) \
/* non highlighted header */ \
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_2_X, \
MAP_TAB_Y, \
TAB_2_WIDTH, \
TAB_HEIGHT, \
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
TAB_2_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
NEW_FRAME_GRAY_TEXT_COLOR, when( visArg && dvarBool( ui_showDLCMaps ) == 0 ), TAB_MOUSEOVER_HIGHLIGHT; )
#define MAP_TAB_BG( px, pw, visArg ) \
itemDef \
{ \
style WINDOW_STYLE_SHADER_FRAMED \
frame 16 0.2 FRAME_OPEN_BOTTOM \
rect 0 MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
exp rect X( px ) \
exp rect W( pw ) \
background "menu_mp_tab_frame_inner" \
forecolor 1 1 1 1 \
visible when( visArg ) \
decoration \
}
#define MAP_TAB_BUTTON( px, pw, actionArg, visArg ) \
itemDef \
{ \
type ITEM_TYPE_BUTTON_NO_TEXT \
rect 0 MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
exp rect X( px ) \
exp rect W( pw ) \
visible when( visArg ) \
mouseenter { play CHOICE_FOCUS_SOUND; } \
onFocus \
{ \
play CHOICE_FOCUS_SOUND; \
} \
action \
{ \
play CHOICE_ACTION_SOUND; \
actionArg; \
} \
}
menuDef
{
name select_map
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_FILLED
soundloop MENU_MUSIC
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
onOpen
{
activateBlur;
play uin_navigation_menu_lg_open;
setdvar invite_visible "0";
setDvar ui_preview dvarString( ui_mapname );
setDvar settings_map_selected 1;
setFocus map_selection;
setDvar ui_showDLCMaps 0;
execNow movefeeder ( GetMapIndexByName( map_selection, tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_mapname ) , 3 ) ) ) map_selection;
}
onFocus { }
onClose
{
deactivateBlur;
setdvar invite_visible "1";
}
onESC
{
ON_ESC
}
execKeyInt K_LEFTARROW
{
SWITCH_MAP_LIST_ACTION
}
execKeyInt K_RIGHTARROW
{
SWITCH_MAP_LIST_ACTION
}
FRAME_DEFAULT
FRAME_TITLE_DEFAULT( "@MPUI_CHANGE_MAP_CAPS", 1 )
#define MAPS_TAB_VISIBLE ( 1 )
#define DLC_TAB_VISIBLE ( dvarBool( "dlc2" ) || dvarBool( "dlc3" ) || dvarBool( "dlc4" ) )
MAP_TAB_BG( MAP_TAB_1_X, TAB_1_WIDTH, MAPS_TAB_VISIBLE )
MAP_TAB_HEADER( MAPS_TAB_VISIBLE )
MAP_TAB_BUTTON( MAP_TAB_1_X, TAB_1_WIDTH, SWITCH_TO_MAPS_ACTION, MAPS_TAB_VISIBLE )
MAP_TAB_BG( MAP_TAB_2_X, TAB_2_WIDTH, DLC_TAB_VISIBLE )
DLC_TAB_HEADER( DLC_TAB_VISIBLE )
MAP_TAB_BUTTON( MAP_TAB_2_X, TAB_2_WIDTH, SWITCH_TO_DLC_ACTION, DLC_TAB_VISIBLE )
#define MAP_IMAGE tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 0 )
#define MAP_NAME tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 3 )
#define MAP_SIZE tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 8 )
#define MAP_DESC tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 6 )
#define MAP_SELECT_DISPLAY( mapName, mapImage, mapSize, mapDesc, visArg ) \
PREPROC_TEXT_DRAW_ALL( MAPSELECT_NAME_X MAPSELECT_NAME_Y MAPSELECT_NAME_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
mapName, \
TEXTSIZE_TITLE, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
when( visArg );, ; ) \
itemDef \
{ \
style WINDOW_STYLE_SHADER_STREAMED \
type ITEM_TYPE_IMAGE \
rect MAPSELECT_IMAGE_X MAPSELECT_IMAGE_Y MAPSELECT_IMAGE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
forecolor 1 1 1 1 \
exp material( mapImage ) \
visible when( visArg ) \
decoration \
} \
PREPROC_TEXT_DRAW_VIS( MAPSELECT_DESC_X MAPSELECT_DESC_Y MAPSELECT_DESC_TITLE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
"@MPUI_DESCRIPTION_CAPS", \
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 0 0 0 0.8, \
when( visArg ); ) \
PREPROC_TEXT_DRAW_VIS_EX( MAPSELECT_DESC_X (MAPSELECT_DESC_Y+15) MAPSELECT_DESC_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
mapDesc, \
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, \
when( visArg );, autowrapped ) \
PREPROC_TEXT_DRAW_VIS( MAPSELECT_SIZE_X MAPSELECT_SIZE_Y MAPSELECT_DESC_TITLE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
"@MPUI_MAP_SIZE_CAPS", \
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 0 0 0 0.8, \
when( visArg ); ) \
PREPROC_TEXT_DRAW_VIS( MAPSELECT_SIZE_X (MAPSELECT_SIZE_Y+15) MAPSELECT_SIZE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
mapSize, \
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, \
when( visArg ); )
MAP_SELECT_DISPLAY( "@" + MAP_NAME + "_CAPS", "menu_" + dvarString( ui_preview ) + "_map_select_final", "@MPUI_MAPSIZE_" + MAP_SIZE, "@" + MAP_DESC, 1 )
// map selection ===========================================
itemDef
{
name map_selection
type ITEM_TYPE_LISTBOX
feeder FEEDER_MAPS
rect (FRAME_CHOICE_X_START-1) (FRAME_CHOICE_Y_START-3) FRAME_BUTTON_WIDTH 308 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
elementwidth 30
elementheight 19
noscrollbars
noBlinkingHighlight
textfont CHOICE_TEXTFONT
textscale CHOICE_TEXTSIZE
forecolor CHOICE_TEXTCOLOR
focusColor COLOR_TITLE
disablecolor FRAME_GREY_RGB 1
textstyle ITEM_TEXTSTYLE_NORMAL
modal
visible when( dvarBool( settings_map_selected ) )
/* x y w h len horzAlign vertAlign */
userarea 3 0 0 (FRAME_BUTTON_WIDTH+1) 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_BACKGROUND */
17 0 FRAME_BUTTON_WIDTH 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_NAME */
0 1 17 18 16 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_A_BUTTON */
onfocus { play CHOICE_FOCUS_SOUND; }
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
doubleclick
{
setDvar ui_mapname dvarString( ui_preview );
play CHOICE_ACTION_SOUND;
execNow "xupdatepartystate";
deactivateBlur;
close self;
}
execKeyInt DPAD_LEFT
{
SWITCH_MAP_LIST_ACTION
}
execKeyInt DPAD_RIGHT
{
SWITCH_MAP_LIST_ACTION
}
execKeyInt APAD_LEFT
{
SWITCH_MAP_LIST_ACTION
}
execKeyInt APAD_RIGHT
{
SWITCH_MAP_LIST_ACTION
}
}
#ifdef PC
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
#else //#ifdef PC
FRAME_BACK_BUTTON_DEFAULT
#endif //#ifdef PC
#include "ui/safearea.menu"
}
#include "ui_mp/popupstyle.inc"
menuDef
{
SYSTEM_POPUP_SETUP_VIS( menu_game_mode_upload_confirm, activateblur; execNow raiseFeederEvent Populate;, deactivateblur; close self;, 1 )
onClose
{
deactivateblur;
play CHOICE_FOCUS_SOUND;
execNow raiseFeederEvent Clear;
}
SYSTEM_POPUP_TITLE_VIS( "@MENU_FILESHARE_REPLACECONFIRM", 1 )
itemDef
{
DYNAMIC_MENU_COMMON_FIELDS
backgroundItemListbox "white"
rect CHOICE_X_START CHOICE_Y_START CHOICE_SIZE_X 400
menuItemsDef
{
maxRows 4
DYNAMIC_MENU_COMMON_COLUMNS
menuColDef
{
type MENU_ITEM_TYPE_LOC_TEXT
rect 0 0 50 CHOICE_SIZE_Y ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
maxChars 50
}
}
onEvent Yes
{
open menu_game_mode_upload_save;
close self;
}
onEvent No { close self; }
onEvent Clear { execNow clearFeeder; }
onEvent Populate {
execNow addToFeeder Yes MENU_YES;
execNow addToFeeder No MENU_CANCEL;
}
onfocus { play CHOICE_FOCUS_SOUND; }
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
doubleclick { play CHOICE_FOCUS_SOUND;
execNow raiseFeederEvent; }
}
}
// Redefinitions for MEDIUM_POPUP_SETUP popups
#undef POPUP_WIDTH
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
#undef POPUP_HEIGHT
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
#undef CHOICE_SIZE_X
#define CHOICE_SIZE_X (POPUP_WIDTH-(POPUP_SIDE_PAD*2))
#undef CHOICE_Y_START
#define CHOICE_Y_START POPUP_Y_START_TOP
#undef PLAYER_INFO_ALIGN
#define PLAYER_INFO_ALIGN // Purposely set to nothing. The popup setup macro sets the alignment. If items within it set their own aligment, they end up offset incorrectly.
#undef PLAYER_INFO_X_START
#define PLAYER_INFO_X_START( frameWidth ) ( frameWidth - PLAYER_INFO_WIDTH - PLAYER_INFO_PAD )
#undef PLAYER_INFO_Y_START
#define PLAYER_INFO_Y_START( frameHeight ) ( PLAYER_INFO_PAD * 2 )
#undef BG_BACKCOLOR
#define BG_BACKCOLOR POPUP_BACKCOLOR
// Redefinitions for MEDIUM_POPUP_SETUP popups
#define GAME_MODE_FILESHARE_UPLOAD_ACTION \
execNow uploadCustomGametype ( getFeederData( "menu_game_mode_upload", "fileShareSlots", "slot" ) ); \
setdvar customGameMode 1; \
execNow "xupdatepartystate";
menuDef
{
MEDIUM_POPUP_SETUP_VIS( menu_game_mode_upload_save, activateblur;, deactivateblur; close self;, POPUP_GLOW_WHITE, 0, 1 )
onClose
{
deactivateblur;
play CHOICE_FOCUS_SOUND;
}
MEDIUM_POPUP_TITLE_VIS( "@MENU_SAVE_INFORMATION_CAPS", 1 )
PREPROC_TEXT_DRAW_VIS( CHOICE_ORIGIN( 1 ) CHOICE_SIZE_X CHOICE_SIZE_Y HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
locString( "@MPUI_TITLE" )+" :",
TEXTSIZE_SMALL, 0, 0, CHOICE_TEXTALIGN, 1 1 1 1,
1 )
FRAME_CHOICE_BUTTON( 2, dvarString(fsSelectedFileName), execNow demo_keyboard fileshareFileName; )
PREPROC_TEXT_DRAW_VIS( CHOICE_ORIGIN( 3 ) CHOICE_SIZE_X CHOICE_SIZE_Y HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
locString( "@MPUI_DESCRIPTION" )+" :",
TEXTSIZE_SMALL, 0, 0, CHOICE_TEXTALIGN, 1 1 1 1,
1 )
FRAME_CHOICE_BUTTON( 4, dvarString(fsSelectedFileDescription), execNow demo_keyboard fileshareFileDescription; )
FRAME_CHOICE_BUTTON( 6, "@MENU_CONTINUE", GAME_MODE_FILESHARE_UPLOAD_ACTION; close self; close menu_game_mode_upload; )
MEDIUM_POPUP_BACK_BUTTON
}