mirror of
https://github.com/ineedbots/t5_bot_warfare.git
synced 2025-04-21 17:15:42 +00:00
316 lines
11 KiB
Plaintext
316 lines
11 KiB
Plaintext
// CONSOLE HUD - MP
|
|
|
|
#include "ui/menudef.h"
|
|
#include "ui/framestyle.inc"
|
|
#include "ui_mp/hud_gametypes.inc"
|
|
|
|
#define BAR_START_X 42
|
|
#define BAR_START_Y -42
|
|
#define BAR_HEIGHT 39
|
|
#define BAR_WIDTH 143
|
|
#define BAR_HEIGHT_TOP 20
|
|
#define BAR_HEIGHT_BOTTOM 16
|
|
|
|
#define BAR_PERCENT_TEAM ( max( team( score ), 0 ) / dvarInt( "ui_scorelimit" ) )
|
|
#define BAR_PRECENT_OTHERTEAM ( max( otherteam( score ), 0 ) / dvarInt( "ui_scorelimit" ) )
|
|
|
|
#define FSM_VISIBILITY ( isVisibilityBitSet( BIT_SELECTING_LOCATION ) && !isVisibilityBitSet( BIT_SPECTATING_CLIENT ) && !isVisibilityBitSet( BIT_SCOREBOARD_OPEN ) )
|
|
|
|
{
|
|
menuDef
|
|
{
|
|
name "scorebars_team_background"
|
|
rect BOTTOM_RECT_X BOTTOM_RECT_Y 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
|
exp rect Y( BOTTOM_RECT_Y - (ONLINEGAME * ONLINEGAME_OFFSET) );
|
|
fullScreen 0
|
|
visible when( !FSM_VISIBILITY )
|
|
visibilityBits bits( BIT_HUD_VISIBLE !BIT_IN_KILLCAM !BIT_UI_ACTIVE HUD_VISIBILITY !BIT_IN_GUIDED_MISSILE !BIT_IN_GUIDED_MISSILE_STATIC SHOULD_DISPLAY_SCOREBAR )
|
|
|
|
#define BG_OFFSET_X (-15)
|
|
#define BG_OFFSET_Y (-5)
|
|
#define BG_START_X (BAR_START_X+BG_OFFSET_X)
|
|
#define BG_START_Y (BAR_START_Y+BG_OFFSET_Y)
|
|
|
|
// score background
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect BG_START_X BG_START_Y 187 46 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp material( "hud_frame_faction_fade" );
|
|
forecolor 1 1 1 0.5
|
|
visible 1
|
|
decoration
|
|
}
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect (BAR_START_X-69) (BG_START_Y-14) 240 59 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp material( "hud_frame_faction_lines" );
|
|
forecolor 1 1 1 0.4
|
|
visible 1
|
|
decoration
|
|
}
|
|
|
|
#define PROGRESS_OFFSET_X 47
|
|
|
|
// Player team progress bar
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect BAR_START_X -42 70 BAR_HEIGHT_TOP HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect W( PROGRESS_OFFSET_X + (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PERCENT_TEAM );
|
|
exp material( "hud_score_progress" );
|
|
forecolor 0.42 0.68 0.46 0.8
|
|
visible when( dvarInt( "ui_scorelimit" ) != 0 && team( score ) > 0 )
|
|
decoration
|
|
}
|
|
|
|
// Other team progress bar
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect BAR_START_X -20 70 BAR_HEIGHT_BOTTOM HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect W( PROGRESS_OFFSET_X + (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PRECENT_OTHERTEAM );
|
|
exp material( "hud_score_progress" );
|
|
forecolor 0.73 0.29 0.19 0.8
|
|
visible when( dvarInt( "ui_scorelimit" ) != 0 && otherteam( score ) > 0 )
|
|
decoration
|
|
}
|
|
|
|
// FACTION ICONS
|
|
#define FACTION_ICON_WIDTH 64
|
|
#define FACTION_ICON_HEIGHT FACTION_ICON_WIDTH
|
|
#define FACTION_BG_WIDTH 92
|
|
#define FACTION_BG_HEIGHT FACTION_BG_WIDTH
|
|
#define FACTION_BG_X_START (BAR_START_X-(FACTION_BG_WIDTH/2))
|
|
#define FACTION_BG_Y_START (BAR_START_Y-(FACTION_BG_HEIGHT/2))
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect FACTION_BG_X_START FACTION_BG_Y_START FACTION_BG_WIDTH FACTION_BG_HEIGHT HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp material( "hud_faction_back_light" );
|
|
forecolor 1 1 1 0.25
|
|
visible 1
|
|
decoration
|
|
}
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect FACTION_BG_X_START FACTION_BG_Y_START FACTION_BG_WIDTH FACTION_BG_HEIGHT HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp material( "hud_faction_backing" );
|
|
forecolor 1 1 1 0.2
|
|
visible 1
|
|
decoration
|
|
}
|
|
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect (FACTION_BG_X_START+9) (FACTION_BG_Y_START+20) FACTION_ICON_WIDTH FACTION_ICON_HEIGHT HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
origin 5 -5
|
|
exp material( dvarString( "g_TeamIcon_Allies" ) );
|
|
visible when( team( name ) == "TEAM_ALLIES" );
|
|
forecolor 1 1 1 1
|
|
decoration
|
|
}
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect (FACTION_BG_X_START+9) (FACTION_BG_Y_START+20) FACTION_ICON_WIDTH FACTION_ICON_HEIGHT HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
origin 5 -5
|
|
exp material( dvarString( "g_TeamIcon_Axis" ) );
|
|
visible when( team( name ) == "TEAM_AXIS" );
|
|
forecolor 1 1 1 1
|
|
decoration
|
|
}
|
|
|
|
}
|
|
|
|
#define SCORE_OFFSET_X (PROGRESS_OFFSET_X-12)
|
|
#define SCORE_START_X (BAR_START_X+SCORE_OFFSET_X)
|
|
#define SCORE_COLOR 1 1 1
|
|
menuDef
|
|
{
|
|
name "scorebars_team_scores"
|
|
rect BOTTOM_RECT_X BOTTOM_RECT_Y 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
|
exp rect Y( BOTTOM_RECT_Y - (ONLINEGAME * ONLINEGAME_OFFSET) );
|
|
fullScreen 0
|
|
visible when( !FSM_VISIBILITY && ( isVisibilityBitSet( BIT_TEAM_ALLIES ) || isVisibilityBitSet( BIT_TEAM_AXIS ) ) );
|
|
visibilityBits bits( BIT_HUD_VISIBLE !BIT_IN_KILLCAM !BIT_UI_ACTIVE HUD_VISIBILITY !BIT_IN_GUIDED_MISSILE !BIT_IN_GUIDED_MISSILE_STATIC SHOULD_DISPLAY_SCOREBAR )
|
|
|
|
// draws TEAM score
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect (SCORE_START_X-2) -23 24 24 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect X( SCORE_START_X + ( (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PERCENT_TEAM ) );
|
|
exp text( team( score ) );
|
|
textfont UI_FONT_EXTRABIG
|
|
textscale TEXTSIZE_LARGE
|
|
textalign ITEM_ALIGN_CENTER
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor SCORE_COLOR 1
|
|
visible 1
|
|
decoration
|
|
}
|
|
// Top Arrow
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect SCORE_START_X -53 24 24 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect X( SCORE_START_X + ( (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PERCENT_TEAM ) );
|
|
exp material( "hud_frame_arrow" );
|
|
forecolor 1 1 1 0.8
|
|
visible 1
|
|
decoration
|
|
}
|
|
#define OT_SCORE_START_X (SCORE_START_X+2)
|
|
// OTHER TEAM score
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect (OT_SCORE_START_X-2) -7 20 20 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect X( OT_SCORE_START_X + ( (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PRECENT_OTHERTEAM ) );
|
|
exp text( otherteam( score ) );
|
|
textfont UI_FONT_EXTRABIG
|
|
textscale TEXTSIZE_DEFAULT
|
|
textalign ITEM_ALIGN_CENTER
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor SCORE_COLOR 1
|
|
visible 1
|
|
decoration
|
|
}
|
|
// Bottom Arrow
|
|
itemDef
|
|
{
|
|
style WINDOW_STYLE_SHADER
|
|
type ITEM_TYPE_IMAGE
|
|
rect OT_SCORE_START_X -16 20 (-20) HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp rect X( OT_SCORE_START_X + ( (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PRECENT_OTHERTEAM ) );
|
|
exp material( "hud_frame_arrow" );
|
|
forecolor 1 1 1 0.8
|
|
visible 1
|
|
decoration
|
|
}
|
|
}
|
|
|
|
#define STATUS_TIME 5
|
|
#define STATUS_TIME_MOD 30
|
|
#define STATUS_FONT UI_FONT_EXTRABIG
|
|
#define STATUS_TEXT_SCALE TEXTSIZE_DEFAULT
|
|
#define STATUS_START_X (BAR_START_X+(FACTION_BG_WIDTH/2)-4)
|
|
#define STATUS_START_Y (BAR_START_Y-2)
|
|
// Score Bar
|
|
menuDef
|
|
{
|
|
name "scorebar_game_status"
|
|
rect BOTTOM_RECT_X BOTTOM_RECT_Y 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
|
exp rect Y( BOTTOM_RECT_Y - (ONLINEGAME * ONLINEGAME_OFFSET) );
|
|
fullScreen 0
|
|
visible when ( !FSM_VISIBILITY && ( (team( name ) == "TEAM_ALLIES" || team( name ) == "TEAM_AXIS") ) );
|
|
visibilityBits bits( BIT_HUD_VISIBLE !BIT_UI_ACTIVE !BIT_BOMB_TIMER !BIT_BOMB_TIMER_A !BIT_BOMB_TIMER_B !BIT_DEMO_CAMERA_MODE_MOVIECAM !BIT_DEMO_ALL_GAME_HUD_HIDDEN !BIT_IN_KILLCAM HUD_VISIBILITY !BIT_IN_GUIDED_MISSILE !BIT_IN_GUIDED_MISSILE_STATIC !BIT_SCOREBOARD_OPEN )
|
|
|
|
#define IS_WINNING ( team( score ) > otherteam( score ) && ((timeLeft() / 1000) % STATUS_TIME_MOD > STATUS_TIME) )
|
|
// winning highlight
|
|
//itemDef
|
|
//{
|
|
// style WINDOW_STYLE_SHADER
|
|
// type ITEM_TYPE_IMAGE
|
|
// rect (STATUS_START_X-5) (BAR_START_Y-15) 16 16 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
// exp material( "hud_score_back" );
|
|
// exp rect W( getTextWidth( locString( "@MENU_WINNING_CAPS" ), STATUS_FONT, STATUS_TEXT_SCALE )+10 );
|
|
// forecolor 0.3 1 0.3 0.2
|
|
// visible when( IS_WINNING );
|
|
// decoration
|
|
//}
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect STATUS_START_X STATUS_START_Y 1 1 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
text "@MENU_WINNING_CAPS"
|
|
textfont STATUS_FONT
|
|
textscale STATUS_TEXT_SCALE
|
|
textalign ITEM_ALIGN_LEFT
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor NEW_FRAME_GREEN_RGB 1
|
|
visible when( IS_WINNING );
|
|
decoration
|
|
}
|
|
#define IS_LOSING ( team( score ) < otherteam( score ) && ((timeLeft() / 1000) % STATUS_TIME_MOD > STATUS_TIME) )
|
|
// losing highlight
|
|
//itemDef
|
|
//{
|
|
// style WINDOW_STYLE_SHADER
|
|
// type ITEM_TYPE_IMAGE
|
|
// rect (STATUS_START_X-5) (BAR_START_Y-15) 16 16 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
// exp material( "hud_score_back" );
|
|
// exp rect W( getTextWidth( locString( "@MENU_LOSING_CAPS" ), STATUS_FONT, STATUS_TEXT_SCALE )+10 );
|
|
// forecolor 1 0.3 0.3 0.2
|
|
// visible when( IS_LOSING );
|
|
// decoration
|
|
//}
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect STATUS_START_X STATUS_START_Y 1 1 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
text "@MENU_LOSING_CAPS"
|
|
textfont STATUS_FONT
|
|
textscale STATUS_TEXT_SCALE
|
|
textalign ITEM_ALIGN_LEFT
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor NEW_FRAME_RED_RGB 1
|
|
visible when( IS_LOSING )
|
|
decoration
|
|
}
|
|
#define IS_TIED ( team( score ) == otherteam( score ) && ((timeLeft() / 1000) % STATUS_TIME_MOD > STATUS_TIME) )
|
|
// tied highlight
|
|
//itemDef
|
|
//{
|
|
// style WINDOW_STYLE_SHADER
|
|
// type ITEM_TYPE_IMAGE
|
|
// rect (STATUS_START_X-3) (BAR_START_Y-15) 16 16 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
// exp material( "hud_score_back" );
|
|
// exp rect W( getTextWidth( locString( "@MENU_TIED_CAPS" ), STATUS_FONT, STATUS_TEXT_SCALE )+8 );
|
|
// forecolor 1 1 0.3 0.2
|
|
// visible when( IS_TIED );
|
|
// decoration
|
|
//}
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect STATUS_START_X STATUS_START_Y 1 1 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
text "@MENU_TIED_CAPS"
|
|
textfont STATUS_FONT
|
|
textscale STATUS_TEXT_SCALE
|
|
textalign ITEM_ALIGN_LEFT
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor NEW_FRAME_YELLOW_RGB 1
|
|
visible when( IS_TIED )
|
|
decoration
|
|
}
|
|
#define SHOW_GAMETYPE ( ((timeLeft() / 1000) % STATUS_TIME_MOD <= STATUS_TIME ) )
|
|
itemDef
|
|
{
|
|
type ITEM_TYPE_TEXT
|
|
rect STATUS_START_X STATUS_START_Y 1 1 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
|
exp text( toUpper( gameTypeName() ) );
|
|
textfont STATUS_FONT
|
|
textscale STATUS_TEXT_SCALE
|
|
textalign ITEM_ALIGN_LEFT
|
|
textstyle ITEM_TEXTSTYLE_SHADOWEDMORE
|
|
forecolor SCORE_COLOR 1
|
|
visible when( SHOW_GAMETYPE )
|
|
decoration
|
|
}
|
|
}
|
|
}
|