cod5-sdk/raw/ui_mp/xboxlive_lobby.menu
2008-11-20 00:00:00 +00:00

515 lines
No EOL
15 KiB
Text

#include "ui/menudef.h"
#define CHOICE_SIZE_X 150
#define CHOICE_SIZE_Y 22
#define CHOICE_X_START 0
#define CHOICE_Y_START 45//34
#define CHOICE_SEP_OFFSET_Y -2
#define CHOICE_GROUP "xboxlive_lobby"
#include "ui_mp/menustyle.inc"
#include "ui/choices_setup_common.menu"
#include "ui_mp/stats_info.inc"
#define PLAYERLIST_WIDTH 270
#define ORIGIN_PLAYERLIST (- (PLAYERLIST_WIDTH - RIGHTITEM_OFFSET)) 36
#define ORIGIN_STATUS (- (PLAYERLIST_WIDTH - RIGHTITEM_OFFSET)) 0
#define ORIGIN_DESCRIPTION (CHOICE_X_START + 12) 158
#define COLOR_DESC_TEXT 1 1 1 0.7
#define MENU_FONT_SIZE TEXTSIZE_DEFAULT
#define HIGHLIGHT_SIZE 142 22
#define MENU_FONT_COLOR 1 1 1 0.5
#define MENU_FONT_COLOR2 1 1 1 0.5
#define MENU_LOCKED_COLOR 0.25 0.25 0.25 1
//-------------------------------------
#define ORIGIN_BUTTON_BACK 52 438
#define ORIGIN_BUTTON_CONTINUE 490 438
#define ORIGIN_BUTTON_INVITE 390 86
// ------------------ preprocessing function definitions ------------------
#define PAD_LEFT \
execKeyInt DPAD_LEFT { \
setdvar ui_selectlobby "0" \
focusFirst; \
show selection_left; \
hide selection_right; \
} \
execKeyInt APAD_LEFT { \
setdvar ui_selectlobby "0" \
focusFirst; \
show selection_left; \
hide selection_right; \
}
#define PAD_RIGHT \
execKeyInt DPAD_RIGHT { \
setdvar ui_selectlobby "1" \
setFocus lobbyList; \
} \
execKeyInt APAD_RIGHT { \
setdvar ui_selectlobby "1" \
setFocus lobbyList; \
}
#include "ui_mp/common_macro.inc"
{
menuDef
{
name menu_xboxlive_lobby
fullscreen 1
rect 0 0 640 480
focuscolor COLOR_FOCUSED
style WINDOW_STYLE_FILLED
border 0
soundloop "music_mainmenu"
onOpen
{
// popup for rank promotion
uiScript openMenuOnDvar "ui_lobbypopup" promotion "popup_unlock";
uiScript openMenuOnDvar "ui_lobbypopup" summary "popup_unlock";
execnow "set ui_lobbypopup_text summary";
execnowondvarstringvalue ui_lobbypopup promotion "set ui_lobbypopup_text promotion";
exec "set ui_lobbypopup none";
show dpad_left;
show selection_left;
hide dpad_right;
hide selection_right;
focusFirst;
setdvar ui_selectlobby "0"
exec "selectStringTableEntryInDvar mp/didyouknow.csv 0 didyouknow";
CLEARUIHINT
}
onClose
{
hide selection_right;
}
onEsc
{
open leavelobbywarning;
}
PAD_RIGHT
PAD_LEFT
// ------------------ statics ------------------------
#include "ui_mp/blurredbg.inc"
//CHOICE_MENU_TITLE( "@MPUI_PUBLIC_MATCH_LOBBY" )
TITLE_STRIP
itemDef
{
type ITEM_TYPE_TEXT
rect 22 5 100 100 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
forecolor CHOICE_TEXTCOLOR
ownerdraw UI_PLAYLISTNAME
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_TITLE
textstyle CHOICE_TEXTSTYLE
textalign ITEM_ALIGN_TOP_LEFT
textaligny 26
textalignx 0
visible when (!acceptingInvite());
decoration
}
// --------------------- lobby players count -----------------------
itemDef {
type ITEM_TYPE_TEXT
rect 0 -4 PLAYERLIST_WIDTH 0 RIGHTITEM_ALIGN VERTICAL_ALIGN_TOP
origin ORIGIN_PLAYERLIST
forecolor CHOICE_TEXTCOLOR
dvar "party_lobbyPlayerCount"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
textaligny -6
textalign ITEM_ALIGN_RIGHT
visible when ( InLobby() )
decoration
}
// --------------------- # of players online -----------------------
itemDef
{
rect 4 10 0 0
origin 230 0
type ITEM_TYPE_BUTTON
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
textstyle ITEM_TEXTSTYLE_SHADOWED
ownerdraw UI_TOTALONLINE
textalign ITEM_ALIGN_LEFT
forecolor 1 1 1 .75
backcolor 0 0 0 0
origin 5 10
visible 1
decoration
autowrapped
}
itemDef
{
rect 10 66 210 36 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
origin ORIGIN_DESCRIPTION
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
type ITEM_TYPE_BUTTON
dvar playlist_totalonline
textalign ITEM_ALIGN_LEFT
textstyle ITEM_TEXTSTYLE_SHADOWED
forecolor COLOR_FOCUSED
backcolor 0 0 0 0
visible 1
decoration
}
// ---------------------- party status description -------------------------
#define STATUS_START_X (CHOICE_X_START + 12)
#define STATUS_START_Y 155
PREPROC_SHADER_DRAW_ALIGNED_VIS( (STATUS_START_X) (STATUS_START_Y-12) 10 10 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP, 0 0, "ui_arrow_right", 1 1 1 0.4, 0, 1, 1 1 1 1, when( dvarBool( ui_show_arrow ) ) )
PREPROC_TEXT_DRAW_ALIGNED_EXP( (STATUS_START_X+13) (STATUS_START_Y) 210 36 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP, 0 0, dvarString( ui_hint_text ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_LEFT, COLOR_BODY_TEXT )
// ----------------------------map images------------------------------------
#include "ui_mp/game_info.inc"
#define MAPIMAGE tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_mapname ), 4 )
#define MAPNAME tableLookup( "mp/mapstable.csv", 0, dvarString( ui_mapname ), 3 )
#define GAMETYPENAME tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 )
GAME_INFO_VETO( MAPIMAGE, "@" + MAPNAME, "@" + GAMETYPENAME, 1 )
//=========================================================
//===================== MENU SELECTION ====================
//=========================================================
#undef NEW_X_OFFSET
#define NEW_X_OFFSET (-CHOICE_SIZE_Y)
#define CLEARUIHINT exec "set ui_hint_text @NULL_EMPTY; set ui_show_arrow 0"
#define SETUP_ACTION_FINDGAME \
exec "xblive_privatematch 0"; \
open "popup_findgame";
#define SETUP_ACTION_PRIVATEMATCH \
exec "exec "XBOXLIVE_MP_CFG; \
exec "xblive_rankedmatch 0"; \
exec "ui_enumeratesaved" \
exec "party_timerVisible 0"; \
exec "xblive_privatematch 1"; \
exec "xstartpartyhost"; \
open menu_xboxlive_privatelobby;
#define SETUP_ACTION_CREATEACLASS \
execnow "set ui_cac_ingame 0"; \
execnow "statset 260 1"; \
/*exec "uploadstats";*/ \
open cac_main;
#define SETUP_ACTION_BARRACKS \
open menu_xboxlive_barracks;
#ifdef PS3
#define SETUP_ACTION_INVITE \
open menu_ps3_friends;
#else
#define SETUP_ACTION_INVITE \
exec "xshowfriendslist";
#endif
#define SETUP_ACTION_CYCLEMAP \
exec "xplaylistchoosegame; xupdatepartystate";
#define SETUP_ACTION_VETOMAP \
play "mouse_click"; \
exec "xpartyveto 1";
#define SETUP_ACTION_LOBBY_LEADERBOARD \
play "mouse_click"; \
execOnDvarIntValue scr_hardcore 0 "openmenu set_no_hc_gamemode"; \
execOnDvarIntValue scr_hardcore 1 "openmenu set_hc_gamemode";
CHOICE_BUTTON_FOCUS_VIS( 1, "@MPUI_CREATE_A_CLASS", SETUP_ACTION_CREATEACLASS, ;, CLEARUIHINT, when( stat( 260 ) >= 1 ) )
CHOICE_BUTTON_FOCUS_VIS_NOHI( 1, "", ;, exec "set ui_hint_text @MPUI_DESC_CREATE_A_CLASS_LOCKED; set ui_show_arrow 1", CLEARUIHINT, when( stat( 260 ) < 1 ); )
CHOICE_DBUTTON_VIS( 1, "@MPUI_CREATE_A_CLASS", when( stat( 260 ) < 1 ); )
CHOICE_NEWICON_VIS( 1, "specialty_new", when( ANY_NEW_CAC ); )
CHOICE_LOCKEDICON_VIS( 1, "specialty_locked", when( stat( 260 ) < 1 ) )
CHOICE_BUTTON_FOCUS( 2, "@MPUI_BARRACKS", SETUP_ACTION_BARRACKS, ;, CLEARUIHINT )
CHOICE_NEWICON_VIS( 2, "specialty_new", when( stat( 263 ) > 1 || stat( 261 ) > 1 || ( PRESTIGE_AVAIL && stat( 267 )==0 ) ); )
#ifdef XENON
CHOICE_BUTTON_FOCUS( 3, "@MPUI_LOBBY_LEADERBOARD", SETUP_ACTION_LOBBY_LEADERBOARD, ;, CLEARUIHINT )
#endif // #ifdef PS3
// --------- button ----------
#ifndef PC
itemDef
{
rect -140 -4 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
origin 0 0
text "@PLATFORM_INVITE_FRIENDS"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
textalign ITEM_ALIGN_BOTTOM_LEFT
execkeyint BUTTON_Y { SETUP_ACTION_INVITE; }
visible when( !dvarbool( ui_partyFull ) && dvarbool( invite_visible ) )
decoration
}
#endif// #ifndef PC
itemDef
{
rect 44 -4 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
origin 0 0
text "@PLATFORM_GAME_SUMMARY"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
textalign ITEM_ALIGN_BOTTOM_LEFT
execkeyint BUTTON_BACK { open "popup_unlock"; }
visible when( dvarbool( invite_visible ) )
decoration
}
itemDef
{
rect 23 39 0 0 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_CENTER
origin 0 0
text "@PLATFORM_VOTE_TO_SKIP"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
textalign ITEM_ALIGN_LEFT
execkeyint BUTTON_X { SETUP_ACTION_VETOMAP }
visible when ( dvarbool( party_vetoButtonVisible ) && InLobby() )
decoration
}
#include "ui_mp/navcontrols.inc"
// ------------------------ lobby status ----------------------------
itemDef
{
type ITEM_TYPE_TEXT
rect 0 0 0 0 RIGHTITEM_ALIGN VERTICAL_ALIGN_TOP
origin ORIGIN_STATUS
textaligny 12
textalign ITEM_ALIGN_LEFT
forecolor MENU_FONT_COLOR2
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
ownerdraw UI_PARTYSTATUS
decoration
visible when ( dvarint( party_timerVisible ) == 0 );
}
itemDef
{
type ITEM_TYPE_TEXT
rect 0 10 0 0 RIGHTITEM_ALIGN VERTICAL_ALIGN_TOP
origin ORIGIN_STATUS
textaligny 12
textalign ITEM_ALIGN_LEFT
forecolor MENU_FONT_COLOR2
text "@MENU_MATCH_BEGINNING_IN"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
decoration
visible when ( dvarint( party_timerVisible ) == 1 );
}
itemDef
{
type ITEM_TYPE_TEXT
rect 140 10 0 0 RIGHTITEM_ALIGN VERTICAL_ALIGN_TOP
origin ORIGIN_STATUS
textaligny 12
textalign ITEM_ALIGN_LEFT
forecolor MENU_FONT_COLOR2
dvar "party_timer"
textfont CHOICE_TEXTFONT
textscale TEXTSIZE_SMALL
decoration
visible when ( dvarint( party_timerVisible ) == 1 );
}
// ---------------------- player list -------------------------
#define PLAYERLIST_SCOREVIS 1
#ifdef XENON
#define PLAYERLIST_SELECTED_ACTIONS \
doubleClick { \
open player_popup; \
} \
PAD_LEFT
#else
#define PLAYERLIST_SELECTED_ACTIONS \
PAD_LEFT
#endif // #ifdef XENON
#include "ui_mp/playerlist.inc"
#include "ui/safearea.menu"
#include "ui/popup_background.inc"
}
// private match - leave lobby warning
#undef CHOICE_SIZE_X
#define CHOICE_SIZE_X 160//216
#include "ui_mp/popupstyle.inc"
#include "ui/choices_setup_popmenu.menu"
#define CAC_POPUP_X (0)
#define CAC_POPUP_Y (22)
// set new status position ---
#undef NEW_X_OFFSET
#define NEW_X_OFFSET (0-CHOICE_SIZE_X)
#undef NEW_Y_OFFSET
#define NEW_Y_OFFSET (0-2)
#include "ui_mp/cacpopup.inc"
CAC_POPUP( "lobby_cac_popup", CAC_POPUP_X, CAC_POPUP_Y )
// restore new status position ---
#undef NEW_X_OFFSET
#define NEW_X_OFFSET 0
#undef NEW_Y_OFFSET
#define NEW_Y_OFFSET 0
menuDef
{
CENTER_POPUP_SETUP_ONOPEN( leavelobbywarning, 3, ;, setfocus cancel_button, 1 )
#define LOCAL_ACCEPT_LEAVELOBBY \
play "mouse_click"; \
close menu_xboxlive_lobby; \
close menu_xboxlive_privatelobby; \
exec "xstopparty"; \
exec "xblive_privatematch 0"; \
setdvar invite_visible "1"; \
close leavelobbywarning;
#define LOCAL_ACCEPT_LEAVELOBBY2 \
play "mouse_click"; \
close menu_xboxlive_lobby; \
close menu_xboxlive_privatelobby; \
exec "xstopprivateparty"; \
exec "xstopparty"; \
exec "xblive_privatematch 0"; \
exec "xstartprivateparty"; \
setdvar invite_visible "1"; \
close leavelobbywarning;
#define LOCAL_ACCEPT_LEAVELOBBY3 \
play "mouse_click"; \
close menu_xboxlive_lobby; \
close menu_xboxlive_privatelobby; \
exec "xstoppartykeeptogether"; \
exec "xblive_privatematch 0"; \
setdvar invite_visible "1"; \
close leavelobbywarning;
CHOICE_POPMENU_TITLE_VIS( "@XBOXLIVE_LEAVELOBBY", when( !InPrivateParty() || PrivatePartyHost() ) )
CHOICE_POPMENU_TITLE_VIS( "@XBOXLIVE_LEAVEPARTYANDLOBBY", when( InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby() ) )
CHOICE_POPMENU_TITLE_VIS( "@XBOXLIVE_LEAVELOBBY", when( InPrivateParty() && !PrivatePartyHost() && !PrivatePartyHostInLobby() ) )
CHOICE_BUTTON_BG( 1, 1 )
CHOICE_HIGHLIGHT( 1, 1 )
CHOICE_BUTTON_VIS_NOHI( 1, "@MPUI_LEAVE_WITH_PARTY", LOCAL_ACCEPT_LEAVELOBBY3, when( InPrivateParty() && PrivatePartyHost() && PrivatePartyHostInLobby() && ( !AloneInParty() ) ) )
CHOICE_BUTTON_VIS_NOHI( 1, "", ;, when( AloneInParty() || ( !InPrivateParty() ) || ( !PrivatePartyHost() ) || ( !PrivatePartyHostInLobby() ) ); )
CHOICE_DBUTTON_VIS( 1, "@MPUI_LEAVE_WITH_PARTY", when( AloneInParty() || ( !InPrivateParty() ) || ( !PrivatePartyHost() ) || ( !PrivatePartyHostInLobby() ) ); )
CHOICE_BUTTON_BG( 2, 2 )
CHOICE_HIGHLIGHT( 2, 2 )
CHOICE_BUTTON_VIS_NOHI( 2, "@MPUI_YES", LOCAL_ACCEPT_LEAVELOBBY, when( !InPrivateParty() || PrivatePartyHost() ) )
CHOICE_BUTTON_VIS_NOHI( 2, "@MPUI_YES", LOCAL_ACCEPT_LEAVELOBBY2, when( InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby() ) )
CHOICE_BUTTON_VIS_NOHI( 2, "@MPUI_YES", LOCAL_ACCEPT_LEAVELOBBY, when( InPrivateParty() && !PrivatePartyHost() && !PrivatePartyHostInLobby() ) )
CHOICE_BUTTON_EX( 3, "@MPUI_NO", close self, name cancel_button )
}
// xboxlive menu private party - leave party warning
// #undef CHOICE_POPUP_BORDER_Y
// #define CHOICE_POPUP_BORDER_Y 23
menuDef
{
CENTER_POPUP_SETUP_ONOPEN( skipmapconfirmation, 2, ;, setfocus cancel_button, 1 )
#define LOCAL_ACCEPT_VETO \
play "mouse_click"; \
exec "xpartyveto 1"; \
close skipmapconfirmation;
CHOICE_POPMENU_TITLE( "@MENU_VOTESKIPCONFIRM" )
CHOICE_BUTTON( 1, "@MPUI_YES", LOCAL_ACCEPT_VETO )
CHOICE_BUTTON( 2, "@MPUI_NO", close self )
}
menuDef
{
CENTER_POPUP_SETUP_ONOPEN( leaveprivatepartywarning, 2, ;, setfocus cancel_button, 1 )
#define LOCAL_ACCEPT_LEAVE \
play "mouse_click"; \
exec "onlinegame 0"; \
exec "xstopprivateparty"; \
exec "xstopparty"; \
exec "splitscreencontrols"; \
close leaveprivatepartywarning; \
close popup_gettingdata; \
close menu_xboxlive;
/*exec "uploadstats";*/
CHOICE_POPMENU_TITLE_VIS( "@XBOXLIVE_DESTROYPARTY", when( InPrivateParty() && PrivatePartyHost() ) )
CHOICE_POPMENU_TITLE_VIS( "@XBOXLIVE_LEAVEPARTY", when( InPrivateParty() && !PrivatePartyHost() ) )
CHOICE_BUTTON( 1, "@MPUI_YES", LOCAL_ACCEPT_LEAVE )
CHOICE_BUTTON_EX( 2, "@MPUI_NO", close self, name cancel_button )
}
//hack for leaderboards
menuDef
{
name set_no_hc_gamemode
onOpen
{
#ifdef XENON
setdvar lb_filter "lobbymembers";
#endif // #ifdef XENON
#ifdef PS3
setdvar lb_filter "friends";
#endif // #ifdef PS3
setdvar lb_gamemode dvarString( ui_gametype )
open menu_leaderboard_service_report;
close self;
}
}
menuDef
{
name set_hc_gamemode
onOpen
{
setdvar lb_hc_append "hc";
#ifdef XENON
setdvar lb_filter "lobbymembers";
#endif // #ifdef XENON
#ifdef PS3
setdvar lb_filter "friends";
#endif // #ifdef PS3
setdvar lb_gamemode dvarString( lb_hc_append + ui_gametype );
open menu_leaderboard_service_report;
close self;
}
}
}