t5_bot_warfare/ui_mp/cac_main.menu
2023-12-04 03:36:03 -06:00

438 lines
17 KiB
Plaintext

#include "ui/menudef.h"
#include "ui_mp/common_macro.inc"
#include "ui_mp/item_animate.inc"
#include "ui_mp/menustyle.inc"
#include "ui/framestyle.inc"
#include "ui_mp/newframe.inc"
#include "ui_mp/cac_player_model.inc"
#undef CHOICE_X_START
#define CHOICE_X_START NEW_FRAME_CHOICE_X_START
#undef CHOICE_Y_START
#define CHOICE_Y_START NEW_FRAME_CHOICE_Y_START
#define RECT_ALIGN ;
#undef CHOICE_SEP_1
#define CHOICE_SEP_1 5
#undef CHOICE_SIZE_X
#define CHOICE_SIZE_X NEW_FRAME_BUTTON_WIDTH
#include "ui/choices_setup_common.menu"
#include "ui_mp/cac_viewer.inc"
#define LOCKED_BORDER_COLOR 1 1 1 0.5
#define LOCAL_UNLOCK_COLOR 0.31 0.31 0.33 0.55
#define ORIGIN_DESCRIPTION (CHOICE_X_START + 15) 320
#define LOCKED_IMAGE_X 100
#define LOCKED_IMAGE_Y 0
#define LOCKED_TITLE_X 20
#define LOCKED_TITLE_Y (LOCKED_IMAGE_Y + 100)
#define LOCKED_DESC_X (LOCKED_TITLE_X)
#define LOCKED_DESC_Y (LOCKED_TITLE_Y + 20)
#define LOCKED_WIDTH 270
#define LOCKED_ALIGN HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP
#define ORIGIN_LOCKED ((-(LOCKED_WIDTH - RIGHTITEM_OFFSET))-80) 38
#include "ui_mp/stats_info.inc"
#include "ui_mp/popup_player_info.inc"
#include "ui_mp/armor.inc"
#include "ui_mp/cac_stats.inc"
#include "ui_mp/cac_loadout.inc"
#undef CHOICE_TEXTSTYLE
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
#undef CHOICE_VERTICAL_ALIGN
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
#undef CHOICE_HORIZONTAL_ALIGN
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
#define IS_ONLINE_GAME ( dvarInt( splitscreen ) == 0 && dvarInt( systemlink ) == 0 )
#define IS_BASICTRAINING_GAME ( dvarInt( xblive_basictraining ) > 0 )
#undef ON_ESC
#ifdef PC
#define ON_ESC \
execnow "uploadstats"; \
setdvar invite_visible "1"; \
play uin_navigation_menu_lg_close; \
closeimmediate self; \
setLocalVarBool ui_hideBack 0;
#else //#ifdef PC
#define ON_ESC \
execnow "uploadstats"; \
setdvar invite_visible "1"; \
play uin_navigation_menu_lg_close; \
closeimmediate self;
#endif //#ifdef PC
#define SET_CLASS_HIGHLIGHT_INDEX( classIndex ) \
setdvar ui_custom_class_highlighted classIndex;
#define SETUP_ONFOCUS_CAC( classIndex, custom_name ) \
show item_info; \
SET_CLASS_HIGHLIGHT_INDEX( classIndex ) \
setdvar ui_custom_name custom_name; \
VIEWER_SET_PLAYER( custom_name ); \
VIEWER_SET_EQUIP_WEAPON( primary ); \
VIEWER_SET_PLAYER_CAMERA( player );
{
// CREATE A CLASS MAIN
menuDef
{
name cac_main
rect 0 0 640 470 RECT_ALIGN
focuscolor COLOR_FOCUSED
#ifdef PC_INGAME
style WINDOW_STYLE_EMPTY
#else
style WINDOW_STYLE_FILLED
blurWorld 7.0
#endif
control MENU_CONTROL_OPENER
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
popup
onOpen
{
execnow "uiViewer_SetControllerIndex";
activateBlur;
setdvar invite_visible "0";
setdvar cac_back_menu_name "cac_main";
setdvar ui_useCustomClassInfo 0;
if ( dvarString( ui_faction ) == "" ) { setdvar ui_faction FIRST_FACTION; }
#ifdef PC
if ( dvarString( ui_custom_name ) == "" )
{
SETUP_ONFOCUS_CAC( 0, customclass1 );
}
setLocalVarBool ui_hide_cac_item_info_highlights 1;
setLocalVarBool ui_hideBack 1;
#endif
SHOW_VIEWER;
SET_VIEWER_MODE_PLAYER;
play uin_navigation_menu_lg_open;
focusFirst;
}
onEsc
{
ON_ESC
}
onClose
{
if( !IS_ONLINE_GAME )
{
execNow "updategamerprofile";
}
deactivateBlur;
HIDE_VIEWER;
#ifdef PC
execNow "updategamerprofile";
setLocalVarBool ui_hide_cac_item_info_highlights 0;
#endif //#ifdef PC
}
onFocus
{
activateBlur;
execnow changemenuopenslidedirection cac_main MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM;
execnow changemenucloseslidedirection cac_main MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM;
}
#define CAC_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
#define CAC_WIDTH ( CAC_HEIGHT * FRAME_ASPECT_RATIO )
#define IS_CUSTOM_CLASS_MODE dvarInt( ui_useCustomClassInfo ) == 1
NEW_FRAME( CAC_WIDTH, CAC_HEIGHT )
// ------------------ statics ------------------------
NEW_FRAME_TITLE( CAC_WIDTH, CAC_HEIGHT, "@MPUI_CREATE_A_CLASS_CAPS", when( !IS_CUSTOM_CLASS_MODE ) )
NEW_FRAME_TITLE( CAC_WIDTH, CAC_HEIGHT, "@CUSTOM_EDIT_CLASS_LOADOUT_CAPS", when( IS_CUSTOM_CLASS_MODE ) )
PLAYER_INFO_VIS( CAC_WIDTH, CAC_HEIGHT, 1 )
#define DIRT_IMAGE_WIDTH 400
#define DIRT_IMAGE_HEIGHT 128
#define DIRT_IMAGE_X (-DIRT_IMAGE_WIDTH/2)
#define DIRT_IMAGE_Y 60
#ifndef PC_INGAME
/* dirt image */
PREPROC_SHADER_DRAW( DIRT_IMAGE_X DIRT_IMAGE_Y DIRT_IMAGE_WIDTH DIRT_IMAGE_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "menu_mp_lobby_cac_dirt", 1 1 1 0.2 )
CAC_FACTION_MODEL
#ifdef PC
CAC_ROTATE_ARROWS
#endif // #ifdef PC
#endif
//=========================================================
//===================== MENU SELECTION ====================
//=========================================================
#define SETUP_ACTION_CAC \
execnow changemenucloseslidedirection ( dvarString( "cac_back_menu_name" ) ) MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT; \
execnow changemenuopenslidedirection menu_cac_custom MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT; \
closeimmediate self; \
openimmediate menu_cac_custom;
#define SETUP_HL_CAC( classIndex ) \
( dvarInt( "ui_custom_class_highlighted" ) == classIndex )
#define PRESTIGE_FOCUS( pname, class_name_dvar ) \
hide item_info; \
setdvar ui_show_arrow 1; \
setdvar ui_custom_name dvarString( class_name_dvar ); \
execnow set ui_prestige_unlock_desc GET_UNLOCK_PLEVEL_STRING( pname );
#define PRESTIGE_LEAVE_FOCUS \
setdvar ui_show_arrow 0; \
setdvar ui_prestige_unlock_desc "@NULL_EMPTY";
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( customclass1 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 0, customclass1 ),
;,
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 0 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( offline_customclass1 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 0, customclass1 ); setdvar offline_custom_name offline_customclass1,
;,
!IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 0 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( offline_customclass1 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 0, customclass1 ); setdvar offline_custom_name offline_customclass1,
;,
IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 0 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( customclass2 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 1, customclass2 ),
;,
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 1 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( offline_customclass2 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 1, customclass2 ); setdvar offline_custom_name offline_customclass2,
;,
IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 1 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( offline_customclass2 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 1, customclass2 ); setdvar offline_custom_name offline_customclass2,
;,
!IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 1 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( customclass3 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 2, customclass3 ),
;,
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 2 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( offline_customclass3 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 2, customclass3 ); setdvar offline_custom_name offline_customclass3,
;,
IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 2 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( offline_customclass3 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 2, customclass3 ); setdvar offline_custom_name offline_customclass3,
;,
!IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 2 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( customclass4 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 3, customclass4 ),
;,
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 3 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( offline_customclass4 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 3, customclass4 ); setdvar offline_custom_name offline_customclass4,
;,
IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 3 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( offline_customclass4 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 3, customclass4 ); setdvar offline_custom_name offline_customclass4,
;,
!IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 3 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( customclass5 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 4, customclass5 ),
;,
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 4 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( offline_customclass5 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 4, customclass5 ); setdvar offline_custom_name offline_customclass5,
;,
IS_BASICTRAINING_GAME, ;,
SETUP_HL_CAC( 4 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( offline_customclass5 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 4, customclass5 ); setdvar offline_custom_name offline_customclass5,
;,
!IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 4 ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 6, dvarString( prestigeclass1 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 5, prestigeclass1 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_1 ),
;,
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 5 ) )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 6, dvarString( prestigeclass1 ),
SET_CLASS_HIGHLIGHT_INDEX( 5 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_1", prestigeclass1 );,
PRESTIGE_LEAVE_FOCUS;,
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 5 ) )
CHOICE_NEWICON_VIS( 6, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME ) )
CHOICE_LOCKEDICON_VIS( 6, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 7, dvarString( prestigeclass2 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 6, prestigeclass2 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_2 ),
;,
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 6 ) )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 7, dvarString( prestigeclass2 ),
SET_CLASS_HIGHLIGHT_INDEX( 6 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_2", prestigeclass2 );,
PRESTIGE_LEAVE_FOCUS;,
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 6 ) )
CHOICE_NEWICON_VIS( 7, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME ) )
CHOICE_LOCKEDICON_VIS( 7, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 8, dvarString( prestigeclass3 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 7, prestigeclass3 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_3 ),
;,
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 7 ) )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 8, dvarString( prestigeclass3 ),
SET_CLASS_HIGHLIGHT_INDEX( 7 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_3", prestigeclass3 );,
PRESTIGE_LEAVE_FOCUS;,
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 7 ) )
CHOICE_NEWICON_VIS( 8, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME ) )
CHOICE_LOCKEDICON_VIS( 8, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 9, dvarString( prestigeclass4 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 8, prestigeclass4 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_4 ),
;,
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 8 ) )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 9, dvarString( prestigeclass4 ),
SET_CLASS_HIGHLIGHT_INDEX( 8 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_4", prestigeclass4 );,
PRESTIGE_LEAVE_FOCUS;,
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 8 ) )
CHOICE_NEWICON_VIS( 9, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME ) )
CHOICE_LOCKEDICON_VIS( 9, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME ) )
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 10, dvarString( prestigeclass5 ),
SETUP_ACTION_CAC,
SETUP_ONFOCUS_CAC( 9, prestigeclass5 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_5 ),
;,
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 9 ) )
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 10, dvarString( prestigeclass5 ),
SET_CLASS_HIGHLIGHT_INDEX( 9 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_5", prestigeclass5 );,
PRESTIGE_LEAVE_FOCUS;,
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME, ;,
SETUP_HL_CAC( 9 ) )
CHOICE_NEWICON_VIS( 10, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME ) )
CHOICE_LOCKEDICON_VIS( 10, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME ) )
HINT_TEXT( 12, CHOICE_X_START, dvarString( ui_prestige_unlock_desc ), ( dvarBool( ui_show_arrow ) && ( dvarString( ui_prestige_unlock_desc ) != "" ) ) )
#include "ui_mp/cac_item_info.inc"
#ifndef PC
// RENAME BUTTON =============================================================
itemDef
{
type ITEM_TYPE_BUTTON
rect -165 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
text "@PLATFORM_RENAME"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_DEFAULT
textalign ITEM_ALIGN_BOTTOM_LEFT
execkeyint BUTTON_X {CAC_SETUP_ACTION_RENAME}
visible when( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME )
decoration
}
// ROTATE =============================================================
PREPROC_TEXT_DRAW( 95 (CAC_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
"@PLATFORM_ROTATE",
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1 )
itemDef
{
type ITEM_TYPE_BUTTON
rect 190 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
text "@PLATFORM_COPY_CLASS"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_DEFAULT
textalign ITEM_ALIGN_BOTTOM_LEFT
execkeyint BUTTON_Y { open copyClassPopup; }
visible when( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME )
decoration
}
NEW_FRAME_BACK_BUTTON( CAC_WIDTH, CAC_HEIGHT )
#else // #ifndef PC
#undef CHOICE_TEXTSIZE
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
#undef CHOICE_TEXTFONT
#define CHOICE_TEXTFONT UI_FONT_NORMAL
// back button
NEW_FRAME_BACK_BUTTON_ACTION( CAC_WIDTH, CAC_HEIGHT, ON_ESC )
// moved copy class into menu_cac_custom
#endif // #ifndef PC
#include "ui/safearea.menu"
}
}