mirror of
https://github.com/ineedbots/t5_bot_warfare.git
synced 2025-04-20 16:45:43 +00:00
1619 lines
90 KiB
Plaintext
1619 lines
90 KiB
Plaintext
#include "ui/menudef.h"
|
|
#include "ui_mp/cac_stats.inc"
|
|
#include "ui_mp/common_macro.inc"
|
|
|
|
#undef ORIGIN_TITLE
|
|
#define ORIGIN_TITLE 0 0
|
|
|
|
#ifdef CONSOLE
|
|
#undef CHOICE_X_START
|
|
#define CHOICE_X_START 0
|
|
|
|
#undef CHOICE_Y_START
|
|
#define CHOICE_Y_START 50
|
|
|
|
#define RECT_ALIGN ;
|
|
#else
|
|
#undef CHOICE_X_START
|
|
#define CHOICE_X_START 30
|
|
|
|
#undef CHOICE_Y_START
|
|
#define CHOICE_Y_START 90
|
|
|
|
#define RECT_ALIGN HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN;
|
|
#endif
|
|
|
|
#undef CHOICE_GROUP
|
|
#define CHOICE_GROUP "cac_weapon"
|
|
|
|
#define BUTTON_BG_WIDTH 210
|
|
|
|
#include "ui_mp/menustyle.inc"
|
|
#include "ui/choices_setup_common.menu"
|
|
#include "ui_mp/cac_viewer.inc"
|
|
|
|
#include "ui_mp/cac_loadout.inc"
|
|
#include "ui_mp/cac_player_model.inc"
|
|
#include "ui_mp/cac_weapon_anim_states.inc"
|
|
#include "ui_mp/grid_common.inc"
|
|
#include "ui_mp/overlaybg.inc"
|
|
#include "ui_mp/popup_player_info.inc"
|
|
#include "ui_mp/stats_info.inc"
|
|
#include "ui_mp/item_listbox.inc"
|
|
#include "ui/framestyle.inc"
|
|
#include "ui_mp/newframe.inc"
|
|
|
|
#undef CHOICE_SIZE_X
|
|
#define CHOICE_SIZE_X 200
|
|
|
|
#define TOP_Y_OFFSET_ON 10
|
|
#define BOTTOM_Y_OFFSET_ON -110
|
|
#define TOP_Y_OFFSET_OFF -20
|
|
#define BOTTOM_Y_OFFSET_OFF -60
|
|
|
|
#define LEFT_X_OFFSET 0
|
|
#define MIDDLE_X_OFFSET -100
|
|
#define RIGHT_X_OFFSET -200
|
|
|
|
#define CLASS_BONUS_VALUE GetClassBonus( dvarString( ui_custom_name ) )
|
|
#define CAN_GUN_HAVE_CUSTOM_RETICLE ( dvarInt( ui_canHaveCustomReticle ) == 1 )
|
|
#define CUSTOMIZING_RETICLE ( localVarInt( "ui_disable_controls" ) == 0 && dvarString( ui_inside_popup ) == "select_reticle" )
|
|
#define CUSTOMIZING_RETICLE_COLOR ( localVarInt( "ui_disable_controls" ) == 0 && dvarString( ui_inside_popup ) == "select_reticle_color" )
|
|
#define CUSTOMIZING_LENS ( localVarInt( "ui_disable_controls" ) == 0 && dvarString( ui_inside_popup ) == "select_lens" )
|
|
|
|
#define WEAPON_GROUP_LIST_BUTTON_B_ACTION \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_PRIMARY ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_SECONDARY ); \
|
|
}
|
|
|
|
#define WEAPON_LIST_BUTTON_B_ACTION \
|
|
execnow set cac_weapon_current_list weapon_group_list; \
|
|
execnow set cac_weapon_feeder_count ( GetFeederCount( weapon_group_list ) ); \
|
|
execnow set ui_next_inside_popup select_weapon_group; \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_PRIMARY ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_SECONDARY ); \
|
|
}
|
|
|
|
#define UPDATE_ATTACH_SLOT_TOP \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execnow set ui_att_slot_top ( CAC_PRI_ATTACHMENT_SLOT_TOP ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execnow set ui_att_slot_top ( CAC_SEC_ATTACHMENT_SLOT_TOP ); \
|
|
} \
|
|
if ( IsAttachmentAllowedOnItemIndex( STAT_CAC_PRIMARY, "elbit" ) || IsAttachmentAllowedOnItemIndex( STAT_CAC_PRIMARY, "reflex" ) ) \
|
|
{ \
|
|
setDvar ui_canHaveCustomReticle 1; \
|
|
} \
|
|
else \
|
|
{ \
|
|
setDvar ui_canHaveCustomReticle 0; \
|
|
}
|
|
|
|
#undef ON_ESC
|
|
#define ON_ESC \
|
|
if( dvarString( cac_weapon_current_list ) == "weapon_list" ) \
|
|
{ \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
WEAPON_LIST_BUTTON_B_ACTION \
|
|
} \
|
|
elseif( dvarString( cac_weapon_current_list ) == "weapon_group_list" ) \
|
|
{ \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
WEAPON_GROUP_LIST_BUTTON_B_ACTION \
|
|
} \
|
|
else \
|
|
{ \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_PRIMARY ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_SECONDARY ); \
|
|
} \
|
|
\
|
|
if ( dvarString( ui_inside_popup ) != "0" ) \
|
|
{ \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
} \
|
|
else \
|
|
{ \
|
|
closeimmediate self; \
|
|
execnow changemenuopenslidedirection menu_cac_custom MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT; \
|
|
openimmediate menu_cac_custom; \
|
|
} \
|
|
}
|
|
|
|
{
|
|
|
|
menuDef
|
|
{
|
|
name cac_weapon
|
|
rect 0 0 640 480
|
|
style WINDOW_STYLE_EMPTY
|
|
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
|
|
popup
|
|
|
|
onOpen
|
|
{
|
|
if ( dvarString( ui_faction ) == "" ) { setdvar ui_faction FIRST_FACTION; }
|
|
execnow set ui_cac_weapon_hint_text "";
|
|
SHOW_VIEWER;
|
|
SET_VIEWER_MODE_PLAYER;
|
|
// set focus to first menu selection
|
|
setfocus NEW_FRAME_BUTTON_NAME"1";
|
|
execnow set cac_weapon_feeder_count 0;
|
|
UPDATE_ATTACH_SLOT_TOP
|
|
execNow set ui_numBarPartitions 10;
|
|
setlocalVarBool ui_inside_dropdown 0;
|
|
}
|
|
|
|
onFocus
|
|
{
|
|
setLocalVarInt ui_highlight -1;
|
|
execnow set ui_cac_weapon_hint_text "";
|
|
setLocalVarString ui_choicegroup CHOICE_GROUP;
|
|
activateBlur;
|
|
|
|
UPDATE_ATTACH_SLOT_TOP
|
|
if ( dvarBool( "ui_closeAfterPurchase" ) )
|
|
{
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0;
|
|
execnow set ui_closeAfterPurchase 0;
|
|
}
|
|
}
|
|
|
|
onEsc
|
|
{
|
|
ON_ESC
|
|
}
|
|
|
|
onClose
|
|
{
|
|
deactivateBlur;
|
|
HIDE_VIEWER;
|
|
}
|
|
|
|
// Frame setup
|
|
#define CAC_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
|
#define CAC_WIDTH ( CAC_HEIGHT * FRAME_ASPECT_RATIO )
|
|
#define IS_CUSTOM_CLASS_MODE dvarInt( ui_useCustomClassInfo ) == 1
|
|
#define IS_ONLINE_GAME ( dvarInt( splitscreen ) == 0 && dvarInt( systemlink ) == 0 )
|
|
#define IS_BASICTRAINING_GAME ( dvarInt( xblive_basictraining ) > 0 )
|
|
|
|
NEW_FRAME( CAC_WIDTH, CAC_HEIGHT )
|
|
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 ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( dvarString( ui_custom_name ) ) + " / " + locString("@MPUI_PRIMARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "primary" && !IS_CUSTOM_CLASS_MODE && ( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME ) ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( dvarString( ui_custom_name ) ) + " / " + locString("@MPUI_SECONDARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "secondary" && !IS_CUSTOM_CLASS_MODE && ( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME ) ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( dvarString( offline_custom_name ) ) + " / " + locString("@MPUI_PRIMARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "primary" && !IS_CUSTOM_CLASS_MODE && ( !IS_ONLINE_GAME || IS_BASICTRAINING_GAME ) ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( dvarString( offline_custom_name ) ) + " / " + locString("@MPUI_SECONDARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "secondary" && !IS_CUSTOM_CLASS_MODE && ( !IS_ONLINE_GAME || IS_BASICTRAINING_GAME ) ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( custom_class_name ) + " / " + locString("@MPUI_PRIMARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "primary" && IS_CUSTOM_CLASS_MODE ) )
|
|
NEW_FRAME_SUBTITLE( CAC_WIDTH, CAC_HEIGHT, dvarString( custom_class_name ) + " / " + locString("@MPUI_SECONDARY_WEAPON_CAPS"), when( dvarString( selected_loadout_slot ) == "secondary" && 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
|
|
// Button setup
|
|
#define FEEDER_MAX 10
|
|
#define FEEDER_COUNT ( dvarInt( cac_weapon_feeder_count ) )
|
|
//#define LIMITED_FEEDER_COUNT ( Select( ( FEEDER_COUNT > FEEDER_MAX ), FEEDER_MAX, FEEDER_COUNT ) )
|
|
#define LIMITED_FEEDER_COUNT 1
|
|
#define SCROLL_ARROWS_OFFSET ( Select( ( FEEDER_COUNT > FEEDER_MAX ), ( NEW_FRAME_BUTTON_SPACING ), 0 ) )
|
|
|
|
#undef BUTTON_BG_WIDTH
|
|
#define BUTTON_BG_WIDTH NEW_FRAME_BUTTON_WIDTH
|
|
#define WEAPON_BUTTON_HEIGHT NEW_FRAME_BUTTON_HEIGHT
|
|
#define WEAPON_BUTTON_WIDTH NEW_FRAME_BUTTON_WIDTH
|
|
#define LEFT_X NEW_FRAME_CHOICE_X_START
|
|
#define TOP_Y NEW_FRAME_CHOICE_Y_START
|
|
#define BOTTOM_Y ( CAC_HEIGHT / 2 - WEAPON_BUTTON_HEIGHT - 10 )
|
|
|
|
#define SELECT_WEAPON_INDEX 1
|
|
#define SELECT_WEAPON_INDEX_STRING "1"
|
|
#define ATTACHMENTS_INDEX 2
|
|
#define CAMO_INDEX 3
|
|
#define CAMO_INDEX_STRING "3"
|
|
#define RETICLE_INDEX 4
|
|
#define RETICLE_INDEX_STRING "4"
|
|
#define RETICLE_COLOR_INDEX 5
|
|
#define RETICLE_COLOR_INDEX_STRING "5"
|
|
#define LENS_INDEX 6
|
|
#define LENS_INDEX_STRING "6"
|
|
#define GUN_TAG_INDEX 7
|
|
#define GUN_TAG_INDEX_STRING "7"
|
|
#define GUN_EMBLEM_INDEX 8
|
|
#define GUN_EMBLEM_INDEX_STRING "8"
|
|
#define DUAL_WIELD_INDEX 9
|
|
#define SECOND_ATTACHMENT_INDEX 10
|
|
#define HINT_INDEX 11
|
|
|
|
#define SELECT_WEAPON_Y ( TOP_Y )
|
|
#define ATTACHMENTS_Y ( SELECT_WEAPON_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define CAMO_Y ( ATTACHMENTS_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define RETICLE_Y ( CAMO_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_SEPARATED_BUTTON_SPACING )
|
|
#define RETICLE_COLOR_Y ( RETICLE_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define LENS_Y ( RETICLE_COLOR_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define GUN_TAG_Y ( LENS_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_SEPARATED_BUTTON_SPACING )
|
|
#define GUN_EMBLEM_Y ( GUN_TAG_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define DUAL_WIELD_Y ( GUN_EMBLEM_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define SECOND_ATTACHMENT_Y ( DUAL_WIELD_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
#define HINT_Y ( SECOND_ATTACHMENT_Y + WEAPON_BUTTON_HEIGHT + NEW_FRAME_BUTTON_SPACING )
|
|
|
|
#define LAST_Y HINT_Y
|
|
#define ACCORDION_HEIGHT ( BOTTOM_Y - LAST_Y )
|
|
|
|
// Listbox setup
|
|
#define LIST_X_START LEFT_X
|
|
#define LIST_HEIGHT 0
|
|
#define LIST_UNROLLED_HEIGHT ( FEEDER_MAX * 17 + 5 )
|
|
#define LIST_WIDTH WEAPON_BUTTON_WIDTH
|
|
#define LIST_ELEM_HEIGHT 17
|
|
#undef CHOICE_HORIZONTAL_ALIGN
|
|
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
|
#undef CHOICE_VERTICAL_ALIGN
|
|
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
|
|
|
// Animation states
|
|
#define BUTTONS_FADE_TIME 90
|
|
#define ACCORDION_EXPAND_TIME 150
|
|
#define ACCORDION_ROLLUP_TIME 150
|
|
#define INTERIM_ANIM_TIME 15
|
|
|
|
#define GET_SLOT_STAT \
|
|
( Select( dvarString( selected_loadout_slot ) == "primary", STAT_CAC_PRIMARY, STAT_CAC_SECONDARY ) )
|
|
|
|
#define LISTBOX_STATES \
|
|
state \
|
|
{ \
|
|
name Unrolled \
|
|
rect LIST_X_START LIST_Y_START LIST_WIDTH LIST_UNROLLED_HEIGHT CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \
|
|
}
|
|
|
|
// This is a dummy itemDef to disable controls.
|
|
// Used when animating.
|
|
itemDef
|
|
{
|
|
name dummyButton
|
|
type ITEM_TYPE_BUTTON_NO_TEXT
|
|
rect 0 0 0 0
|
|
visible when( localVarInt( "ui_disable_controls" ) == 1 );
|
|
|
|
execKeyInt BUTTON_B {}
|
|
execKeyInt APAD_UP {}
|
|
execKeyInt DPAD_UP {}
|
|
execKeyInt APAD_DOWN {}
|
|
execKeyInt DPAD_DOWN {}
|
|
execKeyInt APAD_LEFT {}
|
|
execKeyInt DPAD_LEFT {}
|
|
execKeyInt APAD_RIGHT {}
|
|
execKeyInt DPAD_RIGHT {}
|
|
}
|
|
|
|
// Animation controller
|
|
itemDef
|
|
{
|
|
name anim_controller
|
|
style WINDOW_STYLE_SHADER
|
|
rect 0 0 0 0
|
|
visible 1
|
|
decoration
|
|
|
|
// Open drop down list
|
|
state
|
|
{
|
|
name OpenDropDownList
|
|
onEnter
|
|
{
|
|
setLocalVarInt ui_disable_controls 1;
|
|
setFocus dummyButton;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 8 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"8" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 7 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"7" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 6 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"6" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 5 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"5" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 4 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"4" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 3 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"3" Transparent BUTTONS_FADE_TIME;
|
|
execNow if ( localVarInt( ui_weaponButton ) < 2 ) ui_animate cac_weapon NEW_FRAME_BUTTON_NAME"2" Transparent BUTTONS_FADE_TIME;
|
|
execnow ui_animate cac_weapon menu_hint Transparent BUTTONS_FADE_TIME;
|
|
execnow ui_animate cac_weapon list_hint Transparent 0;
|
|
execnow ui_animate cac_weapon anim_controller OpenDropDownList2 ( BUTTONS_FADE_TIME + INTERIM_ANIM_TIME );
|
|
}
|
|
}
|
|
state
|
|
{
|
|
name OpenDropDownList2
|
|
onEnter
|
|
{
|
|
setLocalVarBool ui_inside_dropdown 1;
|
|
execnow ui_animate cac_weapon (dvarString( cac_weapon_current_list )) Unrolled ACCORDION_EXPAND_TIME;
|
|
execnow ui_animate cac_weapon list_hint Default ACCORDION_EXPAND_TIME;
|
|
play uin_navigation_menu_sm_open;
|
|
execnow ui_animate cac_weapon anim_controller OpenDropDownList3 ( ( LIMITED_FEEDER_COUNT * ACCORDION_EXPAND_TIME ) + INTERIM_ANIM_TIME );
|
|
}
|
|
}
|
|
state
|
|
{
|
|
name OpenDropDownList3
|
|
onEnter
|
|
{
|
|
execnow focusitem ( dvarString( cac_weapon_current_list ) );
|
|
setLocalVarInt ui_disable_controls 0;
|
|
}
|
|
}
|
|
|
|
// Close drop down list
|
|
state
|
|
{
|
|
name CloseDropDownList
|
|
onEnter
|
|
{
|
|
UPDATE_ATTACH_SLOT_TOP
|
|
setLocalVarInt ui_disable_controls 1;
|
|
setFocus dummyButton;
|
|
execnow ui_animate cac_weapon (dvarString( cac_weapon_current_list )) Default ( LIMITED_FEEDER_COUNT * ACCORDION_ROLLUP_TIME );
|
|
execnow ui_animate cac_weapon list_hint Transparent ACCORDION_ROLLUP_TIME;
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList2 ( ( LIMITED_FEEDER_COUNT * ACCORDION_ROLLUP_TIME ) + INTERIM_ANIM_TIME );
|
|
execnow set cac_weapon_current_list "";
|
|
execnow set cac_weapon_feeder_count 0;
|
|
play uin_navigation_menu_sm_close;
|
|
}
|
|
}
|
|
state
|
|
{
|
|
name CloseDropDownList2
|
|
onEnter
|
|
{
|
|
setLocalVarInt ui_inside_dropdown 0;
|
|
if ( dvarString( cac_weapon_current_list ) != "" )
|
|
{
|
|
execnow set ui_inside_popup (dvarString(ui_next_inside_popup));
|
|
if( dvarString(ui_next_inside_popup) == "select_weapon_group" )
|
|
{
|
|
execnow setCurrentItemIndex ( GET_SLOT_STAT );
|
|
}
|
|
execnow ui_animate cac_weapon anim_controller OpenDropDownList 0;
|
|
}
|
|
else
|
|
{
|
|
execnow ui_animate cac_weapon * Default BUTTONS_FADE_TIME;
|
|
execnow ui_animate cac_weapon list_hint Transparent 0;
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList3 ( BUTTONS_FADE_TIME + INTERIM_ANIM_TIME );
|
|
}
|
|
}
|
|
}
|
|
state
|
|
{
|
|
name CloseDropDownList3
|
|
onEnter
|
|
{
|
|
execnow focusitem (NEW_FRAME_BUTTON_NAME+localVarInt( ui_weaponButton ));
|
|
setLocalVarInt ui_disable_controls 0;
|
|
execnow set ui_inside_popup "0";
|
|
}
|
|
}
|
|
}
|
|
|
|
#define IS_PRI ( dvarString( selected_loadout_slot ) == "primary" )
|
|
#define IS_SEC ( dvarString( selected_loadout_slot ) == "secondary" )
|
|
|
|
// Button actions
|
|
#define COMMON_BUTTON_ACTION \
|
|
execnow ui_animate cac_weapon anim_controller OpenDropDownList 0;
|
|
|
|
#define SELECT_WEAPON_ACTION \
|
|
if ( dvarString( ui_inside_popup ) != "0" ) \
|
|
{ \
|
|
ON_ESC \
|
|
} \
|
|
else \
|
|
{ \
|
|
setDvar ui_inside_popup select_weapon_group; \
|
|
execnow set cac_weapon_current_list weapon_group_list; \
|
|
execnow set cac_weapon_feeder_count ( GetFeederCount( weapon_group_list ) );\
|
|
setLocalVarInt ui_weaponButton SELECT_WEAPON_INDEX; \
|
|
COMMON_BUTTON_ACTION \
|
|
}
|
|
|
|
#define SELECT_WEAPON_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= SELECT_WEAPON_INDEX ) )
|
|
|
|
#define ATTACHMENTS_ACTION \
|
|
if ( dvarString( ui_inside_popup ) != "0" ) \
|
|
{ \
|
|
ON_ESC \
|
|
} \
|
|
else \
|
|
{ \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_PRIMARY ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execnow setCurrentItemIndex ( STAT_CAC_SECONDARY ); \
|
|
} \
|
|
setDvar ui_inside_popup attachments; \
|
|
execnow set cac_weapon_current_list attachments_list; \
|
|
execnow set cac_weapon_feeder_count ( GetFeederCount( attachments_list ) ); \
|
|
setLocalVarInt ui_weaponButton ATTACHMENTS_INDEX; \
|
|
COMMON_BUTTON_ACTION \
|
|
}
|
|
|
|
#define ATTACHMENTS_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= ATTACHMENTS_INDEX ) )
|
|
|
|
#define WEAPON_OPTION_ACTION( popupName, currentList, index, group ) \
|
|
if ( dvarString( ui_inside_popup ) != "0" ) \
|
|
{ \
|
|
ON_ESC \
|
|
} \
|
|
else \
|
|
{ \
|
|
execNow set ui_currentWeaponOptionGroup group; \
|
|
if ( dvarString( selected_loadout_slot ) == "primary" ) \
|
|
{ \
|
|
execNow set selected_group GetItemGroup( STAT_CAC_PRIMARY ); \
|
|
execnow setCurrentItemIndex ( STAT_CAC_PRIMARY ); \
|
|
} \
|
|
elseif ( dvarString( selected_loadout_slot ) == "secondary" ) \
|
|
{ \
|
|
execNow set selected_group GetItemGroup( STAT_CAC_SECONDARY ); \
|
|
execnow setCurrentItemIndex ( STAT_CAC_SECONDARY ); \
|
|
} \
|
|
setDvar ui_inside_popup popupName; \
|
|
execnow set cac_weapon_current_list currentList; \
|
|
execnow set cac_weapon_feeder_count ( GetFeederCount( currentList ) ); \
|
|
setLocalVarInt ui_weaponButton index; \
|
|
COMMON_BUTTON_ACTION \
|
|
}
|
|
|
|
#define CAMO_ACTION \
|
|
WEAPON_OPTION_ACTION( select_camo, camo_list, CAMO_INDEX, 0 ) \
|
|
|
|
#define CAMO_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= CAMO_INDEX ) )
|
|
|
|
#define RETICLE_ACTION \
|
|
WEAPON_OPTION_ACTION( select_reticle, reticle_list, RETICLE_INDEX, 1 ) \
|
|
|
|
#define RETICLE_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= RETICLE_INDEX ) )
|
|
|
|
#define RETICLE_COLOR_ACTION \
|
|
WEAPON_OPTION_ACTION( select_reticle_color, reticle_color_list, RETICLE_COLOR_INDEX, 5 )
|
|
|
|
#define RETICLE_COLOR_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= RETICLE_COLOR_INDEX ) )
|
|
|
|
#define LENS_ACTION \
|
|
WEAPON_OPTION_ACTION( select_lens, lens_list, LENS_INDEX, 2 ) \
|
|
|
|
#define LENS_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) || ( localVarInt( ui_weaponButton ) >= LENS_INDEX ) )
|
|
|
|
// Conditions
|
|
#include "ui_mp/cac_attachment_conditions.inc"
|
|
|
|
#define IS_NO_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "0" )
|
|
#define IS_WEAPON_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "select_weapon_group" || dvarString( "ui_inside_popup" ) == "select_weapon" )
|
|
#define IS_ATTACHMENT_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "attachments" )
|
|
#define ATTACHMENTS_AVAILABLE ( GetCurrentItemNumAttachments() > 1 ) // None counts as an attachment.
|
|
#define IS_CAMO_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "select_camo" )
|
|
#define IS_RETICLE_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "select_reticle" )
|
|
#define IS_LENS_LIST_OPEN ( dvarString( "ui_inside_popup" ) == "select_lens" || dvarString( "ui_inside_popup" ) == "select_lens_color" )
|
|
|
|
#define ACCORDION_BUTTON_RECT( yPos ) \
|
|
LEFT_X yPos WEAPON_BUTTON_WIDTH WEAPON_BUTTON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
|
|
// Accordion buttons
|
|
NEW_FRAME_BUTTON( 1, ACCORDION_BUTTON_RECT( SELECT_WEAPON_Y ),
|
|
"@MPUI_PRIMARY_WEAPON_CAPS",
|
|
SELECT_WEAPON_ACTION,
|
|
;,
|
|
;,
|
|
dvarString( selected_loadout_slot ) == "primary" && SELECT_WEAPON_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON( 1, ACCORDION_BUTTON_RECT( SELECT_WEAPON_Y ),
|
|
"@MPUI_SECONDARY_WEAPON_CAPS",
|
|
SELECT_WEAPON_ACTION,
|
|
;,
|
|
;,
|
|
dvarString( selected_loadout_slot ) == "secondary" && SELECT_WEAPON_VIS, ;, ; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, SELECT_WEAPON_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( ANY_NEW_PRIMARIES && dvarString( selected_loadout_slot ) == "primary" && dvarString( "ui_inside_popup" ) == "0" ),
|
|
name NEW_FRAME_BUTTON_NAME SELECT_WEAPON_INDEX_STRING; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, SELECT_WEAPON_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( ANY_NEW_SECONDARIES && dvarString( selected_loadout_slot ) == "secondary" && dvarString( "ui_inside_popup" ) == "0" ),
|
|
name NEW_FRAME_BUTTON_NAME SELECT_WEAPON_INDEX_STRING; )
|
|
|
|
|
|
|
|
NEW_FRAME_BUTTON( 2, ACCORDION_BUTTON_RECT( ATTACHMENTS_Y ),
|
|
"@MPUI_ATTACHMENTS_CAPS",
|
|
ATTACHMENTS_ACTION,
|
|
;,
|
|
;,
|
|
ATTACHMENTS_AVAILABLE && ATTACHMENTS_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 2, ACCORDION_BUTTON_RECT( ATTACHMENTS_Y ),
|
|
"@MPUI_ATTACHMENTS_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text "@MPUI_GUN_HAS_NO_ATTACHMENTS";,
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
!ATTACHMENTS_AVAILABLE && ATTACHMENTS_VIS, ;, ; )
|
|
|
|
|
|
|
|
NEW_FRAME_BUTTON( 3, ACCORDION_BUTTON_RECT( CAMO_Y ),
|
|
"@MPUI_CAMO_CAPS",
|
|
CAMO_ACTION,
|
|
CLEAR_ITEM_NEW( FEATURE_CAMO ),
|
|
;,
|
|
( IS_PRI && !CAMO_LOCKED ) && CAMO_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 3, ACCORDION_BUTTON_RECT( CAMO_Y ),
|
|
"@MPUI_CAMO_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_CAMO );,
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( IS_PRI && CAMO_LOCKED ) && CAMO_VIS, ;, ; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, CAMO_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_ITEM_NEW( FEATURE_CAMO ) && IS_PRI ),
|
|
name NEW_FRAME_BUTTON_NAME CAMO_INDEX_STRING; )
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( LEFT_X, CAMO_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_PRI && CAMO_LOCKED ),
|
|
name NEW_FRAME_BUTTON_NAME CAMO_INDEX_STRING; )
|
|
|
|
|
|
|
|
NEW_FRAME_BUTTON( 4, ACCORDION_BUTTON_RECT( RETICLE_Y ),
|
|
"@MPUI_RETICLE_CAPS",
|
|
RETICLE_ACTION,
|
|
CLEAR_ITEM_NEW( FEATURE_RETICLES ),
|
|
;,
|
|
( LENSESORRETICLES_AVAILABLE && IS_PRI && !RETICLES_LOCKED ) && RETICLE_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 4, ACCORDION_BUTTON_RECT( RETICLE_Y ),
|
|
"@MPUI_RETICLE_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text "@MPUI_NEED_RETICLE_ATTACHMENT"; CLEAR_ITEM_NEW( FEATURE_RETICLES ),
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( !LENSESORRETICLES_AVAILABLE && !RETICLES_LOCKED && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ) && RETICLE_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 4, ACCORDION_BUTTON_RECT( RETICLE_Y ),
|
|
"@MPUI_RETICLE_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_RETICLES );,
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( RETICLES_LOCKED && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ) && RETICLE_VIS, ;, ; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, RETICLE_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_ITEM_NEW( FEATURE_RETICLES ) && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ),
|
|
name NEW_FRAME_BUTTON_NAME RETICLE_INDEX_STRING; )
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( LEFT_X, RETICLE_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE && RETICLES_LOCKED ),
|
|
name NEW_FRAME_BUTTON_NAME RETICLE_INDEX_STRING; )
|
|
|
|
|
|
|
|
NEW_FRAME_BUTTON( 5, ACCORDION_BUTTON_RECT( RETICLE_COLOR_Y ),
|
|
"@MPUI_RETICLE_COLOR_CAPS",
|
|
RETICLE_COLOR_ACTION,
|
|
CLEAR_ITEM_NEW( FEATURE_RETICLE_COLOR ),
|
|
;,
|
|
( LENSESORRETICLES_AVAILABLE && IS_PRI && !RETICLE_COLOR_LOCKED ) && RETICLE_COLOR_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 5, ACCORDION_BUTTON_RECT( RETICLE_COLOR_Y ),
|
|
"@MPUI_RETICLE_COLOR_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text "@MPUI_NEED_RETICLE_COLOR_ATTACHMENT"; CLEAR_ITEM_NEW( FEATURE_RETICLE_COLOR ),
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( !LENSESORRETICLES_AVAILABLE && !RETICLE_COLOR_LOCKED && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ) && RETICLE_COLOR_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 5, ACCORDION_BUTTON_RECT( RETICLE_COLOR_Y ),
|
|
"@MPUI_RETICLE_COLOR_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_RETICLES );,
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( RETICLE_COLOR_LOCKED && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ) && RETICLE_COLOR_VIS, ;, ; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, RETICLE_COLOR_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_ITEM_NEW( FEATURE_RETICLE_COLOR ) && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ),
|
|
name NEW_FRAME_BUTTON_NAME RETICLE_COLOR_INDEX_STRING; )
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( LEFT_X, RETICLE_COLOR_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE && RETICLE_COLOR_LOCKED ),
|
|
name NEW_FRAME_BUTTON_NAME RETICLE_COLOR_INDEX_STRING; )
|
|
|
|
|
|
|
|
NEW_FRAME_BUTTON( 6, ACCORDION_BUTTON_RECT( LENS_Y ),
|
|
"@MPUI_LENS_CAPS",
|
|
LENS_ACTION,
|
|
CLEAR_ITEM_NEW( FEATURE_LENSES ),
|
|
;,
|
|
( LENSESORRETICLES_AVAILABLE && !LENSES_LOCKED && IS_PRI ) && LENS_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 6, ACCORDION_BUTTON_RECT( LENS_Y ),
|
|
"@MPUI_LENS_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text "@MPUI_NEED_LENS_ATTACHMENT"; CLEAR_ITEM_NEW( FEATURE_LENSES ),
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( IS_PRI && !LENSESORRETICLES_AVAILABLE && !LENSES_LOCKED && CAN_GUN_HAVE_CUSTOM_RETICLE ) && LENS_VIS, ;, ; )
|
|
NEW_FRAME_BUTTON_COLOR( 6, ACCORDION_BUTTON_RECT( LENS_Y ),
|
|
"@MPUI_LENS_CAPS", MEDIUM_GRAY_RGB, MEDIUM_GRAY_ALPHA, MEDIUM_GRAY,
|
|
;,
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_LENSES ); ,
|
|
execnow set ui_cac_weapon_hint_text "";,
|
|
( IS_PRI && LENSES_LOCKED && CAN_GUN_HAVE_CUSTOM_RETICLE ) && LENS_VIS, ;, ; )
|
|
NEW_FRAME_NEWICON_RECT_VIS( LEFT_X, LENS_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_ITEM_NEW( FEATURE_LENSES ) && IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE ),
|
|
name NEW_FRAME_BUTTON_NAME LENS_INDEX_STRING; )
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( LEFT_X, LENS_Y, WEAPON_BUTTON_WIDTH, WEAPON_BUTTON_HEIGHT, HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
( IS_PRI && CAN_GUN_HAVE_CUSTOM_RETICLE && LENSES_LOCKED ),
|
|
name NEW_FRAME_BUTTON_NAME LENS_INDEX_STRING; )
|
|
|
|
// Fixed buttons
|
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
#define IS_FIXED_BUTTON_ACTIVE ( dvarInt( ui_useCustomClassInfo ) == 0 && ( dvarString( "ui_inside_popup" ) == "0" ) )
|
|
|
|
// Gun Tag Button
|
|
#define HAVE_ENOUGH_FOR_GUN_TAG ( GetWeaponOptionCost( GetItemOptionByName( "tag" ) ) <= GetStatByName( "CODPOINTS" ) )
|
|
#define CAN_NOT_AFFORD_GUN_TAG ( !GUN_TAG_LOCKED && !GUN_TAG_PURCHASED && !HAVE_ENOUGH_FOR_GUN_TAG )
|
|
#define CAN_AFFORD_GUN_TAG ( !GUN_TAG_LOCKED && !GUN_TAG_PURCHASED && HAVE_ENOUGH_FOR_GUN_TAG )
|
|
#define CAN_TOGGLE_GUN_TAG ( GUN_TAG_PURCHASED )
|
|
#define IS_PRI_GUN_TAG_EQUIPPED ( IS_PRI && (STAT_CAC_PRIMARY_TAG) )
|
|
#define IS_SEC_GUN_TAG_EQUIPPED ( IS_SEC && (STAT_CAC_SECONDARY_TAG) )
|
|
|
|
#define GUN_TAG_X LEFT_X
|
|
#define GUN_TAG_W WEAPON_BUTTON_WIDTH
|
|
#define GUN_TAG_H WEAPON_BUTTON_HEIGHT
|
|
#define GUN_TAG_ALIGN HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
#define GUN_TAG_RECT GUN_TAG_X GUN_TAG_Y GUN_TAG_W GUN_TAG_H GUN_TAG_ALIGN
|
|
#define GUN_TAG_COST_W 50
|
|
#define GUN_TAG_COST_RECT (GUN_TAG_X+GUN_TAG_W-GUN_TAG_COST_W-2) GUN_TAG_Y GUN_TAG_COST_W GUN_TAG_H GUN_TAG_ALIGN
|
|
#define GUN_TAG_EQUIP_W GUN_TAG_H
|
|
#define GUN_TAG_EQUIP_RECT (GUN_TAG_X+GUN_TAG_W-GUN_TAG_EQUIP_W-2) GUN_TAG_Y GUN_TAG_EQUIP_W GUN_TAG_EQUIP_W GUN_TAG_ALIGN
|
|
|
|
#define PURCHASE_GUN_TAG_ACTION \
|
|
execnow set weaponOptionIndex ( GetItemIndex( FEATURE_GUN_TAG ) ); \
|
|
execnow set weaponOptionRef "tag"; \
|
|
open PurchaseWeaponOptionConfirmation;
|
|
|
|
#define TOGGLE_GUN_TAG_ACTION \
|
|
execnow toggleWeaponOption (dvarString( ui_custom_name )) tag;
|
|
|
|
#define GUN_TAG_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) )
|
|
|
|
#define GUN_TAG_BUTTONS( xArg, yArg, wArg, hArg, alignArg, visArg ) \
|
|
/* Buttons */ \
|
|
NEW_FRAME_DBUTTON( 7, xArg yArg wArg hArg alignArg, "@MPUI_GUN_TAG_CAPS", \
|
|
;, \
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_GUN_TAG );, \
|
|
execnow set ui_cac_weapon_hint_text "";, \
|
|
( IS_PRI && GUN_TAG_LOCKED && dvarInt( ui_useCustomClassInfo ) == 0 && visArg ), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 7, xArg yArg wArg hArg alignArg, "@MPUI_GUN_TAG_CAPS", NEW_FRAME_RED_RGB, NEW_FRAME_RED_ALPHA, NEW_FRAME_RED, \
|
|
;, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_TAG ), \
|
|
;, \
|
|
( IS_PRI && CAN_NOT_AFFORD_GUN_TAG && visArg ), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 7, xArg yArg wArg hArg alignArg, "@MPUI_GUN_TAG_CAPS", NEW_FRAME_GREEN_RGB, NEW_FRAME_GREEN_ALPHA, NEW_FRAME_GREEN, \
|
|
PURCHASE_GUN_TAG_ACTION, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_TAG ), \
|
|
;, \
|
|
( IS_PRI && CAN_AFFORD_GUN_TAG && visArg ), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 7, xArg yArg wArg hArg alignArg, "@MPUI_GUN_TAG_CAPS", WHITE_RGB, WHITE_ALPHA, BLACK, \
|
|
TOGGLE_GUN_TAG_ACTION, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_TAG ), \
|
|
;, \
|
|
( IS_PRI && CAN_TOGGLE_GUN_TAG && visArg ), ;, ; ) \
|
|
/* New Icon */ \
|
|
NEW_FRAME_NEWICON_RECT_VIS( xArg, yArg, wArg, hArg, alignArg, \
|
|
( IS_ITEM_NEW( FEATURE_GUN_TAG ) && IS_PRI && visArg ), \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; ) \
|
|
/* Locked Icon */ \
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( xArg, yArg, wArg, hArg, alignArg, \
|
|
(IS_PRI && GUN_TAG_LOCKED && visArg), \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; ) \
|
|
/* Cost */ \
|
|
PREPROC_TEXT_DRAW_VIS_EX( (xArg+wArg-GUN_TAG_COST_W-10) yArg GUN_TAG_COST_W hArg alignArg, 0 0, \
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "tag" ) ) ), \
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_RED, \
|
|
when( IS_PRI && CAN_NOT_AFFORD_GUN_TAG && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( NEW_FRAME_RED_RGB ) ) \
|
|
PREPROC_TEXT_DRAW_VIS_EX( (xArg+wArg-GUN_TAG_COST_W-10) yArg GUN_TAG_COST_W hArg alignArg, 0 0, \
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "tag" ) ) ), \
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_GREEN, \
|
|
when( IS_PRI && CAN_AFFORD_GUN_TAG && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( NEW_FRAME_GREEN_RGB ) ) \
|
|
/* Equipped Icon */ \
|
|
PREPROC_SHADER_DRAW_VIS_EX( (xArg+wArg-GUN_TAG_EQUIP_W-2) yArg GUN_TAG_EQUIP_W GUN_TAG_EQUIP_W alignArg, \
|
|
"menu_mp_killstreak_select", 1 1 1 1, \
|
|
when( IS_PRI && IS_PRI_GUN_TAG_EQUIPPED && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) ) \
|
|
PREPROC_SHADER_DRAW_VIS_EX( (xArg+wArg-GUN_TAG_EQUIP_W-2) yArg GUN_TAG_EQUIP_W GUN_TAG_EQUIP_W alignArg, \
|
|
"menu_mp_killstreak_select", 1 1 1 1, \
|
|
when( IS_PRI && IS_SEC_GUN_TAG_EQUIPPED && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_TAG_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
|
|
GUN_TAG_BUTTONS( GUN_TAG_X, GUN_TAG_Y, GUN_TAG_W, GUN_TAG_H, GUN_TAG_ALIGN, CAN_GUN_HAVE_CUSTOM_RETICLE && GUN_TAG_VIS )
|
|
GUN_TAG_BUTTONS( GUN_TAG_X, RETICLE_Y, GUN_TAG_W, GUN_TAG_H, GUN_TAG_ALIGN, !CAN_GUN_HAVE_CUSTOM_RETICLE && GUN_TAG_VIS )
|
|
|
|
// Gun Emblem Button
|
|
#define HAVE_ENOUGH_FOR_GUN_EMBLEM ( GetWeaponOptionCost( GetItemOptionByName( "emblem" ) ) <= GetStatByName( "CODPOINTS" ) )
|
|
#define CAN_NOT_AFFORD_GUN_EMBLEM ( !GUN_EMBLEM_LOCKED && !GUN_EMBLEM_PURCHASED && !HAVE_ENOUGH_FOR_GUN_EMBLEM )
|
|
#define CAN_AFFORD_GUN_EMBLEM ( !GUN_EMBLEM_LOCKED && !GUN_EMBLEM_PURCHASED && HAVE_ENOUGH_FOR_GUN_EMBLEM )
|
|
#define CAN_TOGGLE_GUN_EMBLEM ( GUN_EMBLEM_PURCHASED )
|
|
#define IS_PRI_GUN_EMBLEM_EQUIPPED ( IS_PRI && (STAT_CAC_PRIMARY_EMBLEM) )
|
|
#define IS_SEC_GUN_EMBLEM_EQUIPPED ( IS_SEC && (STAT_CAC_SECONDARY_EMBLEM) )
|
|
|
|
#define GUN_EMBLEM_X LEFT_X
|
|
#define GUN_EMBLEM_W WEAPON_BUTTON_WIDTH
|
|
#define GUN_EMBLEM_H WEAPON_BUTTON_HEIGHT
|
|
#define GUN_EMBLEM_ALIGN HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
#define GUN_EMBLEM_RECT GUN_EMBLEM_X GUN_EMBLEM_Y GUN_EMBLEM_W GUN_EMBLEM_H GUN_EMBLEM_ALIGN
|
|
#define GUN_EMBLEM_COST_W 50
|
|
#define GUN_EMBLEM_COST_RECT (GUN_EMBLEM_X+GUN_EMBLEM_W-GUN_EMBLEM_COST_W-2) GUN_EMBLEM_Y GUN_EMBLEM_COST_W GUN_EMBLEM_H GUN_EMBLEM_ALIGN
|
|
#define GUN_EMBLEM_EQUIP_W GUN_EMBLEM_H
|
|
#define GUN_EMBLEM_EQUIP_RECT (GUN_EMBLEM_X+GUN_EMBLEM_W-GUN_EMBLEM_EQUIP_W-2) GUN_EMBLEM_Y GUN_EMBLEM_EQUIP_W GUN_EMBLEM_EQUIP_W GUN_EMBLEM_ALIGN
|
|
|
|
#define PURCHASE_GUN_EMBLEM_ACTION \
|
|
execnow set weaponOptionIndex ( GetItemIndex( FEATURE_GUN_EMBLEM ) ); \
|
|
execnow set weaponOptionRef "emblem"; \
|
|
open PurchaseWeaponOptionConfirmation;
|
|
|
|
#define TOGGLE_GUN_EMBLEM_ACTION \
|
|
execnow toggleWeaponOption (dvarString( ui_custom_name )) emblem;
|
|
|
|
#define GUN_EMBLEM_VIS \
|
|
( !localVarBool( ui_inside_dropdown ) )
|
|
|
|
#define GUN_EMBLEM_BUTTONS( xArg, yArg, wArg, hArg, alignArg, visArg ) \
|
|
/* Buttons */ \
|
|
NEW_FRAME_DBUTTON( 8, xArg yArg wArg hArg alignArg, "@MPUI_GUN_EMBLEM_CAPS", \
|
|
;, \
|
|
execnow set ui_cac_weapon_hint_text GET_UNLOCK_LEVEL_STRING( FEATURE_GUN_EMBLEM );, \
|
|
execnow set ui_cac_weapon_hint_text "";, \
|
|
( IS_PRI && GUN_EMBLEM_LOCKED && dvarInt( ui_useCustomClassInfo ) == 0 && visArg ), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 8, xArg yArg wArg hArg alignArg, "@MPUI_GUN_EMBLEM_CAPS", NEW_FRAME_RED_RGB, NEW_FRAME_RED_ALPHA, NEW_FRAME_RED, \
|
|
;, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_EMBLEM ), \
|
|
;, \
|
|
(IS_PRI && CAN_NOT_AFFORD_GUN_EMBLEM && visArg), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 8, xArg yArg wArg hArg alignArg, "@MPUI_GUN_EMBLEM_CAPS", NEW_FRAME_GREEN_RGB, NEW_FRAME_GREEN_ALPHA, NEW_FRAME_GREEN, \
|
|
PURCHASE_GUN_EMBLEM_ACTION, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_EMBLEM ), \
|
|
;, \
|
|
(IS_PRI && CAN_AFFORD_GUN_EMBLEM && visArg), ;, ; ) \
|
|
NEW_FRAME_BUTTON_COLOR( 8, xArg yArg wArg hArg alignArg, "@MPUI_GUN_EMBLEM_CAPS", WHITE_RGB, WHITE_ALPHA, BLACK, \
|
|
TOGGLE_GUN_EMBLEM_ACTION, \
|
|
CLEAR_ITEM_NEW( FEATURE_GUN_EMBLEM ), \
|
|
;, \
|
|
(IS_PRI && CAN_TOGGLE_GUN_EMBLEM && visArg), ;, ; ) \
|
|
/* New Icon */ \
|
|
NEW_FRAME_NEWICON_RECT_VIS( xArg, yArg, wArg, hArg, alignArg, \
|
|
( IS_ITEM_NEW( FEATURE_GUN_EMBLEM ) && IS_PRI && visArg ), \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; ) \
|
|
/* Locked Icon */ \
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( xArg, yArg, wArg, hArg, alignArg, \
|
|
(IS_PRI && GUN_EMBLEM_LOCKED && visArg), \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; ) \
|
|
/* Cost */ \
|
|
PREPROC_TEXT_DRAW_VIS_EX( (xArg+wArg-GUN_EMBLEM_COST_W-10) yArg GUN_TAG_COST_W hArg alignArg, 0 0, \
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "emblem" ) ) ), \
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_RED, \
|
|
when( IS_PRI && CAN_NOT_AFFORD_GUN_EMBLEM && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( NEW_FRAME_RED_RGB ) ) \
|
|
PREPROC_TEXT_DRAW_VIS_EX( (xArg+wArg-GUN_EMBLEM_COST_W-10) yArg GUN_TAG_COST_W hArg alignArg, 0 0, \
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "emblem" ) ) ), \
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_GREEN, \
|
|
when( IS_PRI && CAN_AFFORD_GUN_EMBLEM && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( NEW_FRAME_GREEN_RGB ) ) \
|
|
/* Equipped Icon */ \
|
|
PREPROC_SHADER_DRAW_VIS_EX( (xArg+wArg-GUN_EMBLEM_EQUIP_W-2) yArg GUN_TAG_EQUIP_W GUN_TAG_EQUIP_W alignArg, \
|
|
"menu_mp_killstreak_select", 1 1 1 1, \
|
|
when( IS_PRI && IS_PRI_GUN_EMBLEM_EQUIPPED && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) ) \
|
|
PREPROC_SHADER_DRAW_VIS_EX( (xArg+wArg-GUN_EMBLEM_EQUIP_W-2) yArg GUN_TAG_EQUIP_W GUN_TAG_EQUIP_W alignArg, \
|
|
"menu_mp_killstreak_select", 1 1 1 1, \
|
|
when( IS_PRI && IS_SEC_GUN_EMBLEM_EQUIPPED && visArg );, \
|
|
name NEW_FRAME_BUTTON_NAME GUN_EMBLEM_INDEX_STRING; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
|
|
GUN_EMBLEM_BUTTONS( GUN_EMBLEM_X, GUN_EMBLEM_Y, GUN_EMBLEM_W, GUN_EMBLEM_H, GUN_EMBLEM_ALIGN, CAN_GUN_HAVE_CUSTOM_RETICLE && GUN_EMBLEM_VIS )
|
|
GUN_EMBLEM_BUTTONS( GUN_EMBLEM_X, RETICLE_COLOR_Y, GUN_EMBLEM_W, GUN_EMBLEM_H, GUN_EMBLEM_ALIGN, !CAN_GUN_HAVE_CUSTOM_RETICLE && GUN_EMBLEM_VIS )
|
|
|
|
// Hint text
|
|
#define HINT_EX_ARGS( yArg, listArg ) \
|
|
name list_hint; \
|
|
NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) \
|
|
exp rect Y( yArg + WEAPON_BUTTON_HEIGHT*2 + min( getFeederCount( listArg ), FEEDER_MAX ) * 17 );
|
|
|
|
// Weapon list hint
|
|
HINT_TEXT_ALL( 1, LEFT_X, 0, CHOICE_SIZE_X, dvarString( ui_cac_weapon_hint_text ), 1 1 1 1, ( ( dvarString( ui_cac_weapon_hint_text ) != "" ) && ( dvarString( "ui_inside_popup" ) == "select_weapon" ) ), HINT_EX_ARGS( SELECT_WEAPON_Y, weapon_list ) )
|
|
// Menu-level without reticle customization hint
|
|
HINT_TEXT_ALL( 6, LEFT_X, 0, CHOICE_SIZE_X, dvarString( ui_cac_weapon_hint_text ), 1 1 1 1, ( ( dvarString( ui_cac_weapon_hint_text ) != "" ) && !CAN_GUN_HAVE_CUSTOM_RETICLE ), name menu_hint; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
// Menu-level with reticle customization hint
|
|
HINT_TEXT_ALL( 10, LEFT_X, 0, CHOICE_SIZE_X, dvarString( ui_cac_weapon_hint_text ), 1 1 1 1, ( ( dvarString( ui_cac_weapon_hint_text ) != "" ) && CAN_GUN_HAVE_CUSTOM_RETICLE ), name menu_hint; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
// camo list hint
|
|
HINT_TEXT_ALL( 1, LEFT_X, 0, CHOICE_SIZE_X, dvarString( ui_cac_weapon_hint_text ), 1 1 1 1, ( ( dvarString( ui_cac_weapon_hint_text ) != "" ) && ( dvarString( "ui_inside_popup" ) == "select_camo" ) ), HINT_EX_ARGS( CAMO_Y, camo_list ) )
|
|
|
|
|
|
// Dual wield has been moved to attachments.
|
|
#if 0
|
|
// Dual Wield Button
|
|
#define PRI_HAS_DW ( ItemHasDualWield( STAT_CAC_PRIMARY ) )
|
|
#define SEC_HAS_DW ( ItemHasDualWield( STAT_CAC_SECONDARY ) )
|
|
#define PRI_IS_DW ( ItemIsDualWield( STAT_CAC_PRIMARY ) )
|
|
#define SEC_IS_DW ( ItemIsDualWield( STAT_CAC_SECONDARY ) )
|
|
#define IS_PRI_DW_LOCKED ( IsItemDualWieldLocked( STAT_CAC_PRIMARY ) )
|
|
#define IS_SEC_DW_LOCKED ( IsItemDualWieldLocked( STAT_CAC_SECONDARY ) )
|
|
#define IS_PRI_DW_PURCHASED ( IsItemDualWieldPurchased( STAT_CAC_PRIMARY ) )
|
|
#define IS_SEC_DW_PURCHASED ( IsItemDualWieldPurchased( STAT_CAC_SECONDARY ) )
|
|
#define HAVE_ENOUGH_FOR_PRI_DW ( GetItemDualWieldCost( STAT_CAC_PRIMARY ) <= GetStatByName( "CODPOINTS" ) )
|
|
#define HAVE_ENOUGH_FOR_SEC_DW ( GetItemDualWieldCost( STAT_CAC_SECONDARY ) <= GetStatByName( "CODPOINTS" ) )
|
|
|
|
#define IS_PRI_NA_OR_LOCKED ( IS_PRI && ( !PRI_HAS_DW || (PRI_HAS_DW && IS_PRI_DW_LOCKED) ) )
|
|
#define IS_SEC_NA_OR_LOCKED ( IS_SEC && ( !SEC_HAS_DW || (SEC_HAS_DW && IS_SEC_DW_LOCKED) ) )
|
|
#define CAN_NOT_AFFORD_PRI_DW ( IS_PRI && PRI_HAS_DW && !IS_PRI_DW_LOCKED && !IS_PRI_DW_PURCHASED && !HAVE_ENOUGH_FOR_PRI_DW )
|
|
#define CAN_NOT_AFFORD_SEC_DW ( IS_SEC && SEC_HAS_DW && !IS_SEC_DW_LOCKED && !IS_SEC_DW_PURCHASED && !HAVE_ENOUGH_FOR_SEC_DW )
|
|
#define CAN_AFFORD_PRI_DW ( IS_PRI && PRI_HAS_DW && !IS_PRI_DW_LOCKED && !IS_PRI_DW_PURCHASED && HAVE_ENOUGH_FOR_PRI_DW )
|
|
#define CAN_AFFORD_SEC_DW ( IS_SEC && SEC_HAS_DW && !IS_SEC_DW_LOCKED && !IS_SEC_DW_PURCHASED && HAVE_ENOUGH_FOR_SEC_DW )
|
|
#define CAN_TOGGLE_PRI_DW ( IS_PRI && ( (PRI_IS_DW) || (!PRI_IS_DW && PRI_HAS_DW && IS_PRI_DW_PURCHASED) ) )
|
|
#define CAN_TOGGLE_SEC_DW ( IS_SEC && ( (SEC_IS_DW) || (!SEC_IS_DW && SEC_HAS_DW && IS_SEC_DW_PURCHASED) ) )
|
|
|
|
#define DW_RECT_X LEFT_X
|
|
#define DW_RECT_Y DUAL_WIELD_Y
|
|
#define DW_RECT_W WEAPON_BUTTON_WIDTH
|
|
#define DW_RECT_H WEAPON_BUTTON_HEIGHT
|
|
#define DW_RECT_ALIGN HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
#define DW_RECT DW_RECT_X DW_RECT_Y DW_RECT_W DW_RECT_H DW_RECT_ALIGN
|
|
#define DW_COST_W 50
|
|
#define DW_COST_RECT (DW_RECT_X+DW_RECT_W-DW_COST_W-2) DW_RECT_Y DW_COST_W DW_RECT_H DW_RECT_ALIGN
|
|
#define DW_EQUIP_W DW_RECT_H
|
|
#define DW_EQUIP_RECT (DW_RECT_X+DW_RECT_W-DW_EQUIP_W-2) DW_RECT_Y DW_EQUIP_W DW_EQUIP_W DW_RECT_ALIGN
|
|
#define DW_BUTTON_STATES WEAPON_BUTTON_STATES( DUAL_WIELD_INDEX, DUAL_WIELD_Y )
|
|
|
|
#define TOGGLE_PRI_DUAL_WIELD_ACTION \
|
|
if( !PRI_IS_DW ) \
|
|
{ \
|
|
execnow equipclassitem (dvarString( ui_custom_name )) ( GetItemDualWieldIndex( STAT_CAC_PRIMARY ) ); \
|
|
} \
|
|
else \
|
|
{ \
|
|
execnow equipclassitem (dvarString( ui_custom_name )) ( GetItemDualWieldBaseIndex( STAT_CAC_PRIMARY ) ); \
|
|
}
|
|
|
|
#define TOGGLE_SEC_DUAL_WIELD_ACTION \
|
|
if( !SEC_IS_DW ) \
|
|
{ \
|
|
execnow equipclassitem (dvarString( ui_custom_name )) ( GetItemDualWieldIndex( STAT_CAC_SECONDARY ) ); \
|
|
} \
|
|
else \
|
|
{ \
|
|
execnow equipclassitem (dvarString( ui_custom_name )) ( GetItemDualWieldBaseIndex( STAT_CAC_SECONDARY ) ); \
|
|
}
|
|
|
|
// Primary Weapon
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", ;, ;, ;, ( !IS_FIXED_BUTTON_ACTIVE && IS_PRI && !PRI_IS_DW && !IS_PRI_DW_PURCHASED ), ;, decoration; DW_BUTTON_STATES )
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_DUAL_WIELD_CAPS", ;, ;, ;, ( !IS_FIXED_BUTTON_ACTIVE && CAN_TOGGLE_PRI_DW ), ;, decoration; DW_BUTTON_STATES )
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", ;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && IS_PRI && !PRI_IS_DW && IS_PRI_NA_OR_LOCKED ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", NEW_FRAME_RED, NEW_FRAME_RED, ;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && !PRI_IS_DW && CAN_NOT_AFFORD_PRI_DW ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", NEW_FRAME_GREEN, NEW_FRAME_GREEN, open PurchaseDualWieldConfirmation;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && !PRI_IS_DW && CAN_AFFORD_PRI_DW ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_DUAL_WIELD_CAPS", WHITE_RGB, WHITE_ALPHA, BLACK, TOGGLE_PRI_DUAL_WIELD_ACTION, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && CAN_TOGGLE_PRI_DW ), ;, DW_BUTTON_STATES )
|
|
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( DW_RECT_X, DW_RECT_Y, DW_RECT_W, DW_RECT_H, DW_RECT_ALIGN, (IS_FIXED_BUTTON_ACTIVE && IS_PRI && !PRI_IS_DW && PRI_HAS_DW && IS_PRI_DW_LOCKED), DW_BUTTON_STATES )
|
|
// Cost
|
|
PREPROC_TEXT_DRAW_VIS_EX( DW_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetItemDualWieldCost( STAT_CAC_PRIMARY ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_RED,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_NOT_AFFORD_PRI_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
PREPROC_TEXT_DRAW_VIS_EX( DW_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetItemDualWieldCost( STAT_CAC_PRIMARY ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_GREEN,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_AFFORD_PRI_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
// Equipped icon
|
|
PREPROC_SHADER_DRAW_VIS_EX( DW_EQUIP_RECT,
|
|
"menu_mp_killstreak_select", 1 1 1 1,
|
|
when( IS_FIXED_BUTTON_ACTIVE && IS_PRI && PRI_IS_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
|
|
// Secondary Weapon
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", ;, ;, ;, ( !IS_FIXED_BUTTON_ACTIVE && IS_SEC && !SEC_IS_DW && !IS_SEC_DW_PURCHASED ), ;, decoration; DW_BUTTON_STATES )
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_DUAL_WIELD_CAPS", ;, ;, ;, ( !IS_FIXED_BUTTON_ACTIVE && CAN_TOGGLE_SEC_DW ), ;, decoration; DW_BUTTON_STATES )
|
|
NEW_FRAME_DBUTTON( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", ;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && IS_SEC && !SEC_IS_DW && IS_SEC_NA_OR_LOCKED ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", NEW_FRAME_RED, NEW_FRAME_RED, ;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && !SEC_IS_DW && CAN_NOT_AFFORD_SEC_DW ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_BUY_DUAL_WIELD_CAPS", NEW_FRAME_GREEN, NEW_FRAME_GREEN, open PurchaseDualWieldConfirmation;, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && !SEC_IS_DW && CAN_AFFORD_SEC_DW ), ;, DW_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 8, DW_RECT, "@MPUI_DUAL_WIELD_CAPS", WHITE_RGB, WHITE_ALPHA, BLACK, TOGGLE_SEC_DUAL_WIELD_ACTION, ;, ;, ( IS_FIXED_BUTTON_ACTIVE && CAN_TOGGLE_SEC_DW ), ;, DW_BUTTON_STATES )
|
|
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( DW_RECT_X, DW_RECT_Y, DW_RECT_W, DW_RECT_H, DW_RECT_ALIGN, (IS_FIXED_BUTTON_ACTIVE && IS_SEC && !SEC_IS_DW && SEC_HAS_DW && IS_SEC_DW_LOCKED), DW_BUTTON_STATES )
|
|
// Cost
|
|
PREPROC_TEXT_DRAW_VIS_EX( DW_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetItemDualWieldCost( STAT_CAC_SECONDARY ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_RED,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_NOT_AFFORD_SEC_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
PREPROC_TEXT_DRAW_VIS_EX( DW_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetItemDualWieldCost( STAT_CAC_SECONDARY ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_GREEN,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_AFFORD_SEC_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
// Equipped icon
|
|
PREPROC_SHADER_DRAW_VIS_EX( DW_EQUIP_RECT,
|
|
"menu_mp_killstreak_select", 1 1 1 1,
|
|
when( IS_FIXED_BUTTON_ACTIVE && IS_SEC && SEC_IS_DW );,
|
|
DW_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
|
|
// Second Attachment Button
|
|
#define SEC_ATTACH_AVAILABLE ( GetCurrentItemNumAttachments() > 2 ) // None counts as an attachment. Need at least 2 attachments.
|
|
#define HAVE_ENOUGH_FOR_SEC_ATTACH ( GetWeaponOptionCost( GetItemOptionByName( "2ndattach" ) ) <= GetStatByName( "CODPOINTS" ) )
|
|
#define CAN_NOT_AFFORD_SEC_ATTACH ( SEC_ATTACH_AVAILABLE && !GUN_2NDATTACH_LOCKED && !GUN_2NDATTACH_PURCHASED && !HAVE_ENOUGH_FOR_SEC_ATTACH )
|
|
#define CAN_AFFORD_SEC_ATTACH ( SEC_ATTACH_AVAILABLE && !GUN_2NDATTACH_LOCKED && !GUN_2NDATTACH_PURCHASED && HAVE_ENOUGH_FOR_SEC_ATTACH )
|
|
|
|
#define SEC_ATTACH_X LEFT_X
|
|
#define SEC_ATTACH_Y SECOND_ATTACHMENT_Y
|
|
#define SEC_ATTACH_W WEAPON_BUTTON_WIDTH
|
|
#define SEC_ATTACH_H WEAPON_BUTTON_HEIGHT
|
|
#define SEC_ATTACH_ALIGN HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
#define SEC_ATTACH_RECT SEC_ATTACH_X SEC_ATTACH_Y SEC_ATTACH_W SEC_ATTACH_H SEC_ATTACH_ALIGN
|
|
#define SEC_ATTACH_COST_W 50
|
|
#define SEC_ATTACH_COST_RECT (SEC_ATTACH_X+SEC_ATTACH_W-SEC_ATTACH_COST_W-2) SEC_ATTACH_Y SEC_ATTACH_COST_W SEC_ATTACH_H SEC_ATTACH_ALIGN
|
|
#define SEC_ATTACH_BUTTON_STATES WEAPON_BUTTON_STATES( SECOND_ATTACHMENT_INDEX, SECOND_ATTACHMENT_Y )
|
|
|
|
#define PURCHASE_2ND_ATTACH_ACTION \
|
|
execnow set weaponOptionIndex ( GetItemIndex( FEATURE_SECOND_ATTACHMENT ) ); \
|
|
execnow set weaponOptionRef "2ndAttach"; \
|
|
open PurchaseWeaponOptionConfirmation;
|
|
|
|
NEW_FRAME_DBUTTON( 9, SEC_ATTACH_RECT, "@MPUI_BUY_SECOND_ATTACHMENT_CAPS", ;, ;, ;, (!IS_FIXED_BUTTON_ACTIVE || GUN_2NDATTACH_PURCHASED || GUN_2NDATTACH_LOCKED || !SEC_ATTACH_AVAILABLE ), ;, SEC_ATTACH_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 9, SEC_ATTACH_RECT, "@MPUI_BUY_SECOND_ATTACHMENT_CAPS", NEW_FRAME_RED_RGB, NEW_FRAME_RED_ALPHA, NEW_FRAME_RED, ;, ;, ;, (IS_FIXED_BUTTON_ACTIVE && CAN_NOT_AFFORD_SEC_ATTACH ), ;, SEC_ATTACH_BUTTON_STATES )
|
|
NEW_FRAME_BUTTON_COLOR( 9, SEC_ATTACH_RECT, "@MPUI_BUY_SECOND_ATTACHMENT_CAPS", NEW_FRAME_GREEN_RGB, NEW_FRAME_GREEN_ALPHA, NEW_FRAME_GREEN, PURCHASE_2ND_ATTACH_ACTION, ;, ;, (IS_FIXED_BUTTON_ACTIVE && CAN_AFFORD_SEC_ATTACH ), ;, SEC_ATTACH_BUTTON_STATES )
|
|
|
|
NEW_FRAME_LOCKEDICON_RECT_VIS( SEC_ATTACH_X, SEC_ATTACH_Y, SEC_ATTACH_W, SEC_ATTACH_H, SEC_ATTACH_ALIGN, (IS_FIXED_BUTTON_ACTIVE && GUN_2NDATTACH_LOCKED), SEC_ATTACH_BUTTON_STATES )
|
|
// Cost
|
|
PREPROC_TEXT_DRAW_VIS_EX( SEC_ATTACH_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "2ndAttach" ) ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_RED,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_NOT_AFFORD_SEC_ATTACH );,
|
|
SEC_ATTACH_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
PREPROC_TEXT_DRAW_VIS_EX( SEC_ATTACH_COST_RECT, 0 0,
|
|
locString( "@MENU_POINTS", GetWeaponOptionCost( GetItemOptionByName( "2ndAttach" ) ) ),
|
|
CHOICE_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, NEW_FRAME_GREEN,
|
|
when( IS_FIXED_BUTTON_ACTIVE && CAN_AFFORD_SEC_ATTACH );,
|
|
SEC_ATTACH_BUTTON_STATES; NEW_FRAME_TRANSPARENT_STATE( 1 1 1 ) )
|
|
|
|
#endif
|
|
|
|
#ifdef PC
|
|
#define COMMON_LIST_EX_PC \
|
|
modal \
|
|
usepaging
|
|
#else //#ifdef PC
|
|
#define COMMON_LIST_EX_PC
|
|
#endif //#ifdef PC
|
|
|
|
// Listbox actions
|
|
#define COMMON_LIST_EX( buttonBActionArg ) \
|
|
LISTBOX_STATES \
|
|
execKeyInt BUTTON_B \
|
|
{ \
|
|
play CHOICE_FOCUS_SOUND; \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
buttonBActionArg \
|
|
} \
|
|
COMMON_LIST_EX_PC
|
|
|
|
#define WEAPON_GROUP_LIST_ACTION \
|
|
play CHOICE_ACTION_SOUND; \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
execnow set cac_weapon_current_list weapon_list; \
|
|
execnow buildItemListForSlotNameAndGroup (dvarString(selected_loadout_slot)) (dvarString(selected_group)); \
|
|
execnow set cac_weapon_feeder_count ( GetFeederCount( weapon_list ) ); \
|
|
execnow set ui_next_inside_popup select_weapon;
|
|
|
|
#define WEAPON_LIST_ACTION \
|
|
if ( IsCurrentItemPurchased() ) \
|
|
{ \
|
|
play CHOICE_ACTION_SOUND; \
|
|
execnow equipclasscurrentitem (dvarString( ui_custom_name )); \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
} \
|
|
elseif ( !IsItemLocked( GetCurrentItemIndex() ) && \
|
|
( GetCurrentItemCost() <= GetStatByName( "CODPOINTS" ) ) && \
|
|
!IsCurrentItemClassified() ) \
|
|
{ \
|
|
play CHOICE_ACTION_SOUND; \
|
|
open "PurchaseConfirmation"; \
|
|
}
|
|
|
|
#define WEAPON_LIST_ONSELECTION \
|
|
if ( IsCurrentItemClassified() ) \
|
|
{ \
|
|
execnow set ui_cac_weapon_hint_text (GetCurrentItemClassifiedHintText()); \
|
|
} \
|
|
elseif ( IsItemLocked( GetCurrentItemIndex() ) ) \
|
|
{ \
|
|
execnow set ui_cac_weapon_hint_text (GET_UNLOCK_LEVEL_STRING(GetItemName(GetCurrentItemIndex()))); \
|
|
} \
|
|
else \
|
|
{ \
|
|
if( IsItemNew( GetCurrentItemIndex() ) ) \
|
|
{ \
|
|
CLEAR_ITEM_NEW( ( GetItemName( GetCurrentItemIndex() ) ) ); \
|
|
} \
|
|
execnow set ui_cac_weapon_hint_text ""; \
|
|
}
|
|
|
|
#define CAN_EQUIP_TWO_ATTACHMENTS \
|
|
( ( IS_PRI ) && ( isItemEquipped( getitemindex("PERKS_PROFESSIONAL"), dvarString( ui_custom_name ) ) || isItemEquipped( getitemindex("PERKS_PROFESSIONAL_PRO"), dvarString( ui_custom_name ) ) ) )
|
|
|
|
#define NUM_EQUIPPED_ATTACHMENTS \
|
|
GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), GET_SLOT_STAT )
|
|
|
|
#define IS_CURRENT_ATTACHMENT_EQUIPPED \
|
|
( getItemAttachment( getCurrentItemIndex(), getCurrentItemAttachmentNum() ) == GetItemEquippedAttachment( dvarString( ui_custom_name ), GET_SLOT_STAT, 0 ) || \
|
|
getItemAttachment( getCurrentItemIndex(), getCurrentItemAttachmentNum() ) == GetItemEquippedAttachment( dvarString( ui_custom_name ), GET_SLOT_STAT, 1 ) )
|
|
|
|
#define ATTACHMENTS_LIST_ACTION \
|
|
if ( isCurrentItemAttachmentPurchased() ) \
|
|
{ \
|
|
if( IS_CURRENT_ATTACHMENT_EQUIPPED ) \
|
|
{ \
|
|
execNow clearAttachmentForItemAtPoint (dvarString( ui_custom_name )) (GET_SLOT_STAT) (getCurrentItemAttachmentPoint()); \
|
|
} \
|
|
elseif( ( NUM_EQUIPPED_ATTACHMENTS < 1 ) || ( NUM_EQUIPPED_ATTACHMENTS == 1 && CAN_EQUIP_TWO_ATTACHMENTS ) ) \
|
|
{ \
|
|
play CHOICE_ACTION_SOUND; \
|
|
execnow equipclasscurrentattachment ( dvarString( ui_custom_name ) ); \
|
|
} \
|
|
} \
|
|
elseif ( !isItemlocked( GetCurrentItemIndex() ) && ( getCurrentItemAttachmentCost() <= GetStatByName( "CODPOINTS" ) ) ) \
|
|
{ \
|
|
open "PurchaseAttachmentConfirmation"; \
|
|
}
|
|
|
|
#define CLEAR_CAC_HINT \
|
|
exec "set ui_cac_weapon_hint_text @NULL_EMPTY;"
|
|
|
|
#define SET_OPTION_HINT \
|
|
if ( GetWeaponOptionUnlockPLevel( GetCurrentItemOption() ) > PRESTIGE ) \
|
|
{ \
|
|
exec set ui_cac_weapon_hint_text ( locString( CLASS_PRESTIGE_UNCLASSIFY_DESC, GetWeaponOptionUnlockPLevel( GetCurrentItemOption() ) ) ); \
|
|
} \
|
|
else \
|
|
{ \
|
|
CLEAR_CAC_HINT \
|
|
}
|
|
|
|
#define OPTION_LIST_ACTION( optionGroup ) \
|
|
if ( GetWeaponOptionUnlockPLevel( GetCurrentItemOption() ) <= PRESTIGE ) \
|
|
{ \
|
|
if ( isCurrentItemOptionPurchased() ) \
|
|
{ \
|
|
play CHOICE_ACTION_SOUND; \
|
|
execnow "equipclasscurrentoption ( dvarString( ui_custom_name ) ) "optionGroup; \
|
|
execnow ui_animate cac_weapon anim_controller CloseDropDownList 0; \
|
|
} \
|
|
elseif ( !isItemlocked( GetCurrentItemIndex() ) && ( GetWeaponOptionCost( GetCurrentItemOption() ) <= GetStatByName( "CODPOINTS" ) ) ) \
|
|
{ \
|
|
setDvar ui_optiongroup_name optionGroup; \
|
|
open "PurchaseCurrentWeaponOptionConfirmation"; \
|
|
} \
|
|
}
|
|
|
|
// Listboxes
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (SELECT_WEAPON_Y+WEAPON_BUTTON_HEIGHT)
|
|
ITEM_LISTBOX_EX( "weapon_group_list", FEEDER_WEAPON_GROUPS, WEAPON_GROUP_LIST_ACTION, CLEAR_CAC_HINT, ;, when( dvarString( "ui_inside_popup" ) == "select_weapon_group" ), COMMON_LIST_EX( WEAPON_GROUP_LIST_BUTTON_B_ACTION ) )
|
|
ITEM_LISTBOX_EX( "weapon_list", FEEDER_ITEMSINSLOTANDGROUP, WEAPON_LIST_ACTION, WEAPON_LIST_ONSELECTION, WEAPON_LIST_ONSELECTION, when( dvarString( "ui_inside_popup" ) == "select_weapon" ), COMMON_LIST_EX( WEAPON_LIST_BUTTON_B_ACTION ) )
|
|
|
|
#undef LIST_X_START
|
|
#define LIST_X_START (LEFT_X-3)
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (ATTACHMENTS_Y+WEAPON_BUTTON_HEIGHT)
|
|
#undef LIST_WIDTH
|
|
#define LIST_WIDTH (WEAPON_BUTTON_WIDTH+4)
|
|
ATTACHMENTS_LISTBOX_EX( "attachments_list", FEEDER_ATTACHMENTS, ATTACHMENTS_LIST_ACTION, ;, ;, when( dvarString( "ui_inside_popup" ) == "attachments" ), COMMON_LIST_EX( UPDATE_ATTACH_SLOT_TOP ) )
|
|
#undef LIST_X_START
|
|
#define LIST_X_START LEFT_X
|
|
|
|
#ifdef PC
|
|
#undef LIST_WIDTH
|
|
#define LIST_WIDTH (WEAPON_BUTTON_WIDTH+16)
|
|
#else //#ifdef PC
|
|
#undef LIST_WIDTH
|
|
#define LIST_WIDTH WEAPON_BUTTON_WIDTH
|
|
#endif //#ifdef PC
|
|
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (CAMO_Y+WEAPON_BUTTON_HEIGHT)
|
|
ITEM_LISTBOX_EX( "camo_list", FEEDER_WEAPONOPTIONS, OPTION_LIST_ACTION( "camo" ), SET_OPTION_HINT, SET_OPTION_HINT, when( dvarString( "ui_inside_popup" ) == "select_camo" ), COMMON_LIST_EX( ; ) )
|
|
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (RETICLE_Y+WEAPON_BUTTON_HEIGHT)
|
|
#ifdef PC
|
|
#undef LIST_WIDTH
|
|
#define LIST_WIDTH (WEAPON_BUTTON_WIDTH+16)
|
|
#endif //#ifdef PC
|
|
ITEM_LISTBOX_EX( "reticle_list", FEEDER_WEAPONOPTIONS, OPTION_LIST_ACTION( "reticle" ), ;, ;, when( dvarString( "ui_inside_popup" ) == "select_reticle" ), COMMON_LIST_EX( ; ) )
|
|
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (RETICLE_COLOR_Y+WEAPON_BUTTON_HEIGHT)
|
|
ITEM_LISTBOX_EX( "reticle_color_list", FEEDER_WEAPONOPTIONS, OPTION_LIST_ACTION( "reticlecolor" ), ;, ;, when( dvarString( "ui_inside_popup" ) == "select_reticle_color" ), COMMON_LIST_EX( ; ) )
|
|
|
|
#undef LIST_Y_START
|
|
#define LIST_Y_START (LENS_Y+WEAPON_BUTTON_HEIGHT)
|
|
ITEM_LISTBOX_EX( "lens_list", FEEDER_WEAPONOPTIONS, OPTION_LIST_ACTION( "lens" ), ;, ;, when( dvarString( "ui_inside_popup" ) == "select_lens" ), COMMON_LIST_EX( ; ) )
|
|
|
|
#define PLAYER_WEAPON_IMAGE_X 85
|
|
#define PLAYER_WEAPON_IMAGE_Y -130
|
|
#define PLAYER_WEAPON_CLASSIFIED_Y -180
|
|
#define PLAYER_WEAPON_IMAGE_WIDTH 180
|
|
#define PLAYER_WEAPON_IMAGE_HEIGHT 90
|
|
|
|
/* Camo */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( (PLAYER_WEAPON_IMAGE_X-10),
|
|
(PLAYER_WEAPON_IMAGE_Y-5),
|
|
( PLAYER_WEAPON_IMAGE_WIDTH+20 ),
|
|
(PLAYER_WEAPON_IMAGE_HEIGHT+10),
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
getWeaponOptionImage( STAT_CAC_PRIMARY_CAMO ), 1 1 1 1,
|
|
when( IS_PRI && ( dvarString(ui_inside_popup ) != "select_camo" || localVarInt( "ui_disable_controls" ) != 0 ) && dvarString(ui_inside_popup ) != "select_weapon" && dvarString(ui_inside_popup ) != "select_weapon_group"),
|
|
; )
|
|
/* Camo when camo list open */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( (PLAYER_WEAPON_IMAGE_X-10),
|
|
(PLAYER_WEAPON_IMAGE_Y-5),
|
|
( PLAYER_WEAPON_IMAGE_WIDTH+20 ),
|
|
(PLAYER_WEAPON_IMAGE_HEIGHT+10),
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
getWeaponOptionImage( GetCurrentItemOption() ), 1 1 1 1,
|
|
when ( ( IS_PRI && dvarString(ui_inside_popup ) == "select_camo" && dvarString(ui_inside_popup ) != "select_weapon" && dvarString(ui_inside_popup ) != "select_weapon_group" && localVarInt( "ui_disable_controls" ) == 0 ) &&
|
|
( GetWeaponOptionUnlockPLevel( GetCurrentItemOption() ) <= PRESTIGE ) ), ; )
|
|
/* Weapon Image when not selecting weapon */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( PLAYER_WEAPON_IMAGE_X,
|
|
PLAYER_WEAPON_IMAGE_Y,
|
|
( PLAYER_WEAPON_IMAGE_WIDTH ),
|
|
PLAYER_WEAPON_IMAGE_HEIGHT,
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GET_SLOT_STAT ), 1 1 1 1,
|
|
when( dvarString(ui_inside_popup ) != "select_weapon" ),
|
|
; )
|
|
/* Weapon Image when inside weapon list */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( PLAYER_WEAPON_IMAGE_X,
|
|
PLAYER_WEAPON_IMAGE_Y,
|
|
( PLAYER_WEAPON_IMAGE_WIDTH ),
|
|
PLAYER_WEAPON_IMAGE_HEIGHT,
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 1 1 1 1,
|
|
when( !IsCurrentItemClassified() && dvarString(ui_inside_popup ) == "select_weapon" ),
|
|
; )
|
|
/* Dark Weapon Image when inside weapon list and weapon is classified */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( PLAYER_WEAPON_IMAGE_X,
|
|
PLAYER_WEAPON_IMAGE_Y,
|
|
( PLAYER_WEAPON_IMAGE_WIDTH ),
|
|
PLAYER_WEAPON_IMAGE_HEIGHT,
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 0 0 0 0.8,
|
|
when( !isCurrentItemPurchased() && IsCurrentItemClassified() && dvarString(ui_inside_popup ) == "select_weapon" ),
|
|
; )
|
|
/* classified image when inside weapon list and weapon is classified */
|
|
PREPROC_SHADER_DRAW_ADV_VIS_EX( PLAYER_WEAPON_IMAGE_X,
|
|
PLAYER_WEAPON_CLASSIFIED_Y,
|
|
PLAYER_WEAPON_IMAGE_WIDTH,
|
|
PLAYER_WEAPON_IMAGE_WIDTH,
|
|
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
"menu_mp_lobby_classified", 1 1 1 1,
|
|
when( !isCurrentItemPurchased() && IsCurrentItemClassified() && dvarString(ui_inside_popup ) == "select_weapon" ),
|
|
; )
|
|
|
|
#define CURRENT_ATTACHMENT_VIS \
|
|
(dvarString( ui_inside_popup ) == "attachments")
|
|
|
|
#define HAS_X_ATTACHMENTS( minAttachments ) \
|
|
( GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), GET_SLOT_STAT ) >= minAttachments )
|
|
|
|
#define GET_ITEM_EQUIPPED_ATTACHMENT( index ) \
|
|
( GetItemEquippedAttachment( dvarString( ui_custom_name ), GET_SLOT_STAT, index ) )
|
|
|
|
#define LOADOUT_SUMMARY_VIS ( ( dvarString( ui_inside_popup ) != "select_weapon" ) && \
|
|
( dvarString( ui_inside_popup ) != "attachments" ) )
|
|
|
|
#define LOADOUT_SUMMARY_WIDTH PLAYER_WEAPON_IMAGE_WIDTH
|
|
#define LOADOUT_SUMMARY_ICON_WIDTH 32
|
|
#define LOADOUT_SUMMARY_ICON_HEIGHT LOADOUT_SUMMARY_ICON_WIDTH
|
|
#define LOADOUT_SUMMARY_X PLAYER_WEAPON_IMAGE_X
|
|
#define LOADOUT_SUMMARY_Y (PLAYER_WEAPON_IMAGE_Y+PLAYER_WEAPON_IMAGE_HEIGHT-LOADOUT_SUMMARY_ICON_HEIGHT/2+2)
|
|
#define LOADOUT_ATTACHMENT1_X (LOADOUT_SUMMARY_X+16)
|
|
#define LOADOUT_ATTACHMENT2_X (LOADOUT_SUMMARY_X+LOADOUT_SUMMARY_WIDTH-16)
|
|
#define LOADOUT_LENS_ICON_WIDTH 29
|
|
#define LOADOUT_LENS_ICON_HEIGHT LOADOUT_LENS_ICON_WIDTH
|
|
#define LOADOUT_RETICLE_ICON_WIDTH 20
|
|
#define LOADOUT_RETICLE_ICON_HEIGHT LOADOUT_RETICLE_ICON_WIDTH
|
|
#define LOADOUT_SUMMARY_VERT_SPACING 7
|
|
#define LOADOUT_SUMMARY_TEXT_X( imageX ) ( imageX+LOADOUT_SUMMARY_ICON_WIDTH+5 )
|
|
#define LOADOUT_SUMMARY_TEXT_WIDTH (LOADOUT_SUMMARY_WIDTH-LOADOUT_SUMMARY_ICON_WIDTH-10)
|
|
#define WEAPON_NAME_X 90
|
|
#define WEAPON_NAME_Y ( PLAYER_WEAPON_IMAGE_Y + PLAYER_WEAPON_IMAGE_HEIGHT + 15 )
|
|
#define WEAPON_GROUP_NAME_Y ( WEAPON_NAME_Y + 20 )
|
|
|
|
/* Weapon Name */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_NAME_X WEAPON_NAME_Y 170 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
|
toUpper( locString( "@"+GetCurrentItemName() ) ),
|
|
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, NEW_FRAME_COMMON_TEXT_COLOR,
|
|
when( !IsCurrentItemClassified() && LOADOUT_SUMMARY_VIS );, ; )
|
|
|
|
/* Underline Image */
|
|
PREPROC_SHADER_DRAW_VIS_EX( PLAYER_WEAPON_IMAGE_X (WEAPON_NAME_Y-3) PLAYER_WEAPON_IMAGE_WIDTH 16 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
"menu_mp_lobby_cac_line_2_prong", 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && !LENSESORRETICLES_AVAILABLE );, ; )
|
|
PREPROC_SHADER_DRAW_VIS_EX( PLAYER_WEAPON_IMAGE_X (WEAPON_NAME_Y-3) PLAYER_WEAPON_IMAGE_WIDTH 16 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
"menu_mp_lobby_cac_line_2_prong_left", 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && LENSESORRETICLES_AVAILABLE );, ; )
|
|
|
|
/* Attachment 1 Name */
|
|
/*PREPROC_TEXT_DRAW_VIS_EX( (LOADOUT_SUMMARY_TEXT_X(LOADOUT_SUMMARY_X)) LOADOUT_SUMMARY_Y LOADOUT_SUMMARY_TEXT_WIDTH LOADOUT_SUMMARY_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
|
"@" + GetAttachmentName( GET_ITEM_EQUIPPED_ATTACHMENT( 0 ) ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 1 ) );, autoWrapped; )*/
|
|
/* Attachment 1 Image */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT1_X-LOADOUT_SUMMARY_ICON_WIDTH/2) LOADOUT_SUMMARY_Y LOADOUT_SUMMARY_ICON_WIDTH LOADOUT_SUMMARY_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetAttachmentImage( GET_ITEM_EQUIPPED_ATTACHMENT( 0 ) ), 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 1 ) && GetAttachmentName( GET_ITEM_EQUIPPED_ATTACHMENT( 0 ) ) != MPUI_DW );, ; )
|
|
/* Attachment 1 DW Images */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT1_X-LOADOUT_SUMMARY_ICON_WIDTH/2+6) (LOADOUT_SUMMARY_Y+3) LOADOUT_SUMMARY_ICON_WIDTH (LOADOUT_SUMMARY_ICON_HEIGHT/2) HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 0.6 0.6 0.6 0.6,
|
|
when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 1 ) && GetAttachmentName( GET_ITEM_EQUIPPED_ATTACHMENT( 0 ) ) == MPUI_DW );, rotation 45; )
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT1_X-LOADOUT_SUMMARY_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+3) LOADOUT_SUMMARY_ICON_WIDTH (LOADOUT_SUMMARY_ICON_HEIGHT/2) HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 1 ) && GetAttachmentName( GET_ITEM_EQUIPPED_ATTACHMENT( 0 ) ) == MPUI_DW );, rotation 45; )
|
|
|
|
/* Lens Backing */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT1_X-LOADOUT_LENS_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_LENS_ICON_HEIGHT/2) LOADOUT_LENS_ICON_WIDTH LOADOUT_LENS_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
"menu_mp_weapons_attach_lens", 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && LENSESORRETICLES_AVAILABLE );, ; )
|
|
|
|
/* Reticle Image For Summary */
|
|
PREPROC_OWNERDRAW_ALL( (LOADOUT_ATTACHMENT1_X-LOADOUT_RETICLE_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_RETICLE_ICON_HEIGHT/2) LOADOUT_RETICLE_ICON_WIDTH LOADOUT_RETICLE_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
1 1 1 1, UI_RETICLE_PREVIEW, when( LOADOUT_SUMMARY_VIS && LENSESORRETICLES_AVAILABLE && !CUSTOMIZING_RETICLE && !CUSTOMIZING_RETICLE_COLOR );,
|
|
exp ownerdata( GetWeaponOptionImage( GetWeaponOptionGroupIndex( STAT_CAC_PRIMARY_RETICLE, 1 ) ), STAT_CAC_PRIMARY_RETICLE_COLOR ); )
|
|
/* Reticle Image While Customizing Reticle */
|
|
PREPROC_OWNERDRAW_ALL( (LOADOUT_ATTACHMENT1_X-LOADOUT_RETICLE_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_RETICLE_ICON_HEIGHT/2) LOADOUT_RETICLE_ICON_WIDTH LOADOUT_RETICLE_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
1 1 1 1, UI_RETICLE_PREVIEW, when( LOADOUT_SUMMARY_VIS && CUSTOMIZING_RETICLE );,
|
|
exp ownerdata( GetWeaponOptionImage( GetCurrentItemOption() ), STAT_CAC_PRIMARY_RETICLE_COLOR ); )
|
|
/* Reticle Image While Customizing Reticle Color */
|
|
PREPROC_OWNERDRAW_ALL( (LOADOUT_ATTACHMENT1_X-LOADOUT_RETICLE_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_RETICLE_ICON_HEIGHT/2) LOADOUT_RETICLE_ICON_WIDTH LOADOUT_RETICLE_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
1 1 1 1, UI_RETICLE_PREVIEW, when( LOADOUT_SUMMARY_VIS && CUSTOMIZING_RETICLE_COLOR );,
|
|
exp ownerdata( GetWeaponOptionImage( GetWeaponOptionGroupIndex( STAT_CAC_PRIMARY_RETICLE, 1 ) ), GetCurrentItemOption() - GetWeaponOptionGroupIndex( 0, 5 ) ); )
|
|
|
|
/* Lens Image For Summary */
|
|
PREPROC_OWNERDRAW_ALL( (LOADOUT_ATTACHMENT1_X-LOADOUT_LENS_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_LENS_ICON_HEIGHT/2) LOADOUT_LENS_ICON_WIDTH LOADOUT_LENS_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
1 1 1 1, UI_LENS_PREVIEW, when( LOADOUT_SUMMARY_VIS && LENSESORRETICLES_AVAILABLE && !CUSTOMIZING_LENS );,
|
|
exp ownerdata( "menu_mp_weapons_color_lens", STAT_CAC_PRIMARY_LENS ); )
|
|
/* Lens Image While Customizing Lens */
|
|
PREPROC_OWNERDRAW_ALL( (LOADOUT_ATTACHMENT1_X-LOADOUT_LENS_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_LENS_ICON_HEIGHT/2) LOADOUT_LENS_ICON_WIDTH LOADOUT_LENS_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
1 1 1 1, UI_LENS_PREVIEW, when( LOADOUT_SUMMARY_VIS && CAN_GUN_HAVE_CUSTOM_RETICLE && CUSTOMIZING_LENS );,
|
|
exp ownerdata( "menu_mp_weapons_color_lens", GetCurrentItemOption() - GetWeaponOptionGroupIndex( 0, 2 ) ); )
|
|
/* Lens Highlight */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT1_X-LOADOUT_LENS_ICON_WIDTH/2) (LOADOUT_SUMMARY_Y+LOADOUT_SUMMARY_ICON_HEIGHT+LOADOUT_SUMMARY_VERT_SPACING+LOADOUT_SUMMARY_ICON_HEIGHT/2-LOADOUT_LENS_ICON_HEIGHT/2) LOADOUT_LENS_ICON_WIDTH LOADOUT_LENS_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
"menu_mp_weapons_lens_hilight", 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && LENSESORRETICLES_AVAILABLE );, ; )
|
|
|
|
/* Attachment 2 Name */
|
|
/*PREPROC_TEXT_DRAW_VIS_EX( (LOADOUT_SUMMARY_TEXT_X(LOADOUT_SUMMARY_X+LOADOUT_SUMMARY_WIDTH/2)) LOADOUT_SUMMARY_Y LOADOUT_SUMMARY_TEXT_WIDTH LOADOUT_SUMMARY_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
|
"@" + GetAttachmentName( GET_ITEM_EQUIPPED_ATTACHMENT( 1 ) ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 2 ) );, autoWrapped; )*/
|
|
/* Attachment 2 Image */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (LOADOUT_ATTACHMENT2_X-LOADOUT_SUMMARY_ICON_WIDTH/2) LOADOUT_SUMMARY_Y LOADOUT_SUMMARY_ICON_WIDTH LOADOUT_SUMMARY_ICON_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetAttachmentImage( GET_ITEM_EQUIPPED_ATTACHMENT( 1 ) ), 1 1 1 1,
|
|
when( LOADOUT_SUMMARY_VIS && HAS_X_ATTACHMENTS( 2 ) );, ; )
|
|
|
|
#define CURRENT_ATTACHMENT_NAME_X PLAYER_WEAPON_IMAGE_X
|
|
#define CURRENT_ATTACHMENT_NAME_Y (PLAYER_WEAPON_IMAGE_Y+PLAYER_WEAPON_IMAGE_HEIGHT+5)
|
|
#define CURRENT_ATTACHMENT_NAME_WIDTH PLAYER_WEAPON_IMAGE_WIDTH
|
|
#define CURRENT_ATTACHMENT_NAME_HEIGHT 32
|
|
|
|
/* Weapon Attachment Name */
|
|
PREPROC_TEXT_DRAW_VIS_EX( CURRENT_ATTACHMENT_NAME_X CURRENT_ATTACHMENT_NAME_Y CURRENT_ATTACHMENT_NAME_WIDTH CURRENT_ATTACHMENT_NAME_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
|
"@" + GetCurrentItemAttachmentName() + "_CAPS",
|
|
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, NEW_FRAME_COMMON_TEXT_COLOR,
|
|
when( CURRENT_ATTACHMENT_VIS && !IsCurrentItemClassified() ),
|
|
autoWrapped; )
|
|
|
|
#define CURRENT_ATTACHMENT_IMAGE_WIDTH 50
|
|
#define CURRENT_ATTACHMENT_IMAGE_HEIGHT 50
|
|
#define CURRENT_ATTACHMENT_IMAGE_X (CURRENT_ATTACHMENT_NAME_X+CURRENT_ATTACHMENT_NAME_WIDTH/2 - CURRENT_ATTACHMENT_IMAGE_WIDTH/2 )
|
|
#define CURRENT_ATTACHMENT_IMAGE_Y (CURRENT_ATTACHMENT_NAME_Y+25)
|
|
|
|
/* Weapon Attachment Image */
|
|
PREPROC_SHADER_DRAW_VIS_EX( CURRENT_ATTACHMENT_IMAGE_X CURRENT_ATTACHMENT_IMAGE_Y CURRENT_ATTACHMENT_IMAGE_WIDTH CURRENT_ATTACHMENT_IMAGE_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetAttachmentImage( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ), 1 1 1 1,
|
|
when( CURRENT_ATTACHMENT_VIS && !IsCurrentItemClassified() && GetAttachmentName( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ) != MPUI_DW ), ; )
|
|
/* Weapon Attachment DW Images */
|
|
PREPROC_SHADER_DRAW_VIS_EX( (CURRENT_ATTACHMENT_IMAGE_X+5) (CURRENT_ATTACHMENT_IMAGE_Y+10) CURRENT_ATTACHMENT_IMAGE_WIDTH (CURRENT_ATTACHMENT_IMAGE_HEIGHT/2) HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 0.6 0.6 0.6 0.6,
|
|
when( CURRENT_ATTACHMENT_VIS && !IsCurrentItemClassified() && GetAttachmentName( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ) == MPUI_DW ), rotation 45 )
|
|
PREPROC_SHADER_DRAW_VIS_EX( (CURRENT_ATTACHMENT_IMAGE_X-5) (CURRENT_ATTACHMENT_IMAGE_Y+10) CURRENT_ATTACHMENT_IMAGE_WIDTH (CURRENT_ATTACHMENT_IMAGE_HEIGHT/2) HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
|
GetItemImage( GetCurrentItemIndex() ), 1 1 1 1,
|
|
when( CURRENT_ATTACHMENT_VIS && !IsCurrentItemClassified() && GetAttachmentName( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ) == MPUI_DW ), rotation 45 )
|
|
|
|
#define CURRENT_ATTACHMENT_DESC_X CURRENT_ATTACHMENT_NAME_X
|
|
#define CURRENT_ATTACHMENT_DESC_Y (CURRENT_ATTACHMENT_IMAGE_Y+CURRENT_ATTACHMENT_IMAGE_HEIGHT+5)
|
|
#define CURRENT_ATTACHMENT_DESC_WIDTH CURRENT_ATTACHMENT_NAME_WIDTH
|
|
#define CURRENT_ATTACHMENT_DESC_HEIGHT 20
|
|
|
|
PREPROC_TEXT_DRAW_VIS_EX( CURRENT_ATTACHMENT_DESC_X CURRENT_ATTACHMENT_DESC_Y CURRENT_ATTACHMENT_DESC_WIDTH CURRENT_ATTACHMENT_DESC_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
|
"@" + GetCurrentItemAttachmentDesc(),
|
|
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, CHOICE_TEXTCOLOR,
|
|
when( CURRENT_ATTACHMENT_VIS && !IsCurrentItemClassified() ), autoWrapped; )
|
|
|
|
#define WEAPON_STAT_NAMES_X 95
|
|
#define WEAPON_STATS_X (WEAPON_STAT_NAMES_X+110)
|
|
#define WEAPON_DESC_WIDTH ( CAC_WIDTH/2 - 25 )
|
|
#define WEAPON_STATS_Y 85
|
|
|
|
#define GET_WEAPON_STAT( statName ) \
|
|
getDStat( "ItemStats", GetCurrentItemIndex(), "stats", statName, "statValue" )
|
|
|
|
#define WEAPON_KDRATIO \
|
|
GET_WEAPON_STAT( "kills" ) / max( 1, GET_WEAPON_STAT( "deathsDuringUse" ) )
|
|
|
|
#define WEAPON_ACCURACY \
|
|
( ( GET_WEAPON_STAT( "hits" ) / max( 1, GET_WEAPON_STAT( "shots" ) ) ) * 100 )
|
|
|
|
#define WEAPON_STAT_SPACING 17
|
|
|
|
#define GUN_STATS_VIS when( dvarBool( ui_cac_gun_attributes_vis ) && !IsCurrentItemClassified() )
|
|
|
|
/* WEAPON STAT NAMES */
|
|
/* Weapon kdratio */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STAT_NAMES_X WEAPON_STATS_Y 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_KILL_DEATH_RATIO_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, GUN_STATS_VIS, ; )
|
|
/* Weapon accuracy */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STAT_NAMES_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_ACCURACY_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, GUN_STATS_VIS, ; )
|
|
/* Weapon kills */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STAT_NAMES_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_KILLS_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, GUN_STATS_VIS, ; )
|
|
/* Weapon deaths */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STAT_NAMES_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*3) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_DEATHS_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, GUN_STATS_VIS, ; )
|
|
/* Weapon headshots */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STAT_NAMES_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*4) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_HEADSHOTS_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, GUN_STATS_VIS, ; )
|
|
|
|
/* WEAPON STATS */
|
|
/* Weapon kdratio */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STATS_X WEAPON_STATS_Y 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, getFloatAsFormattedString( WEAPON_KDRATIO, 2 ) , TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, GUN_STATS_VIS, ; )
|
|
/* Weapon accuracy */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STATS_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, getFloatAsFormattedString( WEAPON_ACCURACY, 2 ) + " %", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, GUN_STATS_VIS, ; )
|
|
/* Weapon kills */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STATS_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, GET_WEAPON_STAT( "kills" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, GUN_STATS_VIS, ; )
|
|
/* Weapon deaths */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STATS_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*3) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, GET_WEAPON_STAT( "deathsDuringUse" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, GUN_STATS_VIS, ; )
|
|
/* Weapon headshots */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_STATS_X (WEAPON_STATS_Y+WEAPON_STAT_SPACING*4) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, GET_WEAPON_STAT( "headshots" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, GUN_STATS_VIS, ; )
|
|
|
|
#define GUN_ATTRIBUTES_VIS ( !dvarBool( ui_cac_gun_attributes_vis ) && !IsCurrentItemClassified() )
|
|
|
|
#define WEAPON_ATTRIBUTE_NAMES_X WEAPON_STAT_NAMES_X
|
|
#define WEAPON_ATTRIBUTE_BAR_X (WEAPON_ATTRIBUTE_NAMES_X+60)
|
|
#define WEAPON_ATTRIBUTE_BAR_HEIGHT 9
|
|
#define WEAPON_ATTRIBUTE_BAR_WIDTH (WEAPON_ATTRIBUTE_BAR_HEIGHT*10)
|
|
|
|
#define ATTRIBUTES_TABLE_COL_REF 1
|
|
#define ATTRIBUTES_TABLE_COL_ACCURACY 2
|
|
#define ATTRIBUTES_TABLE_COL_DAMAGE 3
|
|
#define ATTRIBUTES_TABLE_COL_RANGE 4
|
|
#define ATTRIBUTES_TABLE_COL_FIRE_RATE 5
|
|
#define ATTRIBUTES_TABLE_COL_MOBILITY 6
|
|
#define ATTRIBUTES_TABLE_COL_FIRE_TYPE 8
|
|
|
|
/* WEAPON ATTRIBUTES */
|
|
#define DAMAGE_BAR_Y (WEAPON_STATS_Y+2)
|
|
/* Weapon damage label */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_NAMES_X (DAMAGE_BAR_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_DAMAGE_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( GUN_ATTRIBUTES_VIS ), ; )
|
|
/* Weapon damage bar */
|
|
itemDef
|
|
{
|
|
name "damageBar"
|
|
type ITEM_TYPE_OWNERDRAW
|
|
rect WEAPON_ATTRIBUTE_BAR_X DAMAGE_BAR_Y WEAPON_ATTRIBUTE_BAR_WIDTH WEAPON_ATTRIBUTE_BAR_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
forecolor 1 1 1 1
|
|
ownerdraw UI_DRAW_ATTRIBUTE_BAR
|
|
dvar ui_numBarPartitions
|
|
exp ownerdata( ATTRIBUTES_TABLE_COL_DAMAGE );
|
|
visible when( GUN_ATTRIBUTES_VIS )
|
|
decoration
|
|
}
|
|
|
|
#define RANGE_BAR_Y (DAMAGE_BAR_Y+WEAPON_STAT_SPACING)
|
|
/* Weapon range label */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_NAMES_X (RANGE_BAR_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_RANGE_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( GUN_ATTRIBUTES_VIS ), ; )
|
|
/* Weapon damage bar */
|
|
itemDef
|
|
{
|
|
name "rangeBar"
|
|
type ITEM_TYPE_OWNERDRAW
|
|
rect WEAPON_ATTRIBUTE_BAR_X RANGE_BAR_Y WEAPON_ATTRIBUTE_BAR_WIDTH WEAPON_ATTRIBUTE_BAR_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
forecolor 1 1 1 1
|
|
ownerdraw UI_DRAW_ATTRIBUTE_BAR
|
|
dvar ui_numBarPartitions
|
|
exp ownerdata( ATTRIBUTES_TABLE_COL_RANGE );
|
|
visible when( GUN_ATTRIBUTES_VIS )
|
|
decoration
|
|
}
|
|
|
|
#define ACCURACY_BAR_Y (RANGE_BAR_Y+WEAPON_STAT_SPACING)
|
|
/* Weapon accuracy label */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_NAMES_X (ACCURACY_BAR_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_ACCURACY_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( GUN_ATTRIBUTES_VIS ), ; )
|
|
/* Weapon accuracy bar */
|
|
itemDef
|
|
{
|
|
name "accuracyBar"
|
|
type ITEM_TYPE_OWNERDRAW
|
|
rect WEAPON_ATTRIBUTE_BAR_X ACCURACY_BAR_Y WEAPON_ATTRIBUTE_BAR_WIDTH WEAPON_ATTRIBUTE_BAR_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
forecolor 1 1 1 1
|
|
ownerdraw UI_DRAW_ATTRIBUTE_BAR
|
|
dvar ui_numBarPartitions
|
|
exp ownerdata( ATTRIBUTES_TABLE_COL_ACCURACY );
|
|
visible when( GUN_ATTRIBUTES_VIS )
|
|
decoration
|
|
}
|
|
|
|
#define MOBILITY_BAR_Y (ACCURACY_BAR_Y+WEAPON_STAT_SPACING)
|
|
/* Weapon mobility label */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_NAMES_X (MOBILITY_BAR_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_MOBILITY_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( GUN_ATTRIBUTES_VIS ), ; )
|
|
/* Weapon mobility bar */
|
|
itemDef
|
|
{
|
|
name "mobilityBar"
|
|
type ITEM_TYPE_OWNERDRAW
|
|
rect WEAPON_ATTRIBUTE_BAR_X MOBILITY_BAR_Y WEAPON_ATTRIBUTE_BAR_WIDTH WEAPON_ATTRIBUTE_BAR_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
forecolor 1 1 1 1
|
|
ownerdraw UI_DRAW_ATTRIBUTE_BAR
|
|
dvar ui_numBarPartitions
|
|
exp ownerdata( ATTRIBUTES_TABLE_COL_MOBILITY );
|
|
visible when( GUN_ATTRIBUTES_VIS )
|
|
decoration
|
|
}
|
|
|
|
#ifndef PC
|
|
// 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 )
|
|
#endif
|
|
|
|
#define WEAPON_FIRE_TYPE \
|
|
tablelookup( "mp/attributesTable.csv", ATTRIBUTES_TABLE_COL_REF, GetItemRef( GetCurrentItemIndex() ), ATTRIBUTES_TABLE_COL_FIRE_TYPE )
|
|
|
|
#define FULL_AUTO_ATTACHMENT \
|
|
( ( ( GetAttachmentName( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ) == "MPUI_AUTO" ) && ( IS_ATTACHMENT_LIST_OPEN ) ) || ( ( GetAttachmentName( GetItemEquippedAttachment( dvarString( ui_custom_name ), GET_SLOT_STAT, 0 ) ) == "MPUI_AUTO" ) && ( IS_NO_LIST_OPEN ) ) )
|
|
|
|
|
|
#define FIRE_RATE_Y (MOBILITY_BAR_Y+WEAPON_STAT_SPACING)
|
|
/* Weapon FIRE RATE */
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_NAMES_X (FIRE_RATE_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_FIRE_RATE_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_COMMON_TEXT_COLOR, when( GUN_ATTRIBUTES_VIS ), ; )
|
|
/* Weapon fire rate bar shown only when weapon is full auto */
|
|
itemDef
|
|
{
|
|
name "fireRateBar"
|
|
type ITEM_TYPE_OWNERDRAW
|
|
rect WEAPON_ATTRIBUTE_BAR_X FIRE_RATE_Y WEAPON_ATTRIBUTE_BAR_WIDTH WEAPON_ATTRIBUTE_BAR_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
forecolor 1 1 1 1
|
|
ownerdraw UI_DRAW_ATTRIBUTE_BAR
|
|
dvar ui_numBarPartitions
|
|
exp ownerdata( ATTRIBUTES_TABLE_COL_FIRE_RATE );
|
|
visible when( GUN_ATTRIBUTES_VIS && WEAPON_FIRE_TYPE == "MPUI_FULL_AUTO" )
|
|
decoration
|
|
}
|
|
|
|
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_BAR_X (FIRE_RATE_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@"+WEAPON_FIRE_TYPE, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, when( GUN_ATTRIBUTES_VIS && WEAPON_FIRE_TYPE != "MPUI_FULL_AUTO" && !FULL_AUTO_ATTACHMENT ), ; )
|
|
PREPROC_TEXT_DRAW_VIS_EX( WEAPON_ATTRIBUTE_BAR_X (FIRE_RATE_Y-2) 10 10 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_FULL_AUTO", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1, when( GUN_ATTRIBUTES_VIS && WEAPON_FIRE_TYPE != "MPUI_FULL_AUTO" && FULL_AUTO_ATTACHMENT ), ; )
|
|
|
|
#define TOGGLE_ATTRIBUTES_AND_STATS \
|
|
if( dvarBool( ui_cac_gun_attributes_vis ) ) \
|
|
{ \
|
|
setDvar ui_cac_gun_attributes_vis 0; } \
|
|
else \
|
|
{ \
|
|
setDvar ui_cac_gun_attributes_vis 1; \
|
|
}
|
|
|
|
// Gun Stats
|
|
#ifdef PC
|
|
#undef CHOICE_TEXTSIZE
|
|
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
|
|
|
#undef CHOICE_TEXTFONT
|
|
#define CHOICE_TEXTFONT UI_FONT_NORMAL
|
|
|
|
#define BUTTON_SPACING 20
|
|
#define GUN_STATS_BUTTON_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
|
|
|
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( CAC_WIDTH, CAC_HEIGHT, GUN_STATS_BUTTON_OFFSET, "@PLATFORM_GUN_STATS", TOGGLE_ATTRIBUTES_AND_STATS, when( !dvarBool( ui_cac_gun_attributes_vis ) ) )
|
|
#else // #ifdef PC
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_BUTTON
|
|
rect 180 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
text "@PLATFORM_GUN_STATS"
|
|
textfont CHOICE_TEXTFONT
|
|
textscale TEXTSIZE_DEFAULT
|
|
textalign ITEM_ALIGN_BOTTOM_LEFT
|
|
execkeyint BUTTON_BACK { TOGGLE_ATTRIBUTES_AND_STATS }
|
|
visible when( !dvarBool( ui_cac_gun_attributes_vis ) )
|
|
decoration
|
|
}
|
|
#endif // #ifdef PC
|
|
|
|
// Gun Attributes
|
|
#ifdef PC
|
|
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( CAC_WIDTH, CAC_HEIGHT, GUN_STATS_BUTTON_OFFSET, "@PLATFORM_GUN_ATTRIBUTES", TOGGLE_ATTRIBUTES_AND_STATS, when( dvarBool( ui_cac_gun_attributes_vis ) ) )
|
|
#else // #ifdef PC
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_BUTTON
|
|
rect 180 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
text "@PLATFORM_GUN_ATTRIBUTES"
|
|
textfont CHOICE_TEXTFONT
|
|
textscale TEXTSIZE_DEFAULT
|
|
textalign ITEM_ALIGN_BOTTOM_LEFT
|
|
execkeyint BUTTON_BACK { TOGGLE_ATTRIBUTES_AND_STATS }
|
|
visible when( dvarBool( ui_cac_gun_attributes_vis ) )
|
|
decoration
|
|
}
|
|
#endif // #ifdef PC
|
|
|
|
#define ANY_ATTACHMENTS_EQUIPPED \
|
|
( ( GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), STAT_CAC_PRIMARY ) > 0 ) || ( GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), STAT_CAC_SECONDARY ) > 0 ) )
|
|
|
|
#define CLEAR_ATTACHMENTS_ACTION \
|
|
play CHOICE_FOCUS_SOUND; \
|
|
execnow clearAllAttachmentsForItem ( dvarString( ui_custom_name ) ) ( getCurrentItemIndex() ) ;
|
|
|
|
#ifdef PC
|
|
NEW_FRAME_BUTTON_PC_RIGHT_OFFSET( CAC_WIDTH, CAC_HEIGHT, 0, "@PLATFORM_CLEAR_ATTACHMENTS", CLEAR_ATTACHMENTS_ACTION, when( dvarString( ui_inside_popup ) == "attachments" && ANY_ATTACHMENTS_EQUIPPED ) )
|
|
#else // #ifdef PC
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_BUTTON
|
|
rect -165 ( CAC_HEIGHT / 2 ) 120 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
|
text "@PLATFORM_CLEAR_ATTACHMENTS"
|
|
textfont CHOICE_TEXTFONT
|
|
textscale TEXTSIZE_DEFAULT
|
|
textalign ITEM_ALIGN_MIDDLE_LEFT
|
|
execKeyInt BUTTON_Y { play CHOICE_FOCUS_SOUND; CLEAR_ATTACHMENTS_ACTION }
|
|
visible when( dvarString( ui_inside_popup ) == "attachments" && ANY_ATTACHMENTS_EQUIPPED )
|
|
decoration
|
|
}
|
|
#endif // #ifdef PC
|
|
|
|
#ifdef PC
|
|
// back button
|
|
NEW_FRAME_BACK_BUTTON_ACTION( CAC_WIDTH, CAC_HEIGHT, ON_ESC )
|
|
#else // #ifdef PC
|
|
NEW_FRAME_BACK_BUTTON( CAC_WIDTH, CAC_HEIGHT )
|
|
#endif // #ifdef PC
|
|
|
|
}
|
|
}
|
|
|
|
|