mirror of
https://github.com/ineedbots/t5_bot_warfare.git
synced 2025-02-05 19:59:01 +00:00
1.03
This commit is contained in:
commit
7368dad717
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
# Ignore everything in repository root
|
||||
/*
|
||||
|
||||
# Files to not ignore
|
||||
!/.gitignore
|
||||
!/z_devserver.bat
|
||||
!/z_dev.bat
|
||||
!/z_serverdev.bat
|
||||
|
||||
# Folder to not ignore
|
||||
!/mods/
|
||||
/mods/*
|
||||
!/mods/mp_bots/
|
||||
!/mods/mp_patch/
|
||||
|
||||
*.log
|
||||
missingasset.csv
|
||||
*.ff
|
||||
*.files
|
||||
/mods/mp_bots/out/*
|
||||
!/mods/mp_bots/out/readme.txt
|
1
mods/mp_bots/description.txt
Normal file
1
mods/mp_bots/description.txt
Normal file
@ -0,0 +1 @@
|
||||
Extends functionality of Combat Training.
|
7301
mods/mp_bots/maps/mp/gametypes/_bot.gsc
Normal file
7301
mods/mp_bots/maps/mp/gametypes/_bot.gsc
Normal file
File diff suppressed because it is too large
Load Diff
5
mods/mp_bots/mod.csv
Normal file
5
mods/mp_bots/mod.csv
Normal file
@ -0,0 +1,5 @@
|
||||
menufile,ui_mp/cac_main.menu
|
||||
menufile,ui_mp/playercards.menu
|
||||
stringtable,mp/gametypesTable.csv
|
||||
menufile,ui_mp/custom_game_create.menu
|
||||
menufile,ui_mp/pc_basictraining.menu
|
|
63
mods/mp_bots/mp/gametypesTable.csv
Normal file
63
mods/mp_bots/mp/gametypesTable.csv
Normal file
@ -0,0 +1,63 @@
|
||||
#Gametypes Table,,,,,,
|
||||
a0,b1,c2,d3,e4,f5,g6
|
||||
maxnum_gametype,12,,,,,
|
||||
total_filesharegametype,12,,,,,
|
||||
#gametype reference,#gametype names,#gametype description,#image,#index,#splitscreen,#gametime names lowercase
|
||||
tdm,MPUI_TEAM_DEATHMATCH_CAPS,MENU_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,0,YES,MPUI_TEAM_DEATHMATCH
|
||||
dm,MPUI_DEATHMATCH_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,1,YES,MPUI_DEATHMATCH
|
||||
sd,MPUI_SEARCH_AND_DESTROY_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING_NO_SPAWN,playlist_search_destroy,2,YES,MPUI_SEARCH_AND_DESTROY_CLASSIC
|
||||
dom,MPUI_DOMINATION_CAPS,MENU_CAPTURE_AND_HOLD_THE,playlist_domination,3,YES,MPUI_DOMINATION
|
||||
koth,MPUI_HEADQUARTERS_CAPS,MENU_CAPTURE_THE_HEADQUARTERS,playlist_headquarters,4,YES,MPUI_HEADQUARTERS
|
||||
dem,MPUI_DEMOLITION_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING,playlist_demolition,5,YES,MPUI_DEMOLITION
|
||||
ctf,MPUI_CAPTURE_THE_FLAG_CAPS,MENU_CTF_DESC,playlist_ctf,6,YES,MPUI_CAPTURE_THE_FLAG
|
||||
sab,MPUI_SABOTAGE_CAPS,MENU_1_BOMB_IN_THE_CENTER,playlist_sabotage,7,YES,MPUI_SABOTAGE
|
||||
hlnd,MPUI_HLND_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,8,YES,MPUI_HLND
|
||||
oic,MPUI_OIC_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,9,YES,MPUI_OIC
|
||||
gun,MPUI_GUN_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_gungame,10,YES,MPUI_GUN
|
||||
shrp,MPUI_SHRP_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_sharpshooter,11,YES,MPUI_SHRP
|
||||
,,,,,,
|
||||
maxnum_basictraining_gametype,14,,,,,
|
||||
#gametype reference,#gametype names,#gametype description,#image,#index,#splitscreen,#gametime names lowercase
|
||||
tdm,MPUI_TEAM_DEATHMATCH_CAPS,MENU_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,bt0,YES,MPUI_TEAM_DEATHMATCH
|
||||
hc_tdm,MPUI_TDM_HARDCORE_CAPS,MENU_HC_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,bt1,YES,MPUI_TEAM_DEATHMATCH
|
||||
dm,MPUI_DEATHMATCH_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt2,YES,MPUI_DEATHMATCH
|
||||
hc_dm,MPUI_DM_HARDCORE_CAPS,MENU_HC_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt3,YES,MPUI_DEATHMATCH
|
||||
sd,MPUI_SEARCH_AND_DESTROY_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING_NO_SPAWN,playlist_search_destroy,bt4,YES,MPUI_SEARCH_AND_DESTROY_CLASSIC
|
||||
dom,MPUI_DOMINATION_CAPS,MENU_CAPTURE_AND_HOLD_THE,playlist_domination,bt5,YES,MPUI_DOMINATION
|
||||
koth,MPUI_HEADQUARTERS_CAPS,MENU_CAPTURE_THE_HEADQUARTERS,playlist_headquarters,bt6,YES,MPUI_HEADQUARTERS
|
||||
dem,MPUI_DEMOLITION_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING,playlist_demolition,bt7,YES,MPUI_DEMOLITION
|
||||
ctf,MPUI_CAPTURE_THE_FLAG_CAPS,MENU_CTF_DESC,playlist_ctf,bt8,YES,MPUI_CAPTURE_THE_FLAG
|
||||
sab,MPUI_SABOTAGE_CAPS,MENU_1_BOMB_IN_THE_CENTER,playlist_sabotage,bt9,YES,MPUI_SABOTAGE
|
||||
hlnd,MPUI_HLND_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt10,YES,MPUI_HLND
|
||||
oic,MPUI_OIC_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt11,YES,MPUI_OIC
|
||||
gun,MPUI_GUN_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_gungame,bt12,YES,MPUI_GUN
|
||||
shrp,MPUI_SHRP_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_sharpshooter,bt13,YES,MPUI_SHRP
|
||||
,,,,,,
|
||||
maxnum_lbtype,11,,,,,
|
||||
#Leaderboard string names,,,,,,
|
||||
#num,#lb_type ref,#lb gametype names,#gametype names,,#lb index,
|
||||
0,tdm,MPUI_LB_TEAM_DEATHMATCH_CAPS,MPUI_TEAM_DEATHMATCH_CAPS,,0,
|
||||
1,dm,MPUI_LB_FFA_CAPS,MPUI_DEATHMATCH_CAPS,,1,
|
||||
2,sd,MPUI_LB_SEARCH_AND_DESTROY_CAPS,MPUI_SEARCH_AND_DESTROY_CAPS,,5,
|
||||
3,dom,MPUI_LB_DOMINATION_CAPS,MPUI_DOMINATION_CAPS,,3,
|
||||
4,koth,MPUI_LB_HEADQUARTERS_CAPS,MPUI_HEADQUARTERS_CAPS,,6,
|
||||
5,dem,MPUI_LB_DEMOLITION_CAPS,MPUI_DEMOLITION_CAPS,,7,
|
||||
6,ctf,MPUI_LB_CAPTURE_THE_FLAG_CAPS,MPUI_CAPTURE_THE_FLAG_CAPS,,2,
|
||||
7,sab,MPUI_LB_SABOTAGE_CAPS,MPUI_SABOTAGE_CAPS,,4,
|
||||
8,hctdm,MPUI_LB_TEAM_DEATHMATCH_HC_CAPS,MPUI_HCTDM_CAPS,,8,
|
||||
9,hcdm,MPUI_LB_FFA_HC_CAPS,MPUI_HCDM_CAPS,,9,
|
||||
10,hcsd,MPUI_LB_SEARCH_AND_DESTROY_HC_CAPS,MPUI_HCSD_CAPS,,13,
|
||||
,,,,,,
|
||||
,,,,,,
|
||||
#Leaderboard reset period names,,,,,,
|
||||
#lb_typeByResetPeriod ref,#resetperiod names,#index,,,,
|
||||
all_time,MPUI_LB_ALL_TIME_CAPS,0,,,,
|
||||
monthly,MPUI_LB_MONTHLY_CAPS,1,,,,
|
||||
weekly,MPUI_LB_WEEKLY_CAPS,2,,,,
|
||||
,,,,,,
|
||||
,,,,,,
|
||||
#Leaderboard filter names,,,,,,
|
||||
#lb_filter ref,#filter names,#index,,,,
|
||||
none,MPUI_LB_EVERYONE_CAPS,0,,,,
|
||||
friends,MPUI_LB_FRIENDS_ONLY_CAPS,1,,,,
|
||||
lobbymembers,MPUI_LB_PLAYERS_IN_LOBBY_CAPS,2,,,,
|
|
97
mods/mp_bots/out/readme.txt
Normal file
97
mods/mp_bots/out/readme.txt
Normal file
@ -0,0 +1,97 @@
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
///////////////Bot Warfare////////////////
|
||||
Feel free to use code, however give credit where credit is due!
|
||||
-INeedGames/INeedBot(s) @ ineedbots@pbot.org
|
||||
|________________________________________|
|
||||
|
||||
Contents:
|
||||
1: Features
|
||||
2: Installation/Requirements
|
||||
3: FAQs/Notes
|
||||
4: Changelog
|
||||
5: Credits
|
||||
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
///////////////1: Features////////////////
|
||||
This mod extends the functionality and features of Combat Training in Black Ops multiplayer.
|
||||
|
||||
Menu changes (combat training menu):
|
||||
You can select any game mode.
|
||||
You can change prestige classes if available.
|
||||
You can change your clan tag, emblem and calling card.
|
||||
You can prestige.
|
||||
Increased limits of bot numbers.
|
||||
|
||||
Bot changes:
|
||||
Bots play all game modes (capture flags, plant and defuse, etc.).
|
||||
Bots take out spyplanes and counter spyplanes.
|
||||
Bots react to the uav, jammer, decoys, motion sensor and camera spike.
|
||||
Bots can destroy tactical insertions.
|
||||
Bots can call in chopper gunner and gun ship but do not use it.
|
||||
Bots can hack claymores if they are not facing it.
|
||||
Fixed bots never reviving a player if they move.
|
||||
Fixed bots trying to capture a hacked care package when they can't because its on their team.
|
||||
Silencers will not cause other bots to look in the firer's direction.
|
||||
Bots class, rank, and cod points all persist across rounds.
|
||||
Bots will spend cod points on everything they choose now (not just gun and perk like before).
|
||||
Bots can choose two attachments if they have the perk.
|
||||
Bots can skip killcams.
|
||||
Bots have a slight delay after spawning, scales inversely with difficulty.
|
||||
Bots can reroll carepackages.
|
||||
Bots can use the valkyrie rocket carepackage streak.
|
||||
|________________________________________|
|
||||
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
///////2: Installation/Requirements///////
|
||||
If you want to install it as a mod:
|
||||
1. Locate the root folder which your game is installed in.
|
||||
2. Locate the 'mods' folder, if there isn't one, make it.
|
||||
3. Move the 'mp_bots' folder found in the 'Move to mods folder' into the 'mods' folder.
|
||||
4. The file/folder structure should be '.BORoot\mods\mp_bots\mp_bots.iwd'.
|
||||
5. Simply run the game, go to the 'Mods' menu and select 'mp_bots'.
|
||||
6. Thats it, go play!
|
||||
|
||||
If you want to rank up with the mod:
|
||||
WARNING: Make sure to backup your patch_mp.ff and patch_ui_mp.ff files! You will not be able to play on servers with different FFs!
|
||||
1. Locate the root folder which your game is installed in.
|
||||
2. Go into the folder 'zone' and then into the folder 'Common'.
|
||||
3. Move the two files 'patch_mp.ff' and 'patch_ui_mp.ff' from the 'Others' folder into the 'Common' folder, replacing the files.
|
||||
4. Now run the game and the mod will be running by default. (No need to select the mod from the in-game menu)
|
||||
|________________________________________|
|
||||
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
///////////////3: FAQs/Notes//////////////
|
||||
Q: DLC maps have no images (with rank up option)!
|
||||
A: It appears Treyarch has put the materials for these maps in the original patch_mp.ff file. It is currently not known how to insert materials into a FF as they are streamed.
|
||||
|
||||
Q: I'm getting menu asset limit errors when I switch to a mod (with rank up option)!
|
||||
A: The modified FFs have menu files in them. Restoring back to your original FF files will fix this.
|
||||
|
||||
TODO:
|
||||
Make bots use remote helicopters, possible?
|
||||
Make bots use alt weapon types (tube, master key, flamethrower) possible?
|
||||
|________________________________________|
|
||||
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
///////////////4: Changelog///////////////
|
||||
v1.02(05/06/2018):
|
||||
Fixed a few small bugs. A possible infinite loop when bots are too poor for a grenade and reasonable setups are on, and bots never spawning after death with forcerespawn off.
|
||||
Added an option to allow for UNLIMITED score.
|
||||
|
||||
v1.01(03/02/2018):
|
||||
Fixed bot's rank not updating after a multiround.
|
||||
Can now set bot numbers for friends and enemies from 0 - 30 within menu. (15v15) (1v29)
|
||||
|
||||
v1.0(02/08/2018):
|
||||
Initial release.
|
||||
|________________________________________|
|
||||
|
||||
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
||||
////////////////5: Credits////////////////
|
||||
INeedGames(me) - creator: http://www.moddb.com/mods/bot-warfare
|
||||
apdonato - ideas and/of implementation of code from their 'BO patch': http://rsebots.blogspot.ca/
|
||||
|________________________________________|
|
||||
|
||||
|
||||
Feel free to use code, host on other sites, host on servers, mod it and merge mods with it, just give credit where credit is due!
|
||||
-INeedGames/INeedBot(s) @ ineedbots@pbot.org
|
437
mods/mp_bots/ui_mp/cac_main.menu
Normal file
437
mods/mp_bots/ui_mp/cac_main.menu
Normal file
@ -0,0 +1,437 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/item_animate.inc"
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/cac_player_model.inc"
|
||||
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START NEW_FRAME_CHOICE_X_START
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START NEW_FRAME_CHOICE_Y_START
|
||||
|
||||
#define RECT_ALIGN ;
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#define CHOICE_SEP_1 5
|
||||
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X NEW_FRAME_BUTTON_WIDTH
|
||||
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/cac_viewer.inc"
|
||||
|
||||
#define LOCKED_BORDER_COLOR 1 1 1 0.5
|
||||
#define LOCAL_UNLOCK_COLOR 0.31 0.31 0.33 0.55
|
||||
#define ORIGIN_DESCRIPTION (CHOICE_X_START + 15) 320
|
||||
|
||||
#define LOCKED_IMAGE_X 100
|
||||
#define LOCKED_IMAGE_Y 0
|
||||
|
||||
#define LOCKED_TITLE_X 20
|
||||
#define LOCKED_TITLE_Y (LOCKED_IMAGE_Y + 100)
|
||||
|
||||
#define LOCKED_DESC_X (LOCKED_TITLE_X)
|
||||
#define LOCKED_DESC_Y (LOCKED_TITLE_Y + 20)
|
||||
|
||||
#define LOCKED_WIDTH 270
|
||||
#define LOCKED_ALIGN HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP
|
||||
|
||||
#define ORIGIN_LOCKED ((-(LOCKED_WIDTH - RIGHTITEM_OFFSET))-80) 38
|
||||
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
#include "ui_mp/armor.inc"
|
||||
#include "ui_mp/cac_stats.inc"
|
||||
#include "ui_mp/cac_loadout.inc"
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
|
||||
#define IS_ONLINE_GAME ( dvarInt( splitscreen ) == 0 && dvarInt( systemlink ) == 0 )
|
||||
#define IS_BASICTRAINING_GAME ( dvarInt( xblive_basictraining ) > 0 )
|
||||
|
||||
#undef ON_ESC
|
||||
#ifdef PC
|
||||
#define ON_ESC \
|
||||
execnow "uploadstats"; \
|
||||
setdvar invite_visible "1"; \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
closeimmediate self; \
|
||||
setLocalVarBool ui_hideBack 0;
|
||||
#else //#ifdef PC
|
||||
#define ON_ESC \
|
||||
execnow "uploadstats"; \
|
||||
setdvar invite_visible "1"; \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
closeimmediate self;
|
||||
#endif //#ifdef PC
|
||||
|
||||
#define SET_CLASS_HIGHLIGHT_INDEX( classIndex ) \
|
||||
setdvar ui_custom_class_highlighted classIndex;
|
||||
|
||||
|
||||
#define SETUP_ONFOCUS_CAC( classIndex, custom_name ) \
|
||||
show item_info; \
|
||||
SET_CLASS_HIGHLIGHT_INDEX( classIndex ) \
|
||||
setdvar ui_custom_name custom_name; \
|
||||
VIEWER_SET_PLAYER( custom_name ); \
|
||||
VIEWER_SET_EQUIP_WEAPON( primary ); \
|
||||
VIEWER_SET_PLAYER_CAMERA( player );
|
||||
|
||||
{
|
||||
|
||||
// CREATE A CLASS MAIN
|
||||
menuDef
|
||||
{
|
||||
name cac_main
|
||||
rect 0 0 640 470 RECT_ALIGN
|
||||
focuscolor COLOR_FOCUSED
|
||||
#ifdef PC_INGAME
|
||||
style WINDOW_STYLE_EMPTY
|
||||
#else
|
||||
style WINDOW_STYLE_FILLED
|
||||
blurWorld 7.0
|
||||
#endif
|
||||
control MENU_CONTROL_OPENER
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
popup
|
||||
onOpen
|
||||
{
|
||||
execnow "uiViewer_SetControllerIndex";
|
||||
activateBlur;
|
||||
setdvar invite_visible "0";
|
||||
setdvar cac_back_menu_name "cac_main";
|
||||
setdvar ui_useCustomClassInfo 0;
|
||||
if ( dvarString( ui_faction ) == "" ) { setdvar ui_faction FIRST_FACTION; }
|
||||
|
||||
#ifdef PC
|
||||
if ( dvarString( ui_custom_name ) == "" )
|
||||
{
|
||||
SETUP_ONFOCUS_CAC( 0, customclass1 );
|
||||
}
|
||||
|
||||
setLocalVarBool ui_hide_cac_item_info_highlights 1;
|
||||
setLocalVarBool ui_hideBack 1;
|
||||
#endif
|
||||
SHOW_VIEWER;
|
||||
SET_VIEWER_MODE_PLAYER;
|
||||
play uin_navigation_menu_lg_open;
|
||||
focusFirst;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if( !IS_ONLINE_GAME )
|
||||
{
|
||||
execNow "updategamerprofile";
|
||||
}
|
||||
deactivateBlur;
|
||||
HIDE_VIEWER;
|
||||
#ifdef PC
|
||||
execNow "updategamerprofile";
|
||||
setLocalVarBool ui_hide_cac_item_info_highlights 0;
|
||||
#endif //#ifdef PC
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
activateBlur;
|
||||
execnow changemenuopenslidedirection cac_main MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM;
|
||||
execnow changemenucloseslidedirection cac_main MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM;
|
||||
}
|
||||
|
||||
#define CAC_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
||||
#define CAC_WIDTH ( CAC_HEIGHT * FRAME_ASPECT_RATIO )
|
||||
#define IS_CUSTOM_CLASS_MODE dvarInt( ui_useCustomClassInfo ) == 1
|
||||
|
||||
NEW_FRAME( CAC_WIDTH, CAC_HEIGHT )
|
||||
|
||||
// ------------------ statics ------------------------
|
||||
|
||||
NEW_FRAME_TITLE( CAC_WIDTH, CAC_HEIGHT, "@MPUI_CREATE_A_CLASS_CAPS", when( !IS_CUSTOM_CLASS_MODE ) )
|
||||
NEW_FRAME_TITLE( CAC_WIDTH, CAC_HEIGHT, "@CUSTOM_EDIT_CLASS_LOADOUT_CAPS", when( IS_CUSTOM_CLASS_MODE ) )
|
||||
|
||||
PLAYER_INFO_VIS( CAC_WIDTH, CAC_HEIGHT, 1 )
|
||||
|
||||
#define DIRT_IMAGE_WIDTH 400
|
||||
#define DIRT_IMAGE_HEIGHT 128
|
||||
#define DIRT_IMAGE_X (-DIRT_IMAGE_WIDTH/2)
|
||||
#define DIRT_IMAGE_Y 60
|
||||
#ifndef PC_INGAME
|
||||
/* dirt image */
|
||||
PREPROC_SHADER_DRAW( DIRT_IMAGE_X DIRT_IMAGE_Y DIRT_IMAGE_WIDTH DIRT_IMAGE_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "menu_mp_lobby_cac_dirt", 1 1 1 0.2 )
|
||||
|
||||
CAC_FACTION_MODEL
|
||||
|
||||
#ifdef PC
|
||||
CAC_ROTATE_ARROWS
|
||||
#endif // #ifdef PC
|
||||
#endif
|
||||
//=========================================================
|
||||
//===================== MENU SELECTION ====================
|
||||
//=========================================================
|
||||
#define SETUP_ACTION_CAC \
|
||||
execnow changemenucloseslidedirection ( dvarString( "cac_back_menu_name" ) ) MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT; \
|
||||
execnow changemenuopenslidedirection menu_cac_custom MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT; \
|
||||
closeimmediate self; \
|
||||
openimmediate menu_cac_custom;
|
||||
|
||||
#define SETUP_HL_CAC( classIndex ) \
|
||||
( dvarInt( "ui_custom_class_highlighted" ) == classIndex )
|
||||
|
||||
#define PRESTIGE_FOCUS( pname, class_name_dvar ) \
|
||||
hide item_info; \
|
||||
setdvar ui_show_arrow 1; \
|
||||
setdvar ui_custom_name dvarString( class_name_dvar ); \
|
||||
execnow set ui_prestige_unlock_desc GET_UNLOCK_PLEVEL_STRING( pname );
|
||||
|
||||
#define PRESTIGE_LEAVE_FOCUS \
|
||||
setdvar ui_show_arrow 0; \
|
||||
setdvar ui_prestige_unlock_desc "@NULL_EMPTY";
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( customclass1 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 0, customclass1 ),
|
||||
;,
|
||||
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 0 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( offline_customclass1 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 0, customclass1 ); setdvar offline_custom_name offline_customclass1,
|
||||
;,
|
||||
!IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 0 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 1, dvarString( offline_customclass1 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 0, customclass1 ); setdvar offline_custom_name offline_customclass1,
|
||||
;,
|
||||
IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 0 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( customclass2 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 1, customclass2 ),
|
||||
;,
|
||||
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 1 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( offline_customclass2 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 1, customclass2 ); setdvar offline_custom_name offline_customclass2,
|
||||
;,
|
||||
IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 1 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 2, dvarString( offline_customclass2 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 1, customclass2 ); setdvar offline_custom_name offline_customclass2,
|
||||
;,
|
||||
!IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 1 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( customclass3 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 2, customclass3 ),
|
||||
;,
|
||||
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 2 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( offline_customclass3 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 2, customclass3 ); setdvar offline_custom_name offline_customclass3,
|
||||
;,
|
||||
IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 2 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 3, dvarString( offline_customclass3 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 2, customclass3 ); setdvar offline_custom_name offline_customclass3,
|
||||
;,
|
||||
!IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 2 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( customclass4 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 3, customclass4 ),
|
||||
;,
|
||||
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 3 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( offline_customclass4 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 3, customclass4 ); setdvar offline_custom_name offline_customclass4,
|
||||
;,
|
||||
IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 3 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 4, dvarString( offline_customclass4 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 3, customclass4 ); setdvar offline_custom_name offline_customclass4,
|
||||
;,
|
||||
!IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 3 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( customclass5 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 4, customclass5 ),
|
||||
;,
|
||||
IS_ONLINE_GAME && !IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 4 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( offline_customclass5 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 4, customclass5 ); setdvar offline_custom_name offline_customclass5,
|
||||
;,
|
||||
IS_BASICTRAINING_GAME, ;,
|
||||
SETUP_HL_CAC( 4 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 5, dvarString( offline_customclass5 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 4, customclass5 ); setdvar offline_custom_name offline_customclass5,
|
||||
;,
|
||||
!IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 4 ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 6, dvarString( prestigeclass1 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 5, prestigeclass1 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_1 ),
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 5 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 6, dvarString( prestigeclass1 ),
|
||||
SET_CLASS_HIGHLIGHT_INDEX( 5 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_1", prestigeclass1 );,
|
||||
PRESTIGE_LEAVE_FOCUS;,
|
||||
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 5 ) )
|
||||
CHOICE_NEWICON_VIS( 6, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME ) )
|
||||
CHOICE_LOCKEDICON_VIS( 6, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 7, dvarString( prestigeclass2 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 6, prestigeclass2 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_2 ),
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 6 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 7, dvarString( prestigeclass2 ),
|
||||
SET_CLASS_HIGHLIGHT_INDEX( 6 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_2", prestigeclass2 );,
|
||||
PRESTIGE_LEAVE_FOCUS;,
|
||||
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 6 ) )
|
||||
CHOICE_NEWICON_VIS( 7, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME ) )
|
||||
CHOICE_LOCKEDICON_VIS( 7, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 8, dvarString( prestigeclass3 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 7, prestigeclass3 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_3 ),
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 7 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 8, dvarString( prestigeclass3 ),
|
||||
SET_CLASS_HIGHLIGHT_INDEX( 7 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_3", prestigeclass3 );,
|
||||
PRESTIGE_LEAVE_FOCUS;,
|
||||
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 7 ) )
|
||||
CHOICE_NEWICON_VIS( 8, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME ) )
|
||||
CHOICE_LOCKEDICON_VIS( 8, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 9, dvarString( prestigeclass4 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 8, prestigeclass4 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_4 ),
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 8 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 9, dvarString( prestigeclass4 ),
|
||||
SET_CLASS_HIGHLIGHT_INDEX( 8 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_4", prestigeclass4 );,
|
||||
PRESTIGE_LEAVE_FOCUS;,
|
||||
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 8 ) )
|
||||
CHOICE_NEWICON_VIS( 9, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME ) )
|
||||
CHOICE_LOCKEDICON_VIS( 9, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX_CUSTOMHL( 10, dvarString( prestigeclass5 ),
|
||||
SETUP_ACTION_CAC,
|
||||
SETUP_ONFOCUS_CAC( 9, prestigeclass5 ) CLEAR_ITEM_NEW( FEATURE_PRESTIGE_CLASS_5 ),
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 9 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX_CUSTOMHL( 10, dvarString( prestigeclass5 ),
|
||||
SET_CLASS_HIGHLIGHT_INDEX( 9 ) PRESTIGE_FOCUS( "FEATURE_PRESTIGE_CLASS_5", prestigeclass5 );,
|
||||
PRESTIGE_LEAVE_FOCUS;,
|
||||
IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME, ;,
|
||||
SETUP_HL_CAC( 9 ) )
|
||||
CHOICE_NEWICON_VIS( 10, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME ) )
|
||||
CHOICE_LOCKEDICON_VIS( 10, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME ) )
|
||||
|
||||
HINT_TEXT( 12, CHOICE_X_START, dvarString( ui_prestige_unlock_desc ), ( dvarBool( ui_show_arrow ) && ( dvarString( ui_prestige_unlock_desc ) != "" ) ) )
|
||||
|
||||
#include "ui_mp/cac_item_info.inc"
|
||||
|
||||
#ifndef PC
|
||||
// RENAME BUTTON =============================================================
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect -165 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
text "@PLATFORM_RENAME"
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
execkeyint BUTTON_X {CAC_SETUP_ACTION_RENAME}
|
||||
visible when( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME )
|
||||
decoration
|
||||
}
|
||||
// ROTATE =============================================================
|
||||
PREPROC_TEXT_DRAW( 95 (CAC_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@PLATFORM_ROTATE",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect 190 ( CAC_HEIGHT / 2 ) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
text "@PLATFORM_COPY_CLASS"
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
execkeyint BUTTON_Y { open copyClassPopup; }
|
||||
visible when( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME )
|
||||
decoration
|
||||
}
|
||||
|
||||
NEW_FRAME_BACK_BUTTON( CAC_WIDTH, CAC_HEIGHT )
|
||||
#else // #ifndef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXTFONT
|
||||
#define CHOICE_TEXTFONT UI_FONT_NORMAL
|
||||
// back button
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( CAC_WIDTH, CAC_HEIGHT, ON_ESC )
|
||||
// moved copy class into menu_cac_custom
|
||||
#endif // #ifndef PC
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
}
|
903
mods/mp_bots/ui_mp/custom_game_create.menu
Normal file
903
mods/mp_bots/ui_mp/custom_game_create.menu
Normal file
@ -0,0 +1,903 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/custom_mode.inc"
|
||||
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 13
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/common_game_options.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#include "ui_mp/custom_mode_layout.inc"
|
||||
|
||||
#undef NEW_FRAME_BUTTON_NAME
|
||||
#define NEW_FRAME_BUTTON_NAME "custom_game_create_"
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME NEW_FRAME_BUTTON_NAME
|
||||
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME custom_game_create
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "custom_game"
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_SMALL
|
||||
#endif //PC
|
||||
|
||||
#define CHOICE1_TEXT "@MPUI_RULES_TIME_LIMIT_CAPS"
|
||||
#define CHOICE1_DESC "@CUSTOM_GAME_TIME_LIMIT_DESC"
|
||||
#define CHOICE1_DVAR "custom_timelimit"
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_2_5MINUTES_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_3MINUTES_CAPS"
|
||||
#define CHOICE1_STR4 "@MPUI_RULES_5MINUTES_CAPS"
|
||||
#define CHOICE1_STR5 "@MPUI_RULES_8MINUTES_CAPS"
|
||||
#define CHOICE1_STR6 "@MPUI_RULES_10MINUTES_CAPS"
|
||||
#define CHOICE1_STR7 "@MPUI_RULES_15MINUTES_CAPS"
|
||||
#define CHOICE1_STR8 "@MPUI_RULES_20MINUTES_CAPS"
|
||||
#define CHOICE1_STR9 "@MPUI_RULES_30MINUTES_CAPS"
|
||||
#define CHOICE1_STR10 ""
|
||||
#define CHOICE1_STR11 ""
|
||||
#define CHOICE1_STR12 ""
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 2.5
|
||||
#define CHOICE1_VAL3 3
|
||||
#define CHOICE1_VAL4 5
|
||||
#define CHOICE1_VAL5 8
|
||||
#define CHOICE1_VAL6 10
|
||||
#define CHOICE1_VAL7 15
|
||||
#define CHOICE1_VAL8 20
|
||||
#define CHOICE1_VAL9 30
|
||||
#define CHOICE1_VAL10 0
|
||||
#define CHOICE1_VAL11 0
|
||||
#define CHOICE1_VAL12 0
|
||||
#define CHOICE1_EXEC ;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_NUMVALS 9
|
||||
#define CHOICE1_POPUP 1
|
||||
|
||||
#define CHOICE2_TEXT "@MPUI_RULES_SCORE_LIMIT_CAPS"
|
||||
#define CHOICE2_DESC "@CUSTOM_GAME_SCORE_LIMIT_DESC"
|
||||
#define CHOICE2_DVAR "custom_scorelimit"
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE2_STR2 "@MPUI_RULES_30POINTS_CAPS"
|
||||
#define CHOICE2_STR3 "@MPUI_RULES_50POINTS_CAPS"
|
||||
#define CHOICE2_STR4 "@MPUI_RULES_70POINTS_CAPS"
|
||||
#define CHOICE2_STR5 "@MPUI_RULES_100POINTS_CAPS"
|
||||
#define CHOICE2_STR6 "@MPUI_RULES_200POINTS_CAPS"
|
||||
#define CHOICE2_STR7 "@MPUI_RULES_250POINTS_CAPS"
|
||||
#define CHOICE2_STR8 "@MPUI_RULES_300POINTS_CAPS"
|
||||
#define CHOICE2_STR9 "@MPUI_RULES_500POINTS_CAPS"
|
||||
#define CHOICE2_STR10 "@MPUI_RULES_700POINTS_CAPS"
|
||||
#define CHOICE2_STR11 "@MPUI_RULES_750POINTS_CAPS"
|
||||
#define CHOICE2_STR12 "@MPUI_RULES_1000POINTS_CAPS"
|
||||
#define CHOICE2_VAL1 0
|
||||
#define CHOICE2_VAL2 30
|
||||
#define CHOICE2_VAL3 50
|
||||
#define CHOICE2_VAL4 70
|
||||
#define CHOICE2_VAL5 100
|
||||
#define CHOICE2_VAL6 200
|
||||
#define CHOICE2_VAL7 250
|
||||
#define CHOICE2_VAL8 300
|
||||
#define CHOICE2_VAL9 500
|
||||
#define CHOICE2_VAL10 700
|
||||
#define CHOICE2_VAL11 750
|
||||
#define CHOICE2_VAL12 1000
|
||||
#define CHOICE2_EXEC ;
|
||||
#define CHOICE2_STRLIST { CHOICE2_STR1 CHOICE2_VAL1 CHOICE2_STR2 CHOICE2_VAL2 CHOICE2_STR3 CHOICE2_VAL3 CHOICE2_STR4 CHOICE2_VAL4 CHOICE2_STR5 CHOICE2_VAL5 CHOICE2_STR6 CHOICE2_VAL6 CHOICE2_STR7 CHOICE2_VAL7 CHOICE2_STR8 CHOICE2_VAL8 CHOICE2_STR9 CHOICE2_VAL9 CHOICE2_STR10 CHOICE2_VAL10 CHOICE2_STR11 CHOICE2_VAL11 CHOICE2_STR12 CHOICE2_VAL12 }
|
||||
#define CHOICE2_NUMVALS 12
|
||||
#define CHOICE2_POPUP 1
|
||||
#define CHOICE2_VIS ( dvarString( ui_gametype ) == "dom" || dvarString( ui_gametype ) == "koth" )
|
||||
|
||||
#define CHOICE2_ALT_TEXT "@MPUI_RULES_SCORE_LIMIT_CAPS"
|
||||
#define CHOICE2_ALT_DVAR "custom_scorelimit"
|
||||
#define CHOICE2_ALT_DVARTEXT CHOICE2_ALT_DVAR"_text"
|
||||
#define CHOICE2_ALT_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE2_ALT_STR2 "@MPUI_RULES_750POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR3 "@MPUI_RULES_1000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR4 "@MPUI_RULES_1500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR5 "@MPUI_RULES_2500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR6 "@MPUI_RULES_3000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR7 "@MPUI_RULES_5000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR8 "@MPUI_RULES_7000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR9 "@MPUI_RULES_7500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR10 "@MPUI_RULES_10000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR11 "@MPUI_RULES_15000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR12 "@MPUI_RULES_30000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_VAL1 0
|
||||
#define CHOICE2_ALT_VAL2 750
|
||||
#define CHOICE2_ALT_VAL3 1000
|
||||
#define CHOICE2_ALT_VAL4 1500
|
||||
#define CHOICE2_ALT_VAL5 2500
|
||||
#define CHOICE2_ALT_VAL6 3000
|
||||
#define CHOICE2_ALT_VAL7 5000
|
||||
#define CHOICE2_ALT_VAL8 7000
|
||||
#define CHOICE2_ALT_VAL9 7500
|
||||
#define CHOICE2_ALT_VAL10 10000
|
||||
#define CHOICE2_ALT_VAL11 15000
|
||||
#define CHOICE2_ALT_VAL12 30000
|
||||
#define CHOICE2_ALT_EXEC ;
|
||||
#define CHOICE2_ALT_STRLIST { CHOICE2_ALT_STR1 CHOICE2_ALT_VAL1 CHOICE2_ALT_STR2 CHOICE2_ALT_VAL2 CHOICE2_ALT_STR3 CHOICE2_ALT_VAL3 CHOICE2_ALT_STR4 CHOICE2_ALT_VAL4 CHOICE2_ALT_STR5 CHOICE2_ALT_VAL5 CHOICE2_ALT_STR6 CHOICE2_ALT_VAL6 CHOICE2_ALT_STR7 CHOICE2_ALT_VAL7 CHOICE2_ALT_STR8 CHOICE2_ALT_VAL8 CHOICE2_ALT_STR9 CHOICE2_ALT_VAL9 CHOICE2_ALT_STR10 CHOICE2_ALT_VAL10 CHOICE2_ALT_STR11 CHOICE2_ALT_VAL11 CHOICE2_ALT_STR12 CHOICE2_ALT_VAL12 }
|
||||
#define CHOICE2_ALT_NUMVALS 12
|
||||
#define CHOICE2_ALT_POPUP 1
|
||||
#define CHOICE2_ALT_VIS ( dvarString( ui_gametype ) == "dm" || dvarString( ui_gametype ) == "tdm" )
|
||||
|
||||
#define IS_CHOICE2_VIS ( CHOICE2_VIS || CHOICE2_ALT_VIS )
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
execNow checkIfCustomGametypeChanged; \
|
||||
close self;
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name custom_game_create
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
visible when( MenuHasFocus() || dvarBool( ui_custom_save_to_file_share ) )
|
||||
onOpen
|
||||
{
|
||||
execnow ui_animate custom_game_create * highlightOff 0;
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
execNow beginCustomGametypeChanges;
|
||||
|
||||
if( IS_CHOICE2_VIS )
|
||||
{
|
||||
setLocalVarInt custom_shift_options_up 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
setLocalVarInt custom_shift_options_up 1;
|
||||
}
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
execNow checkIfCustomGametypeChanged;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
|
||||
execNow endCustomGametypeChanges;
|
||||
if( dvarBool( "ui_custom_haschanged" ) )
|
||||
{
|
||||
setdvar customGameMode 1;
|
||||
execNow "xupdatepartystate";
|
||||
}
|
||||
setLocalVarBool ui_choice_hideaccept 0;
|
||||
}
|
||||
|
||||
NEW_FRAME( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
NEW_FRAME_TITLE( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, "@CUSTOM_GAME_CREATE_CAPS", 1 )
|
||||
NEW_FRAME_SUBTITLE( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, CUSTOM_GAMETYPE_NAME, 1 )
|
||||
|
||||
CUSTOM_MODE_BACKGROUND_WATERMARK
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, CHOICE1_DVAR, CHOICE1_STRLIST, exec checkIfCustomGametypeChanged; CHOICE1_EXEC, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, 1 )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_TEXT, CHOICE2_DVAR, CHOICE2_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_VIS )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, CHOICE2_ALT_DVAR, CHOICE2_ALT_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_ALT_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_ALT_VIS )
|
||||
|
||||
#define SHOULD_SHIFT_CHOICES_UP ( localVarInt( custom_shift_options_up ) > 0 )
|
||||
|
||||
#define GAME_MODE_RULES_ACTION \
|
||||
exec openMenu ( "custom_settings_" + dvarString( "ui_gametype" ) );
|
||||
|
||||
#define BUTTON_3( itemIndex, visArg ) \
|
||||
CUSTOM_BUTTON( itemIndex, "@CUSTOM_GAME_MODE_OPTIONS_CAPS", GAME_MODE_RULES_ACTION, "@CUSTOM_GAME_MODE_OPTIONS_DESC", "", visArg )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_3( 2, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_3( 3, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
#define BUTTON_4( itemIndex, visArg ) \
|
||||
CUSTOM_BUTTON( itemIndex, "@CUSTOM_GENERAL_OPTIONS_CAPS", open "custom_settings_general", "@CUSTOM_GENERAL_OPTIONS_DESC", "", visArg )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_4( 3, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_4( 4, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
#define CUSTOM_OPTION_HIDEACCEPT( dvarName, dvarValue ) \
|
||||
if( dvarInt( dvarName ) == dvarValue ) \
|
||||
{ \
|
||||
setLocalVarBool ui_choice_hideaccept 0; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
setLocalVarBool ui_choice_hideaccept 1; \
|
||||
}
|
||||
|
||||
#define CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( dvarName, enabledValue, disabledString, enabledString ) \
|
||||
if( dvarInt( dvarName ) != enabledValue ) \
|
||||
{ \
|
||||
execnow set ui_choice_desc ( disabledString ); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow set ui_choice_desc ( enabledString ); \
|
||||
}
|
||||
|
||||
#define CUSTOM_OPTION_LEAVE_FOCUS \
|
||||
CLEAR_CHOICE_DESC \
|
||||
setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CUSTOM_OPTION_EXTRA( dvarName, dvarValue, menuName ) \
|
||||
execKeyInt BUTTON_A \
|
||||
{ \
|
||||
if( dvarInt( dvarName ) == dvarValue ) \
|
||||
{ \
|
||||
open menuName; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CUSTOM_CLASS_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_CLASS_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_class_mode, 1 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_class_mode, 1, "@CUSTOM_CLASS_EDITOR_DISABLED_DESC", "@CUSTOM_CLASS_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_CLASS_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_class_mode, 1, "@CUSTOM_CLASS_EDITOR_DISABLED_DESC", "@CUSTOM_CLASS_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_class_mode, 1 ) \
|
||||
if( dvarInt( custom_class_mode ) == 1 ) \
|
||||
{ \
|
||||
execNow reset scr_player_healthregentime; \
|
||||
} \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_5( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_CLASS_EDITOR_CAPS", custom_class_mode, \
|
||||
{ "@CUSTOM_ALLOW_PLAYER_CLASSES_CAPS" 0 "@CUSTOM_CUSTOM_CLASSES_CAPS" 1 }, \
|
||||
CUSTOM_CLASS_ACTION, \
|
||||
CUSTOM_CLASS_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( custom_class_mode, 1, "custom_classes" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_5( 4, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 4, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_classes", when(dvarInt(custom_class_mode) == 1 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_5( 5, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 5, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_classes", when(dvarInt(custom_class_mode) == 1 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
#define CUSTOM_KILLSTREAK_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_KILLSTREAK_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_killstreak_mode, 2 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_killstreak_mode, 2, "@CUSTOM_KILLSTREAK_EDITOR_DISABLED_DESC", "@CUSTOM_KILLSTREAK_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_KILLSTREAK_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_killstreak_mode, 2, "@CUSTOM_KILLSTREAK_EDITOR_DISABLED_DESC", "@CUSTOM_KILLSTREAK_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_killstreak_mode, 2 ) \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_6( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_KILLSTREAK_EDITOR", custom_killstreak_mode, \
|
||||
{ "@MPUI_ALLOW_PLAYER_KILLSTREAKS_CAPS" 0 "@MPUI_NO_KILLSTREAKS_CAPS" 1 "@MPUI_CUSTOM_KILLSTREAKS_CAPS" 2 }, \
|
||||
CUSTOM_KILLSTREAK_ACTION, \
|
||||
CUSTOM_KILLSTREAK_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( custom_killstreak_mode, 2, "custom_killstreaks" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_6( 5, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 5, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_killstreaks", when(dvarInt(custom_killstreak_mode) == 2 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_6( 6, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 6, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_killstreaks", when(dvarInt(custom_killstreak_mode) == 2 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
#define CUSTOM_PERK_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_PERK_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( scr_game_perks, 1 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( scr_game_perks, 1, "@CUSTOM_PERK_EDITOR_DISABLED_DESC", "@CUSTOM_PERK_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_PERK_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( scr_game_perks, 1, "@CUSTOM_PERK_EDITOR_DISABLED_DESC", "@CUSTOM_PERK_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( scr_game_perks, 1 ) \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_7( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_PERK_EDITOR_CAPS", scr_game_perks, \
|
||||
{ "@CUSTOM_DISABLE_PERKS_CAPS" 0 "@CUSTOM_ENABLE_PERKS_CAPS" 1 }, \
|
||||
CUSTOM_PERK_ACTION, \
|
||||
CUSTOM_PERK_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( scr_game_perks, 1, "custom_specialty_editor" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_7( 6, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 6, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_specialty_editor", when(dvarInt(scr_game_perks) == 1 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_7( 7, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 7, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_specialty_editor", when(dvarInt(scr_game_perks) == 1 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
// Game Recording Option (on/off)
|
||||
#define BUTTON_8( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( itemIndex, "@CUSTOM_GAME_RECORDING_CAPS", demo_recordPrivateMatch, \
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 }, \
|
||||
play CHOICE_FOCUS_SOUND;, \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_GAME_RECORDING_DESC", "" ), \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg && ( dvarInt( xblive_privatematch ) ) )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_8( 7, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_8( 8, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( NEW_FRAME_CHOICE_X_START (NEW_FRAME_CHOICE_Y_START + 230) CHOICE_SIZE_X 60 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0,
|
||||
"@CUSTOM_WARN_DEMO_SIZE",
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1,
|
||||
when( dvarInt( xblive_privatematch ) && dvarBool( demo_recordPrivateMatch ) ), autowrapped );
|
||||
|
||||
#ifdef PC
|
||||
// Pregame Enabled (yes/no)
|
||||
#define BUTTON_9( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( itemIndex, "@PATCH_PREGAME_ENABLED_CAPS", g_pregame_enabled, \
|
||||
play CHOICE_FOCUS_SOUND;, \
|
||||
SET_CHOICE_DESC( "", "@PLATFORM_PREGAME_ENABLED_DESC", "" );, \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg, ; )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#define CHOICE_SEP_4 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_9( 8, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#define CHOICE_SEP_4 8
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_9( 9, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
// Pregame Minplayers (edit)
|
||||
#define BUTTON_10( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( itemIndex, "@PATCH_PREGAME_MINPLAYERS_CAPS", party_minplayers, 3, \
|
||||
;, \
|
||||
SET_CHOICE_DESC( "", "@PLATFORM_PREGAME_MINPLAYERS_DESC", "" );, \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg, ; )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#define CHOICE_SEP_4 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_10( 9, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#define CHOICE_SEP_4 8
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_10( 10, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
CUSTOM_BUTTON( 14, "@CUSTOM_REVERT_CHANGES_CAPS", open popup_custom_confirm_revert;, "@CUSTOM_REVERT_CHANGES_DESC", "", 1 )
|
||||
#endif //#ifdef PC
|
||||
|
||||
CUSTOM_FRAME_HINT( ui_choice_desc )
|
||||
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, ON_ESC )
|
||||
SAVE_TO_FILESHARE_BUTTON_NEW_FRAME_ACTION( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
SAVE_TO_FILESHARE_BUTTON_NEW_FRAME( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
|
||||
#ifndef PC
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect ( 180 ) ( CUSTOM_MODE_FRAME_HEIGHT / 2 + 18 ) 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
origin 0 0
|
||||
text "@CUSTOM_BUTTON_REVERT_CHANGES"
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
execkeyint BUTTON_Y
|
||||
{
|
||||
open popup_custom_confirm_revert;
|
||||
}
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
CUSTOM_MODE_RESET_TO_DEFAULT_BUTTON( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, -76, open popup_custom_confirm_revert;, dvarBool( ui_custom_haschanged ) || dvarBool( customGameMode ) )
|
||||
|
||||
execKeyInt BUTTON_X
|
||||
{
|
||||
close self;
|
||||
UPLOAD_TO_FILESHARE
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
#define SAVE_ORIGINAL_SETTINGS_PC \
|
||||
exec set orig_host_name ( dvarString( sv_hostname ) ); \
|
||||
exec set orig_min_ping ( dvarInt( sv_minping ) ); \
|
||||
exec set orig_max_ping ( dvarInt( sv_maxping ) ); \
|
||||
exec set orig_password ( dvarString( g_password ) ); \
|
||||
exec set orig_voice ( dvarInt( sv_voice ) ); \
|
||||
exec set orig_allow_vote ( dvarInt( g_allowVote ) ); \
|
||||
exec set orig_sv_vac ( dvarInt( sv_vac ) );
|
||||
#else
|
||||
#define SAVE_ORIGINAL_SETTINGS_PC
|
||||
#endif
|
||||
|
||||
#define SAVE_ORIGINAL_SETTINGS \
|
||||
exec set orig_time ( dvarFloat( ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ) ); \
|
||||
exec set orig_score ( dvarInt( ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ) ); \
|
||||
exec set temp_time ( dvarFloat( ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ) ); \
|
||||
exec set temp_score ( dvarInt( ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ) ); \
|
||||
exec set orig_num_bots_friendly ( dvarInt( bot_friends ) ); \
|
||||
exec set orig_num_bots_enemy ( dvarInt( bot_enemies ) ); \
|
||||
exec set orig_bot_difficulty ( dvarString( bot_difficulty ) ); \
|
||||
exec set orig_bot_show_tips ( dvarInt( bot_tips ) ); \
|
||||
exec set orig_botUseFriendNames ( dvarInt( sv_botUseFriendNames ) ); \
|
||||
SAVE_ORIGINAL_SETTINGS_PC
|
||||
|
||||
#define SAVE_TIME_AND_SCORE \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ( dvarFloat( temp_time ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( temp_score ) );
|
||||
|
||||
#ifdef PC
|
||||
#define RESET_TO_ORIGINAL_SETTINGS_PC \
|
||||
exec set sv_hostname ( dvarString( orig_host_name ) ); \
|
||||
exec set sv_minping ( dvarInt( orig_min_ping ) ); \
|
||||
exec set sv_maxping ( dvarInt( orig_max_ping ) ); \
|
||||
exec set g_password ( dvarString( orig_password ) ); \
|
||||
exec set sv_voice ( dvarInt( orig_voice ) ); \
|
||||
exec set g_allowVote ( dvarInt( orig_allow_vote ) ); \
|
||||
exec set sv_vac ( dvarInt( orig_sv_vac ) );
|
||||
#else
|
||||
#define RESET_TO_ORIGINAL_SETTINGS_PC
|
||||
#endif
|
||||
|
||||
#define RESET_TO_ORIGINAL_SETTINGS \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( orig_score ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ( dvarFloat( orig_time ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( orig_score ) ); \
|
||||
exec set temp_time ( dvarFloat( orig_time ) ); \
|
||||
exec set temp_score ( dvarInt( orig_score ) ); \
|
||||
exec set bot_friends ( dvarInt( orig_num_bots_friendly ) ); \
|
||||
exec set bot_enemies ( dvarInt( orig_num_bots_enemy ) ); \
|
||||
exec set bot_difficulty ( dvarString( orig_bot_difficulty ) ); \
|
||||
exec set bot_tips ( dvarInt( orig_bot_show_tips ) ); \
|
||||
exec set sv_botUseFriendNames ( dvarInt( orig_botUseFriendNames ) ); \
|
||||
RESET_TO_ORIGINAL_SETTINGS_PC
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
|
||||
#ifdef PC
|
||||
#define BUTTON_SPACING 20
|
||||
#define REVERT_CHANGES_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
|
||||
#define BASIC_TRAINING_REVERT_CHANGES_BUTTON( FRAME_WIDTH, FRAME_HEIGHT, xArg, actionArg, visArg ) \
|
||||
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( FRAME_WIDTH, FRAME_HEIGHT, REVERT_CHANGES_OFFSET, "@PLATFORM_REVERT_CHANGES", actionArg, visArg )
|
||||
#else // #ifdef PC
|
||||
#define BASIC_TRAINING_REVERT_CHANGES_BUTTON( FRAME_WIDTH, FRAME_HEIGHT, xArg, actionArg, visArg ) \
|
||||
itemDef \
|
||||
{ \
|
||||
type ITEM_TYPE_BUTTON \
|
||||
rect ( xArg ) ( FRAME_HEIGHT / 2 + 18 ) 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
origin 0 0 \
|
||||
text "@PLATFORM_REVERT_CHANGES" \
|
||||
textfont CHOICE_TEXTFONT \
|
||||
textscale TEXTSIZE_DEFAULT \
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT \
|
||||
execkeyint BUTTON_BACK \
|
||||
{ \
|
||||
actionArg \
|
||||
} \
|
||||
visible when( visArg ) \
|
||||
decoration \
|
||||
}
|
||||
#endif // #else // #ifdef PC
|
||||
|
||||
#undef NEW_FRAME_BUTTON_NAME
|
||||
#define NEW_FRAME_BUTTON_NAME "basictraining_settings_"
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "basictraining_settings_"
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
#endif //PC
|
||||
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME basictraining_settings
|
||||
menuDef
|
||||
{
|
||||
name basictraining_settings
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
execnow ui_animate basictraining_settings * highlightOff 0;
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
execnow "Updatedvarsfromprofile";
|
||||
SAVE_ORIGINAL_SETTINGS
|
||||
|
||||
exec "set com_maxclients 30";
|
||||
exec "set sv_maxclients 30";
|
||||
exec "set party_maxplayers 30";
|
||||
exec "set sv_minping 0";
|
||||
exec "set sv_vac 0";
|
||||
exec "set bot_tips 0";
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
close self;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
SAVE_TIME_AND_SCORE
|
||||
exec "updategamerprofile";
|
||||
deactivateBlur;
|
||||
}
|
||||
|
||||
NEW_FRAME( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT )
|
||||
NEW_FRAME_TITLE( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, "@MPUI_BASICTRAINING_SETTINGS_CAPS", 1 )
|
||||
|
||||
|
||||
#undef A_BUTTON_OFFSET_X
|
||||
#define A_BUTTON_OFFSET_X 100000
|
||||
|
||||
#define IS_WAGER_GAME \
|
||||
( dvarString( "ui_gametype" ) == "hlnd" || dvarString( "ui_gametype" ) == "oic" || dvarString( "ui_gametype" ) == "gun" || dvarString( "ui_gametype" ) == "shrp" )
|
||||
|
||||
#define IS_TEAM_GAME \
|
||||
( dvarString( "ui_gametype" ) == "tdm" || dvarString( "ui_gametype" ) == "hc_tdm" || dvarString( "ui_gametype" ) == "sd" || dvarString( "ui_gametype" ) == "dom" || dvarString( "ui_gametype" ) == "koth" || dvarString( "ui_gametype" ) == "dem" || dvarString( "ui_gametype" ) == "ctf" || dvarString( "ui_gametype" ) == "sab" )
|
||||
|
||||
#define IS_FFA_GAME \
|
||||
( dvarString( "ui_gametype" ) == "dm" || dvarString( "ui_gametype" ) == "hc_dm" )
|
||||
|
||||
#define BALANCE_TEAMS_FRIENDLY \
|
||||
if( dvarInt( bot_friends ) + dvarInt( bot_enemies ) > dvarInt( party_maxplayers ) ) \
|
||||
{ \
|
||||
exec set bot_enemies ( dvarInt( party_maxplayers ) - dvarInt( bot_friends ) ); \
|
||||
} \
|
||||
|
||||
#define BALANCE_TEAMS_ENEMY \
|
||||
if( dvarInt( bot_enemies ) + dvarInt( bot_friends ) > dvarInt( party_maxplayers ) ) \
|
||||
{ \
|
||||
exec set bot_friends ( dvarInt( party_maxplayers ) - dvarInt( bot_enemies ) ); \
|
||||
} \
|
||||
|
||||
// tdm & hardcore tdm
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, temp_time, CHOICE1_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ), CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_TEXT, temp_score, CHOICE2_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_VIS && IS_TEAM_GAME )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, temp_score, CHOICE2_ALT_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_ALT_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_ALT_VIS && IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 3, "@MPUI_FRIENDLY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_friends,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_FRIENDLY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_FRIENDLY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@MPUI_FRIENDLY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_friends_extra,
|
||||
{ "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 "19" 19 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_FRIENDLY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 5, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 6, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 7, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 8, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 9, "REASONABLE SETUPS",
|
||||
bot_reasonable,
|
||||
{ "DISABLED" 0 "ENABLED" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "Bots will only use weapons, perks and killstreaks that are 'good' and/or 'overpowered' for themselves.", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
// ffa & hardcore ffa
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, temp_time, CHOICE1_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ), CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, temp_score, CHOICE2_ALT_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ), CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 3, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 5, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 6, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 7, "REASONABLE SETUPS",
|
||||
bot_reasonable,
|
||||
{ "DISABLED" 0 "ENABLED" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "Bots will only use weapons, perks and killstreaks that are 'good' and/or 'overpowered' for themselves.", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
// wager matches
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 3, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
#undef CHOICE_DVAR_WIDTH_OFFSET
|
||||
#define CHOICE_DVAR_WIDTH_OFFSET 60
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 10, "@PLATFORM_SERVER_NAME_CAPS",
|
||||
"sv_hostname", 20, 20,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_SERVER_NAME_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 11, "@PLATFORM_MAXIMUM_PING_CAPS",
|
||||
"sv_maxping", 4,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MAXIMUM_PING_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 12, "@PLATFORM_PASSWORD1_CAPS",
|
||||
"g_password", 12, 12,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_PASSWORD_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 13, "@PLATFORM_VOICECHAT_CAPS",
|
||||
"sv_voice",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_VOICECHAT_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
#undef CHOICE_TEXT_COLOR
|
||||
#define CHOICE_TEXT_COLOR 1 1 1 1
|
||||
|
||||
#undef A_BUTTON_OFFSET_X
|
||||
#define A_BUTTON_OFFSET_X 0
|
||||
|
||||
CUSTOM_FRAME_HINT( ui_choice_desc )
|
||||
|
||||
BASIC_TRAINING_REVERT_CHANGES_BUTTON( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, -76, open popup_basictraining_confirm_revert;, 1 )
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, close self; )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
}
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
|
||||
// mekberg: No idea why the above include is not setting this. I've wasted a half hour trying to figure why. Instead I'm just going to hack this here.
|
||||
#ifdef PC
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X (POPUP_WIDTH-(POPUP_SIDE_PAD*2))
|
||||
#endif // PC
|
||||
|
||||
menuDef
|
||||
{
|
||||
#define CUSTOM_ERROR_ONESC \
|
||||
uiScript clearError; \
|
||||
close self;
|
||||
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_custom_game_error, ;, CUSTOM_ERROR_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( dvarString( "com_errorTitle" ), 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( dvarString( "com_errorMessage" ), 1 )
|
||||
|
||||
#define CUSTOM_ERROR_ACTION \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
uiScript clearError; \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, "@MENU_EXIT", CUSTOM_ERROR_ACTION, play CHOICE_FOCUS_SOUND, ;, 1, ; )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "popup_custom_confirm_revert", setfocus popup_custom_confirm_revert_2, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@CUSTOM_REVERT_CHANGES_CONFIRM_TITLE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES_CAPS", execNow "revertCustomGametypeChanges"; exec "xupdatepartystate"; close self, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO_CAPS", close self, 1, name popup_custom_confirm_revert_2 )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "popup_basictraining_confirm_revert", setfocus popup_basictraining_confirm_revert_2, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_REVERT_BASICTRAINING_CONFIRM_TITLE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", RESET_TO_ORIGINAL_SETTINGS close self, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name popup_basictraining_confirm_revert_2 )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
}
|
538
mods/mp_bots/ui_mp/pc_basictraining.menu
Normal file
538
mods/mp_bots/ui_mp/pc_basictraining.menu
Normal file
@ -0,0 +1,538 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/newframe.inc"
|
||||
|
||||
#define CHOICE_X_START -258
|
||||
#define CHOICE_Y_START 35
|
||||
#define BUTTON_BG_WIDTH 180
|
||||
|
||||
#define CHOICE_SEP_OFFSET_X 20
|
||||
#define CHOICE_SEP_OFFSET_Y -2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_GROUP "xboxlive_basictraining"
|
||||
|
||||
#define FLYOUT_NONE 0
|
||||
#define FLYOUT_TRAINING 3
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui_mp/friendslist.inc"
|
||||
|
||||
#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
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X BUTTON_BG_WIDTH
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#undef CHOICE_Y_SPACING
|
||||
#define CHOICE_Y_SPACING CHOICE_SIZE_Y
|
||||
|
||||
#define FLYOUT_BG_COLOR 0 0 0 0.3
|
||||
|
||||
#define SELECTION_IMAGE_BIG( materialArg ) ( "menu_" + materialArg + "_map_select_big" )
|
||||
|
||||
#define BOT_DVAR_CHECK \
|
||||
execNow if ( dvarInt( bot_friends ) > 11 ) set bot_friends 11; exec "updategamerprofile"; \
|
||||
execNow if ( dvarInt( bot_enemies ) > 11 ) set bot_enemies 11; exec "updategamerprofile";
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
setdvar xblive_basictraining "0"; \
|
||||
setDvar xblive_privatematch "0" \
|
||||
setDvar leaveImmediately "0"; \
|
||||
close self; \
|
||||
open main_text;
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name menu_xboxlive_basictraining
|
||||
fullscreen 1
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
border 0
|
||||
soundloop MENU_MUSIC
|
||||
control MENU_CONTROL_USED
|
||||
allowSignIn
|
||||
|
||||
onOpen
|
||||
{
|
||||
execnow "validatePrivateMatchGametype";
|
||||
exec "exec dvar_defaults.cfg";
|
||||
setDvar onlinegame "1";
|
||||
setdvar xblive_rankedmatch "0";
|
||||
setdvar xblive_basictraining "1";
|
||||
setdvar ui_inviteonly "0";
|
||||
setdvar invite_visible "1";
|
||||
setdvar ui_selectlobby "0";
|
||||
setdvar popup_open "0";
|
||||
|
||||
execNow set scr_hc_tdm_scorelimit ( dvarString( scr_tdm_scorelimit ) );
|
||||
execNow set scr_hc_dm_scorelimit ( dvarString( scr_dm_scorelimit ) );
|
||||
execNow set scr_hc_tdm_timelimit ( dvarString( scr_tdm_timelimit ) );
|
||||
execNow set scr_hc_dm_timelimit ( dvarString( scr_dm_timelimit ) );
|
||||
|
||||
execNow if ( !dvarbool( "xblive_basictraining_popup" ) ) openmenu "basictraining_msg";
|
||||
|
||||
exec set ui_bg_image SELECTION_IMAGE_BIG( dvarString( ui_mapname ) );
|
||||
|
||||
exec set show_list_player_info 0;
|
||||
CLEARUIHINT
|
||||
if ( dvarInt( scr_hardcore ) == 1 )
|
||||
{
|
||||
if ( dvarString( ui_gametype ) == "dm" )
|
||||
{
|
||||
execNow set ui_gametype( "hc_dm" );
|
||||
}
|
||||
|
||||
if ( dvarString( ui_gametype ) == "tdm" )
|
||||
{
|
||||
execNow set ui_gametype( "hc_tdm" );
|
||||
}
|
||||
}
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
if ( dvarString( ui_gametype ) != dm && dvarString( ui_gametype ) != hc_dm )
|
||||
{
|
||||
//BOT_DVAR_CHECK;
|
||||
}
|
||||
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
exec set ui_bg_image SELECTION_IMAGE_BIG( dvarString( ui_mapname ) );
|
||||
}
|
||||
onClose
|
||||
{
|
||||
play "uin_navigation_backout";
|
||||
setdvar popup_open "1";
|
||||
setfocus popup_hide;
|
||||
hide selection_right;
|
||||
setdvar ui_bg_image "";
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
// ------------------ statics ------------------------
|
||||
#include "ui_mp/blurredbg.inc"
|
||||
|
||||
// ----------------- Scroller --------------------------
|
||||
#include "ui/scroller.inc"
|
||||
|
||||
// ----------------- title --------------------------
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MPUI_BASICTRAINING_LOBBY_CAPS", ITEM_ALIGN_TOP_RIGHT, 1 )
|
||||
|
||||
// ---------------------------- map ------------------------------------
|
||||
#define GAMEINFO_ORIENTATION 1
|
||||
#define GAMEINFO_X CHOICE_X_START
|
||||
#define GAMEINFO_Y 235
|
||||
#define GAMEINFO_ORIGIN GAMEINFO_X GAMEINFO_Y
|
||||
#define GAMEINFO_WIDTH BUTTON_BG_WIDTH
|
||||
#define GAMEINFO_WIDTH2 GAMEINFO_WIDTH
|
||||
#define GAMEINFO_HEIGHT 80
|
||||
|
||||
#include "ui_mp/game_info.inc"
|
||||
#define MAPIMAGE SELECTION_IMAGE_FINAL( dvarString( ui_mapname ) )
|
||||
#define MAPNAME locString( tableLookup( "mp/mapstable.csv", 0, dvarString( ui_mapname ), 3 ) )
|
||||
#define GAMETYPENAME locString( tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 ) )
|
||||
|
||||
#define VOTE_BG_SIZE 20
|
||||
|
||||
#define SELECTION_IMAGE_FINAL( materialArg ) \
|
||||
( "menu_" + materialArg + "_map_select_final" )
|
||||
|
||||
#define MAP_SELECTION_INFO( xPos, yPos, widthArg, heightArg, mapName, gametypeName, visArg ) \
|
||||
PREPROC_TEXT_DRAW_ALL( (xPos+widthArg-96-8) (yPos+heightArg-VOTE_BG_SIZE+1-18) 96 24 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, \
|
||||
0 0, toUpper( mapName ), TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
|
||||
visArg, ; ) \
|
||||
PREPROC_TEXT_DRAW_VIS( (xPos+widthArg-96-8) (yPos+heightArg-VOTE_BG_SIZE+1) 96 20 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, \
|
||||
0 0, gametypeName, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1, \
|
||||
visArg )
|
||||
|
||||
#define MAP_X_START (-MAP_WIDTH-112)
|
||||
#define MAP_Y_START (-MAP_HEIGHT-25)
|
||||
#define MAP_WIDTH 183
|
||||
#define MAP_ASPECT_RATIO (203/275)
|
||||
#define MAP_HEIGHT (MAP_WIDTH*MAP_ASPECT_RATIO)
|
||||
|
||||
PREPROC_SHADER_DRAW_VIS_EX( MAP_X_START MAP_Y_START MAP_WIDTH MAP_HEIGHT CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM,
|
||||
MAPIMAGE, 1 1 1 1,
|
||||
1, ; )
|
||||
|
||||
MAP_SELECTION_INFO( MAP_X_START, MAP_Y_START, MAP_WIDTH, MAP_HEIGHT, MAPNAME, GAMETYPENAME, 1 )
|
||||
|
||||
// ---------------------- locked hint -------------------------
|
||||
#define HINT_X_START ( CHOICE_X_START - 13 )
|
||||
HINT_TEXT_ALL( 9, HINT_X_START, 7, CHOICE_SIZE_X, dvarString( ui_hint_text ), 1 1 1 1, dvarBool( ui_show_arrow ), ; )
|
||||
|
||||
|
||||
// ---------------------- party status description -------------------------
|
||||
#define STATUS_START_X 145
|
||||
#define STATUS_START_Y -48
|
||||
#define STATUS_RECT STATUS_START_X STATUS_START_Y 150 25 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_OPEN_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 0 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_OPEN_FRIENDS_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 1 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_INVITE_ONLY_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 2 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_CLOSE_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 3 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
|
||||
|
||||
//=========================================================
|
||||
//================= MENU SELECTION ACTIONS ================
|
||||
//=========================================================
|
||||
#define SETUP_GAME_MODE \
|
||||
resetdvar scr_hardcore; \
|
||||
resetdvar scr_team_fftype; \
|
||||
resetdvar scr_player_healthregentime; \
|
||||
resetdvar scr_player_maxhealth; \
|
||||
resetdvar scr_tdm_waverespawndelay; \
|
||||
resetdvar scr_game_allowkillcam; \
|
||||
resetdvar scr_allowbattlechatter; \
|
||||
resetdvar scr_team_kickteamkillers; \
|
||||
resetdvar scr_game_suicidepointloss; \
|
||||
resetdvar scr_team_teamkillpointloss; \
|
||||
resetdvar scr_dog_health; \
|
||||
resetdvar scr_dm_playerrespawndelay; \
|
||||
resetdvar scr_disable_tacinsert; \
|
||||
if ( dvarString( ui_gametype ) == "hc_tdm" )\
|
||||
{ \
|
||||
execNow set scr_tdm_scorelimit ( dvarFloat( scr_hc_tdm_scorelimit ) ); \
|
||||
execNow set scr_tdm_timelimit ( dvarFloat( scr_hc_tdm_timelimit ) ); \
|
||||
execNow set g_gametype "tdm"; \
|
||||
execNow set ui_gametype "tdm"; \
|
||||
execNow set scr_hardcore 1; \
|
||||
execNow set scr_team_fftype 1; \
|
||||
execNow set scr_player_healthregentime 0; \
|
||||
execNow set scr_player_maxhealth 30; \
|
||||
execNow set scr_tdm_waverespawndelay 15; \
|
||||
execNow set scr_game_allowkillcam 0; \
|
||||
execNow set scr_allowbattlechatter 0; \
|
||||
execNow set scr_team_kickteamkillers 1; \
|
||||
execNow set scr_game_suicidepointloss -100; \
|
||||
execNow set scr_team_teamkillpointloss -100; \
|
||||
execNow set scr_dog_health 30; \
|
||||
} \
|
||||
if ( dvarString( ui_gametype ) == "hc_dm" )\
|
||||
{ \
|
||||
execNow set scr_dm_scorelimit ( dvarFloat( scr_hc_dm_scorelimit ) ); \
|
||||
execNow set scr_dm_timelimit ( dvarFloat( scr_hc_dm_timelimit ) ); \
|
||||
execNow set g_gametype "dm"; \
|
||||
execNow set ui_gametype "dm"; \
|
||||
execNow set scr_hardcore 1; \
|
||||
execNow set scr_player_healthregentime 0; \
|
||||
execNow set scr_player_maxhealth 30; \
|
||||
execNow set scr_game_allowkillcam 0; \
|
||||
execNow set scr_allowbattlechatter 0; \
|
||||
execNow set scr_dm_playerrespawndelay 7; \
|
||||
execNow set scr_game_suicidepointloss -50; \
|
||||
execNow set scr_dog_health 30; \
|
||||
execNow set scr_disable_tacinsert 1; \
|
||||
} \
|
||||
if ( dvarString( ui_gametype ) == "shrp" || dvarString( ui_gametype ) == "gun" || dvarString( ui_gametype ) == "oic" || dvarString( ui_gametype ) == "hlnd" ) \
|
||||
{ \
|
||||
execNow set bot_wager "1"; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execNow set bot_wager "0"; \
|
||||
} \
|
||||
execNow set scr_hlnd_timelimit ""; \
|
||||
execNow set scr_hlnd_scorelimit ""; \
|
||||
execNow set scr_oic_timelimit ""; \
|
||||
execNow set scr_oic_scorelimit ""; \
|
||||
execNow set scr_gun_timelimit ""; \
|
||||
execNow set scr_gun_scorelimit ""; \
|
||||
execNow set scr_shrp_timelimit ""; \
|
||||
execNow set scr_shrp_scorelimit "";
|
||||
|
||||
|
||||
#define SETUP_ACTION_STARTMATCH \
|
||||
SETUP_GAME_MODE \
|
||||
exec "selectStringTableEntryInDvar mp/didyouknow.csv 0 didyouknow"; \
|
||||
uiscript StartListenServer;
|
||||
|
||||
#define SETUP_ACTION_GAMESETUP \
|
||||
open basictraining_settings;
|
||||
|
||||
#define SETUP_ACTION_CREATEACLASS \
|
||||
execnow "set ui_cac_ingame 0"; \
|
||||
setdvar invite_visible "0"; \
|
||||
/*exec "uploadstats";*/ \
|
||||
open cac_main;
|
||||
|
||||
#define SETUP_ACTION_CONTRACTS \
|
||||
exec "endsplitscreensignin"; \
|
||||
open menu_xboxlive_contracts;
|
||||
|
||||
#define SETUP_ACTION_KILLSTREAKS \
|
||||
exec "endsplitscreensignin"; \
|
||||
open menu_xboxlive_killstreaks;
|
||||
|
||||
|
||||
//=========================================================
|
||||
//===================== MENU SELECTION ====================
|
||||
//=========================================================
|
||||
#define ANY_NEW_TRAINING_PLAYERCARD_FEATURE \
|
||||
( ANY_NEW_CHALLENGES || IS_ITEM_NEW( FEATURE_COMBAT_RECORD ) )
|
||||
|
||||
#define IS_LOBBY_HOST 1
|
||||
#define IS_NOT_LOBBY_HOST 0
|
||||
|
||||
// HOST BUTTONS
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 1, "@MPUI_START_MATCH_CAPS",
|
||||
SETUP_ACTION_STARTMATCH,
|
||||
SET_HINT_TEXT( "@MPUI_START_MATCH_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 1 ), 0 0, "@MPUI_START_MATCH_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 2, "@MPUI_CHANGE_MAP_CAPS",
|
||||
open select_map,
|
||||
SET_HINT_TEXT( "@MPUI_CHANGE_MAP_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 2 ), 0 0, "@MPUI_CHANGE_MAP_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 3, "@MPUI_CHANGE_GAME_MODE_CAPS",
|
||||
open select_game_mode,
|
||||
SET_HINT_TEXT( "@MPUI_CHANGE_GAME_MODE_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 3 ), 0 0, "@MPUI_CHANGE_GAME_MODE_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 4, "@MPUI_EDIT_GAME_OPTIONS_CAPS",
|
||||
SETUP_ACTION_GAMESETUP,
|
||||
SET_HINT_TEXT( "@MPUI_EDIT_GAME_OPTIONS_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 4 ), 0 0, "@MPUI_EDIT_GAME_OPTIONS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 5, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
SETUP_ACTION_CREATEACLASS,
|
||||
SET_HINT_TEXT( "@MPUI_CAC_DESC" ) CLEAR_ITEM_NEW( FEATURE_CREATE_A_CLASS ),
|
||||
CLEARUIHINT,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
TEMP_CHOICE_DBUTTON_FOCUS_VIS_EX( 5, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
SET_HINT_TEXT( GET_UNLOCK_LEVEL_STRING( FEATURE_CREATE_A_CLASS ) ),
|
||||
CLEARUIHINT,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE, ; )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 5 ), 0 0, "@MPUI_CREATE_A_CLASS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 5, "menu_mp_lobby_new", when( ANY_NEW_CAC && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
CHOICE_LOCKEDICON_VIS( 5, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 6, "@MENU_KILLSTREAKS_CAPS",
|
||||
SETUP_ACTION_KILLSTREAKS,
|
||||
SET_HINT_TEXT( "@MPUI_KILLSTREAKS_DESC" ) CLEAR_ITEM_NEW( FEATURE_KILLSTREAKS ),
|
||||
CLEARUIHINT,
|
||||
!IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
TEMP_CHOICE_DBUTTON_FOCUS_VIS_EX( 6, "@MENU_KILLSTREAKS_CAPS",
|
||||
SET_HINT_TEXT( GET_UNLOCK_LEVEL_STRING( FEATURE_KILLSTREAKS ) ),
|
||||
CLEARUIHINT,
|
||||
IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE, ; )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 6 ), 0 0, "@MENU_KILLSTREAKS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 6, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
CHOICE_LOCKEDICON_VIS( 6, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 8, "@MENU_PLAYERCARD_CAPS",
|
||||
SETUP_ACTION_PLAYERCARD,
|
||||
SET_HINT_TEXT( "@MPUI_PLAYERCARD_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 8 ), 0 0, "@MENU_PLAYERCARD_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 8, "menu_mp_lobby_new", when( ANY_NEW_TRAINING_PLAYERCARD_FEATURE && IS_LOBBY_HOST && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXTFONT
|
||||
#define CHOICE_TEXTFONT UI_FONT_NORMAL
|
||||
|
||||
// Friends button
|
||||
FRIENDS_BUTTON
|
||||
|
||||
// back button
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC( ON_ESC )
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "basictraining_difficulty"
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START (-FRAME_DEFAULT_WIDTH/2+15)
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START ( -FRAME_DEFAULT_HEIGHT / 2 + 15 + NEW_FRAME_BG_Y_OFFSET( FRAME_DEFAULT_HEIGHT ) )
|
||||
|
||||
#define DIFFICULTY_NAME_X 0
|
||||
#define DIFFICULTY_NAME_Y CHOICE_Y_START
|
||||
|
||||
#define ITEM_IMAGE_X DIFFICULTY_NAME_X
|
||||
#define ITEM_IMAGE_Y (CHOICE_Y_START-5)
|
||||
#define ITEM_IMAGE_ASPECT_RATIO 1
|
||||
#define ITEM_IMAGE_WIDTH (ITEM_IMAGE_HEIGHT * ITEM_IMAGE_ASPECT_RATIO)
|
||||
#define ITEM_IMAGE_HEIGHT 240
|
||||
#define ITEM_IMAGE_SIZE ITEM_IMAGE_WIDTH ITEM_IMAGE_HEIGHT
|
||||
|
||||
#define DIFFICULTY_NAME_SIZE ITEM_IMAGE_WIDTH 30
|
||||
|
||||
#define DIFFICULTY_DESC_X (ITEM_IMAGE_X + 20)
|
||||
#define DIFFICULTY_DESC_Y (ITEM_IMAGE_Y + ITEM_IMAGE_HEIGHT - 20)
|
||||
#define DIFFICULTY_DESC_SIZE 200 75
|
||||
|
||||
#define DIFFICULTY_INFO \
|
||||
/* Name */ \
|
||||
PREPROC_TEXT_DRAW( DIFFICULTY_NAME_X DIFFICULTY_NAME_Y DIFFICULTY_NAME_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0, \
|
||||
localVarString( ui_info_name ), \
|
||||
TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1 ) \
|
||||
/* Image */ \
|
||||
PREPROC_SHADER_DRAW( ITEM_IMAGE_X ITEM_IMAGE_Y ITEM_IMAGE_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, \
|
||||
localVarString( ui_diff_pic ), 1 1 1 0.9 ) \
|
||||
/* Description */ \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( DIFFICULTY_DESC_X DIFFICULTY_DESC_Y DIFFICULTY_DESC_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0, \
|
||||
localVarString( ui_info ), \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, FRAME_LT_GREY_RGB 1, \
|
||||
1, autowrapped )
|
||||
|
||||
#define DIFFICULTY_ONFOCUS( descArg, nameArg, imageArg )\
|
||||
setLocalVarString ui_info descArg; \
|
||||
setLocalVarString ui_info_name nameArg; \
|
||||
setLocalVarString ui_diff_pic imageArg
|
||||
|
||||
#define SET_DIFFICULTY( difficulty ) \
|
||||
exec set bot_difficulty difficulty; \
|
||||
close self;
|
||||
|
||||
#undef CHOICE_SEP_SPACING
|
||||
#define CHOICE_SEP_SPACING 0
|
||||
|
||||
menuDef
|
||||
{
|
||||
name basictraining_difficulty
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
play uin_navigation_menu_lg_open;
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
execNow "updategamerprofile";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
}
|
||||
execKeyInt BUTTON_B { }
|
||||
|
||||
FRAME_DEFAULT
|
||||
FRAME_TITLE_DEFAULT( "@MENU_SELECT_DIFFICULTY_CAPS", 1 )
|
||||
|
||||
//FRAME_SUBTITLE_DEFAULT( "@MENU_SELECT_DIFF_DESC", 1 ) This was commented out in the main basictraining/difficulty menus on all platforms in cl#702108, so there doesn't seem to be a good reason to have it here any longer
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, "@MENU_RECRUIT_CAPS",
|
||||
SET_DIFFICULTY( "easy" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_RECRUIT_DESC", "@MENU_RECRUIT_CAPS", "playlist_sp_recr" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 2, "@MENU_REGULAR_CAPS",
|
||||
SET_DIFFICULTY( "normal" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_REGULAR_DESC", "@MENU_REGULAR_CAPS", "playlist_sp_reg" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 3, "@MENU_HARDENED_CAPS",
|
||||
SET_DIFFICULTY( "hard" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_HARDENED_DESC", "@MENU_HARDENED_CAPS", "playlist_sp_hard" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 4, "@MENU_VETERAN_CAPS",
|
||||
SET_DIFFICULTY( "fu" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_VETERAN_DESC", "@MENU_VETERAN_CAPS", "playlist_sp_vet" ),
|
||||
;, 1, ; )
|
||||
|
||||
DIFFICULTY_INFO
|
||||
}
|
||||
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
#undef CHOICE_Y_SPACING
|
||||
#define CHOICE_Y_SPACING (CHOICE_SIZE_Y + 2)
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
|
||||
#undef MEDIUM_POPUP_TITLE_X_START
|
||||
#define MEDIUM_POPUP_TITLE_X_START POPUP_SIDE_PAD
|
||||
#undef MEDIUM_POPUP_TITLE_Y_START
|
||||
#define MEDIUM_POPUP_TITLE_Y_START POPUP_SIDE_PAD
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X ( (MEDIUM_POPUP_WIDTH - (POPUP_SIDE_PAD * 2) ) / 2 )
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_BOTTOM
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( basictraining_msg, ;, close self;, POPUP_GLOW_WHITE, 0, 1 )
|
||||
onClose
|
||||
{
|
||||
setDvar xblive_basictraining_popup "1";
|
||||
open basictraining_difficulty;
|
||||
}
|
||||
execkeyint BUTTON_START {}
|
||||
execKeyInt APAD_UP {}
|
||||
execKeyInt DPAD_UP {}
|
||||
execKeyInt APAD_DOWN {}
|
||||
execKeyInt DPAD_DOWN {}
|
||||
execKeyInt APAD_LEFT {}
|
||||
execKeyInt DPAD_LEFT {}
|
||||
execKeyInt APAD_RIGHT {}
|
||||
execKeyInt DPAD_RIGHT {}
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MEDIUM_POPUP_TITLE_X_START MEDIUM_POPUP_TITLE_Y_START (MEDIUM_POPUP_WIDTH-30) MEDIUM_POPUP_TITLE_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@MPUI_BASICTRAINING_LOBBY_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, 1, autowrapped )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MEDIUM_POPUP_TITLE_X_START (MEDIUM_POPUP_TITLE_Y_START+MEDIUM_POPUP_TITLE_HEIGHT+10) (MEDIUM_POPUP_WIDTH-30) 100 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@MPUI_BASICTRAINING_POPUP_DESC", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, 1, autowrapped )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_CONTINUE", close self;, 1, ; )
|
||||
}
|
||||
}
|
1352
mods/mp_bots/ui_mp/playercards.menu
Normal file
1352
mods/mp_bots/ui_mp/playercards.menu
Normal file
File diff suppressed because it is too large
Load Diff
30
mods/mp_patch/clientscripts/mp/_claymore.csc
Normal file
30
mods/mp_patch/clientscripts/mp/_claymore.csc
Normal file
@ -0,0 +1,30 @@
|
||||
#include clientscripts\mp\_utility;
|
||||
#include clientscripts\mp\_rewindobjects;
|
||||
|
||||
init( localClientNum )
|
||||
{
|
||||
level._effect["fx_claymore_laser"] = loadfx( "weapon/claymore/fx_claymore_laser" );
|
||||
}
|
||||
|
||||
spawned( localClientNum )
|
||||
{
|
||||
self endon( "entityshutdown" );
|
||||
|
||||
self waittill_dobj(localClientNum);
|
||||
|
||||
while( true )
|
||||
{
|
||||
if( IsDefined( self.stunned ) && self.stunned )
|
||||
{
|
||||
wait( 0.1 );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
self.claymoreLaserFXId = PlayFXOnTag( localClientNum, level._effect["fx_claymore_laser"], self, "tag_fx" );
|
||||
|
||||
self waittill( "stunned" );
|
||||
stopfx(localClientNum, self.claymoreLaserFXId);
|
||||
|
||||
}
|
||||
}
|
1957
mods/mp_patch/maps/mp/_dogs.gsc
Normal file
1957
mods/mp_patch/maps/mp/_dogs.gsc
Normal file
File diff suppressed because it is too large
Load Diff
2202
mods/mp_patch/maps/mp/_utility.gsc
Normal file
2202
mods/mp_patch/maps/mp/_utility.gsc
Normal file
File diff suppressed because it is too large
Load Diff
7247
mods/mp_patch/maps/mp/gametypes/_bot.gsc
Normal file
7247
mods/mp_patch/maps/mp/gametypes/_bot.gsc
Normal file
File diff suppressed because it is too large
Load Diff
2629
mods/mp_patch/maps/mp/gametypes/_globallogic_player.gsc
Normal file
2629
mods/mp_patch/maps/mp/gametypes/_globallogic_player.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1070
mods/mp_patch/maps/mp/gametypes/_globallogic_score.gsc
Normal file
1070
mods/mp_patch/maps/mp/gametypes/_globallogic_score.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1574
mods/mp_patch/maps/mp/gametypes/_spawning.gsc
Normal file
1574
mods/mp_patch/maps/mp/gametypes/_spawning.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1517
mods/mp_patch/maps/mp/gametypes/ctf.gsc
Normal file
1517
mods/mp_patch/maps/mp/gametypes/ctf.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1319
mods/mp_patch/maps/mp/gametypes/dem.gsc
Normal file
1319
mods/mp_patch/maps/mp/gametypes/dem.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1426
mods/mp_patch/maps/mp/gametypes/dom.gsc
Normal file
1426
mods/mp_patch/maps/mp/gametypes/dom.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1106
mods/mp_patch/maps/mp/gametypes/koth.gsc
Normal file
1106
mods/mp_patch/maps/mp/gametypes/koth.gsc
Normal file
File diff suppressed because it is too large
Load Diff
958
mods/mp_patch/maps/mp/gametypes/sab.gsc
Normal file
958
mods/mp_patch/maps/mp/gametypes/sab.gsc
Normal file
@ -0,0 +1,958 @@
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
/*
|
||||
Sabotage
|
||||
|
||||
// ...etc...
|
||||
*/
|
||||
|
||||
/*QUAKED mp_sab_spawn_axis (0.75 0.0 0.5) (-16 -16 0) (16 16 72)
|
||||
Axis players spawn away from enemies and near their team at one of these positions.*/
|
||||
|
||||
/*QUAKED mp_sab_spawn_allies (0.0 0.75 0.5) (-16 -16 0) (16 16 72)
|
||||
Allied players spawn away from enemies and near their team at one of these positions.*/
|
||||
|
||||
/*QUAKED mp_sab_spawn_axis_start (1.0 0.0 0.5) (-16 -16 0) (16 16 72)
|
||||
Axis players spawn away from enemies and near their team at one of these positions at the start of a round.*/
|
||||
|
||||
/*QUAKED mp_sab_spawn_allies_start (0.0 1.0 0.5) (-16 -16 0) (16 16 72)
|
||||
Allied players spawn away from enemies and near their team at one of these positions at the start of a round.*/
|
||||
|
||||
main()
|
||||
{
|
||||
if ( GetDvar( #"mapname") == "mp_background" )
|
||||
return;
|
||||
|
||||
maps\mp\gametypes\_globallogic::init();
|
||||
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
|
||||
maps\mp\gametypes\_globallogic::SetupCallbacks();
|
||||
|
||||
level.teamBased = true;
|
||||
level.overrideTeamScore = true;
|
||||
|
||||
maps\mp\gametypes\_globallogic_utils::registerRoundSwitchDvar( level.gameType, 0, 0, 9 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerTimeLimitDvar( level.gameType, 10, 0, 1440 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerScoreLimitDvar( level.gameType, 0, 0, 500 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerRoundLimitDvar( level.gameType, 1, 0, 10 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerNumLivesDvar( level.gameType, 0, 0, 10 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerRoundWinLimitDvar( level.gameType, 0, 0, 10 );
|
||||
|
||||
maps\mp\gametypes\_weapons::registerGrenadeLauncherDudDvar( level.gameType, 10, 0, 1440 );
|
||||
maps\mp\gametypes\_weapons::registerThrownGrenadeDudDvar( level.gameType, 0, 0, 1440 );
|
||||
maps\mp\gametypes\_weapons::registerKillstreakDelay( level.gameType, 0, 0, 1440 );
|
||||
|
||||
maps\mp\gametypes\_globallogic::registerFriendlyFireDelay( level.gameType, 15, 0, 1440 );
|
||||
|
||||
level.onStartGameType = ::onStartGameType;
|
||||
level.onSpawnPlayer = ::onSpawnPlayer;
|
||||
level.onSpawnPlayerUnified = ::onSpawnPlayerUnified;
|
||||
level.gamemodeSpawnDvars = ::sab_gamemodeSpawnDvars;
|
||||
level.onRoundEndGame = ::onRoundEndGame;
|
||||
|
||||
if ( !game["tiebreaker"] )
|
||||
{
|
||||
level.onPrecacheGameType = ::onPrecacheGameType;
|
||||
level.onTimeLimit = ::onTimeLimit;
|
||||
level.onDeadEvent = ::onDeadEvent;
|
||||
level.onRoundSwitch = ::onRoundSwitch;
|
||||
level.onPlayerKilled = ::onPlayerKilled;
|
||||
|
||||
level.endGameOnScoreLimit = false;
|
||||
|
||||
game["dialog"]["gametype"] = "sab_start";
|
||||
game["dialog"]["gametype_hardcore"] = "hcsab_start";
|
||||
game["dialog"]["offense_obj"] = "destroy_start";
|
||||
game["dialog"]["defense_obj"] = "destroy_start";
|
||||
game["dialog"]["sudden_death"] = "suddendeath";
|
||||
game["dialog"]["sudden_death_boost"] = "generic_boost";
|
||||
}
|
||||
else
|
||||
{
|
||||
level.onEndGame = ::onEndGame;
|
||||
|
||||
level.endGameOnScoreLimit = false;
|
||||
|
||||
game["dialog"]["gametype"] = "sab_start";
|
||||
game["dialog"]["gametype_hardcore"] = "hcsab_start";
|
||||
game["dialog"]["offense_obj"] = "generic_boost";
|
||||
game["dialog"]["defense_obj"] = "generic_boost";
|
||||
game["dialog"]["sudden_death"] = "suddendeath";
|
||||
game["dialog"]["sudden_death_boost"] = "generic_boost";
|
||||
|
||||
maps\mp\gametypes\_globallogic_utils::registerNumLivesDvar( "tb", 1, 1, 1 );
|
||||
maps\mp\gametypes\_globallogic_utils::registerTimeLimitDvar( "tb", 0, 0, 0 );
|
||||
}
|
||||
|
||||
badtrig = getent( "sab_bomb_defuse_allies", "targetname" );
|
||||
if ( isdefined( badtrig ) )
|
||||
badtrig delete();
|
||||
|
||||
badtrig = getent( "sab_bomb_defuse_axis", "targetname" );
|
||||
if ( isdefined( badtrig ) )
|
||||
badtrig delete();
|
||||
|
||||
level.lastDialogTime = 0;
|
||||
|
||||
// Sets the scoreboard columns and determines with data is sent across the network
|
||||
setscoreboardcolumns( "kills", "deaths", "plants", "defuses" );
|
||||
}
|
||||
|
||||
onPrecacheGameType()
|
||||
{
|
||||
game["bomb_dropped_sound"] = "mp_war_objective_lost";
|
||||
game["bomb_recovered_sound"] = "mp_war_objective_taken";
|
||||
|
||||
precacheShader("waypoint_bomb");
|
||||
precacheShader("waypoint_kill");
|
||||
precacheShader("waypoint_bomb_enemy");
|
||||
precacheShader("waypoint_defend");
|
||||
precacheShader("waypoint_defuse");
|
||||
precacheShader("waypoint_target");
|
||||
precacheShader("compass_waypoint_bomb");
|
||||
precacheShader("compass_waypoint_defend");
|
||||
precacheShader("compass_waypoint_defuse");
|
||||
precacheShader("compass_waypoint_target");
|
||||
precacheShader("hud_suitcase_bomb");
|
||||
|
||||
precacheString(&"MP_EXPLOSIVES_RECOVERED_BY");
|
||||
precacheString(&"MP_EXPLOSIVES_RECOVERED_BY");
|
||||
precacheString(&"MP_EXPLOSIVES_DROPPED_BY");
|
||||
precacheString(&"MP_EXPLOSIVES_PLANTED_BY");
|
||||
precacheString(&"MP_EXPLOSIVES_DEFUSED_BY");
|
||||
precacheString(&"MP_YOU_HAVE_RECOVERED_THE_BOMB");
|
||||
precacheString(&"PLATFORM_HOLD_TO_PLANT_EXPLOSIVES");
|
||||
precacheString(&"PLATFORM_HOLD_TO_DEFUSE_EXPLOSIVES");
|
||||
precacheString(&"MP_PLANTING_EXPLOSIVE");
|
||||
precacheString(&"MP_DEFUSING_EXPLOSIVE");
|
||||
precacheString(&"MP_TARGET_DESTROYED");
|
||||
precacheString(&"MP_NO_RESPAWN");
|
||||
precacheString(&"MP_TIE_BREAKER");
|
||||
precacheString(&"MP_NO_RESPAWN");
|
||||
precacheString(&"MP_SUDDEN_DEATH");
|
||||
}
|
||||
|
||||
|
||||
onRoundSwitch()
|
||||
{
|
||||
if ( !isdefined( game["switchedsides"] ) )
|
||||
game["switchedsides"] = false;
|
||||
|
||||
if ( game["teamScores"]["allies"] == level.scorelimit - 1 && game["teamScores"]["axis"] == level.scorelimit - 1 )
|
||||
{
|
||||
level.halftimeType = "overtime";
|
||||
level.halftimeSubCaption = &"MP_TIE_BREAKER";
|
||||
game["tiebreaker"] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
level.halftimeType = "halftime";
|
||||
game["switchedsides"] = !game["switchedsides"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onStartGameType()
|
||||
{
|
||||
if ( !isdefined( game["switchedsides"] ) )
|
||||
game["switchedsides"] = false;
|
||||
|
||||
setClientNameMode("auto_change");
|
||||
|
||||
game["strings"]["target_destroyed"] = &"MP_TARGET_DESTROYED";
|
||||
|
||||
if ( !game["tiebreaker"] )
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", &"OBJECTIVES_SAB" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", &"OBJECTIVES_SAB" );
|
||||
|
||||
if ( level.splitscreen )
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_SAB" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_SAB" );
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_SAB_SCORE" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_SAB_SCORE" );
|
||||
}
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "allies", &"OBJECTIVES_SAB_HINT" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "axis", &"OBJECTIVES_SAB_HINT" );
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveText( "allies", &"OBJECTIVES_TDM" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveText( "axis", &"OBJECTIVES_TDM" );
|
||||
|
||||
if ( level.splitscreen )
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM" );
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "allies", &"OBJECTIVES_TDM_SCORE" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveScoreText( "axis", &"OBJECTIVES_TDM_SCORE" );
|
||||
}
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "allies", &"OBJECTIVES_TDM_HINT" );
|
||||
maps\mp\gametypes\_globallogic_ui::setObjectiveHintText( "axis", &"OBJECTIVES_TDM_HINT" );
|
||||
}
|
||||
|
||||
level.spawnMins = ( 0, 0, 0 );
|
||||
level.spawnMaxs = ( 0, 0, 0 );
|
||||
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_allies_start" );
|
||||
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_axis_start" );
|
||||
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_sab_spawn_allies" );
|
||||
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_sab_spawn_axis" );
|
||||
maps\mp\gametypes\_spawning::updateAllSpawnPoints();
|
||||
|
||||
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
|
||||
setMapCenter( level.mapCenter );
|
||||
|
||||
spawnpoint = maps\mp\gametypes\_spawnlogic::getRandomIntermissionPoint();
|
||||
setDemoIntermissionPoint( spawnpoint.origin, spawnpoint.angles );
|
||||
|
||||
level.spawn_axis = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_axis" );
|
||||
level.spawn_allies = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_allies" );
|
||||
level.spawn_axis_start = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_axis_start" );
|
||||
level.spawn_allies_start = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_allies_start" );
|
||||
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "plant", 500 );
|
||||
maps\mp\gametypes\_rank::registerScoreInfo( "defuse", 500 );
|
||||
|
||||
allowed[0] = "sab";
|
||||
maps\mp\gametypes\_gameobjects::main(allowed);
|
||||
|
||||
// now that the game objects have been deleted place the influencers
|
||||
maps\mp\gametypes\_spawning::create_map_placed_influencers();
|
||||
|
||||
thread updateGametypeDvars();
|
||||
|
||||
thread sabotage();
|
||||
}
|
||||
|
||||
|
||||
onTimeLimit()
|
||||
{
|
||||
if ( level.inOvertime )
|
||||
return;
|
||||
|
||||
thread onOvertime();
|
||||
}
|
||||
|
||||
|
||||
onOvertime()
|
||||
{
|
||||
level endon ( "game_ended" );
|
||||
|
||||
level.timeLimitOverride = true;
|
||||
level.inOvertime = true;
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "sudden_death" );
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "sudden_death_boost" );
|
||||
for ( index = 0; index < level.players.size; index++ )
|
||||
{
|
||||
level.players[index] notify("force_spawn");
|
||||
level.players[index] thread maps\mp\gametypes\_hud_message::oldNotifyMessage( &"MP_SUDDEN_DEATH", &"MP_NO_RESPAWN", undefined, (1, 0, 0), "mp_last_stand" );
|
||||
|
||||
level.players[index] setClientUIVisibilityFlag( "g_compassShowEnemies", 1 );
|
||||
}
|
||||
|
||||
SetMatchTalkFlag( "DeadChatWithDead", 1 );
|
||||
SetMatchTalkFlag( "DeadChatWithTeam", 0 );
|
||||
SetMatchTalkFlag( "DeadHearTeamLiving", 0 );
|
||||
SetMatchTalkFlag( "DeadHearAllLiving", 0 );
|
||||
SetMatchTalkFlag( "EveryoneHearsEveryone", 0 );
|
||||
|
||||
waitTime = 0;
|
||||
while ( waitTime < 90 )
|
||||
{
|
||||
if ( !level.bombPlanted )
|
||||
{
|
||||
waitTime += 1;
|
||||
setGameEndTime( getTime() + ((90-waitTime)*1000) );
|
||||
}
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
thread maps\mp\gametypes\_globallogic::endGame( "tie", game["strings"]["tie"] );
|
||||
}
|
||||
|
||||
|
||||
onDeadEvent( team )
|
||||
{
|
||||
if ( level.bombExploded )
|
||||
return;
|
||||
|
||||
if ( team == "all" )
|
||||
{
|
||||
if ( level.bombPlanted )
|
||||
{
|
||||
[[level._setTeamScore]]( level.bombPlantedBy, [[level._getTeamScore]]( level.bombPlantedBy ) + 1 );
|
||||
thread maps\mp\gametypes\_globallogic::endGame( level.bombPlantedBy, game["strings"][level.bombPlantedBy+"_mission_accomplished"] );
|
||||
}
|
||||
else
|
||||
{
|
||||
thread maps\mp\gametypes\_globallogic::endGame( "tie", game["strings"]["tie"] );
|
||||
}
|
||||
}
|
||||
else if ( level.bombPlanted )
|
||||
{
|
||||
if ( team == level.bombPlantedBy )
|
||||
{
|
||||
level.plantingTeamDead = true;
|
||||
return;
|
||||
}
|
||||
|
||||
[[level._setTeamScore]]( level.bombPlantedBy, [[level._getTeamScore]]( level.bombPlantedBy ) + 1 );
|
||||
thread maps\mp\gametypes\_globallogic::endGame( level.bombPlantedBy, game["strings"][level.otherTeam[level.bombPlantedBy]+"_eliminated"] );
|
||||
}
|
||||
else
|
||||
{
|
||||
[[level._setTeamScore]]( level.otherTeam[team], [[level._getTeamScore]]( level.otherTeam[team] ) + 1 );
|
||||
thread maps\mp\gametypes\_globallogic::endGame( level.otherTeam[team], game["strings"][team+"_eliminated"] );
|
||||
}
|
||||
}
|
||||
|
||||
onSpawnPlayerUnified()
|
||||
{
|
||||
self.isPlanting = false;
|
||||
self.isDefusing = false;
|
||||
self.isBombCarrier = false;
|
||||
|
||||
if ( game["tiebreaker"] )
|
||||
{
|
||||
self thread maps\mp\gametypes\_hud_message::oldNotifyMessage( &"MP_TIE_BREAKER", &"MP_NO_RESPAWN", undefined, (1, 0, 0), "mp_last_stand" );
|
||||
|
||||
hintMessage = maps\mp\gametypes\_globallogic_ui::getObjectiveHintText( self.pers["team"] );
|
||||
if ( isDefined( hintMessage ) )
|
||||
self DisplayGameModeMessage( hintMessage, "uin_alert_slideout" );
|
||||
|
||||
self setClientUIVisibilityFlag( "g_compassShowEnemies", 1 );
|
||||
|
||||
// this is being redundantly set everytime a player spawns
|
||||
// need to move this to a once only for eveyone when tiebreaker round
|
||||
// starts
|
||||
SetMatchTalkFlag( "DeadChatWithDead", 1 );
|
||||
SetMatchTalkFlag( "DeadChatWithTeam", 0 );
|
||||
SetMatchTalkFlag( "DeadHearTeamLiving", 0 );
|
||||
SetMatchTalkFlag( "DeadHearAllLiving", 0 );
|
||||
SetMatchTalkFlag( "EveryoneHearsEveryone", 0 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_spawning::onSpawnPlayer_Unified();
|
||||
}
|
||||
|
||||
|
||||
onSpawnPlayer()
|
||||
{
|
||||
self.isPlanting = false;
|
||||
self.isDefusing = false;
|
||||
self.isBombCarrier = false;
|
||||
|
||||
spawnteam = self.pers["team"];
|
||||
if ( game["switchedsides"] )
|
||||
spawnteam = getOtherTeam( spawnteam );
|
||||
|
||||
if ( level.useStartSpawns )
|
||||
{
|
||||
if (spawnteam == "axis")
|
||||
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(level.spawn_axis_start);
|
||||
else
|
||||
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(level.spawn_allies_start);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (spawnteam == "axis")
|
||||
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam(level.spawn_axis);
|
||||
else
|
||||
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam(level.spawn_allies);
|
||||
}
|
||||
|
||||
if ( game["tiebreaker"] )
|
||||
{
|
||||
self thread maps\mp\gametypes\_hud_message::oldNotifyMessage( &"MP_TIE_BREAKER", &"MP_NO_RESPAWN", undefined, (1, 0, 0), "mp_last_stand" );
|
||||
|
||||
hintMessage = maps\mp\gametypes\_globallogic_ui::getObjectiveHintText( self.pers["team"] );
|
||||
if ( isDefined( hintMessage ) )
|
||||
self DisplayGameModeMessage( hintMessage, "uin_alert_slideout" );
|
||||
|
||||
self setClientUIVisibilityFlag( "g_compassShowEnemies", 1 );
|
||||
// this is being redundantly set everytime a player spawns
|
||||
// need to move this to a once only for eveyone when tiebreaker round
|
||||
// starts
|
||||
SetMatchTalkFlag( "DeadChatWithDead", 1 );
|
||||
SetMatchTalkFlag( "DeadChatWithTeam", 0 );
|
||||
SetMatchTalkFlag( "DeadHearTeamLiving", 0 );
|
||||
SetMatchTalkFlag( "DeadHearAllLiving", 0 );
|
||||
SetMatchTalkFlag( "EveryoneHearsEveryone", 0 );
|
||||
}
|
||||
|
||||
assert( isDefined(spawnpoint) );
|
||||
|
||||
self spawn( spawnpoint.origin, spawnpoint.angles, "sab" );
|
||||
}
|
||||
|
||||
|
||||
updateGametypeDvars()
|
||||
{
|
||||
level.plantTime = dvarFloatValue( "planttime", 5, 0, 20 );
|
||||
level.defuseTime = dvarFloatValue( "defusetime", 5, 0, 20 );
|
||||
level.bombTimer = dvarFloatValue( "bombtimer", 45, 1, 300 );
|
||||
level.hotPotato = dvarIntValue( "hotpotato", 1, 0, 1 );
|
||||
}
|
||||
|
||||
|
||||
sabotage()
|
||||
{
|
||||
level.bombPlanted = false;
|
||||
level.bombExploded = false;
|
||||
|
||||
level._effect["bombexplosion"] = loadfx("maps/mp_maps/fx_mp_exp_bomb");
|
||||
|
||||
trigger = getEnt( "sab_bomb_pickup_trig", "targetname" );
|
||||
if ( !isDefined( trigger ) )
|
||||
{
|
||||
error( "No sab_bomb_pickup_trig trigger found in map." );
|
||||
return;
|
||||
}
|
||||
|
||||
visuals[0] = getEnt( "sab_bomb", "targetname" );
|
||||
if ( !isDefined( visuals[0] ) )
|
||||
{
|
||||
error( "No sab_bomb script_model found in map." );
|
||||
return;
|
||||
}
|
||||
|
||||
//precacheModel( "t5_weapon_briefcase_world" );
|
||||
//visuals[0] setModel( "t5_weapon_briefcase_world" );
|
||||
level.sabBomb = maps\mp\gametypes\_gameobjects::createCarryObject( "neutral", trigger, visuals, (0,0,32) );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::allowCarry( "any" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_bomb" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_bomb" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_bomb" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_bomb" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::setCarryIcon( "hud_suitcase_bomb" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
|
||||
level.sabBomb.objIDPingEnemy = true;
|
||||
level.sabBomb.onPickup = ::onPickup;
|
||||
level.sabBomb.onDrop = ::onDrop;
|
||||
level.sabBomb.allowWeapons = true;
|
||||
level.sabBomb.objPoints["allies"].archived = true;
|
||||
level.sabBomb.objPoints["axis"].archived = true;
|
||||
level.sabBomb.autoResetTime = 60.0;
|
||||
|
||||
if ( !isDefined( getEnt( "sab_bomb_axis", "targetname" ) ) )
|
||||
{
|
||||
error("No sab_bomb_axis trigger found in map.");
|
||||
return;
|
||||
}
|
||||
if ( !isDefined( getEnt( "sab_bomb_allies", "targetname" ) ) )
|
||||
{
|
||||
error("No sab_bomb_allies trigger found in map.");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( game["switchedsides"] )
|
||||
{
|
||||
level.bombZones["allies"] = createBombZone( "allies", getEnt( "sab_bomb_axis", "targetname" ) );
|
||||
level.bombZones["axis"] = createBombZone( "axis", getEnt( "sab_bomb_allies", "targetname" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
level.bombZones["allies"] = createBombZone( "allies", getEnt( "sab_bomb_allies", "targetname" ) );
|
||||
level.bombZones["axis"] = createBombZone( "axis", getEnt( "sab_bomb_axis", "targetname" ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
createBombZone( team, trigger )
|
||||
{
|
||||
visuals = getEntArray( trigger.target, "targetname" );
|
||||
|
||||
bombZone = maps\mp\gametypes\_gameobjects::createUseObject( team, trigger, visuals, (0,0,64) );
|
||||
bombZone resetBombsite();
|
||||
bombZone.onUse = ::onUse;
|
||||
bombZone.onBeginUse = ::onBeginUse;
|
||||
bombZone.onEndUse = ::onEndUse;
|
||||
bombZone.onCantUse = ::onCantUse;
|
||||
bombZone.useWeapon = "briefcase_bomb_mp";
|
||||
bombZone.visuals[0].killCamEnt = spawn( "script_model", bombZone.visuals[0].origin + (0,0,128) );
|
||||
|
||||
for ( i = 0; i < visuals.size; i++ )
|
||||
{
|
||||
if ( isDefined( visuals[i].script_exploder ) )
|
||||
{
|
||||
bombZone.exploderIndex = visuals[i].script_exploder;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return bombZone;
|
||||
}
|
||||
|
||||
|
||||
onBeginUse( player )
|
||||
{
|
||||
// planted the bomb
|
||||
if ( !self maps\mp\gametypes\_gameobjects::isFriendlyTeam( player.pers["team"] ) )
|
||||
{
|
||||
player.isPlanting = true;
|
||||
player thread maps\mp\gametypes\_battlechatter_mp::gametypeSpecificBattleChatter( "sd_friendlyplant", player.pers["team"] );
|
||||
}
|
||||
else
|
||||
{
|
||||
player.isDefusing = true;
|
||||
player thread maps\mp\gametypes\_battlechatter_mp::gametypeSpecificBattleChatter( "sd_enemyplant", player.pers["team"] );
|
||||
}
|
||||
|
||||
player playSound( "fly_bomb_raise_plr" );
|
||||
}
|
||||
|
||||
onEndUse( team, player, result )
|
||||
{
|
||||
if ( !isAlive( player ) )
|
||||
return;
|
||||
|
||||
player.isPlanting = false;
|
||||
player.isDefusing = false;
|
||||
player notify( "event_ended" );
|
||||
}
|
||||
|
||||
|
||||
onPickup( player )
|
||||
{
|
||||
level notify ( "bomb_picked_up" );
|
||||
|
||||
self.autoResetTime = 60.0;
|
||||
|
||||
level.useStartSpawns = false;
|
||||
|
||||
team = player.pers["team"];
|
||||
|
||||
if ( team == "allies" )
|
||||
otherTeam = "axis";
|
||||
else
|
||||
otherTeam = "allies";
|
||||
|
||||
//player iPrintLnBold( &"MP_YOU_HAVE_RECOVERED_THE_BOMB" );
|
||||
player playLocalSound( "mp_suitcase_pickup" );
|
||||
player logString( "bomb taken" );
|
||||
|
||||
excludeList[0] = player;
|
||||
|
||||
if( getTime() - level.lastDialogTime > 10000 )
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_acquired", team );
|
||||
player maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "obj_destroy", "bomb" );
|
||||
|
||||
|
||||
if ( !level.splitscreen )
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_taken", otherTeam );
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "obj_defend", otherTeam );
|
||||
}
|
||||
|
||||
level.lastDialogTime = getTime();
|
||||
}
|
||||
player.isBombCarrier = true;
|
||||
|
||||
player maps\mp\gametypes\_persistence::statAddWithGameType( "PICKUPS", 1 );
|
||||
|
||||
|
||||
// recovered the bomb before abandonment timer elapsed
|
||||
if ( team == self maps\mp\gametypes\_gameobjects::getOwnerTeam() )
|
||||
{
|
||||
printOnTeamArg( &"MP_EXPLOSIVES_RECOVERED_BY", team, player );
|
||||
playSoundOnPlayers( game["bomb_recovered_sound"], team );
|
||||
}
|
||||
else
|
||||
{
|
||||
printOnTeamArg( &"MP_EXPLOSIVES_RECOVERED_BY", team, player );
|
||||
// printOnTeamArg( &"MP_EXPLOSIVES_RECOVERED_BY", otherTeam, &"MP_THE_ENEMY" );
|
||||
playSoundOnPlayers( game["bomb_recovered_sound"] );
|
||||
}
|
||||
|
||||
self maps\mp\gametypes\_gameobjects::setOwnerTeam( team );
|
||||
self maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_target" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_kill" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_defend" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defend" );
|
||||
|
||||
level.bombZones[team] maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
level.bombZones[otherTeam] maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
|
||||
|
||||
level.bombZones[otherTeam].trigger SetInvisibleToAll();
|
||||
level.bombZones[otherTeam].trigger SetVisibleToPlayer( player );
|
||||
}
|
||||
|
||||
|
||||
onDrop( player )
|
||||
{
|
||||
if ( level.bombPlanted )
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( isDefined( player ) )
|
||||
printOnTeamArg( &"MP_EXPLOSIVES_DROPPED_BY", self maps\mp\gametypes\_gameobjects::getOwnerTeam(), player );
|
||||
// else
|
||||
// printOnTeamArg( &"MP_EXPLOSIVES_DROPPED_BY", self maps\mp\gametypes\_gameobjects::getOwnerTeam(), &"MP_YOUR_TEAM" );
|
||||
|
||||
playSoundOnPlayers( game["bomb_dropped_sound"], self maps\mp\gametypes\_gameobjects::getOwnerTeam() );
|
||||
if ( isDefined( player ) )
|
||||
player logString( "bomb dropped" );
|
||||
else
|
||||
logString( "bomb dropped" );
|
||||
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_lost", self maps\mp\gametypes\_gameobjects::getOwnerTeam() );
|
||||
|
||||
player notify( "event_ended" );
|
||||
|
||||
level.bombZones["axis"].trigger SetInvisibleToAll();
|
||||
level.bombZones["allies"].trigger SetInvisibleToAll();
|
||||
|
||||
thread abandonmentThink( 0.0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
abandonmentThink( delay )
|
||||
{
|
||||
level endon ( "bomb_picked_up" );
|
||||
|
||||
wait ( delay );
|
||||
|
||||
if ( isDefined( self.carrier ) )
|
||||
return;
|
||||
|
||||
if ( self maps\mp\gametypes\_gameobjects::getOwnerTeam() == "allies" )
|
||||
otherTeam = "axis";
|
||||
else
|
||||
otherTeam = "allies";
|
||||
|
||||
// printOnTeamArg( &"MP_EXPLOSIVES_DROPPED_BY", otherTeam, &"MP_THE_ENEMY" );
|
||||
playSoundOnPlayers( game["bomb_dropped_sound"], otherTeam );
|
||||
|
||||
self maps\mp\gametypes\_gameobjects::setOwnerTeam( "neutral" );
|
||||
self maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_bomb" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_bomb" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_bomb" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_bomb" );
|
||||
|
||||
level.bombZones["allies"] maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
level.bombZones["axis"] maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
}
|
||||
|
||||
|
||||
onUse( player )
|
||||
{
|
||||
team = player.pers["team"];
|
||||
otherTeam = level.otherTeam[team];
|
||||
// planted the bomb
|
||||
if ( !self maps\mp\gametypes\_gameobjects::isFriendlyTeam( player.pers["team"] ) )
|
||||
{
|
||||
player notify ( "bomb_planted" );
|
||||
// removed old playsound entry CDC 2/18/10
|
||||
// player playSound( "mpl_sab_bomb_plant" );
|
||||
player logString( "bomb planted" );
|
||||
|
||||
if( isdefined(player.pers["plants"]) )
|
||||
{
|
||||
player.pers["plants"]++;
|
||||
player.plants = player.pers["plants"];
|
||||
}
|
||||
|
||||
player maps\mp\_medals::saboteur();
|
||||
|
||||
player maps\mp\gametypes\_persistence::statAddWithGameType( "PLANTS", 1 );
|
||||
|
||||
level thread maps\mp\_popups::DisplayTeamMessageToAll( &"MP_EXPLOSIVES_PLANTED_BY", player );
|
||||
|
||||
//thread playSoundOnPlayers( "mus_sab_planted"+"_"+level.teamPostfix[team] );
|
||||
// Play Action music
|
||||
//maps\mp\_music::setmusicstate( "ACTION" );
|
||||
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_planted", team );
|
||||
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_planted", otherTeam );
|
||||
|
||||
maps\mp\gametypes\_globallogic_score::givePlayerScore( "plant", player );
|
||||
//player thread [[level.onXPEvent]]( "plant" );
|
||||
|
||||
level thread bombPlanted( self, player.pers["team"] );
|
||||
|
||||
level.bombOwner = player;
|
||||
|
||||
player.isBombCarrier = false;
|
||||
|
||||
// self.keyObject maps\mp\gametypes\_gameobjects::disableObject();
|
||||
level.sabBomb.autoResetTime = undefined;
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::allowCarry( "none" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::setDropped();
|
||||
self.useWeapon = "briefcase_bomb_defuse_mp";
|
||||
|
||||
self setUpForDefusing();
|
||||
}
|
||||
else // defused the bomb
|
||||
{
|
||||
player notify ( "bomb_defused" );
|
||||
player logString( "bomb defused" );
|
||||
|
||||
if( isdefined(player.pers["defuses"]) )
|
||||
{
|
||||
player.pers["defuses"]++;
|
||||
player.defuses = player.pers["defuses"];
|
||||
}
|
||||
|
||||
player maps\mp\_medals::hero();
|
||||
|
||||
player maps\mp\gametypes\_persistence::statAddWithGameType( "DEFUSES", 1 );
|
||||
|
||||
level thread maps\mp\_popups::DisplayTeamMessageToAll( &"MP_EXPLOSIVES_DEFUSED_BY", player );
|
||||
//thread playSoundOnPlayers( "mus_sab_defused"+"_"+level.teamPostfix[team] );
|
||||
maps\mp\gametypes\_globallogic_audio::set_music_on_team( "UNDERSCORE", "both", true );
|
||||
|
||||
maps\mp\gametypes\_globallogic_audio::leaderDialog( "bomb_defused" );
|
||||
|
||||
maps\mp\gametypes\_globallogic_score::givePlayerScore( "defuse", player );
|
||||
//player thread [[level.onXPEvent]]( "defuse" );
|
||||
|
||||
level thread bombDefused( self );
|
||||
|
||||
if ( level.inOverTime && isDefined( level.plantingTeamDead ) )
|
||||
{
|
||||
thread maps\mp\gametypes\_globallogic::endGame( player.pers["team"], game["strings"][level.bombPlantedBy+"_eliminated"] );
|
||||
return;
|
||||
}
|
||||
|
||||
self resetBombsite();
|
||||
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::allowCarry( "any" );
|
||||
level.sabBomb maps\mp\gametypes\_gameobjects::setPickedUp( player );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onCantUse( player )
|
||||
{
|
||||
player iPrintLnBold( &"MP_CANT_PLANT_WITHOUT_BOMB" );
|
||||
}
|
||||
|
||||
|
||||
bombPlanted( destroyedObj, team )
|
||||
{
|
||||
game["challenge"][team]["plantedBomb"] = true;
|
||||
maps\mp\gametypes\_globallogic_utils::pauseTimer();
|
||||
level.bombPlanted = true;
|
||||
level.bombPlantedBy = team;
|
||||
level.timeLimitOverride = true;
|
||||
setMatchFlag( "bomb_timer", 1 );
|
||||
|
||||
// communicate timer information to menus
|
||||
setGameEndTime( int( getTime() + (level.bombTimer * 1000) ) );
|
||||
|
||||
destroyedObj.visuals[0] thread maps\mp\gametypes\_globallogic_utils::playTickingSound( "mpl_sab_ui_suitcasebomb_timer" );
|
||||
|
||||
starttime = gettime();
|
||||
bombTimerWait();
|
||||
|
||||
setMatchFlag( "bomb_timer", 0 );
|
||||
destroyedObj.visuals[0] maps\mp\gametypes\_globallogic_utils::stopTickingSound();
|
||||
|
||||
if ( !level.bombPlanted )
|
||||
{
|
||||
if ( level.hotPotato )
|
||||
{
|
||||
timePassed = (gettime() - starttime) / 1000;
|
||||
level.bombTimer -= timePassed;
|
||||
}
|
||||
return;
|
||||
}
|
||||
/*
|
||||
for ( index = 0; index < level.players.size; index++ )
|
||||
{
|
||||
player = level.players[index];
|
||||
if ( player.pers["team"] == team )
|
||||
player thread maps\mp\gametypes\_hud_message::oldNotifyMessage( "Your team scored!", undefined, undefined, (0, 1, 0) );
|
||||
else if ( player.pers["team"] == level.otherTeam[team] )
|
||||
player thread maps\mp\gametypes\_hud_message::oldNotifyMessage( "Enemy team scored!", undefined, undefined, (1, 0, 0) );
|
||||
}
|
||||
*/
|
||||
explosionOrigin = level.sabBomb.visuals[0].origin+(0,0,12);
|
||||
level.bombExploded = true;
|
||||
|
||||
|
||||
if ( isdefined( level.bombowner ) )
|
||||
{
|
||||
destroyedObj.visuals[0] radiusDamage( explosionOrigin, 512, 200, 20, level.bombowner, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
||||
level thread maps\mp\_popups::DisplayTeamMessageToAll( &"MP_EXPLOSIVES_BLOWUP_BY", level.bombowner );
|
||||
level.bombowner maps\mp\_medals::bomber();
|
||||
|
||||
level.bombowner maps\mp\gametypes\_persistence::statAddWithGameType( "DESTRUCTIONS", 1 );
|
||||
|
||||
}
|
||||
else
|
||||
destroyedObj.visuals[0] radiusDamage( explosionOrigin, 512, 200, 20, undefined, "MOD_EXPLOSIVE", "briefcase_bomb_mp" );
|
||||
|
||||
rot = randomfloat(360);
|
||||
explosionEffect = spawnFx( level._effect["bombexplosion"], explosionOrigin + (0,0,50), (0,0,1), (cos(rot),sin(rot),0) );
|
||||
triggerFx( explosionEffect );
|
||||
|
||||
thread playSoundinSpace( "mpl_sab_exp_suitcase_bomb_main", explosionOrigin );
|
||||
|
||||
if ( isDefined( destroyedObj.exploderIndex ) )
|
||||
exploder( destroyedObj.exploderIndex );
|
||||
|
||||
[[level._setTeamScore]]( team, [[level._getTeamScore]]( team ) + 1 );
|
||||
|
||||
setGameEndTime( 0 );
|
||||
|
||||
level.bombZones["allies"] maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
level.bombZones["axis"] maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
wait 3;
|
||||
|
||||
// end the round without resetting the timer
|
||||
thread maps\mp\gametypes\_globallogic::endGame( team, game["strings"]["target_destroyed"] );
|
||||
}
|
||||
|
||||
bombTimerWait()
|
||||
{
|
||||
level endon("bomb_defused");
|
||||
maps\mp\gametypes\_hostmigration::waitLongDurationWithGameEndTimeUpdate( level.bombTimer );
|
||||
}
|
||||
|
||||
|
||||
resetBombsite()
|
||||
{
|
||||
self maps\mp\gametypes\_gameobjects::allowUse( "enemy" );
|
||||
self maps\mp\gametypes\_gameobjects::setUseTime( level.plantTime );
|
||||
self maps\mp\gametypes\_gameobjects::setUseText( &"MP_PLANTING_EXPLOSIVE" );
|
||||
self maps\mp\gametypes\_gameobjects::setUseHintText( &"PLATFORM_HOLD_TO_PLANT_EXPLOSIVES" );
|
||||
self maps\mp\gametypes\_gameobjects::setKeyObject( level.sabBomb );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_defend" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defend" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_target" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_target" );
|
||||
self maps\mp\gametypes\_gameobjects::setVisibleTeam( "none" );
|
||||
self.trigger SetInvisibleToAll();
|
||||
self.useWeapon = "briefcase_bomb_mp";
|
||||
}
|
||||
|
||||
setUpForDefusing()
|
||||
{
|
||||
self maps\mp\gametypes\_gameobjects::allowUse( "friendly" );
|
||||
self maps\mp\gametypes\_gameobjects::setUseTime( level.defuseTime );
|
||||
self maps\mp\gametypes\_gameobjects::setUseText( &"MP_DEFUSING_EXPLOSIVE" );
|
||||
self maps\mp\gametypes\_gameobjects::setUseHintText( &"PLATFORM_HOLD_TO_DEFUSE_EXPLOSIVES" );
|
||||
self maps\mp\gametypes\_gameobjects::setKeyObject( undefined );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "friendly", "compass_waypoint_defuse" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "friendly", "waypoint_defuse" );
|
||||
self maps\mp\gametypes\_gameobjects::set2DIcon( "enemy", "compass_waypoint_defend" );
|
||||
self maps\mp\gametypes\_gameobjects::set3DIcon( "enemy", "waypoint_defend" );
|
||||
self maps\mp\gametypes\_gameobjects::setVisibleTeam( "any" );
|
||||
self.trigger SetVisibleToAll();
|
||||
}
|
||||
|
||||
bombDefused( object )
|
||||
{
|
||||
setMatchFlag( "bomb_timer", 0 );
|
||||
maps\mp\gametypes\_globallogic_utils::resumeTimer();
|
||||
level.bombPlanted = false;
|
||||
if ( !level.inOvertime )
|
||||
level.timeLimitOverride = false;
|
||||
|
||||
level notify("bomb_defused");
|
||||
}
|
||||
|
||||
onPlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
|
||||
{
|
||||
inBombZone = false;
|
||||
inBombZoneTeam = "none";
|
||||
|
||||
if ( isdefined( sWeapon ) && maps\mp\gametypes\_hardpoints::isKillstreakWeapon( sWeapon ) )
|
||||
return;
|
||||
|
||||
if ( isdefined( level.bombZones["allies"] ) )
|
||||
{
|
||||
dist = Distance2d(self.origin, level.bombZones["allies"].curorigin);
|
||||
if ( dist < level.defaultOffenseRadius )
|
||||
{
|
||||
inBombZoneTeam = "allies";
|
||||
inBombZone = true;
|
||||
}
|
||||
}
|
||||
if ( isdefined( level.bombZones["axis"] ) )
|
||||
{
|
||||
dist = Distance2d(self.origin, level.bombZones["axis"].curorigin);
|
||||
if ( dist < level.defaultOffenseRadius )
|
||||
{
|
||||
inBombZoneTeam = "axis";
|
||||
inBombZone = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( inBombZone && isPlayer( attacker ) && attacker.pers["team"] != self.pers["team"] )
|
||||
{
|
||||
if ( inBombZoneTeam == self.pers["team"] )
|
||||
{
|
||||
attacker maps\mp\_medals::offense( sWeapon );
|
||||
attacker maps\mp\gametypes\_persistence::statAddWithGameType( "OFFENDS", 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( isdefined(attacker.pers["defends"]) )
|
||||
{
|
||||
attacker.pers["defends"]++;
|
||||
attacker.defends = attacker.pers["defends"];
|
||||
}
|
||||
|
||||
attacker maps\mp\_medals::defense( sWeapon );
|
||||
attacker maps\mp\gametypes\_persistence::statAddWithGameType( "DEFENDS", 1 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( isPlayer( attacker ) && attacker.pers["team"] != self.pers["team"] && isdefined( self.isBombCarrier ) && self.isBombCarrier == true )
|
||||
attacker maps\mp\_challenges::killedBombCarrier();
|
||||
}
|
||||
|
||||
onEndGame( winningTeam )
|
||||
{
|
||||
if ( isdefined( winningTeam ) && (winningTeam == "allies" || winningTeam == "axis") )
|
||||
[[level._setTeamScore]]( winningTeam, [[level._getTeamScore]]( winningTeam ) + 1 );
|
||||
}
|
||||
|
||||
onRoundEndGame( roundWinner )
|
||||
{
|
||||
if ( game["roundswon"]["allies"] == game["roundswon"]["axis"] )
|
||||
winner = "tie";
|
||||
else if ( game["roundswon"]["axis"] > game["roundswon"]["allies"] )
|
||||
winner = "axis";
|
||||
else
|
||||
winner = "allies";
|
||||
|
||||
return winner;
|
||||
}
|
||||
|
||||
sab_gamemodeSpawnDvars(reset_dvars)
|
||||
{
|
||||
ss = level.spawnsystem;
|
||||
|
||||
// sabotage: influencer around friendly base
|
||||
ss.sab_friendly_base_influencer_score = set_dvar_float_if_unset("scr_spawn_sab_friendly_base_influencer_score", "100", reset_dvars);
|
||||
ss.sab_friendly_base_influencer_score_curve = set_dvar_if_unset("scr_spawn_sab_friendly_base_influencer_score_curve", "constant", reset_dvars);
|
||||
ss.sab_friendly_base_influencer_radius = set_dvar_float_if_unset("scr_spawn_sab_friendly_base_influencer_radius", "" + 15.0*get_player_height(), reset_dvars);
|
||||
|
||||
// sabotage: influencer around enemy base
|
||||
ss.sab_enemy_base_influencer_score = set_dvar_float_if_unset("scr_spawn_sab_enemy_base_influencer_score", "-500", reset_dvars);
|
||||
ss.sab_enemy_base_influencer_score_curve = set_dvar_if_unset("scr_spawn_sab_enemy_base_influencer_score_curve", "constant", reset_dvars);
|
||||
ss.sab_enemy_base_influencer_radius = set_dvar_float_if_unset("scr_spawn_sab_enemy_base_influencer_radius", "" + 15.0*get_player_height(), reset_dvars);
|
||||
|
||||
// sabotage: negative influencer around carrier
|
||||
ss.sab_carrier_influencer_score = set_dvar_float_if_unset("scr_spawn_sab_carrier_influencer_score", "-75", reset_dvars);
|
||||
ss.sab_carrier_influencer_score_curve = set_dvar_if_unset("scr_spawn_sab_carrier_influencer_score_curve", "linear", reset_dvars);
|
||||
ss.sab_carrier_influencer_radius = set_dvar_float_if_unset("scr_spawn_sab_carrier_influencer_radius", "" + 8.0*get_player_height(), reset_dvars);
|
||||
|
||||
}
|
152
mods/mp_patch/maps/mp/mp_array.gsc
Normal file
152
mods/mp_patch/maps/mp/mp_array.gsc
Normal file
@ -0,0 +1,152 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_array_fx::main();
|
||||
|
||||
precachemodel("collision_geo_10x10x512");
|
||||
precachemodel("collision_geo_64x64x64");
|
||||
precachemodel("collision_wall_64x64x10");
|
||||
precachemodel("collision_wall_512x512x10");
|
||||
precachemodel("collision_geo_64x64x256");
|
||||
precachemodel("p_glo_concrete_barrier_damaged");
|
||||
|
||||
maps\mp\_load::main();
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_array_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_array");
|
||||
}
|
||||
|
||||
maps\mp\mp_array_amb::main();
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_winterspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
|
||||
// collision keeping players from poking their heads into the tree near B3.
|
||||
spawncollision("collision_geo_10x10x512","collider",(1397, 1095, 346), (0, 0, 0));
|
||||
spawncollision("collision_geo_10x10x512","collider",(1387, 1095, 346), (0, 0, 0));
|
||||
|
||||
// collision to prevent players from jumping behind electrical cabinets and getting stuck
|
||||
spawncollision("collision_geo_64x64x64","collider",(-399, 1615, 614), (0, 15, 0));
|
||||
spawncollision("collision_wall_64x64x10","collider",(-445, 1593, 642), (0, 150, 0));
|
||||
|
||||
// collision that will keep player from jumping out of the map and landing in the rocks.
|
||||
spawncollision("collision_wall_512x512x10","collider",(-1682, 1046, 496), (0, 30, 0));
|
||||
|
||||
// collision to stop players from getting stuck behind the steel girders.
|
||||
spawncollision("collision_geo_64x64x64","collider",(-387, 307, 346), (0, 360, 0));
|
||||
|
||||
// spawn collision underneathe the corner of the center building. This is to keep players from calling the RCXD and pushing themselves outside of the map.
|
||||
spawncollision("collision_geo_64x64x256","collider",(-852, 852, 496), (0,15,90));
|
||||
spawncollision("collision_geo_64x64x256","collider",(-788, 652, 492), (0,15,90));
|
||||
|
||||
// spawn a trigger to keep players from planting turrets into the large tanks.
|
||||
addNoTurretTrigger( (-692, 3292, 500), 180, 800 );
|
||||
addNoTurretTrigger( (-1236, 3292, 500), 180, 800 );
|
||||
|
||||
// spawn a couple of K Rails to make sense of the collision spawned under the center building.
|
||||
kRail1 = Spawn("script_model", (-824, 672, 480) );
|
||||
if ( IsDefined(kRail1) )
|
||||
{
|
||||
kRail1.angles = (0, 105, 0);
|
||||
kRail1 SetModel("p_glo_concrete_barrier_damaged");
|
||||
}
|
||||
|
||||
kRail2 = Spawn("script_model", (-804, 600, 468) );
|
||||
if ( IsDefined(kRail2) )
|
||||
{
|
||||
kRail2.angles = (15, 285, 0);
|
||||
kRail2 SetModel("p_glo_concrete_barrier_damaged");
|
||||
}
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
radar_move_init();
|
||||
}
|
||||
|
||||
radar_move_init()
|
||||
{
|
||||
level endon ("game_ended");
|
||||
|
||||
dish_top = GetEnt( "dish_top", "targetname" );
|
||||
dish_base = GetEnt( "dish_base", "targetname" );
|
||||
dish_inside = GetEnt( "dish_inside", "targetname" );
|
||||
dish_gears = GetEntArray( "dish_gear", "targetname");
|
||||
|
||||
total_time_for_rotation_outside = 240;
|
||||
total_time_for_rotation_inside = 60;
|
||||
|
||||
dish_top LinkTo(dish_base);
|
||||
dish_base thread rotate_dish_top(total_time_for_rotation_outside);
|
||||
dish_inside thread rotate_dish_top(total_time_for_rotation_inside);
|
||||
|
||||
if(dish_gears.size > 0)
|
||||
{
|
||||
array_thread(dish_gears, ::rotate_dish_gears, total_time_for_rotation_inside);
|
||||
}
|
||||
}
|
||||
|
||||
rotate_dish_top( time )
|
||||
{
|
||||
self endon ("game_ended");
|
||||
|
||||
while(1)
|
||||
{
|
||||
self RotateYaw( 360, time );
|
||||
self waittill( "rotatedone" );
|
||||
}
|
||||
}
|
||||
|
||||
rotate_dish_gears( time )
|
||||
{
|
||||
self endon ("game_ended");
|
||||
|
||||
gear_ratio = 5.0 / 60.0;
|
||||
inverse_gear_ratio = 1.0 / gear_ratio;
|
||||
|
||||
while(1)
|
||||
{
|
||||
self RotateYaw( 360 * inverse_gear_ratio, time );
|
||||
self waittill( "rotatedone" );
|
||||
}
|
||||
}
|
||||
|
||||
addNoTurretTrigger( position, radius, height )
|
||||
{
|
||||
while( !IsDefined( level.noTurretPlacementTriggers ) )
|
||||
wait( 0.1 );
|
||||
|
||||
trigger = Spawn( "trigger_radius", position, 0, radius, height );
|
||||
|
||||
level.noTurretPlacementTriggers[level.noTurretPlacementTriggers.size] = trigger;
|
||||
}
|
||||
|
40
mods/mp_patch/maps/mp/mp_cairo.gsc
Normal file
40
mods/mp_patch/maps/mp/mp_cairo.gsc
Normal file
@ -0,0 +1,40 @@
|
||||
#include maps\mp\_utility;
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_cairo_fx::main();
|
||||
|
||||
precachemodel("collision_geo_10x10x512");
|
||||
precachemodel("collision_wall_128x128x10");
|
||||
|
||||
maps\mp\_load::main();
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_cairo_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_cairo");
|
||||
}
|
||||
|
||||
maps\mp\mp_cairo_amb::main();
|
||||
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_cubans::level_init();
|
||||
|
||||
//setdvar("compassmaxrange","2100");
|
||||
|
||||
// spawn collision to prevent players from standing inside telephone poles
|
||||
spawncollision("collision_geo_10x10x512","collider",(2264, -240, -61), (0, 0, 0));
|
||||
spawncollision("collision_geo_10x10x512","collider",(-1437, -529, -61), (0, 0, 0));
|
||||
|
||||
// spawn collision to prevent players from standing on top of a doorway behind the cigar building
|
||||
spawncollision("collision_wall_128x128x10","collider",(716, 1181, 219), (0, 270, 0));
|
||||
|
||||
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
}
|
716
mods/mp_patch/maps/mp/mp_cosmodrome.gsc
Normal file
716
mods/mp_patch/maps/mp/mp_cosmodrome.gsc
Normal file
@ -0,0 +1,716 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_events;
|
||||
|
||||
main()
|
||||
{
|
||||
precachemodel("tag_origin");
|
||||
|
||||
level.onSpawnIntermission = ::cosmodrome_intermission;
|
||||
|
||||
/#
|
||||
level thread devgui_cosmodrome();
|
||||
execdevgui( "devgui_mp_cosmodrome" );
|
||||
#/
|
||||
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_cosmodrome_fx::main();
|
||||
|
||||
precachemodel("collision_wall_128x128x10");
|
||||
precachemodel("collision_geo_128x128x128");
|
||||
precachemodel("collision_wall_512x512x10");
|
||||
precachemodel("collision_geo_mc_8x560x190");
|
||||
precachemodel("collision_geo_mc_4x52x190");
|
||||
precachemodel("collision_geo_mc_4x156x190");
|
||||
|
||||
maps\mp\_load::main();
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_cosmodrome_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_cosmodrome");
|
||||
}
|
||||
maps\mp\mp_cosmodrome_amb::main();
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_urbanspecops::level_init();
|
||||
|
||||
level thread rocket_arm_think();
|
||||
level thread rocket_think();
|
||||
level thread radar_dish_think();
|
||||
level thread distant_rockets_think();
|
||||
|
||||
// spawn collision to prevent players from sneaking under a small area by the rocket
|
||||
spawncollision("collision_wall_128x128x10","collider",(1558, -179, -362), (0, 225, 0));
|
||||
|
||||
// spawn collision to prevent players from sneaking inside 2 vents
|
||||
spawncollision("collision_wall_128x128x10","collider",(-699, 1457, -60), (0, 270, 0));
|
||||
spawncollision("collision_wall_128x128x10","collider",(-699, 1329, -60), (0, 270, 0));
|
||||
|
||||
// spawn collision to prevent players from strafe jumping onto pipes.
|
||||
spawncollision("collision_geo_128x128x128","collider",(1408.5, 863, -126.5), (0, 0, 0));
|
||||
spawncollision("collision_geo_128x128x128","collider",(1536.5, 863, -126.5), (0, 0, 0));
|
||||
|
||||
// spawn collision to prevent players from jumping up onto walls by the rocket
|
||||
spawncollision("collision_wall_512x512x10","collider",(1224, -160, 240), (0, 0, 0));
|
||||
spawncollision("collision_wall_512x512x10","collider",(1348, -160, 240), (0, 0, 0));
|
||||
|
||||
// Spawn collision to keep players from walking onto a small ledge of collision on the green girders.
|
||||
spawncollision("collision_wall_128x128x10","collider",(1911, 1018, -82), (0, 270, 0));
|
||||
|
||||
// not sure if this is the best way to determine that the map has been trimmed down
|
||||
if ( isSmallMapVersion() )
|
||||
{
|
||||
//spawning missile clip collision to catch grenades, rockets and crossbow bolts on the wager match boundary
|
||||
spawncollision("collision_geo_mc_8x560x190","collider",(-393, 396.5, -72), (0, 270, 0));
|
||||
spawncollision("collision_geo_mc_4x52x190","collider",(-358, 676.5, -74), (0, 0, 0));
|
||||
spawncollision("collision_geo_mc_4x156x190","collider",(-328.5, 758, -74), (0, 270, 0));
|
||||
}
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
SetDvar( "scr_spawn_enemy_influencer_radius", 1700 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_radius", 1300 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_timeout_seconds", 10 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_count", 7 );
|
||||
}
|
||||
|
||||
isSmallMapVersion()
|
||||
{
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
gametype = getDvar( #"g_gametype" );
|
||||
if ( gametype == "oic" )
|
||||
return true;
|
||||
|
||||
if ( gametype == "hlnd" )
|
||||
return true;
|
||||
|
||||
if ( gametype == "shrp" )
|
||||
return true;
|
||||
|
||||
if ( gametype == "gun" )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
cosmodrome_intermission()
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_defaults::default_onSpawnIntermission();
|
||||
|
||||
rocket_base = GetEnt( "cosmodrome_rocket_base", "script_noteworthy" );
|
||||
|
||||
if ( !IsDefined( rocket_base ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( IsDefined( level.rocket_camera ) && level.rocket_camera == true )
|
||||
{
|
||||
lookat = Spawn( "script_model", rocket_base.origin + ( 0, 0, 1024 ) );
|
||||
lookat SetModel( "tag_origin" );
|
||||
lookat LinkTo( rocket_base );
|
||||
|
||||
self CameraSetPosition( self.origin );
|
||||
self CameraSetLookAt( lookat );
|
||||
self CameraActivate( true );
|
||||
}
|
||||
}
|
||||
|
||||
rocket_arm_think()
|
||||
{
|
||||
start_pitch = set_dvar_int_if_unset( "scr_rocket_arm_pitch", "90" );
|
||||
rotate_time = set_dvar_int_if_unset( "scr_rocket_arm_rotate_secs", "30" );
|
||||
wait_time = set_dvar_int_if_unset( "scr_rocket_arm_wait_secs", "5" );
|
||||
|
||||
arm_base = GetEnt( "cosmodrome_rocket_arm_base", "targetname" );
|
||||
AssertEx( IsDefined( arm_base ), "Unable to find entity with targetname: 'cosmodrome_rocket_arm_base'" );
|
||||
|
||||
arm = GetEntArray( "cosmodrome_rocket_arm", "targetname" );
|
||||
AssertEx( IsDefined( arm ), "Unable to find entity with targetname: 'cosmodrome_rocket_arm'" );
|
||||
|
||||
for ( i = 0; i < arm.size; i++ )
|
||||
{
|
||||
arm[i] LinkTo( arm_base );
|
||||
}
|
||||
|
||||
if ( !IsDefined( arm_base.angles_target ) )
|
||||
{
|
||||
arm_base.angles_target = arm_base.angles;
|
||||
}
|
||||
|
||||
arm_base.angles = ( start_pitch, arm_base.angles[1], arm_base.angles[2] );
|
||||
//IPrintLnBold ("rocket is MOVING?");
|
||||
|
||||
wait ( wait_time );
|
||||
|
||||
//IPrintLnBold ("start arm sound");
|
||||
arm_base playloopsound("evt_rocket_lp",.2);
|
||||
arm_base PlaySound ("evt_rocket_start");
|
||||
arm_base RotateTo( arm_base.angles_target, rotate_time );
|
||||
|
||||
|
||||
wait(rotate_time);
|
||||
arm_base stoploopsound(.3);
|
||||
arm_base PlaySound ("evt_rocket_end");
|
||||
// IPrintLnBold (rotate_time);
|
||||
// stop loppsound with fade
|
||||
// play oneshot attach
|
||||
// stop loop sound
|
||||
}
|
||||
|
||||
rocket_prelaunch( rocket_base )
|
||||
{
|
||||
//this will play vo for countdown and delay the launch by 10 seconds
|
||||
snd_countdown ();
|
||||
|
||||
// move the claw arms away from the rocket
|
||||
claw_r = GetEntArray("claw_r", "targetname");
|
||||
claw_l = GetEntArray("claw_l", "targetname");
|
||||
claw_arm_r = GetEntArray("claw_arm_r", "targetname");
|
||||
claw_arm_l = GetEntArray("claw_arm_l", "targetname");
|
||||
mover_r = GetEnt("claw_r_mover", "targetname");
|
||||
mover_l = GetEnt("claw_l_mover", "targetname");
|
||||
move_here_r = GetEnt("claw_r_move_here", "targetname");
|
||||
move_here_l = GetEnt("claw_l_move_here", "targetname");
|
||||
|
||||
for(i = 0 ; i < claw_r.size; i++)
|
||||
{
|
||||
claw_r[i] LinkTo(mover_r);
|
||||
}
|
||||
for(i = 0 ; i < claw_l.size; i++)
|
||||
{
|
||||
claw_l[i] LinkTo(mover_l);
|
||||
}
|
||||
mover_r MoveTo(move_here_r.origin, 3.0);
|
||||
mover_l MoveTo(move_here_l.origin, 3.0);
|
||||
|
||||
// play sound on the arms
|
||||
thread snd_rocket_gantry ( mover_r, mover_l);
|
||||
|
||||
wait(4.0);
|
||||
for(i = 0; i < claw_r.size; i++)
|
||||
{
|
||||
claw_r[i] Unlink();
|
||||
claw_r[i] LinkTo(move_here_r);
|
||||
}
|
||||
for(i = 0; i < claw_l.size; i++)
|
||||
{
|
||||
claw_l[i] Unlink();
|
||||
claw_l[i] LinkTo(move_here_l);
|
||||
}
|
||||
|
||||
for(i = 0; i < claw_arm_r.size; i++)
|
||||
{
|
||||
claw_arm_r[i] LinkTo(move_here_r);
|
||||
}
|
||||
for(i = 0; i < claw_arm_l.size; i++)
|
||||
{
|
||||
claw_arm_l[i] LinkTo(move_here_l);
|
||||
}
|
||||
move_here_r RotateYaw(75, 3.0);
|
||||
move_here_l RotateYaw(-75, 3.0);
|
||||
|
||||
// wait to launch
|
||||
rocket_base playsound ("evt_cosmo_launch");
|
||||
playsoundatposition("evt_cosmo_air_distf",(0,0,0));
|
||||
playsoundatposition("evt_cosmo_air_distr",(0,0,0));
|
||||
|
||||
wait(5);
|
||||
}
|
||||
|
||||
Rocket_Think()
|
||||
{
|
||||
level.const_fx_exploder_rocket_coolant = 2;
|
||||
|
||||
level.rocket_camera = false;
|
||||
flag_init( "rocket_launch_grenade_detonate" );
|
||||
|
||||
rocket = GetEntArray( "cosmodrome_rocket", "targetname" );
|
||||
AssertEx( IsDefined( rocket ), "Unable to find entity with targetname: 'cosmodrome_rocket'" );
|
||||
array_thread( rocket, ::rocket_sticky_grenade_think );
|
||||
|
||||
rocket_base = GetEnt( "cosmodrome_rocket_base", "script_noteworthy" );
|
||||
AssertEx( IsDefined( rocket_base ), "Unable to find entity with script_noteworthy: 'cosmodrome_rocket_base'" );
|
||||
level.rocket_base = rocket_base;
|
||||
|
||||
rocket_damage_triggers = GetEntArray( "cosmodrome_rocket_damage_trigger", "targetname" );
|
||||
rocket_collision = GetEntArray( "rocket_collision", "targetname" );
|
||||
|
||||
killCamEnt = spawn( "script_model", rocket_base.origin );
|
||||
rocket_base.killCamEnt = killCamEnt;
|
||||
killCamEnt.startTime = gettime();
|
||||
killCamEnt linkTo( rocket_base, "tag_origin", (50,0,-1000), ( 0,0,0 ) );
|
||||
|
||||
|
||||
rocket_timer_init();
|
||||
|
||||
wait( 3 );
|
||||
exploder( level.const_fx_exploder_rocket_coolant );
|
||||
|
||||
event = level waittill_any_return( "rocket_launch", "rocket_launch_skip_prelaunch" );
|
||||
|
||||
if ( event == "rocket_launch" )
|
||||
{
|
||||
rocket_prelaunch( rocket_base );
|
||||
}
|
||||
|
||||
level.rocket_camera = true;
|
||||
|
||||
// pre-launch fx
|
||||
earthquake_origin = rocket_base GetTagOrigin( "tag_engine" );
|
||||
earthquake( .25, 4, earthquake_origin, 4096 );
|
||||
|
||||
//play 3d launch aounds on rocket_base, and 2 st 2d sounds
|
||||
|
||||
|
||||
wait( 3.5 );
|
||||
flag_set( "rocket_launch_grenade_detonate" );
|
||||
|
||||
// launch fx
|
||||
earthquake( .35, 15, earthquake_origin, 4096 );
|
||||
array_thread( rocket_damage_triggers, ::rocket_damage_think );
|
||||
array_thread( rocket_damage_triggers, ::destroy_greandes_in_trigger );
|
||||
rocket_base SetClientFlag( level.const_flag_rocket_fx );
|
||||
exploder_stop( level.const_fx_exploder_rocket_coolant );
|
||||
|
||||
// move pieces
|
||||
array_thread( rocket, ::rocket_move );
|
||||
|
||||
// stop damage
|
||||
wait( 6 );
|
||||
level notify( "rocket_damage_stop" );
|
||||
|
||||
wait( 2 );
|
||||
level.rocket_camera = false;
|
||||
|
||||
for ( i = 0; i < rocket_damage_triggers.size; i++ )
|
||||
{
|
||||
rocket_damage_triggers[i] delete();
|
||||
}
|
||||
|
||||
for ( i = 0; i < rocket_collision.size; i++ )
|
||||
{
|
||||
rocket_collision[i] delete();
|
||||
}
|
||||
}
|
||||
|
||||
snd_rocket_gantry ( orignr, originl)
|
||||
{
|
||||
orignr playsound ("evt_gantry_disengage");
|
||||
orignr playsound ("evt_rocket_start");
|
||||
// originl playsound ("evt_rocket_start");
|
||||
}
|
||||
snd_countdown()
|
||||
{
|
||||
//wait 2;
|
||||
countdownl = spawn("script_origin", (480, -1256, 224));
|
||||
countdownr = spawn("script_origin", (152, 1488, 224));
|
||||
|
||||
clientnotify ( "snd_rocket_launch" );
|
||||
|
||||
|
||||
if( IsDefined(countdownl)&& IsDefined(countdownr) )
|
||||
{
|
||||
countdownl playsound( "vox_mp_com_1a_rua1" );
|
||||
wait .112;
|
||||
countdownr playsound( "vox_mp_com_1a_rua1" );
|
||||
wait 16.5;
|
||||
|
||||
thread snd_launch ();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
snd_launch ()
|
||||
{
|
||||
countdownl = spawn("script_origin", (480, -1256, 224));
|
||||
countdownr = spawn("script_origin", (152, 1488, 224));
|
||||
wait 2;
|
||||
countdownl playsound( "vox_mp_com_2a_rua1" );
|
||||
wait .112;
|
||||
countdownr playsound( "vox_mp_com_2a_rua1" );
|
||||
|
||||
}
|
||||
rocket_sticky_grenade_think()
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "grenade_stuck", grenade_ent );
|
||||
grenade_ent thread sticky_grenade_think();
|
||||
}
|
||||
}
|
||||
|
||||
sticky_grenade_think()
|
||||
{
|
||||
self endon( "death" );
|
||||
level endon( "rocket_damage_stop" );
|
||||
|
||||
flag_wait( "rocket_launch_grenade_detonate" );
|
||||
wait( 0.05 );
|
||||
|
||||
self Detonate();
|
||||
}
|
||||
|
||||
//Self is the trigger. This loops to make sure any grenade or claymore that's touching the damage trigger explodes.
|
||||
destroy_greandes_in_trigger()
|
||||
{
|
||||
self endon( "death" );
|
||||
level endon( "rocket_damage_stop" );
|
||||
|
||||
flag_wait( "rocket_launch_grenade_detonate" );
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
grenades = GetEntArray( "grenade", "classname" );
|
||||
|
||||
for ( i = 0; i < grenades.size; i++ )
|
||||
{
|
||||
if( grenades[i] IsTouching( self ))
|
||||
{
|
||||
grenades[i] Detonate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
rocket_timer_init()
|
||||
{
|
||||
level waittill( "prematch_over" );
|
||||
|
||||
event = set_dvar_if_unset( "scr_rocket_event", "end" );
|
||||
trigger1 = set_dvar_int_if_unset( "scr_rocket_event_trigger1", "0" );
|
||||
trigger2 = set_dvar_int_if_unset( "scr_rocket_event_trigger2", "0" );
|
||||
|
||||
if ( rocket_launch_abort() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch ( event )
|
||||
{
|
||||
case "end":
|
||||
add_timed_event( 0, "rocket_launch" );
|
||||
add_score_event( level.scorelimit, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_score_event( int(level.scorelimit * 0.5), "distant_rocket_launch" );
|
||||
break;
|
||||
|
||||
case "time":
|
||||
assert( trigger1 >= 0 );
|
||||
add_timed_event( trigger1, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_timed_event( int(trigger1 * 0.5), "distant_rocket_launch" );
|
||||
break;
|
||||
|
||||
case "percent":
|
||||
assert( trigger1 >= 0 );
|
||||
assert( trigger1 <= 100 );
|
||||
|
||||
minutes = ( trigger1 * 0.01 ) * level.timelimit;
|
||||
add_timed_event( minutes * 60, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_timed_event( int(minutes * 60 * 0.5), "distant_rocket_launch" );
|
||||
|
||||
score = ( trigger1 * 0.01 ) * level.scorelimit;
|
||||
add_score_event( score, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_score_event( int(score * 0.5), "distant_rocket_launch" );
|
||||
break;
|
||||
|
||||
case "random_time":
|
||||
assert( trigger1 >= 0 );
|
||||
assert( trigger2 >= 0 );
|
||||
assert( trigger1 < trigger2 );
|
||||
|
||||
time = RandomIntRange( trigger1, trigger2 + 1 );
|
||||
add_timed_event( trigger1, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_timed_event( int(trigger1 * 0.5), "distant_rocket_launch" );
|
||||
break;
|
||||
|
||||
case "random_percent":
|
||||
assert( trigger1 >= 0 );
|
||||
assert( trigger1 <= 100 );
|
||||
assert( trigger2 >= 0 );
|
||||
assert( trigger2 <= 100 );
|
||||
assert( trigger1 < trigger2 );
|
||||
|
||||
percent = RandomIntRange( trigger1, trigger2 + 1 );
|
||||
minutes = ( percent * 0.01 ) * level.timelimit;
|
||||
add_timed_event( minutes * 60, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_timed_event( int(minutes * 60 * 0.5), "distant_rocket_launch" );
|
||||
|
||||
percent = RandomIntRange( trigger1, trigger2 + 1 );
|
||||
score = ( percent * 0.01 ) * level.scorelimit;
|
||||
add_score_event( score, "rocket_launch" );
|
||||
// AE 11-2-09: putting in the distant rocket timing
|
||||
add_score_event( int(score * 0.5), "distant_rocket_launch" );
|
||||
break;
|
||||
|
||||
default:
|
||||
error( "Unknown event type: '" + event + "' used in dvar 'scr_rocket_event'" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
rocket_launch_abort()
|
||||
{
|
||||
launch_abort = set_dvar_int_if_unset( "scr_rocket_event_off", "0" );
|
||||
assert( launch_abort >= 0 );
|
||||
assert( launch_abort <= 100 );
|
||||
|
||||
if ( RandomInt( 101 ) < launch_abort )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
rocket_move()
|
||||
{
|
||||
self MoveTo( self.origin + ( 0, 0, 50000 ), 50, 45 );
|
||||
|
||||
self waittill( "movedone" );
|
||||
self delete();
|
||||
}
|
||||
|
||||
rocket_damage_think()
|
||||
{
|
||||
level endon( "rocket_damage_stop" );
|
||||
damage_interval_secs = 1;
|
||||
|
||||
assert( self.classname == "trigger_radius" );
|
||||
|
||||
/#
|
||||
if ( set_dvar_int_if_unset( "scr_rocket_debug", "0" ) != 0 )
|
||||
{
|
||||
drawcylinder( self.origin, self.radius, self.height, undefined, "rocket_damage_stop" );
|
||||
}
|
||||
#/
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
self waittill( "trigger", ent );
|
||||
|
||||
if(IsPlayer(ent))
|
||||
{
|
||||
player = ent;
|
||||
|
||||
if ( player.sessionstate != "playing" )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !IsDefined( player.rocket_damage_time ) )
|
||||
{
|
||||
player.rocket_damage_time = GetTime();
|
||||
}
|
||||
|
||||
if ( player.rocket_damage_time > GetTime() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
player shellshock( "tabun_gas_mp", damage_interval_secs );
|
||||
player.rocket_damage_time = GetTime() + ( damage_interval_secs * 1000 );
|
||||
player DoDamage( RandomIntRange( 40, 60 ), self.origin, self, level.rocket_base, 0, "MOD_SUICIDE" );
|
||||
}
|
||||
//This kill dogs in the radius trigger
|
||||
else if ( IsAI( ent ))
|
||||
{
|
||||
ent DoDamage( ent.health * 2, ent.origin);
|
||||
}
|
||||
//This kills RC bombs in the radius trigger
|
||||
else if(IsDefined( ent.targetname ) && ent.targetname == "rcbomb" )
|
||||
{
|
||||
//Destroy RC bomb
|
||||
ent maps\mp\_rcbomb::rcbomb_force_explode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
radar_dish_think()
|
||||
{
|
||||
radar_dish = GetEnt( "cosmodrome_radar_dish", "targetname" );
|
||||
AssertEx( IsDefined( radar_dish ), "Unable to find entity with targetname: 'cosmodrome_radar_dish'" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
rotate_time = set_dvar_int_if_unset( "scr_radar_dish_rotate_secs", "30" );
|
||||
|
||||
if ( rotate_time <= 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
radar_dish RotateYaw( 360, rotate_time );
|
||||
radar_dish waittill( "rotatedone" );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
devgui_cosmodrome( cmd )
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 0.5 );
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify" );
|
||||
|
||||
switch( devgui_string )
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
|
||||
case "rocket_arm":
|
||||
SetDvar( "scr_rocket_arm_wait_secs", "0" );
|
||||
level thread rocket_arm_think();
|
||||
break;
|
||||
|
||||
default:
|
||||
level notify( devgui_string );
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar( "devgui_notify", "" );
|
||||
}
|
||||
}
|
||||
|
||||
distant_rockets_think()
|
||||
{
|
||||
// have the rockets in the distance going off
|
||||
|
||||
distant_rocket = GetEntArray( "distant_rocket", "targetname" );
|
||||
AssertEx( IsDefined( distant_rocket ), "Unable to find entity with targetname: 'distant_rocket'" );
|
||||
|
||||
distant_rocket_gantry1 = GetEntArray("distant_rocket_gantry1", "targetname");
|
||||
AssertEx( IsDefined( distant_rocket_gantry1 ), "Unable to find entity with targetname: 'distant_rocket_gantry1'" );
|
||||
distant_rocket_gantry2 = GetEntArray("distant_rocket_gantry2", "targetname");
|
||||
AssertEx( IsDefined( distant_rocket_gantry2 ), "Unable to find entity with targetname: 'distant_rocket_gantry2'" );
|
||||
|
||||
distant_rocket_arm1 = GetEntArray( "distant_rocket_arm1", "targetname" );
|
||||
AssertEx( IsDefined( distant_rocket_arm1 ), "Unable to find entity with targetname: 'distant_rocket_arm1'" );
|
||||
distant_rocket_arm2 = GetEntArray( "distant_rocket_arm2", "targetname" );
|
||||
AssertEx( IsDefined( distant_rocket_arm2 ), "Unable to find entity with targetname: 'distant_rocket_arm2'" );
|
||||
distant_rocket_arm3 = GetEntArray( "distant_rocket_arm3", "targetname" );
|
||||
AssertEx( IsDefined( distant_rocket_arm3 ), "Unable to find entity with targetname: 'distant_rocket_arm3'" );
|
||||
distant_rocket_arm4 = GetEntArray( "distant_rocket_arm4", "targetname" );
|
||||
AssertEx( IsDefined( distant_rocket_arm4 ), "Unable to find entity with targetname: 'distant_rocket_arm4'" );
|
||||
|
||||
distant_rocket_engine = GetEnt( "distant_rocket_engine", "script_noteworthy" );
|
||||
AssertEx( IsDefined( distant_rocket_engine ), "Unable to find entity with script_noteworthy: 'distant_rocket_engine'" );
|
||||
distant_rocket_engine SetModel("tag_origin");
|
||||
distant_rocket_engine.angles = (-90, 0, 0);
|
||||
|
||||
wait( 3 );
|
||||
|
||||
level waittill( "distant_rocket_launch" );
|
||||
|
||||
// splay sound on the gantry
|
||||
thread snd_distant_gantry (distant_rocket_engine, distant_rocket_engine);
|
||||
// play sound for arms
|
||||
thread snd_distant_rocket_arm (distant_rocket_engine);
|
||||
|
||||
// move the gantry away from the rocket
|
||||
array_thread( distant_rocket_gantry1, ::distant_rocket_gantry1_move );
|
||||
array_thread( distant_rocket_gantry2, ::distant_rocket_gantry2_move );
|
||||
|
||||
wait(10);
|
||||
|
||||
// move the arms away from the rocket
|
||||
array_thread( distant_rocket_arm1, ::distant_rocket_arm1_move );
|
||||
array_thread( distant_rocket_arm2, ::distant_rocket_arm2_move );
|
||||
array_thread( distant_rocket_arm3, ::distant_rocket_arm3_move );
|
||||
array_thread( distant_rocket_arm4, ::distant_rocket_arm4_move );
|
||||
|
||||
|
||||
|
||||
// wait to launch
|
||||
wait(8);
|
||||
|
||||
// pre-launch fx
|
||||
// TODO: small earthquakes??
|
||||
//earthquake_origin = rocket_base GetTagOrigin( "tag_engine" );
|
||||
//earthquake( .25, 4, earthquake_origin, 4096 );
|
||||
|
||||
// play 3d launch aounds on distant_rocket_engine, and 2 st 2d sounds
|
||||
distant_rocket_engine playsound ("evt_dist_cosmo_launch");
|
||||
//playsoundatposition("evt_dist_cosmo_air_distf",(0,0,0));
|
||||
distant_rocket_engine playsound ("evt_dist_cosmo_air_distf");
|
||||
wait( 3.5 );
|
||||
|
||||
// launch fx
|
||||
//earthquake( .35, 15, earthquake_origin, 4096 );
|
||||
|
||||
playfxontag( level._effect["rocket_blast_trail"], distant_rocket_engine, "tag_origin" );
|
||||
|
||||
// move pieces
|
||||
array_thread( distant_rocket, ::rocket_move );
|
||||
|
||||
}
|
||||
|
||||
distant_rocket_gantry1_move() // self == distant_rocket_gantry
|
||||
{
|
||||
self RotatePitch(-45, 10.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
distant_rocket_gantry2_move() // self == distant_rocket_gantry
|
||||
{
|
||||
self RotatePitch(45, 10.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
|
||||
distant_rocket_arm1_move() // self == distant_rocket_arm
|
||||
{
|
||||
self RotatePitch(-45, 6.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
distant_rocket_arm2_move() // self == distant_rocket_arm
|
||||
{
|
||||
self RotateRoll(-45, 6.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
distant_rocket_arm3_move() // self == distant_rocket_arm
|
||||
{
|
||||
self RotatePitch(45, 6.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
distant_rocket_arm4_move() // self == distant_rocket_arm
|
||||
{
|
||||
self RotateRoll(45, 6.0);
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
snd_distant_rocket_arm ( distant_rocket_engine )
|
||||
{
|
||||
|
||||
//IPrintLnBold ("this is in the distant rocket arm section - snd_distant_rocket_arm");
|
||||
distant_rocket_engine playloopsound ("evt_dist_rocket_lp", .5);
|
||||
distant_rocket_engine PlaySound ("evt_dist_rocket_start");
|
||||
//self waittill("rotatedone");
|
||||
wait (16);
|
||||
distant_rocket_engine stoploopsound(.3);
|
||||
distant_rocket_engine PlaySound ("evt_dist_rocket_end");
|
||||
|
||||
}
|
||||
snd_distant_gantry ( orignr, originl)
|
||||
{
|
||||
//IPrintLnBold ("this is playing dist rocket start");
|
||||
orignr playsound ("evt_dist_gantry_disengage");
|
||||
orignr playsound ("evt_dist_rocket_start");
|
||||
}
|
35
mods/mp_patch/maps/mp/mp_crisis.gsc
Normal file
35
mods/mp_patch/maps/mp/mp_crisis.gsc
Normal file
@ -0,0 +1,35 @@
|
||||
#include maps\mp\_utility;
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_crisis_fx::main();
|
||||
|
||||
precachemodel("collision_geo_128x128x10");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_crisis_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_crisis");
|
||||
}
|
||||
|
||||
//maps\mp\mp_crisis_amb::main();
|
||||
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_cubans::level_init();
|
||||
|
||||
//setdvar("compassmaxrange","2100");
|
||||
|
||||
|
||||
// spawn collision to prevent players from seeing through the LVT
|
||||
spawncollision("collision_geo_128x128x10","collider",(2891, 1282.5, 72.5), (3.6, 36.48, -1.65));
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
}
|
178
mods/mp_patch/maps/mp/mp_duga.gsc
Normal file
178
mods/mp_patch/maps/mp/mp_duga.gsc
Normal file
@ -0,0 +1,178 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_events;
|
||||
|
||||
main()
|
||||
{
|
||||
///#
|
||||
//execdevgui( "devgui_mp_duga" );
|
||||
//#/
|
||||
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_duga_fx::main();
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_duga_amb::main();
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_winterspecops::level_init();
|
||||
|
||||
precachemodel("collision_geo_mc_8x560x190");
|
||||
precachemodel("collision_geo_mc_4x52x190");
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_duga_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_duga");
|
||||
}
|
||||
|
||||
//Increase sample size so as to resolve lighting issue
|
||||
SetDvar("sm_sunSampleSizeNear", ".5" );
|
||||
|
||||
//Sets it up so my events go off at times based on the game time and score limit
|
||||
//level thread transformer_timer_init();
|
||||
///#
|
||||
//level thread devgui_duga();
|
||||
//#/
|
||||
|
||||
glasses = GetStructArray( "glass_shatter_on_spawn", "targetname" );
|
||||
|
||||
for ( i = 0; i < glasses.size; i++ )
|
||||
{
|
||||
RadiusDamage( glasses[i].origin, 64, 101, 100 );
|
||||
}
|
||||
|
||||
// weapon collision to keep grenades from falling out of the map through a gap between the terrain and the wall.
|
||||
spawncollision("collision_geo_mc_8x560x190","collider",(462, -3840, -165), (0, 0, 0));
|
||||
spawncollision("collision_geo_mc_4x52x190","collider",(184, -3870, -164), (0, 270, 0));
|
||||
spawncollision("collision_geo_mc_4x52x190","collider",(184, -3922, -164), (0, 270, 0));
|
||||
spawncollision("collision_geo_mc_4x52x190","collider",(188, -3922, -169), (0, 270, 0));
|
||||
}
|
||||
|
||||
//Sets it up so events can happen based on match time and score changes
|
||||
transformer_timer_init()
|
||||
{
|
||||
first_transformer_structs = getstructarray("transformer_struct","targetname");
|
||||
|
||||
level._transformer_array = [];
|
||||
|
||||
for( i=0; i < first_transformer_structs.size; i++)
|
||||
{
|
||||
current_struct = first_transformer_structs[i];
|
||||
level._transformer_array = add_to_array(level._transformer_array, current_struct);
|
||||
|
||||
while(IsDefined(current_struct.target))
|
||||
{
|
||||
current_struct = getstruct(current_struct.target, "targetname");
|
||||
level._transformer_array = add_to_array(level._transformer_array, current_struct);
|
||||
}
|
||||
}
|
||||
|
||||
level waittill( "prematch_over" );
|
||||
|
||||
|
||||
if( (IsDefined(level.timelimit)) && (level.timelimit > 0))
|
||||
{
|
||||
//Electric transformers explode in pairs. The number of pairs is critical to determine how many 'events' we need.
|
||||
transformer_pairs = level._transformer_array.size / 2;
|
||||
total_seconds = level.timelimit * 60;
|
||||
//We want to space out the transformer pair explosion evenly thourought the match
|
||||
interval = total_seconds / transformer_pairs;
|
||||
|
||||
//This creates events based on how many we need. The event sends a notify to duga.csc to set off explosions.
|
||||
for( i = total_seconds; i >= interval; i -= interval )
|
||||
{
|
||||
println( "Seconds: " + i );
|
||||
add_timed_event( int( i ), undefined, "go" );
|
||||
}
|
||||
|
||||
//This event sets off with a tenth of a second left in the game. The duga.csc waits for the notify.
|
||||
add_timed_event( .1, undefined, "fin" );
|
||||
}
|
||||
//add_score_event( Int(level.scorelimit * .99), undefined, "final_boom" );
|
||||
//add_score_event( Int(level.scorelimit * 0.1),undefined, "next_boom" );
|
||||
//add_score_event( Int(level.scorelimit * 0.2),undefined, "next_boom" );
|
||||
}
|
||||
|
||||
devgui_duga( cmd )
|
||||
{
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 0.5 );
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify" );
|
||||
|
||||
switch( devgui_string )
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
|
||||
case "transformer_explode1":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode2":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode3":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode4":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode5":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode6":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode7":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode8":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode9":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode10":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode11":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
case "transformer_explode12":
|
||||
level ClientNotify ("transformer_explode");
|
||||
break;
|
||||
|
||||
//case "final_explode":
|
||||
//transformer_array[5] notify ("final_explode");
|
||||
//break;
|
||||
|
||||
default:
|
||||
level notify( devgui_string );
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar( "devgui_notify", "" );
|
||||
}
|
||||
}
|
411
mods/mp_patch/maps/mp/mp_firingrange.gsc
Normal file
411
mods/mp_patch/maps/mp/mp_firingrange.gsc
Normal file
@ -0,0 +1,411 @@
|
||||
#include maps\mp\_utility;
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_firingrange_fx::main();
|
||||
|
||||
precachemodel("collision_geo_10x10x512");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_firingrange");
|
||||
|
||||
maps\mp\mp_firingrange_amb::main();
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_cubans::level_init();
|
||||
|
||||
/****** GET ENTITIES ******/
|
||||
//TRIGGERS
|
||||
alleyTrigger = getent("alleyTrigger","targetname");
|
||||
windowTrigger = getent("triggerwindowTarget","targetname");
|
||||
|
||||
//TARGETS
|
||||
target1 = getent("fieldTarget_BackLeft","targetname");
|
||||
target2 = getent("fieldTarget_FrontLeft","targetname");
|
||||
target3 = getent("fieldTarget_Middle","targetname");
|
||||
target4 = getent("fieldTarget_BackRight","targetname");
|
||||
target5 = getent("fieldTarget_FrontRight","targetname");
|
||||
target6 = getent("trenchTarget_GroundWall","targetname");
|
||||
target7 = getent("trailerTarget_Window","targetname");
|
||||
target8 = getent("alleyTarget_Cover","targetname");
|
||||
target9 = getent("alleyTarget_Path","targetname");
|
||||
target10 = getent("centerTarget_Sandbags","targetname");
|
||||
target11 = getent("towerTarget_Front","targetname");
|
||||
target12 = getent("towerTarget_Back","targetname");
|
||||
target13 = getent("centerTarget_Path","targetname");
|
||||
target14 = getent("centerTarget_PathBunkerL","targetname");
|
||||
target15 = getent("centerTarget_PathBunkerR","targetname");
|
||||
target16 = getent("steelBuildingTarget_Slide1","targetname");
|
||||
target17 = getent("steelBuildingTarget_PopUp","targetname");
|
||||
target18 = getent("target_alleyWindow1","targetname");
|
||||
target19 = getent("target_alleyWindow2","targetname");
|
||||
target20 = getent("target_alleyWindow3","targetname");
|
||||
|
||||
//TARGET LIGHTs
|
||||
|
||||
//Props
|
||||
targetLight1_off = getent("steelBuildingTargetLight1_off", "targetname");
|
||||
targetLight1_on = getent("steelBuildingTargetLight1_on", "targetname");
|
||||
|
||||
targetLight2_off = getent("steelBuildingTargetLight2_off", "targetname");
|
||||
targetLight2_on = getent("steelBuildingTargetLight2_on", "targetname");
|
||||
|
||||
//Lights
|
||||
|
||||
level.const_fx_exploder_red_light_1 = 1001;
|
||||
level.const_fx_exploder_red_light_2 = 1002;
|
||||
|
||||
//LOUDSPEAKERS
|
||||
speaker1 = getent("loudspeaker1", "targetname");
|
||||
speaker2 = getent("loudspeaker2", "targetname");
|
||||
|
||||
//PROPANE TANKS
|
||||
/*propaneTank1 = getent("explodingPropaneTank","targetname");
|
||||
propaneTank2 = getent("explodingPropaneTank2","targetname");
|
||||
propaneTank3 = getent("explodingPropaneTank3","targetname");*/
|
||||
|
||||
/****** HIDE ON TARGET LIGHTS ******/
|
||||
//Keep the on versions of the light model hidden until appropriate target takes damage.
|
||||
targetLight1_on Hide();
|
||||
targetLight2_on Hide();
|
||||
|
||||
/****** DAMAGE OBJECTS ********/
|
||||
|
||||
//TARGETS
|
||||
target1 SetCanDamage(true);
|
||||
target2 SetCanDamage(true);
|
||||
target3 SetCanDamage(true);
|
||||
target4 SetCanDamage(true);
|
||||
target5 SetCanDamage(true);
|
||||
target8 SetCanDamage(true);
|
||||
target9 SetCanDamage(true);
|
||||
target10 SetCanDamage(true);
|
||||
target13 SetCanDamage(true);
|
||||
target14 SetCanDamage(true);
|
||||
target15 SetCanDamage(true);
|
||||
target16 SetCanDamage(true);
|
||||
target17 SetCanDamage(true);
|
||||
target18 SetCanDamage(true);
|
||||
target19 SetCanDamage(true);
|
||||
target20 SetCanDamage(true);
|
||||
|
||||
target1 thread damageTarget(1);
|
||||
target2 thread damageTarget(1);
|
||||
target3 thread damageTarget(1);
|
||||
target4 thread damageTarget(1);
|
||||
target5 thread damageTarget(1);
|
||||
target8 thread damageTarget(2);
|
||||
target9 thread damageTarget(2);
|
||||
target10 thread damageTarget(2);
|
||||
target13 thread damageTarget(2);
|
||||
target14 thread damageTarget(3);
|
||||
target15 thread damageTarget(3);
|
||||
target16 thread damageTargetLights(targetLight1_on, targetLight1_off, speaker1, "amb_target_buzzer", level.const_fx_exploder_red_light_2 );
|
||||
target17 thread damageTargetLights(targetLight2_on, targetLight2_off, speaker2, "amb_target_buzzer", level.const_fx_exploder_red_light_1 );
|
||||
target18 thread damageTarget(4);
|
||||
target19 thread damageTarget(4);
|
||||
target20 thread damageTarget(5);
|
||||
|
||||
//PROPANE TANKS
|
||||
/*propaneTank1 SetCanDamage(true);
|
||||
propaneTank2 SetCanDamage(true);
|
||||
propaneTank3 SetCanDamage(true);
|
||||
|
||||
propaneTank1 thread damagePropaneTank("mpl_kls_artillery_impact");
|
||||
propaneTank2 thread damagePropaneTank("mpl_kls_artillery_impact");
|
||||
propaneTank3 thread damagePropaneTank("mpl_kls_artillery_impact");*/
|
||||
|
||||
|
||||
/****** MOVE TARGETS ******/
|
||||
//Sliding Targets
|
||||
target1 thread moveTarget(4, 220, 10.1);
|
||||
target2 thread moveTarget(4, 220, 5.2);
|
||||
target3 thread moveTarget(4, 220, 10.3);
|
||||
target4 thread moveTarget(3, 290, 8.4);
|
||||
target5 thread moveTarget(3, 285, 3);
|
||||
target6 thread moveTarget(1, 228, 8.1);
|
||||
target7 thread moveTarget(7, (57, 23, 0), 3);
|
||||
target8 thread moveTarget(1, 250, 5.5);
|
||||
target9 thread moveTarget(1, 146, 8.6);
|
||||
target10 thread moveTarget(1, 165, 8.7);
|
||||
target11 thread moveTarget(4, 136, 5.05);
|
||||
target12 thread moveTarget(3, 136, 7.15);
|
||||
target13 thread moveTarget(1, 228, 8.25);
|
||||
target16 thread moveTarget(4, 164, 5.35);
|
||||
target17 thread moveTarget(5, 48, 5.45);
|
||||
target18 thread moveTarget(3, 270, 8.55);
|
||||
target19 thread moveTarget(6, 70, 6.65);
|
||||
target20 thread moveTarget(1, 130, 5.75);
|
||||
|
||||
|
||||
|
||||
//Hinge Targets
|
||||
//targetHinge1 thread rotateTarget(2, 90, 0.5, 3); //-Z direction, 90 degrees, in .5 seconds, wait inbetween for 3 seconds.
|
||||
target11 thread rotateTarget(2, 90, 0.5, 2);
|
||||
target12 thread rotateTarget(1, 90, 0.7, 3);
|
||||
|
||||
//Triggers
|
||||
alleyTrigger thread triggerCheck(target9);
|
||||
windowTrigger thread triggerCheck(target7);
|
||||
|
||||
|
||||
// collision keeping players from capping the HQ point from outside the room.
|
||||
spawncollision("collision_geo_10x10x512","collider",(-415, -429, -128), (0, 0, 0));
|
||||
spawncollision("collision_geo_10x10x512","collider",(-415, -419, -128), (0, 0, 0));
|
||||
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
SetDvar( "scr_spawn_enemy_influencer_radius", 1600 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_radius", 1300 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_timeout_seconds", 13 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_count", 7 );
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
triggerCheck(target)
|
||||
{
|
||||
self endon("game_ended");
|
||||
while(1)
|
||||
{
|
||||
self waittill("trigger", player);
|
||||
|
||||
//If the target is close enough to the player to cause a possible issue, tell the target to go back the other direction.
|
||||
distance = Distance(target.origin, self.origin);
|
||||
if(distance <= 90)
|
||||
{
|
||||
target notify( "targetStopMoving" );
|
||||
while( isdefined( player) && player isTouching(self) && distance <= 90)
|
||||
{
|
||||
if ( DistanceSquared( target.origin, target.railPoints[0] ) < DistanceSquared( player.origin, target.railPoints[0] ) )
|
||||
target.preferredNextPos = 0;
|
||||
else
|
||||
target.preferredNextPos = 1;
|
||||
wait( 0.25 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
damageTarget(dir)
|
||||
{
|
||||
self endon("game_ended");
|
||||
while(1)
|
||||
{
|
||||
self waittill("damage", damage, attacker, direction);
|
||||
|
||||
switch(dir)
|
||||
{
|
||||
case 1:
|
||||
self rotateroll(self.angles[1] + 90, .1);
|
||||
wait(.2);
|
||||
self rotateroll(self.angles[1] - 90, .1);
|
||||
wait(.2);
|
||||
self PlaySound ("amb_target_flip");
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
rotation = 1;
|
||||
if ( isdefined( attacker ) && isPlayer( attacker ) )
|
||||
{
|
||||
yaw = get2DYaw( attacker.origin, self.origin );
|
||||
if ( attacker.angles[1] > yaw )
|
||||
rotation = -1;
|
||||
|
||||
}
|
||||
|
||||
self rotateyaw(self.angles[2] + (180 * rotation), .3);
|
||||
self PlaySound ("amb_target_twirl");
|
||||
self waittill("rotatedone");
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
self rotatepitch(self.angles[1] + 90, .1);
|
||||
wait(.2);
|
||||
self rotatepitch(self.angles[1] - 90, .1);
|
||||
wait(.2);
|
||||
self PlaySound ("amb_target_flip");
|
||||
break;
|
||||
case 4:
|
||||
self rotateroll(self.angles[1] - 90, .1);
|
||||
wait(.2);
|
||||
self rotateroll(self.angles[1] + 90, .1);
|
||||
wait(.2);
|
||||
self PlaySound ("amb_target_flip");
|
||||
break;
|
||||
case 5:
|
||||
self rotatepitch(self.angles[1] - 90, .1);
|
||||
wait(.2);
|
||||
self rotatepitch(self.angles[1] + 90, .1);
|
||||
wait(.2);
|
||||
self PlaySound ("amb_target_flip");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Another damage target function that handles Light style damage responses.
|
||||
damageTargetLights(light_on, light_off, speaker, alias, exploderHandle)
|
||||
{
|
||||
self endon("game_ended");
|
||||
while(1)
|
||||
{
|
||||
self waittill("damage");
|
||||
|
||||
speaker PlaySound(alias);
|
||||
exploder(exploderHandle);
|
||||
light_off Hide();
|
||||
light_on Show();
|
||||
wait(0.5);
|
||||
exploder_stop(exploderHandle);
|
||||
light_off Show();
|
||||
light_on Hide();
|
||||
}
|
||||
}
|
||||
|
||||
/*damagePropaneTank(soundAlias)
|
||||
{
|
||||
self endon("game_ended");
|
||||
|
||||
while(1)
|
||||
{
|
||||
self waittill("damage");
|
||||
|
||||
RadiusDamage(self.origin, 500, 100, 50);
|
||||
PlayFX(level._effect["rcbombexplosion"] , self.origin);
|
||||
self PlaySound(soundAlias);
|
||||
self Delete();
|
||||
}
|
||||
}*/
|
||||
|
||||
//Pass in one of the following to define the start direction of the target: 1 for +y, 2 for -y, 3 for +x, 4 for -x, 5 for +Z, 6 for -Z.
|
||||
//Pass in the distance in units the target is to travel.
|
||||
//Pass in the ammount of time in seconds that it will take the target to travel that distance.
|
||||
moveTarget(dir, dis, speed)
|
||||
{
|
||||
self endon("game_ended");
|
||||
keepMoving = true; //Local var to decide if the target needs to be paused or not.
|
||||
|
||||
//Get the targets starting position or nearPos
|
||||
startPOS = self.origin;
|
||||
//Find out the targets far position.
|
||||
FarPOS = self.origin;
|
||||
|
||||
sound = Spawn ("script_origin", self.origin);
|
||||
sound LinkTo(self);
|
||||
sound PlayLoopSound ("amb_target_chain");
|
||||
|
||||
switch(dir)
|
||||
{
|
||||
case 1://+Y
|
||||
farPOS = self.origin + (0,dis,0);
|
||||
break;
|
||||
case 2://-Y
|
||||
farPOS = self.origin - (0,dis,0);
|
||||
break;
|
||||
case 3://+X
|
||||
farPOS = self.origin + (dis,0,0);
|
||||
break;
|
||||
case 4://-X
|
||||
farPOS = self.origin - (dis,0,0);
|
||||
break;
|
||||
case 5://+Z
|
||||
farPOS = self.origin + (0,0,dis);
|
||||
break;
|
||||
case 6://-Z
|
||||
farPOS = self.origin - (0,0,dis);
|
||||
break;
|
||||
case 7://Custom
|
||||
farPOS = self.origin - dis;
|
||||
break;
|
||||
}
|
||||
|
||||
self.railPoints = [];
|
||||
self.railPoints[0] = startPos;
|
||||
self.railPoints[1] = FarPos;
|
||||
self.preferredNextPos = 1;
|
||||
self.playerTrigger = false;
|
||||
//Move the target
|
||||
while(1)
|
||||
{
|
||||
nextPos = self.railPoints[self.preferredNextPos];
|
||||
if ( self.preferredNextPos == 0 )
|
||||
self.preferredNextPos = 1;
|
||||
else
|
||||
self.preferredNextPos = 0;
|
||||
|
||||
self moveto(nextPos, speed);
|
||||
self waittill_either("movedone","targetStopMoving");
|
||||
self PlaySound ("amb_target_stop");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rotateTarget(dir, deg, speed, pauseTime)
|
||||
{
|
||||
self endon("game_ended");
|
||||
while(1)
|
||||
{
|
||||
switch(dir)
|
||||
{
|
||||
case 1: //+Z
|
||||
self rotateyaw(self.angles[2] + deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
self rotateyaw(self.angles[2] - deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 2: //-Z
|
||||
self rotateyaw(self.angles[2] - deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
self rotateyaw(self.angles[2] + deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 3: //+X
|
||||
self rotateroll(self.angles[0] + deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
self rotateroll(self.angles[0] - deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 4: //-X
|
||||
self rotateroll(self.angles[0] - deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
self rotateroll(self.angles[0] + deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 5: //+Y
|
||||
self rotateroll(self.angles[1] + deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
self rotateroll(self.angles[1] - deg, speed);
|
||||
self PlaySound ("amb_target_rotate");
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 6: //-Y
|
||||
self rotatepitch(self.angles[1] - deg, speed);
|
||||
wait(pauseTime);
|
||||
self rotatepitch(self.angles[1] + deg, speed);
|
||||
wait(pauseTime);
|
||||
break;
|
||||
case 7: //Custom
|
||||
self rotateto( (self.angles[0] + 90, self.angles[1] - 90, self.angles[2] + 45), speed);
|
||||
wait(pauseTime);
|
||||
self rotateto( (self.angles[0] - 90, self.angles[1] + 90, self.angles[2] - 45), speed);
|
||||
wait(pauseTime);
|
||||
}
|
||||
}
|
||||
}
|
386
mods/mp_patch/maps/mp/mp_golfcourse.gsc
Normal file
386
mods/mp_patch/maps/mp/mp_golfcourse.gsc
Normal file
@ -0,0 +1,386 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_events;
|
||||
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_golfcourse_fx::main();
|
||||
|
||||
precachemodel("collision_geo_64x64x256");
|
||||
precachemodel("collision_wall_256x256x10");
|
||||
|
||||
maps\mp\_load::main();
|
||||
// maps\mp\_compass::setupMiniMap("compass_map_mp_golfcourse");
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_golfcourse_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_golfcourse");
|
||||
}
|
||||
|
||||
maps\mp\mp_golfcourse_amb::main();
|
||||
|
||||
// If the team nationalites change in this file, you must also update the level's csc file,
|
||||
// the level's csv file, and the share/raw/mp/mapsTable.csv
|
||||
maps\mp\gametypes\_teamset_cubans::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
level thread sprinklers_init();
|
||||
level thread gopher_init();
|
||||
|
||||
//spawning collision in wager match so players can't hide in the spawned in columns
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 || isPregame() )
|
||||
{
|
||||
spawncollision("collision_geo_64x64x256","collider",(-1075, -797, -105), (0, 340.8, 0));
|
||||
spawncollision("collision_geo_64x64x256","collider",(-551, -965, -105), (0, 340.8, 0));
|
||||
}
|
||||
|
||||
//spawning collision wall to stop players from getting out of the map by the pond
|
||||
spawncollision("collision_wall_256x256x10","collider",(416, 592, -172), (0, 45, -7));
|
||||
|
||||
//spawn p_gc_signpost_short model to cover hole in geo under scoreboard
|
||||
|
||||
scoreboard1 = Spawn("script_model", (-2046, 839, -215) );
|
||||
if ( IsDefined(scoreboard1) )
|
||||
{
|
||||
scoreboard1.angles = (0, 180, 0);
|
||||
scoreboard1 SetModel("p_gc_signpost_short");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sprinklers_init()
|
||||
{
|
||||
wait( 3 );
|
||||
|
||||
exploders = [];
|
||||
exploders[ exploders.size ] = 1001; //sprinkler by sand trap
|
||||
exploders[ exploders.size ] = 1002; //sprinkler in middle of map
|
||||
exploders[ exploders.size ] = 1003; //sprinkler by bridge
|
||||
exploders[ exploders.size ] = 1004;
|
||||
exploders[ exploders.size ] = 1005;
|
||||
exploders[ exploders.size ] = 1006;
|
||||
exploders[ exploders.size ] = 1007;
|
||||
exploders[ exploders.size ] = 3001;
|
||||
exploders[ exploders.size ] = 3002;
|
||||
exploders[ exploders.size ] = 3003;
|
||||
exploders[ exploders.size ] = 3004;
|
||||
exploders[ exploders.size ] = 3005;
|
||||
exploders[ exploders.size ] = 3006;
|
||||
exploders[ exploders.size ] = 3007;
|
||||
exploders[ exploders.size ] = 3008;
|
||||
exploders[ exploders.size ] = 3009;
|
||||
exploders[ exploders.size ] = 3010;
|
||||
exploders[ exploders.size ] = 3011;
|
||||
exploders[ exploders.size ] = 3012;
|
||||
|
||||
for ( i = 0; i < exploders.size; i++ )
|
||||
{
|
||||
sprinkler_init( exploders[ i ] );
|
||||
}
|
||||
}
|
||||
|
||||
sprinkler_init( exploder_num )
|
||||
{
|
||||
create_fx_ent = exploder_find( exploder_num );
|
||||
assertex( IsDefined( create_fx_ent ), "unknown sprinkler exploder: " + exploder_num );
|
||||
|
||||
create_fx_ent.fake_health = 40;
|
||||
|
||||
radius = 10;
|
||||
height = 10;
|
||||
|
||||
create_fx_ent.damage_trigger = Spawn( "trigger_damage", create_fx_ent.v[ "origin" ] - ( 0, 0, 5 ), 0, radius, height );
|
||||
|
||||
/#
|
||||
//create_fx_ent.damage_trigger thread trigger_debug( radius, height );
|
||||
//create_fx_ent.damage_trigger thread sprinkler_debug( create_fx_ent );
|
||||
#/
|
||||
|
||||
create_fx_ent.destroyed_exploder = exploder_num + 1000;
|
||||
|
||||
if ( exploder_num == 1001 || exploder_num == 1002 || exploder_num == 1003 )
|
||||
{
|
||||
radius = 125;
|
||||
height = 150;
|
||||
|
||||
start = create_fx_ent.v[ "origin" ] + vector_scale( create_fx_ent.v[ "forward" ], 384 );
|
||||
|
||||
end = start + ( 0, 0, -8000 );
|
||||
trace = BulletTrace( start, end, false, undefined, false, false );
|
||||
origin = trace[ "position" ];
|
||||
|
||||
create_fx_ent thread sprinkler_water_think( origin, radius, height );
|
||||
create_fx_ent.soundent = spawn ( "script_origin", create_fx_ent.v[ "origin" ] );
|
||||
create_fx_ent.soundent playloopsound ("amb_sprinkler");
|
||||
}
|
||||
|
||||
// spawn sound ents
|
||||
|
||||
create_fx_ent thread sprinkler_think(exploder_num);
|
||||
exploder( exploder_num );
|
||||
}
|
||||
|
||||
sprinkler_think(exploder_num)
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
self.damage_trigger waittill( "damage", amount, attacker, direction, point, type );
|
||||
|
||||
if ( IsDefined( type ) )
|
||||
{
|
||||
if ( type == "MOD_MELEE" || type == "MOD_EXPLOSIVE" || type == "MOD_IMPACT" )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
self.fake_health -= amount;
|
||||
|
||||
if ( self.fake_health <= 0 )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isdefined (self.soundent))
|
||||
{
|
||||
self.soundent stoploopsound();
|
||||
clientnotify("so_"+exploder_num);
|
||||
}
|
||||
playsoundatposition ("amb_sprinkler_geyser", self.v[ "origin" ] );
|
||||
|
||||
self.damage_trigger delete();
|
||||
|
||||
// delete sound ents
|
||||
|
||||
// stop exploder
|
||||
exploder( self.destroyed_exploder );
|
||||
self exploder_fade();
|
||||
|
||||
if ( IsDefined( self.water_trigger ) )
|
||||
{
|
||||
self.water_trigger delete();
|
||||
}
|
||||
|
||||
wait( 0.25 );
|
||||
|
||||
self thread sprinkler_water_think( self.v[ "origin" ], 50, 100 );
|
||||
|
||||
wait( 1 );
|
||||
|
||||
exploder_stop( self.v[ "exploder" ] );
|
||||
|
||||
wait( 5 );
|
||||
self.water_trigger delete();
|
||||
}
|
||||
|
||||
sprinkler_water_think( origin, radius, height )
|
||||
{
|
||||
self.water_trigger = Spawn( "trigger_radius", origin, 0, radius, height );
|
||||
/#
|
||||
//self.water_trigger thread trigger_debug( radius, height );
|
||||
#/
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self.water_trigger waittill( "trigger", entity );
|
||||
|
||||
if ( !IsDefined( entity ) || !IsPlayer( entity ) || !IsAlive( entity ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
player = entity;
|
||||
|
||||
if ( player.sessionstate != "playing" )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !IsDefined( player.golfcourse_water_drops ) )
|
||||
{
|
||||
player.golfcourse_water_drops = false;
|
||||
}
|
||||
|
||||
if ( player.golfcourse_water_drops )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
player thread sprinkler_water_drops( self.water_trigger );
|
||||
}
|
||||
}
|
||||
|
||||
sprinkler_water_drops( trigger )
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
trigger endon( "death" );
|
||||
|
||||
self thread water_drop_end_think();
|
||||
trigger thread water_drop_death_think( self );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
if ( !self IsTouching( trigger ) )
|
||||
{
|
||||
self notify( "water_drop_end" );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !self.golfcourse_water_drops )
|
||||
{
|
||||
self.golfcourse_water_drops = true;
|
||||
self SetWaterDrops( 50 );
|
||||
}
|
||||
|
||||
wait( RandomIntRange( 1, 3 ) );
|
||||
}
|
||||
}
|
||||
|
||||
water_drop_end_think()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self waittill_any( "death", "water_drop_end" );
|
||||
self.golfcourse_water_drops = false;
|
||||
self SetWaterDrops( 0 );
|
||||
}
|
||||
|
||||
water_drop_death_think( player )
|
||||
{
|
||||
player endon( "death" );
|
||||
player endon( "disconnect" );
|
||||
player endon( "water_drop_end" );
|
||||
|
||||
self waittill( "death" );
|
||||
player notify( "water_drop_end" );
|
||||
}
|
||||
|
||||
exploder_find( num )
|
||||
{
|
||||
num = int( num );
|
||||
|
||||
for( i = 0; i < level.createFXent.size; i++ )
|
||||
{
|
||||
ent = level.createFXent[ i ];
|
||||
|
||||
if( !isdefined( ent ) )
|
||||
continue;
|
||||
|
||||
if( ent.v[ "type" ] != "exploder" )
|
||||
continue;
|
||||
|
||||
if( !isdefined( ent.v[ "exploder" ] ) )
|
||||
continue;
|
||||
|
||||
if( ent.v[ "exploder" ] != num )
|
||||
continue;
|
||||
|
||||
return ent;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
exploder_fade()
|
||||
{
|
||||
assert( IsDefined( self.looper ) );
|
||||
TriggerFx( self.looper, GetTime()/1000 + 100 );
|
||||
}
|
||||
|
||||
gopher_init()
|
||||
{
|
||||
level waittill( "prematch_over" );
|
||||
|
||||
if ( !IsDefined( game[ "gopher_fx" ] ) )
|
||||
{
|
||||
game[ "gopher_fx" ] = false;
|
||||
}
|
||||
|
||||
if ( isRoundBased() && getRoundsPlayed() >= 3 && getRoundsPlayed() % 3 == 0 )
|
||||
{
|
||||
game[ "gopher_fx" ] = false;
|
||||
}
|
||||
|
||||
if ( game[ "gopher_fx" ] )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( cointoss() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
exploders = [];
|
||||
exploders[ exploders.size ] = 5001;
|
||||
exploders[ exploders.size ] = 5002;
|
||||
exploders[ exploders.size ] = 5003;
|
||||
exploders[ exploders.size ] = 5004;
|
||||
|
||||
percent = RandomIntRange( 20, 90 );
|
||||
minutes = ( percent * 0.01 ) * level.timelimit;
|
||||
add_timed_event( minutes * 60, "gopher_fx" );
|
||||
|
||||
percent = RandomIntRange( 20, 90 );
|
||||
score = ( percent * 0.01 ) * level.scorelimit;
|
||||
add_score_event( score, "gopher_fx" );
|
||||
|
||||
level waittill( "gopher_fx" );
|
||||
game[ "gopher_fx" ] = true;
|
||||
|
||||
exploder( random( exploders ) );
|
||||
}
|
||||
|
||||
/#
|
||||
sprinkler_debug( create_fx_ent )
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
print3d( self.origin, create_fx_ent.fake_health );
|
||||
wait( 0.05 );
|
||||
}
|
||||
}
|
||||
|
||||
trigger_debug( radius, height )
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
drawcylinder( self.origin, radius, height, 1 );
|
||||
wait( 1 );
|
||||
}
|
||||
|
||||
}
|
||||
#/
|
||||
|
234
mods/mp_patch/maps/mp/mp_mountain.gsc
Normal file
234
mods/mp_patch/maps/mp/mp_mountain.gsc
Normal file
@ -0,0 +1,234 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
|
||||
main()
|
||||
{
|
||||
/#
|
||||
level thread devgui_mountain();
|
||||
execdevgui( "devgui_mp_mountain" );
|
||||
#/
|
||||
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_mountain_fx::main();
|
||||
|
||||
precachemodel("collision_vehicle_64x64x64");
|
||||
precachemodel("collision_wall_512x512x10");
|
||||
precachemodel("collision_geo_128x128x128");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_mountain_amb::main();
|
||||
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_mountain_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_mountain");
|
||||
}
|
||||
|
||||
//setExpFog(2048, 6000, 1, 0.5, 0.5, 0);
|
||||
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_winterspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
//setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// spawn vehicle collision to prevent rc car from entering a large rock
|
||||
spawncollision("collision_vehicle_64x64x64","collider",(1740, -1585, 240), (0, 36.8, 0));
|
||||
spawncollision("collision_vehicle_64x64x64","collider",(1715, -1580, 240), (0, 26.4, 0));
|
||||
|
||||
// spawn collision to prevent players from leaping to a rock in the vista
|
||||
spawncollision("collision_wall_512x512x10","collider",(3931, -2522, 288), (0, 45, 0));
|
||||
spawncollision("collision_wall_512x512x10","collider",(3931, -2522, 800), (0, 45, 0));
|
||||
|
||||
// spawn collision to prevent players from leaping to a rock in the vista over top of the killbrush.
|
||||
spawncollision("collision_wall_512x512x10","collider",(3709, -2538, 560), (0, 180, 0));
|
||||
|
||||
// spawn collision to prevent players from sitting in a rock by the ice bridge
|
||||
spawncollision("collision_geo_128x128x128","collider",(2242.2, 128.3, 260), (0, 310.2, 0));
|
||||
|
||||
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
SetDvar( "scr_spawn_enemy_influencer_radius", 1620 );
|
||||
|
||||
level thread gondola_sway();
|
||||
level thread glass_exploder_init();
|
||||
|
||||
glasses = GetStructArray( "glass_shatter_on_spawn", "targetname" );
|
||||
|
||||
for ( i = 0; i < glasses.size; i++ )
|
||||
{
|
||||
RadiusDamage( glasses[i].origin, 64, 101, 100 );
|
||||
}
|
||||
}
|
||||
|
||||
devgui_mountain( cmd )
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 0.5 );
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify" );
|
||||
|
||||
switch( devgui_string )
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
|
||||
default:
|
||||
level notify( devgui_string );
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar( "devgui_notify", "" );
|
||||
}
|
||||
}
|
||||
|
||||
//Picks randomly from 2 sway strengths
|
||||
gondola_sway()
|
||||
{
|
||||
level endon ("gondola_triggered");
|
||||
|
||||
gondola_cab = GetEnt( "gondola_cab", "targetname" );
|
||||
|
||||
while( 1 )
|
||||
{
|
||||
randomSwingAngle = RandomFloatRange( 2, 5 );
|
||||
randomSwingTime = RandomFloatRange( 2, 3 );
|
||||
|
||||
gondola_cab RotateTo( (randomSwingAngle*0.5,(randomSwingAngle*0.6)+90,randomSwingAngle*.8), randomSwingTime, randomSwingTime*0.3, randomSwingTime*0.3 );
|
||||
gondola_cab playsound ("amb_gondola_swing");
|
||||
wait( randomSwingTime );
|
||||
gondola_cab RotateTo( ((randomSwingAngle*0.5)*-1,(randomSwingAngle*-1*0.6)+90,randomSwingAngle*.8*-1), randomSwingTime, randomSwingTime*0.3, randomSwingTime*0.3 );
|
||||
gondola_cab playsound ("amb_gondola_swing_back");
|
||||
wait( randomSwingTime );
|
||||
}
|
||||
}
|
||||
|
||||
glass_exploder_init()
|
||||
{
|
||||
single_exploders = [];
|
||||
|
||||
for ( i = 0; i < level.createFXent.size; i++ )
|
||||
{
|
||||
ent = level.createFXent[ i ];
|
||||
|
||||
if ( !IsDefined( ent ) )
|
||||
continue;
|
||||
|
||||
if ( ent.v[ "type" ] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( ent.v[ "exploder" ] == 201 || ent.v[ "exploder" ] == 202 )
|
||||
{
|
||||
ent thread glass_group_exploder_think();
|
||||
}
|
||||
else if ( ent.v[ "exploder" ] >= 101 && ent.v[ "exploder" ] <= 106 )
|
||||
{
|
||||
single_exploders[ single_exploders.size ] = ent;
|
||||
}
|
||||
else if ( ent.v[ "exploder" ] == 301 || ent.v[ "exploder" ] == 302 )
|
||||
{
|
||||
single_exploders[ single_exploders.size ] = ent;
|
||||
}
|
||||
}
|
||||
|
||||
level thread glass_exploder_think( single_exploders );
|
||||
}
|
||||
|
||||
glass_group_exploder_think()
|
||||
{
|
||||
thresholdSq = 160 * 160;
|
||||
count = 0;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "glass_smash", origin );
|
||||
|
||||
if ( DistanceSquared( self.v[ "origin" ], origin ) < thresholdSq )
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
||||
if ( count >= 3 )
|
||||
{
|
||||
exploder( self.v[ "exploder" ] );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glass_exploder_think( exploders )
|
||||
{
|
||||
thresholdSq = 160 * 160;
|
||||
|
||||
if ( exploders.size <= 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
closest = 999 * 999;
|
||||
closest_exploder = undefined;
|
||||
|
||||
level waittill( "glass_smash", origin );
|
||||
|
||||
for ( i = 0; i < exploders.size; i++ )
|
||||
{
|
||||
if ( !IsDefined( exploders[i] ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( IsDefined( exploders[i].glass_broken ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
distSq = DistanceSquared( exploders[i].v[ "origin" ], origin );
|
||||
|
||||
if ( distSq > thresholdSq )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( distSq < closest )
|
||||
{
|
||||
closest_exploder = exploders[i];
|
||||
closest = distSq;
|
||||
}
|
||||
}
|
||||
|
||||
if ( IsDefined( closest_exploder ) )
|
||||
{
|
||||
closest_exploder.glass_broken = true;
|
||||
exploder( closest_exploder.v[ "exploder" ] );
|
||||
}
|
||||
}
|
||||
}
|
405
mods/mp_patch/maps/mp/mp_nuked.gsc
Normal file
405
mods/mp_patch/maps/mp/mp_nuked.gsc
Normal file
@ -0,0 +1,405 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_nuked_fx::main();
|
||||
|
||||
precachemodel("collision_wall_128x128x10");
|
||||
|
||||
// move a dom spawn that is sharing space with one of the mannequins
|
||||
move_spawn_point( "mp_dom_spawn", (791, 449, -20), ( 779, 445, -20 ) );
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_nuked_amb::main();
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_nuked");
|
||||
|
||||
level.onSpawnIntermission = ::nuked_intermission;
|
||||
|
||||
/#
|
||||
level thread devgui_nuked();
|
||||
execdevgui( "devgui_mp_nuked" );
|
||||
#/
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_urbanspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
SetDvar( "scr_spawn_enemy_influencer_radius", 1600 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_radius", 1300 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_timeout_seconds", 8 );
|
||||
SetDvar( "scr_spawn_dead_friend_influencer_count", 7 );
|
||||
|
||||
//spawn collision in yellow house to prevent players from jump-crouching into a door.
|
||||
spawncollision("collision_wall_128x128x10","collider",(769.2, 329.3, 143), (0, 290.6, 0));
|
||||
spawncollision("collision_wall_128x128x10","collider",(769.2, 329.3, 271), (0, 290.6, 0));
|
||||
|
||||
level.const_fx_exploder_end_game_glass_shatter = 5001;
|
||||
level.disableOutroVisionSet = true;
|
||||
|
||||
level thread nuked_mannequin_init();
|
||||
nuked_doomsday_clock_init();
|
||||
level thread maps\mp\mp_nuked_platform::main();
|
||||
|
||||
level thread nuked_population_sign_think();
|
||||
level thread nuked_bomb_drop_think();
|
||||
|
||||
/#
|
||||
level thread nuked_bomb_drop_dev();
|
||||
#/
|
||||
|
||||
}
|
||||
|
||||
move_spawn_point( targetname, start_point, new_point )
|
||||
{
|
||||
spawn_points = getentarray( targetname, "classname" );
|
||||
|
||||
for ( i = 0; i < spawn_points.size; i++ )
|
||||
{
|
||||
if ( distancesquared( spawn_points[i].origin, start_point ) < 1 )
|
||||
{
|
||||
spawn_points[i].origin = new_point;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nuked_mannequin_init()
|
||||
{
|
||||
keep_count = 28;
|
||||
level.mannequin_count = 0;
|
||||
|
||||
destructibles = GetEntArray( "destructible", "targetname" );
|
||||
mannequins = nuked_mannequin_filter( destructibles );
|
||||
|
||||
if ( mannequins.size <= 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
remove_count = mannequins.size - keep_count;
|
||||
remove_count = clamp( remove_count, 0, remove_count );
|
||||
|
||||
mannequins = array_randomize( mannequins );
|
||||
|
||||
for ( i = 0; i < remove_count; i++ )
|
||||
{
|
||||
assert( IsDefined( mannequins[i].target ) );
|
||||
|
||||
collision = GetEnt( mannequins[i].target, "targetname" );
|
||||
assert( IsDefined( collision ) );
|
||||
|
||||
collision delete();
|
||||
mannequins[i] delete();
|
||||
level.mannequin_count--;
|
||||
}
|
||||
|
||||
level waittill( "prematch_over" );
|
||||
level.mannequin_time = GetTime();
|
||||
}
|
||||
|
||||
nuked_mannequin_filter( destructibles )
|
||||
{
|
||||
mannequins = [];
|
||||
|
||||
for ( i = 0; i < destructibles.size; i++ )
|
||||
{
|
||||
destructible = destructibles[i];
|
||||
|
||||
if ( IsSubStr( destructible.destructibledef, "male" ) )
|
||||
{
|
||||
mannequins[ mannequins.size ] = destructible;
|
||||
level.mannequin_count++;
|
||||
}
|
||||
}
|
||||
|
||||
return mannequins;
|
||||
}
|
||||
|
||||
nuked_intermission()
|
||||
{
|
||||
maps\mp\gametypes\_globallogic_defaults::default_onSpawnIntermission();
|
||||
|
||||
if ( wasLastRound() )
|
||||
{
|
||||
level notify( "bomb_drop" );
|
||||
}
|
||||
}
|
||||
|
||||
nuked_bomb_drop_think()
|
||||
{
|
||||
cameraStart = GetStruct( "endgame_camera_start", "targetname" );
|
||||
cameraEnd = GetStruct( cameraStart.target, "targetname" );
|
||||
|
||||
bomb = GetEnt( "nuked_bomb", "targetname" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
camera = Spawn( "script_model", cameraStart.origin );
|
||||
camera.angles = cameraStart.angles;
|
||||
camera SetModel( "tag_origin" );
|
||||
|
||||
level waittill( "bomb_drop" );
|
||||
|
||||
if( level.finalkillcam && IsDefined(level.lastKillCam ) )
|
||||
{
|
||||
wait( 0.1 );
|
||||
while( level.inFinalKillcam )
|
||||
{
|
||||
wait( 0.1 );
|
||||
}
|
||||
}
|
||||
|
||||
for ( i = 0; i < get_players().size; i++ )
|
||||
{
|
||||
player = get_players()[i];
|
||||
player CameraSetPosition( camera );
|
||||
player CameraSetLookAt();
|
||||
player CameraActivate( true );
|
||||
}
|
||||
|
||||
cam_move_time = set_dvar_float_if_unset( "scr_cam_move_time", "2.5" );
|
||||
bomb_explode_delay = set_dvar_float_if_unset( "scr_bomb_explode_delay", "1.5" );
|
||||
glass_break_delay = set_dvar_float_if_unset( "scr_glass_break_delay", "0.5" );
|
||||
//white_out_delay = set_dvar_float_if_unset( "scr_white_out_delay", "1.0" );
|
||||
|
||||
camera MoveTo( cameraEnd.origin, cam_move_time, 0, 0 );
|
||||
camera RotateTo( cameraEnd.angles, cam_move_time, 0, 0 );
|
||||
|
||||
bomb playSound ("amb_end_nuke");
|
||||
|
||||
dest = ( bomb.origin[0], bomb.origin[1], bomb.origin[2] - 3700 );
|
||||
|
||||
time = set_dvar_float_if_unset( "scr_bomb_time", "1.5" );
|
||||
accel_time = set_dvar_float_if_unset( "scr_bomb_accel_time", ".75" );
|
||||
|
||||
bomb MoveTo( dest, time, accel_time, 0 );
|
||||
|
||||
wait( bomb_explode_delay );
|
||||
playfx ( level._effect["fx_mp_nuked_nuclear_explosion"], bomb.origin);
|
||||
wait( glass_break_delay );
|
||||
level thread waitForGlassBreak();
|
||||
cameraForward = anglestoforward( cameraEnd.angles );
|
||||
explodePoint = cameraEnd.origin + 20*cameraForward;
|
||||
//black = ( 0.2, 0.2, 0.2 );
|
||||
//debugstar(explodePoint, 2 * 1000, black);
|
||||
physicsExplosionSphere( explodePoint, 128, 128, 1 );
|
||||
RadiusDamage( explodePoint, 128, 128, 128 );
|
||||
//wait( white_out_delay );
|
||||
|
||||
camera thread vibrate();
|
||||
|
||||
//PrintLn( "SND NUKE play" );
|
||||
//VisionSetNaked( "flash_grenade", .4 );
|
||||
|
||||
/#
|
||||
//bomb waittill( "movedone" );
|
||||
|
||||
wait( 3.5 - glass_break_delay );
|
||||
level notify( "bomb_reset" );
|
||||
camera delete();
|
||||
#/
|
||||
}
|
||||
}
|
||||
|
||||
vibrate()
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
pitchVibrateAmplitude = 1;
|
||||
|
||||
vibrateAmplitude = 2;
|
||||
vibrateTime = 0.05;
|
||||
|
||||
originalAngles = self.angles;
|
||||
|
||||
angles0 = ( originalAngles[0], originalAngles[1], originalAngles[2] - vibrateAmplitude );
|
||||
angles1 = ( originalAngles[0], originalAngles[1], originalAngles[2] + vibrateAmplitude );
|
||||
|
||||
for(;;)
|
||||
{
|
||||
angles0 = ( originalAngles[0] - pitchVibrateAmplitude , originalAngles[1], originalAngles[2] - vibrateAmplitude );
|
||||
angles1 = ( originalAngles[0] + pitchVibrateAmplitude, originalAngles[1], originalAngles[2] + vibrateAmplitude );
|
||||
|
||||
self RotateTo(angles0, vibrateTime );
|
||||
self waittill( "rotatedone" );
|
||||
self RotateTo(angles1, vibrateTime );
|
||||
self waittill( "rotatedone" );
|
||||
|
||||
if ( vibrateAmplitude > 0 )
|
||||
vibrateAmplitude -= 0.25;
|
||||
pitchVibrateAmplitude = 0 - pitchVibrateAmplitude;
|
||||
pitchVibrateAmplitude *= 0.66;
|
||||
}
|
||||
}
|
||||
|
||||
waitForGlassBreak()
|
||||
{
|
||||
level endon( "bomb_reset" );
|
||||
level waittill( "glass_smash", origin );
|
||||
|
||||
exploder( level.const_fx_exploder_end_game_glass_shatter );
|
||||
}
|
||||
|
||||
nuked_population_sign_think()
|
||||
{
|
||||
tens_model = GetEnt( "counter_tens", "targetname" );
|
||||
ones_model = GetEnt( "counter_ones", "targetname" );
|
||||
|
||||
step = ( 360 / 10 ); // 10 digits (0-9) on the dial
|
||||
|
||||
// put the dials at 0
|
||||
ones = 0;
|
||||
tens = 0;
|
||||
|
||||
tens_model RotateRoll( step, 0.05 );
|
||||
ones_model RotateRoll( step, 0.05 );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 1 );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
num_players = get_players().size;
|
||||
|
||||
dial = ones + ( tens * 10 );
|
||||
|
||||
if ( num_players < dial )
|
||||
{
|
||||
ones--;
|
||||
time = set_dvar_float_if_unset( "scr_dial_rotate_time", "0.5" );
|
||||
|
||||
if ( ones < 0 )
|
||||
{
|
||||
ones = 9;
|
||||
tens_model RotateRoll( 0 - step, time );
|
||||
tens--;
|
||||
}
|
||||
|
||||
ones_model RotateRoll( 0 - step, time );
|
||||
ones_model waittill( "rotatedone" );
|
||||
}
|
||||
else if ( num_players > dial )
|
||||
{
|
||||
ones++;
|
||||
time = set_dvar_float_if_unset( "scr_dial_rotate_time", "0.5" );
|
||||
|
||||
if ( ones > 9 )
|
||||
{
|
||||
ones = 0;
|
||||
tens_model RotateRoll( step, time );
|
||||
tens++;
|
||||
}
|
||||
|
||||
ones_model RotateRoll( step, time );
|
||||
ones_model waittill( "rotatedone" );
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nuked_doomsday_clock_init()
|
||||
{
|
||||
min_hand_model = GetEnt( "clock_min_hand", "targetname" );
|
||||
sec_hand_model = GetEnt( "clock_sec_hand", "targetname" );
|
||||
|
||||
start_angle = 318;
|
||||
|
||||
min_hand_model RotatePitch( start_angle, 0.05 );
|
||||
min_hand_model waittill( "rotatedone" );
|
||||
|
||||
if ( level.timelimit > 0 )
|
||||
{
|
||||
min_hand_model RotatePitch( 360 - start_angle, level.timelimit * 60 );
|
||||
sec_hand_model RotatePitch( 360 * level.timelimit, level.timelimit * 60 );
|
||||
}
|
||||
else
|
||||
{
|
||||
sec_hand_model thread nuked_doomsday_clock_seconds_think();
|
||||
}
|
||||
}
|
||||
|
||||
nuked_doomsday_clock_seconds_think()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
self RotatePitch( 360, 60 );
|
||||
self waittill( "rotatedone" );
|
||||
}
|
||||
}
|
||||
|
||||
/#
|
||||
nuked_bomb_drop_dev()
|
||||
{
|
||||
bomb = GetEnt( "nuked_bomb", "targetname" );
|
||||
bomb_origin = bomb.origin;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "bomb_reset" );
|
||||
bomb.origin = bomb_origin;
|
||||
|
||||
player = getHostPlayer();
|
||||
player CameraActivate( false );
|
||||
VisionSetNaked( "mp_nuked", 0 );
|
||||
}
|
||||
}
|
||||
|
||||
devgui_nuked( cmd )
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 0.5 );
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify" );
|
||||
|
||||
switch( devgui_string )
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
|
||||
case "warp_to_bomb":
|
||||
player = getHostPlayer();
|
||||
AddDebugCommand( "noclip" );
|
||||
player SetOrigin( ( 3969, 8094, 1052 ) );
|
||||
player SetPlayerAngles( ( -19, 94, 0 ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
level notify( devgui_string );
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar( "devgui_notify", "" );
|
||||
}
|
||||
}
|
||||
#/
|
852
mods/mp_patch/maps/mp/mp_radiation.gsc
Normal file
852
mods/mp_patch/maps/mp/mp_radiation.gsc
Normal file
@ -0,0 +1,852 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
precachemodel("tag_origin");
|
||||
|
||||
/#
|
||||
level thread devgui_radiation();
|
||||
execdevgui("devgui_mp_radiation");
|
||||
#/
|
||||
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_radiation_fx::main();
|
||||
|
||||
precachemodel("collision_geo_64x64x256");
|
||||
precachemodel("collision_wall_128x128x10");
|
||||
precachemodel("collision_geo_256x256x10");
|
||||
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_radiation_amb::main();
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_radiation_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_radiation");
|
||||
}
|
||||
|
||||
|
||||
//Increase sample size so as to resolve lighting issue
|
||||
SetDvar("sm_sunSampleSizeNear", ".5" );
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_urbanspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// COLLISION - to prevent players from placing turrets inside a large cylinder brush in the tank room
|
||||
spawncollision("collision_geo_64x64x256","collider",(1221, 41, 236), (0, 0, 0));
|
||||
|
||||
// COLLISION - to prevent players from jumping onto a little ledge of collision
|
||||
spawncollision("collision_wall_128x128x10","collider",(1042, -309, 309), (0, 0, 0));
|
||||
spawncollision("collision_wall_128x128x10","collider",(1080, -309, 309), (0, 0, 0));
|
||||
|
||||
// COLLISION - to prevent players from dropping turrets in the large grey tanks by the warehouse
|
||||
spawncollision("collision_geo_64x64x256","collider",(568, 219, 264), (0, 0, 0));
|
||||
spawncollision("collision_geo_64x64x256","collider",(567, -105, 264), (0, 0, 0));
|
||||
|
||||
// COLLISION - to prevent players dropping off the catwalk onto ledge in warehouse
|
||||
spawncollision("collision_wall_128x128x10","collider",(1157, -345, 186), (0, 270, 0));
|
||||
spawncollision("collision_wall_128x128x10","collider",(1157, -345, 314), (0, 270, 0));
|
||||
spawncollision("collision_wall_128x128x10","collider",(1157, -345, 442), (0, 270, 0));
|
||||
|
||||
//NOTURRET - spawns radius triggers to stop players from placing turrets in the large cylinders in the NE corner of the map
|
||||
addNoTurretTrigger((1440, -1116, 145), 230, 256);
|
||||
addNoTurretTrigger((1446, -1659, 145), 230, 256);
|
||||
|
||||
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
flag_init_func();
|
||||
|
||||
level_objects_init();
|
||||
|
||||
}
|
||||
|
||||
flag_init_func()
|
||||
{
|
||||
flag_init("kill_stuck_players");
|
||||
}
|
||||
|
||||
level_objects_init()
|
||||
{
|
||||
level._digger_fx = LoadFX( "maps/mp_maps/fx_mp_sand_digger_radiation" );
|
||||
waittillframeend;
|
||||
level._door_switch_trig1 = getent_and_assert("switch_trigger1");
|
||||
level._door_switch_trig2 = getent_and_assert("switch_trigger2");
|
||||
|
||||
level._door1 = getent_and_assert("big_door1_clip");
|
||||
level._door2 = getent_and_assert("big_door2_clip");
|
||||
|
||||
level.const_fx_exploder_switch_green_light = 2001;
|
||||
level.const_fx_exploder_switch_red_light = 2002;
|
||||
|
||||
//Gets some diggers digging
|
||||
level thread digger_dig_init();
|
||||
|
||||
//Gets diggers in the background moving
|
||||
moving_diggers_init();
|
||||
|
||||
//Sets up the switchs players can flip to open the double doors
|
||||
level thread door_switch_func();
|
||||
|
||||
if( !level.wagerMatch && !isPregame() )
|
||||
{
|
||||
//get my doors opening at the start of the match
|
||||
level thread double_doors_open_at_start();
|
||||
}
|
||||
|
||||
//Get conveyer belt working
|
||||
level thread conveyer_belt_init();
|
||||
}
|
||||
|
||||
turnSwitchPanelRed()
|
||||
{
|
||||
exploder_stop( level.const_fx_exploder_switch_green_light );
|
||||
exploder( level.const_fx_exploder_switch_red_light );
|
||||
}
|
||||
|
||||
turnSwitchPanelGreen()
|
||||
{
|
||||
exploder_stop( level.const_fx_exploder_switch_red_light );
|
||||
exploder( level.const_fx_exploder_switch_green_light );
|
||||
}
|
||||
|
||||
//Sets it up so a player can flip a switch and open large double doors
|
||||
door_switch_func()
|
||||
{
|
||||
//Set up the use trigger switches that activate my double doors
|
||||
level._door_switch_trig1 thread door_switch_setup();
|
||||
level._door_switch_trig2 thread door_switch_setup();
|
||||
|
||||
//Cooldown switches inform the player that the door switch is on cooldown if they try to interact with it
|
||||
cooldown_switches = GetEntArray("off_trigger","targetname");
|
||||
AssertEx( cooldown_switches.size > 0, "Missing off_triggers");
|
||||
|
||||
for( i = 0; i < cooldown_switches.size; i++)
|
||||
{
|
||||
cooldown_switches[i] UseTriggerRequireLookAt();
|
||||
cooldown_switches[i] SetCursorHint( "HINT_NOICON" );
|
||||
cooldown_switches[i] SetHintString( &"MP_HOLD_DOOR_SWITCH_UNAVAILABLE");
|
||||
cooldown_switches[i] trigger_off();
|
||||
}
|
||||
|
||||
turnSwitchPanelRed();
|
||||
|
||||
kill_trig1 = getent_and_assert("edge_death_trig1");
|
||||
kill_trig2 = getent_and_assert("edge_death_trig2");
|
||||
center_death_trig = getent_and_assert("center_death_trig");
|
||||
|
||||
//Set up DVARS for tweaking door opening sequence
|
||||
d1_new_angle = set_dvar_int_if_unset("scr_d1_new_angle", "123");
|
||||
d2_new_angle = set_dvar_int_if_unset("scr_d2_new_angle", "-123");
|
||||
|
||||
door_model1 = getent_and_assert("big_door1");
|
||||
door_model2 = getent_and_assert("big_door2");
|
||||
|
||||
door_model1 LinkTo(level._door1);
|
||||
door_model2 LinkTo(level._door2);
|
||||
|
||||
door_monster_clip = GetEnt("door_monster_clip","targetname");
|
||||
|
||||
//door_monster_clip thread dog_kill();
|
||||
|
||||
//snd_door_status tracks if the door is open or closed
|
||||
snd_door_status = 0;
|
||||
|
||||
light_structs = getstructarray("switch_struct","targetname");
|
||||
AssertEx( light_structs.size > 0, "Missing light structs");
|
||||
|
||||
for( i = 0; i < light_structs.size; i++)
|
||||
{
|
||||
light_structs[i] thread switch_lights(i);
|
||||
}
|
||||
|
||||
tunnel_structs = getstructarray("tunnel_light_spot","targetname");
|
||||
AssertEx(tunnel_structs.size > 0, "Missing light structs");
|
||||
|
||||
for( i = 0; i < light_structs.size; i++)
|
||||
{
|
||||
tunnel_structs[i] thread tunnel_lights(i);
|
||||
}
|
||||
|
||||
while(!level.wagermatch)
|
||||
{
|
||||
//This is a switch in the level on the catwalk
|
||||
waittill_any_ents(level._door_switch_trig1,"trigger",level._door_switch_trig2,"trigger");
|
||||
|
||||
//Disables the switch temporarily
|
||||
level._door_switch_trig1 trigger_off();
|
||||
level._door_switch_trig2 trigger_off();
|
||||
|
||||
for( i = 0; i < cooldown_switches.size; i++)
|
||||
{
|
||||
cooldown_switches[i] trigger_on();
|
||||
}
|
||||
|
||||
//Set up DVARS for tweaking door opening sequence. Acceleration and decelation variation added for realistic offset.
|
||||
door_time = set_dvar_int_if_unset("scr_d1_time", "8");
|
||||
|
||||
//The doors have specific accelleration and deceleration values so as give an organic-looking timing offset.
|
||||
//When the doors are opening, we want Door 2 to accelerate slightly faster so as to avoid clipping.
|
||||
if(snd_door_status == 0)
|
||||
{
|
||||
d1_accel = door_time * .6;
|
||||
d2_accel = door_time * .7;
|
||||
|
||||
d1_decel = door_time * .4;
|
||||
d2_decel = door_time * .3;
|
||||
|
||||
//Monster clip is placed and path nodes are severed to keep dogs from running on the doors
|
||||
door_monster_clip trigger_on();
|
||||
door_monster_clip DisconnectPaths();
|
||||
}
|
||||
//When the doors are closing, we want Door 1 to accelerate slightly faster so as to avoid clipping.
|
||||
else
|
||||
{
|
||||
d1_accel = door_time * .7;
|
||||
d2_accel = door_time * .6;
|
||||
|
||||
d1_decel = door_time * .3;
|
||||
d2_decel = door_time * .4;
|
||||
}
|
||||
|
||||
door_cooldown = set_dvar_int_if_unset("scr_door_cooldown", "20");
|
||||
|
||||
level._door1 RotateRoll(d1_new_angle, door_time, d1_accel, d1_decel);
|
||||
level._door2 RotateRoll(d2_new_angle, door_time, d2_accel, d2_decel);
|
||||
|
||||
thread dropEverythingOnDoorsToGround();
|
||||
level thread destroyEquipment();
|
||||
|
||||
// Play door opening sound
|
||||
level._door1 playloopsound ("evt_hydraulic_loop", .5);
|
||||
level._door1 playsound ("evt_hydraulic_start");
|
||||
level._door1 thread door_snd_alarm ( 5 );
|
||||
|
||||
//This sets it so my doors move in reverse next time they're activated
|
||||
d1_new_angle = d1_new_angle * -1;
|
||||
d2_new_angle = d1_new_angle * -1;
|
||||
|
||||
//Flag marks the period of time i'm checking for any player caught in moving collision
|
||||
flag_set("kill_stuck_players");
|
||||
|
||||
//Give time for doors to move a moderate amount before starts kill trigger
|
||||
wait 4;
|
||||
|
||||
//Only want to kill players if doors are closing
|
||||
if(snd_door_status == 1)
|
||||
{
|
||||
//These are three seperate trigger brushes I want to check for stuck players
|
||||
kill_trig1 thread kill_edge_players_func();
|
||||
kill_trig2 thread kill_edge_players_func();
|
||||
center_death_trig thread kill_edge_players_func();
|
||||
}
|
||||
level._door1 waittill("rotatedone");
|
||||
|
||||
//snd_door_status tracks if the door is currently open or closed for seprate open and close audio
|
||||
if (snd_door_status == 0)
|
||||
{
|
||||
//stops the move loop, plays endind sound, and set current door status
|
||||
level._door1 stoploopsound (1);
|
||||
center_death_trig playsound ("evt_hydraulic_open");
|
||||
snd_door_status = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//stops the move loop, plays endind sound, and set current door status
|
||||
level._door1 stoploopsound (1);
|
||||
center_death_trig playsound ("evt_hydraulic_close");
|
||||
|
||||
//Clip is removed so dogs can path
|
||||
door_monster_clip ConnectPaths();
|
||||
door_monster_clip trigger_off();
|
||||
snd_door_status = 0;
|
||||
}
|
||||
|
||||
flag_clear("kill_stuck_players");
|
||||
|
||||
//Special notify to end my check for players caught on collision
|
||||
level notify ("edge_check");
|
||||
|
||||
wait (door_cooldown);
|
||||
level notify ("no_cooldown");
|
||||
|
||||
for( i = 0; i < cooldown_switches.size; i++)
|
||||
{
|
||||
cooldown_switches[i] trigger_off();
|
||||
}
|
||||
|
||||
level._door_switch_trig1 trigger_on();
|
||||
level._door_switch_trig2 trigger_on();
|
||||
}
|
||||
}
|
||||
door_snd_alarm ( alarmTimes )
|
||||
{
|
||||
|
||||
for (i=0; i < alarmTimes; i++)
|
||||
{
|
||||
wait (.5);
|
||||
|
||||
playsoundatposition("amb_alarm_buzz",(-664,110,436));
|
||||
|
||||
playsoundatposition("amb_alarm_buzz",(-664,-72,436));
|
||||
|
||||
playsoundatposition("amb_alarm_buzz",(-666,-602,436));
|
||||
|
||||
playsoundatposition("amb_alarm_buzz",(-666,660,444));
|
||||
|
||||
wait (1.5);
|
||||
}
|
||||
}
|
||||
//Self is the use triggers that activate the double doors
|
||||
door_switch_setup()
|
||||
{
|
||||
self usetriggerrequirelookat();
|
||||
if ( level.wagerMatch )
|
||||
{
|
||||
self SetHintString(&"MP_HOLD_DOOR_SWITCH_UNAVAILABLE");
|
||||
turnSwitchPanelRed();
|
||||
}
|
||||
else
|
||||
{
|
||||
self SetHintString(&"MP_HOLD_TO_OPERATE_DOORS");
|
||||
turnSwitchPanelGreen();
|
||||
}
|
||||
|
||||
while ( !level.wagerMatch )
|
||||
{
|
||||
// self is the switch. who is the player that triggered switch
|
||||
self waittill("trigger", who);
|
||||
|
||||
//Added "if" check for when the doors are triggered without a player -Leif
|
||||
if(IsDefined( who ))
|
||||
{
|
||||
who playsound ("evt_hydraulic_switch");
|
||||
}
|
||||
|
||||
wait (1);
|
||||
}
|
||||
}
|
||||
|
||||
//Self is a trigger. The triggers are placed in places i'm afraid of players getting caught
|
||||
kill_edge_players_func()
|
||||
{
|
||||
level endon ("edge_check");
|
||||
|
||||
//This only loops while the doors are moving
|
||||
while(1)
|
||||
{
|
||||
self waittill("trigger", player);
|
||||
|
||||
if((player IsTouching(level._door1)) || (player IsTouching(level._door2)))
|
||||
{
|
||||
player DoDamage(player.health * 2, self.origin, player, player, 0, "MOD_SUICIDE" );
|
||||
// TODO: add crushing audio. CDC
|
||||
}
|
||||
else
|
||||
{
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//TO DO: Review this function for multiplayer API improvements.
|
||||
//'Self' is the struct within the panel that operates the double doors
|
||||
switch_lights( element_number )
|
||||
{
|
||||
if ( level.PrematchPeriod > 0 && level.inPrematchPeriod == true )
|
||||
{
|
||||
level waittill("prematch_over");
|
||||
}
|
||||
|
||||
while(1)
|
||||
{
|
||||
effect_ent = Spawn("script_model", self.origin);
|
||||
effect_ent SetModel("tag_origin");
|
||||
|
||||
//This wait is necesary to get the effect to work on the newly created script model.
|
||||
wait .1;
|
||||
|
||||
//Green light signals the switch is not on cooldown
|
||||
turnSwitchPanelGreen();
|
||||
//PlayFXOnTag(level._effect["green_light"], effect_ent,"tag_origin" );
|
||||
|
||||
waittill_any_ents(level._door_switch_trig1,"trigger",level._door_switch_trig2,"trigger");
|
||||
|
||||
//This function is array threaded, so we must prevent FX from playing in the same frame using this loop
|
||||
for (i = 0; i < element_number; i++)
|
||||
{
|
||||
wait .1;
|
||||
}
|
||||
|
||||
effect_ent Delete();
|
||||
|
||||
blinky_effect_ent = Spawn("script_model", self.origin);
|
||||
blinky_effect_ent SetModel("tag_origin");
|
||||
|
||||
//This wait is necesary to get the effect to work on the newly created script model.
|
||||
wait .1;
|
||||
|
||||
//Blink red light signals the double doors are moving
|
||||
turnSwitchPanelRed();
|
||||
//PlayFXOnTag(level._effect["blink_light"], blinky_effect_ent,"tag_origin" );
|
||||
|
||||
//This notify signals that the doors have stopped moving
|
||||
level waittill ("edge_check");
|
||||
|
||||
for (i = 0; i < element_number; i++)
|
||||
{
|
||||
wait .1;
|
||||
}
|
||||
|
||||
blinky_effect_ent Delete();
|
||||
|
||||
final_effect_ent = Spawn("script_model", self.origin);
|
||||
final_effect_ent SetModel("tag_origin");
|
||||
|
||||
//This wait is necesary to get the effect to work on the newly created script model.
|
||||
wait .1;
|
||||
|
||||
//Red light signals the switch cannot be used
|
||||
//PlayFXOnTag(level._effect["red_light"], final_effect_ent,"tag_origin" );
|
||||
|
||||
//This notify signals that the doors have stopped moving
|
||||
level waittill ("no_cooldown");
|
||||
|
||||
for (i = 0; i < element_number; i++)
|
||||
{
|
||||
wait .1;
|
||||
}
|
||||
|
||||
final_effect_ent Delete();
|
||||
}
|
||||
}
|
||||
|
||||
//'Self' is the struct within the light bulbs in the Radiation tunnel. This function manages FX in the tunnel
|
||||
//'Element number' is equal to self's index number in the array that got array threaded.
|
||||
tunnel_lights(element_number)
|
||||
{
|
||||
door_closed = true;
|
||||
|
||||
while(1)
|
||||
{
|
||||
//Must define may variable to avoid SRE
|
||||
effect_ent = undefined;
|
||||
|
||||
//When door is closed, play "solid" tunnel light effect
|
||||
if(door_closed)
|
||||
{
|
||||
effect_ent = Spawn("script_model", self.origin);
|
||||
effect_ent SetModel("tag_origin");
|
||||
|
||||
//Must wait a moment for the script model to finish spawning
|
||||
wait .1;
|
||||
|
||||
PlayFXOnTag(level._effect["green_light"], effect_ent,"tag_origin" );
|
||||
}
|
||||
|
||||
//Wait until a tunnel double door switch is hit
|
||||
waittill_any_ents(level._door_switch_trig1,"trigger",level._door_switch_trig2,"trigger");
|
||||
|
||||
//This loop makes sure effects do not happen in the same frame, as this function has been array threaded to multiple ents.
|
||||
for (i = 0; i < element_number; i++)
|
||||
{
|
||||
wait .1;
|
||||
}
|
||||
|
||||
//'New effect' is the blinking lights that occur while the double doors are moving
|
||||
new_effect_ent = Spawn("script_model", self.origin);
|
||||
new_effect_ent SetModel("tag_origin");
|
||||
|
||||
if(IsDefined(effect_ent))
|
||||
{
|
||||
effect_ent Delete();
|
||||
}
|
||||
|
||||
//Must wait a moment for the script model to finish spawning
|
||||
wait .1;
|
||||
|
||||
PlayFXOnTag(level._effect["blink_light"], new_effect_ent,"tag_origin" );
|
||||
|
||||
level waittill ("edge_check");
|
||||
|
||||
for (i = 0; i < element_number; i++)
|
||||
{
|
||||
wait .1;
|
||||
}
|
||||
|
||||
new_effect_ent Delete();
|
||||
|
||||
if(!door_closed)
|
||||
{
|
||||
door_closed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
door_closed = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Open doors at start
|
||||
double_doors_open_at_start()
|
||||
{
|
||||
//Set up the double doors to open at the start of the match
|
||||
if ( level.PrematchPeriod > 0 && level.inPrematchPeriod == true )
|
||||
{
|
||||
level waittill("prematch_over");
|
||||
}
|
||||
|
||||
|
||||
//Slow down my door for other functions to hit waittil's
|
||||
wait .3;
|
||||
|
||||
//Note I didn't use the "useby player[0]" convention due to a hesitance to grab specific players in MP.
|
||||
level._door_switch_trig1 notify ("trigger");
|
||||
}
|
||||
|
||||
//Set up the devgui to have the ability to operate the doors, adjust door cooldown, rotate times, digger behavior, etc.
|
||||
devgui_radiation(cmd)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
wait(0.5);
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify");
|
||||
|
||||
switch(devgui_string)
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
|
||||
case "operate_doors":
|
||||
level._door_switch_trig1 notify ("trigger");
|
||||
break;
|
||||
|
||||
default:
|
||||
level notify(devgui_string);
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar("devgui_notify", "");
|
||||
}
|
||||
}
|
||||
|
||||
//*****TO DO: MOVE DIGGER FUNCTIONALITY CLIENT SIDE.*********
|
||||
|
||||
//Sets it up so I can handle multiple diggers doing a digging action
|
||||
digger_dig_init()
|
||||
{
|
||||
diggers = GetEntArray("digger_body","targetname");
|
||||
AssertEx( diggers.size > 0, "Unable to find entity with targetname 'digger_body'" );
|
||||
array_thread(diggers,::digger_dig_think);
|
||||
}
|
||||
|
||||
//Self is the digger's body entity. Function creates a series of movements for the diggers to create a digging behavior
|
||||
digger_dig_think()
|
||||
{
|
||||
body = self;
|
||||
arm = GetEnt(self.target, "targetname");
|
||||
AssertEx(IsDefined(arm), "Unable to find arm entity for a digger at " + self.origin );
|
||||
blade_center = GetEnt(arm.target, "targetname");
|
||||
AssertEx(IsDefined(blade_center), "Unable to find blade entity for a digger at " + self.origin );
|
||||
|
||||
blade_pieces = GetEntArray("digger_blade","targetname");
|
||||
|
||||
for( i = 0; i < blade_pieces.size; i++)
|
||||
{
|
||||
blade_pieces[i] LinkTo(blade_center);
|
||||
}
|
||||
|
||||
blade_center LinkTo( arm );
|
||||
arm LinkTo( body );
|
||||
|
||||
//play idle sound on body
|
||||
body playloopsound ("evt_excavator_idle", .5);
|
||||
|
||||
if(IsDefined(self.script_float))
|
||||
{
|
||||
set_dvar_int_if_unset("scr_dig_delay", self.script_float );
|
||||
}
|
||||
else
|
||||
{
|
||||
//'20' is the default value for the cooldown on the digger's dig action
|
||||
set_dvar_int_if_unset("scr_dig_delay", 20 );
|
||||
}
|
||||
|
||||
while(1)
|
||||
{
|
||||
arm_move_speed = set_dvar_int_if_unset("scr_arm_move_speed", 11);
|
||||
blade_spin_speed = set_dvar_int_if_unset("scr_blade_spin_speed", 80);
|
||||
blade_spin_up_time = set_dvar_int_if_unset("scr_blade_spin_up_time", 3);
|
||||
|
||||
body_turn = RandomIntRange(-15,15);
|
||||
//Must grab the absolute value of the turn value to get proper time fraction, which is the "positive_value_func"
|
||||
body_turn_speed = (positive_value_func(body_turn)) * .3;
|
||||
|
||||
body RotateYaw(body_turn, body_turn_speed, body_turn_speed/4, body_turn_speed/4 );
|
||||
|
||||
// play move loop on arm, and rev one shot on body
|
||||
arm playloopsound ("evt_excavator_move", .5);
|
||||
body playsound ("evt_excavator_rev");
|
||||
|
||||
body waittill ("rotatedone");
|
||||
|
||||
arm Unlink(body);
|
||||
arm RotatePitch(-45, arm_move_speed, arm_move_speed/4, arm_move_speed/4);
|
||||
arm waittill ("rotatedone");
|
||||
|
||||
blade_center UnLink(arm);
|
||||
blade_center RotatePitch(1800, blade_spin_speed, blade_spin_up_time, blade_spin_up_time);
|
||||
smokeAngles = ( 0, arm.angles[1]+180, arm.angles[2] );
|
||||
|
||||
forward = anglesToForward( smokeAngles );
|
||||
|
||||
//playfx ( level.chopper_fx["explode"]["death"], self.origin, forward );
|
||||
PlayFX( level._digger_fx, ( blade_center.origin[0], blade_center.origin[1], blade_center.origin[2]-560), forward );
|
||||
//stop loop on arm
|
||||
//iprintlnbold ("this is the stop I suspect"); //had to comment this out for playtest. -Leif
|
||||
arm stoploopsound (1);
|
||||
|
||||
// play digging loop on blade
|
||||
blade_center playloopsound ("evt_excavator_blade", .5);
|
||||
|
||||
blade_center waittill ("rotatedone");
|
||||
|
||||
// stop diggin loop blade
|
||||
blade_center stoploopsound (.5);
|
||||
|
||||
blade_center LinkTo(arm);
|
||||
|
||||
arm RotatePitch(45, arm_move_speed, arm_move_speed/4, arm_move_speed/4 );
|
||||
|
||||
// play move loop on arm, and rev one shot on body
|
||||
arm playloopsound ("evt_excavator_move", .5);
|
||||
body playsound ("evt_excavator_rev");
|
||||
|
||||
arm waittill ("rotatedone");
|
||||
arm LinkTo( body );
|
||||
|
||||
body RotateYaw((body_turn * -1), body_turn_speed, body_turn_speed/4, body_turn_speed/4);
|
||||
|
||||
body waittill ("rotatedone");
|
||||
arm stoploopsound (.5);
|
||||
|
||||
wait (GetDvarFloat( #"scr_dig_delay" ));
|
||||
}
|
||||
}
|
||||
|
||||
//Sets it up so the script can easily handle multiple moving diggers
|
||||
moving_diggers_init()
|
||||
{
|
||||
diggers = GetEntArray("moving_digger","targetname");
|
||||
//AssertEx( diggers.size > 0, "Unable to find entity with targetname 'moving_digger'" );
|
||||
array_thread(diggers, ::moving_diggers_think);
|
||||
}
|
||||
|
||||
//Sets up diggers that follow structs. Note the script_int K/V pair sets up the move time.
|
||||
moving_diggers_think()
|
||||
{
|
||||
digger_struct = getstruct_and_assert(self.target);
|
||||
|
||||
while(1)
|
||||
{
|
||||
//Each struct has a script_int key value pair that determines the length of time it takes to complete the move
|
||||
self MoveTo(digger_struct.origin, digger_struct.script_int);
|
||||
AssertEx(IsDefined(digger_struct.script_int), "Unable to find digger struct's 'script_int' key value pair for moving digger" );
|
||||
|
||||
self waittill("movedone");
|
||||
|
||||
//Structs target other structs to determine the digger's path.
|
||||
if(IsDefined(digger_struct.target))
|
||||
{
|
||||
digger_struct = GetStruct(digger_struct.target,"targetname");
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function needed to get the absolute value of an integer and be sure its a positive number
|
||||
positive_value_func(num)
|
||||
{
|
||||
return(max(1, abs(num)));
|
||||
}
|
||||
|
||||
//Starts a thread to alter player's velocity as long as they're in the trigger
|
||||
conveyer_belt_init()
|
||||
{
|
||||
//Need to set dvar to determine force of momentum in trigger
|
||||
set_dvar_int_if_unset( "scr_coveyer_speed", 45 );
|
||||
|
||||
conveyer_trigger = getent_and_assert("coveyer_trig");
|
||||
|
||||
//The trigger targets a script struct. The struct contains angles to determine the force direction.
|
||||
trigger_struct = getstruct_and_assert(conveyer_trigger.target);
|
||||
|
||||
//Find direction that my trigger is pointed toward
|
||||
trigger_angles = AnglesToForward(trigger_struct.angles);
|
||||
|
||||
//Create intensity of conveyer force equal to my script DVar. Store it on my trigger for a seperate function to use.
|
||||
conveyer_trigger._conveyer_vector = vector_scale(trigger_angles,GetDvarInt( #"scr_coveyer_speed"));
|
||||
|
||||
while(1)
|
||||
{
|
||||
conveyer_trigger waittill("trigger", player);
|
||||
if(IsPlayer(player))
|
||||
{
|
||||
conveyer_trigger thread trigger_thread(player, ::player_on_conveyer);
|
||||
}
|
||||
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
|
||||
//Self is trigger. Function is ran when player jumps into the trigger.
|
||||
player_on_conveyer(player, endon_string)
|
||||
{
|
||||
player endon ("death");
|
||||
player endon ("disconnect");
|
||||
player endon(endon_string);
|
||||
|
||||
while(1)
|
||||
{
|
||||
player_velocity = player GetVelocity();
|
||||
|
||||
//Don't want jumping player to be pulled by conveyer
|
||||
if (player IsOnGround())
|
||||
{
|
||||
//Gives player momentum in the direction of the conveyer equal to a dvar I created earlier along with their own momentum
|
||||
player SetVelocity(player_velocity + self._conveyer_vector);
|
||||
}
|
||||
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
|
||||
getent_and_assert(ent_name)
|
||||
{
|
||||
thing = GetEnt( ent_name, "targetname");
|
||||
AssertEx(IsDefined(thing), "Unable to find targetname " + ent_name);
|
||||
|
||||
return thing;
|
||||
}
|
||||
|
||||
getstruct_and_assert(struct_name)
|
||||
{
|
||||
thing = getstruct( struct_name, "targetname");
|
||||
AssertEx(IsDefined(thing), "Unable to find struct at " +struct_name);
|
||||
|
||||
return thing;
|
||||
}
|
||||
|
||||
dropEverythingOnDoorsToGround()
|
||||
{
|
||||
level endon("edge_check");
|
||||
|
||||
// keep dropping all to ground to keep the items in physics
|
||||
// if you only do it once or twice they come back to rest to fast
|
||||
// if there is a problem with this solution then we are going to need
|
||||
// to do something for keeping the crates in physics while in contact
|
||||
// with the doors.
|
||||
while(1)
|
||||
{
|
||||
wait(0.1);
|
||||
dropAllToGround( (0,0,128), 181, 100 );
|
||||
}
|
||||
}
|
||||
|
||||
destroyEquipment()
|
||||
{
|
||||
level endon ( "edge_check" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 2 );
|
||||
|
||||
grenades = GetEntArray( "grenade", "classname" );
|
||||
|
||||
for ( i = 0; i < grenades.size; i++ )
|
||||
{
|
||||
item = grenades[i];
|
||||
|
||||
if ( !IsDefined( item.name ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !IsDefined( item.owner ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !IsWeaponEquipment( item.name ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !item IsTouching( level._door1 ) && !item IsTouching( level._door2 ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
watcher = item.owner getWatcherForWeapon( item.name );
|
||||
|
||||
if ( !IsDefined( watcher ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
watcher thread maps\mp\gametypes\_weaponobjects::waitAndDetonate( item, 0.0, undefined );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getWatcherForWeapon( weapname )
|
||||
{
|
||||
if ( !IsDefined( self ) )
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if ( !IsPlayer( self ) )
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
for ( i = 0; i < self.weaponObjectWatcherArray.size; i++ )
|
||||
{
|
||||
if ( self.weaponObjectWatcherArray[i].weapon != weapname )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
return ( self.weaponObjectWatcherArray[i] );
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//spawns triggers to stop players from placing turrets
|
||||
addNoTurretTrigger( position, radius, height )
|
||||
{
|
||||
while( !IsDefined( level.noTurretPlacementTriggers ) )
|
||||
wait( 0.1 );
|
||||
|
||||
trigger = Spawn( "trigger_radius", position, 0, radius, height );
|
||||
|
||||
level.noTurretPlacementTriggers[level.noTurretPlacementTriggers.size] = trigger;
|
||||
}
|
139
mods/mp_patch/maps/mp/mp_russianbase.gsc
Normal file
139
mods/mp_patch/maps/mp/mp_russianbase.gsc
Normal file
@ -0,0 +1,139 @@
|
||||
#include maps\mp\_utility;
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_russianbase_fx::main();
|
||||
|
||||
precachemodel("collision_geo_32x32x128");
|
||||
precachemodel("collision_wall_256x256x10");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_russianbase_amb::main();
|
||||
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_russianbase_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_russianbase");
|
||||
}
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_winterspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
//fog
|
||||
//setExpFog(200, 6000, 0.7, 0.7, 0.73, 0);
|
||||
|
||||
/#
|
||||
level thread devgui_russianbase();
|
||||
execdevgui( "devgui_mp_russianbase" );
|
||||
#/
|
||||
|
||||
|
||||
// spawn collision for hole in wall between E2 and E3
|
||||
spawncollision("collision_wall_256x256x10","collider",(-1731, 960, 288), (0, 270, 0));
|
||||
|
||||
|
||||
// spawn collision for the new telephone pole
|
||||
spawncollision("collision_geo_32x32x128","collider",(-120, 1828, 63), (0, 0, 0));
|
||||
|
||||
//spawn a new set of windows in front of the missing ones for PS3
|
||||
|
||||
window1 = Spawn("script_model", (-2116, 0, 504) );
|
||||
if ( IsDefined(window1) )
|
||||
{
|
||||
window1.angles = (0,0,0);
|
||||
window1 SetModel("p_rus_window_dark01");
|
||||
}
|
||||
|
||||
window2 = Spawn("script_model", (-1878, 0, 504) );
|
||||
if ( IsDefined(window2) )
|
||||
{
|
||||
window2.angles = (0,0,0);
|
||||
window2 SetModel("p_rus_window_dark01");
|
||||
}
|
||||
|
||||
//spawn a new telephone pole
|
||||
|
||||
pole1 = Spawn("script_model", (-114.081, 1821.35, -10) );
|
||||
if ( IsDefined(pole1) )
|
||||
{
|
||||
pole1.angles = (0, 15.2, 0);
|
||||
pole1 SetModel("p_rus_electricpole");
|
||||
}
|
||||
|
||||
|
||||
|
||||
level thread runTrain();
|
||||
}
|
||||
|
||||
runTrain()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
precacheModel("t5_veh_train_boxcar");
|
||||
precacheModel("t5_veh_train_fuelcar");
|
||||
precacheModel("t5_veh_train_engine");
|
||||
|
||||
// if you change moveTime of numOfCarts you need to change it in client script also
|
||||
moveTime = 20;
|
||||
numOfCarts = 40;
|
||||
originalRation = ( moveTime / 80 );
|
||||
maxWaitBetweenTrains = getDvarIntDefault( #"scr_maxWaitBetweenTrains", 200 );
|
||||
trainTime = ( moveTime + ( numOfCarts * 4 * originalRation ) );
|
||||
|
||||
|
||||
/#
|
||||
russian_base_train_dev();
|
||||
#/
|
||||
for(;;)
|
||||
{
|
||||
waitBetweenTrains = randomint( maxWaitBetweenTrains );
|
||||
if ( waitBetweenTrains > 0 )
|
||||
wait( waitBetweenTrains );
|
||||
level clientNotify("play_train");
|
||||
wait( trainTime );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/#
|
||||
russian_base_train_dev()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "run_train" );
|
||||
level clientNotify("play_train");
|
||||
}
|
||||
}
|
||||
|
||||
devgui_russianbase( cmd )
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
wait( 0.5 );
|
||||
|
||||
devgui_string = GetDvar( #"devgui_notify" );
|
||||
|
||||
switch( devgui_string )
|
||||
{
|
||||
case "":
|
||||
break;
|
||||
default:
|
||||
level notify( devgui_string );
|
||||
break;
|
||||
}
|
||||
|
||||
SetDvar( "devgui_notify", "" );
|
||||
}
|
||||
}
|
||||
#/
|
107
mods/mp_patch/maps/mp/mp_silo.gsc
Normal file
107
mods/mp_patch/maps/mp/mp_silo.gsc
Normal file
@ -0,0 +1,107 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
|
||||
|
||||
//========================================================
|
||||
// main
|
||||
//========================================================
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_silo_fx::main();
|
||||
maps\mp\createart\mp_silo_art::main();
|
||||
|
||||
precachemodel("collision_wall_256x256x10");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
// maps\mp\_compass::setupMiniMap("compass_map_mp_silo");
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_silo_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_silo");
|
||||
}
|
||||
|
||||
/#
|
||||
execdevgui( "devgui_mp_silo" );
|
||||
#/
|
||||
|
||||
maps\mp\mp_silo_amb::main();
|
||||
|
||||
// If the team nationalites change in this file, you must also update the level's csc file,
|
||||
// the level's csv file, and the share/raw/mp/mapsTable.csv
|
||||
maps\mp\gametypes\_teamset_urbanspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar( "compassmaxrange","2100" );
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning( true );
|
||||
|
||||
level thread crane_container();
|
||||
|
||||
//spawning collision in wager match so players can't hide in the spawned plates
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 || isPregame() )
|
||||
{
|
||||
spawncollision("collision_wall_256x256x10","collider",(1527, 71, 16), (0, 337, 0));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//========================================================
|
||||
// cargo_container
|
||||
//========================================================
|
||||
crane_container()
|
||||
{
|
||||
crane_container = GetEnt( "crane_container", "targetname" );
|
||||
|
||||
if( !IsDefined( crane_container ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
crane_container thread rotate_crane_container();
|
||||
}
|
||||
|
||||
|
||||
//========================================================
|
||||
// rotate_crane_container
|
||||
//========================================================
|
||||
rotate_crane_container()
|
||||
{
|
||||
rotate_time = 8;
|
||||
rotate_angle = 30;
|
||||
|
||||
self RotateYaw( rotate_angle / 2, rotate_time / 2 );
|
||||
self waittill( "rotatedone" );
|
||||
|
||||
while( true )
|
||||
{
|
||||
rotate_angle = rotate_angle * -1;
|
||||
|
||||
self RotateYaw( rotate_angle, rotate_time, rotate_time / 2, rotate_time / 2 );
|
||||
self waittill( "rotatedone" );
|
||||
}
|
||||
|
||||
}
|
105
mods/mp_patch/maps/mp/mp_villa.gsc
Normal file
105
mods/mp_patch/maps/mp/mp_villa.gsc
Normal file
@ -0,0 +1,105 @@
|
||||
#include maps\mp\_utility;
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_villa_fx::main();
|
||||
|
||||
precachemodel("collision_geo_64x64x256");
|
||||
precachemodel("collision_geo_32x32x128");
|
||||
precachemodel("collision_geo_32x32x32");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_villa_amb::main();
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_villa_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_villa");
|
||||
}
|
||||
|
||||
// If the team nationalites change in this file,
|
||||
// you must update the team nationality in the level's csc file as well!
|
||||
maps\mp\gametypes\_teamset_cubans::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// collision keeping players from poking their heads into rock
|
||||
spawncollision("collision_geo_64x64x256","collider",(4790, 1863, 388), (0, 30.8, 0));
|
||||
|
||||
// collision keeping players from poking their heads into another rock near the allies spawn
|
||||
spawncollision("collision_geo_32x32x128","collider",(4329, 3735, 144), (0, 0, 0));
|
||||
|
||||
// collision keeping players from poking their heads into another rock near D2.
|
||||
spawncollision("collision_geo_32x32x32","collider",(2512, 3818, 113), (0, 45, 0));
|
||||
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
level thread startLightning();
|
||||
}
|
||||
|
||||
|
||||
|
||||
startLightning()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
self thread trigger_lightning_exploder();
|
||||
wait( 30 + randomfloat(40) );
|
||||
//wait (4);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
trigger_lightning_exploder()
|
||||
{
|
||||
randomExploder = randomint( 4 );
|
||||
//randomExploder = 3;
|
||||
switch( randomExploder )
|
||||
{
|
||||
case 0:
|
||||
exploder(1001);
|
||||
playsoundatposition("amb_thunder_clap",( 259.2, -801, 1197 ));
|
||||
//println ("sound exploder 1");
|
||||
break;
|
||||
case 1:
|
||||
exploder(1002);
|
||||
playsoundatposition("amb_thunder_clap",( 2523, -17012, 1174 ));
|
||||
//println ("sound exploder 2");
|
||||
break;
|
||||
case 2:
|
||||
exploder(1003);
|
||||
playsoundatposition("amb_thunder_clap",(6457, -611, 1145));
|
||||
//println ("sound exploder 3");
|
||||
break;
|
||||
case 3:
|
||||
exploder(1004);
|
||||
playsoundatposition("amb_thunder_clap",(4981, 1335, 890));
|
||||
//println ("sound exploder 4");
|
||||
break;
|
||||
}
|
||||
}
|
88
mods/mp_patch/maps/mp/mp_zoo.gsc
Normal file
88
mods/mp_patch/maps/mp/mp_zoo.gsc
Normal file
@ -0,0 +1,88 @@
|
||||
#include maps\mp\_utility;
|
||||
main()
|
||||
{
|
||||
//needs to be first for create fx
|
||||
maps\mp\mp_zoo_fx::main();
|
||||
|
||||
precachemodel("collision_wall_256x256x10");
|
||||
precachemodel("collision_geo_32x32x128");
|
||||
precachemodel("collision_geo_128x128x10");
|
||||
precachemodel("collision_geo_64x64x64");
|
||||
|
||||
maps\mp\_load::main();
|
||||
|
||||
maps\mp\mp_zoo_amb::main();
|
||||
|
||||
// maps\mp\_compass::setupMiniMap("compass_map_mp_zoo");
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_zoo_wager");
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\_compass::setupMiniMap("compass_map_mp_zoo");
|
||||
}
|
||||
|
||||
|
||||
// If the team nationalites change in this file, you must also update the level's csc file,
|
||||
// the level's csv file, and the share/raw/mp/mapsTable.csv
|
||||
maps\mp\gametypes\_teamset_urbanspecops::level_init();
|
||||
|
||||
// Set up the default range of the compass
|
||||
setdvar("compassmaxrange","2100");
|
||||
|
||||
// Set up some generic War Flag Names.
|
||||
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
||||
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
||||
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
||||
|
||||
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
||||
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
||||
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
||||
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
||||
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
||||
|
||||
// enable new spawning system
|
||||
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
|
||||
|
||||
//spawn gates to explain rogue physics collision brush
|
||||
|
||||
gate1 = Spawn("script_model", (1040, 1495, 56) );
|
||||
if ( IsDefined(gate1) )
|
||||
{
|
||||
gate1.angles = (0, 270, 0);
|
||||
gate1 SetModel("p_zoo_bend_gate_mid");
|
||||
}
|
||||
gate2 = Spawn("script_model", (1104, 1495, 56) );
|
||||
if ( IsDefined(gate2) )
|
||||
{
|
||||
gate2.angles = (0, 270, 0);
|
||||
gate2 SetModel("p_zoo_bend_gate_mid");
|
||||
}
|
||||
|
||||
// spawn collision for bit of collision above a light in B3
|
||||
spawncollision("collision_wall_256x256x10","collider",(876, 2034, 169), (0, 90, 0));
|
||||
|
||||
// spawn collision to stop players from hiding inside the may-pole.
|
||||
spawncollision("collision_geo_32x32x128","collider",(49, 832, 66), (0, 0, 0));
|
||||
spawncollision("collision_geo_32x32x128","collider",(49, 832, 194), (0, 0, 0));
|
||||
|
||||
// spawn collision to stop players from hiding inside the may-pole base.
|
||||
spawncollision("collision_geo_64x64x64","collider",(47, 833, -16), (0, 0, 0));
|
||||
spawncollision("collision_geo_64x64x64","collider",(47, 833, -16), (0, 315, 0));
|
||||
|
||||
// spawn collision to stop players from standing on collision in aviary.
|
||||
spawncollision("collision_geo_128x128x10","collider",(934, 205, 74), (28.2, 340.6, -38.4));
|
||||
|
||||
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 || isPregame() )
|
||||
{
|
||||
spawncollision("collision_wall_256x256x10","collider",(-5, 821, 72), (0, 297, 0));
|
||||
}
|
||||
|
||||
}
|
77
mods/mp_patch/mod.csv
Normal file
77
mods/mp_patch/mod.csv
Normal file
@ -0,0 +1,77 @@
|
||||
rawfile,maps/mp/_dogs.gsc
|
||||
rawfile,maps/mp/_utility.gsc
|
||||
rawfile,maps/mp/gametypes/_globallogic_player.gsc
|
||||
rawfile,maps/mp/gametypes/_globallogic_score.gsc
|
||||
rawfile,maps/mp/gametypes/_spawning.gsc
|
||||
rawfile,maps/mp/gametypes/ctf.gsc
|
||||
rawfile,maps/mp/gametypes/dem.gsc
|
||||
rawfile,maps/mp/gametypes/dom.gsc
|
||||
rawfile,maps/mp/gametypes/koth.gsc
|
||||
rawfile,maps/mp/gametypes/sab.gsc
|
||||
rawfile,maps/mp/mp_array.gsc
|
||||
rawfile,maps/mp/mp_cairo.gsc
|
||||
rawfile,maps/mp/mp_cosmodrome.gsc
|
||||
rawfile,maps/mp/mp_crisis.gsc
|
||||
rawfile,maps/mp/mp_duga.gsc
|
||||
rawfile,maps/mp/mp_firingrange.gsc
|
||||
rawfile,maps/mp/mp_mountain.gsc
|
||||
rawfile,maps/mp/mp_nuked.gsc
|
||||
rawfile,maps/mp/mp_radiation.gsc
|
||||
rawfile,maps/mp/mp_russianbase.gsc
|
||||
rawfile,maps/mp/mp_villa.gsc
|
||||
rawfile,maps/mp/mp_zoo.gsc
|
||||
rawfile,maps/mp/mp_golfcourse.gsc
|
||||
rawfile,maps/mp/mp_silo.gsc
|
||||
|
||||
rawfile,clientscripts/mp/_claymore.csc
|
||||
|
||||
menufile,ui_mp/patch.txt
|
||||
menufile,ui_mp/custom_settings_general.menu
|
||||
menufile,ui_mp/fileshare_playercard.menu
|
||||
menufile,ui_mp/after_action_report.menu
|
||||
menufile,ui_mp/options_multi.menu
|
||||
menufile,ui_mp/scriptmenus/callvote.menu
|
||||
menufile,ui_mp/scriptmenus/changeclass.menu
|
||||
menufile,ui_mp/scriptmenus/class.menu
|
||||
menufile,ui_mp/hud_hardcore.menu
|
||||
menufile,ui_mp/players.menu
|
||||
menufile,ui_mp/hud_team.menu
|
||||
menufile,ui_mp/hud_ffa.menu
|
||||
menufile,ui_mp/playercards_clantag.menu
|
||||
menufile,ui_mp/mods.menu
|
||||
menufile,ui_mp/cac_custom.menu
|
||||
menufile,ui_mp/cac_popups.menu
|
||||
menufile,ui_mp/cac_weapon.menu
|
||||
menufile,ui_mp/combat_record.menu
|
||||
menufile,ui_mp/game_mode.menu
|
||||
menufile,ui_mp/main.menu
|
||||
menufile,ui_mp/pc_serversettings.menu
|
||||
menufile,ui_mp/serverbrowser.menu
|
||||
menufile,ui_mp/custom_game_create.menu
|
||||
menufile,ui_mp/pc_basictraining.menu
|
||||
|
||||
rawfile,rumble/shotgun_fire_h.rmb
|
||||
rawfile,rumble/shotgun_fire_l.rmb
|
||||
rawfile,rumble/silencer_fire_h.rmb
|
||||
rawfile,rumble/silencer_fire_l.rmb
|
||||
rawfile,rumble/heavygun_fire_h.rmb
|
||||
rawfile,rumble/heavygun_fire_l.rmb
|
||||
rawfile,rumble/smg_fire_h.rmb
|
||||
rawfile,rumble/smg_fire_l.rmb
|
||||
rawfile,rumble/assault_fire_h.rmb
|
||||
rawfile,rumble/assault_fire_l.rmb
|
||||
rawfile,rumble/flamethrower_h.rmb
|
||||
rawfile,rumble/flamethrower_l.rmb
|
||||
rawfile,rumble/damage_heavy_h.rmb
|
||||
rawfile,rumble/damage_heavy_l.rmb
|
||||
|
||||
menufile,ui/options_graphics_pc.menu
|
||||
menufile,ui/error.menu
|
||||
|
||||
stringtable,mp/gametypesTable.csv
|
||||
stringtable,mp/mapsTable.csv
|
||||
stringtable,mp/attachmentTable.csv
|
||||
|
||||
rawfile,maps/mp/gametypes/_bot.gsc
|
||||
|
||||
menufile,ui_mp/playercards.menu
|
|
104
mods/mp_patch/mp/attachmentTable.csv
Normal file
104
mods/mp_patch/mp/attachmentTable.csv
Normal file
@ -0,0 +1,104 @@
|
||||
a0,b1,c2,d3,e4,f5,g6,h7,i8,j9,k10,l11,m12,n13,o14
|
||||
"# Weapon Attachment Data [ DO NOT CHANGE FORMAT, NAME/REFERENCE ARE TO BE UNIQUE IN THE WHOLE TABLE ]",,,,,,,,,,,,,,
|
||||
# index,# attach point,# group,# name,# reference,# count,# image,# description,# data - string,# data - int ,# data - int2 (binary mask),# data - string - compatible attachments - separated by a space ,# cost of this attachment,#unlock lvl,#unlock plevel
|
||||
0,none,attachment,MPUI_NO_ATTACHMENT,none,,weapon_missing_image,MPUI_NO_ATTACHMENT_DESC,,0,,,,,
|
||||
1,top,attachment,MPUI_REFLEX,reflex,,menu_mp_weapons_attach_aimpoint,MPUI_REFLEX_DESC,REFLEX,1,,dualclip extclip grip rf silencer,1000,,
|
||||
2,top,attachment,MPUI_ELBIT,elbit,,menu_mp_weapons_attach_elbit,MPUI_ELBIT_DESC,ELBIT,2,,dualclip extclip grip rf silencer,1000,,
|
||||
3,top,attachment,MPUI_ACOG,acog,,menu_mp_weapons_attach_acog,MPUI_ACOG_DESC,ACOG,3,,dualclip extclip grip rf silencer,1000,,
|
||||
4,top,attachment,MPUI_LPS,lps,,menu_mp_weapons_attach_lps,MPUI_LPS_DESC,LPS,4,,,2000,,
|
||||
5,top,attachment,MPUI_VZOOM,vzoom,,menu_mp_weapons_attach_vzoom,MPUI_VZOOM_DESC,VZOOM,5,,extclip silencer,2000,,
|
||||
6,top,attachment,MPUI_IR,ir,,menu_mp_weapons_attach_ir,MPUI_IR_DESC,IR,6,,dualclip extclip grip silencer,2000,,
|
||||
7,bottom,attachment,MPUI_GL,gl,,menu_mp_weapons_attach_grenade_launcher,MPUI_GL_DESC,GL,7,,,3000,,
|
||||
8,bottom,attachment,MPUI_MK,mk,,menu_mp_weapons_attach_masterkey,MPUI_MK_DESC,MK,8,,,1000,,
|
||||
9,muzzle,attachment,MPUI_SILENCER,silencer,,menu_mp_weapons_attach_silencer,MPUI_SILENCER_DESC,SILENCER,9,,acog dualclip elbit extclip grip ir reflex rf upgradesight vzoom,2000,,
|
||||
10,bottom,attachment,MPUI_GRIP,grip,,menu_mp_weapons_attach_grip,MPUI_GRIP_DESC,GRIP,10,,acog dualclip elbit extclip ir reflex rf silencer,1000,,
|
||||
11,trigger,attachment,MPUI_EXTCLIP,extclip,,menu_mp_weapons_attach_extend_clip,MPUI_EXTCLIP_DESC,EXTCLIP,11,,acog elbit grip ir reflex rf silencer upgradesight vzoom,1000,,
|
||||
12,trigger,attachment,MPUI_DUALCLIP,dualclip,,menu_mp_weapons_attach_dual_clip,MPUI_DUALCLIP_DESC,DUALCLIP,12,,acog elbit grip ir reflex rf silencer,1000,,
|
||||
13,trigger,attachment,MPUI_SADDLE,saddle,,weapon_missing_image,MPUI_SADDLE_DESC,SADDLE,13,,,,,
|
||||
14,trigger,attachment,MPUI_FMJ,fmj,,weapon_missing_image,MPUI_FMJ_DESC,FMJ,14,,,,,
|
||||
15,trigger,attachment,MPUI_HP,hp,,weapon_missing_image,MPUI_HP_DESC,HP,15,,,,,
|
||||
16,trigger,attachment,MPUI_RF,rf,,menu_mp_weapons_attach_rof,MPUI_RF_DESC,RF,16,,acog dualclip elbit extclip grip reflex silencer,3000,,
|
||||
17,bottom,attachment,MPUI_FT,ft,,menu_mp_weapons_attach_flamethrower,MPUI_FT_DESC,FT,17,,,1000,,
|
||||
18,bottom,attachment,MPUI_BAYONET,bayonet,,weapon_missing_image,MPUI_BAYONET_DESC,BAYONET,18,,,,,
|
||||
19,trigger,attachment,MPUI_AUTO,auto,,menu_mp_weapons_attach_auto,MPUI_AUTO_DESC,auto,19,,,2000,,
|
||||
20,trigger,attachment,MPUI_SPEED,speed,,menu_mp_weapons_attach_reload,MPUI_SPEED_DESC,speed,20,,,1000,,
|
||||
21,top,attachment,MPUI_UPGRADESIGHT,upgradesight,,menu_mp_weapons_attach_upgradesight,MPUI_UPGRADESIGHT_DESC,upgradesight,21,,,250,,
|
||||
22,muzzle,attachment,MPUI_SNUB,snub,,menu_mp_weapons_attach_snub,MPUI_SNUB_DESC,snub,22,,,500,,
|
||||
23,bottom,attachment,MPUI_DW,dw,,weapon_missing_image,MPUI_DW_DESC,dw,23,,,1000,,
|
||||
0,camo,weaponoption,MPUI_NONE,camo_none,,weapon_missing_image,MPUI_NONE,,,,,,,
|
||||
1,camo,weaponoption,MPUI_CAMO_DUSTY,camo_dusty,,menu_mp_weapons_camo_dusty,MPUI_CAMO_DUSTY,,,,,250,,
|
||||
2,camo,weaponoption,MPUI_CAMO_ICE,camo_ice,,menu_mp_weapons_camo_icy,MPUI_CAMO_ICE,,,,,250,,
|
||||
3,camo,weaponoption,MPUI_CAMO_RED,cammo_red,,menu_mp_weapons_camo_mass,MPUI_CAMO_RED,,,,,250,,
|
||||
4,camo,weaponoption,MPUI_CAMO_OLIVE,camo_od,,menu_mp_weapons_camo_olive,MPUI_CAMO_OLIVE,,,,,250,,
|
||||
5,camo,weaponoption,MPUI_CAMO_NEVADA,camo_desert_nevada,,menu_mp_weapons_camo_nevada,MPUI_CAMO_NEVADA,,,,,250,,
|
||||
6,camo,weaponoption,MPUI_CAMO_SAHARA,camo_desert_sahara,,menu_mp_weapons_camo_sahara,MPUI_CAMO_SAHARA,,,,,250,,
|
||||
7,camo,weaponoption,MPUI_CAMO_ERDL,camo_jungle_erdl,,menu_mp_weapons_camo_erdl,MPUI_CAMO_ERDL,,,,,250,,
|
||||
8,camo,weaponoption,MPUI_CAMO_TIGER,camo_jungle_tiger,,menu_mp_weapons_camo_tiger,MPUI_CAMO_TIGER,,,,,250,,
|
||||
9,camo,weaponoption,MPUI_CAMO_BERLIN,camo_urban_german,,menu_mp_weapons_camo_berlin,MPUI_CAMO_BERLIN,,,,,250,,
|
||||
10,camo,weaponoption,MPUI_CAMO_WARSAW,camo_urban_warsaw,,menu_mp_weapons_camo_warsaw,MPUI_CAMO_WARSAW,,,,,250,,
|
||||
11,camo,weaponoption,MPUI_CAMO_SIBERIA,camo_winter_siberia,,menu_mp_weapons_camo_siberia,MPUI_CAMO_SIBERIA,,,,,250,,
|
||||
12,camo,weaponoption,MPUI_CAMO_YUKON,camo_winter_yukon,,menu_mp_weapons_camo_yukon,MPUI_CAMO_YUKON,,,,,250,,
|
||||
13,camo,weaponoption,MPUI_CAMO_WOODLAND,camo_woodland,,menu_mp_weapons_camo_wood,MPUI_CAMO_WOODLAND,,,,,250,,
|
||||
14,camo,weaponoption,MPUI_CAMO_FLORA,camo_woodland_flora,,menu_mp_weapons_camo_flora,MPUI_CAMO_FLORA,,,,,250,,
|
||||
15,camo,weaponoption,MPUI_CAMO_GOLD,camo_gold,,menu_mp_weapons_camo_gold,MPUI_CAMO_GOLD,,,,,50000,,14
|
||||
16,lens,weaponoption,MPUI_LENS_DEFAULT,,,,,,,,,,,
|
||||
17,lens,weaponoption,MPUI_LENS_RED,,,,,,,,,500,,
|
||||
18,lens,weaponoption,MPUI_LENS_BLUE,,,,,,,,,500,,
|
||||
19,lens,weaponoption,MPUI_LENS_GREEN,,,,,,,,,500,,
|
||||
20,lens,weaponoption,MPUI_LENS_ORANGE,,,,,,,,,500,,
|
||||
21,lens,weaponoption,MPUI_LENS_YELLOW,,,,,,,,,500,,
|
||||
22,reticle,weaponoption,MPUI_RETICLE_DEFAULT,,,menu_mp_reticle_red_dot_main,,,,,,,,
|
||||
23,reticle,weaponoption,MPUI_RETICLE_1,,,menu_mp_reticle_circle_split01,,,,,,500,,
|
||||
24,reticle,weaponoption,MPUI_RETICLE_2,,,menu_mp_reticle_lines_dots01,,,,,,500,,
|
||||
25,reticle,weaponoption,MPUI_RETICLE_3,,,menu_mp_reticle_circles05,,,,,,500,,
|
||||
26,reticle,weaponoption,MPUI_RETICLE_4,,,menu_mp_reticle_happyface01,,,,,,500,,
|
||||
27,reticle,weaponoption,MPUI_RETICLE_ARROWS02,,,menu_mp_reticle_arrows02,,,,,,500,,
|
||||
28,reticle,weaponoption,MPUI_RETICLE_ARROWS01,,,menu_mp_reticle_arrows01,,,,,,500,,
|
||||
29,reticle,weaponoption,MPUI_RETICLE_ARROWS03,,,menu_mp_reticle_arrows03,,,,,,500,,
|
||||
30,reticle,weaponoption,MPUI_RETICLE_BONES,,,menu_mp_reticle_bones,,,,,,500,,
|
||||
31,reticle,weaponoption,MPUI_RETICLE_BURST01,,,menu_mp_reticle_burst01,,,,,,500,,
|
||||
32,reticle,weaponoption,MPUI_RETICLE_CIRCLES01,,,menu_mp_reticle_circles01,,,,,,500,,
|
||||
33,reticle,weaponoption,MPUI_RETICLE_CIRCLES02,,,menu_mp_reticle_circles02,,,,,,500,,
|
||||
34,reticle,weaponoption,MPUI_RETICLE_CIRCLES03,,,menu_mp_reticle_circles03,,,,,,500,,
|
||||
35,reticle,weaponoption,MPUI_RETICLE_CIRCLES04,,,menu_mp_reticle_circles04,,,,,,500,,
|
||||
36,reticle,weaponoption,MPUI_RETICLE_CIRCLES_LINES01,,,menu_mp_reticle_circles_lines01,,,,,,500,,
|
||||
37,reticle,weaponoption,MPUI_RETICLE_CIRCLES_LINES02,,,menu_mp_reticle_circles_lines02,,,,,,500,,
|
||||
38,reticle,weaponoption,MPUI_RETICLE_CIRCLES_LINES03,,,menu_mp_reticle_circles_lines03,,,,,,500,,
|
||||
39,reticle,weaponoption,MPUI_RETICLE_CIRCLES_TRIANGLES01,,,menu_mp_reticle_circles_triangles01,,,,,,500,,
|
||||
40,reticle,weaponoption,MPUI_RETICLE_CIRCLES_TRIANGLES02,,,menu_mp_reticle_circles_triangles02,,,,,,500,,
|
||||
41,reticle,weaponoption,MPUI_RETICLE_CROSS01,,,menu_mp_reticle_cross01,,,,,,500,,
|
||||
42,reticle,weaponoption,MPUI_RETICLE_CROSS02,,,menu_mp_reticle_cross02,,,,,,500,,
|
||||
43,reticle,weaponoption,MPUI_RETICLE_CROSS03,,,menu_mp_reticle_cross03,,,,,,500,,
|
||||
44,reticle,weaponoption,MPUI_RETICLE_CROSS04,,,menu_mp_reticle_cross04,,,,,,500,,
|
||||
45,reticle,weaponoption,MPUI_RETICLE_CROSS05,,,menu_mp_reticle_cross05,,,,,,500,,
|
||||
46,reticle,weaponoption,MPUI_RETICLE_DIAMOND01,,,menu_mp_reticle_diamond01,,,,,,500,,
|
||||
47,reticle,weaponoption,MPUI_RETICLE_DIAMOND02,,,menu_mp_reticle_diamond02,,,,,,500,,
|
||||
48,reticle,weaponoption,MPUI_RETICLE_HEART,,,menu_mp_reticle_heart,,,,,,500,,
|
||||
49,reticle,weaponoption,MPUI_RETICLE_RADIATION,,,menu_mp_reticle_radiation,,,,,,500,,
|
||||
50,reticle,weaponoption,MPUI_RETICLE_SKULL01,,,menu_mp_reticle_skull01,,,,,,500,,
|
||||
51,reticle,weaponoption,MPUI_RETICLE_SQUARE01,,,menu_mp_reticle_square01,,,,,,500,,
|
||||
52,reticle,weaponoption,MPUI_RETICLE_SQUARE02,,,menu_mp_reticle_square02,,,,,,500,,
|
||||
53,reticle,weaponoption,MPUI_RETICLE_SQUARES_CROSS,,,menu_mp_reticle_squares_cross01,,,,,,500,,
|
||||
54,reticle,weaponoption,MPUI_RETICLE_STAR01,,,menu_mp_reticle_star01,,,,,,500,,
|
||||
55,reticle,weaponoption,MPUI_RETICLE_THREEDOTS01,,,menu_mp_reticle_three_dots,,,,,,500,,
|
||||
56,reticle,weaponoption,MPUI_RETICLE_TREYARCH,,,menu_mp_reticle_treyarch,,,,,,500,,
|
||||
57,reticle,weaponoption,MPUI_RETICLE_TRIANGLE01,,,menu_mp_reticle_triangle01,,,,,,500,,
|
||||
58,reticle,weaponoption,MPUI_RETICLE_TRIANGLE02,,,menu_mp_reticle_triangle02,,,,,,500,,
|
||||
59,reticle,weaponoption,MPUI_RETICLE_X01,,,menu_mp_reticle_x01,,,,,,500,,
|
||||
60,reticle,weaponoption,MPUI_RETICLE_X02,,,menu_mp_reticle_x02,,,,,,500,,
|
||||
61,reticle,weaponoption,MPUI_RETICLE_YINGYANG,,,menu_mp_reticle_yinyang,,,,,,500,,
|
||||
62,tag,weaponoption,FEATURE_GUN_TAG,tag,,,,,,,,1000,,
|
||||
63,emblem,weaponoption,FEATURE_GUN_EMBLEM,emblem,,,,,,,,1000,,
|
||||
64,tag,weaponoption,FEATURE_SECOND_ATTACHMENT,2ndattach,,,,,,,,3000,,
|
||||
65,reticle_color,weaponoption,MPUI_RETICLE_COLOR_1,,,,,,,,,,,
|
||||
66,reticle_color,weaponoption,MPUI_RETICLE_COLOR_2,,,,,,,,,250,,
|
||||
67,reticle_color,weaponoption,MPUI_RETICLE_COLOR_3,,,,,,,,,250,,
|
||||
68,reticle_color,weaponoption,MPUI_RETICLE_COLOR_4,,,,,,,,,250,,
|
||||
69,reticle_color,weaponoption,MPUI_RETICLE_COLOR_5,,,,,,,,,250,,
|
||||
70,reticle_color,weaponoption,MPUI_RETICLE_COLOR_6,,,,,,,,,250,,
|
||||
71,reticle_color,weaponoption,MPUI_RETICLE_COLOR_7,,,,,,,,,250,,
|
||||
0,none,point,MPUI_NONE,none,,weapon_missing_image,MPUI_NO_ATTACHMENT_DESC,,,,,,,
|
||||
1,none,point,MENU_ATTACH_POINT_TOP,top,,,MENU_ATTACH_POINT_TOP_DESC,,,,,,,
|
||||
2,none,point,MENU_ATTACH_POINT_BOTTOM,bottom,,,MENU_ATTACH_POINT_BOTTOM_DESC,,,,,,,
|
||||
3,none,point,MENU_ATTACH_POINT_TRIGGER,trigger,,,MENU_ATTACH_POINT_TRIGGER_DESC,,,,,,,
|
||||
4,none,point,MENU_ATTACH_POINT_MUZZLE,muzzle,,,MENU_ATTACH_POINT_MUZZLE_DESC,,,,,,,
|
|
63
mods/mp_patch/mp/gametypesTable.csv
Normal file
63
mods/mp_patch/mp/gametypesTable.csv
Normal file
@ -0,0 +1,63 @@
|
||||
#Gametypes Table,,,,,,
|
||||
a0,b1,c2,d3,e4,f5,g6
|
||||
maxnum_gametype,12,,,,,
|
||||
total_filesharegametype,12,,,,,
|
||||
#gametype reference,#gametype names,#gametype description,#image,#index,#splitscreen,#gametime names lowercase
|
||||
tdm,MPUI_TEAM_DEATHMATCH_CAPS,MENU_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,0,YES,MPUI_TEAM_DEATHMATCH
|
||||
dm,MPUI_DEATHMATCH_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,1,YES,MPUI_DEATHMATCH
|
||||
sd,MPUI_SEARCH_AND_DESTROY_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING_NO_SPAWN,playlist_search_destroy,2,YES,MPUI_SEARCH_AND_DESTROY_CLASSIC
|
||||
dom,MPUI_DOMINATION_CAPS,MENU_CAPTURE_AND_HOLD_THE,playlist_domination,3,YES,MPUI_DOMINATION
|
||||
koth,MPUI_HEADQUARTERS_CAPS,MENU_CAPTURE_THE_HEADQUARTERS,playlist_headquarters,4,YES,MPUI_HEADQUARTERS
|
||||
dem,MPUI_DEMOLITION_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING,playlist_demolition,5,YES,MPUI_DEMOLITION
|
||||
ctf,MPUI_CAPTURE_THE_FLAG_CAPS,MENU_CTF_DESC,playlist_ctf,6,YES,MPUI_CAPTURE_THE_FLAG
|
||||
sab,MPUI_SABOTAGE_CAPS,MENU_1_BOMB_IN_THE_CENTER,playlist_sabotage,7,YES,MPUI_SABOTAGE
|
||||
hlnd,MPUI_HLND_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,8,YES,MPUI_HLND
|
||||
oic,MPUI_OIC_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,9,YES,MPUI_OIC
|
||||
gun,MPUI_GUN_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_gungame,10,YES,MPUI_GUN
|
||||
shrp,MPUI_SHRP_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_sharpshooter,11,YES,MPUI_SHRP
|
||||
,,,,,,
|
||||
maxnum_basictraining_gametype,14,,,,,
|
||||
#gametype reference,#gametype names,#gametype description,#image,#index,#splitscreen,#gametime names lowercase
|
||||
tdm,MPUI_TEAM_DEATHMATCH_CAPS,MENU_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,bt0,YES,MPUI_TEAM_DEATHMATCH
|
||||
hc_tdm,MPUI_TDM_HARDCORE_CAPS,MENU_HC_KILL_PLAYERS_ON_THE_OPPOSING,playlist_tdm,bt1,YES,MPUI_TEAM_DEATHMATCH
|
||||
dm,MPUI_DEATHMATCH_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt2,YES,MPUI_DEATHMATCH
|
||||
hc_dm,MPUI_DM_HARDCORE_CAPS,MENU_HC_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt3,YES,MPUI_DEATHMATCH
|
||||
sd,MPUI_SEARCH_AND_DESTROY_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING_NO_SPAWN,playlist_search_destroy,bt4,YES,MPUI_SEARCH_AND_DESTROY_CLASSIC
|
||||
dom,MPUI_DOMINATION_CAPS,MENU_CAPTURE_AND_HOLD_THE,playlist_domination,bt5,YES,MPUI_DOMINATION
|
||||
koth,MPUI_HEADQUARTERS_CAPS,MENU_CAPTURE_THE_HEADQUARTERS,playlist_headquarters,bt6,YES,MPUI_HEADQUARTERS
|
||||
dem,MPUI_DEMOLITION_CAPS,MENU_TEAMS_TAKE_TURNS_DEFENDING,playlist_demolition,bt7,YES,MPUI_DEMOLITION
|
||||
ctf,MPUI_CAPTURE_THE_FLAG_CAPS,MENU_CTF_DESC,playlist_ctf,bt8,YES,MPUI_CAPTURE_THE_FLAG
|
||||
sab,MPUI_SABOTAGE_CAPS,MENU_1_BOMB_IN_THE_CENTER,playlist_sabotage,bt9,YES,MPUI_SABOTAGE
|
||||
hlnd,MPUI_HLND_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt10,YES,MPUI_HLND
|
||||
oic,MPUI_OIC_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_ffa,bt11,YES,MPUI_OIC
|
||||
gun,MPUI_GUN_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_gungame,bt12,YES,MPUI_GUN
|
||||
shrp,MPUI_SHRP_CAPS,MENU_KILL_EVERYONE_FIRST_PLAYER,playlist_sharpshooter,bt13,YES,MPUI_SHRP
|
||||
,,,,,,
|
||||
maxnum_lbtype,11,,,,,
|
||||
#Leaderboard string names,,,,,,
|
||||
#num,#lb_type ref,#lb gametype names,#gametype names,,#lb index,
|
||||
0,tdm,MPUI_LB_TEAM_DEATHMATCH_CAPS,MPUI_TEAM_DEATHMATCH_CAPS,,0,
|
||||
1,dm,MPUI_LB_FFA_CAPS,MPUI_DEATHMATCH_CAPS,,1,
|
||||
2,sd,MPUI_LB_SEARCH_AND_DESTROY_CAPS,MPUI_SEARCH_AND_DESTROY_CAPS,,5,
|
||||
3,dom,MPUI_LB_DOMINATION_CAPS,MPUI_DOMINATION_CAPS,,3,
|
||||
4,koth,MPUI_LB_HEADQUARTERS_CAPS,MPUI_HEADQUARTERS_CAPS,,6,
|
||||
5,dem,MPUI_LB_DEMOLITION_CAPS,MPUI_DEMOLITION_CAPS,,7,
|
||||
6,ctf,MPUI_LB_CAPTURE_THE_FLAG_CAPS,MPUI_CAPTURE_THE_FLAG_CAPS,,2,
|
||||
7,sab,MPUI_LB_SABOTAGE_CAPS,MPUI_SABOTAGE_CAPS,,4,
|
||||
8,hctdm,MPUI_LB_TEAM_DEATHMATCH_HC_CAPS,MPUI_HCTDM_CAPS,,8,
|
||||
9,hcdm,MPUI_LB_FFA_HC_CAPS,MPUI_HCDM_CAPS,,9,
|
||||
10,hcsd,MPUI_LB_SEARCH_AND_DESTROY_HC_CAPS,MPUI_HCSD_CAPS,,13,
|
||||
,,,,,,
|
||||
,,,,,,
|
||||
#Leaderboard reset period names,,,,,,
|
||||
#lb_typeByResetPeriod ref,#resetperiod names,#index,,,,
|
||||
all_time,MPUI_LB_ALL_TIME_CAPS,0,,,,
|
||||
monthly,MPUI_LB_MONTHLY_CAPS,1,,,,
|
||||
weekly,MPUI_LB_WEEKLY_CAPS,2,,,,
|
||||
,,,,,,
|
||||
,,,,,,
|
||||
#Leaderboard filter names,,,,,,
|
||||
#lb_filter ref,#filter names,#index,,,,
|
||||
none,MPUI_LB_EVERYONE_CAPS,0,,,,
|
||||
friends,MPUI_LB_FRIENDS_ONLY_CAPS,1,,,,
|
||||
lobbymembers,MPUI_LB_PLAYERS_IN_LOBBY_CAPS,2,,,,
|
|
31
mods/mp_patch/mp/mapsTable.csv
Normal file
31
mods/mp_patch/mp/mapsTable.csv
Normal file
@ -0,0 +1,31 @@
|
||||
# Map Data Table,,,,,,,,,,,,,,,
|
||||
a0,b1,c2,d3,e4,f5,g6,h7,i8,j9,k10,,,,,
|
||||
maxnum_map,26,,,,,,,,,,,,,,
|
||||
#mapname,#allies characters,#axis characters,#mapname,#mapimage,#index,#description,#mapoverlay,#map size description,#vehicles,#splitscreen,#dlc map,,,,
|
||||
,,,,,,,,,,,,,,,
|
||||
mp_array,winterspecops,winterspecops,MPUI_array,menu_mp_array_map_select_final,0,MPUI_DESC_MAP_array,compass_overlay_map_array,LARGE,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_cracked,junglemarines,junglemarines,MPUI_CRACKED,menu_mp_cracked_map_select_final,1,MPUI_DESC_MAP_CRACKED,compass_overlay_map_cracked,LARGE,NO,YES,0,MPUI_MARINE_SHORT,MPUI_NVA_SHORT,sog,nva
|
||||
mp_crisis,cubans,cubans,MPUI_CRISIS,menu_mp_crisis_map_select_final,2,MPUI_DESC_MAP_CRISIS,compass_overlay_map_crisis,MEDIUM,NO,YES,0,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_firingrange,cubans,cubans,MPUI_firingrange,menu_mp_firingrange_map_select_final,3,MPUI_DESC_MAP_firingrange,compass_overlay_map_firingrange,SMALL,NO,YES,0,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_duga,winterspecops,winterspecops,MPUI_DUGA,menu_mp_duga_map_select_final,4,MPUI_DESC_MAP_DUGA,compass_overlay_map_duga,MEDIUM,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_hanoi,junglemarines,junglemarines,MPUI_HANOI,menu_mp_hanoi_map_select_final,5,MPUI_DESC_MAP_HANOI,compass_overlay_map_hanoi,MEDIUM,NO,YES,0,MPUI_MARINE_SHORT,MPUI_NVA_SHORT,sog,nva
|
||||
mp_cairo,cubans,cubans,MPUI_CAIRO,menu_mp_cairo_map_select_final,6,MPUI_DESC_MAP_CAIRO,compass_overlay_map_cairo,MEDIUM,NO,YES,0,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_havoc,junglemarines,junglemarines,MPUI_HAVOC,menu_mp_havoc_map_select_final,7,MPUI_DESC_MAP_HAVOC,compass_overlay_map_havoc,LARGE,NO,YES,0,MPUI_MARINE_SHORT,MPUI_NVA_SHORT,sog,nva
|
||||
mp_cosmodrome,urbanspecops,urbanspecops,MPUI_COSMODROME,menu_mp_cosmodrome_map_select_final,8,MPUI_DESC_MAP_COSMODROME,compass_overlay_map_cosmodrome,MEDIUM,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_nuked,urbanspecops,urbanspecops,MPUI_NUKED,menu_mp_nuked_map_select_final,9,MPUI_DESC_MAP_NUKED,compass_overlay_map_nuked,SMALL,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_radiation,urbanspecops,urbanspecops,MPUI_RADIATION,menu_mp_radiation_map_select_final,10,MPUI_DESC_MAP_RADIATION,compass_overlay_map_radiation,MEDIUM,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_mountain,winterspecops,winterspecops,MPUI_MOUNTAIN,menu_mp_mountain_map_select_final,11,MPUI_DESC_MAP_MOUNTAIN,compass_overlay_map_mountain,MEDIUM,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_villa,cubans,cubans,MPUI_villa,menu_mp_villa_map_select_final,12,MPUI_DESC_MAP_villa,compass_overlay_map_villa,MEDIUM,NO,YES,0,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_russianbase,winterspecops,winterspecops,MPUI_russianbase,menu_mp_russianbase_map_select_final,13,MPUI_DESC_MAP_russianbase,compass_overlay_map_russianbase,LARGE,NO,YES,0,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_berlinwall2,urbanspecops,urbanspecops,MPUI_BERLINWALL2,menu_mp_berlinwall2_map_select_final,14,MPUI_DESC_MAP_BERLINWALL2,compass_overlay_map_berlinwall2,MEDIUM,NO,YES,2,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_discovery,winterspecops,winterspecops,MPUI_DISCOVERY,menu_mp_discovery_map_select_final,15,MPUI_DESC_MAP_DISCOVERY,compass_overlay_map_discovery2,MEDIUM,NO,YES,2,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_kowloon,urbanspecops,urbanspecops,MPUI_KOWLOON,menu_mp_kowloon_map_select_final,16,MPUI_DESC_MAP_KOWLOON,compass_overlay_map_kowloon,MEDIUM,NO,YES,2,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_stadium,urbanspecops,urbanspecops,MPUI_STADIUM,menu_mp_stadium_map_select_final,17,MPUI_DESC_MAP_STADIUM,compass_overlay_map_stadium,MEDIUM,NO,YES,2,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_gridlock,urbanspecops,urbanspecops,MPUI_GRIDLOCK,menu_mp_gridlock_map_select_final,18,MPUI_DESC_MAP_GRIDLOCK,compass_overlay_map_convoy,MEDIUM,NO,YES,3,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_hotel,cubans,cubans,MPUI_HOTEL,menu_mp_hotel_map_select_final,19,MPUI_DESC_MAP_HOTEL,compass_overlay_map_hotel2,MEDIUM,NO,YES,3,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_outskirts,winterspecops,winterspecops,MPUI_OUTSKIRTS,menu_mp_outskirts_map_select_final,20,MPUI_DESC_MAP_OUTSKIRTS,compass_overlay_map_stockpile,MEDIUM,NO,YES,3,MPUI_MARINE_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_zoo,urbanspecops,urbanspecops,MPUI_ZOO,menu_mp_zoo_map_select_final,21,MPUI_DESC_MAP_ZOO,compass_overlay_map_zoo,MEDIUM,NO,YES,3,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_silo,urbanspecops,urbanspecops,MPUI_SILO,menu_mp_silo_map_select_final,22,MPUI_DESC_MAP_SILO,compass_overlay_map_silo,MEDIUM,NO,YES,4,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_golfcourse,cubans,cubans,MPUI_GOLFCOURSE,menu_mp_golfcourse_map_select_final,23,MPUI_DESC_MAP_GOLFCOURSE,compass_overlay_map_golfcourse,MEDIUM,NO,YES,4,MPUI_REBELS_SHORT,MPUI_TROPAS_SHORT,op40,tropas
|
||||
mp_drivein,urbanspecops,urbanspecops,MPUI_DRIVEIN,menu_mp_drivein_map_select_final,24,MPUI_DESC_MAP_DRIVEIN,compass_overlay_map_drivein,MEDIUM,NO,YES,4,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
||||
mp_area51,urbanspecops,urbanspecops,MPUI_AREA51,menu_mp_area51_map_select_final,25,MPUI_DESC_MAP_AREA51,compass_overlay_map_area51,MEDIUM,NO,YES,4,MPUI_SPECOPS_SHORT,MPUI_RUSSIAN_SHORT,ops,spets
|
|
10
mods/mp_patch/rumble/assault_fire_h.rmb
Normal file
10
mods/mp_patch/rumble/assault_fire_h.rmb
Normal file
@ -0,0 +1,10 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
7
|
||||
0.0000 0.5259
|
||||
0.1303 0.4762
|
||||
0.2821 0.3148
|
||||
0.4742 0.1540
|
||||
0.6613 0.0590
|
||||
0.8340 0.0150
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/assault_fire_l.rmb
Normal file
7
mods/mp_patch/rumble/assault_fire_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 1.0000
|
||||
0.3991 1.0000
|
||||
0.4041 0.0000
|
||||
1.0000 0.0000
|
6
mods/mp_patch/rumble/damage_heavy_h.rmb
Normal file
6
mods/mp_patch/rumble/damage_heavy_h.rmb
Normal file
@ -0,0 +1,6 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
3
|
||||
0.0000 0.5000
|
||||
0.1050 0.3000
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/damage_heavy_l.rmb
Normal file
7
mods/mp_patch/rumble/damage_heavy_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 1.0000
|
||||
0.1250 1.0000
|
||||
0.4300 0.0000
|
||||
1.0000 0.0000
|
5
mods/mp_patch/rumble/flamethrower_h.rmb
Normal file
5
mods/mp_patch/rumble/flamethrower_h.rmb
Normal file
@ -0,0 +1,5 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
2
|
||||
0.0000 0.2399
|
||||
1.0000 0.2397
|
5
mods/mp_patch/rumble/flamethrower_l.rmb
Normal file
5
mods/mp_patch/rumble/flamethrower_l.rmb
Normal file
@ -0,0 +1,5 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
2
|
||||
0.0000 0.0000
|
||||
1.0000 0.0000
|
10
mods/mp_patch/rumble/heavygun_fire_h.rmb
Normal file
10
mods/mp_patch/rumble/heavygun_fire_h.rmb
Normal file
@ -0,0 +1,10 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
7
|
||||
0.0000 0.4109
|
||||
0.1192 0.3717
|
||||
0.2806 0.2431
|
||||
0.4579 0.1533
|
||||
0.6595 0.0449
|
||||
0.8328 0.0152
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/heavygun_fire_l.rmb
Normal file
7
mods/mp_patch/rumble/heavygun_fire_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 1.0000
|
||||
0.3200 1.0000
|
||||
0.3250 0.0000
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/shotgun_fire_h.rmb
Normal file
7
mods/mp_patch/rumble/shotgun_fire_h.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 0.1641
|
||||
0.2265 0.1314
|
||||
0.6077 0.0270
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/shotgun_fire_l.rmb
Normal file
7
mods/mp_patch/rumble/shotgun_fire_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 1.0000
|
||||
0.3851 1.0000
|
||||
0.5701 0.1200
|
||||
1.0000 0.0000
|
8
mods/mp_patch/rumble/silencer_fire_h.rmb
Normal file
8
mods/mp_patch/rumble/silencer_fire_h.rmb
Normal file
@ -0,0 +1,8 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
5
|
||||
0.0000 0.5405
|
||||
0.2518 0.4860
|
||||
0.4920 0.1496
|
||||
0.7479 0.0328
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/silencer_fire_l.rmb
Normal file
7
mods/mp_patch/rumble/silencer_fire_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 0.4000
|
||||
0.1196 0.3470
|
||||
0.1565 0.0058
|
||||
1.0000 0.0000
|
8
mods/mp_patch/rumble/smg_fire_h.rmb
Normal file
8
mods/mp_patch/rumble/smg_fire_h.rmb
Normal file
@ -0,0 +1,8 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
5
|
||||
0.0000 0.4800
|
||||
0.2300 0.3600
|
||||
0.5460 0.0999
|
||||
0.8061 0.0064
|
||||
1.0000 0.0000
|
7
mods/mp_patch/rumble/smg_fire_l.rmb
Normal file
7
mods/mp_patch/rumble/smg_fire_l.rmb
Normal file
@ -0,0 +1,7 @@
|
||||
RUMBLEGRAPHFILE
|
||||
|
||||
4
|
||||
0.0000 0.4830
|
||||
0.1365 0.4703
|
||||
0.1447 0.0000
|
||||
1.0000 0.0000
|
907
mods/mp_patch/ui/error.menu
Normal file
907
mods/mp_patch/ui/error.menu
Normal file
@ -0,0 +1,907 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#define CHOICE_X_START 0
|
||||
#define CHOICE_Y_START 34
|
||||
|
||||
#define CHOICE_GROUP "errors"
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
#define OPEN_WAGER_FAIL_IF_NEEDED \
|
||||
if ( getDStat( "AfterActionReportStats", "wagerMatchFailed" ) == 1 ) \
|
||||
{ \
|
||||
open error_wagerfail; \
|
||||
}
|
||||
|
||||
#define ERROR_ONESC \
|
||||
uiScript clearError; \
|
||||
close self; \
|
||||
OPEN_WAGER_FAIL_IF_NEEDED \
|
||||
execNow if( !menuisopen( main ) ) openmenu main;
|
||||
|
||||
#define ERROR_ACTION \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
uiScript clearError; \
|
||||
ERROR_ONESC
|
||||
|
||||
#define ERROR_CONTINUE \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
uiScript clearError; \
|
||||
close self; \
|
||||
uiScript loadSaveGameMap;
|
||||
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name fullscreen_error
|
||||
fullscreen 1
|
||||
rect 0 0 640 480 // Size and position of the menu
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( error_popmenu, setfocus error_popmenu_2, ERROR_ONESC, 1 )
|
||||
|
||||
onOpen
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
|
||||
if( dvarString("com_errorMessage") != "" )
|
||||
{
|
||||
execnow setLocalVarString error_popmenuTitle (dvarString("com_errorTitle"));
|
||||
execnow setLocalVarString error_popmenuMessage (dvarString("com_errorMessage"));
|
||||
}
|
||||
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
uiScript clearError;
|
||||
}
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( localVarString( error_popmenuTitle ), 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( localVarString( error_popmenuMessage ), 1 )
|
||||
|
||||
//FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_CONTINUE", ERROR_CONTINUE, ( dvarString( "error_menu_info" ) == "MENU_SCRIPTS_OUT_OF_DATE" ), ; )
|
||||
//FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_EXIT", ERROR_ACTION, 1, name error_popmenu_2 )
|
||||
|
||||
SIMPLE_CHOICE_BUTTON_SOUND_VIS_EX( 0 (SYSTEM_POPUP_HEIGHT+4) 70 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
;,
|
||||
"@MENU_CONTINUE", ITEM_ALIGN_MIDDLE_CENTER, ERROR_CONTINUE, when( dvarString( "error_menu_info" ) == "MENU_SCRIPTS_OUT_OF_DATE" ), ; )
|
||||
SIMPLE_CHOICE_BUTTON_SOUND_VIS_EX( 0 (SYSTEM_POPUP_HEIGHT+4) 70 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
exp rect X( SYSTEM_POPUP_WIDTH - getTextWidth( locString( "@MENU_EXIT" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) - 8 ),
|
||||
"@MENU_EXIT", ITEM_ALIGN_MIDDLE_CENTER, ERROR_ACTION, 1, name error_popmenu_2; )
|
||||
}
|
||||
|
||||
#define SYSTEM_ERROR_POPUP( popupname ) \
|
||||
menuDef \
|
||||
{ \
|
||||
SYSTEM_POPUP_SETUP_VIS( popupname, ;, focusFirst; uiScript clearError; close self;, 1 ) \
|
||||
onOpen \
|
||||
{ \
|
||||
if( IN_MP_FRONTEND ) \
|
||||
{ \
|
||||
activateBlur; \
|
||||
} \
|
||||
execnow setLocalVarString (popupname + "Title") (dvarString("com_errorTitle")); \
|
||||
execnow setLocalVarString (popupname + "Message") (dvarString("com_errorMessage")); \
|
||||
} \
|
||||
\
|
||||
SYSTEM_POPUP_TITLE_VIS( localVarString( (popupname + "Title") ), 1 ) \
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( localVarString( (popupname + "Message") ), 1 ) \
|
||||
\
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", uiScript clearError; close self; OPEN_WAGER_FAIL_IF_NEEDED, 1, ; ) \
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
#define WAGERFAIL_ONFOCUS \
|
||||
execnow statwriteddl AfterActionReportStats wagerMatchFailed 0;
|
||||
|
||||
#define WAGERFAIL_ONESC \
|
||||
close self;
|
||||
|
||||
#define WAGERFAIL_ACTION \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
WAGERFAIL_ONESC
|
||||
|
||||
SYSTEM_POPUP_SETUP_VIS( error_wagerfail, WAGERFAIL_ONFOCUS, WAGERFAIL_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_WAGER_FAIL_TITLE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_WAGER_FAIL_DESC", 1 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_EXIT", WAGERFAIL_ACTION, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( autojoinfriend_popmenu, setfocus autojoinfriend_popmenu_2, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( dvarString( "com_errorMessage" ), 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_AUTOJOIN_FRIEND", 1 )
|
||||
|
||||
#define FRIEND_AUTO_JOIN_ON \
|
||||
exec "party_autojoindevfriend 1"; \
|
||||
close autojoinfriend_popmenu; \
|
||||
setdvar com_errorMessage ""; \
|
||||
setdvar com_errorTitle "";
|
||||
|
||||
#define FRIEND_AUTO_JOIN_OFF \
|
||||
exec "party_autojoindevfriend 0"; \
|
||||
close autojoinfriend_popmenu; \
|
||||
setdvar com_errorMessage ""; \
|
||||
setdvar com_errorTitle "";
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES_CAPS", FRIEND_AUTO_JOIN_ON, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO_CAPS", FRIEND_AUTO_JOIN_OFF, 1, name autojoinfriend_popmenu_2 )
|
||||
}
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( consolestatsalert_popmenu, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@EXE_CONSOLE_STATS_CHECK_ALERT_TITLE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@EXE_CONSOLE_STATS_CHECK_ALERT_MESSAGE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_OK", close consolestatsalert_popmenu;, 1, ; )
|
||||
}
|
||||
|
||||
#ifdef PS3
|
||||
// PS3 controller removed warning
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( controllerremoved_popmenu, ;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( locString("@PLATFORM_CONTROLLER_DISCONNECTED") + (dvarString( "disconnected_ctrls" )), 1 )
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON_NO_TEXT
|
||||
rect 0 0 0 0 0 0
|
||||
visible 1
|
||||
}
|
||||
}
|
||||
// I know, not an error, handy here
|
||||
// profile lookup dialog
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( profile_lookup_popmenu, ;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@PLATFORM_PROFILE_LOOKUP", 1 )
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON_NO_TEXT
|
||||
rect 0 0 0 0 0 0
|
||||
visible 1
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
#endif
|
||||
|
||||
// save game data corrupted warning
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_connectingtodw, ;, ;, 1 )
|
||||
|
||||
onESC
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
CENTER_POPUP_ON_CLOSE
|
||||
execNow ui_animate popup_connectingtodwhandler notification default 0;
|
||||
close popup_connectingtodwhandler;
|
||||
close self;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
execNow ui_animate popup_connectingtodwhandler notification default 0;
|
||||
close popup_connectingtodwhandler;
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_CONNECTING_TO_DW" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
name popup_connectingtodwhandler
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
visible 1
|
||||
backcolor 0 0 0 0
|
||||
style WINDOW_STYLE_FILLED
|
||||
|
||||
onOpen
|
||||
{
|
||||
exec "initiateDemonWareConnect";
|
||||
if( dvarBool( live_banned ) )
|
||||
{
|
||||
execNow ui_animate popup_connectingtodwhandler notification show 2000;
|
||||
}
|
||||
else
|
||||
{
|
||||
execNow ui_animate popup_connectingtodwhandler notification show 30000;
|
||||
}
|
||||
open popup_connectingtodw;
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name "notification"
|
||||
visible 0
|
||||
|
||||
state
|
||||
{
|
||||
name "show"
|
||||
onEnter
|
||||
{
|
||||
if( dvarBool( live_banned ) )
|
||||
{
|
||||
setdvar com_errorTitle "@MENU_NOTICE_CAPS";
|
||||
setdvar com_errorMessage "@PLATFORM_BANNED";
|
||||
open error_popmenu;
|
||||
}
|
||||
elseif( isDemonwareFetchingDone() == 0 )
|
||||
{
|
||||
setdvar com_errorTitle "@MENU_NOTICE_CAPS";
|
||||
setdvar com_errorMessage "@EXE_DEMONWARE_DISCONNECT";
|
||||
open error_popmenu;
|
||||
}
|
||||
close popup_connectingtodw;
|
||||
close popup_inliveconnectingtodw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Shown while connecting to DemonWare & getting all needed items for playing on
|
||||
// LIVE while in the online (dvar) sections of the game, happens when another user
|
||||
// signs in on another controller
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_inliveconnectingtodw, ;, ;, 1 )
|
||||
|
||||
onESC
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
CENTER_POPUP_ON_CLOSE
|
||||
close self;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
}
|
||||
execKeyInt BUTTON_BACK {}
|
||||
execKeyInt BUTTON_B {}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_CONNECTING_TO_DW" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_gettingdata, ;, ;, 1 )
|
||||
onESC
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
close menu_xboxlive;
|
||||
close findgame_category;
|
||||
close popup_gettingdata;
|
||||
close live_cac_popup;
|
||||
close popup_gamesetup_private;
|
||||
close private_cac_popup;
|
||||
exec "onlinegame 0";
|
||||
exec "xstopprivateparty";
|
||||
exec "xstopparty";
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_DOWNLOADING_GAME_SETTINGS_CAPS" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_downloadingfile, ;, execnow fileShareAbortOperation;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_DOWNLOAD_FILE" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_downloadinginfo, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_DOWNLOADING" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_downloadingCompressedStats, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_DOWNLOAD_OTHER_PLAYER_STATS" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_fetchstats, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_FETCH_STATS" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_uploadingfile, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_UPLOAD_FILE" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_gettingPlayercardInfo, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_GETTING_PLAYERCARD" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_getlclaninfofromxuid, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_GETTING_CLAN_INFO" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_gettingoffers, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_GETTING_STORE_DATA" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_connectingtolobby, ;, focusFirst;, 1 )
|
||||
onESC
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
close menu_xboxlive;
|
||||
close popup_gettingdata;
|
||||
close live_cac_popup;
|
||||
close popup_gamesetup_private;
|
||||
close private_cac_popup;
|
||||
exec "onlinegame 0";
|
||||
exec "xstopprivateparty";
|
||||
exec "xstopparty";
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_CONNECTING_TO_LOBBY" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_connecting_dw, ;, focusFirst;, 1 )
|
||||
onESC
|
||||
{
|
||||
if( IN_MP_FRONTEND )
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
close menu_xboxlive;
|
||||
close popup_gettingdata;
|
||||
close live_cac_popup;
|
||||
close popup_gamesetup_private;
|
||||
close private_cac_popup;
|
||||
close main_online
|
||||
exec "onlinegame 0";
|
||||
close self;
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_CONNECTING_DW" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_creating_account, ;, focusFirst;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_CREATING_PROFILE" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_deleting_account, ;, focusFirst;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_DELETING_PROFILE" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_error_deleting_account, ;, focusFirst;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ERROR_DELETING_PROFILE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self;, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_error_creating_account, ;, focusFirst;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ERROR_CREATING_PROFILE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self;, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_account_not_available, ;, focusFirst;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ACCOUNT_NOT_AVAILABLE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self;, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_reconnectingtoparty, ;, close menu_xboxlive; close popup_gettingdata;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( locString( "@MENU_RECONNECTING_TO_SQUAD" ), 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_error_contentserver_down, ;, focusFirst; uiScript clearError; close self;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_ERROR_CAPS", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_CONTENT_SERVER_DOWN", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", uiScript clearError; close self;, 1, ; )
|
||||
}
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( stats_notfound_error_popup, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_STATERROR_TITLE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_STATS_ERROR", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self;, 1, ; )
|
||||
}
|
||||
|
||||
SYSTEM_ERROR_POPUP( "error_dw_fetch_file" )
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( save_corrupted, ;, close self; close blackout_3d_tv, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_SAVE_CORRUPTED", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_SAVEDATA_CORRUPTED", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self; close blackout_3d_tv, 1, ; )
|
||||
}
|
||||
|
||||
SYSTEM_ERROR_POPUP( "error_popmenu_party" )
|
||||
|
||||
SYSTEM_ERROR_POPUP( "error_popmenu_lobby" )
|
||||
|
||||
SYSTEM_ERROR_POPUP( "error_popmenu_keyboard" )
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( startmatch_popup, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_ERROR_CAPS", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@PLATFORM_MIN_ONE_REMOTE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", close self, 1, ; )
|
||||
}
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 2
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( acceptinvite_warning, setFocus acceptinvite_warning_2, close self;, 1 )
|
||||
onOpen
|
||||
{
|
||||
close menu_joinsession;
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ACCEPTINVITETITLE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_LEAVEMPGAMEWARNINGSQUADHOST", when( privatepartyhost() && !aloneinparty() ); )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_LEAVESQUADWARNING", when( !privatepartyhost() && !inlobby() ); )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_LEAVEMPGAMEWARNING", when( !privatepartyhost() && inlobby() ); )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_RESUMEGAME", close menu_joinsession; close self;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_ACCEPTINVITE", close self; exec "acceptInvite";, 1, name acceptinvite_warning_2 )
|
||||
}
|
||||
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 180
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START 230
|
||||
|
||||
#define TOAST_POPUP_Y_OFFSET -55
|
||||
#define TOAST_POPUP_HEIGHT 36
|
||||
#define TOAST_POPUP_ICON_HEIGHT 26
|
||||
#define TOAST_POPUP_ICON_WIDTH 26
|
||||
#define TOAST_BIG_DESC_WIDTH ( GetTextWidth( getToastPopupDescription(), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) )
|
||||
#define TOAST_SIDE_PAD_SIZE 10
|
||||
#define TOAST_MIDDLE_PAD_SIZE 5
|
||||
|
||||
#define TOAST_POPUP_BG_WIDTH( textWidth ) ( TOAST_SIDE_PAD_SIZE + TOAST_POPUP_ICON_WIDTH + TOAST_MIDDLE_PAD_SIZE + textWidth + TOAST_SIDE_PAD_SIZE )
|
||||
#define TOAST_POPUP_BG_X_START( textWidth ) ( -1 * ( TOAST_POPUP_BG_WIDTH( textWidth ) / 2 ) )
|
||||
#define TOAST_POPUP_ICON_X_START( textWidth ) ( TOAST_POPUP_BG_X_START( textWidth ) + TOAST_SIDE_PAD_SIZE )
|
||||
#define TOAST_POPUP_TEXT_X_START( textWidth ) ( TOAST_POPUP_ICON_X_START( textWidth ) + TOAST_POPUP_ICON_WIDTH + TOAST_MIDDLE_PAD_SIZE )
|
||||
|
||||
#define SHOW_NORMAL_TOAST_POPUP ( getToastPopupTitle() != "" )
|
||||
|
||||
menuDef
|
||||
{
|
||||
name menu_toast_popup
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
priority MENU_PRI_POPUP
|
||||
openSlideSpeed 150
|
||||
closeSlideSpeed 700
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_BOTTOM_TO_TOP
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
// Title and description version
|
||||
itemDef
|
||||
{
|
||||
rect 0 TOAST_POPUP_Y_OFFSET 0 TOAST_POPUP_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
|
||||
exp rect X( TOAST_POPUP_BG_X_START( getToastPopupWidth() ) )
|
||||
exp rect W( TOAST_POPUP_BG_WIDTH( getToastPopupWidth() ) )
|
||||
style WINDOW_STYLE_SHADER_FRAMED
|
||||
frame 16 0.5 FRAME_SIDE_ALL
|
||||
background "menu_mp_lobby_frame_circle"
|
||||
forecolor 0 0 0 0.5
|
||||
visible when( SHOW_NORMAL_TOAST_POPUP );
|
||||
decoration
|
||||
}
|
||||
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( TOAST_POPUP_ICON_X_START( getToastPopupWidth() ),
|
||||
(TOAST_POPUP_Y_OFFSET+5),
|
||||
TOAST_POPUP_ICON_WIDTH,
|
||||
TOAST_POPUP_ICON_HEIGHT,
|
||||
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM,
|
||||
getToastPopupIcon(), 1 1 1 0.8,
|
||||
when( SHOW_NORMAL_TOAST_POPUP );, ; )
|
||||
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( TOAST_POPUP_TEXT_X_START( getToastPopupWidth() ),
|
||||
(TOAST_POPUP_Y_OFFSET+2),
|
||||
( getToastPopupWidth() ),
|
||||
15,
|
||||
HORIZONTAL_ALIGN_CENTER,
|
||||
VERTICAL_ALIGN_BOTTOM,
|
||||
getToastPopupTitle(),
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, 1 1 1 1,
|
||||
when( SHOW_NORMAL_TOAST_POPUP );, ; )
|
||||
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( TOAST_POPUP_TEXT_X_START( getToastPopupWidth() ),
|
||||
(TOAST_POPUP_Y_OFFSET+18),
|
||||
( getToastPopupWidth() ),
|
||||
15,
|
||||
HORIZONTAL_ALIGN_CENTER,
|
||||
VERTICAL_ALIGN_BOTTOM,
|
||||
getToastPopupDescription(),
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, 1 1 1 1,
|
||||
when( SHOW_NORMAL_TOAST_POPUP );, ; )
|
||||
|
||||
// Description only version
|
||||
itemDef
|
||||
{
|
||||
rect 0 TOAST_POPUP_Y_OFFSET 0 TOAST_POPUP_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
|
||||
exp rect X( TOAST_POPUP_BG_X_START( TOAST_BIG_DESC_WIDTH ) )
|
||||
exp rect W( TOAST_POPUP_BG_WIDTH( TOAST_BIG_DESC_WIDTH ) )
|
||||
style WINDOW_STYLE_SHADER_FRAMED
|
||||
frame 16 0.5 FRAME_SIDE_ALL
|
||||
background "menu_mp_lobby_frame_circle"
|
||||
forecolor 0 0 0 0.5
|
||||
visible when( !SHOW_NORMAL_TOAST_POPUP );
|
||||
decoration
|
||||
}
|
||||
|
||||
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( TOAST_POPUP_ICON_X_START( TOAST_BIG_DESC_WIDTH ),
|
||||
(TOAST_POPUP_Y_OFFSET+5),
|
||||
TOAST_POPUP_ICON_WIDTH,
|
||||
TOAST_POPUP_ICON_HEIGHT,
|
||||
HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM,
|
||||
getToastPopupIcon(), 1 1 1 0.8,
|
||||
when( !SHOW_NORMAL_TOAST_POPUP );, ; )
|
||||
|
||||
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( TOAST_POPUP_TEXT_X_START( TOAST_BIG_DESC_WIDTH ),
|
||||
(TOAST_POPUP_Y_OFFSET+5),
|
||||
TOAST_BIG_DESC_WIDTH,
|
||||
TOAST_POPUP_ICON_HEIGHT,
|
||||
HORIZONTAL_ALIGN_CENTER,
|
||||
VERTICAL_ALIGN_BOTTOM,
|
||||
getToastPopupDescription(),
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, 1 1 1 1,
|
||||
when( !SHOW_NORMAL_TOAST_POPUP );, ; )
|
||||
}
|
||||
|
||||
#define VIS_PRESS_START 1
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "pregame_loaderror"
|
||||
rect 0 0 640 480
|
||||
fullScreen 1
|
||||
focusColor COLOR_FOCUSED
|
||||
backcolor 1 1 1 0
|
||||
style WINDOW_STYLE_FILLED
|
||||
onClose
|
||||
{
|
||||
uiScript clearError
|
||||
}
|
||||
onOpen
|
||||
{
|
||||
setdvar ui_SaveLoadVisible "0";
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
uiScript playerstart
|
||||
}
|
||||
|
||||
// background
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_FILLED
|
||||
type ITEM_TYPE_OWNERDRAW
|
||||
rect FULLSCREEN_WIDE
|
||||
backcolor 1 1 1 1
|
||||
visible 1
|
||||
background cinematic
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name "profile"
|
||||
type ITEM_TYPE_OWNERDRAW
|
||||
visible 1
|
||||
rect 40 40 560 400
|
||||
ownerdraw UI_LOADPROFILING
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name errorinfo
|
||||
type ITEM_TYPE_TEXT
|
||||
rect 120 142 400 255
|
||||
style WINDOW_STYLE_FILLED
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
autowrapped
|
||||
dvar "com_errorMessage"
|
||||
textscale .8
|
||||
forecolor 1 .2 .2 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
#ifdef PS3
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
text "@PLATFORM_UI_PRESS_BUTTONSELECTCHOICE"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale TEXTSIZE_SMALL
|
||||
border 0
|
||||
bordercolor 1 1 1 1
|
||||
rect 0 388 640 45
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
textaligny 4
|
||||
forecolor 1 1 1 0.4
|
||||
backcolor 0 0 0 0
|
||||
visible when ( !dvarbool( ui_isSaving ) && VIS_PRESS_START );
|
||||
decoration
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef XENON
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
text "@MENU_PRESS_START_TO_SKIP"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale TEXTSIZE_SMALL
|
||||
border 0
|
||||
bordercolor 1 1 1 1
|
||||
rect 0 388 640 45
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
textaligny 4
|
||||
forecolor 1 1 1 0.4
|
||||
backcolor 0 0 0 0
|
||||
visible when ( !dvarbool( ui_isSaving ) && VIS_PRESS_START );
|
||||
decoration
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PC
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
text "@MENU_CLICK_TO_START_THE_MISSION"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale TEXTSIZE_SMALL
|
||||
border 0
|
||||
bordercolor 1 1 1 1
|
||||
rect 0 388 640 45
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
textaligny 4
|
||||
forecolor 1 1 1 0.4
|
||||
backcolor 0 0 0 0
|
||||
visible when ( !dvarbool( ui_isSaving ) && VIS_PRESS_START );
|
||||
decoration
|
||||
}
|
||||
#endif // #ifdef PC
|
||||
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect -128 0 896 480
|
||||
style WINDOW_STYLE_EMPTY
|
||||
visible 1
|
||||
forecolor 0 0 0 0
|
||||
backcolor 0 0 0 0
|
||||
action
|
||||
{
|
||||
uiScript playerstart
|
||||
}
|
||||
}
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "pregame_loaderror_mp"
|
||||
rect 0 0 640 480
|
||||
fullScreen 1
|
||||
focusColor COLOR_FOCUSED
|
||||
backcolor 1 1 1 0
|
||||
style WINDOW_STYLE_FILLED
|
||||
blurWorld 6.0
|
||||
onClose
|
||||
{
|
||||
uiScript clearError
|
||||
}
|
||||
onOpen
|
||||
{
|
||||
setdvar ui_SaveLoadVisible "0";
|
||||
}
|
||||
|
||||
// background
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_FILLED
|
||||
rect FULLSCREEN_WIDE
|
||||
backcolor 0.2 0.2 0.2 .5
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
name "profile"
|
||||
type ITEM_TYPE_OWNERDRAW
|
||||
visible 1
|
||||
rect 40 40 560 400
|
||||
ownerdraw UI_LOADPROFILING
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name errorinfo
|
||||
type ITEM_TYPE_TEXT
|
||||
rect 120 142 400 255
|
||||
style WINDOW_STYLE_FILLED
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
autowrapped
|
||||
dvar "com_errorMessage"
|
||||
textscale .8
|
||||
forecolor 1 .2 .2 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
// the button
|
||||
// Text message saying you should click to continue
|
||||
#ifdef CONSOLE
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
text "@MENU_PRESS_START"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale TEXTSIZE_TITLE
|
||||
rect 0 388 640 45
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
textaligny 4
|
||||
forecolor 1 1 1 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
#endif // #ifdef CONSOLE
|
||||
|
||||
#ifdef PC
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
text "@MENU_CLICK_TO_START_THE_MISSION"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale TEXTSIZE_TITLE
|
||||
rect 0 388 640 45
|
||||
textalign ITEM_ALIGN_TOP_CENTER
|
||||
textaligny 4
|
||||
forecolor 1 1 1 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
#endif // #ifdef PC
|
||||
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect -128 0 896 480
|
||||
style WINDOW_STYLE_EMPTY
|
||||
visible 1
|
||||
forecolor 0 0 0 0
|
||||
backcolor 0 0 0 0
|
||||
action
|
||||
{
|
||||
uiScript clearLoadErrorsSummary
|
||||
}
|
||||
}
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
}
|
447
mods/mp_patch/ui/options_graphics_pc.menu
Normal file
447
mods/mp_patch/ui/options_graphics_pc.menu
Normal file
@ -0,0 +1,447 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#define OPTIONS_STYLE 1
|
||||
#define CHOICE_SEP_1 27
|
||||
#define CHOICE_SEP_2 30
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#undef CHOICE_ACTION_SOUND
|
||||
#define CHOICE_ACTION_SOUND "uin_mouse_click_t"
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "options_graphics_"
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME options_graphics
|
||||
|
||||
#undef OPTIONS_GRAPHICS_HEIGHT
|
||||
#undef OPTIONS_GRAPHICS_WIDTH
|
||||
#define OPTIONS_GRAPHICS_HEIGHT 332
|
||||
#define OPTIONS_GRAPHICS_WIDTH OPTIONS_GRAPHICS_HEIGHT * FRAME_ASPECT_RATIO
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name options_graphics
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop ""
|
||||
|
||||
onOpen
|
||||
{
|
||||
LOCAL_CLOSE_ALL_BUT( options_graphics )
|
||||
|
||||
setLocalVarBool ui_showApply 0;
|
||||
setLocalVarBool ui_hideBack 1;
|
||||
|
||||
// setfromdvar dst src
|
||||
exec "exec ui/options_graphics.cfg";
|
||||
|
||||
if ( dvarInt( r_picmip_manual ) == 0 )
|
||||
{
|
||||
exec "set ui_r_picmip -1";
|
||||
exec "set ui_r_picmip_bump -1";
|
||||
exec "set ui_r_picmip_spec -1";
|
||||
exec "set ui_r_picmip_manual 0";
|
||||
}
|
||||
|
||||
setdvar g_reloading "0";
|
||||
|
||||
// round ai_corpsecount down to valid values.
|
||||
if ( dvarInt( ai_corpsecount ) >= 32 )
|
||||
{
|
||||
// KTouevsky: Bump this number when the RAGDOLL_MAX_SIMULATING in ragdoll.h is bumped to 32 too
|
||||
// setDvar ai_corpseCount 32;
|
||||
setDvar ai_corpseCount 16;
|
||||
}
|
||||
elseif ( dvarInt( ai_corpsecount ) >= 16 )
|
||||
{
|
||||
setDvar ai_corpseCount 16;
|
||||
}
|
||||
elseif ( dvarInt( ai_corpsecount ) >= 10 )
|
||||
{
|
||||
setDvar ai_corpseCount 10;
|
||||
}
|
||||
elseif ( dvarInt( ai_corpsecount ) >= 5 )
|
||||
{
|
||||
setDvar ai_corpseCount 5;
|
||||
}
|
||||
elseif ( dvarInt( ai_corpsecount ) >= 3 )
|
||||
{
|
||||
setDvar ai_corpseCount 3;
|
||||
}
|
||||
|
||||
// 2008-Aug-1 KTouevsky: loosk like COD4 have "Soften Smoke Edges" to be "Yes/No" only and linked to r_zfeather directly
|
||||
//execOnDvarFloatValue r_zfeather 0 "set ui_zfeather 0"; // off
|
||||
//execOnDvarFloatValue r_zfeather 1 "set ui_zfeather 1"; // world
|
||||
//execOnDvarFloatValue r_depthPrepassModels 1 "set ui_zfeather 2"; // everything
|
||||
|
||||
if (IsInGame())
|
||||
{
|
||||
showMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
}
|
||||
onClose
|
||||
{
|
||||
setLocalVarBool ui_hideBack 0;
|
||||
//execOnDvarIntValue ui_zfeather 0 "set r_zfeather 0;set r_depthPrepassModels 0"; // off
|
||||
//execOnDvarIntValue ui_zfeather 1 "set r_zfeather 1;set r_depthPrepassModels 0"; // world
|
||||
//execOnDvarIntValue ui_zfeather 2 "set r_zfeather 1;set r_depthPrepassModels 1"; // everything
|
||||
|
||||
if (IsInGame())
|
||||
{
|
||||
hideMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
|
||||
// be sure brightness (r_gamma) is stored in the profile
|
||||
exec updategamerprofile;
|
||||
}
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
open options_new_pc;
|
||||
}
|
||||
PC_TAB_SWITCH_ACTIONS( options_new_pc, options_controls_new_pc, options_controls_new_pc )
|
||||
|
||||
#include "ui_mp/leftside_options.inc"
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#undef CHOICE_Y_START
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#undef CHOICE_DVAR_EXTRA_WIDTH
|
||||
#undef CHOICE_TEXT_OFFSET_X
|
||||
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
#define CHOICE_X_START ((-OPTIONS_GRAPHICS_WIDTH/2) - 75)
|
||||
#define CHOICE_Y_START ((-OPTIONS_GRAPHICS_HEIGHT/2) + 32)
|
||||
#define CHOICE_DVAR_EXTRA_WIDTH 120
|
||||
#define CHOICE_TEXT_OFFSET_X -10
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXT_COLOR_HL 1 1 1 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
#define TEXTURE_QUALITY_ACTION \
|
||||
setLocalVarBool ui_showApply 1; \
|
||||
setDvar ui_r_picmip_bump dvarInt( ui_r_picmip ); \
|
||||
setDvar ui_r_picmip_spec dvarInt( ui_r_picmip ); \
|
||||
if ( dvarInt( ui_r_picmip ) == -1 ) \
|
||||
{ \
|
||||
setDvar ui_r_picmip_manual 0; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
setDVar ui_r_picmip_manual 1; \
|
||||
}
|
||||
|
||||
#define MP_ZOMBIE_INGAME ( IsInGame() && ( dvarBool( ui_multiplayer ) || dvarBool( zombiemode ) ) )
|
||||
|
||||
FRAME_CHOICE_SECTION_TITLE( 21, "@MENU_GRAPHICS_CAPS" )
|
||||
|
||||
FRAME_CHOICE_DVARENUMLIST_VIS( 22, "@MENU_VIDEO_MODE_CAPS", ui_r_mode, r_mode, setLocalVarBool ui_showApply 1, !MP_ZOMBIE_INGAME )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 23, "@MENU_FULLSCREEN_CAPS", ui_r_fullscreen, setLocalVarBool ui_showApply 1, !MP_ZOMBIE_INGAME )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 24, "@MENU_ANTIALIASING_CAPS", ui_r_aasamples, { "@MENU_OFF_CAPS" 1 "@MENU_2X_CAPS" 2 "@MENU_4X_CAPS" 4 "@MENU_8X_CAPS" 8 }, setLocalVarBool ui_showApply 1;, !MP_ZOMBIE_INGAME && !dvarbool(r_supports16xAA) )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 24, "@MENU_ANTIALIASING_CAPS", ui_r_aasamples, { "@MENU_OFF_CAPS" 1 "@MENU_2X_CAPS" 2 "@MENU_4X_CAPS" 4 "@MENU_8X_CAPS" 8 "@MENU_16X_CAPS" 16 }, setLocalVarBool ui_showApply 1;, !MP_ZOMBIE_INGAME && dvarbool(r_supports16xAA) )
|
||||
FRAME_CHOICE_DVARSTRINGLIST_VIS( 25, "@MENU_ASPECT_RATIO_CAPS", ui_r_aspectratio, { "@MENU_AUTO_CAPS"; "auto"; "@MENU_STANDARD_4_3_CAPS"; "standard"; "@MENU_WIDE_16_10_CAPS"; "wide 16:10"; "@MENU_WIDE_16_9_CAPS"; "wide 16:9" }, setLocalVarBool ui_showApply 1, !MP_ZOMBIE_INGAME )
|
||||
FRAME_CHOICE_DVARENUMLIST_VIS( 26, "@MENU_SCREEN_REFRESH_RATE_CAPS", ui_r_displayRefresh, r_displayRefresh, setLocalVarBool ui_showApply 1;, !MP_ZOMBIE_INGAME )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 27, "@MENU_SYNC_EVERY_FRAME_CAPS", ui_r_vsync, setLocalVarBool ui_showApply 1, !MP_ZOMBIE_INGAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST( 28, "@MENU_TEXTURE_MIPMAPS_CAPS", r_texFilterMipMode, { "@MENU_AUTOMATIC_CAPS"; "Unchanged"; "@MENU_BILINEAR_CAPS"; "Force Bilinear"; "@MENU_TRILINEAR_CAPS"; "Force Trilinear" }, ; )
|
||||
FRAME_DVARSLIDER( 29, "@MENU_TEXTURE_ANISOTROPY_CAPS", r_texFilterAnisoMin, 1, 1, 16, ; )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 30, "@MENU_TEXTURE_QUALITY_CAPS", ui_r_picmip, { "@MENU_AUTOMATIC_CAPS" -1 "@PLATFORM_LOW_CAPS" 3 "@MENU_NORMAL_CAPS" 2 "@PLATFORM_HIGH_CAPS" 1 "@MENU_EXTRA_CAPS" 0 }, TEXTURE_QUALITY_ACTION, !MP_ZOMBIE_INGAME )
|
||||
|
||||
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 31, "@PATCH_MENU_OPTION_SHADERWARMING_CAPS", r_shaderWarming, ;, 1 )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 32, "@MENU_SHADOWS_CAPS", sm_enable, ;, dvarbool( ui_showShadowOptions ) )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 33, "@MENU_OPTION_BULLET_IMPACTS_CAPS", fx_marks, ;, 1 )
|
||||
// KTouevsky: Add back insane when the RAGDOLL_MAX_SIMULATING in ragdoll.h is bumped to 32 too
|
||||
// FRAME_CHOICE_DVARFLOATLIST_VIS( 34, "@MENU_NUMBER_OF_CORPSES_CAPS", ai_corpsecount, { "@MENU_TINY_CAPS" 3 "@MENU_SMALL_CAPS" 5 "@MENU_MEDIUM_CAPS" 10 "@MENU_LARGE_CAPS" 16 "@MENU_INSANE_CAPS" 32 }, ;, !dvarBool( ui_multiplayer ) )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 34, "@MENU_NUMBER_OF_CORPSES_CAPS", ai_corpsecount, { "@MENU_TINY_CAPS" 3 "@MENU_SMALL_CAPS" 5 "@MENU_MEDIUM_CAPS" 10 "@MENU_LARGE_CAPS" 16 }, ;, !dvarBool( ui_multiplayer ) )
|
||||
FRAME_DVARSLIDER( 35, "@MENU_BRIGHTNESS_CAPS", r_gamma, 1, 0.5, 3, ; )
|
||||
FRAME_DVARSLIDER_VIS( 36, "@PLATFORM_FOV_CAPS", cg_fov_default, 1, 65, 80, ;, ( dvarint( ui_multiplayer ) ) )
|
||||
|
||||
#undef CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXTCOLOR 0.2 0.2 0.2 1
|
||||
// darker disabled color in-game
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 22, "@MENU_VIDEO_MODE_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 23, "@MENU_FULLSCREEN_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 24, "@MENU_ANTIALIASING_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 25, "@MENU_ASPECT_RATIO_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 26, "@MENU_SCREEN_REFRESH_RATE_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 27, "@MENU_SYNC_EVERY_FRAME_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 30, "@MENU_TEXTURE_QUALITY_CAPS", ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 32, "@MENU_SHADOWS_CAPS", ;, ;, !dvarbool( ui_showShadowOptions ) && MP_ZOMBIE_INGAME, ; )
|
||||
|
||||
#undef CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXTCOLOR 0.4 0.4 0.4 1
|
||||
// lighter disabled color in the shell
|
||||
FRAME_CHOICE_DBUTTON_DARK_FOCUS_VIS_EX( 32, "@MENU_SHADOWS_CAPS", ;, ;, !dvarbool( ui_showShadowOptions ), ; )
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL 1 1 1 1
|
||||
#define CHOICE_TEXT_COLOR_HL 0 0 0 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL 1 1 1 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
FRAME_BUTTON_PC_RIGHT_OFFSET( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, 0,
|
||||
"@MENU_APPLY",
|
||||
open vid_restart_popmenu;,
|
||||
when( ( localVarBool( ui_showApply ) && !dvarint( sv_running ) ) || dvarInt(ui_allow_graphic_change) ); )
|
||||
|
||||
FRAME_BUTTON_PC_RIGHT_OFFSET( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, 0,
|
||||
"@MENU_APPLY",
|
||||
uiScript openMenuOnDvar g_reloading 0 vid_restart_popmenu_listen;
|
||||
uiScript openMenuOnDvarNot g_reloading 0 vid_restart_popmenu_dead;,
|
||||
when( localVarBool( ui_showApply ) && dvarint( sv_running ) && dvarInt( ui_allow_graphic_change ) == 0 ); )
|
||||
|
||||
//CHOICE_APPLY_VIS( "@MENU_APPLY", open vid_restart_popmenu, when( ( localVarBool( ui_showApply ) && !dvarint( sv_running ) ) || dvarInt(ui_allow_graphic_change) ); )
|
||||
//CHOICE_APPLY_VIS( "@MENU_APPLY", uiScript openMenuOnDvar g_reloading 0 vid_restart_popmenu_listen; uiScript openMenuOnDvarNot g_reloading 0 vid_restart_popmenu_dead;, when( localVarBool( ui_showApply ) && dvarint( sv_running ) && dvarInt( ui_allow_graphic_change ) == 0 ); )
|
||||
//CHOICE_BACK( "@MENU_BACK", close self )
|
||||
|
||||
|
||||
// These are last so I don't have to redefine everything.
|
||||
#undef CHOICE_TEXTALIGN
|
||||
#define CHOICE_TEXTALIGN ITEM_ALIGN_MIDDLE_LEFT
|
||||
#undef CHOICE_TEXT_OFFSET_X
|
||||
#define CHOICE_TEXT_OFFSET_X -5010
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START ((-OPTIONS_GRAPHICS_WIDTH/2) - 125 + 5000)
|
||||
|
||||
#undef CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXTCOLOR 0.2 0.2 0.2 1
|
||||
// darker disabled color in-game
|
||||
FRAME_CHOICE_DBUTTON_DARK_VIS_EX( 41, dvarString( ui_r_mode ), ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 42, ui_r_fullscreen, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_NO_CAPS" 0 "@MENU_YES_CAPS" 1 }, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 43, ui_r_aasamples, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_OFF_CAPS" 1 "@MENU_2X_CAPS" 2 "@MENU_4X_CAPS" 4 "@MENU_8X_CAPS" 8 "@MENU_16X_CAPS" 16 }, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 44, ui_r_aspectratio, ITEM_TYPE_MULTI, dvarStrList { "@MENU_AUTO_CAPS"; "auto"; "@MENU_STANDARD_4_3_CAPS"; "standard"; "@MENU_WIDE_16_10_CAPS"; "wide 16:10"; "@MENU_WIDE_16_9_CAPS"; "wide 16:9" }, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_VIS_EX( 45, dvarString( ui_r_displayRefresh ), ;, ;, MP_ZOMBIE_INGAME, ; )
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 46, ui_r_vsync, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_NO_CAPS" 0 "@MENU_YES_CAPS" 1 }, ;, MP_ZOMBIE_INGAME, ; )
|
||||
|
||||
#undef CHOICE_Y_OFFSET
|
||||
#define CHOICE_Y_OFFSET (CHOICE_SIZE_Y / 2)
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 49, ui_r_picmip, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_AUTOMATIC_CAPS" -1 "@PLATFORM_LOW_CAPS" 3 "@MENU_NORMAL_CAPS" 2 "@PLATFORM_HIGH_CAPS" 1 "@MENU_EXTRA_CAPS" 0 }, ;, MP_ZOMBIE_INGAME, ; )
|
||||
#undef CHOICE_Y_OFFSET
|
||||
#define CHOICE_Y_OFFSET 0
|
||||
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 52, sm_enable, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_NO_CAPS" 0 "@MENU_YES_CAPS" 1 }, ;, !dvarbool( ui_showShadowOptions ) && MP_ZOMBIE_INGAME, ; )
|
||||
|
||||
#undef CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXTCOLOR 0.4 0.4 0.4 1
|
||||
// lighter disabled color in the shell
|
||||
FRAME_CHOICE_DBUTTON_DARK_LIST_VIS_EX( 52, sm_enable, ITEM_TYPE_MULTI, dvarFloatList { "@MENU_NO_CAPS" 0 "@MENU_YES_CAPS" 1 }, ;, !dvarbool( ui_showShadowOptions ), ; )
|
||||
|
||||
/*
|
||||
itemDef
|
||||
{
|
||||
name graphic_warning
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_GRAPHICS_WARNING"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
rect 20 -116 240 240 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_BOTTOM
|
||||
textfont UI_FONT_NORMAL
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textscale TEXTSIZE_SMALL
|
||||
visible 1
|
||||
mouseEnter { play CHOICE_FOCUS_SOUND; }
|
||||
decoration
|
||||
autowrapped
|
||||
}
|
||||
*/
|
||||
//CHOICE_FOOTNOTE( "@MENU_GRAPHICS_WARNING", 340, 340 )
|
||||
}
|
||||
|
||||
// restoring button properties
|
||||
|
||||
// ---
|
||||
#undef TEXTSIZE_BUTTON_PC
|
||||
#define TEXTSIZE_BUTTON_PC 0.4
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 224
|
||||
|
||||
#undef SECTION_X_OFFSET
|
||||
#define SECTION_X_OFFSET 0
|
||||
// ---
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "options_graphics_texture_"
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME options_graphics_texture
|
||||
|
||||
menuDef
|
||||
{
|
||||
name options_graphics_texture
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop ""
|
||||
|
||||
onOpen
|
||||
{
|
||||
LOCAL_CLOSE_ALL_BUT( options_graphics_texture )
|
||||
|
||||
setLocalVarBool ui_hideBack 1;
|
||||
setLocalVarBool ui_showApply 0;
|
||||
|
||||
exec "setfromdvar ui_r_picmip r_picmip";
|
||||
exec "setfromdvar ui_r_picmip_bump r_picmip_bump";
|
||||
exec "setfromdvar ui_r_picmip_spec r_picmip_spec";
|
||||
exec "setfromdvar ui_r_picmip_manual r_picmip_manual";
|
||||
|
||||
if (IsInGame())
|
||||
{
|
||||
showMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
}
|
||||
onClose
|
||||
{
|
||||
setLocalVarBool ui_hideBack 0;
|
||||
|
||||
if (IsInGame())
|
||||
{
|
||||
hideMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
}
|
||||
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
open options_new_pc;
|
||||
}
|
||||
PC_TAB_SWITCH_ACTIONS( options_new_pc, options_controls_new_pc, options_controls_new_pc )
|
||||
|
||||
#include "ui_mp/leftside_options.inc"
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#undef CHOICE_Y_START
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#undef CHOICE_DVAR_EXTRA_WIDTH
|
||||
#undef CHOICE_TEXT_OFFSET_X
|
||||
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
#define CHOICE_X_START ((-OPTIONS_GRAPHICS_WIDTH/2) - 75)
|
||||
#define CHOICE_Y_START ((-OPTIONS_GRAPHICS_HEIGHT/2) + 32)
|
||||
#define CHOICE_DVAR_EXTRA_WIDTH 120
|
||||
#define CHOICE_TEXT_OFFSET_X -10
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXT_COLOR_HL 1 1 1 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
FRAME_CHOICE_SECTION_TITLE( 21, "@MENU_TEXTURE_SETTINGS_CAPS" )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST( 22, "@MENU_TEXTURE_MIPMAPS_CAPS", r_texFilterMipMode, { "@MENU_AUTOMATIC_CAPS"; "Unchanged"; "@MENU_BILINEAR_CAPS"; "Force Bilinear"; "@MENU_TRILINEAR_CAPS"; "Force Trilinear" }, setLocalVarBool ui_showApply 1 )
|
||||
FRAME_DVARSLIDER( 23, "@MENU_TEXTURE_ANISOTROPY_CAPS", r_texFilterAnisoMin, 1, 1, 16, setLocalVarBool ui_showApply 1 )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 24, "@MENU_TEXTURE_QUALITY_CAPS", ui_r_picmip_manual, { "@MENU_AUTOMATIC_CAPS" 0 "@MENU_MANUAL_CAPS" 1 }, setLocalVarBool ui_showApply 1, 1 )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 25, "@MENU_TEXTURE_RESOLUTION_CAPS", ui_r_picmip, { "@PLATFORM_LOW_CAPS" 3 "@MENU_NORMAL_CAPS" 2 "@PLATFORM_HIGH_CAPS" 1 "@MENU_EXTRA_CAPS" 0 }, setLocalVarBool ui_showApply 1, ( dvarint( ui_r_picmip_manual ) ) )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 26, "@MENU_NORMAL_MAP_RESOLUTION_CAPS", ui_r_picmip_bump, { "@PLATFORM_LOW_CAPS" 3 "@MENU_NORMAL_CAPS" 2 "@PLATFORM_HIGH_CAPS" 1 "@MENU_EXTRA_CAPS" 0 }, setLocalVarBool ui_showApply 1, ( dvarint( ui_r_picmip_manual ) ) )
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 27, "@MENU_SPECULAR_MAP_RESOLUTION_CAPS", ui_r_picmip_spec, { "@PLATFORM_LOW_CAPS" 3 "@MENU_NORMAL_CAPS" 2 "@PLATFORM_HIGH_CAPS" 1 "@MENU_EXTRA_CAPS" 0 }, setLocalVarBool ui_showApply 1, ( dvarint( ui_r_picmip_manual ) ) )
|
||||
|
||||
FRAME_BUTTON_PC_RIGHT_OFFSET( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, 0,
|
||||
"@MENU_APPLY",
|
||||
close self;
|
||||
open apply_picmip_popmenu;,
|
||||
when( localVarBool( ui_showApply ) ); )
|
||||
|
||||
//CHOICE_APPLY_VIS( "@MENU_APPLY", close self; open apply_picmip_popmenu, when( localVarBool( ui_showApply ) ) )
|
||||
|
||||
//CHOICE_BACK( "@MENU_BACK", close self; open options_graphics )
|
||||
|
||||
/*
|
||||
itemDef
|
||||
{
|
||||
name graphic_warning
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_GRAPHICS_WARNING"
|
||||
style WINDOW_STYLE_FILLED
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
rect 20 -116 240 240 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_BOTTOM
|
||||
textfont UI_FONT_NORMAL
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textscale TEXTSIZE_SMALL
|
||||
visible 1
|
||||
mouseEnter { play CHOICE_FOCUS_SOUND; }
|
||||
decoration
|
||||
autowrapped
|
||||
}
|
||||
*/
|
||||
//CHOICE_FOOTNOTE( "@MENU_GRAPHICS_WARNING", 340, 340 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name apply_picmip_popmenu
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop ""
|
||||
onOpen
|
||||
{
|
||||
setLocalVarBool ui_showApply 0;
|
||||
|
||||
execnow "setfromdvar r_picmip ui_r_picmip";
|
||||
execnow "setfromdvar r_picmip_bump ui_r_picmip_bump";
|
||||
execnow "setfromdvar r_picmip_spec ui_r_picmip_spec";
|
||||
execnow "setfromdvar r_picmip_manual ui_r_picmip_manual";
|
||||
exec "wait; wait; r_applyPicmip";
|
||||
close apply_picmip_popmenu;
|
||||
open options_graphics_texture;
|
||||
}
|
||||
|
||||
// background black frame
|
||||
PREPROC_SHADER_DRAW( 320 0 600 480, "white", 0.1 0.1 0.12 1 )
|
||||
|
||||
CHOICE_SECTION_TITLE( 1, "@MENU_APPLYING_CHANGES" )
|
||||
}
|
||||
}
|
2127
mods/mp_patch/ui_mp/after_action_report.menu
Normal file
2127
mods/mp_patch/ui_mp/after_action_report.menu
Normal file
File diff suppressed because it is too large
Load Diff
32
mods/mp_patch/ui_mp/cac_custom.menu
Normal file
32
mods/mp_patch/ui_mp/cac_custom.menu
Normal file
@ -0,0 +1,32 @@
|
||||
#include "ui/menudef.h"
|
||||
|
||||
// ----------------- allocate stat for custom class settings -------------------
|
||||
|
||||
// custom class stats stat numbers
|
||||
#include "ui_mp/cac_stats.inc"
|
||||
|
||||
#define CAC_DEFAULT_PRIMARY_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "primarygrenade" )
|
||||
#define CAC_DEFAULT_PRIMARY GetDefaultClassSlot( dvarstring( ui_class ), "primary" )
|
||||
// no default primary attachments for now
|
||||
#define CAC_DEFAULT_PRIMARY_ATTACHMENT 0
|
||||
#define CAC_DEFAULT_SECONDARY GetDefaultClassSlot( dvarstring( ui_class ), "secondary" )
|
||||
// no default secondary attachments for now
|
||||
#define CAC_DEFAULT_SECONDARY_ATTACHMENT 0
|
||||
#define CAC_DEFAULT_SPECIALTY1 GetDefaultClassSlot( dvarstring( ui_class ), "specialty1" )
|
||||
#define CAC_DEFAULT_SPECIALTY2 GetDefaultClassSlot( dvarstring( ui_class ), "specialty2" )
|
||||
#define CAC_DEFAULT_SPECIAL_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "specialgrenade" )
|
||||
// no default camo for now
|
||||
#define CAC_DEFAULT_CAMO 0
|
||||
#define CAC_DEFAULT_DEATHSTREAK GetDefaultClassSlot( dvarstring( ui_class ), "deathstreak" )
|
||||
#define CAC_DEFAULT_KILLSTREAK_TIER1 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak1" )
|
||||
#define CAC_DEFAULT_KILLSTREAK_TIER2 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak2" )
|
||||
#define CAC_DEFAULT_KILLSTREAK_TIER3 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak3" )
|
||||
|
||||
// custom class name
|
||||
#define CAC_MENU_NAME "menu_cac_custom"
|
||||
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
{
|
||||
#include "ui_mp/cac.inc"
|
||||
}
|
813
mods/mp_patch/ui_mp/cac_popups.menu
Normal file
813
mods/mp_patch/ui_mp/cac_popups.menu
Normal file
@ -0,0 +1,813 @@
|
||||
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui_mp/cac_stats.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#define IS_ONLINE_GAME ( dvarInt( splitscreen ) == 0 && dvarInt( systemlink ) == 0 )
|
||||
#define IS_BASICTRAINING_GAME ( dvarInt( xblive_basictraining ) > 0 )
|
||||
|
||||
// saving popup for CAC ONLY - for a lack of better place
|
||||
#define LOCAL_SAVING \
|
||||
"wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait; wait;"
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( saving_popup, exec LOCAL_SAVING" "LOCAL_SAVING" closemenu saving_popup";, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_SAVING", 1 )
|
||||
SYSTEM_POPUP_SPINNER( 1 )
|
||||
}
|
||||
|
||||
|
||||
#define LOCAL_ACCEPT_ACTION( pclass, pclass_s ) \
|
||||
if ( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME ) \
|
||||
{ \
|
||||
setDvarFromLocString( dvarString( ui_custom_name ), pclass ); \
|
||||
} \
|
||||
execNow "equipDefaultClass ( dvarString( ui_custom_name ) ) class_custom"pclass_s; \
|
||||
execNow "updategamerprofile"; \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
close "popup_cac_defaultclasswarning"pclass_s; \
|
||||
close "popup_cac_template";
|
||||
|
||||
#define LOCAL_CANCEL_ACTION( pclass_s ) \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
close "popup_cac_defaultclasswarning"pclass_s;
|
||||
|
||||
|
||||
// reset to default class confirmation popup menu
|
||||
#define RESET_WARNING_POPUP( pclass, pclass_s ) \
|
||||
menuDef \
|
||||
{ \
|
||||
SYSTEM_POPUP_SETUP_VIS( "popup_cac_defaultclasswarning"pclass_s, setfocus "popup_cac_defaultclasswarning"pclass_s"_2", ;, 1 ) \
|
||||
\
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_RESET_TO_DEFAULT", 1 ) \
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_CUSTOM_CLASS_RESET_WARNING", 1 ) \
|
||||
\
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_YES", LOCAL_ACCEPT_ACTION( pclass, pclass_s ), 1, ; ) \
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_NO", LOCAL_CANCEL_ACTION( pclass_s ), 1, name "popup_cac_defaultclasswarning"pclass_s"_2" ) \
|
||||
}
|
||||
|
||||
RESET_WARNING_POPUP( "@CLASS_CLASS1", "_smg" )
|
||||
RESET_WARNING_POPUP( "@CLASS_CLASS2", "_cqb" )
|
||||
RESET_WARNING_POPUP( "@CLASS_CLASS3", "_assault" )
|
||||
RESET_WARNING_POPUP( "@CLASS_CLASS4", "_lmg" )
|
||||
RESET_WARNING_POPUP( "@CLASS_CLASS5", "_sniper" )
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( copyClassConfirmation, setfocus copyClassConfirmation_2;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( getCopyClassConfirmationText( dvarInt("ui_custom_class_highlighted"), dvarInt("ui_classToReplace") ), 1 )
|
||||
|
||||
#define COPY_CLASS_ACTION \
|
||||
execNow copyClass (dvarInt("ui_custom_class_highlighted")) (dvarInt("ui_classToReplace")); \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_YES", COPY_CLASS_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL", close self;, 1, name copyClassConfirmation_2 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( copyCustomGametypeClassConfirmation, setfocus copyCustomGametypeClassConfirmation_2;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( getCopyCustomGametypeClassConfirmationText( dvarInt("ui_custom_gametype_class_highlighted"), dvarInt("ui_customGametypeClassToReplace") ), 1 )
|
||||
|
||||
#define COPY_CUSTOM_CLASS_ACTION \
|
||||
execNow copyCustomGametypeClass (dvarInt("ui_custom_gametype_class_highlighted")) (dvarInt("ui_customGametypeClassToReplace")); \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_YES", COPY_CUSTOM_CLASS_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL", close self;, 1, name copyCustomGametypeClassConfirmation_2 )
|
||||
}
|
||||
|
||||
#ifdef XENON
|
||||
#define SELECT_ICON "ui_button_xenon_3d_a_32x32"
|
||||
#endif
|
||||
#ifdef PS3
|
||||
#define SELECT_ICON "ui_button_ps3_x_32x32"
|
||||
#endif
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 5
|
||||
// Copy Class Popup
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( copyClassPopup, ;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( GetCopyClassDialogTitle( dvarInt("ui_custom_class_highlighted") ), 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name custom_class_list
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_CUSTOM_CLASSES
|
||||
rect CHOICE_X_START CHOICE_Y_START CHOICE_SIZE_X (CHOICE_SIZE_Y*6) CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN
|
||||
elementwidth CHOICE_SIZE_X
|
||||
elementheight CHOICE_SIZE_Y
|
||||
elementtype LISTBOX_TEXT
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalignx CHOICE_SIZE_Y
|
||||
textaligny 0
|
||||
forecolor 1 1 1 1
|
||||
focusColor 1 1 1 1
|
||||
disableColor 1 1 1 1
|
||||
selectBorder 0.8 0.95 1 0
|
||||
outlinecolor 1 1 1 1
|
||||
elementBackgroundColor NEW_FRAME_BUTTON_BG_COLOR
|
||||
selectIcon SELECT_ICON
|
||||
elementHighlightColor NEW_FRAME_BUTTON_TEXT_HIGHLIGHT_COLOR
|
||||
#ifdef PC
|
||||
modal
|
||||
usepaging
|
||||
#else //#ifdef PC
|
||||
noscrollbars
|
||||
#endif //#ifdef PC
|
||||
noBlinkingHighlight
|
||||
visible 1
|
||||
onfocus
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
onListboxSelectionChange
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
doubleclick
|
||||
{
|
||||
execNow set ui_classToReplace (getFeederData("selection"));
|
||||
open copyClassConfirmation;
|
||||
close self;
|
||||
}
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
}
|
||||
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 5
|
||||
// Copy Custom Gametype Class Popup
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( copyCustomGametypeClassPopup, ;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( GetCopyCustomGametypeClassDialogTitle( dvarInt("ui_custom_gametype_class_highlighted") ), 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name custom_class_list
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_CUSTOM_GAMETYPE_CLASSES
|
||||
rect CHOICE_X_START CHOICE_Y_START CHOICE_SIZE_X (CHOICE_SIZE_Y*6) CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN
|
||||
elementwidth CHOICE_SIZE_X
|
||||
elementheight CHOICE_SIZE_Y
|
||||
elementtype LISTBOX_TEXT
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalignx CHOICE_SIZE_Y
|
||||
textaligny 0
|
||||
forecolor 1 1 1 1
|
||||
focusColor 1 1 1 1
|
||||
disableColor 1 1 1 1
|
||||
selectBorder 0.8 0.95 1 0
|
||||
outlinecolor 1 1 1 1
|
||||
elementBackgroundColor NEW_FRAME_BUTTON_BG_COLOR
|
||||
selectIcon SELECT_ICON
|
||||
elementHighlightColor NEW_FRAME_BUTTON_TEXT_HIGHLIGHT_COLOR
|
||||
#ifdef PC
|
||||
modal
|
||||
usepaging
|
||||
#else //#ifdef PC
|
||||
noscrollbars
|
||||
#endif //#ifdef PC
|
||||
noBlinkingHighlight
|
||||
visible 1
|
||||
onfocus
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
onListboxSelectionChange
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
doubleclick
|
||||
{
|
||||
execNow set ui_customGametypeClassToReplace (getFeederData("selection"));
|
||||
open copyCustomGametypeClassConfirmation;
|
||||
close self;
|
||||
}
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
}
|
||||
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 3
|
||||
|
||||
#define RENAME_ACTION \
|
||||
exec "setNewCustomName"; close self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "pc_rename", exec "getOldCustomName"; setFocus nameEntry;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_RENAME_CLASS", 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name nameEntry
|
||||
TYPE ITEM_TYPE_UPREDITFIELD
|
||||
text "@MENU_NAME1"
|
||||
dvar "ui_custom_newname"
|
||||
rect CHOICE_RECT( 1 )
|
||||
textaligny 2
|
||||
maxchars 15
|
||||
maxpaintchars 15
|
||||
textalign ITEM_ALIGN_MIDDLE_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
forecolor .9 .9 .9 1
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 .3
|
||||
visible 1
|
||||
mouseenter { show keyBindStatus; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { hide keyBindStatus; setfocus ok_button; }
|
||||
accept { if ( dvarString( ui_custom_newname ) != "" ) { RENAME_ACTION } }
|
||||
}
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_OK", RENAME_ACTION, ( dvarString( ui_custom_newname ) != "" ), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, "@MENU_OK", ;, ;, ( dvarString( ui_custom_newname ) == "" ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MENU_CANCEL", close self; setDvar ui_custom_newname "";, 1, ; )
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 2
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( clearAttachmentNotification, focusFirst;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_CAC_ATTACHMENTS_CLEARED", 1 )
|
||||
|
||||
#define CLEAR_ATTACHMENTS_ACTION \
|
||||
execNow clearAllAttachmentsForItem (dvarString( ui_custom_name )) (STAT_CAC_PRIMARY); \
|
||||
if ( !dvarBool("buyingAndEquippingProItem") ) \
|
||||
{ \
|
||||
execnow equipclasscurrentitem (dvarString( ui_custom_name )); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow equipclassitem (dvarString( ui_custom_name )) (GetCurrentItemIndex() + 1); \
|
||||
execnow buildItemListForSlotName (dvarString( selected_loadout_slot )); \
|
||||
} \
|
||||
setDvar buyingAndEquippingProItem "0";
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", CLEAR_ATTACHMENTS_ACTION; close self; execnow ui_animate menu_cac_custom * CloseDropDownList 0;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_CANCEL", close self;, 1, ; )
|
||||
}
|
||||
|
||||
// Redefinitions for MEDIUM_POPUP_SETUP popups
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X CONFIRM_PURCHASE_SIZE_X
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_TOP
|
||||
#undef PLAYER_INFO_ALIGN
|
||||
#define PLAYER_INFO_ALIGN // Purposely set to nothing. The popup setup macro sets the alignment. If items within it set their own aligment, they end up offset incorrectly.
|
||||
#undef PLAYER_INFO_X_START
|
||||
#define PLAYER_INFO_X_START( frameWidth ) ( frameWidth - PLAYER_INFO_WIDTH - PLAYER_INFO_PAD )
|
||||
#undef PLAYER_INFO_Y_START
|
||||
#define PLAYER_INFO_Y_START( frameHeight ) ( PLAYER_INFO_PAD * 2 )
|
||||
#undef BG_BACKCOLOR
|
||||
#define BG_BACKCOLOR POPUP_BACKCOLOR
|
||||
// Redefinitions for MEDIUM_POPUP_SETUP popups
|
||||
|
||||
|
||||
#define PURCHASE_CONFIRMATION_RIGHT_X ( MEDIUM_POPUP_WIDTH / 2 )
|
||||
#define PURCHASE_INFO_WIDTH ( ( MEDIUM_POPUP_WIDTH / 2 ) - POPUP_SIDE_PAD )
|
||||
|
||||
#define CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, itemDesc, balanceHeader, balanceAfter, visArg ) \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 1 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, locString( "@MENU_POINTS", itemCost ), TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_GREEN_RGB 1, visArg, ; ) \ /* Cost */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 2 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, "@" + itemName, TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_GREEN_RGB 1, visArg, ; ) \ /* Name */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 4 ) PURCHASE_INFO_WIDTH 200, 0 0, "@" + itemDesc, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, MEDIUM_POPUP_GRAY, visArg, autowrapped; ) \ /* Description */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 7 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, "@MPUI_YOUR_BANK", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, MEDIUM_POPUP_GRAY, visArg, ; ) \ /* Currency Available Header */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (MEDIUM_POPUP_WIDTH-75) CHOICE_Y( 7 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, locString( "@MENU_POINTS", GetStatByName( "CODPOINTS" ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, visArg, ; ) \ /* Currency Available */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 8 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, balanceHeader, TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, MEDIUM_POPUP_GRAY, visArg, ; ) \ /* Balance After Purchase Header */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (MEDIUM_POPUP_WIDTH-75) CHOICE_Y( 8 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, balanceAfter, TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, visArg, ; ) /* Balance After Purchase */
|
||||
|
||||
#define PURCHASE_CONFIRMATION_ITEM_INFO( itemName, itemCost, itemDesc ) \
|
||||
CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, itemDesc, "@MPUI_BALANCE_AFTER_PURCHASE", locString( "@MENU_POINTS", GetStatByName( "CODPOINTS" ) - itemCost ), 1 )
|
||||
|
||||
#define PURCHASE_CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, itemDesc, visArg ) \
|
||||
CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, itemDesc, "@MPUI_BALANCE_AFTER_PURCHASE", locString( "@MENU_POINTS", GetStatByName( "CODPOINTS" ) - itemCost ), visArg )
|
||||
|
||||
#define IS_TWO_ATTACHMENT_PERK_EQUIPPED \
|
||||
( ( STAT_CAC_SPECIALTY2 == getItemIndex( "PERKS_PROFESSIONAL" ) ) || ( STAT_CAC_SPECIALTY2 == getItemIndex( "PERKS_PROFESSIONAL_PRO" ) ) )
|
||||
|
||||
#define TWO_ATTACHMENTS_EQUIPPED \
|
||||
( GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), STAT_CAC_PRIMARY ) > 1 || GetItemNumAttachmentsEquipped( dvarString( ui_custom_name ), STAT_CAC_SECONDARY ) > 1 )
|
||||
|
||||
#define TWO_ATTACHMENT_PERK_NOT_HIGHLIGHTED \
|
||||
( GetCurrentItemIndex() != getItemIndex( "PERKS_PROFESSIONAL" ) && GetCurrentItemIndex() != getItemIndex( "PERKS_PROFESSIONAL_PRO" ) )
|
||||
|
||||
#define PERK_2_EQUIP_ACTION \
|
||||
if( TWO_ATTACHMENTS_EQUIPPED && IS_TWO_ATTACHMENT_PERK_EQUIPPED && TWO_ATTACHMENT_PERK_NOT_HIGHLIGHTED ) \
|
||||
{ \
|
||||
setDvar buyingAndEquippingProItem "0"; \
|
||||
execNow openMenu clearAttachmentNotification; \
|
||||
execnow set ui_closeAfterPurchase 0; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow equipclasscurrentitem (dvarString( ui_custom_name )); \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseConfirmation", setfocus "PurchaseConfirmation_3";, ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetCurrentItemName(), GetCurrentItemCost(), GetItemDesc( GetCurrentItemIndex() ) )
|
||||
|
||||
#define BUY_ACTION \
|
||||
execnow purchasecurrentitem; \
|
||||
if ( dvarString( ui_inside_popup ) == "select_weapon" ) \
|
||||
{ \
|
||||
execnow buildItemListForSlotNameAndGroup (dvarString(selected_loadout_slot)) (dvarString(selected_group)); \
|
||||
} \
|
||||
elseif ( dvarString( ui_inside_popup ) == "equipment_head" ) \
|
||||
{ \
|
||||
execnow buildItemListForSlotName (dvarString( selected_loadout_slot )); \
|
||||
} \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_ACTION \
|
||||
execnow purchasecurrentitem; \
|
||||
if ( dvarString( ui_inside_popup ) == "specialties_2" ) \
|
||||
{ \
|
||||
PERK_2_EQUIP_ACTION \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow equipclasscurrentitem (dvarString( ui_custom_name )); \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
} \
|
||||
if ( dvarString( ui_inside_popup ) == "select_weapon" ) \
|
||||
{ \
|
||||
execnow buildItemListForSlotNameAndGroup (dvarString(selected_loadout_slot)) (dvarString(selected_group)); \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
} \
|
||||
elseif ( dvarString( ui_inside_popup ) == "equipment_head" ) \
|
||||
{ \
|
||||
execnow buildItemListForSlotName (dvarString( selected_loadout_slot )); \
|
||||
} \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self, 1, name PurchaseConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseKillstreakConfirmation", setfocus "PurchaseKillstreakConfirmation_3";, ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetCurrentItemName(), GetCurrentItemCost(), GetItemDesc( GetCurrentItemIndex() ) )
|
||||
|
||||
#define BUY_KILLSTREAK_ACTION \
|
||||
execnow purchasecurrentitem; \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_KILLSTREAK_ACTION \
|
||||
execnow purchasecurrentitem; \
|
||||
execnow equipGlobalItemInSlotSorted 3 killstreak 1; \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
close self;
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_KILLSTREAK_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_KILLSTREAK_ACTION, ( GetNumSortedItemsEquipped() < 3 ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self, ( GetNumSortedItemsEquipped() == 3 ), name PurchaseKillstreakConfirmation_3 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self, ( GetNumSortedItemsEquipped() < 3 ), name PurchaseKillstreakConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseProConfirmation", setfocus "PurchaseProConfirmation_3", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetItemName( GetCurrentItemIndex() + 1 ), GetItemCost( GetCurrentItemIndex() + 1 ), GetItemDesc( GetCurrentItemIndex() + 1 ) )
|
||||
|
||||
#define BUY_PRO_ACTION \
|
||||
execnow purchasecurrentproitem; \
|
||||
execnow buildItemListForSlotName (dvarString( selected_loadout_slot )); \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_PRO_ACTION \
|
||||
execnow purchasecurrentproitem; \
|
||||
if ( dvarString( ui_inside_popup ) == "specialties_2" && TWO_ATTACHMENTS_EQUIPPED && IS_TWO_ATTACHMENT_PERK_EQUIPPED && TWO_ATTACHMENT_PERK_NOT_HIGHLIGHTED ) \
|
||||
{ \
|
||||
setDvar buyingAndEquippingProItem "1"; \
|
||||
execNow openMenu clearAttachmentNotification; \
|
||||
execnow set ui_closeAfterPurchase 0; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow equipclassitem (dvarString( ui_custom_name )) (GetCurrentItemIndex() + 1); \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
execnow buildItemListForSlotName (dvarString( selected_loadout_slot )); \
|
||||
} \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_PRO_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_PRO_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self, 1, name PurchaseProConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
#define GET_SLOT_STAT \
|
||||
( Select( dvarString( selected_loadout_slot ) == "primary", STAT_CAC_PRIMARY, STAT_CAC_SECONDARY ) )
|
||||
|
||||
#define SELECTING_PRIMARY \
|
||||
( dvarString( selected_loadout_slot ) == "primary" )
|
||||
|
||||
#define CAN_EQUIP_TWO_ATTACHMENTS \
|
||||
( ( SELECTING_PRIMARY ) && ( 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 )
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseAttachmentConfirmation", setfocus "PurchaseAttachmentConfirmation_3", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetCurrentItemAttachmentName(), GetCurrentItemAttachmentCost(), GetAttachmentDesc( GetItemAttachment( GetCurrentItemIndex(), GetCurrentItemAttachmentNum() ) ) )
|
||||
|
||||
#define BUY_ATTACHMENT_ACTION \
|
||||
execnow purchasecurrentitemattachment; \
|
||||
close self;
|
||||
|
||||
#define BUY_ATTACHMENT_AND_EQUIP_ACTION \
|
||||
execnow purchasecurrentitemattachment; \
|
||||
if( ( NUM_EQUIPPED_ATTACHMENTS < 1 ) || ( NUM_EQUIPPED_ATTACHMENTS == 1 && CAN_EQUIP_TWO_ATTACHMENTS ) ) \
|
||||
{ \
|
||||
execnow equipclasscurrentattachment ( dvarString( ui_custom_name ) ); \
|
||||
} \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_ATTACHMENT_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_ATTACHMENT_AND_EQUIP_ACTION, ( ( NUM_EQUIPPED_ATTACHMENTS == 0 ) || ( NUM_EQUIPPED_ATTACHMENTS == 1 && CAN_EQUIP_TWO_ATTACHMENTS ) ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self, ( NUM_EQUIPPED_ATTACHMENTS == 2 || ( ( NUM_EQUIPPED_ATTACHMENTS == 1 ) && !CAN_EQUIP_TWO_ATTACHMENTS ) ), name PurchaseAttachmentConfirmation_3 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self, ( ( NUM_EQUIPPED_ATTACHMENTS == 0 ) || ( NUM_EQUIPPED_ATTACHMENTS == 1 && CAN_EQUIP_TWO_ATTACHMENTS ) ), name PurchaseAttachmentConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseOptionConfirmation", setfocus "PurchaseOptionConfirmation_3", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetWeaponOptionName( GetCurrentItemOption() ), GetWeaponOptionCost( GetCurrentItemOption() ), GetWeaponOptionName( GetCurrentItemOption() ) )
|
||||
|
||||
#define BUY_OPTION_ACTION \
|
||||
execnow purchasecurrentitemoption; \
|
||||
close self;
|
||||
|
||||
#define BUY_OPTION_AND_EQUIP_ACTION \
|
||||
execnow purchasecurrentitemoption; \
|
||||
execnow equipclasscurrentoption ( dvarString( ui_custom_name ) ) ( dvarString( ui_option_name ) ); \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_OPTION_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_OPTION_AND_EQUIP_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseOptionConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseContractConfirmation", setfocus "PurchaseContractConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetContractName( GetCurrentContractIndex() ), GetContractCost( GetCurrentContractIndex() ), GetContractDesc( GetCurrentContractIndex() ) )
|
||||
|
||||
#define BUY_CONTRACT_ACTION \
|
||||
execnow activatecontract ( GetCurrentContractIndex() ) ( dvarint( ui_activeContract ) ); \
|
||||
close self; \
|
||||
execnow ui_animate menu_xboxlive_contracts anim_controller CloseDropDownList 0;
|
||||
|
||||
#define DEACTIVATE_AND_BUY_CONTRACT_ACTION \
|
||||
execnow activatecontract ( GetCurrentContractIndex() ) ( dvarint( ui_activeContract ) ); \
|
||||
close self; \
|
||||
execnow ui_animate menu_xboxlive_contracts anim_controller CloseDropDownList 0;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_CONTRACT_ACTION, ( !IsContractInProgress( GetIndexForActiveContract( dvarInt( ui_activeContract ) ) ) ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_DEACTIVATE_AND_BUY_CAPS", DEACTIVATE_AND_BUY_CONTRACT_ACTION, ( IsContractInProgress( GetIndexForActiveContract( dvarInt( ui_activeContract ) ) ) ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseContractConfirmation_2 )
|
||||
PREPROC_TEXT_DRAW_VIS_EX( CHOICE_X( 3 ) CHOICE_Y( 3 ) CHOICE_SIZE_X CHOICE_SIZE_Y, 0 0, "@MPUI_REPLACE_CONTRACT_WARNING", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_ORANGE_RGB 1, when( IsContractInProgress( GetIndexForActiveContract( dvarInt( ui_activeContract ) ) ) );, autowrapped )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseWeaponOptionConfirmation", setfocus "PurchaseWeaponOptionConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO_VIS( GetItemName( dvarInt( weaponOptionIndex ) ), GetWeaponOptionCost( GetItemOptionByName( dvarString( weaponOptionRef ) ) ), GetItemDesc( dvarInt( weaponOptionIndex ) ), 1 )
|
||||
|
||||
#define BUY_WEAPON_OPTION_ACTION( optionRef ) \
|
||||
execnow PurchaseWeaponOption optionRef; \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_WEAPON_OPTION_ACTION( optionRef ) \
|
||||
execnow PurchaseWeaponOption optionRef; \
|
||||
close self; \
|
||||
execnow toggleWeaponOption (dvarString( ui_custom_name )) optionRef;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_WEAPON_OPTION_ACTION( ( dvarString( weaponOptionRef ) ) ), 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_WEAPON_OPTION_ACTION( ( dvarString( weaponOptionRef ) ) ), 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self, 1, name PurchaseWeaponOptionConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseEmblemLayerConfirmation", setfocus "PurchaseEmblemLayerConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( ( locString( "MENU_EMBLEM_LAYER_CAPS", emblemSelectedLayer() + 1 ) ) , emblemLayerCost( emblemSelectedLayer() ), "" )
|
||||
|
||||
#define BUY_EMBLEM_LAYER_ACTION \
|
||||
execnow emblempurchaselayer; \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_EMBLEM_LAYER_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseEmblemLayerConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseClanTagFeatureConfirmation", setfocus "PurchaseClanTagFeatureConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( "MPUI_CLANTAG_" + GetClanTagFeatureName( GetCurrentClanTagFeature() ), GetClanTagFeatureCost( GetCurrentClanTagFeature() ), "MPUI_CLANTAG_" + GetClanTagFeatureName( GetCurrentClanTagFeature() ) + "_DESC" )
|
||||
|
||||
#define BUY_CLAN_TAG_FEATURE_ACTION \
|
||||
execnow PurchaseClanTagFeature ( GetCurrentClanTagFeature() ); \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_CLAN_TAG_FEATURE_ACTION \
|
||||
execnow PurchaseClanTagFeature ( GetCurrentClanTagFeature() ); \
|
||||
execNow statwriteddl clanTagStats selectedFeature ( GetCurrentClanTagFeature() ); \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_CLAN_TAG_FEATURE_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_CLAN_TAG_FEATURE_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseClanTagFeatureConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseCurrentWeaponOptionConfirmation", setfocus "PurchaseCurrentWeaponOptionConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( GetWeaponOptionName( GetCurrentItemOption() ), GetWeaponOptionCost( GetCurrentItemOption() ), GetWeaponOptionName( GetCurrentItemOption() ) )
|
||||
|
||||
#define BUY_CURRENT_WEAPON_OPTION_ACTION \
|
||||
execnow purchasecurrentitemoption; \
|
||||
close self;
|
||||
|
||||
#define BUY_AND_EQUIP_CURRENT_WEAPON_OPTION_ACTION \
|
||||
execnow purchasecurrentitemoption; \
|
||||
execnow "equipclasscurrentoption ( dvarString( ui_custom_name ) ) ( dvarString( ui_optiongroup_name ) )"; \
|
||||
execnow set ui_closeAfterPurchase 1; \
|
||||
close self;
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_CURRENT_WEAPON_OPTION_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_EQUIP_CAPS", BUY_AND_EQUIP_CURRENT_WEAPON_OPTION_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseCurrentWeaponOptionConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseEmblemIconConfirmation", setfocus "PurchaseEmblemIconConfirmation_3", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( emblemIconName( localvarint( emblem_selected_icon_id ) ), emblemIconCost( localvarint( emblem_selected_icon_id ) ), "" )
|
||||
|
||||
#define BUY_EMBLEM_ICON_ACTION \
|
||||
execnow emblempurchaseicon ( localvarint( emblem_selected_icon_id ) ); \
|
||||
close self;
|
||||
|
||||
#define BUY_SELECT_EMBLEM_ICON_ACTION \
|
||||
execnow emblempurchaseicon ( localvarint( emblem_selected_icon_id ) ); \
|
||||
close self; \
|
||||
execNow emblemClear; \
|
||||
execNow emblemIcon ( localvarint( emblem_selected_icon_id ) ); \
|
||||
close emblem_icon_select; \
|
||||
openimmediate emblem_edit;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_EMBLEM_ICON_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_SELECT_CAPS", BUY_SELECT_EMBLEM_ICON_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseEmblemIconConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseEmblemBackgroundConfirmation", setfocus "PurchaseEmblemBackgroundConfirmation_3", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( emblemBackgroundName( localvarint( bg_hi_index ) ), emblemBackgroundCost( localvarint( bg_hi_index ) ), "" )
|
||||
PREPROC_SHADER_DRAW( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 4 ) 185 40, emblemBackgroundMaterial( localvarint( bg_hi_index ) ), 1 1 1 1 )
|
||||
|
||||
#define BUY_EMBLEM_BACKGROUND_ACTION \
|
||||
execnow emblempurchasebackgroundbyindex ( localvarint( bg_hi_index ) ); \
|
||||
close self;
|
||||
|
||||
#define BUY_SELECT_EMBLEM_BACKGROUND_ACTION \
|
||||
execnow emblempurchasebackgroundbyindex ( localvarint( bg_hi_index ) ); \
|
||||
execnow emblemselectbackground ( localvarint( bg_hi_index ) ); \
|
||||
close self; \
|
||||
close emblem_bg_select; \
|
||||
openimmediate emblem_edit;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_EMBLEM_BACKGROUND_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_BUY_AND_SELECT_CAPS", BUY_SELECT_EMBLEM_BACKGROUND_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseEmblemBackgroundConfirmation_3 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PurchaseAttachmentPointConfirmation", setfocus "PurchaseAttachmentPointConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
|
||||
#define SELECTED_ATTACHMENT_POINT_NAME \
|
||||
tablelookup( "mp/attachmentTable.csv", 4, dvarString( "selected_attachment_point" ), 3 )
|
||||
|
||||
#define SELECTED_ATTACHMENT_POINT_COST \
|
||||
tablelookup( "mp/attachmentTable.csv", 4, dvarString( "selected_attachment_point" ), 12 )
|
||||
|
||||
#define SELECTED_ATTACHMENT_POINT_DESC \
|
||||
tablelookup( "mp/attachmentTable.csv", 4, dvarString( "selected_attachment_point" ), 7 )
|
||||
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( SELECTED_ATTACHMENT_POINT_NAME, SELECTED_ATTACHMENT_POINT_COST, SELECTED_ATTACHMENT_POINT_DESC )
|
||||
|
||||
#define IS_PRIMARY ( dvarString( "selected_loadout_slot" ) == "primary" )
|
||||
|
||||
#define PURCHASE_ATTACH_POINT_ACTION \
|
||||
execnow "purchaseitemattachmentpoint" (Select( IS_PRIMARY, STAT_CAC_PRIMARY, STAT_CAC_SECONDARY )) (dvarString( "selected_attachment_point" )); \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", PURCHASE_ATTACH_POINT_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self;, 1, name PurchaseAttachmentPointConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "PrestigeLBPurchaseConfirmation", setfocus "PrestigeLBPurchaseConfirmation_2", ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_CONFIRM_PURCHASE_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( "MPUI_PRESTIGE_LEADERBOARDS_CAPS", GetItemCost(GetItemIndex("FEATURE_PRESTIGE_LB")), "" )
|
||||
|
||||
#define BUY_PRESTIGE_LB_ACTION \
|
||||
execNow purchaseItem (getItemIndex("FEATURE_PRESTIGE_LB")); \
|
||||
execnow "uploadstats"; \
|
||||
close self; \
|
||||
openImmediate menu_playercards_lb_prestige
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_BUY_CAPS", BUY_PRESTIGE_LB_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CANCEL_PURCHASE_CAPS", close self, 1, name PrestigeLBPurchaseConfirmation_2 )
|
||||
}
|
||||
|
||||
|
||||
// Redefinitions for LARGE_POPUP_SETUP popups
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH LARGE_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT LARGE_POPUP_HEIGHT
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X (LARGE_POPUP_WIDTH / 3)
|
||||
// Redefinitions for LARGE_POPUP_SETUP popups
|
||||
|
||||
|
||||
// ====================================================================================================
|
||||
// reset to default class selection ===================================================================
|
||||
// ====================================================================================================
|
||||
#define RESET_DEFAULT_ACTION( ptype ) \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
open "popup_cac_defaultclasswarning"ptype;
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "reset_class"
|
||||
|
||||
// hackaround to work for PC's floating mouse unfocusing
|
||||
#undef UI_FOCUSFIRST
|
||||
#ifdef PC
|
||||
#define UI_FOCUSFIRST "ui_class"
|
||||
#else
|
||||
#define UI_FOCUSFIRST "ui_fake_focus"
|
||||
#endif
|
||||
menuDef
|
||||
{
|
||||
#define IS_CUSTOM_CLASS_MODE dvarInt( ui_useCustomClassInfo ) == 1
|
||||
|
||||
LARGE_POPUP_SETUP_VIS( "popup_cac_template", execnow "set "UI_FOCUSFIRST" class_smg";, ;, POPUP_GLOW_WHITE, 0, 1 )
|
||||
|
||||
LARGE_POPUP_TITLE_VIS( dvarString( dvarString( ui_custom_name ) ), when( !IS_CUSTOM_CLASS_MODE && IS_ONLINE_GAME && !IS_BASICTRAINING_GAME ) )
|
||||
LARGE_POPUP_TITLE_VIS( dvarString( dvarString( offline_custom_name ) ), when( !IS_CUSTOM_CLASS_MODE && ( !IS_ONLINE_GAME || IS_BASICTRAINING_GAME ) ) )
|
||||
LARGE_POPUP_TITLE_VIS( dvarString( custom_class_name ), when( IS_CUSTOM_CLASS_MODE ) )
|
||||
|
||||
LARGE_POPUP_SUBTITLE_VIS( toUpper( dvarstring(ui_menu_selection_title) ), 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, "@CLASS_CLASS1", RESET_DEFAULT_ACTION( "_smg" ), setdvar ui_class class_custom_smg; setDvarFromLocString( ui_default_name, "@CLASS_CLASS1" );, ;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 2, "@CLASS_CLASS2", RESET_DEFAULT_ACTION( "_cqb" ), setdvar ui_class class_custom_cqb; setDvarFromLocString( ui_default_name, "@CLASS_CLASS2" );, ;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 3, "@CLASS_CLASS3", RESET_DEFAULT_ACTION( "_assault" ), setdvar ui_class class_custom_assault; setDvarFromLocString( ui_default_name, "@CLASS_CLASS3" );, ;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 4, "@CLASS_CLASS4", RESET_DEFAULT_ACTION( "_lmg" ), setdvar ui_class class_custom_lmg; setDvarFromLocString( ui_default_name, "@CLASS_CLASS4" );, ;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 5, "@CLASS_CLASS5", RESET_DEFAULT_ACTION( "_sniper" ), setdvar ui_class class_custom_sniper; setDvarFromLocString( ui_default_name, "@CLASS_CLASS5" );, ;, 1, ; )
|
||||
|
||||
#undef CAC_WIDTH
|
||||
#define CAC_WIDTH LARGE_POPUP_WIDTH
|
||||
#undef CAC_HEIGHT
|
||||
#define CAC_HEIGHT LARGE_POPUP_HEIGHT
|
||||
|
||||
#define COMMON_ITEM_INFO_WIDTH 200
|
||||
#define COMMON_ITEM_INFO_X (CAC_WIDTH - COMMON_ITEM_INFO_WIDTH - POPUP_SIDE_PAD )
|
||||
#define COMMON_ITEM_INFO_Y (POPUP_SIDE_PAD*1.5)
|
||||
|
||||
// Default class stats
|
||||
#undef STAT_CAC_PRIMARY_GRENADE
|
||||
#define STAT_CAC_PRIMARY_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "primarygrenade" )
|
||||
#undef STAT_CAC_PRIMARY
|
||||
#define STAT_CAC_PRIMARY GetDefaultClassSlot( dvarstring( ui_class ), "primary" )
|
||||
// no default attachments or camo for now
|
||||
#undef STAT_CAC_PRIMARY_ATTACHMENT
|
||||
#define STAT_CAC_PRIMARY_ATTACHMENT 0
|
||||
#undef STAT_CAC_PRIMARY_CAMO
|
||||
#define STAT_CAC_PRIMARY_CAMO 0
|
||||
#undef STAT_CAC_SECONDARY
|
||||
#define STAT_CAC_SECONDARY GetDefaultClassSlot( dvarstring( ui_class ), "secondary" )
|
||||
// no default attachments or camo for now
|
||||
#undef STAT_CAC_SECONDARY_ATTACHMENT
|
||||
#define STAT_CAC_SECONDARY_ATTACHMENT 0
|
||||
#undef STAT_CAC_SECONDARY_CAMO
|
||||
#define STAT_CAC_SECONDARY_CAMO 0
|
||||
#undef STAT_CAC_SPECIALTY1
|
||||
#define STAT_CAC_SPECIALTY1 GetDefaultClassSlot( dvarstring( ui_class ), "specialty1" )
|
||||
#undef STAT_CAC_SPECIALTY2
|
||||
#define STAT_CAC_SPECIALTY2 GetDefaultClassSlot( dvarstring( ui_class ), "specialty2" )
|
||||
#undef STAT_CAC_SPECIALTY3
|
||||
#define STAT_CAC_SPECIALTY3 GetDefaultClassSlot( dvarstring( ui_class ), "specialty3" )
|
||||
#undef STAT_CAC_EQUIPMENT
|
||||
#define STAT_CAC_EQUIPMENT GetDefaultClassSlot( dvarstring( ui_class ), "equipment" )
|
||||
#undef STAT_CAC_SPECIAL_GRENADE
|
||||
#define STAT_CAC_SPECIAL_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "specialgrenade" )
|
||||
#undef STAT_CAC_BODY
|
||||
#define STAT_CAC_BODY GetDefaultClassSlot( dvarstring( ui_class ), "body" )
|
||||
#undef STAT_CAC_DEATHSTREAK
|
||||
#define STAT_CAC_DEATHSTREAK GetDefaultClassSlot( dvarstring( ui_class ), "deathstreak" )
|
||||
#undef STAT_CAC_KILLSTREAK_TIER1
|
||||
#define STAT_CAC_KILLSTREAK_TIER1 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak1" )
|
||||
#undef STAT_CAC_KILLSTREAK_TIER2
|
||||
#define STAT_CAC_KILLSTREAK_TIER2 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak2" )
|
||||
#undef STAT_CAC_KILLSTREAK_TIER3
|
||||
#define STAT_CAC_KILLSTREAK_TIER3 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak3" )
|
||||
#undef FIRST_ATTACHMENT_PRIMARY_WEAPON
|
||||
#define FIRST_ATTACHMENT_PRIMARY_WEAPON -1
|
||||
#undef SECOND_ATTACHMENT_PRIMARY_WEAPON
|
||||
#define SECOND_ATTACHMENT_PRIMARY_WEAPON -1
|
||||
|
||||
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/cac_item_info.inc"
|
||||
|
||||
LARGE_POPUP_BACK_BUTTON
|
||||
}
|
1618
mods/mp_patch/ui_mp/cac_weapon.menu
Normal file
1618
mods/mp_patch/ui_mp/cac_weapon.menu
Normal file
File diff suppressed because it is too large
Load Diff
3283
mods/mp_patch/ui_mp/combat_record.menu
Normal file
3283
mods/mp_patch/ui_mp/combat_record.menu
Normal file
File diff suppressed because it is too large
Load Diff
903
mods/mp_patch/ui_mp/custom_game_create.menu
Normal file
903
mods/mp_patch/ui_mp/custom_game_create.menu
Normal file
@ -0,0 +1,903 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/custom_mode.inc"
|
||||
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 13
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/common_game_options.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#include "ui_mp/custom_mode_layout.inc"
|
||||
|
||||
#undef NEW_FRAME_BUTTON_NAME
|
||||
#define NEW_FRAME_BUTTON_NAME "custom_game_create_"
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME NEW_FRAME_BUTTON_NAME
|
||||
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME custom_game_create
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "custom_game"
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_SMALL
|
||||
#endif //PC
|
||||
|
||||
#define CHOICE1_TEXT "@MPUI_RULES_TIME_LIMIT_CAPS"
|
||||
#define CHOICE1_DESC "@CUSTOM_GAME_TIME_LIMIT_DESC"
|
||||
#define CHOICE1_DVAR "custom_timelimit"
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_2_5MINUTES_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_3MINUTES_CAPS"
|
||||
#define CHOICE1_STR4 "@MPUI_RULES_5MINUTES_CAPS"
|
||||
#define CHOICE1_STR5 "@MPUI_RULES_8MINUTES_CAPS"
|
||||
#define CHOICE1_STR6 "@MPUI_RULES_10MINUTES_CAPS"
|
||||
#define CHOICE1_STR7 "@MPUI_RULES_15MINUTES_CAPS"
|
||||
#define CHOICE1_STR8 "@MPUI_RULES_20MINUTES_CAPS"
|
||||
#define CHOICE1_STR9 "@MPUI_RULES_30MINUTES_CAPS"
|
||||
#define CHOICE1_STR10 ""
|
||||
#define CHOICE1_STR11 ""
|
||||
#define CHOICE1_STR12 ""
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 2.5
|
||||
#define CHOICE1_VAL3 3
|
||||
#define CHOICE1_VAL4 5
|
||||
#define CHOICE1_VAL5 8
|
||||
#define CHOICE1_VAL6 10
|
||||
#define CHOICE1_VAL7 15
|
||||
#define CHOICE1_VAL8 20
|
||||
#define CHOICE1_VAL9 30
|
||||
#define CHOICE1_VAL10 0
|
||||
#define CHOICE1_VAL11 0
|
||||
#define CHOICE1_VAL12 0
|
||||
#define CHOICE1_EXEC ;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_NUMVALS 9
|
||||
#define CHOICE1_POPUP 1
|
||||
|
||||
#define CHOICE2_TEXT "@MPUI_RULES_SCORE_LIMIT_CAPS"
|
||||
#define CHOICE2_DESC "@CUSTOM_GAME_SCORE_LIMIT_DESC"
|
||||
#define CHOICE2_DVAR "custom_scorelimit"
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE2_STR2 "@MPUI_RULES_30POINTS_CAPS"
|
||||
#define CHOICE2_STR3 "@MPUI_RULES_50POINTS_CAPS"
|
||||
#define CHOICE2_STR4 "@MPUI_RULES_70POINTS_CAPS"
|
||||
#define CHOICE2_STR5 "@MPUI_RULES_100POINTS_CAPS"
|
||||
#define CHOICE2_STR6 "@MPUI_RULES_200POINTS_CAPS"
|
||||
#define CHOICE2_STR7 "@MPUI_RULES_250POINTS_CAPS"
|
||||
#define CHOICE2_STR8 "@MPUI_RULES_300POINTS_CAPS"
|
||||
#define CHOICE2_STR9 "@MPUI_RULES_500POINTS_CAPS"
|
||||
#define CHOICE2_STR10 "@MPUI_RULES_700POINTS_CAPS"
|
||||
#define CHOICE2_STR11 "@MPUI_RULES_750POINTS_CAPS"
|
||||
#define CHOICE2_STR12 "@MPUI_RULES_1000POINTS_CAPS"
|
||||
#define CHOICE2_VAL1 0
|
||||
#define CHOICE2_VAL2 30
|
||||
#define CHOICE2_VAL3 50
|
||||
#define CHOICE2_VAL4 70
|
||||
#define CHOICE2_VAL5 100
|
||||
#define CHOICE2_VAL6 200
|
||||
#define CHOICE2_VAL7 250
|
||||
#define CHOICE2_VAL8 300
|
||||
#define CHOICE2_VAL9 500
|
||||
#define CHOICE2_VAL10 700
|
||||
#define CHOICE2_VAL11 750
|
||||
#define CHOICE2_VAL12 1000
|
||||
#define CHOICE2_EXEC ;
|
||||
#define CHOICE2_STRLIST { CHOICE2_STR1 CHOICE2_VAL1 CHOICE2_STR2 CHOICE2_VAL2 CHOICE2_STR3 CHOICE2_VAL3 CHOICE2_STR4 CHOICE2_VAL4 CHOICE2_STR5 CHOICE2_VAL5 CHOICE2_STR6 CHOICE2_VAL6 CHOICE2_STR7 CHOICE2_VAL7 CHOICE2_STR8 CHOICE2_VAL8 CHOICE2_STR9 CHOICE2_VAL9 CHOICE2_STR10 CHOICE2_VAL10 CHOICE2_STR11 CHOICE2_VAL11 CHOICE2_STR12 CHOICE2_VAL12 }
|
||||
#define CHOICE2_NUMVALS 12
|
||||
#define CHOICE2_POPUP 1
|
||||
#define CHOICE2_VIS ( dvarString( ui_gametype ) == "dom" || dvarString( ui_gametype ) == "koth" )
|
||||
|
||||
#define CHOICE2_ALT_TEXT "@MPUI_RULES_SCORE_LIMIT_CAPS"
|
||||
#define CHOICE2_ALT_DVAR "custom_scorelimit"
|
||||
#define CHOICE2_ALT_DVARTEXT CHOICE2_ALT_DVAR"_text"
|
||||
#define CHOICE2_ALT_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE2_ALT_STR2 "@MPUI_RULES_750POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR3 "@MPUI_RULES_1000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR4 "@MPUI_RULES_1500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR5 "@MPUI_RULES_2500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR6 "@MPUI_RULES_3000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR7 "@MPUI_RULES_5000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR8 "@MPUI_RULES_7000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR9 "@MPUI_RULES_7500POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR10 "@MPUI_RULES_10000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR11 "@MPUI_RULES_15000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_STR12 "@MPUI_RULES_30000POINTS_CAPS"
|
||||
#define CHOICE2_ALT_VAL1 0
|
||||
#define CHOICE2_ALT_VAL2 750
|
||||
#define CHOICE2_ALT_VAL3 1000
|
||||
#define CHOICE2_ALT_VAL4 1500
|
||||
#define CHOICE2_ALT_VAL5 2500
|
||||
#define CHOICE2_ALT_VAL6 3000
|
||||
#define CHOICE2_ALT_VAL7 5000
|
||||
#define CHOICE2_ALT_VAL8 7000
|
||||
#define CHOICE2_ALT_VAL9 7500
|
||||
#define CHOICE2_ALT_VAL10 10000
|
||||
#define CHOICE2_ALT_VAL11 15000
|
||||
#define CHOICE2_ALT_VAL12 30000
|
||||
#define CHOICE2_ALT_EXEC ;
|
||||
#define CHOICE2_ALT_STRLIST { CHOICE2_ALT_STR1 CHOICE2_ALT_VAL1 CHOICE2_ALT_STR2 CHOICE2_ALT_VAL2 CHOICE2_ALT_STR3 CHOICE2_ALT_VAL3 CHOICE2_ALT_STR4 CHOICE2_ALT_VAL4 CHOICE2_ALT_STR5 CHOICE2_ALT_VAL5 CHOICE2_ALT_STR6 CHOICE2_ALT_VAL6 CHOICE2_ALT_STR7 CHOICE2_ALT_VAL7 CHOICE2_ALT_STR8 CHOICE2_ALT_VAL8 CHOICE2_ALT_STR9 CHOICE2_ALT_VAL9 CHOICE2_ALT_STR10 CHOICE2_ALT_VAL10 CHOICE2_ALT_STR11 CHOICE2_ALT_VAL11 CHOICE2_ALT_STR12 CHOICE2_ALT_VAL12 }
|
||||
#define CHOICE2_ALT_NUMVALS 12
|
||||
#define CHOICE2_ALT_POPUP 1
|
||||
#define CHOICE2_ALT_VIS ( dvarString( ui_gametype ) == "dm" || dvarString( ui_gametype ) == "tdm" )
|
||||
|
||||
#define IS_CHOICE2_VIS ( CHOICE2_VIS || CHOICE2_ALT_VIS )
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
execNow checkIfCustomGametypeChanged; \
|
||||
close self;
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name custom_game_create
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
visible when( MenuHasFocus() || dvarBool( ui_custom_save_to_file_share ) )
|
||||
onOpen
|
||||
{
|
||||
execnow ui_animate custom_game_create * highlightOff 0;
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
execNow beginCustomGametypeChanges;
|
||||
|
||||
if( IS_CHOICE2_VIS )
|
||||
{
|
||||
setLocalVarInt custom_shift_options_up 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
setLocalVarInt custom_shift_options_up 1;
|
||||
}
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
execNow checkIfCustomGametypeChanged;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
|
||||
execNow endCustomGametypeChanges;
|
||||
if( dvarBool( "ui_custom_haschanged" ) )
|
||||
{
|
||||
setdvar customGameMode 1;
|
||||
execNow "xupdatepartystate";
|
||||
}
|
||||
setLocalVarBool ui_choice_hideaccept 0;
|
||||
}
|
||||
|
||||
NEW_FRAME( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
NEW_FRAME_TITLE( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, "@CUSTOM_GAME_CREATE_CAPS", 1 )
|
||||
NEW_FRAME_SUBTITLE( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, CUSTOM_GAMETYPE_NAME, 1 )
|
||||
|
||||
CUSTOM_MODE_BACKGROUND_WATERMARK
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, CHOICE1_DVAR, CHOICE1_STRLIST, exec checkIfCustomGametypeChanged; CHOICE1_EXEC, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, 1 )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_TEXT, CHOICE2_DVAR, CHOICE2_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_VIS )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, CHOICE2_ALT_DVAR, CHOICE2_ALT_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_ALT_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_ALT_VIS )
|
||||
|
||||
#define SHOULD_SHIFT_CHOICES_UP ( localVarInt( custom_shift_options_up ) > 0 )
|
||||
|
||||
#define GAME_MODE_RULES_ACTION \
|
||||
exec openMenu ( "custom_settings_" + dvarString( "ui_gametype" ) );
|
||||
|
||||
#define BUTTON_3( itemIndex, visArg ) \
|
||||
CUSTOM_BUTTON( itemIndex, "@CUSTOM_GAME_MODE_OPTIONS_CAPS", GAME_MODE_RULES_ACTION, "@CUSTOM_GAME_MODE_OPTIONS_DESC", "", visArg )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_3( 2, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_3( 3, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
#define BUTTON_4( itemIndex, visArg ) \
|
||||
CUSTOM_BUTTON( itemIndex, "@CUSTOM_GENERAL_OPTIONS_CAPS", open "custom_settings_general", "@CUSTOM_GENERAL_OPTIONS_DESC", "", visArg )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_4( 3, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_4( 4, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
#define CUSTOM_OPTION_HIDEACCEPT( dvarName, dvarValue ) \
|
||||
if( dvarInt( dvarName ) == dvarValue ) \
|
||||
{ \
|
||||
setLocalVarBool ui_choice_hideaccept 0; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
setLocalVarBool ui_choice_hideaccept 1; \
|
||||
}
|
||||
|
||||
#define CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( dvarName, enabledValue, disabledString, enabledString ) \
|
||||
if( dvarInt( dvarName ) != enabledValue ) \
|
||||
{ \
|
||||
execnow set ui_choice_desc ( disabledString ); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execnow set ui_choice_desc ( enabledString ); \
|
||||
}
|
||||
|
||||
#define CUSTOM_OPTION_LEAVE_FOCUS \
|
||||
CLEAR_CHOICE_DESC \
|
||||
setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CUSTOM_OPTION_EXTRA( dvarName, dvarValue, menuName ) \
|
||||
execKeyInt BUTTON_A \
|
||||
{ \
|
||||
if( dvarInt( dvarName ) == dvarValue ) \
|
||||
{ \
|
||||
open menuName; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CUSTOM_CLASS_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_CLASS_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_class_mode, 1 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_class_mode, 1, "@CUSTOM_CLASS_EDITOR_DISABLED_DESC", "@CUSTOM_CLASS_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_CLASS_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_class_mode, 1, "@CUSTOM_CLASS_EDITOR_DISABLED_DESC", "@CUSTOM_CLASS_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_class_mode, 1 ) \
|
||||
if( dvarInt( custom_class_mode ) == 1 ) \
|
||||
{ \
|
||||
execNow reset scr_player_healthregentime; \
|
||||
} \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_5( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_CLASS_EDITOR_CAPS", custom_class_mode, \
|
||||
{ "@CUSTOM_ALLOW_PLAYER_CLASSES_CAPS" 0 "@CUSTOM_CUSTOM_CLASSES_CAPS" 1 }, \
|
||||
CUSTOM_CLASS_ACTION, \
|
||||
CUSTOM_CLASS_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( custom_class_mode, 1, "custom_classes" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_5( 4, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 4, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_classes", when(dvarInt(custom_class_mode) == 1 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_5( 5, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 5, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_classes", when(dvarInt(custom_class_mode) == 1 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
#define CUSTOM_KILLSTREAK_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_KILLSTREAK_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_killstreak_mode, 2 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_killstreak_mode, 2, "@CUSTOM_KILLSTREAK_EDITOR_DISABLED_DESC", "@CUSTOM_KILLSTREAK_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_KILLSTREAK_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( custom_killstreak_mode, 2, "@CUSTOM_KILLSTREAK_EDITOR_DISABLED_DESC", "@CUSTOM_KILLSTREAK_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( custom_killstreak_mode, 2 ) \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_6( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_KILLSTREAK_EDITOR", custom_killstreak_mode, \
|
||||
{ "@MPUI_ALLOW_PLAYER_KILLSTREAKS_CAPS" 0 "@MPUI_NO_KILLSTREAKS_CAPS" 1 "@MPUI_CUSTOM_KILLSTREAKS_CAPS" 2 }, \
|
||||
CUSTOM_KILLSTREAK_ACTION, \
|
||||
CUSTOM_KILLSTREAK_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( custom_killstreak_mode, 2, "custom_killstreaks" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_6( 5, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 5, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_killstreaks", when(dvarInt(custom_killstreak_mode) == 2 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_6( 6, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 6, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_killstreaks", when(dvarInt(custom_killstreak_mode) == 2 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
#define CUSTOM_PERK_ON_FOCUS \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_PERK_EDITOR_DESC", "" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( scr_game_perks, 1 ) \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( scr_game_perks, 1, "@CUSTOM_PERK_EDITOR_DISABLED_DESC", "@CUSTOM_PERK_EDITOR_DESC" )
|
||||
|
||||
#define CUSTOM_PERK_ACTION \
|
||||
CUSTOM_OPTION_SHOW_DISABLED_TOOLTIP( scr_game_perks, 1, "@CUSTOM_PERK_EDITOR_DISABLED_DESC", "@CUSTOM_PERK_EDITOR_DESC" ) \
|
||||
CUSTOM_OPTION_HIDEACCEPT( scr_game_perks, 1 ) \
|
||||
exec checkIfCustomGametypeChanged;
|
||||
|
||||
#define BUTTON_7( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS_EX(itemIndex, "@CUSTOM_PERK_EDITOR_CAPS", scr_game_perks, \
|
||||
{ "@CUSTOM_DISABLE_PERKS_CAPS" 0 "@CUSTOM_ENABLE_PERKS_CAPS" 1 }, \
|
||||
CUSTOM_PERK_ACTION, \
|
||||
CUSTOM_PERK_ON_FOCUS, CUSTOM_OPTION_LEAVE_FOCUS, visArg, ;, \
|
||||
CUSTOM_OPTION_EXTRA( scr_game_perks, 1, "custom_specialty_editor" ); )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_7( 6, SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 6, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_specialty_editor", when(dvarInt(scr_game_perks) == 1 && SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_7( 7, !SHOULD_SHIFT_CHOICES_UP )
|
||||
#ifdef PC
|
||||
SIMPLE_CHOICE_RECT_OFFSET_BUTTON_SOUND( 7, 6, "@PLATFORM_EDIT", ITEM_ALIGN_MIDDLE_CENTER, open "custom_specialty_editor", when(dvarInt(scr_game_perks) == 1 && !SHOULD_SHIFT_CHOICES_UP ), 20, CHOICE_SIZE_Y )
|
||||
#endif //PC
|
||||
|
||||
// Game Recording Option (on/off)
|
||||
#define BUTTON_8( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( itemIndex, "@CUSTOM_GAME_RECORDING_CAPS", demo_recordPrivateMatch, \
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 }, \
|
||||
play CHOICE_FOCUS_SOUND;, \
|
||||
SET_CHOICE_DESC( "", "@CUSTOM_GAME_RECORDING_DESC", "" ), \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg && ( dvarInt( xblive_privatematch ) ) )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_8( 7, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_8( 8, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( NEW_FRAME_CHOICE_X_START (NEW_FRAME_CHOICE_Y_START + 230) CHOICE_SIZE_X 60 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0,
|
||||
"@CUSTOM_WARN_DEMO_SIZE",
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_ORANGE_RGB 1,
|
||||
when( dvarInt( xblive_privatematch ) && dvarBool( demo_recordPrivateMatch ) ), autowrapped );
|
||||
|
||||
#ifdef PC
|
||||
// Pregame Enabled (yes/no)
|
||||
#define BUTTON_9( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( itemIndex, "@PATCH_PREGAME_ENABLED_CAPS", g_pregame_enabled, \
|
||||
play CHOICE_FOCUS_SOUND;, \
|
||||
SET_CHOICE_DESC( "", "@PLATFORM_PREGAME_ENABLED_DESC", "" );, \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg, ; )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#define CHOICE_SEP_4 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_9( 8, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#define CHOICE_SEP_4 8
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_9( 9, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
// Pregame Minplayers (edit)
|
||||
#define BUTTON_10( itemIndex, visArg ) \
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( itemIndex, "@PATCH_PREGAME_MINPLAYERS_CAPS", party_minplayers, 3, \
|
||||
;, \
|
||||
SET_CHOICE_DESC( "", "@PLATFORM_PREGAME_MINPLAYERS_DESC", "" );, \
|
||||
CLEAR_CHOICE_DESC, \
|
||||
visArg, ; )
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 3
|
||||
#define CHOICE_SEP_3 6
|
||||
#define CHOICE_SEP_4 7
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_10( 9, SHOULD_SHIFT_CHOICES_UP )
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#undef CHOICE_SEP_3
|
||||
#undef CHOICE_SEP_4
|
||||
#define CHOICE_SEP_1 2
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_SEP_3 7
|
||||
#define CHOICE_SEP_4 8
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
BUTTON_10( 10, !SHOULD_SHIFT_CHOICES_UP )
|
||||
|
||||
CUSTOM_BUTTON( 14, "@CUSTOM_REVERT_CHANGES_CAPS", open popup_custom_confirm_revert;, "@CUSTOM_REVERT_CHANGES_DESC", "", 1 )
|
||||
#endif //#ifdef PC
|
||||
|
||||
CUSTOM_FRAME_HINT( ui_choice_desc )
|
||||
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, ON_ESC )
|
||||
SAVE_TO_FILESHARE_BUTTON_NEW_FRAME_ACTION( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
SAVE_TO_FILESHARE_BUTTON_NEW_FRAME( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
|
||||
#ifndef PC
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect ( 180 ) ( CUSTOM_MODE_FRAME_HEIGHT / 2 + 18 ) 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
origin 0 0
|
||||
text "@CUSTOM_BUTTON_REVERT_CHANGES"
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
execkeyint BUTTON_Y
|
||||
{
|
||||
open popup_custom_confirm_revert;
|
||||
}
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
CUSTOM_MODE_RESET_TO_DEFAULT_BUTTON( CUSTOM_MODE_FRAME_WIDTH, CUSTOM_MODE_FRAME_HEIGHT, -76, open popup_custom_confirm_revert;, dvarBool( ui_custom_haschanged ) || dvarBool( customGameMode ) )
|
||||
|
||||
execKeyInt BUTTON_X
|
||||
{
|
||||
close self;
|
||||
UPLOAD_TO_FILESHARE
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
#define SAVE_ORIGINAL_SETTINGS_PC \
|
||||
exec set orig_host_name ( dvarString( sv_hostname ) ); \
|
||||
exec set orig_min_ping ( dvarInt( sv_minping ) ); \
|
||||
exec set orig_max_ping ( dvarInt( sv_maxping ) ); \
|
||||
exec set orig_password ( dvarString( g_password ) ); \
|
||||
exec set orig_voice ( dvarInt( sv_voice ) ); \
|
||||
exec set orig_allow_vote ( dvarInt( g_allowVote ) ); \
|
||||
exec set orig_sv_vac ( dvarInt( sv_vac ) );
|
||||
#else
|
||||
#define SAVE_ORIGINAL_SETTINGS_PC
|
||||
#endif
|
||||
|
||||
#define SAVE_ORIGINAL_SETTINGS \
|
||||
exec set orig_time ( dvarFloat( ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ) ); \
|
||||
exec set orig_score ( dvarInt( ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ) ); \
|
||||
exec set temp_time ( dvarFloat( ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ) ); \
|
||||
exec set temp_score ( dvarInt( ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ) ); \
|
||||
exec set orig_num_bots_friendly ( dvarInt( bot_friends ) ); \
|
||||
exec set orig_num_bots_enemy ( dvarInt( bot_enemies ) ); \
|
||||
exec set orig_bot_difficulty ( dvarString( bot_difficulty ) ); \
|
||||
exec set orig_bot_show_tips ( dvarInt( bot_tips ) ); \
|
||||
exec set orig_botUseFriendNames ( dvarInt( sv_botUseFriendNames ) ); \
|
||||
SAVE_ORIGINAL_SETTINGS_PC
|
||||
|
||||
#define SAVE_TIME_AND_SCORE \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ( dvarFloat( temp_time ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( temp_score ) );
|
||||
|
||||
#ifdef PC
|
||||
#define RESET_TO_ORIGINAL_SETTINGS_PC \
|
||||
exec set sv_hostname ( dvarString( orig_host_name ) ); \
|
||||
exec set sv_minping ( dvarInt( orig_min_ping ) ); \
|
||||
exec set sv_maxping ( dvarInt( orig_max_ping ) ); \
|
||||
exec set g_password ( dvarString( orig_password ) ); \
|
||||
exec set sv_voice ( dvarInt( orig_voice ) ); \
|
||||
exec set g_allowVote ( dvarInt( orig_allow_vote ) ); \
|
||||
exec set sv_vac ( dvarInt( orig_sv_vac ) );
|
||||
#else
|
||||
#define RESET_TO_ORIGINAL_SETTINGS_PC
|
||||
#endif
|
||||
|
||||
#define RESET_TO_ORIGINAL_SETTINGS \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( orig_score ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_timelimit" ) ( dvarFloat( orig_time ) ); \
|
||||
exec set ( "scr_" + dvarString( ui_gametype ) + "_scorelimit" ) ( dvarInt( orig_score ) ); \
|
||||
exec set temp_time ( dvarFloat( orig_time ) ); \
|
||||
exec set temp_score ( dvarInt( orig_score ) ); \
|
||||
exec set bot_friends ( dvarInt( orig_num_bots_friendly ) ); \
|
||||
exec set bot_enemies ( dvarInt( orig_num_bots_enemy ) ); \
|
||||
exec set bot_difficulty ( dvarString( orig_bot_difficulty ) ); \
|
||||
exec set bot_tips ( dvarInt( orig_bot_show_tips ) ); \
|
||||
exec set sv_botUseFriendNames ( dvarInt( orig_botUseFriendNames ) ); \
|
||||
RESET_TO_ORIGINAL_SETTINGS_PC
|
||||
|
||||
#undef CHOICE_SEP_1
|
||||
#undef CHOICE_SEP_2
|
||||
#include "ui/choices_sep_spacing.inc"
|
||||
|
||||
#ifdef PC
|
||||
#define BUTTON_SPACING 20
|
||||
#define REVERT_CHANGES_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
|
||||
#define BASIC_TRAINING_REVERT_CHANGES_BUTTON( FRAME_WIDTH, FRAME_HEIGHT, xArg, actionArg, visArg ) \
|
||||
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( FRAME_WIDTH, FRAME_HEIGHT, REVERT_CHANGES_OFFSET, "@PLATFORM_REVERT_CHANGES", actionArg, visArg )
|
||||
#else // #ifdef PC
|
||||
#define BASIC_TRAINING_REVERT_CHANGES_BUTTON( FRAME_WIDTH, FRAME_HEIGHT, xArg, actionArg, visArg ) \
|
||||
itemDef \
|
||||
{ \
|
||||
type ITEM_TYPE_BUTTON \
|
||||
rect ( xArg ) ( FRAME_HEIGHT / 2 + 18 ) 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
origin 0 0 \
|
||||
text "@PLATFORM_REVERT_CHANGES" \
|
||||
textfont CHOICE_TEXTFONT \
|
||||
textscale TEXTSIZE_DEFAULT \
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT \
|
||||
execkeyint BUTTON_BACK \
|
||||
{ \
|
||||
actionArg \
|
||||
} \
|
||||
visible when( visArg ) \
|
||||
decoration \
|
||||
}
|
||||
#endif // #else // #ifdef PC
|
||||
|
||||
#undef NEW_FRAME_BUTTON_NAME
|
||||
#define NEW_FRAME_BUTTON_NAME "basictraining_settings_"
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "basictraining_settings_"
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
#endif //PC
|
||||
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME basictraining_settings
|
||||
menuDef
|
||||
{
|
||||
name basictraining_settings
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
execnow ui_animate basictraining_settings * highlightOff 0;
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
execnow "Updatedvarsfromprofile";
|
||||
SAVE_ORIGINAL_SETTINGS
|
||||
|
||||
exec "set com_maxclients 30";
|
||||
exec "set sv_maxclients 30";
|
||||
exec "set party_maxplayers 30";
|
||||
exec "set sv_minping 0";
|
||||
exec "set sv_vac 0";
|
||||
exec "set bot_tips 0";
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
close self;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
SAVE_TIME_AND_SCORE
|
||||
exec "updategamerprofile";
|
||||
deactivateBlur;
|
||||
}
|
||||
|
||||
NEW_FRAME( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT )
|
||||
NEW_FRAME_TITLE( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, "@MPUI_BASICTRAINING_SETTINGS_CAPS", 1 )
|
||||
|
||||
|
||||
#undef A_BUTTON_OFFSET_X
|
||||
#define A_BUTTON_OFFSET_X 100000
|
||||
|
||||
#define IS_WAGER_GAME \
|
||||
( dvarString( "ui_gametype" ) == "hlnd" || dvarString( "ui_gametype" ) == "oic" || dvarString( "ui_gametype" ) == "gun" || dvarString( "ui_gametype" ) == "shrp" )
|
||||
|
||||
#define IS_TEAM_GAME \
|
||||
( dvarString( "ui_gametype" ) == "tdm" || dvarString( "ui_gametype" ) == "hc_tdm" || dvarString( "ui_gametype" ) == "sd" || dvarString( "ui_gametype" ) == "dom" || dvarString( "ui_gametype" ) == "koth" || dvarString( "ui_gametype" ) == "dem" || dvarString( "ui_gametype" ) == "ctf" || dvarString( "ui_gametype" ) == "sab" )
|
||||
|
||||
#define IS_FFA_GAME \
|
||||
( dvarString( "ui_gametype" ) == "dm" || dvarString( "ui_gametype" ) == "hc_dm" )
|
||||
|
||||
#define BALANCE_TEAMS_FRIENDLY \
|
||||
if( dvarInt( bot_friends ) + dvarInt( bot_enemies ) > dvarInt( party_maxplayers ) ) \
|
||||
{ \
|
||||
exec set bot_enemies ( dvarInt( party_maxplayers ) - dvarInt( bot_friends ) ); \
|
||||
} \
|
||||
|
||||
#define BALANCE_TEAMS_ENEMY \
|
||||
if( dvarInt( bot_enemies ) + dvarInt( bot_friends ) > dvarInt( party_maxplayers ) ) \
|
||||
{ \
|
||||
exec set bot_friends ( dvarInt( party_maxplayers ) - dvarInt( bot_enemies ) ); \
|
||||
} \
|
||||
|
||||
// tdm & hardcore tdm
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, temp_time, CHOICE1_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ), CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_TEXT, temp_score, CHOICE2_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_VIS && IS_TEAM_GAME )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, temp_score, CHOICE2_ALT_STRLIST, exec checkIfCustomGametypeChanged; CHOICE2_ALT_EXEC, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ) setLocalVarBool ui_choice_hideaccept 1;, CLEAR_CHOICE_DESC setLocalVarBool ui_choice_hideaccept 0;, CHOICE2_ALT_VIS && IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 3, "@MPUI_FRIENDLY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_friends,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_FRIENDLY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_FRIENDLY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@MPUI_FRIENDLY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_friends_extra,
|
||||
{ "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 "19" 19 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_FRIENDLY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 5, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 6, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 7, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 8, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 9, "REASONABLE SETUPS",
|
||||
bot_reasonable,
|
||||
{ "DISABLED" 0 "ENABLED" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "Bots will only use weapons, perks and killstreaks that are 'good' and/or 'overpowered' for themselves.", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_TEAM_GAME )
|
||||
|
||||
// ffa & hardcore ffa
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, CHOICE1_TEXT, temp_time, CHOICE1_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE1_DESC, "" ), CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, CHOICE2_ALT_TEXT, temp_score, CHOICE2_ALT_STRLIST, ;, SET_CHOICE_DESC( "", CHOICE2_DESC, "" ), CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 3, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 5, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 6, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 7, "REASONABLE SETUPS",
|
||||
bot_reasonable,
|
||||
{ "DISABLED" 0 "ENABLED" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "Bots will only use weapons, perks and killstreaks that are 'good' and/or 'overpowered' for themselves.", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_FFA_GAME )
|
||||
|
||||
// wager matches
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 1, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies,
|
||||
{ "@MPUI_1_BOTS" 1 "@MPUI_2_BOTS" 2 "@MPUI_3_BOTS" 3 "@MPUI_4_BOTS" 4 "@MPUI_5_BOTS" 5 "@MPUI_6_BOTS" 6 "@MPUI_7_BOTS" 7 "@MPUI_8_BOTS" 8 "@MPUI_9_BOTS" 9 "@MPUI_10_BOTS" 10 "@MPUI_11_BOTS" 11 },
|
||||
BALANCE_TEAMS_ENEMY;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 2, "@MPUI_ENEMY_PRACTICE_DUMMIES_CAPS",
|
||||
bot_enemies_extra,
|
||||
{ "-1" -1 "0" 0 "1" 1 "2" 2 "3" 3 "4" 4 "5" 5 "6" 6 "7" 7 "8" 8 "9" 9 "10" 10 "11" 11 "12" 12 "13" 13 "14" 14 "15" 15 "16" 16 "17" 17 "18" 18 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_ENEMY_PRACTICE_DUMMIES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARSTRINGLIST_FOCUS_VIS( 3, "@MENU_BASICTRAINING_DIFFICULTY_CAPS",
|
||||
bot_difficulty,
|
||||
{ "@MENU_BASICTRAINING_EASY_CAPS" easy "@MENU_BASICTRAINING_NORMAL_CAPS" normal "@MENU_BASICTRAINING_HARD_CAPS" hard "@MENU_BASICTRAINING_FU_CAPS" fu },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_DIFFICULTY_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_FOCUS_VIS( 4, "@PLATFORM_BASICTRAINING_FRIEND_NAMES_CAPS",
|
||||
sv_botUseFriendNames,
|
||||
{ "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1 },
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@MPUI_BASICTRAINING_FRIEND_NAMES_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, IS_WAGER_GAME )
|
||||
|
||||
#undef CHOICE_DVAR_WIDTH_OFFSET
|
||||
#define CHOICE_DVAR_WIDTH_OFFSET 60
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 10, "@PLATFORM_SERVER_NAME_CAPS",
|
||||
"sv_hostname", 20, 20,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_SERVER_NAME_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 11, "@PLATFORM_MAXIMUM_PING_CAPS",
|
||||
"sv_maxping", 4,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MAXIMUM_PING_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 12, "@PLATFORM_PASSWORD1_CAPS",
|
||||
"g_password", 12, 12,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_PASSWORD_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 13, "@PLATFORM_VOICECHAT_CAPS",
|
||||
"sv_voice",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_VOICECHAT_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
#undef CHOICE_TEXT_COLOR
|
||||
#define CHOICE_TEXT_COLOR 1 1 1 1
|
||||
|
||||
#undef A_BUTTON_OFFSET_X
|
||||
#define A_BUTTON_OFFSET_X 0
|
||||
|
||||
CUSTOM_FRAME_HINT( ui_choice_desc )
|
||||
|
||||
BASIC_TRAINING_REVERT_CHANGES_BUTTON( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, -76, open popup_basictraining_confirm_revert;, 1 )
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT, close self; )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( NEW_FRAME_DEFAULT_WIDTH, NEW_FRAME_DEFAULT_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
}
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
|
||||
// mekberg: No idea why the above include is not setting this. I've wasted a half hour trying to figure why. Instead I'm just going to hack this here.
|
||||
#ifdef PC
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X (POPUP_WIDTH-(POPUP_SIDE_PAD*2))
|
||||
#endif // PC
|
||||
|
||||
menuDef
|
||||
{
|
||||
#define CUSTOM_ERROR_ONESC \
|
||||
uiScript clearError; \
|
||||
close self;
|
||||
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_custom_game_error, ;, CUSTOM_ERROR_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( dvarString( "com_errorTitle" ), 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( dvarString( "com_errorMessage" ), 1 )
|
||||
|
||||
#define CUSTOM_ERROR_ACTION \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
uiScript clearError; \
|
||||
close self;
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, "@MENU_EXIT", CUSTOM_ERROR_ACTION, play CHOICE_FOCUS_SOUND, ;, 1, ; )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "popup_custom_confirm_revert", setfocus popup_custom_confirm_revert_2, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@CUSTOM_REVERT_CHANGES_CONFIRM_TITLE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES_CAPS", execNow "revertCustomGametypeChanges"; exec "xupdatepartystate"; close self, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO_CAPS", close self, 1, name popup_custom_confirm_revert_2 )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "popup_basictraining_confirm_revert", setfocus popup_basictraining_confirm_revert_2, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_REVERT_BASICTRAINING_CONFIRM_TITLE", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", RESET_TO_ORIGINAL_SETTINGS close self, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name popup_basictraining_confirm_revert_2 )
|
||||
|
||||
#ifndef PC
|
||||
SYSTEM_POPUP_BACK_BUTTON
|
||||
#endif //#ifndef PC
|
||||
}
|
||||
}
|
423
mods/mp_patch/ui_mp/custom_settings_general.menu
Normal file
423
mods/mp_patch/ui_mp/custom_settings_general.menu
Normal file
@ -0,0 +1,423 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/custom_mode.inc"
|
||||
|
||||
#define IS_TEAM_MODE \
|
||||
( dvarString( "ui_gametype" ) != "dm" )
|
||||
|
||||
#define GAME_OPTIONS_MENU_NAME "custom_settings_general"
|
||||
#define MENUDEF_NAME custom_settings_general
|
||||
#define CUSTOM_GAME_OPTIONS_TITLE "@CUSTOM_GENERAL_OPTIONS_CAPS"
|
||||
|
||||
#define CHOICE1_TEXT "@CUSTOM_OPT_HARDCORE"
|
||||
#define CHOICE1_DESC "@CUSTOM_OPT_HARDCORE_DESC"
|
||||
#define CHOICE1_DVAR "scr_hardcore"
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_EXEC1 execNowOnDvarIntValue scr_hardcore 0 "exec hardcore_disable.cfg";
|
||||
#define CHOICE1_EXEC2 execNowOnDvarIntValue scr_hardcore 1 "exec hardcore_settings.cfg";
|
||||
#define CHOICE1_STRLIST { "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1}
|
||||
#define CHOICE1_EXEC play CHOICE_FOCUS_SOUND; CHOICE1_EXEC1 CHOICE1_EXEC2
|
||||
#define CHOICE1_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE1_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CHOICE2_TEXT "@CUSTOM_OPT_KILLCAM"
|
||||
#define CHOICE2_DESC "@CUSTOM_OPT_KILLCAM_DESC"
|
||||
#define CHOICE2_DVAR "scr_game_allowkillcam"
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_SHOW 1
|
||||
#define CHOICE2_STRLIST { "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1}
|
||||
#define CHOICE2_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE2_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CHOICE3_TEXT "@CUSTOM_OPT_HEADSHOTS_ONLY"
|
||||
#define CHOICE3_DESC "@CUSTOM_OPT_HEADSHOT_ONLY_DESC"
|
||||
#define CHOICE3_DVAR "scr_game_onlyheadshots"
|
||||
#define CHOICE3_DVARTEXT CHOICE3_DVAR"_text"
|
||||
#define CHOICE3_SHOW 1
|
||||
#define CHOICE3_STRLIST { "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1}
|
||||
#define CHOICE3_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE3_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CHOICE4_TEXT "@CUSTOM_OPT_ALLOW_SPRINT"
|
||||
#define CHOICE4_DESC "@CUSTOM_OPT_ALLOW_SPRINT_DESC"
|
||||
#define CHOICE4_DVAR "scr_player_sprintTime"
|
||||
#define CHOICE4_DVARTEXT CHOICE4_DVAR"_text"
|
||||
#define CHOICE4_SHOW 1
|
||||
#define CHOICE4_STRLIST { "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 4}
|
||||
#define CHOICE4_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE4_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CHOICE_SEP_1 4
|
||||
|
||||
#define CHOICE_EXTRA \
|
||||
CUSTOM_BUTTON( 5, "@CUSTOM_RESPAWN_OPTIONS", execNow openMenu "popup_respawn_settings";, "@CUSTOM_RESPAWN_OPTIONS_DESC", "", 1 ) \
|
||||
CUSTOM_BUTTON( 6, "@CUSTOM_LIVES_AND_HEALTH_OPTIONS", execNow openMenu "popup_lives_and_health_settings";, "@CUSTOM_LIVES_AND_HEALTH_OPTIONS_DESC", "", 1 ) \
|
||||
CUSTOM_BUTTON( 7, "@CUSTOM_TEAM_OPTIONS", execNow openMenu "popup_team_settings";, "@CUSTOM_TEAM_OPTIONS_DESC", "", IS_TEAM_MODE ) \
|
||||
CUSTOM_BUTTON( 7, "@CUSTOM_FFA_SPECTATE_OPTIONS", execNow openMenu "popup_ffa_spectate_settings";, "@CUSTOM_FFA_SPECTATE_OPTIONS_DESC", "", !IS_TEAM_MODE ) \
|
||||
|
||||
{
|
||||
#include "ui_mp/custom_game_options.inc"
|
||||
}
|
||||
|
||||
#define CUSTOM_OPTION_POPUP_WIDTH 320
|
||||
#define CUSTOM_OPTION_POPUP_HEIGHT 195
|
||||
|
||||
#define CUSTOM_OPTION_POPUP_HINT_Y_OFFSET 70
|
||||
|
||||
#define CUSTOM_OPTION_POPUP_DVAR_OFFSET_X 110
|
||||
|
||||
//***********************************************************************************
|
||||
// Respawn Settings
|
||||
//***********************************************************************************
|
||||
#undef MENUDEF_NAME
|
||||
#define CUSTOM_OPTIONS_POPUP_MENU_NAME "popup_respawn_settings"
|
||||
#define MENUDEF_NAME popup_respawn_settings
|
||||
#define CUSTOM_OPTIONS_POPUP_TITLE "@CUSTOM_RESPAWN_OPTIONS"
|
||||
#define CUSTOM_OPTIONS_POPUP_NUM_ITEMS 3
|
||||
|
||||
#define CHOICE1_TEXT "@CUSTOM_RESPAWN_DELAY"
|
||||
#define CHOICE1_DESC "@CUSTOM_RESPAWN_DELAY_DESC"
|
||||
#define CHOICE1_DVAR "custom_playerrespawndelay"
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MPUI_RULES_NONE_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_2_5SECONDS_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_5SECONDS_CAPS"
|
||||
#define CHOICE1_STR4 "@MPUI_RULES_7_5SECONDS_CAPS"
|
||||
#define CHOICE1_STR5 "@MPUI_RULES_10SECONDS_CAPS"
|
||||
#define CHOICE1_STR6 "@MPUI_RULES_15SECONDS_CAPS"
|
||||
#define CHOICE1_STR7 "@MPUI_RULES_20SECONDS_CAPS"
|
||||
#define CHOICE1_STR8 "@MPUI_RULES_30SECONDS_CAPS"
|
||||
#define CHOICE1_STR9 "@MPUI_RULES_40SECONDS_CAPS"
|
||||
#define CHOICE1_STR10 "@MPUI_RULES_50SECONDS_CAPS"
|
||||
#define CHOICE1_STR11 "@MPUI_RULES_1MINUTE_CAPS"
|
||||
#define CHOICE1_STR12 "@MPUI_RULES_1_5MINUTES_CAPS"
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 2.5
|
||||
#define CHOICE1_VAL3 5
|
||||
#define CHOICE1_VAL4 7.5
|
||||
#define CHOICE1_VAL5 10
|
||||
#define CHOICE1_VAL6 15
|
||||
#define CHOICE1_VAL7 20
|
||||
#define CHOICE1_VAL8 30
|
||||
#define CHOICE1_VAL9 40
|
||||
#define CHOICE1_VAL10 50
|
||||
#define CHOICE1_VAL11 60
|
||||
#define CHOICE1_VAL12 90
|
||||
#define CHOICE1_EXEC ;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE1_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE1_NUMVALS 12
|
||||
|
||||
#define CHOICE2_TEXT "@CUSTOM_RULES_FORCE_RESPAWN"
|
||||
#define CHOICE2_DESC "@CUSTOM_FORCE_RESPAWN_DESC"
|
||||
#define CHOICE2_DVAR "scr_player_forcerespawn"
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_SHOW 1
|
||||
#define CHOICE2_STRLIST { "@MENU_DISABLED_CAPS" 0 "@MENU_ENABLED_CAPS" 1}
|
||||
#define CHOICE2_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE2_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE2_VIS dvarFloat( custom_waverespawndelay ) == 0
|
||||
#define CHOICE2_DISABLED_DESC "@CUSTOM_FORCE_RESPAWN_DISABLED_DESC"
|
||||
#define CHOICE2_DISABLE_ON_INVIS 1
|
||||
|
||||
#define CHOICE3_TEXT "@CUSTOM_WAVE_RESPAWN_DELAY"
|
||||
#define CHOICE3_DESC "@CUSTOM_WAVE_RESPAWN_DELAY_DESC"
|
||||
#define CHOICE3_DVAR custom_waverespawndelay
|
||||
#define CHOICE3_DVARTEXT CHOICE3_DVAR"_text"
|
||||
#define CHOICE3_SHOW 1
|
||||
#define CHOICE3_STR1 "@MPUI_RULES_NONE_CAPS"
|
||||
#define CHOICE3_STR2 "@MPUI_RULES_5SECONDS_CAPS"
|
||||
#define CHOICE3_STR3 "@MPUI_RULES_10SECONDS_CAPS"
|
||||
#define CHOICE3_STR4 "@MPUI_RULES_15SECONDS_CAPS"
|
||||
#define CHOICE3_STR5 "@MPUI_RULES_30SECONDS_CAPS"
|
||||
#define CHOICE3_STR6 ""
|
||||
#define CHOICE3_STR7 ""
|
||||
#define CHOICE3_STR8 ""
|
||||
#define CHOICE3_STR9 ""
|
||||
#define CHOICE3_STR10 ""
|
||||
#define CHOICE3_STR11 ""
|
||||
#define CHOICE3_STR12 ""
|
||||
#define CHOICE3_VAL1 0
|
||||
#define CHOICE3_VAL2 5
|
||||
#define CHOICE3_VAL3 10
|
||||
#define CHOICE3_VAL4 15
|
||||
#define CHOICE3_VAL5 30
|
||||
#define CHOICE3_VAL6 0
|
||||
#define CHOICE3_VAL7 0
|
||||
#define CHOICE3_VAL8 0
|
||||
#define CHOICE3_VAL9 0
|
||||
#define CHOICE3_VAL10 0
|
||||
#define CHOICE3_VAL11 0
|
||||
#define CHOICE3_VAL12 0
|
||||
#define CHOICE3_EXEC ;
|
||||
#define CHOICE3_STRLIST { CHOICE3_STR1 CHOICE3_VAL1 CHOICE3_STR2 CHOICE3_VAL2 CHOICE3_STR3 CHOICE3_VAL3 CHOICE3_STR4 CHOICE3_VAL4 CHOICE3_STR5 CHOICE3_VAL5 CHOICE3_STR6 CHOICE3_VAL6 CHOICE3_STR7 CHOICE3_VAL7 CHOICE3_STR8 CHOICE3_VAL8 CHOICE3_STR9 CHOICE3_VAL9 CHOICE3_STR10 CHOICE3_VAL10 CHOICE3_STR11 CHOICE3_VAL11 CHOICE3_STR12 CHOICE3_VAL12 }
|
||||
#define CHOICE3_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE3_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE3_NUMVALS 5
|
||||
|
||||
#define CUSTOM_RESET_TO_DEFAULT resetdvar CHOICE1_DVAR; resetdvar CHOICE2_DVAR; resetdvar CHOICE3_DVAR;
|
||||
|
||||
{
|
||||
#include "ui_mp/custom_options_popup.inc"
|
||||
}
|
||||
|
||||
//***********************************************************************************
|
||||
// Lives & Health
|
||||
//***********************************************************************************
|
||||
#define CUSTOM_OPTIONS_POPUP_MENU_NAME "popup_lives_and_health_settings"
|
||||
#define MENUDEF_NAME popup_lives_and_health_settings
|
||||
#define CUSTOM_OPTIONS_POPUP_TITLE "@CUSTOM_LIVES_AND_HEALTH_OPTIONS_CAPS"
|
||||
#define CUSTOM_OPTIONS_POPUP_NUM_ITEMS 3
|
||||
|
||||
#define CHOICE1_TEXT "@CUSTOM_NUMBER_OF_LIVES"
|
||||
#define CHOICE1_DESC "@CUSTOM_NUMBER_OF_LIVES_DESC"
|
||||
#define CHOICE1_DVAR "custom_numlives"
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MPUI_RULES_UNLIMITED_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_ITEM_LIFE_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_ITEM_2LIVES_CAPS"
|
||||
#define CHOICE1_STR4 "@MPUI_RULES_ITEM_3LIVES_CAPS"
|
||||
#define CHOICE1_STR5 "@MPUI_RULES_ITEM_5LIVES_CAPS"
|
||||
#define CHOICE1_STR6 "@MPUI_RULES_ITEM_9LIVES_CAPS"
|
||||
#define CHOICE1_STR7 ""
|
||||
#define CHOICE1_STR8 ""
|
||||
#define CHOICE1_STR9 ""
|
||||
#define CHOICE1_STR10 ""
|
||||
#define CHOICE1_STR11 ""
|
||||
#define CHOICE1_STR12 ""
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 1
|
||||
#define CHOICE1_VAL3 2
|
||||
#define CHOICE1_VAL4 3
|
||||
#define CHOICE1_VAL5 5
|
||||
#define CHOICE1_VAL6 9
|
||||
#define CHOICE1_VAL7 0
|
||||
#define CHOICE1_VAL8 0
|
||||
#define CHOICE1_VAL9 0
|
||||
#define CHOICE1_VAL10 0
|
||||
#define CHOICE1_VAL11 0
|
||||
#define CHOICE1_VAL12 0
|
||||
#define CHOICE1_EXEC ;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE1_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE1_NUMVALS 6
|
||||
|
||||
#define CHOICE2_TEXT "@CUSTOM_MAX_HEALTH"
|
||||
#define CHOICE2_DESC "@CUSTOM_MAX_HEALTH_DESC"
|
||||
#define CHOICE2_DVAR "scr_player_maxhealth"
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_SHOW 1
|
||||
#define CHOICE2_STR1 "@MPUI_RULES_MINISCULE_CAPS"
|
||||
#define CHOICE2_STR2 "@MPUI_RULES_HALF_CAPS"
|
||||
#define CHOICE2_STR3 "@MPUI_RULES_NORMAL_CAPS"
|
||||
#define CHOICE2_STR4 "@MPUI_RULES_DOUBLE_CAPS"
|
||||
#define CHOICE2_STR5 ""
|
||||
#define CHOICE2_STR6 ""
|
||||
#define CHOICE2_STR7 ""
|
||||
#define CHOICE2_STR8 ""
|
||||
#define CHOICE2_STR9 ""
|
||||
#define CHOICE2_STR10 ""
|
||||
#define CHOICE2_STR11 ""
|
||||
#define CHOICE2_STR12 ""
|
||||
#define CHOICE2_VAL1 30
|
||||
#define CHOICE2_VAL2 50
|
||||
#define CHOICE2_VAL3 100
|
||||
#define CHOICE2_VAL4 200
|
||||
#define CHOICE2_VAL5 0
|
||||
#define CHOICE2_VAL6 0
|
||||
#define CHOICE2_VAL7 0
|
||||
#define CHOICE2_VAL8 0
|
||||
#define CHOICE2_VAL9 0
|
||||
#define CHOICE2_VAL10 0
|
||||
#define CHOICE2_VAL11 0
|
||||
#define CHOICE2_VAL12 0
|
||||
#define CHOICE2_EXEC ;
|
||||
#define CHOICE2_STRLIST { CHOICE2_STR1 CHOICE2_VAL1 CHOICE2_STR2 CHOICE2_VAL2 CHOICE2_STR3 CHOICE2_VAL3 CHOICE2_STR4 CHOICE2_VAL4 CHOICE2_STR5 CHOICE2_VAL5 CHOICE2_STR6 CHOICE2_VAL6 CHOICE2_STR7 CHOICE2_VAL7 CHOICE2_STR8 CHOICE2_VAL8 CHOICE2_STR9 CHOICE2_VAL9 CHOICE2_STR10 CHOICE2_VAL10 CHOICE2_STR11 CHOICE2_VAL11 CHOICE2_STR12 CHOICE2_VAL12 }
|
||||
#define CHOICE2_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE2_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE2_NUMVALS 4
|
||||
#define CHOICE2_VIS dvarInt( "custom_class_mode" ) != 1
|
||||
#define CHOICE2_DISABLED_DESC "@CUSTOM_MAX_HEALTH_DISABLED_DESC"
|
||||
#define CHOICE2_DISABLE_ON_INVIS 1
|
||||
|
||||
#define CHOICE3_TEXT "@CUSTOM_HEALTH_REGEN"
|
||||
#define CHOICE3_DESC "@CUSTOM_HEALTH_REGEN_DESC"
|
||||
#define CHOICE3_DVAR "scr_player_healthregentime"
|
||||
#define CHOICE3_DVARTEXT CHOICE3_DVAR"_text"
|
||||
#define CHOICE3_SHOW 1
|
||||
#define CHOICE3_STR1 "@MPUI_RULES_NONE_CAPS"
|
||||
#define CHOICE3_STR2 "@MPUI_RULES_FAST_CAPS"
|
||||
#define CHOICE3_STR3 "@MPUI_RULES_NORMAL_CAPS"
|
||||
#define CHOICE3_STR4 "@MPUI_RULES_SLOW_CAPS"
|
||||
#define CHOICE3_STR5 ""
|
||||
#define CHOICE3_STR6 ""
|
||||
#define CHOICE3_STR7 ""
|
||||
#define CHOICE3_STR8 ""
|
||||
#define CHOICE3_STR9 ""
|
||||
#define CHOICE3_STR10 ""
|
||||
#define CHOICE3_STR11 ""
|
||||
#define CHOICE3_STR12 ""
|
||||
#define CHOICE3_VAL1 0
|
||||
#define CHOICE3_VAL2 2
|
||||
#define CHOICE3_VAL3 5
|
||||
#define CHOICE3_VAL4 10
|
||||
#define CHOICE3_VAL5 0
|
||||
#define CHOICE3_VAL6 0
|
||||
#define CHOICE3_VAL7 0
|
||||
#define CHOICE3_VAL8 0
|
||||
#define CHOICE3_VAL9 0
|
||||
#define CHOICE3_VAL10 0
|
||||
#define CHOICE3_VAL11 0
|
||||
#define CHOICE3_VAL12 0
|
||||
#define CHOICE3_EXEC ;
|
||||
#define CHOICE3_STRLIST { CHOICE3_STR1 CHOICE3_VAL1 CHOICE3_STR2 CHOICE3_VAL2 CHOICE3_STR3 CHOICE3_VAL3 CHOICE3_STR4 CHOICE3_VAL4 CHOICE3_STR5 CHOICE3_VAL5 CHOICE3_STR6 CHOICE3_VAL6 CHOICE3_STR7 CHOICE3_VAL7 CHOICE3_STR8 CHOICE3_VAL8 CHOICE3_STR9 CHOICE3_VAL9 CHOICE3_STR10 CHOICE3_VAL10 CHOICE3_STR11 CHOICE3_VAL11 CHOICE3_STR12 CHOICE3_VAL12 }
|
||||
#define CHOICE3_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE3_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE3_NUMVALS 4
|
||||
#define CHOICE3_VIS dvarInt( "custom_class_mode" ) != 1
|
||||
#define CHOICE3_DISABLED_DESC "@CUSTOM_HEALTH_REGEN_DISABLED_DESC"
|
||||
#define CHOICE3_DISABLE_ON_INVIS 1
|
||||
|
||||
#define CUSTOM_RESET_TO_DEFAULT resetdvar CHOICE1_DVAR; resetdvar CHOICE2_DVAR; resetdvar CHOICE3_DVAR;
|
||||
|
||||
{
|
||||
#include "ui_mp/custom_options_popup.inc"
|
||||
}
|
||||
|
||||
//***********************************************************************************
|
||||
// Team Settings
|
||||
//***********************************************************************************
|
||||
#define CUSTOM_OPTIONS_POPUP_MENU_NAME "popup_team_settings"
|
||||
#define MENUDEF_NAME popup_team_settings
|
||||
#define CUSTOM_OPTIONS_POPUP_TITLE "@CUSTOM_TEAM_OPTIONS"
|
||||
#define CUSTOM_OPTIONS_POPUP_NUM_ITEMS 2
|
||||
|
||||
#define CHOICE1_TEXT "@CUSTOM_OPT_SPECTATE"
|
||||
#define CHOICE1_DESC "@CUSTOM_OPT_SPECTATE_DESC"
|
||||
#define CHOICE1_DVAR scr_game_spectatetype
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MENU_DISABLED_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_TEAM_ONLY_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_FREE_CAPS"
|
||||
#define CHOICE1_STR4 ""
|
||||
#define CHOICE1_STR5 ""
|
||||
#define CHOICE1_STR6 ""
|
||||
#define CHOICE1_STR7 ""
|
||||
#define CHOICE1_STR8 ""
|
||||
#define CHOICE1_STR9 ""
|
||||
#define CHOICE1_STR10 ""
|
||||
#define CHOICE1_STR11 ""
|
||||
#define CHOICE1_STR12 ""
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 1
|
||||
#define CHOICE1_VAL3 2
|
||||
#define CHOICE1_VAL4 0
|
||||
#define CHOICE1_VAL5 0
|
||||
#define CHOICE1_VAL6 0
|
||||
#define CHOICE1_VAL7 0
|
||||
#define CHOICE1_VAL8 0
|
||||
#define CHOICE1_VAL9 0
|
||||
#define CHOICE1_VAL10 0
|
||||
#define CHOICE1_VAL11 0
|
||||
#define CHOICE1_VAL12 0
|
||||
#define CHOICE1_EXEC ;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE1_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE1_NUMVALS 3
|
||||
|
||||
#define CHOICE2_TEXT "@CUSTOM_FRIENDLY_FIRE"
|
||||
#define CHOICE2_DESC "@CUSTOM_FRIENDLY_FIRE_DESC"
|
||||
#define CHOICE2_DVAR scr_team_fftype
|
||||
#define CHOICE2_DVARTEXT CHOICE2_DVAR"_text"
|
||||
#define CHOICE2_SHOW 1
|
||||
#define CHOICE2_STR1 "@MENU_DISABLED_CAPS"
|
||||
#define CHOICE2_STR2 "@MENU_ENABLED_CAPS"
|
||||
#define CHOICE2_STR3 "@MPUI_RULES_REFLECT_CAPS"
|
||||
#define CHOICE2_STR4 "@MPUI_RULES_SHARED_CAPS"
|
||||
#define CHOICE2_STR5 ""
|
||||
#define CHOICE2_STR6 ""
|
||||
#define CHOICE2_STR7 ""
|
||||
#define CHOICE2_STR8 ""
|
||||
#define CHOICE2_STR9 ""
|
||||
#define CHOICE2_STR10 ""
|
||||
#define CHOICE2_STR11 ""
|
||||
#define CHOICE2_STR12 ""
|
||||
#define CHOICE2_VAL1 0
|
||||
#define CHOICE2_VAL2 1
|
||||
#define CHOICE2_VAL3 2
|
||||
#define CHOICE2_VAL4 3
|
||||
#define CHOICE2_VAL5 0
|
||||
#define CHOICE2_VAL6 0
|
||||
#define CHOICE2_VAL7 0
|
||||
#define CHOICE2_VAL8 0
|
||||
#define CHOICE2_VAL9 0
|
||||
#define CHOICE2_VAL10 0
|
||||
#define CHOICE2_VAL11 0
|
||||
#define CHOICE2_VAL12 0
|
||||
#define CHOICE2_EXEC ;
|
||||
#define CHOICE2_STRLIST { CHOICE2_STR1 CHOICE2_VAL1 CHOICE2_STR2 CHOICE2_VAL2 CHOICE2_STR3 CHOICE2_VAL3 CHOICE2_STR4 CHOICE2_VAL4 CHOICE2_STR5 CHOICE2_VAL5 CHOICE2_STR6 CHOICE2_VAL6 CHOICE2_STR7 CHOICE2_VAL7 CHOICE2_STR8 CHOICE2_VAL8 CHOICE2_STR9 CHOICE2_VAL9 CHOICE2_STR10 CHOICE2_VAL10 CHOICE2_STR11 CHOICE2_VAL11 CHOICE2_STR12 CHOICE2_VAL12 }
|
||||
#define CHOICE2_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE2_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
#define CHOICE2_NUMVALS 4
|
||||
|
||||
#define CUSTOM_RESET_TO_DEFAULT resetdvar CHOICE1_DVAR; resetdvar CHOICE2_DVAR;
|
||||
|
||||
{
|
||||
#include "ui_mp/custom_options_popup.inc"
|
||||
}
|
||||
|
||||
//***********************************************************************************
|
||||
// Free for All specate settings
|
||||
//***********************************************************************************
|
||||
#define CUSTOM_OPTIONS_POPUP_MENU_NAME "popup_ffa_spectate_settings"
|
||||
#define MENUDEF_NAME popup_ffa_spectate_settings
|
||||
#define CUSTOM_OPTIONS_POPUP_TITLE "@CUSTOM_FFA_SPECTATE_OPTIONS"
|
||||
#define CUSTOM_OPTIONS_POPUP_NUM_ITEMS 1
|
||||
|
||||
#define CHOICE1_TEXT "@CUSTOM_OPT_SPECTATE"
|
||||
#define CHOICE1_DESC "@CUSTOM_OPT_SPECTATE_DESC"
|
||||
#define CHOICE1_DVAR scr_game_spectatetype
|
||||
#define CHOICE1_DVARTEXT CHOICE1_DVAR"_text"
|
||||
#define CHOICE1_SHOW 1
|
||||
#define CHOICE1_STR1 "@MENU_DISABLED_CAPS"
|
||||
#define CHOICE1_STR2 "@MPUI_RULES_PLAYERS_ONLY_CAPS"
|
||||
#define CHOICE1_STR3 "@MPUI_RULES_FREE_CAPS"
|
||||
#define CHOICE1_STR4 ""
|
||||
#define CHOICE1_STR5 ""
|
||||
#define CHOICE1_STR6 ""
|
||||
#define CHOICE1_STR7 ""
|
||||
#define CHOICE1_STR8 ""
|
||||
#define CHOICE1_STR9 ""
|
||||
#define CHOICE1_STR10 ""
|
||||
#define CHOICE1_STR11 ""
|
||||
#define CHOICE1_STR12 ""
|
||||
#define CHOICE1_VAL1 0
|
||||
#define CHOICE1_VAL2 1
|
||||
#define CHOICE1_VAL3 2
|
||||
#define CHOICE1_VAL4 0
|
||||
#define CHOICE1_VAL5 0
|
||||
#define CHOICE1_VAL6 0
|
||||
#define CHOICE1_VAL7 0
|
||||
#define CHOICE1_VAL8 0
|
||||
#define CHOICE1_VAL9 0
|
||||
#define CHOICE1_VAL10 0
|
||||
#define CHOICE1_VAL11 0
|
||||
#define CHOICE1_VAL12 0
|
||||
#define CHOICE1_EXEC open GAME_OPTIONS_MENU_NAME"_"CHOICE1_TEXT; play CHOICE_FOCUS_SOUND;
|
||||
#define CHOICE1_STRLIST { CHOICE1_STR1 CHOICE1_VAL1 CHOICE1_STR2 CHOICE1_VAL2 CHOICE1_STR3 CHOICE1_VAL3 CHOICE1_STR4 CHOICE1_VAL4 CHOICE1_STR5 CHOICE1_VAL5 CHOICE1_STR6 CHOICE1_VAL6 CHOICE1_STR7 CHOICE1_VAL7 CHOICE1_STR8 CHOICE1_VAL8 CHOICE1_STR9 CHOICE1_VAL9 CHOICE1_STR10 CHOICE1_VAL10 CHOICE1_STR11 CHOICE1_VAL11 CHOICE1_STR12 CHOICE1_VAL12 }
|
||||
#define CHOICE1_NUMVALS 3
|
||||
#define CHOICE1_ONFOCUS setLocalVarBool ui_choice_hideaccept 1;
|
||||
#define CHOICE1_LEAVEFOCUS setLocalVarBool ui_choice_hideaccept 0;
|
||||
|
||||
#define CUSTOM_RESET_TO_DEFAULT resetdvar CHOICE1_DVAR;
|
||||
|
||||
{
|
||||
#include "ui_mp/custom_options_popup.inc"
|
||||
}
|
4006
mods/mp_patch/ui_mp/fileshare_playercard.menu
Normal file
4006
mods/mp_patch/ui_mp/fileshare_playercard.menu
Normal file
File diff suppressed because it is too large
Load Diff
887
mods/mp_patch/ui_mp/game_mode.menu
Normal file
887
mods/mp_patch/ui_mp/game_mode.menu
Normal file
@ -0,0 +1,887 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/custom_mode.inc"
|
||||
|
||||
#define CHOICE_SEP_OFFSET_Y -2
|
||||
#define CHOICE_SIDEITEM_SPACING -310
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui_mp/overlaybg.inc"
|
||||
#include "ui_mp/fileshare.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "menu_game_mode_upload"
|
||||
|
||||
#define HINT_TEXT_WIDTH ( FRAME_DEFAULT_WIDTH - ( FRAME_TITLE_X_OFFSET * 2 ) )
|
||||
|
||||
menuDef
|
||||
{
|
||||
name menu_game_mode_upload
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
priority MENU_PRI_ONTOP
|
||||
control MENU_CONTROL_OPENER
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT
|
||||
onOpen
|
||||
{
|
||||
READ_FILE_SHARE;
|
||||
setdvar ui_custom_save_to_file_share 1;
|
||||
setDvar fsUnoccupiedHighlightGreen 1;
|
||||
setLocalVarString ui_choicegroup CHOICE_GROUP;
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
activateBlur;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
setdvar ui_custom_save_to_file_share 0;
|
||||
deactivateblur;
|
||||
}
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
}
|
||||
execKeyInt APAD_LEFT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt DPAD_LEFT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt APAD_RIGHT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt DPAD_RIGHT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt APAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt DPAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt APAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt DPAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
|
||||
|
||||
FRAME_DEFAULT
|
||||
FRAME_TITLE_DEFAULT( "@MENU_FILESHARE_MYSHARE_CAPS", 1 )
|
||||
|
||||
PLAYER_INFO_VIS( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name fileShareSlots
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_FILESHARE_MYSLOTS
|
||||
FILESHARE_COMMON_OPTIONS
|
||||
elementwidth 70
|
||||
elementheight 70
|
||||
elementtype LISTBOX_TEXT
|
||||
textalign HORIZONTAL_ALIGN_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
modal
|
||||
doubleclick
|
||||
{
|
||||
if ( getFeederData( "slot" ) <= 6 )
|
||||
{
|
||||
if ( !( FILESHARE_TASKSINPROGRESS ) )
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
if ( getFeederData( "slotOccupied" ) != 1 )
|
||||
{
|
||||
open menu_game_mode_upload_save;
|
||||
}
|
||||
else
|
||||
{
|
||||
open menu_game_mode_upload_confirm;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
|
||||
visible 1
|
||||
FILESHARE_SLOTS_USERAREAS
|
||||
}
|
||||
FILESHARE_BOTTOM( fileShareSlots, 1 )
|
||||
FILESHARE_DETAILS( 35, (FRAME_CHOICE_Y_START-1), HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER,
|
||||
"menu_game_mode_upload", "fileShareSlots",
|
||||
getFeederData( "fileShareSlots", "slotOccupied" ) && getFeederData( "fileShareSlots", "count" ) > 0.0 )
|
||||
#ifdef CONSOLE
|
||||
PREPROC_TEXT_DRAW_VIS( -144 158 30 15 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
( int( getFeederData( "fileShareSlots", "slot" ) ) + " " + locString( "@MENU_FILESHARE_OF18") ),
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, 1 1 1 1, when( IsPremiumSubscriber() ) )
|
||||
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_left", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 ),
|
||||
rotation 90; )
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -107 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 && getFeederData( "fileShareSlots", "slot" ) < 13 ),
|
||||
rotation 90; )
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 160 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) <= 6 ),
|
||||
rotation 90; )
|
||||
#endif //#ifdef CONSOLE
|
||||
|
||||
HINT_TEXT_ALL( 15, CHOICE_X_START, -8, CHOICE_SIZE_X, "@MENU_FILESHARE_CHOOSESLOT", 1 1 1 1, 1, ; )
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, close self; )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS( -160 (FRAME_DEFAULT_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@PLATFORM_SELECT",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1,
|
||||
when( getFeederData( menu_game_mode_upload, fileShareSlots, "slot" ) <= 6 ); )
|
||||
#endif // #else // #ifdef PC
|
||||
}
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
close self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name custom_select_from_fileshare
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
priority MENU_PRI_ONTOP
|
||||
control MENU_CONTROL_OPENER
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT
|
||||
|
||||
onOpen
|
||||
{
|
||||
#ifdef PC
|
||||
exec readfileshare
|
||||
#endif
|
||||
setDvar fsUnoccupiedHighlightGreen 2;
|
||||
setLocalVarString ui_choicegroup CHOICE_GROUP;
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
execKeyInt APAD_LEFT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt DPAD_LEFT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt APAD_RIGHT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt DPAD_RIGHT { play CHOICE_FOCUS_SOUND; }
|
||||
execKeyInt APAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt DPAD_UP { execnow set fshSelectLastSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt APAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
|
||||
execKeyInt DPAD_DOWN { execnow set fshSelectFirstSlotRow 1; setfocus fileShareSlots; }
|
||||
|
||||
FRAME_DEFAULT
|
||||
|
||||
FRAME_TITLE_DEFAULT( "@CUSTOM_FILESHARE_SELECT_MODE_TITLE", 1 )
|
||||
FRAME_SUBTITLE_DEFAULT( "@CUSTOM_FILESHARE_SELECT_MODE_DESC", 1 )
|
||||
|
||||
PLAYER_INFO_VIS( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name fileShareSlots
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_FILESHARE_MYSLOTS
|
||||
FILESHARE_COMMON_OPTIONS
|
||||
origin 0 0
|
||||
elementwidth 70
|
||||
elementheight 67
|
||||
elementtype LISTBOX_TEXT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_SUBTITLE
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
modal
|
||||
doubleclick
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
if ( getFeederData( "slotOccupied" ) && !( FILESHARE_TASKSINPROGRESS ) )
|
||||
{
|
||||
if( getFeederData( "fileType" ) == "customgamemode" )
|
||||
{
|
||||
execNow downloadCustomGametype (getFeederData( "fileID" )) (getFeederData( "fileSize" ));
|
||||
closeimmediate custom_select_from_fileshare;
|
||||
closeimmediate select_game_mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
|
||||
visible 1
|
||||
|
||||
FILESHARE_SLOTS_USERAREAS
|
||||
}
|
||||
FILESHARE_BOTTOM( fileShareSlots, 1 )
|
||||
|
||||
/* SLOT OCCUPIED */
|
||||
#define SLOT_OCCUPIED_CONDITION \
|
||||
( getFeederData( "fileShareSlots", "slotOccupied" ) && getFeederData( "fileShareSlots", "count" ) > 0.0 )
|
||||
|
||||
#define SLOT_HAS_GAME_MODE \
|
||||
( getFeederData( "fileShareSlots", "fileType" ) == "customgamemode" )
|
||||
|
||||
#undef FILESHARE_SELECTOR_TOOLTIP_Y
|
||||
#ifdef PC
|
||||
#define FILESHARE_SELECTOR_TOOLTIP_Y FILESHARE_TOOLTIP_PC_Y
|
||||
#else //#ifdef PC
|
||||
#define FILESHARE_SELECTOR_TOOLTIP_Y 95
|
||||
#endif //#ifdef PC
|
||||
|
||||
// Tooltip - Occupied Slot with custom game mode
|
||||
PREPROC_SHADER_DRAW_VIS_EX( (FRAME_CHOICE_X_START-2) FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), ; )
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (FRAME_CHOICE_X_START+8) FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
locString( "CUSTOM_FILESHARE_CGM_HIGHLIGHTED" ),
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
|
||||
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), autowrapped; )
|
||||
|
||||
// Tooltip - Occupied Slot that is not a custom game mode
|
||||
PREPROC_SHADER_DRAW_VIS_EX( (FRAME_CHOICE_X_START-2) FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), ; )
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (FRAME_CHOICE_X_START+8) FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
locString( "CUSTOM_FILESHARE_CANT_SELECT" ),
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
|
||||
when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), autowrapped; )
|
||||
|
||||
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
|
||||
|
||||
execKeyInt APAD_UP
|
||||
{
|
||||
execnow set fshSelectLastSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt DPAD_UP
|
||||
{
|
||||
execnow set fshSelectLastSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt APAD_DOWN
|
||||
{
|
||||
execnow set fshSelectFirstSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt DPAD_DOWN
|
||||
{
|
||||
execnow set fshSelectFirstSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
#ifdef CONSOLE
|
||||
PREPROC_TEXT_DRAW_VIS( -146 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
( int( getFeederData( "fileShareSlots", "slot" ) ) ),
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, 1 1 1 1,
|
||||
1 )
|
||||
PREPROC_TEXT_DRAW_VIS( -142 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@MENU_FILESHARE_OF6",
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, 1 1 1 1,
|
||||
when ( !IsPremiumSubscriber() ) )
|
||||
|
||||
// Top Arrow
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_left", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 ), rotation 90; )
|
||||
|
||||
// Bottom Arrow 1
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -107 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) > 6 && getFeederData( "fileShareSlots", "slot" ) < 13 ), rotation 90; )
|
||||
|
||||
// Bottom Arrow 2
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER,
|
||||
"ui_arrow_right", COLOR_BODY_TEXT,
|
||||
when( IsPremiumSubscriber() && getFeederData( "fileShareSlots", "slot" ) <= 6 ), rotation 90; )
|
||||
#endif //#ifdef CONSOLE
|
||||
// File details
|
||||
FILESHARE_DETAILS( 35, (FRAME_CHOICE_Y_START-1), HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER,
|
||||
"custom_select_from_fileshare", "fileShareSlots",
|
||||
SLOT_OCCUPIED_CONDITION )
|
||||
|
||||
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
|
||||
|
||||
// Button prompts
|
||||
|
||||
#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
|
||||
#else //#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS( -160 (FILESHARE_FRAME_HEIGHT/2) 50 17 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@PLATFORM_SELECT",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1,
|
||||
when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ); )
|
||||
#endif //#ifdef PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
#define GAMEMODE_NAME_X 40
|
||||
#define GAMEMODE_NAME_Y ( FRAME_CHOICE_Y_START - 7 )
|
||||
#define GAMEMODE_NAME_HEIGHT 30
|
||||
#define GAMEMODE_NAME_SIZE GAMEMODE_IMAGE_WIDTH GAMEMODE_NAME_HEIGHT
|
||||
|
||||
#define GAMEMODE_IMAGE_X GAMEMODE_NAME_X
|
||||
#define GAMEMODE_IMAGE_Y (GAMEMODE_NAME_Y + GAMEMODE_NAME_HEIGHT + 15)
|
||||
#define GAMEMODE_IMAGE_ASPECT_RATIO 1.0
|
||||
#define GAMEMODE_IMAGE_WIDTH 180
|
||||
#define GAMEMODE_IMAGE_HEIGHT (GAMEMODE_IMAGE_WIDTH * GAMEMODE_IMAGE_ASPECT_RATIO)
|
||||
#define GAMEMODE_IMAGE_SIZE GAMEMODE_IMAGE_WIDTH GAMEMODE_IMAGE_HEIGHT
|
||||
|
||||
#define GAMEMODE_DESC_X GAMEMODE_NAME_X
|
||||
#define GAMEMODE_DESC_Y (GAMEMODE_IMAGE_Y + GAMEMODE_IMAGE_HEIGHT + 15)
|
||||
#define GAMEMODE_DESC_SIZE GAMEMODE_IMAGE_WIDTH 60
|
||||
|
||||
#undef DEFAULT_SLIDE_IN_SPEED
|
||||
#define DEFAULT_SLIDE_IN_SPEED 180
|
||||
|
||||
#undef DEFAULT_SLIDE_OUT_SPEED
|
||||
#define DEFAULT_SLIDE_OUT_SPEED 180
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
deactivateBlur; \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
close self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name select_game_mode
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
play uin_navigation_menu_lg_open;
|
||||
setdvar invite_visible "0";
|
||||
setDvar ui_preview dvarString( ui_gametype );
|
||||
setFocus gamemode_selection;
|
||||
execNow refreshFeederSelection gamemode_selection;
|
||||
execNow movefeeder ( GetGamemodeIndexByName( gamemode_selection, tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 ) ) ) gamemode_selection;
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
setdvar invite_visible "1";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
FRAME_DEFAULT
|
||||
|
||||
FRAME_TITLE_DEFAULT( "@MPUI_CHANGE_GAME_MODE_CAPS", 1 )
|
||||
|
||||
#define GAME_HC_TDM_HACK ( dvarInt( "xblive_basictraining" ) && dvarString( ui_preview ) == "hc_tdm" )
|
||||
#define GAME_DESC_VIS_ARG ( dvarInt( "xblive_basictraining" ) || dvarBool( splitscreen ) || dvarBool( systemlink ) || getFeederData( "gamemode_selection", "selection" ) != 0 )
|
||||
#define GAMETYPE_IMAGE tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 3 )
|
||||
#define GAMEMODE tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 1 )
|
||||
#define GAMEMODE_DESC tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_preview ), 2 )
|
||||
|
||||
#define GAMEMODE_DESC_DISPLAY( titleText, imageMat, descText, visArg ) \
|
||||
PREPROC_TEXT_DRAW_ALL( GAMEMODE_NAME_X GAMEMODE_NAME_Y GAMEMODE_NAME_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
titleText, \
|
||||
TEXTSIZE_TITLE, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
|
||||
when( visArg );, ; ) \
|
||||
PREPROC_SHADER_DRAW_VIS_EX( GAMEMODE_IMAGE_X GAMEMODE_IMAGE_Y GAMEMODE_IMAGE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, \
|
||||
imageMat, 1 1 1 1, \
|
||||
when( visArg );, \
|
||||
; ) \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( GAMEMODE_DESC_X GAMEMODE_DESC_Y GAMEMODE_DESC_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
descText, \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, \
|
||||
when( visArg );, autowrapped )
|
||||
|
||||
GAMEMODE_DESC_DISPLAY( "@" + GAMEMODE, GAMETYPE_IMAGE, "@" + GAMEMODE_DESC, GAME_DESC_VIS_ARG && !GAME_HC_TDM_HACK )
|
||||
GAMEMODE_DESC_DISPLAY( "@MPUI_BASIC_TRAINING_HC_TDM", GAMETYPE_IMAGE, "@" + GAMEMODE_DESC, GAME_HC_TDM_HACK )
|
||||
GAMEMODE_DESC_DISPLAY( "@CUSTOM_CUSTOM_GAME_MODE_CAPS", "playlist_custom", "@CUSTOM_SELECT_FROM_FILESHARE_DESC", !GAME_DESC_VIS_ARG && !GAME_HC_TDM_HACK )
|
||||
|
||||
#define RESET_CUSTOM_GAMEMODE_IF_CHANGED \
|
||||
if( dvarString( "ui_preview" ) != dvarString( "ui_gametype" ) ) \
|
||||
{ \
|
||||
execNow "resetCustomGametype"; \
|
||||
}
|
||||
|
||||
// gametype selection ===========================================
|
||||
itemDef
|
||||
{
|
||||
name gamemode_selection
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_GAMETYPES_BASE
|
||||
rect (FRAME_CHOICE_X_START-1) ( FRAME_CHOICE_Y_START - 3 ) FRAME_BUTTON_WIDTH 308 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
elementwidth 30
|
||||
elementheight 19
|
||||
noscrollbars
|
||||
noBlinkingHighlight
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale CHOICE_TEXTSIZE
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor COLOR_TITLE
|
||||
disablecolor FRAME_GREY_RGB 1
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL
|
||||
modal
|
||||
visible 1
|
||||
// x y w h len horzAlign vertAlign
|
||||
userarea 4 0 0 (FRAME_BUTTON_WIDTH+1) 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* BACKGROUND */
|
||||
17 0 FRAME_BUTTON_WIDTH 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* NAME */
|
||||
0 1 17 18 16 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* A_BUTTON */
|
||||
(FRAME_BUTTON_WIDTH-18) 2 14 14 0 ITEM_ALIGN_CENTER ITEM_ALIGN_MIDDLE /* CUSTOMIZED ICON */
|
||||
onfocus
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
doubleclick
|
||||
{
|
||||
if( !GAME_DESC_VIS_ARG )
|
||||
{
|
||||
open "custom_select_from_fileshare";
|
||||
}
|
||||
else
|
||||
{
|
||||
RESET_CUSTOM_GAMEMODE_IF_CHANGED
|
||||
setDvar ui_gametype dvarString( ui_preview );
|
||||
play CHOICE_ACTION_SOUND;
|
||||
execNow "xupdatepartystate";
|
||||
deactivateBlur;
|
||||
close self;
|
||||
}
|
||||
}
|
||||
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
|
||||
}
|
||||
|
||||
CUSTOM_MODE_CUSTOMIZED_STAR( FRAME_CHOICE_X_START, ( FRAME_DEFAULT_HEIGHT/2 ) - 70, dvarInt( customGameMode ) )
|
||||
|
||||
#ifdef PC
|
||||
#define BUTTON_SPACING 20
|
||||
#define RESET_BUTTON_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
|
||||
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
|
||||
FRAME_BUTTON_PC_LEFT_OFFSET( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, RESET_BUTTON_OFFSET, "@PLATFORM_RESET_TO_DEFAULT",
|
||||
open popup_custom_confirm_revert;, when( dvarBool( customGameMode ) ) )
|
||||
#else //PC
|
||||
FRAME_BACK_BUTTON_DEFAULT
|
||||
CUSTOM_MODE_RESET_TO_DEFAULT_BUTTON( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, -76, open popup_custom_confirm_revert;, dvarBool( customGameMode ) )
|
||||
#endif //PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
#define MAPSELECT_NAME_X 20
|
||||
#define MAPSELECT_NAME_Y (FRAME_CHOICE_Y_START-7)
|
||||
#define MAPSELECT_NAME_HEIGHT 30
|
||||
#define MAPSELECT_NAME_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_NAME_HEIGHT
|
||||
|
||||
#define MAPSELECT_IMAGE_X MAPSELECT_NAME_X
|
||||
#define MAPSELECT_IMAGE_Y (MAPSELECT_NAME_Y + MAPSELECT_NAME_HEIGHT + 5)
|
||||
#define MAPSELECT_IMAGE_ASPECT_RATIO 0.675
|
||||
#define MAPSELECT_IMAGE_WIDTH 224
|
||||
#define MAPSELECT_IMAGE_HEIGHT (MAPSELECT_IMAGE_WIDTH * MAPSELECT_IMAGE_ASPECT_RATIO)
|
||||
#define MAPSELECT_IMAGE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_IMAGE_HEIGHT
|
||||
|
||||
#define MAPSELECT_DESC_TITLE_HEIGHT 15
|
||||
#define MAPSELECT_DESC_TITLE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_TITLE_HEIGHT
|
||||
#define MAPSELECT_DESC_X MAPSELECT_NAME_X
|
||||
#define MAPSELECT_DESC_Y (MAPSELECT_IMAGE_Y + MAPSELECT_IMAGE_HEIGHT + 10 )
|
||||
#define MAPSELECT_DESC_HEIGHT 50
|
||||
#define MAPSELECT_DESC_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_HEIGHT
|
||||
|
||||
#define MAPSELECT_SIZE_X MAPSELECT_NAME_X
|
||||
#define MAPSELECT_SIZE_Y (MAPSELECT_DESC_Y+MAPSELECT_DESC_TITLE_HEIGHT+MAPSELECT_DESC_HEIGHT)
|
||||
#define MAPSELECT_SIZE_SIZE MAPSELECT_IMAGE_WIDTH MAPSELECT_DESC_HEIGHT
|
||||
|
||||
#define SWITCH_MAP_LIST_ACTION \
|
||||
if( dvarBool( "dlc2" ) || dvarBool( "dlc3" ) || dvarBool( "dlc4" ) ) \
|
||||
{ \
|
||||
if( dvarBool( ui_showDLCMaps ) ) \
|
||||
{ \
|
||||
setDvar ui_showDLCMaps 0; \
|
||||
execNow movefeeder 0 map_selection; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
setDvar ui_showDLCMaps 1; \
|
||||
execNow movefeeder 0 map_selection; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define SWITCH_TO_MAPS_ACTION \
|
||||
setDvar ui_showDLCMaps 0; \
|
||||
execNow movefeeder 0 map_selection;
|
||||
|
||||
#define SWITCH_TO_DLC_ACTION \
|
||||
setDvar ui_showDLCMaps 1; \
|
||||
execNow movefeeder 0 map_selection;
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
deactivateBlur; \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
close self; \
|
||||
setDvar settings_map_selected 0;
|
||||
|
||||
#define CHOICE_TAB_TEXTSIZE TEXTSIZE_SMALL
|
||||
#define TAB_1_TEXT (locString( "@MPUI_MAPS_CAPS" ))
|
||||
#define TAB_2_TEXT (locString( "@MPUI_DLC_MAPS_CAPS" ))
|
||||
|
||||
#define TAB_BG_PAD 5
|
||||
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_HEIGHT 15
|
||||
|
||||
#define MAP_TAB_1_X NEW_FRAME_CHOICE_X_START
|
||||
#define MAP_TAB_2_X ( MAP_TAB_1_X + TAB_1_WIDTH )
|
||||
|
||||
#define MAP_TAB_Y ( ( -NEW_FRAME_DEFAULT_HEIGHT / 2 ) + NEW_FRAME_HEADER_HEIGHT - TAB_HEIGHT )
|
||||
|
||||
#define MAP_TAB_HEADER( visArg ) \
|
||||
/* highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_1_X, \
|
||||
MAP_TAB_Y, \
|
||||
TAB_1_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_1_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_ORANGE_RGB 1, when( visArg && dvarBool( ui_showDLCMaps ) == 0 ), ; ) \
|
||||
/* non highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_1_X, \
|
||||
MAP_TAB_Y, \
|
||||
TAB_1_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_1_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_GRAY_TEXT_COLOR, when( visArg && dvarBool( ui_showDLCMaps ) == 1 ), TAB_MOUSEOVER_HIGHLIGHT; )
|
||||
|
||||
#define DLC_TAB_HEADER( visArg ) \
|
||||
/* highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_2_X, \
|
||||
MAP_TAB_Y, \
|
||||
TAB_2_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_2_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_ORANGE_RGB 1, when( visArg && dvarBool( ui_showDLCMaps ) == 1 ), ; ) \
|
||||
/* non highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_TAB_2_X, \
|
||||
MAP_TAB_Y, \
|
||||
TAB_2_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_2_TEXT, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_GRAY_TEXT_COLOR, when( visArg && dvarBool( ui_showDLCMaps ) == 0 ), TAB_MOUSEOVER_HIGHLIGHT; )
|
||||
|
||||
#define MAP_TAB_BG( px, pw, visArg ) \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER_FRAMED \
|
||||
frame 16 0.2 FRAME_OPEN_BOTTOM \
|
||||
rect 0 MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( px ) \
|
||||
exp rect W( pw ) \
|
||||
background "menu_mp_tab_frame_inner" \
|
||||
forecolor 1 1 1 1 \
|
||||
visible when( visArg ) \
|
||||
decoration \
|
||||
}
|
||||
|
||||
#define MAP_TAB_BUTTON( px, pw, actionArg, visArg ) \
|
||||
itemDef \
|
||||
{ \
|
||||
type ITEM_TYPE_BUTTON_NO_TEXT \
|
||||
rect 0 MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( px ) \
|
||||
exp rect W( pw ) \
|
||||
visible when( visArg ) \
|
||||
mouseenter { play CHOICE_FOCUS_SOUND; } \
|
||||
onFocus \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
} \
|
||||
action \
|
||||
{ \
|
||||
play CHOICE_ACTION_SOUND; \
|
||||
actionArg; \
|
||||
} \
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name select_map
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
play uin_navigation_menu_lg_open;
|
||||
setdvar invite_visible "0";
|
||||
setDvar ui_preview dvarString( ui_mapname );
|
||||
setDvar settings_map_selected 1;
|
||||
setFocus map_selection;
|
||||
setDvar ui_showDLCMaps 0;
|
||||
execNow movefeeder ( GetMapIndexByName( map_selection, tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_mapname ) , 3 ) ) ) map_selection;
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
setdvar invite_visible "1";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
execKeyInt K_LEFTARROW
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
execKeyInt K_RIGHTARROW
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
|
||||
FRAME_DEFAULT
|
||||
|
||||
FRAME_TITLE_DEFAULT( "@MPUI_CHANGE_MAP_CAPS", 1 )
|
||||
|
||||
#define MAPS_TAB_VISIBLE ( 1 )
|
||||
#define DLC_TAB_VISIBLE ( dvarBool( "dlc2" ) || dvarBool( "dlc3" ) || dvarBool( "dlc4" ) )
|
||||
|
||||
MAP_TAB_BG( MAP_TAB_1_X, TAB_1_WIDTH, MAPS_TAB_VISIBLE )
|
||||
MAP_TAB_HEADER( MAPS_TAB_VISIBLE )
|
||||
MAP_TAB_BUTTON( MAP_TAB_1_X, TAB_1_WIDTH, SWITCH_TO_MAPS_ACTION, MAPS_TAB_VISIBLE )
|
||||
|
||||
MAP_TAB_BG( MAP_TAB_2_X, TAB_2_WIDTH, DLC_TAB_VISIBLE )
|
||||
DLC_TAB_HEADER( DLC_TAB_VISIBLE )
|
||||
MAP_TAB_BUTTON( MAP_TAB_2_X, TAB_2_WIDTH, SWITCH_TO_DLC_ACTION, DLC_TAB_VISIBLE )
|
||||
|
||||
#define MAP_IMAGE tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 0 )
|
||||
#define MAP_NAME tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 3 )
|
||||
#define MAP_SIZE tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 8 )
|
||||
#define MAP_DESC tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_preview ) , 6 )
|
||||
|
||||
#define MAP_SELECT_DISPLAY( mapName, mapImage, mapSize, mapDesc, visArg ) \
|
||||
PREPROC_TEXT_DRAW_ALL( MAPSELECT_NAME_X MAPSELECT_NAME_Y MAPSELECT_NAME_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
mapName, \
|
||||
TEXTSIZE_TITLE, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
|
||||
when( visArg );, ; ) \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER_STREAMED \
|
||||
type ITEM_TYPE_IMAGE \
|
||||
rect MAPSELECT_IMAGE_X MAPSELECT_IMAGE_Y MAPSELECT_IMAGE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
forecolor 1 1 1 1 \
|
||||
exp material( mapImage ) \
|
||||
visible when( visArg ) \
|
||||
decoration \
|
||||
} \
|
||||
PREPROC_TEXT_DRAW_VIS( MAPSELECT_DESC_X MAPSELECT_DESC_Y MAPSELECT_DESC_TITLE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
"@MPUI_DESCRIPTION_CAPS", \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 0 0 0 0.8, \
|
||||
when( visArg ); ) \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MAPSELECT_DESC_X (MAPSELECT_DESC_Y+15) MAPSELECT_DESC_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
mapDesc, \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, \
|
||||
when( visArg );, autowrapped ) \
|
||||
PREPROC_TEXT_DRAW_VIS( MAPSELECT_SIZE_X MAPSELECT_SIZE_Y MAPSELECT_DESC_TITLE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
"@MPUI_MAP_SIZE_CAPS", \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 0 0 0 0.8, \
|
||||
when( visArg ); ) \
|
||||
PREPROC_TEXT_DRAW_VIS( MAPSELECT_SIZE_X (MAPSELECT_SIZE_Y+15) MAPSELECT_SIZE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
mapSize, \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, \
|
||||
when( visArg ); )
|
||||
|
||||
MAP_SELECT_DISPLAY( "@" + MAP_NAME + "_CAPS", "menu_" + dvarString( ui_preview ) + "_map_select_final", "@MPUI_MAPSIZE_" + MAP_SIZE, "@" + MAP_DESC, 1 )
|
||||
|
||||
// map selection ===========================================
|
||||
itemDef
|
||||
{
|
||||
name map_selection
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_MAPS
|
||||
rect (FRAME_CHOICE_X_START-1) (FRAME_CHOICE_Y_START-3) FRAME_BUTTON_WIDTH 308 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
elementwidth 30
|
||||
elementheight 19
|
||||
noscrollbars
|
||||
noBlinkingHighlight
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale CHOICE_TEXTSIZE
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor COLOR_TITLE
|
||||
disablecolor FRAME_GREY_RGB 1
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL
|
||||
modal
|
||||
visible when( dvarBool( settings_map_selected ) )
|
||||
/* x y w h len horzAlign vertAlign */
|
||||
userarea 3 0 0 (FRAME_BUTTON_WIDTH+1) 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_BACKGROUND */
|
||||
17 0 FRAME_BUTTON_WIDTH 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_NAME */
|
||||
0 1 17 18 16 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_A_BUTTON */
|
||||
onfocus { play CHOICE_FOCUS_SOUND; }
|
||||
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
|
||||
doubleclick
|
||||
{
|
||||
setDvar ui_mapname dvarString( ui_preview );
|
||||
play CHOICE_ACTION_SOUND;
|
||||
execNow "xupdatepartystate";
|
||||
deactivateBlur;
|
||||
close self;
|
||||
}
|
||||
execKeyInt DPAD_LEFT
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
execKeyInt DPAD_RIGHT
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
execKeyInt APAD_LEFT
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
execKeyInt APAD_RIGHT
|
||||
{
|
||||
SWITCH_MAP_LIST_ACTION
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
|
||||
#else //#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT
|
||||
#endif //#ifdef PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( menu_game_mode_upload_confirm, activateblur; execNow raiseFeederEvent Populate;, deactivateblur; close self;, 1 )
|
||||
onClose
|
||||
{
|
||||
deactivateblur;
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
execNow raiseFeederEvent Clear;
|
||||
}
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_FILESHARE_REPLACECONFIRM", 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
DYNAMIC_MENU_COMMON_FIELDS
|
||||
backgroundItemListbox "white"
|
||||
rect CHOICE_X_START CHOICE_Y_START CHOICE_SIZE_X 400
|
||||
menuItemsDef
|
||||
{
|
||||
maxRows 4
|
||||
DYNAMIC_MENU_COMMON_COLUMNS
|
||||
menuColDef
|
||||
{
|
||||
type MENU_ITEM_TYPE_LOC_TEXT
|
||||
rect 0 0 50 CHOICE_SIZE_Y ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
|
||||
maxChars 50
|
||||
}
|
||||
}
|
||||
onEvent Yes
|
||||
{
|
||||
open menu_game_mode_upload_save;
|
||||
close self;
|
||||
}
|
||||
onEvent No { close self; }
|
||||
onEvent Clear { execNow clearFeeder; }
|
||||
onEvent Populate {
|
||||
execNow addToFeeder Yes MENU_YES;
|
||||
execNow addToFeeder No MENU_CANCEL;
|
||||
}
|
||||
onfocus { play CHOICE_FOCUS_SOUND; }
|
||||
onListboxSelectionChange { play CHOICE_FOCUS_SOUND; }
|
||||
doubleclick { play CHOICE_FOCUS_SOUND;
|
||||
execNow raiseFeederEvent; }
|
||||
}
|
||||
}
|
||||
|
||||
// Redefinitions for MEDIUM_POPUP_SETUP popups
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X (POPUP_WIDTH-(POPUP_SIDE_PAD*2))
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_TOP
|
||||
#undef PLAYER_INFO_ALIGN
|
||||
#define PLAYER_INFO_ALIGN // Purposely set to nothing. The popup setup macro sets the alignment. If items within it set their own aligment, they end up offset incorrectly.
|
||||
#undef PLAYER_INFO_X_START
|
||||
#define PLAYER_INFO_X_START( frameWidth ) ( frameWidth - PLAYER_INFO_WIDTH - PLAYER_INFO_PAD )
|
||||
#undef PLAYER_INFO_Y_START
|
||||
#define PLAYER_INFO_Y_START( frameHeight ) ( PLAYER_INFO_PAD * 2 )
|
||||
#undef BG_BACKCOLOR
|
||||
#define BG_BACKCOLOR POPUP_BACKCOLOR
|
||||
// Redefinitions for MEDIUM_POPUP_SETUP popups
|
||||
|
||||
#define GAME_MODE_FILESHARE_UPLOAD_ACTION \
|
||||
execNow uploadCustomGametype ( getFeederData( "menu_game_mode_upload", "fileShareSlots", "slot" ) ); \
|
||||
setdvar customGameMode 1; \
|
||||
execNow "xupdatepartystate";
|
||||
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( menu_game_mode_upload_save, activateblur;, deactivateblur; close self;, POPUP_GLOW_WHITE, 0, 1 )
|
||||
onClose
|
||||
{
|
||||
deactivateblur;
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
}
|
||||
MEDIUM_POPUP_TITLE_VIS( "@MENU_SAVE_INFORMATION_CAPS", 1 )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_ORIGIN( 1 ) CHOICE_SIZE_X CHOICE_SIZE_Y HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
locString( "@MPUI_TITLE" )+" :",
|
||||
TEXTSIZE_SMALL, 0, 0, CHOICE_TEXTALIGN, 1 1 1 1,
|
||||
1 )
|
||||
FRAME_CHOICE_BUTTON( 2, dvarString(fsSelectedFileName), execNow demo_keyboard fileshareFileName; )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_ORIGIN( 3 ) CHOICE_SIZE_X CHOICE_SIZE_Y HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
locString( "@MPUI_DESCRIPTION" )+" :",
|
||||
TEXTSIZE_SMALL, 0, 0, CHOICE_TEXTALIGN, 1 1 1 1,
|
||||
1 )
|
||||
FRAME_CHOICE_BUTTON( 4, dvarString(fsSelectedFileDescription), execNow demo_keyboard fileshareFileDescription; )
|
||||
FRAME_CHOICE_BUTTON( 6, "@MENU_CONTINUE", GAME_MODE_FILESHARE_UPLOAD_ACTION; close self; close menu_game_mode_upload; )
|
||||
MEDIUM_POPUP_BACK_BUTTON
|
||||
}
|
208
mods/mp_patch/ui_mp/hud_ffa.menu
Normal file
208
mods/mp_patch/ui_mp/hud_ffa.menu
Normal file
@ -0,0 +1,208 @@
|
||||
// CONSOLE HUD - MP
|
||||
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/hud_gametypes.inc"
|
||||
#include "ui_mp/choices_setup_teams.menu"
|
||||
|
||||
#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_PLAYER ( max( player( score ), 0 ) / dvarInt( "ui_scorelimit" ) )
|
||||
#define BAR_PRECENT_BEST_OTHER_PLAYER ( Select( player( score ) == scoreatrank( 1 ), (max( scoreatrank( 2 ), 0 ) / dvarInt( "ui_scorelimit" )), (max( scoreatrank( 1 ), 0 ) / dvarInt( "ui_scorelimit" )) ) )
|
||||
|
||||
#define BEST_OTHER_PLAYER_SCORE ( Select( player( score ) == scoreatrank( 1 ), scoreatrank( 2 ), scoreatrank( 1 ) ) )
|
||||
|
||||
#define FSM_VISIBILITY ( isVisibilityBitSet( BIT_SELECTING_LOCATION ) && !isVisibilityBitSet( BIT_SPECTATING_CLIENT ) && !isVisibilityBitSet( BIT_SCOREBOARD_OPEN ) )
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name "scorebars_ffa_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 HUD_VISIBILITY !BIT_IN_KILLCAM SHOULD_DISPLAY_SCOREBAR !BIT_UI_ACTIVE !BIT_IN_GUIDED_MISSILE !BIT_IN_GUIDED_MISSILE_STATIC )
|
||||
|
||||
|
||||
#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 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_PLAYER );
|
||||
exp material( "hud_score_progress" );
|
||||
forecolor 0.42 0.68 0.46 0.8
|
||||
visible when( dvarInt( "ui_scorelimit" ) != 0 && player( score ) > 0 )
|
||||
decoration
|
||||
}
|
||||
|
||||
// Other player 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_BEST_OTHER_PLAYER );
|
||||
exp material( "hud_score_progress" );
|
||||
forecolor 0.73 0.29 0.19 0.8
|
||||
visible when( dvarInt( "ui_scorelimit" ) != 0 && BEST_OTHER_PLAYER_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_IS_MARINES );
|
||||
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_IS_OPFOR );
|
||||
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_ffa_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 )
|
||||
visibilityBits bits( BIT_HUD_VISIBLE SHOULD_DISPLAY_SCOREBAR !BIT_IN_KILLCAM !BIT_UI_ACTIVE !BIT_IN_GUIDED_MISSILE !BIT_IN_GUIDED_MISSILE_STATIC BIT_TEAM_FREE !BIT_IN_VEHICLE )
|
||||
|
||||
// draws Player score
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect SCORE_START_X -23 24 24 HORIZONTAL_ALIGN_USER_LEFT VERTICAL_ALIGN_USER_BOTTOM
|
||||
exp rect X( SCORE_START_X + ( (BAR_WIDTH-PROGRESS_OFFSET_X) * BAR_PERCENT_PLAYER ) );
|
||||
exp text( player( 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_PLAYER ) );
|
||||
exp material( "hud_frame_arrow" );
|
||||
forecolor 1 1 1 0.8
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
#define OT_SCORE_START_X (SCORE_START_X+2)
|
||||
// OTHER Player score
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect (OT_SCORE_START_X-1) -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_BEST_OTHER_PLAYER ) );
|
||||
exp text( BEST_OTHER_PLAYER_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_BEST_OTHER_PLAYER ) );
|
||||
exp material( "hud_frame_arrow" );
|
||||
forecolor 1 1 1 0.8
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
}
|
||||
}
|
1316
mods/mp_patch/ui_mp/hud_hardcore.menu
Normal file
1316
mods/mp_patch/ui_mp/hud_hardcore.menu
Normal file
File diff suppressed because it is too large
Load Diff
315
mods/mp_patch/ui_mp/hud_team.menu
Normal file
315
mods/mp_patch/ui_mp/hud_team.menu
Normal file
@ -0,0 +1,315 @@
|
||||
// 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
|
||||
}
|
||||
}
|
||||
}
|
830
mods/mp_patch/ui_mp/main.menu
Normal file
830
mods/mp_patch/ui_mp/main.menu
Normal file
@ -0,0 +1,830 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#define BUTTON_BG_WIDTH 180
|
||||
#define BUTTON_BG_Y_START 5
|
||||
|
||||
#define CHOICE_X_START -258
|
||||
#define CHOICE_Y_START BUTTON_BG_Y_START + 35
|
||||
|
||||
#define CHOICE_GROUP "main"
|
||||
|
||||
#define FLYOUT_NONE 0
|
||||
#define FLYOUT_LIVE 1
|
||||
#define FLYOUT_OPERATIONS 2
|
||||
#define FLYOUT_THEATER 3
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/friendslist.inc"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X BUTTON_BG_WIDTH
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
#undef CHOICE_Y_SPACING
|
||||
#define CHOICE_Y_SPACING CHOICE_SIZE_Y
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
|
||||
#define FLYOUT_BG_COLOR 0 0 0 0.3
|
||||
|
||||
{
|
||||
assetGlobalDef
|
||||
{
|
||||
fadeClamp 1.0 // sets the fadeup alpha
|
||||
fadeCycle 1 // how often fade happens in milliseconds
|
||||
fadeAmount 0.1 // amount to adjust alpha per cycle
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "main"
|
||||
fullScreen 1
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop MENU_MUSIC
|
||||
style WINDOW_STYLE_EMPTY
|
||||
onOpen
|
||||
{
|
||||
uiScript stopRefresh;
|
||||
open main_text;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
}
|
||||
onESC
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#define RESET_GAMEMODE_DVARS \
|
||||
setdvar xblive_basictraining 0; \
|
||||
setdvar xblive_privatematch 0; \
|
||||
setdvar xblive_wagermatch 0; \
|
||||
setdvar xblive_theater 0; \
|
||||
setdvar xblive_rankedmatch 0;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "main_text"
|
||||
fullScreen 1
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop MENU_MUSIC
|
||||
style WINDOW_STYLE_EMPTY
|
||||
onOpen
|
||||
{
|
||||
setdvar ui_version_show "0";
|
||||
setLocalVarBool ui_centerPopup 0;
|
||||
setdvar ui_bg_image "";
|
||||
RESET_GAMEMODE_DVARS
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
}
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect FULLSCREEN_WIDE
|
||||
background "menu_mp_background_main2"
|
||||
forecolor 1 1 1 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
// lower corner glows
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN;
|
||||
background "menu_mp_background_glow"
|
||||
forecolor 0.384 0.725 0.725 0
|
||||
exp forecolor a ( ((sin(milliseconds()/1500) + 1) * 0.25) + 0.25 )
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN;
|
||||
background "menu_mp_background_glow"
|
||||
forecolor 0.384 0.725 0.725 0
|
||||
exp forecolor a ( ((sin(milliseconds()/480) + 1) * 0.25) + 0.25 )
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
#undef THINFOG_SCROLL_TIME
|
||||
#define THINFOG_SCROLL_TIME 50000
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect -107 0 1708 480
|
||||
exp rect X((-961) + ((float(milliseconds() % THINFOG_SCROLL_TIME) / THINFOG_SCROLL_TIME) * (854)))
|
||||
background "animbg_fogscrollthin"
|
||||
forecolor 1 1 1 0.5
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
#include "ui/bg.inc"
|
||||
|
||||
|
||||
// cod:bo logo
|
||||
#define LOGO_X_OFFSET 45
|
||||
#define LOGO_Y_OFFSET 70
|
||||
|
||||
#define LOGO_WIDTH 228
|
||||
#define LOGO_HEIGHT 107
|
||||
itemDef
|
||||
{
|
||||
visible 1
|
||||
rect (-LOGO_WIDTH - LOGO_X_OFFSET) (-LOGO_HEIGHT - LOGO_Y_OFFSET) LOGO_WIDTH LOGO_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM
|
||||
forecolor 1 1 1 1
|
||||
style WINDOW_STYLE_SHADER
|
||||
background "menu_mp_background_logo"
|
||||
decoration
|
||||
}
|
||||
|
||||
#define RESET_GAME_MODES \
|
||||
setdvar systemlink "0"; \
|
||||
setdvar splitscreen "0"; \
|
||||
setdvar onlinegame "1"; \
|
||||
setdvar xblive_privatematch "0"; \
|
||||
setdvar xblive_rankedmatch "0"; \
|
||||
setdvar xblive_wagermatch "0"; \
|
||||
setdvar xblive_clanmatch "0"; \
|
||||
setdvar xblive_theater "0"; \
|
||||
setdvar xblive_basictraining "0";
|
||||
|
||||
#define SIGN_IN_CMD exec "xsigninlive";
|
||||
|
||||
#define SETUP_SIGNIN \
|
||||
if( IsSignedInToLive() == 0 ) \
|
||||
{ \
|
||||
SIGN_IN_CMD \
|
||||
open error_netconnect_popmenu; \
|
||||
} \
|
||||
elseif( isDemonwareFetchingDone() == 1 ) \
|
||||
{ \
|
||||
execnow "setclientbeingused"; \
|
||||
if( !getDStat( "CacLoadouts", "resetWarningDislayed" ) ) \
|
||||
{ \
|
||||
open customclassesreset; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open live_flyout; \
|
||||
execnow readFileShare; \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open popup_connectingtodwhandler; \
|
||||
}
|
||||
|
||||
|
||||
// ----------------- BEGIN Scroller --------------------------
|
||||
#include "ui/scroller.inc"
|
||||
// ----------------- END Scroller ----------------------------
|
||||
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MENU_MULTIPLAYER_CAPS", ITEM_ALIGN_TOP_RIGHT, dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MENU_PLAY_CAPS", ITEM_ALIGN_TOP_RIGHT, dvarInt( ui_flyoutHasFocus ) == FLYOUT_LIVE )
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MENU_OPERATIONS_CAPS", ITEM_ALIGN_TOP_RIGHT, dvarInt( ui_flyoutHasFocus ) == FLYOUT_OPERATIONS )
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MPUI_THEATER_LOBBY_CAPS", ITEM_ALIGN_TOP_RIGHT, dvarInt( ui_flyoutHasFocus ) == FLYOUT_THEATER )
|
||||
|
||||
// ----------------- BEGIN Message of the day ------------------------
|
||||
// size version 1: 248 126
|
||||
|
||||
//#define INFO_TEXT dvarString( "motd" )
|
||||
//#define INFO_TITLE "@MPUI_MOTD"
|
||||
|
||||
//#define MP_MOTD 1
|
||||
|
||||
//#include "ui_mp/info_box.inc"
|
||||
// ----------------- END Message of the day --------------------------
|
||||
|
||||
// Menu items -------------------------------------------
|
||||
|
||||
// highlight when flyout is open
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CHOICE_ORIGIN( 1 ) (CHOICE_SIZE_X + 1) CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, "white", FLYOUT_BG_COLOR, when( dvarInt( ui_flyoutHasFocus ) == FLYOUT_LIVE );, ; )
|
||||
TEMP_CHOICE_BUTTON_VIS( 1, "@MENU_PLAY_CAPS",
|
||||
SETUP_SIGNIN,
|
||||
IsSignedInToLive() && ( dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE || dvarInt( ui_flyoutHasFocus ) == FLYOUT_LIVE ) )
|
||||
TEMP_CHOICE_BUTTON_VIS_DISABLED( 1, "@MENU_PLAY_CAPS",
|
||||
SETUP_SIGNIN,
|
||||
!IsSignedInToLive() && ( dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE || dvarInt( ui_flyoutHasFocus ) == FLYOUT_LIVE ) )
|
||||
// Gray text when flyout is open
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 1 ), 0 0, "@MENU_PLAY_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE && dvarInt( ui_flyoutHasFocus ) != FLYOUT_LIVE ); )
|
||||
|
||||
|
||||
#define SETUP_OPERATIONS_FLYOUT \
|
||||
if( IsSignedInToLive() == 0 ) \
|
||||
{ \
|
||||
SIGN_IN_CMD \
|
||||
open error_netconnect_popmenu; \
|
||||
} \
|
||||
elseif( isDemonwareFetchingDone() == 1 ) \
|
||||
{ \
|
||||
execnow "setclientbeingused"; \
|
||||
open operations_flyout; \
|
||||
execnow readFileShare; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open popup_connectingtodwhandler; \
|
||||
}
|
||||
|
||||
// highlight when flyout is open
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CHOICE_ORIGIN( 2 ) CHOICE_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, "white", FLYOUT_BG_COLOR, when( dvarInt( ui_flyoutHasFocus ) == FLYOUT_OPERATIONS );, ; )
|
||||
TEMP_CHOICE_BUTTON_VIS( 2, "@MENU_OPERATIONS_CAPS",
|
||||
SETUP_OPERATIONS_FLYOUT,
|
||||
( dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE || dvarInt( ui_flyoutHasFocus ) == FLYOUT_OPERATIONS ) )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 2 ), 0 0, "@MENU_OPERATIONS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE && dvarInt( ui_flyoutHasFocus ) != FLYOUT_OPERATIONS ); )
|
||||
|
||||
#define SETUP_THEATER_FLYOUT \
|
||||
if( IsSignedInToLive() == 0 ) \
|
||||
{ \
|
||||
SIGN_IN_CMD \
|
||||
open error_netconnect_popmenu; \
|
||||
} \
|
||||
elseif( isDemonwareFetchingDone() == 1 ) \
|
||||
{ \
|
||||
execnow "setclientbeingused"; \
|
||||
open theater_flyout; \
|
||||
execnow readFileShare; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open popup_connectingtodwhandler; \
|
||||
}
|
||||
|
||||
// highlight when flyout is open
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CHOICE_ORIGIN( 3 ) CHOICE_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, "white", FLYOUT_BG_COLOR, when( dvarInt( ui_flyoutHasFocus ) == FLYOUT_THEATER );, ; )
|
||||
TEMP_CHOICE_BUTTON_VIS( 3, "@MPUI_THEATER_LOBBY_CAPS",
|
||||
SETUP_THEATER_FLYOUT,
|
||||
( dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE || dvarInt( ui_flyoutHasFocus ) == FLYOUT_THEATER ) )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 3 ), 0 0, "@MPUI_THEATER_LOBBY_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE && dvarInt( ui_flyoutHasFocus ) != FLYOUT_THEATER ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_VIS( 4, "@MENU_SETTINGS_CAPS",
|
||||
open options_new_pc,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 4 ), 0 0, "@MENU_SETTINGS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
/*TEMP_CHOICE_BUTTON_VIS( 5, "@MENU_STORE_CAPS",
|
||||
uiscript openurl "www.callofduty.com/game",
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 5 ), 0 0, "@MENU_STORE_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )*/
|
||||
|
||||
TEMP_CHOICE_BUTTON_VIS( 5, "@MENU_MODS_CAPS",
|
||||
open select_mod,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 5 ), 0 0, "@MENU_MODS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_VIS( 6, "@MENU_MAIN_MENU_CAPS",
|
||||
open single_popmenu,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 6 ), 0 0, "@MENU_MAIN_MENU_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_VIS( 7, "@MENU_QUIT_CAPS",
|
||||
open quit_popmenu,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 7 ), 0 0, "@MENU_QUIT_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, NO_BG_DISABLED_COLOR, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
FRIENDS_BUTTON
|
||||
}
|
||||
|
||||
#define FADE_STATE( isLast, colorArg, menuName, nextName ) \
|
||||
state \
|
||||
{ \
|
||||
name "FadeIn" \
|
||||
forecolor colorArg \
|
||||
\
|
||||
onEnter \
|
||||
{ \
|
||||
execNow if( isLast != 1 ) ui_animate menuName nextName FadeIn (FLYOUT_TIME/FLYOUT_BUTTON_COUNT); \
|
||||
execNow if( isLast == 1 ) set ui_flownOut 1; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define FLYOUT_ARGS( isLast, menuName, colorArg, myName, nextName ) \
|
||||
name myName \
|
||||
FADE_STATE( isLast, colorArg, menuName, nextName )
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
|
||||
#undef CHOICE_TEXTALIGN
|
||||
#define CHOICE_TEXTALIGN ITEM_ALIGN_MIDDLE_LEFT
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "flyout"
|
||||
|
||||
#define FLYOUT_TIME 200
|
||||
#define FLYOUT_BG_X_START ( -258 + BUTTON_BG_WIDTH + 1 )
|
||||
#define FLYOUT_BG_WIDTH 180
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START FLYOUT_BG_X_START
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X FLYOUT_BG_WIDTH
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_submenu_over"
|
||||
|
||||
#undef FLYOUT_BUTTON_COUNT
|
||||
#define FLYOUT_BUTTON_COUNT 5
|
||||
#undef FLYOUT_FIRST_CHOICE_Y
|
||||
#define FLYOUT_FIRST_CHOICE_Y 1
|
||||
|
||||
#define SETUP_ACTION_LOBBY \
|
||||
execNow "exec "XBOXLIVE_MP_CFG;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name live_flyout
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop MENU_MUSIC
|
||||
control MENU_CONTROL_NO_GUESTS
|
||||
|
||||
onOpen
|
||||
{
|
||||
execNow ui_animate live_flyout ButtonBackground Fly FLYOUT_TIME;
|
||||
execNow ui_animate live_flyout FirstFlyout FadeIn (FLYOUT_TIME/FLYOUT_BUTTON_COUNT);
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_LIVE;
|
||||
}
|
||||
onESC { close self; }
|
||||
onClose
|
||||
{
|
||||
execNow ui_animate live_flyout ButtonBackground Default 0;
|
||||
execNow ui_animate live_flyout FirstFlyout Default 0;
|
||||
execNow ui_animate live_flyout SecondFlyout Default 0;
|
||||
execNow ui_animate live_flyout ThirdFlyout Default 0;
|
||||
execNow ui_animate live_flyout FourthFlyout Default 0;
|
||||
execNow ui_animate live_flyout FifthFlyout Default 0;
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
}
|
||||
|
||||
/* exit flyout button */
|
||||
itemDef
|
||||
{
|
||||
name "ExitFlyoutButton"
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
visible 1
|
||||
action { close self; }
|
||||
}
|
||||
|
||||
/* button background */
|
||||
itemDef
|
||||
{
|
||||
name "ButtonBackground"
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH CHOICE_Y_SPACING CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
forecolor FLYOUT_BG_COLOR
|
||||
background "white"
|
||||
visible 1
|
||||
decoration
|
||||
|
||||
state
|
||||
{
|
||||
name "Fly"
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH ( CHOICE_Y_SPACING * FLYOUT_BUTTON_COUNT ) CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
}
|
||||
}
|
||||
|
||||
HINT_TEXT_ALL( (FLYOUT_BUTTON_COUNT + 1), (FLYOUT_BG_X_START + 10), 5, (FLYOUT_BG_WIDTH - 20), (dvarString( ui_lobby_desc )), 1 1 1 1, ( dvarInt( ui_flownOut ) == 1 ), ; )
|
||||
|
||||
#define SETUP_ACTION_SERVER_BROWSER \
|
||||
RESET_GAME_MODES \
|
||||
SETUP_ACTION_LOBBY \
|
||||
close self; \
|
||||
open server_browser_main;
|
||||
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( FLYOUT_FIRST_CHOICE_Y, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( FLYOUT_FIRST_CHOICE_Y, "@MENU_SERVER_BROWSER_CAPS",
|
||||
SETUP_ACTION_SERVER_BROWSER,
|
||||
setDvar ui_lobby_desc "@MENU_SERVER_BROWSER_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
dvarBool(ui_ethernetLinkActive),
|
||||
FLYOUT_ARGS( 0, live_flyout, TEXT_COLOR_NO_HL, FirstFlyout, SecondFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( FLYOUT_FIRST_CHOICE_Y, "@MENU_SERVER_BROWSER_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
#define SETUP_ACTION_RANKEDMATCH \
|
||||
RESET_GAME_MODES \
|
||||
SETUP_ACTION_LOBBY \
|
||||
close self; \
|
||||
exec "quickmatch";
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 2, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 2, "@MENU_RANKED_MATCH_CAPS",
|
||||
SETUP_ACTION_RANKEDMATCH,
|
||||
setDvar ui_lobby_desc "@MENU_RANKED_MATCH_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
dvarBool(ui_ethernetLinkActive),
|
||||
FLYOUT_ARGS( 0, live_flyout, TEXT_COLOR_NO_HL, SecondFlyout, ThirdFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 2, "@MENU_RANKED_MATCH_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
|
||||
#define SETUP_ACTION_WAGERMATCH \
|
||||
RESET_GAME_MODES \
|
||||
setDvar xblive_wagermatch "1"; \
|
||||
SETUP_ACTION_LOBBY \
|
||||
close self; \
|
||||
exec "wagermatch";
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 3, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 3, "@MPUI_WAGER_MATCH_CAPS",
|
||||
SETUP_ACTION_WAGERMATCH,
|
||||
setDvar ui_lobby_desc "@MPUI_WAGER_MATCH_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
dvarBool(ui_ethernetLinkActive) && dvarBool(ui_mpWagerMatchEnabled),
|
||||
FLYOUT_ARGS( 0, live_flyout, TEXT_COLOR_NO_HL, ThirdFlyout, FourthFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 3, "@MPUI_WAGER_MATCH_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 && dvarBool(ui_mpWagerMatchEnabled) )
|
||||
|
||||
|
||||
#define SETUP_ACTION_BASIC_TRAINING \
|
||||
RESET_GAME_MODES \
|
||||
setDvar onlinegame "1"; \
|
||||
setDvar xblive_basictraining "1"; \
|
||||
SETUP_ACTION_LOBBY \
|
||||
execNow "exec dvar_defaults.cfg"; \
|
||||
setDvar ui_mapname "mp_mountain"; \
|
||||
setDvar ui_gametype "tdm"; \
|
||||
close self; \
|
||||
open menu_xboxlive_basictraining;
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 4, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 4, "@MPUI_BASICTRAINING_CAPS",
|
||||
SETUP_ACTION_BASIC_TRAINING,
|
||||
setDvar ui_lobby_desc "@MPUI_BASICTRAINING_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
dvarBool(ui_ethernetLinkActive),
|
||||
FLYOUT_ARGS( 0, live_flyout, TEXT_COLOR_NO_HL, FourthFlyout, FifthFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 4, "@MPUI_BASICTRAINING_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
#define SETUP_ACTION_PRIVATEMATCH \
|
||||
RESET_GAME_MODES \
|
||||
setDvar onlinegame "1"; \
|
||||
setDvar xblive_privatematch "1"; \
|
||||
SETUP_ACTION_LOBBY \
|
||||
setDvar ui_mapname "mp_mountain"; \
|
||||
setDvar ui_gametype "tdm"; \
|
||||
close self; \
|
||||
open menu_xboxlive_privatelobby;
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 5, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 5, "@MPUI_CUSTOM_MATCH_CAPS",
|
||||
SETUP_ACTION_PRIVATEMATCH,
|
||||
setDvar ui_lobby_desc "@MPUI_CUSTOM_MATCH_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
dvarBool(ui_ethernetLinkActive),
|
||||
FLYOUT_ARGS( 1, live_flyout, TEXT_COLOR_NO_HL, FifthFlyout, NoFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 5, "@MPUI_CUSTOM_MATCH_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
} // live_flyout
|
||||
|
||||
#undef FLYOUT_BUTTON_COUNT
|
||||
#define FLYOUT_BUTTON_COUNT 4
|
||||
|
||||
#undef FLYOUT_FIRST_CHOICE_Y
|
||||
#define FLYOUT_FIRST_CHOICE_Y 2
|
||||
menuDef
|
||||
{
|
||||
name operations_flyout
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop MENU_MUSIC
|
||||
control MENU_CONTROL_NO_GUESTS
|
||||
|
||||
onOpen
|
||||
{
|
||||
execNow ui_animate operations_flyout ButtonBackground Fly FLYOUT_TIME;
|
||||
execNow ui_animate operations_flyout FirstFlyout FadeIn (FLYOUT_TIME/FLYOUT_BUTTON_COUNT);
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_OPERATIONS;
|
||||
}
|
||||
onESC { close self; }
|
||||
onClose
|
||||
{
|
||||
execNow ui_animate operations_flyout ButtonBackground Default 0;
|
||||
execNow ui_animate operations_flyout FirstFlyout Default 0;
|
||||
execNow ui_animate operations_flyout SecondFlyout Default 0;
|
||||
execNow ui_animate operations_flyout ThirdFlyout Default 0;
|
||||
execNow ui_animate operations_flyout FourthFlyout Default 0;
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
}
|
||||
|
||||
/* exit flyout button */
|
||||
itemDef
|
||||
{
|
||||
name "ExitFlyoutButton"
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
visible 1
|
||||
action { close self; }
|
||||
}
|
||||
|
||||
/* button background */
|
||||
itemDef
|
||||
{
|
||||
name "ButtonBackground"
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH CHOICE_Y_SPACING CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
forecolor FLYOUT_BG_COLOR
|
||||
background "white"
|
||||
visible 1
|
||||
decoration
|
||||
|
||||
state
|
||||
{
|
||||
name "Fly"
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH ( CHOICE_Y_SPACING * FLYOUT_BUTTON_COUNT ) CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
}
|
||||
}
|
||||
|
||||
HINT_TEXT_ALL( (FLYOUT_BUTTON_COUNT + FLYOUT_FIRST_CHOICE_Y), (FLYOUT_BG_X_START + 10), 5, (FLYOUT_BG_WIDTH - 20), (dvarString( ui_lobby_desc )), 1 1 1 1, ( dvarInt( ui_flownOut ) == 1 ), ; )
|
||||
|
||||
#define SETUP_ACTION_CREATEACLASS \
|
||||
close self; \
|
||||
if ( IsSignedInToLive() && areStatsFetched() && !IsGuest() ) \
|
||||
{ \
|
||||
exec "set ui_cac_ingame 0"; \
|
||||
setdvar invite_visible "0"; \
|
||||
open cac_main; \
|
||||
}
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( FLYOUT_FIRST_CHOICE_Y, BG_HL_COLOR, FLYOUT_BG_WIDTH, ( dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ) ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( FLYOUT_FIRST_CHOICE_Y, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
SETUP_ACTION_CREATEACLASS,
|
||||
setDvar ui_lobby_desc "@MPUI_CAC_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
!IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ),
|
||||
FLYOUT_ARGS( 0, operations_flyout, TEXT_COLOR_NO_HL, FirstFlyout, SecondFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( FLYOUT_FIRST_CHOICE_Y, "@MPUI_CREATE_A_CLASS_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( FLYOUT_FIRST_CHOICE_Y, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
/*NO-OP*/;,
|
||||
exec set ui_lobby_desc GET_UNLOCK_LEVEL_STRING( FEATURE_CREATE_A_CLASS );,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ),
|
||||
FLYOUT_ARGS( 0, operations_flyout, NO_BG_DISABLED_COLOR, FirstFlyout, SecondFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( FLYOUT_FIRST_CHOICE_Y, "@MPUI_CREATE_A_CLASS_CAPS", NO_BG_DISABLED_COLOR, dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ) )
|
||||
CHOICE_LOCKEDICON_VIS( FLYOUT_FIRST_CHOICE_Y, "menu_mp_lobby_locked", when( dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( "FEATURE_CREATE_A_CLASS" ) ) )
|
||||
|
||||
#define SETUP_ACTION_CONTRACTS \
|
||||
close self; \
|
||||
if ( IsSignedInToLive() && areStatsFetched() && !IsGuest() ) \
|
||||
{ \
|
||||
open menu_xboxlive_contracts; \
|
||||
}
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 3, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( FEATURE_CONTRACTS ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( 3, "@MENU_CONTRACTS_CAPS",
|
||||
SETUP_ACTION_CONTRACTS,
|
||||
exec set ui_lobby_desc "@MPUI_CONTRACTS_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
!IS_ITEM_LOCKED( FEATURE_CONTRACTS ),
|
||||
FLYOUT_ARGS( 0, operations_flyout, TEXT_COLOR_NO_HL, SecondFlyout, ThirdFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 3, "@MENU_CONTRACTS_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( FEATURE_CONTRACTS ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( 3, "@MENU_CONTRACTS_CAPS",
|
||||
/*NO-OP*/;,
|
||||
exec set ui_lobby_desc GET_UNLOCK_LEVEL_STRING( FEATURE_CONTRACTS );,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
IS_ITEM_LOCKED( FEATURE_CONTRACTS ),
|
||||
FLYOUT_ARGS( 1, operations_flyout, NO_BG_DISABLED_COLOR, SecondFlyout, ThirdFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 3, "@MENU_CONTRACTS_CAPS", NO_BG_DISABLED_COLOR, dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( FEATURE_CONTRACTS ) )
|
||||
CHOICE_LOCKEDICON_VIS( 3, "menu_mp_lobby_locked", when( dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( FEATURE_CONTRACTS ) ) )
|
||||
|
||||
#define SETUP_ACTION_KILLSTREAKS \
|
||||
close self; \
|
||||
if ( IsSignedInToLive() && areStatsFetched() && !IsGuest() ) \
|
||||
{ \
|
||||
open menu_xboxlive_killstreaks; \
|
||||
}
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 4, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( 4, "@MENU_KILLSTREAKS_CAPS",
|
||||
SETUP_ACTION_KILLSTREAKS,
|
||||
exec set ui_lobby_desc "@MPUI_KILLSTREAKS_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
!IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ),
|
||||
FLYOUT_ARGS( 0, operations_flyout, TEXT_COLOR_NO_HL, ThirdFlyout, FourthFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 4, "@MENU_KILLSTREAKS_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 && !IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( 4, "@MENU_KILLSTREAKS_CAPS",
|
||||
/*NO-OP*/;,
|
||||
exec set ui_lobby_desc GET_UNLOCK_LEVEL_STRING( FEATURE_KILLSTREAKS );,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ),
|
||||
FLYOUT_ARGS( 1, operations_flyout, NO_BG_DISABLED_COLOR, ThirdFlyout, FourthFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 4, "@MENU_KILLSTREAKS_CAPS", NO_BG_DISABLED_COLOR, dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) )
|
||||
CHOICE_LOCKEDICON_VIS( 4, "menu_mp_lobby_locked", when( dvarInt( ui_flownOut ) == 1 && IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) ) )
|
||||
|
||||
// #define SETUP_ACTION_PLAYERCARD \ defined in ui_mp\friendslist.inc
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 5, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 5, "@MENU_PLAYERCARD_CAPS",
|
||||
close self; SETUP_ACTION_PLAYERCARD,
|
||||
exec set ui_lobby_desc "@MPUI_PLAYERCARD_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
1,
|
||||
FLYOUT_ARGS( 0, operations_flyout, TEXT_COLOR_NO_HL, FourthFlyout, NoFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 5, "@MENU_PLAYERCARD_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
} // operations_flyout
|
||||
|
||||
#undef FLYOUT_BUTTON_COUNT
|
||||
#define FLYOUT_BUTTON_COUNT 3
|
||||
|
||||
#undef FLYOUT_FIRST_CHOICE_Y
|
||||
#define FLYOUT_FIRST_CHOICE_Y 3
|
||||
menuDef
|
||||
{
|
||||
name theater_flyout
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop MENU_MUSIC
|
||||
control MENU_CONTROL_NO_GUESTS
|
||||
|
||||
onOpen
|
||||
{
|
||||
execNow ui_animate theater_flyout ButtonBackground Fly FLYOUT_TIME;
|
||||
execNow ui_animate theater_flyout FirstFlyout FadeIn (FLYOUT_TIME/FLYOUT_BUTTON_COUNT);
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_THEATER;
|
||||
}
|
||||
onESC { close self; }
|
||||
onClose
|
||||
{
|
||||
execNow ui_animate theater_flyout ButtonBackground Default 0;
|
||||
execNow ui_animate theater_flyout FirstFlyout Default 0;
|
||||
execNow ui_animate theater_flyout SecondFlyout Default 0;
|
||||
execNow ui_animate theater_flyout ThirdFlyout Default 0;
|
||||
execNow set ui_flownOut 0;
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
}
|
||||
|
||||
/* exit flyout button */
|
||||
itemDef
|
||||
{
|
||||
name "ExitFlyoutButton"
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
visible 1
|
||||
action { close self; }
|
||||
}
|
||||
|
||||
/* button background */
|
||||
itemDef
|
||||
{
|
||||
name "ButtonBackground"
|
||||
style WINDOW_STYLE_SHADER
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH CHOICE_Y_SPACING CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
forecolor FLYOUT_BG_COLOR
|
||||
background "white"
|
||||
visible 1
|
||||
decoration
|
||||
|
||||
state
|
||||
{
|
||||
name "Fly"
|
||||
rect FLYOUT_BG_X_START CHOICE_Y( FLYOUT_FIRST_CHOICE_Y ) FLYOUT_BG_WIDTH ( CHOICE_Y_SPACING * FLYOUT_BUTTON_COUNT ) CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_TOP
|
||||
}
|
||||
}
|
||||
|
||||
HINT_TEXT_ALL( (FLYOUT_BUTTON_COUNT + FLYOUT_FIRST_CHOICE_Y), (FLYOUT_BG_X_START + 10), 5, (FLYOUT_BG_WIDTH - 20), (dvarString( ui_lobby_desc )), 1 1 1 1, ( dvarInt( ui_flownOut ) == 1 ), ; )
|
||||
|
||||
#define SETUP_ACTION_FILESHARE \
|
||||
setdvar ui_theater_shortcut_pc 1; \
|
||||
close self; \
|
||||
open menu_fileshare_myshare;
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( FLYOUT_FIRST_CHOICE_Y, BG_HL_COLOR, FLYOUT_BG_WIDTH, ( dvarInt( ui_flownOut ) == 1 ) )
|
||||
TEMP_CHOICE_BUTTON_ALL( FLYOUT_FIRST_CHOICE_Y, "@MENU_FILESHARE_MYSHARE_CAPS",
|
||||
SETUP_ACTION_FILESHARE,
|
||||
setDvar ui_lobby_desc "@MPUI_FILE_SHARE_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
1,
|
||||
FLYOUT_ARGS( 0, theater_flyout, TEXT_COLOR_NO_HL, FirstFlyout, SecondFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( FLYOUT_FIRST_CHOICE_Y, "@MENU_FILESHARE_MYSHARE_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
|
||||
#define SETUP_ACTION_RECENTGAMES \
|
||||
setdvar ui_theater_shortcut_pc 1; \
|
||||
close self; \
|
||||
open menu_fileshare_myrecentgames;
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 4, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 4, "@MENU_FILESHARE_MYRECENTGAMES_CAPS",
|
||||
SETUP_ACTION_RECENTGAMES,
|
||||
exec set ui_lobby_desc "@MPUI_MY_RECENT_GAMES_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
1,
|
||||
FLYOUT_ARGS( 0, theater_flyout, TEXT_COLOR_NO_HL, SecondFlyout, ThirdFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 4, "@MENU_FILESHARE_MYRECENTGAMES_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
#define SETUP_ACTION_COMMUNITY \
|
||||
if ( canShowContentFromUser( 0 ) ) \
|
||||
{ \
|
||||
setdvar ui_theater_shortcut_pc 1; \
|
||||
close self; \
|
||||
open menu_fileshare_community; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open menu_community_viewwarning; \
|
||||
}
|
||||
|
||||
TEMP_CHOICE_HIGHLIGHT_SOLID_WIDTH( 5, BG_HL_COLOR, FLYOUT_BG_WIDTH, dvarInt( ui_flownOut ) == 1 )
|
||||
TEMP_CHOICE_BUTTON_ALL( 5, "@MENU_FILESHARE_COMMUNITY_CAPS",
|
||||
SETUP_ACTION_COMMUNITY,
|
||||
exec set ui_lobby_desc "@MPUI_COMMUNITY_DESC";,
|
||||
CLEARUIHINT,
|
||||
1 1 1 0,
|
||||
1,
|
||||
FLYOUT_ARGS( 1, theater_flyout, TEXT_COLOR_NO_HL, ThirdFlyout, NoFlyout ) )
|
||||
TEMP_CHOICE_BUTTON_HIGHLIGHT_TEXT( 5, "@MENU_FILESHARE_COMMUNITY_CAPS", TEXT_COLOR_HL, dvarInt( ui_flownOut ) == 1 )
|
||||
|
||||
} // theater_flyout
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( customclassesreset, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_NOTICE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@MENU_RESETCUSTOMCLASSES", 1 )
|
||||
|
||||
#define LOCAL_ACCEPT_RESET_CAC \
|
||||
execnow statWriteDDL cacloadouts resetWarningDislayed 1; \
|
||||
execnow uploadstats; \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
close customclassesreset; \
|
||||
open live_flyout;
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_OK", LOCAL_ACCEPT_RESET_CAC, 1, ; )
|
||||
}
|
||||
|
||||
// ====================== single player confirmation =========================
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( error_netconnect_popmenu, ;, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_NOTICE", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( "@XBOXLIVE_NETCONNECTION", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_EXIT", close self;, 1, ; )
|
||||
}
|
||||
|
||||
#define SETUP_SINGLE_PLAYER \
|
||||
execnow "set ui_skipMainLockout 0"; \
|
||||
setdvar ui_changed_exe 1; \
|
||||
exec "wait;wait;wait"; \
|
||||
uiScript startSingleplayer;
|
||||
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 2
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( single_popmenu, setFocus single_popmenu_2, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_SWITCH_TO_SOLO_COOP_MENU", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", SETUP_SINGLE_PLAYER, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name single_popmenu_2 )
|
||||
}
|
||||
}
|
162
mods/mp_patch/ui_mp/mods.menu
Normal file
162
mods/mp_patch/ui_mp/mods.menu
Normal file
@ -0,0 +1,162 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#define CHOICE_GROUP "mods"
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#define MOD_NAME_X 40
|
||||
#define MOD_NAME_Y ( FRAME_CHOICE_Y_START - 7 )
|
||||
#define MOD_NAME_HEIGHT 30
|
||||
#define MOD_NAME_SIZE MOD_IMAGE_WIDTH MOD_NAME_HEIGHT
|
||||
|
||||
#define MOD_IMAGE_X MOD_NAME_X
|
||||
#define MOD_IMAGE_Y (MOD_NAME_Y + MOD_NAME_HEIGHT + 15)
|
||||
#define MOD_IMAGE_ASPECT_RATIO 1.0
|
||||
#define MOD_IMAGE_WIDTH 180
|
||||
#define MOD_IMAGE_HEIGHT (MOD_IMAGE_WIDTH * MOD_IMAGE_ASPECT_RATIO)
|
||||
#define MOD_IMAGE_SIZE MOD_IMAGE_WIDTH MOD_IMAGE_HEIGHT
|
||||
|
||||
#define MOD_DESC_X MOD_NAME_X
|
||||
#define MOD_DESC_Y (MOD_IMAGE_Y + MOD_IMAGE_HEIGHT + 15)
|
||||
#define MOD_DESC_SIZE MOD_IMAGE_WIDTH 60
|
||||
|
||||
#undef DEFAULT_SLIDE_IN_SPEED
|
||||
#define DEFAULT_SLIDE_IN_SPEED 180
|
||||
|
||||
#undef DEFAULT_SLIDE_OUT_SPEED
|
||||
#define DEFAULT_SLIDE_OUT_SPEED 180
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
deactivateBlur; \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
close self;
|
||||
|
||||
#define MOD_DESC_DISPLAY( titleText, imageMat, descText, visArg ) \
|
||||
PREPROC_TEXT_DRAW_ALL( MOD_NAME_X MOD_NAME_Y MOD_NAME_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
titleText, \
|
||||
TEXTSIZE_TITLE, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
|
||||
when( visArg );, ; ) \
|
||||
PREPROC_SHADER_DRAW_VIS_EX( MOD_IMAGE_X MOD_IMAGE_Y MOD_IMAGE_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, \
|
||||
imageMat, 1 1 1 1, \
|
||||
when( visArg );, \
|
||||
; ) \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MOD_DESC_X MOD_DESC_Y MOD_DESC_SIZE HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, \
|
||||
descText, \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1, \
|
||||
when( visArg );, autowrapped )
|
||||
|
||||
menuDef
|
||||
{
|
||||
name select_mod
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
play uin_navigation_menu_lg_open;
|
||||
setdvar invite_visible "0";
|
||||
setFocus mod_selection;
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
setdvar invite_visible "1";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
FRAME_DEFAULT
|
||||
|
||||
FRAME_TITLE_DEFAULT( "@MENU_MODS_CAPS", 1 )
|
||||
FRAME_SUBTITLE_DEFAULT( "^3" + (locString( "@MENU_MODS_LOADED_CAPS" ) + dvarString( fs_game ) ) + "^7", when(dvarString( fs_game ) != "") )
|
||||
|
||||
#define MOD_IMAGE "playlist_custom"
|
||||
#define MOD_NAME dvarString( ui_mod_name )
|
||||
#define MOD_DESC dvarString( ui_mod_desc )
|
||||
|
||||
MOD_DESC_DISPLAY( MOD_NAME, MOD_IMAGE, MOD_DESC, 1 )
|
||||
|
||||
// gametype selection ===========================================
|
||||
itemDef
|
||||
{
|
||||
name mod_selection
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_MODS
|
||||
rect (FRAME_CHOICE_X_START-1) ( FRAME_CHOICE_Y_START - 3 ) (FRAME_BUTTON_WIDTH+18) 308 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
elementwidth 30
|
||||
elementheight 19
|
||||
noBlinkingHighlight
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale CHOICE_TEXTSIZE
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor COLOR_TITLE
|
||||
disablecolor FRAME_GREY_RGB 1
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL
|
||||
modal
|
||||
usePaging
|
||||
visible 1
|
||||
// x y w h len horzAlign vertAlign
|
||||
userarea 2 0 0 (FRAME_BUTTON_WIDTH+1) 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* BACKGROUND */
|
||||
17 0 FRAME_BUTTON_WIDTH 19 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* NAME */
|
||||
|
||||
onfocus { play CHOICE_FOCUS_SOUND; }
|
||||
onListboxSelectionChange
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
execnow set ui_mod_name ( getmodinfo( "modName" ) );
|
||||
execnow set ui_mod_desc ( getmodinfo( "modDescr" ) );
|
||||
}
|
||||
doubleclick
|
||||
{
|
||||
play CHOICE_ACTION_SOUND;
|
||||
open load_mod_confirm_popmenu
|
||||
}
|
||||
}
|
||||
|
||||
#undef BUTTON_SPACING
|
||||
#define BUTTON_SPACING 20
|
||||
#define RESET_BUTTON_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
|
||||
#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT_ACTION( ON_ESC )
|
||||
#else //#ifdef PC
|
||||
FRAME_BACK_BUTTON_DEFAULT
|
||||
#endif //#ifdef PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
// POPUPS
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 2
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( load_mod_confirm_popmenu, setFocus loadmod_confirm_popmenu2, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_MOD_CONFIRM", 1 )
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( dvarString( "ui_mod_name" ), 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", close self; uiScript RunMod;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name loadmod_confirm_popmenu_2 )
|
||||
}
|
||||
}
|
701
mods/mp_patch/ui_mp/options_multi.menu
Normal file
701
mods/mp_patch/ui_mp/options_multi.menu
Normal file
@ -0,0 +1,701 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#define OPTIONS_STYLE 1
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "options_multi_"
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME options_multi
|
||||
|
||||
#undef OPTIONS_MULTI_HEIGHT
|
||||
#undef OPTIONS_MULTI_WIDTH
|
||||
#define OPTIONS_MULTI_HEIGHT 332
|
||||
#define OPTIONS_MULTI_WIDTH OPTIONS_MULTI_HEIGHT * FRAME_ASPECT_RATIO
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name "options_multi"
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
soundloop ""
|
||||
|
||||
onOpen
|
||||
{
|
||||
exec "setfromdvar ui_name name";
|
||||
|
||||
LOCAL_CLOSE_ALL_BUT( options_multi )
|
||||
|
||||
setLocalVarBool ui_hideBack 1;
|
||||
|
||||
if (IsInGame())
|
||||
{
|
||||
showMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if (IsInGame())
|
||||
{
|
||||
hideMenu "pausedbkgnd";
|
||||
}
|
||||
else
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
|
||||
setLocalVarBool ui_hideBack 0;
|
||||
exec "setfromdvar name ui_name";
|
||||
uiScript "updateClanInProfile"
|
||||
}
|
||||
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
open options_new_pc;
|
||||
}
|
||||
PC_TAB_SWITCH_ACTIONS( options_new_pc, options_controls_new_pc, options_controls_new_pc )
|
||||
|
||||
#include "ui_mp/leftside_options.inc"
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#undef CHOICE_Y_START
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#undef CHOICE_DVAR_EXTRA_WIDTH
|
||||
#undef CHOICE_TEXT_OFFSET_X
|
||||
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
#define CHOICE_X_START ((-OPTIONS_MULTI_WIDTH/2) - 75)
|
||||
#define CHOICE_Y_START ((-OPTIONS_MULTI_HEIGHT/2) + 32)
|
||||
#define CHOICE_DVAR_EXTRA_WIDTH 120
|
||||
#define CHOICE_TEXT_OFFSET_X -10
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXT_COLOR_HL 1 1 1 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
FRAME_CHOICE_SECTION_TITLE_VIS( 21, "@MENU_MULTIPLAYER_CAPS", ( dvarint( ui_multiplayer ) ) )
|
||||
FRAME_CHOICE_SECTION_TITLE_VIS( 21, "@MENU_COOPERATIVE_OPTIONS_CAPS", ( !dvarint( ui_multiplayer ) ) )
|
||||
|
||||
FRAME_CHOICE_DVARFLOATLIST_VIS( 22, "@MENU_TEAM_INDICATOR_CAPS", team_indicator, { "@MENU_INDICATOR_FULL_CAPS" 0 "@MENU_INDICATOR_ABBREVIATED_CAPS" 1 "@MENU_INDICATOR_ICON_CAPS" 2 "@MENU_INDICATOR_ALTERNATE_CAPS" 3 }, ;, 1 )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 23, "@MENU_ALLOW_DOWNLOAD_CAPS", cl_allowdownload, ;,( dvarint( ui_multiplayer ) ) )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 24, "@PATCH_OPTIONS_COLOR_FRIENDS_CAPS", cg_drawFriendInColor, ;,( dvarint( ui_multiplayer ) ) )
|
||||
FRAME_CHOICE_DVARYESNO_VIS( 25, "@PLATFORM_OPTIONS_RESTRICT_EMBLEMS_CAPS", live_restrictEmblems, ;,( dvarint( ui_multiplayer ) ) )
|
||||
|
||||
//FRAME_CHOICE_SEPARATOR( CHOICE_SEP_1 )
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name options_multi
|
||||
fullScreen 0
|
||||
rect 0 0 370 480 // Size and position of the menu
|
||||
focusColor COLOR_FOCUSED // Menu focus color for text and items
|
||||
soundloop ""
|
||||
onOpen
|
||||
{
|
||||
exec "setfromdvar ui_name name"
|
||||
setdvar ui_background_gradient_show "1";
|
||||
}
|
||||
onClose
|
||||
{
|
||||
exec "setfromdvar name ui_name"
|
||||
}
|
||||
onESC
|
||||
{
|
||||
close options_multi;
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
origin ORIGIN_TITLE
|
||||
forecolor 1 1 1 1
|
||||
text "@MENU_MULTIPLAYER"
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_TITLE
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_VOICE_CHAT_BUTTON"
|
||||
rect 0 0 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_VOTE_YES"
|
||||
rect 0 15 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_VOTE_NO"
|
||||
rect 0 30 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_CHAT"
|
||||
rect 0 45 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_TEAM_CHAT"
|
||||
rect 0 60 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_QUICK_CHAT"
|
||||
rect 0 75 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_ALLOW_DOWNLOAD"
|
||||
rect 0 90 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_DRAW_HUD"
|
||||
rect 0 105 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_CONNECTION"
|
||||
rect 0 120 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_WEAPON_MENU"
|
||||
rect 0 135 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name player_name
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MENU_PLAYER_NAME"
|
||||
rect 0 150 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
|
||||
}
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BUTTON
|
||||
text "@MPUI_PUNKBUSTER"
|
||||
rect 0 165 1 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
decoration
|
||||
|
||||
}
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "+talk"
|
||||
rect 0 0 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "vote yes"
|
||||
rect 0 15 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "vote no"
|
||||
rect 0 30 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "chatmodepublic"
|
||||
rect 0 45 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "chatmodeteam"
|
||||
rect 0 60 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "mp_QuickMessage"
|
||||
rect 0 75 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
show keyBindStatus
|
||||
}
|
||||
mouseexit { hide keyBindStatus }
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_YESNO
|
||||
text " "
|
||||
dvar "cl_allowdownload"
|
||||
rect 0 90 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_YESNO
|
||||
text " "
|
||||
dvar "hud_enable"
|
||||
rect 0 105 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_MULTI
|
||||
text " "
|
||||
dvar "rate"
|
||||
dvarFloatList { "@MENU_ISDN" 5000 "@MENU_LAN_CABLE_XDSL" 25000 }
|
||||
rect 0 120 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_BIND
|
||||
text " "
|
||||
dvar "openscriptmenu ingame changeweapon"
|
||||
rect 0 135 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
name player_name
|
||||
type ITEM_TYPE_EDITFIELD
|
||||
text " "
|
||||
dvar "ui_name"
|
||||
rect 0 150 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
maxChars 31
|
||||
maxpaintchars 18
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name misc
|
||||
type ITEM_TYPE_YESNO
|
||||
text " "
|
||||
dvar "cl_punkbuster"
|
||||
rect 0 165 320 13
|
||||
origin 50 120
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textalignx 170
|
||||
textaligny 11
|
||||
textscale 0.25
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
visible 1
|
||||
action { play CHOICE_ACTION_SOUND; }
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
itemDef
|
||||
{
|
||||
name cdkeybt
|
||||
text "@MENU_ENTER_KEY_CODE"
|
||||
type ITEM_TYPE_BUTTON
|
||||
style WINDOW_STYLE_FILLED
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
rect 102 330 150 20
|
||||
textalign ITEM_ALIGN_CENTER
|
||||
textscale .3
|
||||
textaligny 14
|
||||
forecolor .9 .9 .95 1
|
||||
visible 1
|
||||
textfont UI_FONT_NORMAL
|
||||
mouseEnter
|
||||
{
|
||||
play "mouse_over";
|
||||
}
|
||||
action
|
||||
{
|
||||
play CHOICE_ACTION_SOUND;
|
||||
open cdkey_menu;
|
||||
}
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name keyBindStatus
|
||||
rect 0 350 360 15
|
||||
ownerdraw UI_KEYBINDSTATUS
|
||||
text " "
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 0
|
||||
forecolor .9 .9 .9 1
|
||||
textscale .20
|
||||
textalignx -12
|
||||
textalign ITEM_ALIGN_CENTER
|
||||
textaligny 12
|
||||
visible 0
|
||||
decoration
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}//
|
||||
*/
|
7
mods/mp_patch/ui_mp/patch.txt
Normal file
7
mods/mp_patch/ui_mp/patch.txt
Normal file
@ -0,0 +1,7 @@
|
||||
// MP patch menu defs
|
||||
//
|
||||
{
|
||||
// loadMenu { "ui/patch.menu" }
|
||||
// loadMenu { "ui/patch_popups.menu" }
|
||||
loadMenu { "ui_mp/mods.menu" }
|
||||
}
|
538
mods/mp_patch/ui_mp/pc_basictraining.menu
Normal file
538
mods/mp_patch/ui_mp/pc_basictraining.menu
Normal file
@ -0,0 +1,538 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/newframe.inc"
|
||||
|
||||
#define CHOICE_X_START -258
|
||||
#define CHOICE_Y_START 35
|
||||
#define BUTTON_BG_WIDTH 180
|
||||
|
||||
#define CHOICE_SEP_OFFSET_X 20
|
||||
#define CHOICE_SEP_OFFSET_Y -2
|
||||
#define CHOICE_SEP_1 1
|
||||
#define CHOICE_SEP_2 4
|
||||
#define CHOICE_GROUP "xboxlive_basictraining"
|
||||
|
||||
#define FLYOUT_NONE 0
|
||||
#define FLYOUT_TRAINING 3
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui_mp/friendslist.inc"
|
||||
|
||||
#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
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X BUTTON_BG_WIDTH
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
#undef CHOICE_Y_SPACING
|
||||
#define CHOICE_Y_SPACING CHOICE_SIZE_Y
|
||||
|
||||
#define FLYOUT_BG_COLOR 0 0 0 0.3
|
||||
|
||||
#define SELECTION_IMAGE_BIG( materialArg ) ( "menu_" + materialArg + "_map_select_big" )
|
||||
|
||||
#define BOT_DVAR_CHECK \
|
||||
execNow if ( dvarInt( bot_friends ) > 11 ) set bot_friends 11; exec "updategamerprofile"; \
|
||||
execNow if ( dvarInt( bot_enemies ) > 11 ) set bot_enemies 11; exec "updategamerprofile";
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
setdvar xblive_basictraining "0"; \
|
||||
setDvar xblive_privatematch "0" \
|
||||
setDvar leaveImmediately "0"; \
|
||||
close self; \
|
||||
open main_text;
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name menu_xboxlive_basictraining
|
||||
fullscreen 1
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
border 0
|
||||
soundloop MENU_MUSIC
|
||||
control MENU_CONTROL_USED
|
||||
allowSignIn
|
||||
|
||||
onOpen
|
||||
{
|
||||
execnow "validatePrivateMatchGametype";
|
||||
exec "exec dvar_defaults.cfg";
|
||||
setDvar onlinegame "1";
|
||||
setdvar xblive_rankedmatch "0";
|
||||
setdvar xblive_basictraining "1";
|
||||
setdvar ui_inviteonly "0";
|
||||
setdvar invite_visible "1";
|
||||
setdvar ui_selectlobby "0";
|
||||
setdvar popup_open "0";
|
||||
|
||||
execNow set scr_hc_tdm_scorelimit ( dvarString( scr_tdm_scorelimit ) );
|
||||
execNow set scr_hc_dm_scorelimit ( dvarString( scr_dm_scorelimit ) );
|
||||
execNow set scr_hc_tdm_timelimit ( dvarString( scr_tdm_timelimit ) );
|
||||
execNow set scr_hc_dm_timelimit ( dvarString( scr_dm_timelimit ) );
|
||||
|
||||
execNow if ( !dvarbool( "xblive_basictraining_popup" ) ) openmenu "basictraining_msg";
|
||||
|
||||
exec set ui_bg_image SELECTION_IMAGE_BIG( dvarString( ui_mapname ) );
|
||||
|
||||
exec set show_list_player_info 0;
|
||||
CLEARUIHINT
|
||||
if ( dvarInt( scr_hardcore ) == 1 )
|
||||
{
|
||||
if ( dvarString( ui_gametype ) == "dm" )
|
||||
{
|
||||
execNow set ui_gametype( "hc_dm" );
|
||||
}
|
||||
|
||||
if ( dvarString( ui_gametype ) == "tdm" )
|
||||
{
|
||||
execNow set ui_gametype( "hc_tdm" );
|
||||
}
|
||||
}
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
if ( dvarString( ui_gametype ) != dm && dvarString( ui_gametype ) != hc_dm )
|
||||
{
|
||||
//BOT_DVAR_CHECK;
|
||||
}
|
||||
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE;
|
||||
exec set ui_bg_image SELECTION_IMAGE_BIG( dvarString( ui_mapname ) );
|
||||
}
|
||||
onClose
|
||||
{
|
||||
play "uin_navigation_backout";
|
||||
setdvar popup_open "1";
|
||||
setfocus popup_hide;
|
||||
hide selection_right;
|
||||
setdvar ui_bg_image "";
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
// ------------------ statics ------------------------
|
||||
#include "ui_mp/blurredbg.inc"
|
||||
|
||||
// ----------------- Scroller --------------------------
|
||||
#include "ui/scroller.inc"
|
||||
|
||||
// ----------------- title --------------------------
|
||||
CHOICE_MENU_TITLE_CENTER_ALIGN_VIS( "@MPUI_BASICTRAINING_LOBBY_CAPS", ITEM_ALIGN_TOP_RIGHT, 1 )
|
||||
|
||||
// ---------------------------- map ------------------------------------
|
||||
#define GAMEINFO_ORIENTATION 1
|
||||
#define GAMEINFO_X CHOICE_X_START
|
||||
#define GAMEINFO_Y 235
|
||||
#define GAMEINFO_ORIGIN GAMEINFO_X GAMEINFO_Y
|
||||
#define GAMEINFO_WIDTH BUTTON_BG_WIDTH
|
||||
#define GAMEINFO_WIDTH2 GAMEINFO_WIDTH
|
||||
#define GAMEINFO_HEIGHT 80
|
||||
|
||||
#include "ui_mp/game_info.inc"
|
||||
#define MAPIMAGE SELECTION_IMAGE_FINAL( dvarString( ui_mapname ) )
|
||||
#define MAPNAME locString( tableLookup( "mp/mapstable.csv", 0, dvarString( ui_mapname ), 3 ) )
|
||||
#define GAMETYPENAME locString( tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 ) )
|
||||
|
||||
#define VOTE_BG_SIZE 20
|
||||
|
||||
#define SELECTION_IMAGE_FINAL( materialArg ) \
|
||||
( "menu_" + materialArg + "_map_select_final" )
|
||||
|
||||
#define MAP_SELECTION_INFO( xPos, yPos, widthArg, heightArg, mapName, gametypeName, visArg ) \
|
||||
PREPROC_TEXT_DRAW_ALL( (xPos+widthArg-96-8) (yPos+heightArg-VOTE_BG_SIZE+1-18) 96 24 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, \
|
||||
0 0, toUpper( mapName ), TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1, UI_FONT_EXTRABIG, ITEM_TEXTSTYLE_NORMAL, \
|
||||
visArg, ; ) \
|
||||
PREPROC_TEXT_DRAW_VIS( (xPos+widthArg-96-8) (yPos+heightArg-VOTE_BG_SIZE+1) 96 20 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, \
|
||||
0 0, gametypeName, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1, \
|
||||
visArg )
|
||||
|
||||
#define MAP_X_START (-MAP_WIDTH-112)
|
||||
#define MAP_Y_START (-MAP_HEIGHT-25)
|
||||
#define MAP_WIDTH 183
|
||||
#define MAP_ASPECT_RATIO (203/275)
|
||||
#define MAP_HEIGHT (MAP_WIDTH*MAP_ASPECT_RATIO)
|
||||
|
||||
PREPROC_SHADER_DRAW_VIS_EX( MAP_X_START MAP_Y_START MAP_WIDTH MAP_HEIGHT CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM,
|
||||
MAPIMAGE, 1 1 1 1,
|
||||
1, ; )
|
||||
|
||||
MAP_SELECTION_INFO( MAP_X_START, MAP_Y_START, MAP_WIDTH, MAP_HEIGHT, MAPNAME, GAMETYPENAME, 1 )
|
||||
|
||||
// ---------------------- locked hint -------------------------
|
||||
#define HINT_X_START ( CHOICE_X_START - 13 )
|
||||
HINT_TEXT_ALL( 9, HINT_X_START, 7, CHOICE_SIZE_X, dvarString( ui_hint_text ), 1 1 1 1, dvarBool( ui_show_arrow ), ; )
|
||||
|
||||
|
||||
// ---------------------- party status description -------------------------
|
||||
#define STATUS_START_X 145
|
||||
#define STATUS_START_Y -48
|
||||
#define STATUS_RECT STATUS_START_X STATUS_START_Y 150 25 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_BOTTOM
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_OPEN_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 0 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_OPEN_FRIENDS_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 1 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_INVITE_ONLY_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 2 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( STATUS_RECT, 0 0, "@MENU_STATUS_CLOSE_DESC_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_RIGHT, MEDIUM_GRAY, when( dvarint( "party_privacyStatus" ) == 3 && !dvarbool( "xblive_basictraining" ) ) )
|
||||
|
||||
|
||||
//=========================================================
|
||||
//================= MENU SELECTION ACTIONS ================
|
||||
//=========================================================
|
||||
#define SETUP_GAME_MODE \
|
||||
resetdvar scr_hardcore; \
|
||||
resetdvar scr_team_fftype; \
|
||||
resetdvar scr_player_healthregentime; \
|
||||
resetdvar scr_player_maxhealth; \
|
||||
resetdvar scr_tdm_waverespawndelay; \
|
||||
resetdvar scr_game_allowkillcam; \
|
||||
resetdvar scr_allowbattlechatter; \
|
||||
resetdvar scr_team_kickteamkillers; \
|
||||
resetdvar scr_game_suicidepointloss; \
|
||||
resetdvar scr_team_teamkillpointloss; \
|
||||
resetdvar scr_dog_health; \
|
||||
resetdvar scr_dm_playerrespawndelay; \
|
||||
resetdvar scr_disable_tacinsert; \
|
||||
if ( dvarString( ui_gametype ) == "hc_tdm" )\
|
||||
{ \
|
||||
execNow set scr_tdm_scorelimit ( dvarFloat( scr_hc_tdm_scorelimit ) ); \
|
||||
execNow set scr_tdm_timelimit ( dvarFloat( scr_hc_tdm_timelimit ) ); \
|
||||
execNow set g_gametype "tdm"; \
|
||||
execNow set ui_gametype "tdm"; \
|
||||
execNow set scr_hardcore 1; \
|
||||
execNow set scr_team_fftype 1; \
|
||||
execNow set scr_player_healthregentime 0; \
|
||||
execNow set scr_player_maxhealth 30; \
|
||||
execNow set scr_tdm_waverespawndelay 15; \
|
||||
execNow set scr_game_allowkillcam 0; \
|
||||
execNow set scr_allowbattlechatter 0; \
|
||||
execNow set scr_team_kickteamkillers 1; \
|
||||
execNow set scr_game_suicidepointloss -100; \
|
||||
execNow set scr_team_teamkillpointloss -100; \
|
||||
execNow set scr_dog_health 30; \
|
||||
} \
|
||||
if ( dvarString( ui_gametype ) == "hc_dm" )\
|
||||
{ \
|
||||
execNow set scr_dm_scorelimit ( dvarFloat( scr_hc_dm_scorelimit ) ); \
|
||||
execNow set scr_dm_timelimit ( dvarFloat( scr_hc_dm_timelimit ) ); \
|
||||
execNow set g_gametype "dm"; \
|
||||
execNow set ui_gametype "dm"; \
|
||||
execNow set scr_hardcore 1; \
|
||||
execNow set scr_player_healthregentime 0; \
|
||||
execNow set scr_player_maxhealth 30; \
|
||||
execNow set scr_game_allowkillcam 0; \
|
||||
execNow set scr_allowbattlechatter 0; \
|
||||
execNow set scr_dm_playerrespawndelay 7; \
|
||||
execNow set scr_game_suicidepointloss -50; \
|
||||
execNow set scr_dog_health 30; \
|
||||
execNow set scr_disable_tacinsert 1; \
|
||||
} \
|
||||
if ( dvarString( ui_gametype ) == "shrp" || dvarString( ui_gametype ) == "gun" || dvarString( ui_gametype ) == "oic" || dvarString( ui_gametype ) == "hlnd" ) \
|
||||
{ \
|
||||
execNow set bot_wager "1"; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
execNow set bot_wager "0"; \
|
||||
} \
|
||||
execNow set scr_hlnd_timelimit ""; \
|
||||
execNow set scr_hlnd_scorelimit ""; \
|
||||
execNow set scr_oic_timelimit ""; \
|
||||
execNow set scr_oic_scorelimit ""; \
|
||||
execNow set scr_gun_timelimit ""; \
|
||||
execNow set scr_gun_scorelimit ""; \
|
||||
execNow set scr_shrp_timelimit ""; \
|
||||
execNow set scr_shrp_scorelimit "";
|
||||
|
||||
|
||||
#define SETUP_ACTION_STARTMATCH \
|
||||
SETUP_GAME_MODE \
|
||||
exec "selectStringTableEntryInDvar mp/didyouknow.csv 0 didyouknow"; \
|
||||
uiscript StartListenServer;
|
||||
|
||||
#define SETUP_ACTION_GAMESETUP \
|
||||
open basictraining_settings;
|
||||
|
||||
#define SETUP_ACTION_CREATEACLASS \
|
||||
execnow "set ui_cac_ingame 0"; \
|
||||
setdvar invite_visible "0"; \
|
||||
/*exec "uploadstats";*/ \
|
||||
open cac_main;
|
||||
|
||||
#define SETUP_ACTION_CONTRACTS \
|
||||
exec "endsplitscreensignin"; \
|
||||
open menu_xboxlive_contracts;
|
||||
|
||||
#define SETUP_ACTION_KILLSTREAKS \
|
||||
exec "endsplitscreensignin"; \
|
||||
open menu_xboxlive_killstreaks;
|
||||
|
||||
|
||||
//=========================================================
|
||||
//===================== MENU SELECTION ====================
|
||||
//=========================================================
|
||||
#define ANY_NEW_TRAINING_PLAYERCARD_FEATURE \
|
||||
( ANY_NEW_CHALLENGES || IS_ITEM_NEW( FEATURE_COMBAT_RECORD ) )
|
||||
|
||||
#define IS_LOBBY_HOST 1
|
||||
#define IS_NOT_LOBBY_HOST 0
|
||||
|
||||
// HOST BUTTONS
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 1, "@MPUI_START_MATCH_CAPS",
|
||||
SETUP_ACTION_STARTMATCH,
|
||||
SET_HINT_TEXT( "@MPUI_START_MATCH_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 1 ), 0 0, "@MPUI_START_MATCH_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 2, "@MPUI_CHANGE_MAP_CAPS",
|
||||
open select_map,
|
||||
SET_HINT_TEXT( "@MPUI_CHANGE_MAP_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 2 ), 0 0, "@MPUI_CHANGE_MAP_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 3, "@MPUI_CHANGE_GAME_MODE_CAPS",
|
||||
open select_game_mode,
|
||||
SET_HINT_TEXT( "@MPUI_CHANGE_GAME_MODE_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 3 ), 0 0, "@MPUI_CHANGE_GAME_MODE_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 4, "@MPUI_EDIT_GAME_OPTIONS_CAPS",
|
||||
SETUP_ACTION_GAMESETUP,
|
||||
SET_HINT_TEXT( "@MPUI_EDIT_GAME_OPTIONS_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 4 ), 0 0, "@MPUI_EDIT_GAME_OPTIONS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 5, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
SETUP_ACTION_CREATEACLASS,
|
||||
SET_HINT_TEXT( "@MPUI_CAC_DESC" ) CLEAR_ITEM_NEW( FEATURE_CREATE_A_CLASS ),
|
||||
CLEARUIHINT,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
TEMP_CHOICE_DBUTTON_FOCUS_VIS_EX( 5, "@MPUI_CREATE_A_CLASS_CAPS",
|
||||
SET_HINT_TEXT( GET_UNLOCK_LEVEL_STRING( FEATURE_CREATE_A_CLASS ) ),
|
||||
CLEARUIHINT,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE, ; )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 5 ), 0 0, "@MPUI_CREATE_A_CLASS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 5, "menu_mp_lobby_new", when( ANY_NEW_CAC && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
CHOICE_LOCKEDICON_VIS( 5, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 6, "@MENU_KILLSTREAKS_CAPS",
|
||||
SETUP_ACTION_KILLSTREAKS,
|
||||
SET_HINT_TEXT( "@MPUI_KILLSTREAKS_DESC" ) CLEAR_ITEM_NEW( FEATURE_KILLSTREAKS ),
|
||||
CLEARUIHINT,
|
||||
!IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
TEMP_CHOICE_DBUTTON_FOCUS_VIS_EX( 6, "@MENU_KILLSTREAKS_CAPS",
|
||||
SET_HINT_TEXT( GET_UNLOCK_LEVEL_STRING( FEATURE_KILLSTREAKS ) ),
|
||||
CLEARUIHINT,
|
||||
IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE, ; )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 6 ), 0 0, "@MENU_KILLSTREAKS_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 6, "menu_mp_lobby_new", when( IS_ITEM_NEW( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
CHOICE_LOCKEDICON_VIS( 6, "menu_mp_lobby_locked", when( IS_ITEM_LOCKED( FEATURE_KILLSTREAKS ) && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
|
||||
TEMP_CHOICE_BUTTON_FOCUS_VIS( 8, "@MENU_PLAYERCARD_CAPS",
|
||||
SETUP_ACTION_PLAYERCARD,
|
||||
SET_HINT_TEXT( "@MPUI_PLAYERCARD_DESC" ),
|
||||
CLEARUIHINT,
|
||||
dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE )
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_RECT( 8 ), 0 0, "@MENU_PLAYERCARD_CAPS", CHOICE_TEXTSIZE, CHOICE_TEXT_OFFSET_X, 0, CHOICE_TEXTALIGN, MEDIUM_GRAY, when( dvarInt( ui_flyoutHasFocus ) != FLYOUT_NONE ); )
|
||||
CHOICE_NEWICON_VIS( 8, "menu_mp_lobby_new", when( ANY_NEW_TRAINING_PLAYERCARD_FEATURE && IS_LOBBY_HOST && dvarInt( ui_flyoutHasFocus ) == FLYOUT_NONE ) )
|
||||
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#undef CHOICE_TEXTFONT
|
||||
#define CHOICE_TEXTFONT UI_FONT_NORMAL
|
||||
|
||||
// Friends button
|
||||
FRIENDS_BUTTON
|
||||
|
||||
// back button
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC( ON_ESC )
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui/frame.inc"
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "basictraining_difficulty"
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START (-FRAME_DEFAULT_WIDTH/2+15)
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START ( -FRAME_DEFAULT_HEIGHT / 2 + 15 + NEW_FRAME_BG_Y_OFFSET( FRAME_DEFAULT_HEIGHT ) )
|
||||
|
||||
#define DIFFICULTY_NAME_X 0
|
||||
#define DIFFICULTY_NAME_Y CHOICE_Y_START
|
||||
|
||||
#define ITEM_IMAGE_X DIFFICULTY_NAME_X
|
||||
#define ITEM_IMAGE_Y (CHOICE_Y_START-5)
|
||||
#define ITEM_IMAGE_ASPECT_RATIO 1
|
||||
#define ITEM_IMAGE_WIDTH (ITEM_IMAGE_HEIGHT * ITEM_IMAGE_ASPECT_RATIO)
|
||||
#define ITEM_IMAGE_HEIGHT 240
|
||||
#define ITEM_IMAGE_SIZE ITEM_IMAGE_WIDTH ITEM_IMAGE_HEIGHT
|
||||
|
||||
#define DIFFICULTY_NAME_SIZE ITEM_IMAGE_WIDTH 30
|
||||
|
||||
#define DIFFICULTY_DESC_X (ITEM_IMAGE_X + 20)
|
||||
#define DIFFICULTY_DESC_Y (ITEM_IMAGE_Y + ITEM_IMAGE_HEIGHT - 20)
|
||||
#define DIFFICULTY_DESC_SIZE 200 75
|
||||
|
||||
#define DIFFICULTY_INFO \
|
||||
/* Name */ \
|
||||
PREPROC_TEXT_DRAW( DIFFICULTY_NAME_X DIFFICULTY_NAME_Y DIFFICULTY_NAME_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0, \
|
||||
localVarString( ui_info_name ), \
|
||||
TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_TOP_CENTER, 1 1 1 1 ) \
|
||||
/* Image */ \
|
||||
PREPROC_SHADER_DRAW( ITEM_IMAGE_X ITEM_IMAGE_Y ITEM_IMAGE_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, \
|
||||
localVarString( ui_diff_pic ), 1 1 1 0.9 ) \
|
||||
/* Description */ \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( DIFFICULTY_DESC_X DIFFICULTY_DESC_Y DIFFICULTY_DESC_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0, \
|
||||
localVarString( ui_info ), \
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_CENTER, FRAME_LT_GREY_RGB 1, \
|
||||
1, autowrapped )
|
||||
|
||||
#define DIFFICULTY_ONFOCUS( descArg, nameArg, imageArg )\
|
||||
setLocalVarString ui_info descArg; \
|
||||
setLocalVarString ui_info_name nameArg; \
|
||||
setLocalVarString ui_diff_pic imageArg
|
||||
|
||||
#define SET_DIFFICULTY( difficulty ) \
|
||||
exec set bot_difficulty difficulty; \
|
||||
close self;
|
||||
|
||||
#undef CHOICE_SEP_SPACING
|
||||
#define CHOICE_SEP_SPACING 0
|
||||
|
||||
menuDef
|
||||
{
|
||||
name basictraining_difficulty
|
||||
rect 0 0 640 480
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
focusFirst;
|
||||
play uin_navigation_menu_lg_open;
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
execNow "updategamerprofile";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
close self;
|
||||
}
|
||||
execKeyInt BUTTON_B { }
|
||||
|
||||
FRAME_DEFAULT
|
||||
FRAME_TITLE_DEFAULT( "@MENU_SELECT_DIFFICULTY_CAPS", 1 )
|
||||
|
||||
//FRAME_SUBTITLE_DEFAULT( "@MENU_SELECT_DIFF_DESC", 1 ) This was commented out in the main basictraining/difficulty menus on all platforms in cl#702108, so there doesn't seem to be a good reason to have it here any longer
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, "@MENU_RECRUIT_CAPS",
|
||||
SET_DIFFICULTY( "easy" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_RECRUIT_DESC", "@MENU_RECRUIT_CAPS", "playlist_sp_recr" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 2, "@MENU_REGULAR_CAPS",
|
||||
SET_DIFFICULTY( "normal" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_REGULAR_DESC", "@MENU_REGULAR_CAPS", "playlist_sp_reg" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 3, "@MENU_HARDENED_CAPS",
|
||||
SET_DIFFICULTY( "hard" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_HARDENED_DESC", "@MENU_HARDENED_CAPS", "playlist_sp_hard" ),
|
||||
;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 4, "@MENU_VETERAN_CAPS",
|
||||
SET_DIFFICULTY( "fu" ),
|
||||
DIFFICULTY_ONFOCUS( "@MENU_DIFF_VETERAN_DESC", "@MENU_VETERAN_CAPS", "playlist_sp_vet" ),
|
||||
;, 1, ; )
|
||||
|
||||
DIFFICULTY_INFO
|
||||
}
|
||||
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
#undef CHOICE_Y_SPACING
|
||||
#define CHOICE_Y_SPACING (CHOICE_SIZE_Y + 2)
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
|
||||
#undef MEDIUM_POPUP_TITLE_X_START
|
||||
#define MEDIUM_POPUP_TITLE_X_START POPUP_SIDE_PAD
|
||||
#undef MEDIUM_POPUP_TITLE_Y_START
|
||||
#define MEDIUM_POPUP_TITLE_Y_START POPUP_SIDE_PAD
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X ( (MEDIUM_POPUP_WIDTH - (POPUP_SIDE_PAD * 2) ) / 2 )
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_BOTTOM
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( basictraining_msg, ;, close self;, POPUP_GLOW_WHITE, 0, 1 )
|
||||
onClose
|
||||
{
|
||||
setDvar xblive_basictraining_popup "1";
|
||||
open basictraining_difficulty;
|
||||
}
|
||||
execkeyint BUTTON_START {}
|
||||
execKeyInt APAD_UP {}
|
||||
execKeyInt DPAD_UP {}
|
||||
execKeyInt APAD_DOWN {}
|
||||
execKeyInt DPAD_DOWN {}
|
||||
execKeyInt APAD_LEFT {}
|
||||
execKeyInt DPAD_LEFT {}
|
||||
execKeyInt APAD_RIGHT {}
|
||||
execKeyInt DPAD_RIGHT {}
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MEDIUM_POPUP_TITLE_X_START MEDIUM_POPUP_TITLE_Y_START (MEDIUM_POPUP_WIDTH-30) MEDIUM_POPUP_TITLE_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@MPUI_BASICTRAINING_LOBBY_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, 1, autowrapped )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( MEDIUM_POPUP_TITLE_X_START (MEDIUM_POPUP_TITLE_Y_START+MEDIUM_POPUP_TITLE_HEIGHT+10) (MEDIUM_POPUP_WIDTH-30) 100 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0,
|
||||
"@MPUI_BASICTRAINING_POPUP_DESC", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, 1, autowrapped )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_CONTINUE", close self;, 1, ; )
|
||||
}
|
||||
}
|
190
mods/mp_patch/ui_mp/pc_serversettings.menu
Normal file
190
mods/mp_patch/ui_mp/pc_serversettings.menu
Normal file
@ -0,0 +1,190 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/custom_mode_layout.inc"
|
||||
#include "ui_mp/custom_mode.inc"
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -150
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START -200
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
#endif //#ifdef PC
|
||||
|
||||
#define SERVERSETTINGS_NAME_X 40
|
||||
#define SERVERSETTINGS_NAME_Y (80)
|
||||
#define SERVERSETTINGS_NAME_SIZE SERVERSETTINGS_IMAGE_WIDTH 30
|
||||
|
||||
#define SERVERSETTINGS_IMAGE_X SERVERSETTINGS_NAME_X
|
||||
#define SERVERSETTINGS_IMAGE_Y (CHOICE_Y_START - 170)
|
||||
#define SERVERSETTINGS_IMAGE_ASPECT_RATIO 1.0
|
||||
#define SERVERSETTINGS_IMAGE_WIDTH 180
|
||||
#define SERVERSETTINGS_IMAGE_HEIGHT (SERVERSETTINGS_IMAGE_WIDTH * SERVERSETTINGS_IMAGE_ASPECT_RATIO)
|
||||
#define SERVERSETTINGS_IMAGE_SIZE SERVERSETTINGS_IMAGE_WIDTH SERVERSETTINGS_IMAGE_HEIGHT
|
||||
|
||||
#define SERVERSETTINGS_DESC_X 0
|
||||
#define SERVERSETTINGS_DESC_Y (CHOICE_Y_START + 20)
|
||||
#define SERVERSETTINGS_DESC_SIZE 244 60
|
||||
|
||||
#undef DEFAULT_SLIDE_IN_SPEED
|
||||
#define DEFAULT_SLIDE_IN_SPEED 180
|
||||
|
||||
#undef DEFAULT_SLIDE_OUT_SPEED
|
||||
#define DEFAULT_SLIDE_OUT_SPEED 180
|
||||
|
||||
#define CHOICE_BUTTON_NAME "SERVERSETTINGS_"
|
||||
#define MENUDEF_NAME server_settings
|
||||
|
||||
#define SERVERSETTINGS_FRAME_WIDTH NEW_FRAME_DEFAULT_WIDTH
|
||||
#define SERVERSETTINGS_FRAME_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
play uin_navigation_menu_lg_close; \
|
||||
close self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name MENUDEF_NAME
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
|
||||
onOpen
|
||||
{
|
||||
activateBlur;
|
||||
play uin_navigation_menu_lg_open;
|
||||
setdvar invite_visible "0";
|
||||
}
|
||||
onFocus { }
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
setdvar invite_visible "1";
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
NEW_FRAME( SERVERSETTINGS_FRAME_WIDTH, SERVERSETTINGS_FRAME_HEIGHT )
|
||||
NEW_FRAME_TITLE( SERVERSETTINGS_FRAME_WIDTH, SERVERSETTINGS_FRAME_HEIGHT, "@MENU_SERVER_SETTINGS_CAPS", 1 )
|
||||
|
||||
// Server Name
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 2, "@PATCH_SERVER_NAME_CAPS",
|
||||
"sv_hostname", 20, 20,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_SERVER_NAME_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Minimum Ping
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 4, "@PATCH_MINIMUM_PING_CAPS",
|
||||
"sv_minping", 4,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MINIMUM_PING_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Maximum Ping
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 5, "@PATCH_MAXIMUM_PING_CAPS",
|
||||
"sv_maxping", 4,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MAXIMUM_PING_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Password
|
||||
FRAME_CHOICE_DVAREDIT_FOCUS_VIS_EX( 6, "@PATCH_PASSWORD1_CAPS",
|
||||
"g_password", 12, 12,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_PASSWORD_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Voice Chat Enabled
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 7, "@MENU_VOICECHAT_CAPS",
|
||||
"sv_voice",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_VOICECHAT_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Team Change Enabled
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 8, "@PATCH_MP_TEAMCHANGE_ALLOW_CAPS",
|
||||
"g_allow_teamchange",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MP_TEAMCHANGE_ALLOW_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
|
||||
// Team Change Keep Balanced
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 9, "@PATCH_MP_TEAMCHANGE_KEEPBALANCED_CAPS",
|
||||
"g_teamchange_keepbalanced",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MP_TEAMCHANGE_KEEPBALANCED_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Team Change Grace Period
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 10, "@PATCH_MP_TEAMCHANGE_GRACEPERIOD_CAPS",
|
||||
"g_teamchange_graceperiod", 4,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MP_TEAMCHANGE_GRACEPERIOD_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Auto-Balance Enabled
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 11, "@PATCH_AUTOBALANCE_TEAMS_CAPS",
|
||||
"scr_teambalance",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_AUTO_BALANCE_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
|
||||
// Voting Enabled
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 12, "@PATCH_ALLOW_VOTING_CAPS",
|
||||
"g_allowvote",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_ALLOW_VOTING_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Pre-game enabled
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 13, "@PATCH_PREGAME_ENABLED_CAPS",
|
||||
"g_pregame_enabled",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_PRE_MATCH_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Pre-game min players
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 14, "@PATCH_PREGAME_MINPLAYERS_CAPS",
|
||||
"party_minplayers", 3,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MINIMUM_PLAYERS_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// Maximum Players
|
||||
FRAME_CHOICE_DVAREDIT_NUMERIC_FOCUS_VIS_EX( 15, "@PATCH_MAXIMUM_PLAYERS_CAPS",
|
||||
"sv_maxclients", 3,
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_MAXIMUM_PLAYERS_DESC", "" ),
|
||||
CLEAR_CHOICE_DESC, 1, ; )
|
||||
|
||||
// VAC
|
||||
FRAME_CHOICE_DVARYESNO_FOCUS_VIS_EX( 16, "@PLATFORM_VAC_CAPS",
|
||||
"sv_vac",
|
||||
;,
|
||||
SET_CHOICE_DESC( "", "@PATCH_VALVE_ANTI_CHEAT_DESC", "" ),
|
||||
CLEAR_CHIOCE_DESC, 1, ; )
|
||||
|
||||
HINT_TEXT_ALL_RECT( CHOICE_X_START, ( (SERVERSETTINGS_FRAME_HEIGHT / 2) - 30 ), ( CHOICE_SIZE_X ), dvarString( ui_choice_desc ), 1 1 1 1, ( MenuHasFocus() && dvarString( ui_choice_desc ) != "" ), ; )
|
||||
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( SERVERSETTINGS_FRAME_WIDTH, SERVERSETTINGS_FRAME_HEIGHT, ON_ESC )
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
1352
mods/mp_patch/ui_mp/playercards.menu
Normal file
1352
mods/mp_patch/ui_mp/playercards.menu
Normal file
File diff suppressed because it is too large
Load Diff
355
mods/mp_patch/ui_mp/playercards_clantag.menu
Normal file
355
mods/mp_patch/ui_mp/playercards_clantag.menu
Normal file
@ -0,0 +1,355 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui/frame.inc"
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui_mp/overlaybg.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
|
||||
#ifdef PC
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 3
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( "pc_editclantag", setdvar ui_clantag_new dvarString( clanName ); setFocus nameEntry;, ;, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_EDIT_CLAN_TAG_CAPS", 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name nameEntry
|
||||
TYPE ITEM_TYPE_ALPHANUMERICFIELD
|
||||
text "@MENU_NAME1"
|
||||
dvar "ui_clantag_new"
|
||||
rect CHOICE_RECT( 1 )
|
||||
textaligny 2
|
||||
maxchars 4
|
||||
maxpaintchars 4
|
||||
textalign ITEM_ALIGN_MIDDLE_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
forecolor .9 .9 .9 1
|
||||
style WINDOW_STYLE_FILLED
|
||||
backcolor 0 0 0 .3
|
||||
visible 1
|
||||
mouseenter { show keyBindStatus; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { hide keyBindStatus; setfocus ok_button; }
|
||||
accept { }
|
||||
}
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_OK", execnow setclanname; close self;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MENU_CANCEL", close self;, 1, ; )
|
||||
}
|
||||
#endif
|
||||
|
||||
#define PLAYER_CARD_CLAN_TAG_MENU_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
||||
#define PLAYER_CARD_CLAN_TAG_MENU_WIDTH ( PLAYER_CARD_CLAN_TAG_MENU_HEIGHT * FRAME_ASPECT_RATIO )
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START ( -PLAYER_CARD_CLAN_TAG_MENU_WIDTH / 2 + 15 )
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START ( -PLAYER_CARD_CLAN_TAG_MENU_HEIGHT / 2 + 15 + NEW_FRAME_BG_Y_OFFSET( PLAYER_CARD_CLAN_TAG_MENU_HEIGHT ) )
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "playercard"
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X NEW_FRAME_BUTTON_WIDTH
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
#undef CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXTCOLOR NEW_FRAME_COMMON_TEXT_COLOR
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
#ifdef XENON
|
||||
#define SELECT_ICON "ui_button_xenon_3d_a_32x32"
|
||||
#endif
|
||||
#ifdef PS3
|
||||
#define SELECT_ICON "ui_button_ps3_x_32x32"
|
||||
#endif
|
||||
|
||||
#define SET_CLANTAG_HINT \
|
||||
if ( isclantagfeaturelocked( GetCurrentClanTagFeature() ) ) \
|
||||
{ \
|
||||
SET_HINT_TEXT( (locString( CLASS_PRESTIGE_UNLOCK_DESC, GetClanTagFeaturePlevel( GetCurrentClanTagFeature() ) )) ) \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
CLEARUIHINT \
|
||||
}
|
||||
#ifdef PC
|
||||
#define PLAYER_CARD_LISTBOX_RECT_EDIT (CHOICE_X_START-3) (CHOICE_Y_START+NEW_FRAME_BUTTON_HEIGHT+2) (CHOICE_SIZE_X+3) 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
#define PLAYER_CARD_LISTBOX_RECT (CHOICE_X_START-3) (CHOICE_Y_START+NEW_FRAME_BUTTON_HEIGHT*4+2) (CHOICE_SIZE_X+3) 150 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
#else //#ifdef PC
|
||||
#define PLAYER_CARD_LISTBOX_RECT_EDIT (CHOICE_X_START-3) (CHOICE_Y_START+NEW_FRAME_BUTTON_HEIGHT+2) (CHOICE_SIZE_X+3) 250 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
#define PLAYER_CARD_LISTBOX_RECT (CHOICE_X_START-3) (CHOICE_Y_START+NEW_FRAME_BUTTON_HEIGHT*4+2) (CHOICE_SIZE_X+3) 250 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
#endif //#ifdef PC
|
||||
|
||||
#undef LIST_X_START
|
||||
#define LIST_X_START ( -PLAYER_CARD_CLAN_TAG_MENU_WIDTH / 2 + 15 )
|
||||
#undef LIST_Y_START
|
||||
#define LIST_Y_START ( -PLAYER_CARD_CLAN_TAG_MENU_HEIGHT / 2 + 15 + NEW_FRAME_BG_Y_OFFSET( PLAYER_CARD_CLAN_TAG_MENU_HEIGHT ) )
|
||||
#undef LIST_HEIGHT
|
||||
#define LIST_HEIGHT (PLAYER_CARD_CLAN_TAG_MENU_HEIGHT-120)
|
||||
#undef LIST_WIDTH
|
||||
#define LIST_WIDTH (PLAYER_CARD_CLAN_TAG_MENU_WIDTH/2-40)
|
||||
|
||||
#define PLAYER_EMBLEM_BG_SIZE (190)
|
||||
#define PLAYER_EMBLEM_SIZE (PLAYER_EMBLEM_BG_SIZE - 20)
|
||||
#define PLAYER_EMBLEM_X_START 70
|
||||
#define PLAYER_EMBLEM_Y_START (CHOICE_Y_START+20)
|
||||
|
||||
#define PLAYER_CARD_COMMON_ITEMS \ \
|
||||
/* PLAYER NAME */ \
|
||||
PLAYER_CLAN_TAG_AND_NAME( PLAYER_EMBLEM_X_START, (PLAYER_EMBLEM_Y_START-18), 1 ) \
|
||||
/* BACKGROUND FOR EMBLEM */ \
|
||||
itemDef \
|
||||
{ \
|
||||
rect PLAYER_EMBLEM_X_START PLAYER_EMBLEM_Y_START PLAYER_EMBLEM_BG_SIZE PLAYER_EMBLEM_BG_SIZE CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \
|
||||
style WINDOW_STYLE_SHADER_FRAMED \
|
||||
frame 16 0.5 FRAME_SIDE_ALL \
|
||||
background "menu_mp_lobby_frame_circle" \
|
||||
forecolor 0 0 0 0.4 \
|
||||
visible 1 \
|
||||
decoration \
|
||||
} \
|
||||
/* PLAYER EMBLEM */ \
|
||||
PLAYER_EMBLEM_ALL( (PLAYER_EMBLEM_X_START+10), (PLAYER_EMBLEM_Y_START+10), PLAYER_EMBLEM_SIZE, PLAYER_EMBLEM_SIZE, 1 )
|
||||
|
||||
#ifdef CONSOLE
|
||||
#define CLAN_TAG_SPECIAL_ESC( actionArg ) \
|
||||
execKeyInt KEY_ESCAPE \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
actionArg; \
|
||||
}
|
||||
#else // #ifdef CONSOLE
|
||||
#define CLAN_TAG_SPECIAL_ESC( actionArg )
|
||||
#endif //#ifdef CONSOLE
|
||||
|
||||
#ifdef PC
|
||||
#define CLAN_TAG_LIST_PC_ACTIONS \
|
||||
mouseenter \
|
||||
{ \
|
||||
setfocus "clan_tag_list" \
|
||||
}
|
||||
#else //#ifdef PC
|
||||
#define CLAN_TAG_LIST_PC_ACTIONS
|
||||
#endif //#ifdef PC
|
||||
|
||||
#define CLAN_TAG_LIST( feederType, rectArg, execCommand, onActionArg, selectionChangeArgs, visArg, extraArgs ) \
|
||||
itemDef\
|
||||
{ \
|
||||
name "clan_tag_list" \
|
||||
type ITEM_TYPE_LISTBOX \
|
||||
feeder feederType \
|
||||
rect rectArg \
|
||||
origin 0 0 \
|
||||
elementwidth 30 \
|
||||
elementheight 19 \
|
||||
elementtype LISTBOX_TEXT \
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL \
|
||||
textfont UI_FONT_NORMAL \
|
||||
textscale TEXTSIZE_DEFAULT \
|
||||
textalignx 12 \ \
|
||||
textaligny 0 \
|
||||
forecolor CHOICE_TEXTCOLOR \
|
||||
focusColor CHOICE_TEXTCOLOR \
|
||||
disableColor CHOICE_TEXTCOLOR \
|
||||
noscrollbars \
|
||||
selectIcon SELECT_ICON \
|
||||
outlineColor 1 1 1 1 \
|
||||
elementHighlightColor 0 0 0 1 \
|
||||
elementBackgroundColor NEW_FRAME_TRANSPARENCY \
|
||||
modal \
|
||||
noBlinkingHighlight \
|
||||
visible visArg \
|
||||
userarea 4 0 0 CHOICE_SIZE_X 17 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* Name */ \
|
||||
20 1 15 15 16 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* Image */ \
|
||||
(CHOICE_SIZE_X-60) 0 50 17 24 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* Cost */ \
|
||||
(CHOICE_SIZE_X+2) (17/2-LOCK_SIZE/2) LOCK_SIZE LOCK_SIZE 24 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* Lock */ \
|
||||
onfocus \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
SET_CLANTAG_HINT \
|
||||
} \
|
||||
onListboxSelectionChange \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
selectionChangeArgs \
|
||||
SET_CLANTAG_HINT \
|
||||
} \
|
||||
doubleclick \
|
||||
{ \
|
||||
if( IsClanTagFeaturePurchased( GetCurrentClanTagFeature() ) ) \
|
||||
{ \
|
||||
execNow setClanTag ( GetCurrentClanTagFeature() ); \
|
||||
} \
|
||||
elseif( !IsClanTagFeatureLocked( GetCurrentClanTagFeature() ) && ( GetClanTagFeatureCost( GetCurrentClanTagFeature() ) <= GetStatByName( "CODPOINTS" ) ) ) \
|
||||
{ \
|
||||
open PurchaseClanTagFeatureConfirmation; \
|
||||
} \
|
||||
} \
|
||||
execKeyInt BUTTON_X \
|
||||
{ \
|
||||
} \
|
||||
CLAN_TAG_SPECIAL_ESC( onActionArg ) \
|
||||
CLAN_TAG_LIST_PC_ACTIONS \
|
||||
extraArgs \
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
#define EDIT_CLAN_TAG_ACTION \
|
||||
doubleclick \
|
||||
{ \
|
||||
open pc_editclantag; \
|
||||
}
|
||||
#else //#ifdef PC
|
||||
#define EDIT_CLAN_TAG_ACTION \
|
||||
doubleclick \
|
||||
{ \
|
||||
execNow editclanname; \
|
||||
}
|
||||
#endif //#ifdef PC
|
||||
|
||||
#ifdef PC
|
||||
#define CLAN_TAG_LIST_EDIT_PC_ACTIONS \
|
||||
mouseenter \
|
||||
{ \
|
||||
setfocus "clan_tag_list_edit" \
|
||||
}
|
||||
#else //#ifdef PC
|
||||
#define CLAN_TAG_LIST_EDIT_PC_ACTIONS
|
||||
#endif //#ifdef PC
|
||||
|
||||
#define CLAN_TAG_LIST_EDIT( feederType, rectArg, execCommand, onActionArg, selectionChangeArgs, visArg, extraArgs ) \
|
||||
itemDef\
|
||||
{ \
|
||||
name "clan_tag_list_edit" \
|
||||
type ITEM_TYPE_LISTBOX \
|
||||
feeder feederType \
|
||||
rect rectArg \
|
||||
origin 0 0 \
|
||||
elementwidth 30 \
|
||||
elementheight 19 \
|
||||
elementtype LISTBOX_TEXT \
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL \
|
||||
textfont UI_FONT_NORMAL \
|
||||
textscale TEXTSIZE_DEFAULT \
|
||||
textalignx 22 \
|
||||
textaligny 0 \
|
||||
forecolor CHOICE_TEXTCOLOR \
|
||||
focusColor CHOICE_TEXTCOLOR \
|
||||
disableColor CHOICE_TEXTCOLOR \
|
||||
noscrollbars \
|
||||
selectIcon SELECT_ICON \
|
||||
outlineColor 1 1 1 1 \
|
||||
elementHighlightColor 0 0 0 1 \
|
||||
elementBackgroundColor NEW_FRAME_TRANSPARENCY \
|
||||
modal \
|
||||
noBlinkingHighlight \
|
||||
visible visArg \
|
||||
onfocus \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
setdvar ui_show_arrow "0"; \
|
||||
} \
|
||||
onListboxSelectionChange \
|
||||
{ \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
selectionChangeArgs \
|
||||
setdvar ui_show_arrow "0"; \
|
||||
} \
|
||||
EDIT_CLAN_TAG_ACTION \
|
||||
execKeyInt BUTTON_X \
|
||||
{ \
|
||||
} \
|
||||
CLAN_TAG_SPECIAL_ESC( onActionArg ) \
|
||||
CLAN_TAG_LIST_EDIT_PC_ACTIONS \
|
||||
extraArgs \
|
||||
}
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
execnow "uploadstats"; \
|
||||
execnow changemenucloseslidedirection menu_playercards_clantag MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT; \
|
||||
close self; \
|
||||
open menu_playercard_self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name menu_playercards_clantag
|
||||
rect 0 0 640 480 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
control MENU_CONTROL_OPENER
|
||||
priority MENU_PRI_ONTOP
|
||||
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
|
||||
{
|
||||
setLocalVarString ui_choicegroup CHOICE_GROUP;
|
||||
focusFirst;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
setLocalVarString ui_choicegroup CHOICE_GROUP;
|
||||
activateBlur;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
|
||||
NEW_FRAME( PLAYER_CARD_CLAN_TAG_MENU_WIDTH, PLAYER_CARD_CLAN_TAG_MENU_HEIGHT )
|
||||
|
||||
// Title
|
||||
NEW_FRAME_TITLE( PLAYER_CARD_CLAN_TAG_MENU_WIDTH, PLAYER_CARD_CLAN_TAG_MENU_HEIGHT, "@MPUI_CLAN_TAG_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( PLAYER_CARD_CLAN_TAG_MENU_WIDTH, PLAYER_CARD_CLAN_TAG_MENU_HEIGHT, 1 )
|
||||
|
||||
/* Label for "Edit clan tag" */
|
||||
PREPROC_TEXT_DRAW( CHOICE_X_START (CHOICE_Y_START+2) 100 10 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0,
|
||||
"@MPUI_EDIT_CLAN_TAG_CAPS",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_LT_GREY_RGB 1 )
|
||||
|
||||
// CLAN TAG BUTTON
|
||||
CLAN_TAG_LIST_EDIT( FEEDER_CLANTAG_FEATURES_EDIT, PLAYER_CARD_LISTBOX_RECT_EDIT, ( dvarString( ui_execString ) );, ;, ;, 1, ; )
|
||||
|
||||
/* Label for "Clan Tag color" */
|
||||
PREPROC_TEXT_DRAW( CHOICE_X_START (CHOICE_Y_START+NEW_FRAME_BUTTON_HEIGHT*3+2) 100 10 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN, 0 0,
|
||||
"@MPUI_CLAN_TAG_COLOR_CAPS",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, NEW_FRAME_LT_GREY_RGB 1 )
|
||||
|
||||
// CLAN TAG LIST
|
||||
CLAN_TAG_LIST( FEEDER_CLANTAG_FEATURES, PLAYER_CARD_LISTBOX_RECT, ( dvarString( ui_execString ) );, ;, ;, 1, ; )
|
||||
|
||||
PLAYER_CARD_COMMON_ITEMS
|
||||
|
||||
HINT_TEXT( 13, CHOICE_X_START, dvarString( ui_hint_text ), dvarBool( ui_show_arrow ) )
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( FRAME_DEFAULT_WIDTH, FRAME_DEFAULT_HEIGHT, ON_ESC; )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( PLAYER_CARD_CLAN_TAG_MENU_WIDTH, PLAYER_CARD_CLAN_TAG_MENU_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
166
mods/mp_patch/ui_mp/players.menu
Normal file
166
mods/mp_patch/ui_mp/players.menu
Normal file
@ -0,0 +1,166 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
|
||||
#define LIST_ELEM_HEIGHT 18
|
||||
#define MAX_PLAYERS 32
|
||||
|
||||
#define PLAYERLIST_HEIGHT ((MAX_PLAYERS/2)*LIST_ELEM_HEIGHT)
|
||||
#define PLAYERLIST_WIDTH 235
|
||||
#define PLAYERLIST_SPACING 56
|
||||
|
||||
#define PLAYERLIST_A_X_START (-PLAYERLIST_WIDTH-(PLAYERLIST_SPACING/2))
|
||||
#define PLAYERLIST_B_X_START (PLAYERLIST_SPACING/2)
|
||||
#define PLAYERLIST_Y_START (-PLAYERLIST_HEIGHT/2)
|
||||
|
||||
#define PLAYERLIST_A_RECT PLAYERLIST_A_X_START PLAYERLIST_Y_START PLAYERLIST_WIDTH PLAYERLIST_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
#define PLAYERLIST_B_RECT PLAYERLIST_B_X_START PLAYERLIST_Y_START PLAYERLIST_WIDTH PLAYERLIST_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
|
||||
#define RANK_BG_WIDTH 33
|
||||
#define COLUMN_SCORE_WIDTH 34
|
||||
#define MUTE_ICON_WIDTH LIST_ELEM_HEIGHT
|
||||
#define FRIEND_ICON_WIDTH LIST_ELEM_HEIGHT
|
||||
#define FRIEND_ICON_START_X ( PLAYERLIST_WIDTH - FRIEND_ICON_WIDTH - 4 )
|
||||
#define MUTE_ICON_START_X ( FRIEND_ICON_START_X - MUTE_ICON_WIDTH - 4 )
|
||||
#define COLUMN_NAME_START_X 34
|
||||
#define COLUMN_NAME_WIDTH ( FRIEND_ICON_START_X - COLUMN_NAME_START_X )
|
||||
|
||||
#define IN_PREGAME ( dvarbool( ui_pregame ) )
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui_mp/choices_setup_teams.menu"
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
close self; \
|
||||
open class;
|
||||
|
||||
#define AAR_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
||||
#define AAR_WIDTH ( AAR_HEIGHT * FRAME_ASPECT_RATIO )
|
||||
|
||||
#define AAR_AWARD_IMAGE_COLOR 0.8 0.68 0.47 0.6
|
||||
#define AAR_AWARD_IMAGE_COLOR_GREY 1 1 1 0.3
|
||||
|
||||
#define AAR_BODY_X_START ( -AAR_WIDTH / 2 + 15 )
|
||||
#define AAR_BODY_Y_START ( -AAR_HEIGHT / 2 + 15 + NEW_FRAME_BG_Y_OFFSET( AAR_HEIGHT ) )
|
||||
|
||||
#define AAR_SCOREBOARD_COLUMN_SPACING 70
|
||||
#define AAR_SCOREBOARD_COLUMN_4_X 420
|
||||
#define AAR_SCOREBOARD_COLUMN_3_X ( AAR_SCOREBOARD_COLUMN_4_X - AAR_SCOREBOARD_COLUMN_SPACING )
|
||||
#define AAR_SCOREBOARD_COLUMN_2_X ( AAR_SCOREBOARD_COLUMN_3_X - AAR_SCOREBOARD_COLUMN_SPACING )
|
||||
#define AAR_SCOREBOARD_COLUMN_1_X ( AAR_SCOREBOARD_COLUMN_2_X - 50 )
|
||||
#define AAR_SCOREBOARD_COLUMN_SCORE_X ( AAR_SCOREBOARD_COLUMN_1_X - 50 )
|
||||
|
||||
#define AAR_DBLCLICK_ACTION( menuName ) \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
execnow set selectedPlayerXuid ( getfeederdata( "xuid" ) ); \
|
||||
execnow set selectedFriendName ( getfeederdata( "name" ) ); \
|
||||
if( (getfeederdata( "xuid" ) != getXuid()) && (getfeederdata( "xuid" ) != 0) ) \
|
||||
{ \
|
||||
hideMenu self; \
|
||||
if (IsInGame()) \
|
||||
{ \
|
||||
showMenu "pausedbkgnd"; \
|
||||
} \
|
||||
execnow changemenuopenslidedirection menu_playercard MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT; \
|
||||
execNow openMenu menu_playercard; \
|
||||
}
|
||||
|
||||
|
||||
#define AAR_SCOREBOARD_LISTBOX( scoreboard_name, feederId, x, y, w, h, visArg, extraArgs, menuName ) \
|
||||
itemDef \
|
||||
{ \
|
||||
name scoreboard_name \
|
||||
type ITEM_TYPE_LISTBOX \
|
||||
feeder feederId \
|
||||
rect x y w h HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
origin 0 0 \
|
||||
elementwidth 30 \
|
||||
elementheight 17 \
|
||||
elementtype LISTBOX_TEXT \
|
||||
textstyle ITEM_TEXTSTYLE_NORMAL \
|
||||
textfont UI_FONT_NORMAL \
|
||||
textscale TEXTSIZE_SMALL \
|
||||
forecolor 1 1 1 1 \
|
||||
focusColor 1 1 1 1 \
|
||||
disableColor 1 1 1 1 \
|
||||
elementHighlightColor 0 0 0 1 \
|
||||
noBlinkingHighlight \
|
||||
visible visArg \
|
||||
userarea 10 -1 0 (w-16) 19 24 ITEM_ALIGN_LEFT ITEM_ALIGN_TOP /* SCOREBOARD_COLUMN_NEMESIS_BG */ \
|
||||
-1 0 40 19 10 ITEM_ALIGN_LEFT ITEM_ALIGN_TOP /* SCOREBOARD_COLUMN_RANK_BG */ \
|
||||
3 0 50 16 10 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_RANK */ \
|
||||
16 1 16 16 32 ITEM_ALIGN_RIGHT ITEM_ALIGN_TOP /* SCOREBOARD_COLUMN_RANK_ICON */ \
|
||||
50 0 100 16 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_NAME */ \
|
||||
AAR_SCOREBOARD_COLUMN_SCORE_X 0 100 16 10 ITEM_ALIGN_RIGHT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_SCORE */ \
|
||||
AAR_SCOREBOARD_COLUMN_1_X 0 100 16 10 ITEM_ALIGN_RIGHT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_1 */ \
|
||||
AAR_SCOREBOARD_COLUMN_2_X 0 100 16 10 ITEM_ALIGN_RIGHT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_2 */ \
|
||||
(AAR_SCOREBOARD_COLUMN_3_X+85) 0 16 16 10 ITEM_ALIGN_RIGHT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_3 */ \
|
||||
(AAR_SCOREBOARD_COLUMN_4_X+70) 0 16 16 10 ITEM_ALIGN_RIGHT ITEM_ALIGN_MIDDLE /* SCOREBOARD_COLUMN_4 */ \
|
||||
\
|
||||
doubleclick \
|
||||
{ \
|
||||
AAR_DBLCLICK_ACTION( menuName ) \
|
||||
} \
|
||||
\
|
||||
extraArgs \
|
||||
}
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name "players"
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_EMPTY
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
onOpen
|
||||
{
|
||||
if (IsInGame())
|
||||
{
|
||||
showMenu "pausedbkgnd";
|
||||
}
|
||||
setdvar ui_friendsListOpen "0";
|
||||
setdvar ui_ingamePlayersOpen "1";
|
||||
|
||||
// TODO: Set Focus to something?
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if (IsInGame())
|
||||
{
|
||||
hideMenu "pausedbkgnd";
|
||||
}
|
||||
setdvar ui_ingamePlayersOpen "0";
|
||||
}
|
||||
|
||||
// ------------------ TREE TITLE ------------------
|
||||
CHOICE_MENU_TITLE_ALIGN_VIS( "@MENU_PLAYERS_CAPS", HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
|
||||
|
||||
/* LABEL FOR COLUMN "SCORE" */
|
||||
PREPROC_TEXT_DRAW( (AAR_BODY_X_START+12+AAR_SCOREBOARD_COLUMN_SCORE_X) (AAR_BODY_Y_START-15) 100 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, "@MPUI_SCORE_CAPS", TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, CHOICE_TEXTCOLOR )
|
||||
/* LABEL FOR COLUMN 1 */
|
||||
PREPROC_TEXT_DRAW( (AAR_BODY_X_START+12+AAR_SCOREBOARD_COLUMN_1_X) (AAR_BODY_Y_START-15) 100 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "@"+getScoreboardColumnHeader( 0 )+"_CAPS" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, CHOICE_TEXTCOLOR )
|
||||
/* LABEL FOR COLUMN 2 */
|
||||
PREPROC_TEXT_DRAW( (AAR_BODY_X_START+12+AAR_SCOREBOARD_COLUMN_2_X) (AAR_BODY_Y_START-15) 100 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "@"+getScoreboardColumnHeader( 1 )+"_CAPS" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, CHOICE_TEXTCOLOR )
|
||||
/* LABEL FOR COLUMN 3 */
|
||||
PREPROC_TEXT_DRAW( (AAR_BODY_X_START+12+AAR_SCOREBOARD_COLUMN_3_X) (AAR_BODY_Y_START-15) 100 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "MENU_FRIEND" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, CHOICE_TEXTCOLOR )
|
||||
/* LABEL FOR COLUMN 4 */
|
||||
PREPROC_TEXT_DRAW( (AAR_BODY_X_START+12+AAR_SCOREBOARD_COLUMN_4_X-16) (AAR_BODY_Y_START-15) 100 20 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "MP_MUTED" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_RIGHT, CHOICE_TEXTCOLOR )
|
||||
|
||||
/* SCOREBOARD */
|
||||
AAR_SCOREBOARD_LISTBOX( scoreboard_listbox, FEEDER_AAR_SCOREBOARD, (AAR_BODY_X_START+10), (AAR_BODY_Y_START+5), (AAR_WIDTH-40), (AAR_HEIGHT-65), 1, ;, menu_aar_scoreboard )
|
||||
|
||||
|
||||
// Back button
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( ON_ESC, when( MenuHasFocus() ); )
|
||||
#endif
|
||||
}
|
||||
}
|
844
mods/mp_patch/ui_mp/scriptmenus/callvote.menu
Normal file
844
mods/mp_patch/ui_mp/scriptmenus/callvote.menu
Normal file
@ -0,0 +1,844 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui_mp/choices_setup_teams.menu"
|
||||
|
||||
#define PC_INGAME 1
|
||||
#include "ui_mp/overlaybg.inc"
|
||||
|
||||
#define GAME_DESC_VIS_ARG ( dvarInt( "xblive_basictraining" ) || dvarBool( splitscreen ) || dvarBool( systemlink ) || (dvarString("ui_gametype_idx") != "0") )
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "pausedbkgnd_callvote"
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
blurWorld 4.8
|
||||
visible 1
|
||||
|
||||
#define SINGLE_PLAYER 1
|
||||
#include "ui_mp/ingamebg.inc"
|
||||
}
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 170
|
||||
|
||||
#define BACKGROUND_COLOR_GRAY_RGB 0.62 0.70 0.70
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 30
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -120
|
||||
#define CHOICE_SEP_1 5
|
||||
#else
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 30
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -30
|
||||
#define CHOICE_SEP_1 3
|
||||
#endif
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "callvote"
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_LEFT
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
#undef BUTTON_BG_X_START
|
||||
#define BUTTON_BG_X_START 30
|
||||
#undef BUTTON_BG_Y_START
|
||||
#define BUTTON_BG_Y_START 42
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name callvote
|
||||
fullScreen 0
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN // Size and position of the menu
|
||||
focusColor COLOR_FOCUSED // Menu focus color for text and items
|
||||
#ifdef CONSOLE
|
||||
blurWorld 7.0
|
||||
#endif
|
||||
onOpen
|
||||
{
|
||||
showMenu "pausedbkgnd_callvote";
|
||||
}
|
||||
|
||||
onClose
|
||||
{
|
||||
hideMenu "pausedbkgnd_callvote";
|
||||
}
|
||||
|
||||
onEsc
|
||||
{
|
||||
close self;
|
||||
open "class";
|
||||
}
|
||||
|
||||
#define CALLVOTE_SUBTITLE ""
|
||||
#include "ui_mp/scriptmenus/callvote_buttons.inc"
|
||||
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( close self;, 1 )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name changegametype
|
||||
fullScreen 0
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN // Size and position of the menu
|
||||
focusColor COLOR_FOCUSED // Menu focus color for text and items
|
||||
#ifdef CONSOLE
|
||||
blurWorld 7.0
|
||||
#endif
|
||||
onEsc
|
||||
{
|
||||
showMenu callvote;
|
||||
close self;
|
||||
}
|
||||
|
||||
onOpen
|
||||
{
|
||||
setdvar invite_visible "0";
|
||||
|
||||
setDvar ui_mapname "mp_array";
|
||||
setDvar ui_gametype "tdm";
|
||||
setdvar ui_gametype_idx "1";
|
||||
|
||||
setDvar ui_preview dvarString( "ui_mapname" );
|
||||
setdvar ui_preview_gt dvarString( "ui_gametype" );
|
||||
setdvar ui_preview_gt_idx dvarString( "ui_gametype_idx" );
|
||||
setDvar settings_map_selected 1;
|
||||
execNow movefeeder top gamemode_selection;
|
||||
execNow movefeeder top maplist;
|
||||
}
|
||||
|
||||
onClose
|
||||
{
|
||||
}
|
||||
|
||||
#undef CALLVOTE_SUBTITLE
|
||||
#define CALLVOTE_SUBTITLE "@MPUI_CHANGE_GAME_TYPEMAP"
|
||||
#include "ui_mp/scriptmenus/callvote_buttons.inc"
|
||||
|
||||
#define GAMEMODE_X 210
|
||||
#define MAPSELECT_X 430
|
||||
#define MAPSELECT_Y 255
|
||||
#define GAMEMODE_Y 255
|
||||
#define THUMBNAIL_Y 18
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_image
|
||||
style WINDOW_STYLE_SHADER
|
||||
type ITEM_TYPE_IMAGE
|
||||
rect GAMEMODE_X THUMBNAIL_Y 170 135 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
border 0
|
||||
bordercolor .5 .5 .5 .5
|
||||
origin 0 0
|
||||
exp material( tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 3 ) ); // ui_preview_gt
|
||||
visible when(GAME_DESC_VIS_ARG);
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_custom_image
|
||||
style WINDOW_STYLE_SHADER
|
||||
type ITEM_TYPE_IMAGE
|
||||
rect GAMEMODE_X THUMBNAIL_Y 170 135 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
border 0
|
||||
bordercolor .5 .5 .5 .5
|
||||
origin 0 0
|
||||
exp material( "playlist_infantry" );
|
||||
visible when(!GAME_DESC_VIS_ARG);
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_name
|
||||
type ITEM_TYPE_TEXT
|
||||
rect GAMEMODE_X 175 170 20 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale 0.4
|
||||
forecolor 1 1 1 1
|
||||
exp text "@" + tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 1 ); // ui_preview_gt
|
||||
visible when(GAME_DESC_VIS_ARG)
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_custom_name
|
||||
type ITEM_TYPE_TEXT
|
||||
rect GAMEMODE_X 175 170 20 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale 0.4
|
||||
forecolor 1 1 1 1
|
||||
text "@CUSTOM_CUSTOM_GAME_MODE_CAPS"
|
||||
visible when(!GAME_DESC_VIS_ARG)
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_desc
|
||||
type ITEM_TYPE_TEXT
|
||||
rect GAMEMODE_X 195 170 35 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_SMALL
|
||||
textscale 0.3
|
||||
forecolor 1 1 1 1
|
||||
exp text "@" + tableLookup( "mp/gametypesTable.csv", 0, dvarString( ui_gametype ), 2 ); // ui_preview_gt
|
||||
visible when(GAME_DESC_VIS_ARG);
|
||||
autowrapped
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_custom_desc
|
||||
type ITEM_TYPE_TEXT
|
||||
rect GAMEMODE_X 195 170 35 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_SMALL
|
||||
textscale 0.3
|
||||
forecolor 1 1 1 1
|
||||
text "@CUSTOM_SELECT_FROM_FILESHARE_DESC"
|
||||
visible when(!GAME_DESC_VIS_ARG);
|
||||
autowrapped
|
||||
decoration
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
#define LIST_PARAMS( listName ) \
|
||||
usePaging \
|
||||
mouseEnter \
|
||||
{ \
|
||||
setFocus listName; \
|
||||
}
|
||||
#else // #ifdef PC
|
||||
#define LIST_PARAMS( listName )
|
||||
#endif // #else // #ifdef PC
|
||||
|
||||
itemDef
|
||||
{
|
||||
name gamemode_selection
|
||||
type ITEM_TYPE_LISTBOX
|
||||
noBlinkingHighlight
|
||||
rect GAMEMODE_X GAMEMODE_Y 170 170 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale CHOICE_TEXTSIZE
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textfont UI_FONT_NORMAL
|
||||
elementtype LISTBOX_TEXT
|
||||
elementwidth 120
|
||||
elementheight 18
|
||||
textalignx 6
|
||||
textaligny 0
|
||||
backcolor 0 0 0 0.2
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor 1 1 1 0.15
|
||||
outlinecolor 1 1 1 0
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor 1 1 1 1
|
||||
disableColor 1 1 1 1
|
||||
feeder FEEDER_GAMETYPES_INGAME
|
||||
LIST_PARAMS( gamemode_selection )
|
||||
visible 1
|
||||
userarea 2 -1 0 155 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
|
||||
6 0 155 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
|
||||
doubleclick
|
||||
{
|
||||
setDvar ui_gametype_idx dvarString( "ui_preview_gt_idx" );
|
||||
if( !GAME_DESC_VIS_ARG )
|
||||
{
|
||||
open "custom_select_from_fileshare_1";
|
||||
}
|
||||
else
|
||||
{
|
||||
if( dvarString( "ui_preview_gt" ) != dvarString( "ui_gametype" ) )
|
||||
{
|
||||
execNow "resetCustomGametype";
|
||||
}
|
||||
|
||||
play CHOICE_ACTION_SOUND;
|
||||
}
|
||||
setDvar ui_gametype dvarString( ui_preview_gt );
|
||||
}
|
||||
action
|
||||
{
|
||||
setDvar ui_gametype_idx dvarString( "ui_preview_gt_idx" );
|
||||
if( !GAME_DESC_VIS_ARG )
|
||||
{
|
||||
open "custom_select_from_fileshare_1";
|
||||
}
|
||||
else
|
||||
{
|
||||
if( dvarString( "ui_preview_gt" ) != dvarString( "ui_gametype" ) )
|
||||
{
|
||||
execNow "resetCustomGametype";
|
||||
}
|
||||
|
||||
play CHOICE_ACTION_SOUND;
|
||||
}
|
||||
setDvar ui_gametype dvarString( ui_preview_gt );
|
||||
}
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name mappreview
|
||||
style WINDOW_STYLE_SHADER
|
||||
type ITEM_TYPE_IMAGE
|
||||
rect MAPSELECT_X THUMBNAIL_Y 170 135 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
border 0
|
||||
bordercolor .5 .5 .5 .5
|
||||
origin 0 0
|
||||
exp material( tablelookup("mp/mapsTable.csv",0,dvarString(ui_mapname),4) ); // ui_preview
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name map_name
|
||||
type ITEM_TYPE_TEXT
|
||||
rect MAPSELECT_X 175 170 20 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale 0.4
|
||||
forecolor 1 1 1 1
|
||||
exp text "@" + tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_mapname ) , 3 ); // ui_preview
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name map_desc
|
||||
type ITEM_TYPE_TEXT
|
||||
rect MAPSELECT_X 195 170 35 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textalign ITEM_ALIGN_LEFT
|
||||
textfont UI_FONT_SMALL
|
||||
textscale 0.3
|
||||
forecolor 1 1 1 1
|
||||
exp text "@" + tableLookup( "mp/mapsTable.csv", 0, dvarString( ui_mapname ) , 6 ); // ui_preview
|
||||
visible 1
|
||||
autowrapped
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name maplist
|
||||
rect MAPSELECT_X MAPSELECT_Y 170 170 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
type ITEM_TYPE_LISTBOX
|
||||
noBlinkingHighlight
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale CHOICE_TEXTSIZE
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textfont UI_FONT_NORMAL
|
||||
elementtype LISTBOX_TEXT
|
||||
elementwidth 120
|
||||
elementheight 18
|
||||
textalignx 6
|
||||
textaligny 0
|
||||
backcolor 0 0 0 0.2
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor 1 1 1 0.15
|
||||
outlinecolor 1 1 1 0
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor 1 1 1 1
|
||||
disableColor 1 1 1 1
|
||||
feeder FEEDER_MAPS
|
||||
LIST_PARAMS( maplist )
|
||||
visible 1
|
||||
userarea 2 -1 0 155 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_BACKGROUND */
|
||||
6 0 155 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE /* FEEDER_MAPSELECTION_COLUMN_NAME */
|
||||
|
||||
doubleclick { setDvar ui_mapname dvarString( ui_preview ); }
|
||||
action { setDvar ui_mapname dvarString( ui_preview ); }
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name vote
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect MAPSELECT_X (MAPSELECT_Y+170+4) 40 20 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
exp rect W( getTextWidth(locString("@MPUI_VOTE"),UI_FONT_NORMAL,TEXTSIZE_DEFAULT)+8 )
|
||||
text "@MPUI_VOTE"
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
style WINDOW_STYLE_FILLED
|
||||
visible 1
|
||||
forecolor 1 1 1 1
|
||||
backcolor 1 1 1 0
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA
|
||||
mouseEnter { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_SELECTED_RGBA; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA; }
|
||||
action
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
#ifdef CONSOLE
|
||||
setDvar ui_gametype dvarString( ui_preview_gt );
|
||||
setDvar ui_mapname dvarString( ui_preview );
|
||||
uiScript voteTypeMapDVar ui_preview_gt ui_preview;
|
||||
#else //#ifdef CONSOLE
|
||||
uiScript voteTypeMapDVar ui_gametype ui_mapname;
|
||||
#endif //#ifdef CONSOLE
|
||||
close self;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define TAB_1_TEXT (locString( "@MPUI_MAPS_CAPS" ))
|
||||
#define TAB_2_TEXT (locString( "@MPUI_DLC_MAPS_CAPS" ))
|
||||
|
||||
#define TAB_BG_PAD 5
|
||||
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, UI_FONT_NORMAL, TEXTSIZE_DEFAULT ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, UI_FONT_NORMAL, TEXTSIZE_DEFAULT ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_HEIGHT 15
|
||||
|
||||
#define MAP_TAB_1_X MAPSELECT_X
|
||||
#define MAP_TAB_2_X ( MAP_TAB_1_X + TAB_1_WIDTH )
|
||||
|
||||
#define MAP_TAB_Y ( MAPSELECT_Y - TAB_HEIGHT )
|
||||
#define MAPS_TAB_VISIBLE ( 1 )
|
||||
#define DLC_TAB_VISIBLE ( dvarBool( "dlc2" ) || dvarBool( "dlc3" ) || dvarBool( "dlc4" ) )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name switch_to_original_maps
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect MAP_TAB_1_X MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
exp rect W( TAB_1_WIDTH )
|
||||
text "@MPUI_MAPS_CAPS"
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
style WINDOW_STYLE_FILLED
|
||||
visible when( DLC_TAB_VISIBLE )
|
||||
forecolor 1 1 1 1
|
||||
backcolor 1 1 1 0
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA
|
||||
mouseEnter { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_SELECTED_RGBA; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA; }
|
||||
action
|
||||
{
|
||||
setDvar ui_showDLCMaps 0;
|
||||
}
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name switch_to_dlc_maps
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect 0 MAP_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
exp rect W( TAB_2_WIDTH )
|
||||
exp rect X( MAP_TAB_2_X )
|
||||
text "@MPUI_DLC_MAPS_CAPS"
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
style WINDOW_STYLE_FILLED
|
||||
visible when( DLC_TAB_VISIBLE )
|
||||
forecolor 1 1 1 1
|
||||
backcolor 1 1 1 0
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA
|
||||
mouseEnter { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_SELECTED_RGBA; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA; }
|
||||
action
|
||||
{
|
||||
setDvar ui_showDLCMaps 1;
|
||||
}
|
||||
}
|
||||
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( exec "wait"; close self;, 1 )
|
||||
}
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
name kickplayer
|
||||
fullScreen 0
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN // Size and position of the menu
|
||||
focusColor COLOR_FOCUSED // Menu focus color for text and items
|
||||
#ifdef CONSOLE
|
||||
blurWorld 7.0
|
||||
#endif
|
||||
onEsc
|
||||
{
|
||||
showMenu callvote;
|
||||
close self;
|
||||
}
|
||||
|
||||
onClose
|
||||
{
|
||||
}
|
||||
|
||||
#undef CALLVOTE_SUBTITLE
|
||||
#define CALLVOTE_SUBTITLE "@MPUI_KICK_PLAYER"
|
||||
#include "ui_mp/scriptmenus/callvote_buttons.inc"
|
||||
|
||||
itemDef
|
||||
{
|
||||
name playerlist
|
||||
type ITEM_TYPE_LISTBOX
|
||||
noBlinkingHighlight
|
||||
visible 1
|
||||
rect GAMEMODE_X 90 260 330 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
style WINDOW_STYLE_FILLED
|
||||
textscale CHOICE_TEXTSIZE
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
textfont UI_FONT_NORMAL
|
||||
elementtype LISTBOX_TEXT
|
||||
elementwidth 120
|
||||
elementheight 18
|
||||
textalignx 6
|
||||
textaligny 0
|
||||
backcolor 0 0 0 0.2
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor 1 1 1 0.15
|
||||
outlinecolor 1 1 1 0
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
focusColor 1 1 1 1
|
||||
disableColor 1 1 1 1
|
||||
feeder FEEDER_PLAYER_LIST
|
||||
LIST_PARAMS( playerlist )
|
||||
userarea 2 -1 0 244 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
|
||||
6 0 244 20 32 ITEM_ALIGN_LEFT ITEM_ALIGN_MIDDLE
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
name vote
|
||||
type ITEM_TYPE_BUTTON
|
||||
rect GAMEMODE_X (90+330+4) 40 20 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP
|
||||
exp rect W( getTextWidth(locString("@MPUI_VOTE"),UI_FONT_NORMAL,TEXTSIZE_DEFAULT)+8 )
|
||||
text "@MPUI_VOTE"
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textstyle ITEM_TEXTSTYLE_SHADOWED
|
||||
style WINDOW_STYLE_FILLED
|
||||
visible 1
|
||||
forecolor 1 1 1 1
|
||||
backcolor 1 1 1 0
|
||||
border 1
|
||||
bordersize 1
|
||||
bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA
|
||||
mouseEnter { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_SELECTED_RGBA; play CHOICE_FOCUS_SOUND; }
|
||||
mouseexit { setcolor bordercolor CHOICE_BUTTON_BORDER_COLOR_UNSELECTED_RGBA; }
|
||||
action
|
||||
{
|
||||
play CHOICE_FOCUS_SOUND;
|
||||
uiScript voteTempBan;
|
||||
close self;
|
||||
}
|
||||
}
|
||||
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( close self;, 1 )
|
||||
}
|
||||
}
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 150
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 0
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START 65
|
||||
|
||||
#undef CHOICE_SEP_OFFSET_Y
|
||||
#define CHOICE_SEP_OFFSET_Y -2
|
||||
#undef CHOICE_SIDEITEM_SPACING
|
||||
#define CHOICE_SIDEITEM_SPACING -310
|
||||
|
||||
#undef CHOICE_DVAR_OFFSET_X
|
||||
#define CHOICE_DVAR_OFFSET_X (CHOICE_SIZE_X+20)
|
||||
#undef CHOICE_DVAR_TEXTALIGN
|
||||
#define CHOICE_DVAR_TEXTALIGN ITEM_ALIGN_MIDDLE_LEFT
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui_mp/fileshare.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
|
||||
|
||||
#define GAME_MODE_FILESHARE_UPLOAD_ACTION \
|
||||
execNow uploadCustomGametype ( getFeederData( "menu_game_mode_upload_1", "fileShareSlots", "slot" ) ); \
|
||||
execNow "set customGameMode 1"; \
|
||||
execNow "xupdatepartystate"; \
|
||||
if( dvarInt( ui_custom_gobackonupload ) ) \
|
||||
{ \
|
||||
closeimmediate custom_game_create; \
|
||||
closeimmediate select_game_mode; \
|
||||
}
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
|
||||
FILESHARE_SLOT_SELECTOR_EX ( menu_game_mode_upload_1, GAME_MODE_FILESHARE_UPLOAD_ACTION, ;, open custom_game_create;, ; )
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 260
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 0
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START 85
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC \
|
||||
close self;
|
||||
|
||||
menuDef
|
||||
{
|
||||
name custom_select_from_fileshare_1
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
priority MENU_PRI_ONTOP
|
||||
control MENU_CONTROL_OPENER
|
||||
soundloop MENU_MUSIC
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_RIGHT_TO_LEFT
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_LEFT_TO_RIGHT
|
||||
|
||||
onOpen
|
||||
{
|
||||
#ifdef PC
|
||||
// exec readfileshare
|
||||
#endif
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
activateBlur;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
deactivateBlur;
|
||||
}
|
||||
onESC
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
NEW_FRAME( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT )
|
||||
|
||||
NEW_FRAME_TITLE( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, "@CUSTOM_FILESHARE_SELECT_MODE_TITLE", 1 )
|
||||
NEW_FRAME_SUBTITLE( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, "@CUSTOM_FILESHARE_SELECT_MODE_DESC", 1 )
|
||||
|
||||
PLAYER_INFO_VIS( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, 1 )
|
||||
|
||||
itemDef
|
||||
{
|
||||
name fileShareSlots
|
||||
type ITEM_TYPE_LISTBOX
|
||||
feeder FEEDER_FILESHARE_MYSLOTS
|
||||
FILESHARE_COMMON_OPTIONS
|
||||
origin 0 0
|
||||
elementwidth 70
|
||||
elementheight 67
|
||||
elementtype LISTBOX_TEXT
|
||||
textalign ITEM_ALIGN_MIDDLE_CENTER
|
||||
textfont UI_FONT_NORMAL
|
||||
textscale TEXTSIZE_SUBTITLE
|
||||
forecolor CHOICE_TEXTCOLOR
|
||||
modal
|
||||
doubleclick
|
||||
{
|
||||
if ( getFeederData( "slotOccupied" ) && !( FILESHARE_TASKSINPROGRESS ) )
|
||||
{
|
||||
if( getFeederData( "fileType" ) == "customgamemode" )
|
||||
{
|
||||
execNow downloadCustomGametype (getFeederData( "fileID" )) (getFeederData( "fileSize" ));
|
||||
closeimmediate custom_select_from_fileshare_1;
|
||||
closeimmediate select_game_mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
visible 1
|
||||
|
||||
FILESHARE_SLOTS_USERAREAS
|
||||
}
|
||||
FILESHARE_BOTTOM( fileShareSlots, 1 )
|
||||
|
||||
/* SLOT OCCUPIED */
|
||||
#define SLOT_OCCUPIED_CONDITION \
|
||||
( getFeederData( "fileShareSlots", "slotOccupied" ) && getFeederData( "fileShareSlots", "count" ) > 0.0 )
|
||||
|
||||
#define SLOT_HAS_GAME_MODE \
|
||||
( getFeederData( "fileShareSlots", "fileType" ) == "customgamemode" )
|
||||
|
||||
#undef FILESHARE_SELECTOR_TOOLTIP_Y
|
||||
#ifdef PC
|
||||
#define FILESHARE_SELECTOR_TOOLTIP_Y FILESHARE_TOOLTIP_PC_Y
|
||||
#else //#ifdef PC
|
||||
#define FILESHARE_SELECTOR_TOOLTIP_Y 95
|
||||
#endif //#ifdef PC
|
||||
|
||||
|
||||
// Tooltip - Occupied Slot with custom game mode
|
||||
PREPROC_TEXT_DRAW_VIS_EX( -255 FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "CUSTOM_FILESHARE_CGM_HIGHLIGHTED" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), autowrapped; )
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -265 FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "ui_arrow_right", COLOR_BODY_TEXT, when( SLOT_OCCUPIED_CONDITION && SLOT_HAS_GAME_MODE ), ; )
|
||||
|
||||
// Tooltip - Occupied Slot that is not a custom game mode
|
||||
PREPROC_TEXT_DRAW_VIS_EX( -255 FILESHARE_SELECTOR_TOOLTIP_Y 280 36 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, locString( "CUSTOM_FILESHARE_CANT_SELECT" ), TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), autowrapped; )
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -265 FILESHARE_SELECTOR_TOOLTIP_Y 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "ui_arrow_right", COLOR_BODY_TEXT, when( SLOT_OCCUPIED_CONDITION && !SLOT_HAS_GAME_MODE ), ; )
|
||||
|
||||
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
|
||||
|
||||
execKeyInt APAD_UP
|
||||
{
|
||||
execnow set fshSelectLastSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt DPAD_UP
|
||||
{
|
||||
execnow set fshSelectLastSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt APAD_DOWN
|
||||
{
|
||||
execnow set fshSelectFirstSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
|
||||
execKeyInt DPAD_DOWN
|
||||
{
|
||||
execnow set fshSelectFirstSlotRow 1;
|
||||
setfocus fileShareSlots;
|
||||
}
|
||||
/*
|
||||
execKeyInt BUTTON_X
|
||||
{
|
||||
open fileshare_mymovie;
|
||||
}
|
||||
|
||||
#ifdef CONSOLE
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect -210 206 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
text "@PLATFORM_FILESHARE_MYMOVIE"
|
||||
textfont CHOICE_TEXTFONT
|
||||
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
#ifndef PC
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect -210 206 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
text "@PLATFORM_SELECT"
|
||||
textfont CHOICE_TEXTFONT
|
||||
|
||||
textscale TEXTSIZE_DEFAULT
|
||||
textalign ITEM_ALIGN_BOTTOM_LEFT
|
||||
visible when( getFeederData( "fileShareSlots", "slotOccupied" ) == 1 )
|
||||
decoration
|
||||
}
|
||||
#endif
|
||||
|
||||
NEW_FRAME_BUTTON_NOICON( 1, 28 0 0 18 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "", execnow "updatemarketplace";, ;, ;, 1, ;, ; )
|
||||
//FILESHARE_LIVEBLURB( -271, 50, 290, 100, HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, !IsPremiumSubscriber(), ( localVarInt( ui_highlight ) == 1 ) )
|
||||
|
||||
#ifdef CONSOLE
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect -146 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
exp text( int( getFeederData( "fileShareSlots", "slot" ) ) )
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_SMALL
|
||||
textalign ITEM_ALIGN_MIDDLE_RIGHT
|
||||
forecolor 1 1 1 1
|
||||
visible 1
|
||||
decoration
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
type ITEM_TYPE_TEXT
|
||||
rect -142 80 0 0 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
text "@MENU_FILESHARE_OF18"
|
||||
textfont CHOICE_TEXTFONT
|
||||
textscale TEXTSIZE_SMALL
|
||||
textalign ITEM_ALIGN_MIDDLE_LEFT
|
||||
forecolor 1 1 1 1
|
||||
visible 1
|
||||
}
|
||||
// Top Arrow
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "ui_arrow_left", COLOR_BODY_TEXT, when( getFeederData( "fileShareSlots", "slot" ) > 6 ), rotation 90; )
|
||||
|
||||
// Bottom Arrow 1
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -107 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "ui_arrow_right", COLOR_BODY_TEXT, when( getFeederData( "fileShareSlots", "slot" ) > 6 && getFeederData( "fileShareSlots", "slot" ) < 13 ), rotation 90; )
|
||||
|
||||
// Bottom Arrow 2
|
||||
PREPROC_SHADER_DRAW_VIS_EX( -114 75 11 11 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, "ui_arrow_right", COLOR_BODY_TEXT, when( getFeederData( "fileShareSlots", "slot" ) <= 6 ), rotation 90; )
|
||||
#endif //#ifdef CONSOLE
|
||||
// File details
|
||||
FILESHARE_DETAILS( 35, (NEW_FRAME_CHOICE_Y_START-1), HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, "custom_select_from_fileshare_1", "fileShareSlots", SLOT_OCCUPIED_CONDITION )
|
||||
|
||||
FILESHARE_SPINNER( 145, -45, when( FILESHARE_TASKSINPROGRESS ), 350 )
|
||||
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT, ON_ESC )
|
||||
#else //#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON( FILESHARE_FRAME_WIDTH, FILESHARE_FRAME_HEIGHT )
|
||||
#endif //#ifdef PC
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
365
mods/mp_patch/ui_mp/scriptmenus/changeclass.menu
Normal file
365
mods/mp_patch/ui_mp/scriptmenus/changeclass.menu
Normal file
@ -0,0 +1,365 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/stats_info.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 30
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -105
|
||||
|
||||
#ifdef PC
|
||||
#define PC_INGAME //for background in overlaybg.inc
|
||||
#endif
|
||||
|
||||
#define CHOICE_SEP_OFFSET_Y -2
|
||||
#define CHOICE_SEP_1 5
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/overlaybg.inc"
|
||||
|
||||
#define HIGH_BOUND "1000"
|
||||
|
||||
#undef BUTTON_BG_X_START
|
||||
#define BUTTON_BG_X_START 30
|
||||
#undef BUTTON_BG_Y_START
|
||||
#define BUTTON_BG_Y_START 42
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 200
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_LEFT
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
// ------
|
||||
|
||||
#undef ON_ESC
|
||||
#define ON_ESC scriptMenuResponse "back";
|
||||
|
||||
{
|
||||
menuDef
|
||||
{
|
||||
name "changeclass"
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_EMPTY
|
||||
#ifdef CONSOLE
|
||||
blurWorld 7.0
|
||||
#endif
|
||||
onOpen
|
||||
{
|
||||
if ( IsSplitscreen() )
|
||||
{
|
||||
close self;
|
||||
if ( IsViewportLarge() )
|
||||
{
|
||||
open "changeclass_splitscreen";
|
||||
}
|
||||
else
|
||||
{
|
||||
open "changeclass_splitscreen_small";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// update player's XP
|
||||
execNow "statGetByNameInDvar RANKXP ui_stat_rankxp";
|
||||
|
||||
if ( dvarString( ui_custom_name ) == "" )
|
||||
{
|
||||
execnow set ui_custom_name customclass1;
|
||||
}
|
||||
|
||||
if( dvarString( ui_class ) == "" )
|
||||
{
|
||||
execnow set ui_class class_smg;
|
||||
}
|
||||
/*set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0";*/
|
||||
|
||||
setfocusbydvar "ui_customclass_selected";
|
||||
//focusFirst
|
||||
}
|
||||
if (IsInGame())
|
||||
{
|
||||
showMenu "pausedbkgnd";
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
setLocalVarBool ui_hide_cac_item_info_highlights 1;
|
||||
#endif // #ifdef PC
|
||||
}
|
||||
onClose
|
||||
{
|
||||
if (IsInGame())
|
||||
{
|
||||
hideMenu "pausedbkgnd";
|
||||
}
|
||||
|
||||
#ifdef PC
|
||||
setLocalVarBool ui_hide_cac_item_info_highlights 0;
|
||||
#endif // #ifdef PC
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
execkeyint BUTTON_START
|
||||
{
|
||||
close self;
|
||||
}
|
||||
|
||||
|
||||
#ifndef PC // background overlay
|
||||
#include "ui_mp/ingamebg.inc"
|
||||
#endif // background overlay
|
||||
|
||||
// ------------------ TREE TITLE ------------------
|
||||
|
||||
CHOICE_MENU_TITLE_ALIGN_VIS( "@MPUI_CHOOSE_CLASS_CAPS", HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
|
||||
|
||||
//=========================================================================
|
||||
//================ MENU SELECTION FOR ONLINE/OFFLINE GAME =================
|
||||
//=========================================================================
|
||||
|
||||
#define IS_ONLINE_GAME ( dvarInt( splitscreen ) == 0 && dvarInt( systemlink ) == 0 )
|
||||
#define IS_BASICTRAINING_GAME ( dvarInt( xblive_basictraining ) > 0 )
|
||||
|
||||
#define FOCUS_CHECK( pnum ) \
|
||||
dvartest "ui_customclass_selected" focusdvar { pnum }
|
||||
|
||||
#define ACTION_COMMON( pnum ) \
|
||||
setDvar ui_customclass_selected pnum;
|
||||
|
||||
#define SHOW_ONLINE_CLASS_NAME ( IS_ONLINE_GAME && !IS_BASICTRAINING_GAME )
|
||||
#define CUSTOM_CLASS_TEXT( online, offline ) \
|
||||
Select( SHOW_ONLINE_CLASS_NAME, dvarString( online ), dvarString( offline ) )
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 1, CUSTOM_CLASS_TEXT( customclass1, offline_customclass1 ),
|
||||
scriptMenuResponse "custom1,0"; ACTION_COMMON( 6 ),
|
||||
exec "set ui_custom_name customclass1; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), FOCUS_CHECK( 6 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 1, CUSTOM_CLASS_TEXT( customclass1, offline_customclass1 ),
|
||||
;,
|
||||
;,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), decoration )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 2, CUSTOM_CLASS_TEXT( customclass2, offline_customclass2 ),
|
||||
scriptMenuResponse "custom2,0"; ACTION_COMMON( 7 ),
|
||||
exec "set ui_custom_name customclass2; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), FOCUS_CHECK( 7 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, CUSTOM_CLASS_TEXT( customclass2, offline_customclass2 ),
|
||||
;,
|
||||
;,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), decoration )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 3, CUSTOM_CLASS_TEXT( customclass3, offline_customclass3 ),
|
||||
scriptMenuResponse "custom3,0"; ACTION_COMMON( 8 ),
|
||||
exec "set ui_custom_name customclass3; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), FOCUS_CHECK( 8 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 3, CUSTOM_CLASS_TEXT( customclass3, offline_customclass3 ),
|
||||
;,
|
||||
;,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), decoration )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 4, CUSTOM_CLASS_TEXT( customclass4, offline_customclass4 ),
|
||||
scriptMenuResponse "custom4,0"; ACTION_COMMON( 9 ),
|
||||
exec "set ui_custom_name customclass4; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), FOCUS_CHECK( 9 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 4, CUSTOM_CLASS_TEXT( customclass4, offline_customclass4 ),
|
||||
;,
|
||||
;,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), decoration )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 5, CUSTOM_CLASS_TEXT( customclass5, offline_customclass5 ),
|
||||
scriptMenuResponse "custom5,0"; ACTION_COMMON( 10 ),
|
||||
exec "set ui_custom_name customclass5; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
!IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), FOCUS_CHECK( 10 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 5, CUSTOM_CLASS_TEXT( customclass5, offline_customclass5 ),
|
||||
;,
|
||||
;,
|
||||
IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ), decoration )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 6, "@CLASS_CLASS1",
|
||||
scriptMenuResponse "smg_mp,0"; ACTION_COMMON( 1 ),
|
||||
exec "set ui_class class_smg; set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0";,
|
||||
;,
|
||||
( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) || IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) || !IS_ONLINE_GAME ), FOCUS_CHECK( 1 ) )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 6, dvarString( prestigeclass1 ),
|
||||
scriptMenuResponse "prestige1,0"; ACTION_COMMON( 11 ),
|
||||
exec "set ui_custom_name prestigeclass1; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
( !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_1 ) && ( !IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) ) && IS_ONLINE_GAME ), FOCUS_CHECK( 1 ) )
|
||||
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 7, "@CLASS_CLASS2",
|
||||
scriptMenuResponse "cqb_mp,0"; ACTION_COMMON( 2 ),
|
||||
exec" set ui_class class_cqb; set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0";,
|
||||
;,
|
||||
( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) || IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) || !IS_ONLINE_GAME ), FOCUS_CHECK( 2 ) )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 7, dvarString( prestigeclass2 ),
|
||||
scriptMenuResponse "prestige2,0"; ACTION_COMMON( 12 ),
|
||||
exec "set ui_custom_name prestigeclass2; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
( !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_2 ) && ( !IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) ) && IS_ONLINE_GAME ), FOCUS_CHECK( 2 ) )
|
||||
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 8, "@CLASS_CLASS3",
|
||||
scriptMenuResponse "assault_mp,0"; ACTION_COMMON( 3 ),
|
||||
exec "set ui_class class_assault; set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0";,
|
||||
;,
|
||||
( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) || IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) || !IS_ONLINE_GAME ), FOCUS_CHECK( 3 ) )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 8, dvarString( prestigeclass3 ),
|
||||
scriptMenuResponse "prestige3,0"; ACTION_COMMON( 13 ),
|
||||
exec "set ui_custom_name prestigeclass3; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND;,
|
||||
;,
|
||||
( !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_3 ) && ( !IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) ) && IS_ONLINE_GAME ), FOCUS_CHECK( 3 ) )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 9, "@CLASS_CLASS4",
|
||||
scriptMenuResponse "lmg_mp,0"; ACTION_COMMON( 4 ),
|
||||
exec "set ui_class class_lmg; set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0"; CLEAR_ITEM_NEW( FEATURE_CLOSEASSAULT ),
|
||||
;,
|
||||
( ( !IS_ITEM_LOCKED( FEATURE_CLOSEASSAULT ) && ( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) || ( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) ) ) ) || !IS_ONLINE_GAME ), FOCUS_CHECK( 4 ) )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 9, dvarString( prestigeclass4 ),
|
||||
scriptMenuResponse "prestige4,0";ACTION_COMMON( 14 ),
|
||||
exec "set ui_custom_name prestigeclass4; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND; CLEAR_ITEM_NEW( FEATURE_CLOSEASSAULT ),
|
||||
;,
|
||||
( !IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_4 ) && IS_ONLINE_GAME ), FOCUS_CHECK( 4 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 9, "@CLASS_CLASS4",
|
||||
;,
|
||||
;,
|
||||
( IS_ITEM_LOCKED( FEATURE_CLOSEASSAULT ) && IS_ONLINE_GAME ), decoration FOCUS_CHECK( 4 ) )
|
||||
CHOICE_NEWICON_VIS( 9, "menu_mp_lobby_new", when( ( IS_ITEM_NEW( FEATURE_CLOSEASSAULT ) ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 10, "@CLASS_CLASS5",
|
||||
scriptMenuResponse "sniper_mp,0"; ACTION_COMMON( 5 ),
|
||||
exec" set ui_class class_sniper; set ui_multi_s "HIGH_BOUND"; set ui_multi_dt 0"; CLEAR_ITEM_NEW( FEATURE_SNIPER ),
|
||||
;,
|
||||
( ( !IS_ITEM_LOCKED( FEATURE_SNIPER ) && ( IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) || ( IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) ) ) ) || !IS_ONLINE_GAME ), FOCUS_CHECK( 5 ) )
|
||||
FRAME_CHOICE_BUTTON_FOCUS_VIS_EX( 10, dvarString( prestigeclass5 ),
|
||||
scriptMenuResponse "prestige5,0"; ACTION_COMMON( 15 ),
|
||||
exec "set ui_custom_name prestigeclass5; set ui_multi_s 0; set ui_multi_dt "HIGH_BOUND; CLEAR_ITEM_NEW( FEATURE_SNIPER ),
|
||||
;,
|
||||
( !IS_ITEM_LOCKED( FEATURE_CREATE_A_CLASS ) && !IS_ITEM_LOCKED( FEATURE_PRESTIGE_CLASS_5 ) && IS_ONLINE_GAME ), FOCUS_CHECK( 5 ) )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 10, "@CLASS_CLASS5",
|
||||
;,
|
||||
;,
|
||||
( IS_ITEM_LOCKED( FEATURE_SNIPER ) && IS_ONLINE_GAME ), decoration FOCUS_CHECK( 5 ) )
|
||||
CHOICE_NEWICON_VIS( 10, "menu_mp_lobby_new", when( ( IS_ITEM_NEW( FEATURE_SNIPER ) ) && IS_ONLINE_GAME ) )
|
||||
|
||||
|
||||
#define DATA_TABLE_PRIMARY_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "primarygrenade" )
|
||||
#define DATA_TABLE_PRIMARY GetDefaultClassSlot( dvarstring( ui_class ), "primary" )
|
||||
// no default attachments or camo for now
|
||||
#define DATA_TABLE_PRIMARY_ATTACHMENT 0
|
||||
#define DATA_TABLE_PRIMARY_CAMO 0
|
||||
#define DATA_TABLE_SECONDARY GetDefaultClassSlot( dvarstring( ui_class ), "secondary" )
|
||||
// no default attachments or camo for now
|
||||
#define DATA_TABLE_SECONDARY_ATTACHMENT 0
|
||||
#define DATA_TABLE_SECONDARY_CAMO 0
|
||||
#define DATA_TABLE_SPECIALTY1 GetDefaultClassSlot( dvarstring( ui_class ), "specialty1" )
|
||||
#define DATA_TABLE_SPECIALTY2 GetDefaultClassSlot( dvarstring( ui_class ), "specialty2" )
|
||||
#define DATA_TABLE_SPECIALTY3 GetDefaultClassSlot( dvarstring( ui_class ), "specialty3" )
|
||||
#define DATA_TABLE_EQUIPMENT GetDefaultClassSlot( dvarstring( ui_class ), "equipment" )
|
||||
#define DATA_TABLE_SPECIAL_GRENADE GetDefaultClassSlot( dvarstring( ui_class ), "specialgrenade" )
|
||||
#define DATA_TABLE_BODY GetDefaultClassSlot( dvarstring( ui_class ), "body" )
|
||||
#define DATA_TABLE_DEATHSTREAK GetDefaultClassSlot( dvarstring( ui_class ), "deathstreak" )
|
||||
#define DATA_TABLE_KILLSTREAK_TIER1 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak1" )
|
||||
#define DATA_TABLE_KILLSTREAK_TIER2 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak2" )
|
||||
#define DATA_TABLE_KILLSTREAK_TIER3 GetDefaultClassSlot( dvarstring( ui_class ), "killstreak3" )
|
||||
|
||||
/* ==================================== custom classes ============================================= */
|
||||
|
||||
#define STATS_PRIMARY getCACItemIndex( ( dvarString( ui_custom_name ) ), "primary" )
|
||||
#define STATS_PRIMARY_ATTACHMENT getCACItemIndex( ( dvarString( ui_custom_name ) ), "primaryattachment" )
|
||||
#define STATS_PRIMARY_CAMO getCACItemIndex( ( dvarString( ui_custom_name ) ), "primarycamo" )
|
||||
#define STATS_SECONDARY getCACItemIndex( ( dvarString( ui_custom_name ) ), "secondary" )
|
||||
#define STATS_SECONDARY_ATTACHMENT getCACItemIndex( ( dvarString( ui_custom_name ) ), "secondaryattachment" )
|
||||
#define STATS_SECONDARY_CAMO getCACItemIndex( ( dvarString( ui_custom_name ) ), "secondarycamo" )
|
||||
#define STATS_PRIMARY_GRENADE getCACItemIndex( ( dvarString( ui_custom_name ) ), "primarygrenade" )
|
||||
#define STATS_SPECIALTY1 getCACItemIndex( ( dvarString( ui_custom_name ) ), "specialty1" )
|
||||
#define STATS_SPECIALTY2 getCACItemIndex( ( dvarString( ui_custom_name ) ), "specialty2" )
|
||||
#define STATS_SPECIALTY3 getCACItemIndex( ( dvarString( ui_custom_name ) ), "specialty3" )
|
||||
#define STATS_EQUIPMENT getCACItemIndex( ( dvarString( ui_custom_name ) ), "equipment" )
|
||||
#define STATS_SPECIAL_GRENADE getCACItemIndex( ( dvarString( ui_custom_name ) ), "specialgrenade" )
|
||||
#define STATS_BODY getCACItemIndex( ( dvarString( ui_custom_name ) ), "body" )
|
||||
#define STATS_DEATHSTREAK getCACItemIndex( "cacLoadouts", "deathstreak" )
|
||||
#define STATS_KILLSTREAK_TIER1 getCACItemIndex( "cacLoadouts", "killstreak1" )
|
||||
#define STATS_KILLSTREAK_TIER2 getCACItemIndex( "cacLoadouts", "killstreak2" )
|
||||
#define STATS_KILLSTREAK_TIER3 getCACItemIndex( "cacLoadouts", "killstreak3" )
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
|
||||
/* ================================================================================= */
|
||||
/* ================================ LOADOUT DISPLAY ================================ */
|
||||
/* ================================================================================= */
|
||||
|
||||
|
||||
#define STAT_CAC_PRIMARY_GRENADE int(min( STATS_PRIMARY_GRENADE + dvarInt(ui_multi_s), DATA_TABLE_PRIMARY_GRENADE + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_PRIMARY int(min( STATS_PRIMARY + dvarInt(ui_multi_s), DATA_TABLE_PRIMARY + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_PRIMARY_ATTACHMENT int(min( STATS_PRIMARY_ATTACHMENT + dvarInt(ui_multi_s), DATA_TABLE_PRIMARY_ATTACHMENT + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_PRIMARY_CAMO int(min( STATS_PRIMARY_CAMO + dvarInt(ui_multi_s), DATA_TABLE_PRIMARY_CAMO + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SECONDARY int(min( STATS_SECONDARY + dvarInt(ui_multi_s), DATA_TABLE_SECONDARY + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SECONDARY_ATTACHMENT int(min( STATS_SECONDARY_ATTACHMENT + dvarInt(ui_multi_s), DATA_TABLE_SECONDARY_ATTACHMENT + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SECONDARY_CAMO int(min( STATS_SECONDARY_CAMO + dvarInt(ui_multi_s), DATA_TABLE_SECONDARY_CAMO + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SPECIALTY1 int(min( STATS_SPECIALTY1 + dvarInt(ui_multi_s), DATA_TABLE_SPECIALTY1 + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SPECIALTY2 int(min( STATS_SPECIALTY2 + dvarInt(ui_multi_s), DATA_TABLE_SPECIALTY2 + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SPECIALTY3 int(min( STATS_SPECIALTY3 + dvarInt(ui_multi_s), DATA_TABLE_SPECIALTY3 + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_EQUIPMENT int(min( STATS_EQUIPMENT + dvarInt(ui_multi_s), DATA_TABLE_EQUIPMENT + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_SPECIAL_GRENADE int(min( STATS_SPECIAL_GRENADE + dvarInt(ui_multi_s), DATA_TABLE_SPECIAL_GRENADE + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_BODY int(min( STATS_BODY + dvarInt(ui_multi_s), DATA_TABLE_BODY + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_DEATHSTREAK int(min( STATS_DEATHSTREAK + dvarInt(ui_multi_s), DATA_TABLE_DEATHSTREAK + dvarInt(ui_multi_dt) ))
|
||||
#define STAT_CAC_KILLSTREAK_TIER1 STATS_KILLSTREAK_TIER1
|
||||
#define STAT_CAC_KILLSTREAK_TIER2 STATS_KILLSTREAK_TIER2
|
||||
#define STAT_CAC_KILLSTREAK_TIER3 STATS_KILLSTREAK_TIER3
|
||||
#define FIRST_ATTACHMENT_PRIMARY_WEAPON \
|
||||
Select( dvarInt( ui_multi_s ) == 0, GetItemEquippedAttachment( dvarString( ui_custom_name ), STAT_CAC_PRIMARY, 0 ), -1 )
|
||||
#define SECOND_ATTACHMENT_PRIMARY_WEAPON \
|
||||
Select( dvarInt( ui_multi_s ) == 0, GetItemEquippedAttachment( dvarString( ui_custom_name ), STAT_CAC_PRIMARY, 1 ), -1 )
|
||||
#define FIRST_ATTACHMENT_SECONDARY_WEAPON \
|
||||
Select( dvarInt( ui_multi_s ) == 0, GetItemEquippedAttachment( dvarString( ui_custom_name ), STAT_CAC_SECONDARY, 0 ), -1 )
|
||||
#define SECOND_ATTACHMENT_SECONDARY_WEAPON \
|
||||
Select( dvarInt( ui_multi_s ) == 0, GetItemEquippedAttachment( dvarString( ui_custom_name ), STAT_CAC_SECONDARY, 1 ), -1 )
|
||||
|
||||
// Frame setup
|
||||
#define CAC_HEIGHT NEW_FRAME_DEFAULT_HEIGHT
|
||||
#define CAC_WIDTH ( CAC_HEIGHT * FRAME_ASPECT_RATIO )
|
||||
#define COMMON_ITEM_INFO_X ( -(NEW_FRAME_BUTTON_WIDTH+20) - 30 )
|
||||
#define COMMON_ITEM_INFO_Y ( -CAC_HEIGHT/2 + NEW_FRAME_BG_Y_OFFSET( CAC_HEIGHT ) )
|
||||
#define COMMON_ITEM_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_RIGHT
|
||||
|
||||
#include "ui_mp/cac_item_info.inc"
|
||||
|
||||
// Back button
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( 640, 480, ON_ESC )
|
||||
#else //#ifdef PC
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_X_START -17 50 17 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_BACK", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, 1 )
|
||||
#endif //#ifdef PC
|
||||
}
|
||||
}
|
620
mods/mp_patch/ui_mp/scriptmenus/class.menu
Normal file
620
mods/mp_patch/ui_mp/scriptmenus/class.menu
Normal file
@ -0,0 +1,620 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui_mp/friendslist.inc"
|
||||
|
||||
// Pause menu background... separate menu so that it can draw behind the objective menu
|
||||
menuDef
|
||||
{
|
||||
name "pausedbkgnd"
|
||||
fullScreen 0
|
||||
rect 0 0 640 480
|
||||
focusColor COLOR_FOCUSED
|
||||
blurWorld 4.8
|
||||
visible 1
|
||||
|
||||
#define SINGLE_PLAYER 1
|
||||
#include "ui_mp/ingamebg.inc"
|
||||
}
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 200
|
||||
|
||||
#define BACKGROUND_COLOR_GRAY_RGB 0.62 0.70 0.70
|
||||
|
||||
#ifdef PC
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 30
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -60
|
||||
#define CHOICE_SEP_1 5
|
||||
#else
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 30
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -30
|
||||
#define CHOICE_SEP_1 3
|
||||
#endif
|
||||
|
||||
#ifdef CONSOLE
|
||||
#define CUSTOM_MATCH ( dvarbool( systemlink ) || dvarbool( xblive_privatematch ) )
|
||||
#define NOT_CUSTOM_MATCH ( !dvarbool( systemlink ) && !dvarbool( xblive_privatematch ) )
|
||||
#define RANKEDGAME (dvarBool( onlinegame ) && !dvarBool( xblive_privatematch ))
|
||||
#define ISHOST (dvarBool( sv_running ))
|
||||
#define TEAMGAME ( team( name ) != "TEAM_FREE")
|
||||
#define NOTTEAMGAME ( team( name ) == "TEAM_FREE" )
|
||||
#define ALLOW_VOTE ( !dvarbool( xblive_basictraining ) && !dvarbool( xblive_wagermatch ) && dvarbool( ui_allowvote ) )
|
||||
#define IN_PREGAME ( dvarbool( ui_pregame ) )
|
||||
#else
|
||||
#define CUSTOM_MATCH ( dvarbool( systemlink ) || dvarbool( xblive_privatematch ) )
|
||||
#define NOT_CUSTOM_MATCH ( !dvarbool( systemlink ) && !dvarbool( xblive_privatematch ) )
|
||||
#define RANKEDGAME ( dvarbool( ui_ranked ) )
|
||||
#define ISHOST ( dvarBool( sv_running ) )
|
||||
#define TEAMGAME ( team( name ) != "TEAM_FREE")
|
||||
#define NOTTEAMGAME ( team( name ) == "TEAM_FREE" )
|
||||
#define ALLOW_VOTE ( !dvarbool( xblive_basictraining ) && !dvarbool( xblive_wagermatch ) && dvarbool( ui_allowvote ) )
|
||||
#define IN_PREGAME ( dvarbool( ui_pregame ) )
|
||||
#endif
|
||||
|
||||
// ------------------ preprocessing function definitions ------------------
|
||||
#define PAD_LEFT \
|
||||
execKeyInt DPAD_LEFT \
|
||||
{ \
|
||||
focusFirst; \
|
||||
show selection_left; \
|
||||
hide selection_right; \
|
||||
} \
|
||||
execKeyInt APAD_LEFT \
|
||||
{ \
|
||||
focusFirst; \
|
||||
show selection_left; \
|
||||
hide selection_right; \
|
||||
}
|
||||
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui_mp/choices_setup_teams.menu"
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "class"
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_LEFT
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
#undef BUTTON_BG_X_START
|
||||
#define BUTTON_BG_X_START 30
|
||||
#undef BUTTON_BG_Y_START
|
||||
#define BUTTON_BG_Y_START 42
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#define MAP_BACKGROUND_WIDTH 229
|
||||
#define MAP_BACKGROUND_HEIGHT 228
|
||||
|
||||
#ifdef CONSOLE
|
||||
#define MAP_BG_Y_START -110
|
||||
#else // #ifdef CONSOLE
|
||||
#define MAP_BG_Y_START -120
|
||||
#endif // #else #ifdef CONSOLE
|
||||
|
||||
#define MAP_BG_X_START (-MAP_BACKGROUND_WIDTH - 30)
|
||||
|
||||
|
||||
/* Grey color box which serve as the background for the map image and the contracts menu */
|
||||
#define MAP_BACKGROUND \
|
||||
PREPROC_SHADER_DRAW( MAP_BG_X_START MAP_BG_Y_START MAP_BACKGROUND_WIDTH MAP_BACKGROUND_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER, "white", BG_BACKCOLOR )
|
||||
|
||||
#define CHOICE_TAB_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
#define TAB_1_TEXT (locString( "@MENU_TAB_MAP_CAPS" ))
|
||||
#define TAB_2_TEXT (locString( "@MENU_TAB_CONTRACTS_CAPS" ))
|
||||
|
||||
#define TAB_BG_PAD 5
|
||||
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, CHOICE_TEXTFONT, CHOICE_TAB_TEXTSIZE ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, CHOICE_TEXTFONT, CHOICE_TAB_TEXTSIZE ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_HEIGHT 18
|
||||
|
||||
#define MAP_LIST_TAB_1_X ( MAP_BG_X_START + TAB_BG_PAD )
|
||||
#define MAP_LIST_TAB_2_X ( MAP_LIST_TAB_1_X + TAB_1_WIDTH )
|
||||
|
||||
#define MAP_LIST_TAB_Y ( MAP_BG_Y_START - TAB_HEIGHT )
|
||||
|
||||
#define MAP_HEADERSTEXT \
|
||||
/* highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_1_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_1_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_1_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
1 1 1 1, \
|
||||
when( dvarInt( showMap ) == 1 );, ; ) \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_1_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_1_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_1_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
BACKGROUND_COLOR_GRAY_RGB .25, \
|
||||
when( dvarInt( showMap ) == 0 );, ; ) \
|
||||
/* non highlighted header */ \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_2_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_2_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_2_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
1 1 1 1, \
|
||||
when( dvarInt( showMap ) == 0 && RANKEDGAME );, ; ) \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( MAP_LIST_TAB_2_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_2_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_2_TEXT, CHOICE_TAB_TEXTSIZE, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
BACKGROUND_COLOR_GRAY_RGB .25, \
|
||||
when( dvarInt( showMap ) == 1 && RANKEDGAME );, ; )
|
||||
|
||||
#define MAP_LIST_TAB_1_ACTION \
|
||||
if( RANKEDGAME ) \
|
||||
{ \
|
||||
setDvar showMap 1; \
|
||||
}
|
||||
|
||||
#define MAP_LIST_TAB_2_ACTION \
|
||||
if( RANKEDGAME ) \
|
||||
{ \
|
||||
setDvar showMap 0; \
|
||||
}
|
||||
|
||||
#define MAP_HEADERSBUTTONS \
|
||||
TAB_ACTION_BUTTON_ADV( MAP_LIST_TAB_1_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_1_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
MAP_LIST_TAB_1_ACTION, when( dvarInt( showMap ) == 0 && RANKEDGAME );, ; ) \
|
||||
TAB_ACTION_BUTTON_ADV( MAP_LIST_TAB_2_X, \
|
||||
MAP_LIST_TAB_Y, \
|
||||
TAB_2_WIDTH, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_RIGHT, VERTICAL_ALIGN_CENTER, \
|
||||
MAP_LIST_TAB_2_ACTION, when( dvarInt( showMap ) == 1 && RANKEDGAME );, ; ) \
|
||||
|
||||
/* Tab for Map */
|
||||
#define MAP_TAB_1_BG \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER_FRAMED \
|
||||
frame 5 0.5 FRAME_OPEN_BOTTOM \
|
||||
rect 0 MAP_LIST_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( MAP_LIST_TAB_1_X ) \
|
||||
exp rect W( TAB_1_WIDTH ) \
|
||||
background "menu_mp_lobby_frame_circle" \
|
||||
forecolor BG_BACKCOLOR \
|
||||
visible when( dvarInt(showMap) == 1 ); \
|
||||
decoration \
|
||||
}
|
||||
|
||||
/* Tab for contracts */
|
||||
#define MAP_TAB_2_BG \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER_FRAMED \
|
||||
frame 5 0.5 FRAME_OPEN_BOTTOM \
|
||||
rect 0 MAP_LIST_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( MAP_LIST_TAB_2_X ) \
|
||||
exp rect W( TAB_2_WIDTH ) \
|
||||
background "menu_mp_lobby_frame_circle" \
|
||||
forecolor BG_BACKCOLOR \
|
||||
visible when( dvarInt(showMap) == 0 && RANKEDGAME ); \
|
||||
decoration \
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
name "class"
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_EMPTY
|
||||
#ifdef CONSOLE
|
||||
rect 0 0 640 480
|
||||
blurWorld 7.0
|
||||
#else
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
#endif
|
||||
|
||||
|
||||
#define ON_ESC scriptMenuResponse "back";
|
||||
onOpen
|
||||
{
|
||||
if ( IsSplitscreen() )
|
||||
{
|
||||
close self;
|
||||
open "class_splitscreen";
|
||||
}
|
||||
else
|
||||
{
|
||||
focusFirst;
|
||||
hide selection_right;
|
||||
setDvar showMap 1;
|
||||
}
|
||||
showMenu "pausedbkgnd"
|
||||
}
|
||||
onClose
|
||||
{
|
||||
hideMenu "pausedbkgnd"
|
||||
}
|
||||
onFocus
|
||||
{
|
||||
focusFirst;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
|
||||
#ifndef PC
|
||||
execkeyint BUTTON_START
|
||||
{
|
||||
ON_ESC
|
||||
}
|
||||
#endif
|
||||
|
||||
execkeyint BUTTON_X
|
||||
{
|
||||
if( RANKEDGAME )
|
||||
{
|
||||
if( dvarInt(showMap) == 0 )
|
||||
{
|
||||
setDvar showMap 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
setDvar showMap 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PAD_LEFT
|
||||
MAP_BACKGROUND
|
||||
MAP_TAB_1_BG
|
||||
MAP_TAB_2_BG
|
||||
|
||||
#ifdef CONSOLE
|
||||
#include "ui_mp/ingamebg.inc"
|
||||
#endif
|
||||
|
||||
// -------- GAME TYPE NAME AND DESCRIPTION --------
|
||||
#define MAPNAME tableLookup( "mp/mapstable.csv", 0, dvarString( mapname ), 3 )
|
||||
|
||||
CHOICE_MENU_TITLE_ALIGN_VIS( ( "@" + MAPNAME + "_CAPS" ), HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
|
||||
|
||||
#undef BUTTON_BG_Y_START
|
||||
#define BUTTON_BG_Y_START 70
|
||||
|
||||
CHOICE_MENU_TITLE_ALIGN_VIS( toUpper( gametypename() ), HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, ITEM_ALIGN_MIDDLE_LEFT, 1 )
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( BUTTON_BG_X_START (BUTTON_BG_Y_START+35) 230 60 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP, 0 0,
|
||||
( gametypedescription() ),
|
||||
TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1,
|
||||
1, autowrapped )
|
||||
// Team icon
|
||||
#define ICON_SIZE 92
|
||||
#define ICON_X_START ( MAP_BG_X_START + MAP_BACKGROUND_WIDTH - ICON_SIZE )
|
||||
#define ICON_RECT ICON_X_START 20 ICON_SIZE ICON_SIZE HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP
|
||||
PREPROC_SHADER_DRAW_VIS_EX( ICON_RECT, ( dvarString( "g_TeamIcon_Allies" ) ), 1 1 1 1, when( TEAM_IS_MARINES );, ; )
|
||||
PREPROC_SHADER_DRAW_VIS_EX( ICON_RECT, ( dvarString( "g_TeamIcon_Axis" ) ), 1 1 1 1, when( TEAM_IS_OPFOR );, ; )
|
||||
|
||||
//=========================================================
|
||||
//===================== MENU SELECTION ====================
|
||||
//=========================================================
|
||||
|
||||
#define IS_WAGER_MODE ( dvarInt( "xblive_wagermatch" ) == 1 )
|
||||
#define IS_CUSTOM_MODE ( dvarInt( "custom_class_mode" ) == 1 )
|
||||
#define IS_BAREBONES_MODE ( dvarInt( "barebones_class_mode" ) == 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_barebones", ( IS_BAREBONES_MODE ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_custom", ( IS_CUSTOM_MODE ), ; )
|
||||
|
||||
#ifdef CONSOLE
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_wager", ( IS_WAGER_MODE && MAY_CHOOSE_CLASS && !IS_CUSTOM_MODE ), ; )
|
||||
#endif // CONSOLE
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_marines", ( TEAM_IS_MARINES && MAY_CHOOSE_CLASS && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_opfor", ( TEAM_IS_OPFOR && MAY_CHOOSE_CLASS && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", scriptMenuResponse "changeclass_opfor", ( dvarInt( scr_oldschool ) == 1 && !IS_WAGER_MODE && !IS_CUSTOM_MODE && !IS_BAREBONES_MODE ), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 1, "@MPUI_CHOOSE_CLASS_BUTTON_CAPS", ;, ;, ( dvarInt( scr_oldschool ) == 1 ), ; )
|
||||
|
||||
#ifdef CONSOLE
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", scriptMenuResponse "changeteam", ( MAY_CHOOSE_TEAM ), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", ;, ;, ( MAY_NOT_CHOOSE_TEAM ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MENU_OPTIONS_CAPS", close self; open ingameoptions, 1, ; )
|
||||
|
||||
#define CAN_LEAVE_GAME ( !isVisibilityBitSet( BIT_ROUND_END_KILLCAM ) && !isVisibilityBitSet( BIT_FINAL_KILLCAM ) )
|
||||
|
||||
#ifdef PUBLIC_BETA
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_END_GAME_CAPS", open popup_endgame, ( RANKEDGAME == 0 && ISHOST && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty, ( RANKEDGAME == 0 && (ISHOST == 0) && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( RANKEDGAME == 0 && (ISHOST == 0) && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && ISHOST && CAN_LEAVE_GAME && ( !HostMigrationWaitingForPlayers() ) ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty_ranked, ( RANKEDGAME && ISHOST == 0 && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && ISHOST == 0 && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
#else // #ifdef PUBLIC_BETA
|
||||
//..............................................
|
||||
// Dev only. Remove me prior to shipping
|
||||
//FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_BADSPAWN_CAPS", open popup_badspawn, 1, ; )
|
||||
//..............................................
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_END_GAME_CAPS", open popup_endgame, ( RANKEDGAME == 0 && ISHOST && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty, ( RANKEDGAME == 0 && (ISHOST == 0) && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( RANKEDGAME == 0 && (ISHOST == 0) && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && ISHOST && CAN_LEAVE_GAME && ( !HostMigrationWaitingForPlayers() ) ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegameandparty_ranked, ( RANKEDGAME && ISHOST == 0 && (InPrivateParty() && !PrivatePartyHost() && PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && ISHOST == 0 && (!InPrivateParty() || PrivatePartyHost() || !PrivatePartyHostInLobby()) && CAN_LEAVE_GAME ), ; )
|
||||
#endif // #else #ifdef PUBLIC_BETA
|
||||
|
||||
#endif // #ifdef CONSOLE
|
||||
#ifdef PC
|
||||
#define SQUAD_CAP 12
|
||||
#define INVITE_MEMBER 1
|
||||
#define KICK_MEMBER 2
|
||||
#define SQUAD_BUTTON_START_X -439
|
||||
#define SQUAD_BUTTON_START_Y -65
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MPUI_CHANGE_TEAM_CAPS", scriptMenuResponse "changeteam", (dvarBool( ui_allow_teamchange )), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 2, "@MPUI_CHANGE_TEAM_BUTTON_CAPS", ;, ;, ( !dvarBool( ui_allow_teamchange ) ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 3, "@MPUI_CALL_VOTE_CAPS", open callvote; close self;, ( ALLOW_VOTE ), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 3, "@MPUI_CALL_VOTE_CAPS", ;, ;, ( !ALLOW_VOTE ), ; )
|
||||
|
||||
// FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MPUI_MUTE_PLAYERS_CAPS", open muteplayer_menu; close self;, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 4, "@MENU_PLAYERS_CAPS", close self; open players;, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 5, "@MENU_FRIENDS_CAPS", SETUP_ACTION_INVITE, 1, ; )
|
||||
CHOICE_NEWICON_VIS( 5, "menu_mp_lobby_new", when( hasinvites() || haspendingfriends() ); )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 6, "@MENU_SETTINGS_CAPS", close self; open options_new_pc; execnow "set ui_allow_graphic_change 0";, 1, ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 7, "@MENU_ADD_TO_FAVORITES_CAPS", uiscript createFavoriteIngame; open fav_message_popmenu;, ( ISHOST == 0 ), ; )
|
||||
FRAME_CHOICE_DBUTTON_FOCUS_VIS_EX( 7, "@MENU_ADD_TO_FAVORITES_CAPS", ;, ;, ( ISHOST ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_endgame, ( ( !RANKEDGAME || IN_PREGAME ) && ISHOST && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame, ( ( !RANKEDGAME || IN_PREGAME ) && !ISHOST ), ; )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_endgame_ranked, ( RANKEDGAME && !IN_PREGAME && ISHOST && CAN_LEAVE_GAME ), ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 8, "@MENU_LEAVE_GAME_CAPS", open popup_leavegame_ranked, ( RANKEDGAME && !IN_PREGAME && !ISHOST && CAN_LEAVE_GAME ), ; )
|
||||
|
||||
#endif // #ifdef PC
|
||||
|
||||
//Showing the ingame Xp bar.
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
|
||||
#define SHOW_XP_BAR ( RANKEDGAME || dvarInt( xblive_basictraining ) )
|
||||
#define XP_BAR_WIDTH ( Select( dvarInt( widescreen ), 592, 407 ) )
|
||||
#define XP_TEXT_WIDTH 65
|
||||
#define X_START (-XP_BAR_WIDTH - XP_TEXT_WIDTH - 100)
|
||||
#define XP_BAR_Y_START 115
|
||||
|
||||
#define REQUIRED_XP int(getDStat( "PlayerStatsList", "RANKXP" )-int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 2)))
|
||||
#define REQUIRED_XP_STRING (int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 3 ))-REQUIRED_XP)
|
||||
#define NEXT_LEVEL ( tablelookup( "mp/ranktable.csv", 0, getDStat( "PlayerStatsList", "RANK" ) + 1, 14 ) )
|
||||
#define BAR_FILLED XP_BAR_WIDTH*((getDStat( "PlayerStatsList", "RANKXP" )-int(tablelookup( "mp/ranktable.csv", 0, string(getDStat( "PlayerStatsList", "RANK" )), 2)))/int(tablelookup("mp/ranktable.csv",0,getDStat( "PlayerStatsList", "RANK" ),3)))
|
||||
|
||||
/* BACKGROUND FOR XP BAR */
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
|
||||
XP_BAR_Y_START,
|
||||
XP_BAR_WIDTH,
|
||||
20,
|
||||
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
|
||||
"white", BG_BACKCOLOR,
|
||||
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
|
||||
XP_BAR_Y_START,
|
||||
XP_BAR_WIDTH,
|
||||
20,
|
||||
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
|
||||
"menu_mp_bar_shadow", 1 1 1 0.2,
|
||||
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
|
||||
/* XP BAR */
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
|
||||
XP_BAR_Y_START,
|
||||
(BAR_FILLED),
|
||||
20,
|
||||
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
|
||||
"menu_mp_combatrecord_bar", BAR_COLOR,
|
||||
when( CAN_RANK_UP && SHOW_XP_BAR ),
|
||||
; )
|
||||
/* Tiny arrow at xp bar end */
|
||||
PREPROC_SHADER_DRAW_ADV_VIS_EX( ( -5 + (X_START+XP_TEXT_WIDTH) + BAR_FILLED),
|
||||
(XP_BAR_Y_START+18),
|
||||
10,
|
||||
10,
|
||||
HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN,
|
||||
"ui_arrow_right", BAR_COLOR,
|
||||
when( CAN_RANK_UP && SHOW_XP_BAR );,
|
||||
rotation -90; )
|
||||
/* Label for "NEXT LEVEL" */
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( X_START,
|
||||
XP_BAR_Y_START,
|
||||
XP_BAR_WIDTH,
|
||||
20,
|
||||
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
|
||||
"@MPUI_NEXT_LEVEL_CAPS",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
|
||||
when( SHOW_XP_BAR ), ; )
|
||||
/* value for XP NEEDED to next level */
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_TEXT_WIDTH),
|
||||
XP_BAR_Y_START,
|
||||
XP_BAR_WIDTH,
|
||||
20,
|
||||
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
|
||||
locString( "MPUI_AAR_XP_NEEDED_CAPS", REQUIRED_XP_STRING ),
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
|
||||
when( CAN_RANK_UP && SHOW_XP_BAR ), ; )
|
||||
/* next level */
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+3),
|
||||
(XP_BAR_Y_START+2),
|
||||
15,
|
||||
15,
|
||||
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
|
||||
int( NEXT_LEVEL ),
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
|
||||
when( CAN_RANK_UP && PRESTIGE_NEXT==0 && SHOW_XP_BAR ), ; )
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( (X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+3),
|
||||
(XP_BAR_Y_START+2),
|
||||
15,
|
||||
15,
|
||||
HORIZONTAL_ALIGN_RIGHT, CHOICE_VERTICAL_ALIGN,
|
||||
"1",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, CHOICE_TEXTCOLOR,
|
||||
when( CAN_RANK_UP && PRESTIGE_NEXT && SHOW_XP_BAR ), ; )
|
||||
/* next level rank icon */
|
||||
RANK_ICON_ADV( ( X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+6+getTextWidth( NEXT_LEVEL, CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) ), (XP_BAR_Y_START+2), HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER,
|
||||
tablelookup( "mp/rankIconTable.csv", 0, getDStat( "PlayerStatsList", "RANK" )+1, getDStat( "PlayerStatsList", "PLEVEL" )+1 ),
|
||||
when( CAN_RANK_UP && PRESTIGE_NEXT==0 && SHOW_XP_BAR ) )
|
||||
RANK_ICON_ADV( ( X_START+XP_BAR_WIDTH+XP_TEXT_WIDTH+6+getTextWidth( "1", CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) ), (XP_BAR_Y_START+2), HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_CENTER,
|
||||
tablelookup( "mp/rankIconTable.csv", 0, 0, getDStat( "PlayerStatsList", "PLEVEL" )+2 ),
|
||||
when( CAN_RANK_UP && PRESTIGE_NEXT && SHOW_XP_BAR) )
|
||||
|
||||
//************************************Contracts********************************
|
||||
//*****************************************************************************
|
||||
//Green background
|
||||
#define BACKGROUND_COLOR_COMPLETED_RGB .34 .9 .34
|
||||
//Gray background
|
||||
#define BACKGROUND_COLOR_PROGRESS_RGB BACKGROUND_COLOR_GRAY_RGB
|
||||
//Red background
|
||||
#define BACKGROUND_COLOR_EXPIRED_RGB .9 .16 .24
|
||||
// Yellow Background
|
||||
#define BACKGROUND_COLOR_PROGRESS_STATUS 0.97 0.85 0.03
|
||||
|
||||
#define CONTRACTS_Y_START ( MAP_BG_Y_START + 5 )
|
||||
#define CONTRACTS_X_START ( MAP_BG_X_START + TAB_BG_PAD )
|
||||
#define CONTRACTS_WIDTH ( MAP_BACKGROUND_WIDTH - (TAB_BG_PAD*2) )
|
||||
#define CONTRACTS_HEIGHT ( MAP_BACKGROUND_HEIGHT - TAB_BG_PAD )
|
||||
|
||||
#define CONTRACT_INFO( index, visArg ) \
|
||||
/* BACKGROUND FOR CONTRACT INFO if completed*/ \
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
|
||||
"white", BACKGROUND_COLOR_COMPLETED_RGB .1, \
|
||||
when( visArg && dvarInt(showMap) == 0 && IsContractComplete( GetIndexForActiveContract( index ) ) ), \
|
||||
; ) \
|
||||
/* BACKGROUND FOR CONTRACT INFO if in progress*/ \
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
|
||||
"white", BACKGROUND_COLOR_PROGRESS_RGB .1, \
|
||||
when( visArg && dvarInt(showMap) == 0 && IsContractInProgress( GetIndexForActiveContract( index ) ) ), \
|
||||
; ) \
|
||||
/* BACKGROUND FOR CONTRACT INFO if expired*/ \
|
||||
PREPROC_SHADER_DRAW_VIS_EX( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH (CONTRACTS_HEIGHT/3 - 5 ) HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, \
|
||||
"white", BACKGROUND_COLOR_EXPIRED_RGB .1, \
|
||||
when( visArg && dvarInt(showMap) == 0 && IsContractExpired( GetIndexForActiveContract( index ) ) ), \
|
||||
; ) \
|
||||
/* CONTRACT NAME */ \
|
||||
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, GetContractName( GetIndexForActiveContract( index ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, CHOICE_TEXTCOLOR, when( visArg ); autowrapped ) \
|
||||
/* CONTRACT DESC */ \
|
||||
PREPROC_TEXT_DRAW_VIS( ( CONTRACTS_X_START+2 ) ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 12 ) ( CONTRACTS_WIDTH-2 ) 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, GetContractDesc( GetIndexForActiveContract( index ) ),0.24, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, BACKGROUND_COLOR_PROGRESS_RGB .25, when( visArg ); autowrapped ) \
|
||||
/* CONTRACT STATUS WHEN COMPLETED */ \
|
||||
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, "@MPUI_COMPLETE_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_GREEN_RGB 1, when( IsContractComplete( GetIndexForActiveContract( index ) ) > 0 && visArg ) ) \
|
||||
/* CONTRACT PROGRESS TEXT ( YELLOW WHEN CONTRACT IS IN PROGRESS ) */ \
|
||||
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, locString("MPUI_CONTRACT_PROGRESS_WITHBRACES", GetContractProgress( GetIndexForActiveContract( index ) ), GetContractRequiredCount( GetIndexForActiveContract( index ) ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_ORANGE_RGB 1, when( IsContractInProgress( GetIndexForActiveContract( index ) ) > 0 && GetContractRequiredCount( GetIndexForActiveContract( index ) ) > 1 && visArg ) ) \
|
||||
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, locString("MPUI_CONTRACT_NOT_COMPLETE"), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_ORANGE_RGB 1, when( IsContractInProgress( GetIndexForActiveContract( index ) ) > 0 && GetContractRequiredCount( GetIndexForActiveContract( index ) ) == 1 && visArg ) ) \
|
||||
/* CONTRACT STATUS WHEN EXPIRED */ \
|
||||
PREPROC_TEXT_DRAW_VIS( CONTRACTS_X_START ( CONTRACTS_Y_START+(CONTRACTS_HEIGHT/3)*index + 65 ) CONTRACTS_WIDTH 20 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0, "@MPUI_CONTRACT_EXPIRED_CAPS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_CENTER, NEW_FRAME_RED_RGB 1, when( IsContractExpired( GetIndexForActiveContract( index ) ) > 0 && visArg ) ) \
|
||||
|
||||
CONTRACT_INFO( 0, ( GetIndexForActiveContract(0) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
|
||||
CONTRACT_INFO( 1, ( GetIndexForActiveContract(1) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
|
||||
CONTRACT_INFO( 2, ( GetIndexForActiveContract(2) != -1 && RANKEDGAME && dvarInt(showMap) == 0 ) )
|
||||
|
||||
#define NO_ACTIVE_CONTRACTS \
|
||||
(GetIndexForActiveContract(0) == -1 && GetIndexForActiveContract(1) == -1 && GetIndexForActiveContract(2) == -1)
|
||||
|
||||
PREPROC_TEXT_DRAW_VIS_EX( ( CONTRACTS_X_START+20 ) CONTRACTS_Y_START ( CONTRACTS_WIDTH - 40 ) 40 HORIZONTAL_ALIGN_RIGHT CHOICE_VERTICAL_ALIGN, 0 0,
|
||||
"@MPUI_AAR_NO_NEW_CONTRACTS",
|
||||
TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, CHOICE_TEXTCOLOR,
|
||||
when( NO_ACTIVE_CONTRACTS && RANKEDGAME && dvarInt(showMap) == 0 );,
|
||||
autowrapped )
|
||||
|
||||
// Tactical Map
|
||||
#define SHOULD_SHOW_MAP dvarInt(showMap)
|
||||
#undef RIGHTITEM_ALIGN
|
||||
#define RIGHTITEM_ALIGN HORIZONTAL_ALIGN_RIGHT
|
||||
#define MAP_X ( MAP_BG_X_START + 5 )
|
||||
#define MAP_Y ( 101 )
|
||||
#include "ui_mp/tactical_map.inc"
|
||||
|
||||
|
||||
// ----------------- BEGIN Scroller --------------------------
|
||||
#include "ui/scroller.inc"
|
||||
// ----------------- END Scroller --------------------------
|
||||
|
||||
#define SETUP_ACTION_OPENFRIENDLIST \
|
||||
open menu_friends;
|
||||
// ------------------ buttons ---------------------
|
||||
|
||||
#ifdef PC
|
||||
NEW_FRAME_BACK_BUTTON_ACTION_PC_VIS( ON_ESC , when( !dvarInt( ui_show_friends_list_bg ) ) )
|
||||
#else
|
||||
// Back button
|
||||
PREPROC_TEXT_DRAW_VIS( CHOICE_X_START -17 50 17 CHOICE_HORIZONTAL_ALIGN VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_BACK", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( !dvarInt( ui_show_friends_list_bg ) ) )
|
||||
#endif // PC
|
||||
|
||||
// Contracts / Map button
|
||||
#ifndef PC
|
||||
PREPROC_TEXT_DRAW_VIS( (MAP_BG_X_START-1) -17 50 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_SHOW_CONTRACTS", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( dvarInt( showMap ) == 1 && RANKEDGAME && !dvarInt( ui_show_friends_list_bg ) ) )
|
||||
PREPROC_TEXT_DRAW_VIS( (MAP_BG_X_START-1) -17 50 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, 0 0, "@PLATFORM_SHOW_MAP", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_BOTTOM_LEFT, 1 1 1 1, when( dvarInt( showMap ) == 0 && RANKEDGAME && !dvarInt( ui_show_friends_list_bg ) ) )
|
||||
// Friends list button
|
||||
#ifdef PS3
|
||||
GAMEPAD_BUTTON( -55 -17 70 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, "@PLATFORM_FRIENDLIST", BUTTON_Y { SETUP_ACTION_OPENFRIENDLIST; }, when( !dvarInt( ui_show_friends_list_bg ) && !IS_WAGER_MODE && anySignedInToLiveAndStatsFetched() && canShowContentFromUser( 0 ) ) )
|
||||
#else // #ifdef PS3
|
||||
GAMEPAD_BUTTON( -55 -17 70 17 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_BOTTOM, "@PLATFORM_FRIENDLIST", BUTTON_Y { SETUP_ACTION_OPENFRIENDLIST; }, when( !dvarInt( ui_show_friends_list_bg ) && !IS_WAGER_MODE && anySignedInToLiveAndStatsFetched() ) )
|
||||
#endif // #ifdef PS3
|
||||
#endif
|
||||
|
||||
MAP_HEADERSTEXT
|
||||
MAP_HEADERSBUTTONS
|
||||
|
||||
|
||||
itemDef
|
||||
{
|
||||
name friends_list_bg
|
||||
style WINDOW_STYLE_FILLED
|
||||
rect -400 -200 10000 10000
|
||||
backcolor 0 0 0 0
|
||||
visible when( IsInGame() );
|
||||
decoration
|
||||
|
||||
state
|
||||
{
|
||||
name on
|
||||
backcolor 0 0 0 0.7
|
||||
}
|
||||
}
|
||||
|
||||
#include "ui/safearea.menu"
|
||||
}
|
||||
|
||||
#undef CHOICE_GROUP
|
||||
#define CHOICE_GROUP "popmenu"
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( popup_badspawn, setfocus popup_badspawn_2, ;, 1 )
|
||||
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MPUI_REPORT_BADSPAWN", 1 )
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_YES", scriptMenuResponse "badspawn"; close self, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_NO", close self, 1, name popup_badspawn_2 )
|
||||
}
|
576
mods/mp_patch/ui_mp/serverbrowser.menu
Normal file
576
mods/mp_patch/ui_mp/serverbrowser.menu
Normal file
@ -0,0 +1,576 @@
|
||||
#include "ui/menudef.h"
|
||||
#include "ui_mp/common_macro.inc"
|
||||
#include "ui/framestyle.inc"
|
||||
#include "ui_mp/newframe.inc"
|
||||
#include "ui_mp/serverbrowser.inc";
|
||||
#include "ui_mp/menustyle.inc"
|
||||
#include "ui/choices_setup_common.menu"
|
||||
#include "ui_mp/item_animate.inc"
|
||||
|
||||
#define SERVER_BROWSER_HEIGHT 420
|
||||
#define SERVER_BROWSER_WIDTH TABLE_WIDTH
|
||||
|
||||
#define SERVER_BROWSER_BODY_X_START ( -SERVER_BROWSER_WIDTH / 2 + 15 )
|
||||
#define SERVER_BROWSER_BODY_Y_START ( -SERVER_BROWSER_HEIGHT / 2 + 15 + NEW_FRAME_HEADER_HEIGHT )
|
||||
|
||||
|
||||
#undef CHOICE_HORIZONTAL_ALIGN
|
||||
#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_CENTER
|
||||
|
||||
#undef CHOICE_VERTICAL_ALIGN
|
||||
#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_CENTER
|
||||
|
||||
#define FLYOUT_NONE 0
|
||||
#define FLYOUT_BROWSER 3
|
||||
|
||||
#undef CHOICE_TEXTSTYLE
|
||||
#define CHOICE_TEXTSTYLE ITEM_TEXTSTYLE_NORMAL
|
||||
|
||||
#define TAB_OPEN( menuName ) \
|
||||
execNow closemenuImmediate (dvarstring("ui_serverBrowserMenu")); \
|
||||
execNow openMenuImmediate (menuName); \
|
||||
|
||||
#undef ORIGIN_TITLE
|
||||
#define ORIGIN_TITLE 10 0
|
||||
|
||||
#define CHOICE_TAB_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
#define TAB_1_TEXT ( locString( "@MENU_JOIN_SERVER_RANKED_CAPS" ) )
|
||||
#define TAB_2_TEXT ( locString( "@MENU_JOIN_SERVER_UNRANKED_CAPS" ) )
|
||||
#define TAB_3_TEXT ( locString( "@MENU_JOIN_SERVER_WAGER_CAPS" ) )
|
||||
#define TAB_4_TEXT ( locString( "@MENU_JOIN_SERVER_FRIENDS_CAPS" ) )
|
||||
#define TAB_5_TEXT ( locString( "@MENU_JOIN_SERVER_FAVORITES_CAPS" ) )
|
||||
#define TAB_6_TEXT ( locString( "@MENU_JOIN_SERVER_HISTORY_CAPS" ) )
|
||||
|
||||
#define TAB_BG_PAD 5
|
||||
#define TAB_1_WIDTH ( getTextWidth( TAB_1_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_2_WIDTH ( getTextWidth( TAB_2_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_3_WIDTH ( getTextWidth( TAB_3_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_4_WIDTH ( getTextWidth( TAB_4_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_5_WIDTH ( getTextWidth( TAB_5_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_6_WIDTH ( getTextWidth( TAB_6_TEXT, CHOICE_TEXTFONT, TEXTSIZE_SMALL ) + (TAB_BG_PAD*2) )
|
||||
#define TAB_HEIGHT 15
|
||||
|
||||
#define SERVER_BROWSER_TAB_1_X 9
|
||||
#define SERVER_BROWSER_TAB_2_X ( SERVER_BROWSER_TAB_1_X + TAB_1_WIDTH )
|
||||
#define SERVER_BROWSER_TAB_3_X ( SERVER_BROWSER_TAB_2_X + TAB_2_WIDTH )
|
||||
#define SERVER_BROWSER_TAB_4_X ( SERVER_BROWSER_TAB_3_X + TAB_3_WIDTH )
|
||||
#define SERVER_BROWSER_TAB_5_X ( SERVER_BROWSER_TAB_4_X + TAB_4_WIDTH )
|
||||
#define SERVER_BROWSER_TAB_6_X ( SERVER_BROWSER_TAB_5_X + TAB_5_WIDTH )
|
||||
|
||||
#define SERVER_BROWSER_TAB_Y ( ( -SERVER_BROWSER_HEIGHT / 2 ) + NEW_FRAME_HEADER_HEIGHT - TAB_HEIGHT + 1 )
|
||||
|
||||
|
||||
#define TAB( x, tabWidth, textArg, menuName, selected ) \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( ( -SERVER_BROWSER_WIDTH / 2 + x ), \
|
||||
SERVER_BROWSER_TAB_Y, \
|
||||
tabWidth, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
textArg, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_GRAY_TEXT_COLOR, when( !selected ), TAB_MOUSEOVER_HIGHLIGHT; ) \
|
||||
PREPROC_TEXT_DRAW_ADV_VIS_EX( ( -SERVER_BROWSER_WIDTH / 2 + x ), \
|
||||
SERVER_BROWSER_TAB_Y, \
|
||||
tabWidth, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
textArg, TEXTSIZE_SMALL, 0, 0, ITEM_ALIGN_MIDDLE_CENTER, \
|
||||
NEW_FRAME_ORANGE_RGB 1, when( selected ), ; ) \
|
||||
TAB_ACTION_BUTTON_ADV( ( -SERVER_BROWSER_WIDTH / 2 + x ), \
|
||||
( -SERVER_BROWSER_HEIGHT / 2 + NEW_FRAME_HEADER_HEIGHT - TAB_HEIGHT ), \
|
||||
tabWidth, \
|
||||
TAB_HEIGHT, \
|
||||
HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_CENTER, \
|
||||
TAB_OPEN( menuName ), 1, ; ) \
|
||||
|
||||
|
||||
#define SERVER_BROWSER_TAB_BG( px, tabWidth, selected ) \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER \
|
||||
frame 16 0.2 FRAME_OPEN_BOTTOM \
|
||||
rect 0 SERVER_BROWSER_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( ( -SERVER_BROWSER_WIDTH / 2 + px ) ) \
|
||||
exp rect W( tabWidth ) \
|
||||
background "menu_mp_tab_frame_inner" \
|
||||
forecolor 0.5 0.5 0.5 0.5 \
|
||||
visible when( selected ) \
|
||||
decoration \
|
||||
} \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_SHADER \
|
||||
frame 16 0.2 FRAME_OPEN_BOTTOM \
|
||||
rect 0 SERVER_BROWSER_TAB_Y 0 TAB_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER \
|
||||
exp rect X( ( -SERVER_BROWSER_WIDTH / 2 + px ) ) \
|
||||
exp rect W( tabWidth ) \
|
||||
background "menu_mp_tab_frame_inner" \
|
||||
forecolor 1 1 1 1 \
|
||||
visible when( !selected ) \
|
||||
decoration \
|
||||
}
|
||||
|
||||
#define ON_ESC \
|
||||
if( menuisopen( filter_window ) ) \
|
||||
{ \
|
||||
close filter_window; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
close self; \
|
||||
}
|
||||
|
||||
#define SERVER_BROWSER_MENU_TEMPLATE( menuName, onOpenArg, onCloseArg ) \
|
||||
name menuName \
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN \
|
||||
focuscolor COLOR_FOCUSED \
|
||||
style WINDOW_STYLE_FILLED \
|
||||
priority MENU_PRI_DEFAULT \
|
||||
soundloop MENU_MUSIC \
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED \
|
||||
closeSlideSpeed DEFAULT_SLIDE_OUT_SPEED \
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM \
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM \
|
||||
onFocus { \
|
||||
setDvar ui_flyoutHasFocus FLYOUT_BROWSER; \
|
||||
} \
|
||||
onOpen { \
|
||||
activateBlur; \
|
||||
play uin_navigation_menu_lg_open; \
|
||||
setdvar ui_serverBrowserMenu menuName; \
|
||||
onOpenArg; \
|
||||
uiScript PopulateServers; \
|
||||
} \
|
||||
onClose { \
|
||||
execNow ui_animate menuName Browser "Maximized" DEFAULT_SLIDE_OUT_SPEED; \
|
||||
deactivateBlur; \
|
||||
onCloseArg; \
|
||||
setDvar ui_flyoutHasFocus FLYOUT_NONE; \
|
||||
execNow closemenuImmediate (filter_window); \
|
||||
} \
|
||||
onEsc { \
|
||||
ON_ESC \
|
||||
} \
|
||||
execKeyInt 171 { \
|
||||
uiScript RefreshServers; \
|
||||
} \
|
||||
|
||||
|
||||
#define GLOBAL_SERVER_COUNT \
|
||||
PREPROC_TEXT_DRAW( (SERVER_BROWSER_WIDTH/2-7) (-SERVER_BROWSER_HEIGHT/2+2) 1 1 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, ( locString( "@PLATFORM_PLAYERS_ONLINE", GetPlayersRegisteredOnline() ) ), TEXTSIZE_DEFAULT, 0, 1, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1 ) \
|
||||
PREPROC_TEXT_DRAW( (SERVER_BROWSER_WIDTH/2-7) (-SERVER_BROWSER_HEIGHT/2+20) 1 1 HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER, 0 0, ( locString( "@PLATFORM_ALL_SERVERS", GetDedicatedServersRegisteredOnline() ) ), TEXTSIZE_DEFAULT, 0, 1, ITEM_ALIGN_TOP_RIGHT, 1 1 1 1 )
|
||||
|
||||
// Don't let keys fall through to the main menu.
|
||||
#define MASSIVE_HACK_KEYCATCHER \
|
||||
itemDef \
|
||||
{ \
|
||||
style WINDOW_STYLE_EMPTY \
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN \
|
||||
forecolor 1 1 1 0 \
|
||||
visible 1 \
|
||||
}
|
||||
|
||||
#define SERVER_BROWSER_TAB_COMMON_ITEMS( selectedTabIndex ) \
|
||||
MASSIVE_HACK_KEYCATCHER \
|
||||
NEW_FRAME( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT ) \
|
||||
NEW_FRAME_TITLE( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, "@MENU_SERVER_BROWSER_CAPS", 1 ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_1_X, TAB_1_WIDTH, ( selectedTabIndex == 1 ) ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_2_X, TAB_2_WIDTH, ( selectedTabIndex == 2 ) ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_3_X, TAB_3_WIDTH, ( selectedTabIndex == 3 ) ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_4_X, TAB_4_WIDTH, ( selectedTabIndex == 4 ) ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_5_X, TAB_5_WIDTH, ( selectedTabIndex == 5 ) ) \
|
||||
SERVER_BROWSER_TAB_BG( SERVER_BROWSER_TAB_6_X, TAB_6_WIDTH, ( selectedTabIndex == 6 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_1_X, TAB_1_WIDTH, TAB_1_TEXT, server_browser_ranked, ( selectedTabIndex == 1 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_2_X, TAB_2_WIDTH, TAB_2_TEXT, server_browser_unranked, ( selectedTabIndex == 2 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_3_X, TAB_3_WIDTH, TAB_3_TEXT, server_browser_wager, ( selectedTabIndex == 3 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_4_X, TAB_4_WIDTH, TAB_4_TEXT, server_browser_friends, ( selectedTabIndex == 4 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_5_X, TAB_5_WIDTH, TAB_5_TEXT, server_browser_favorites, ( selectedTabIndex == 5 ) ) \
|
||||
TAB( SERVER_BROWSER_TAB_6_X, TAB_6_WIDTH, TAB_6_TEXT, server_browser_history, ( selectedTabIndex == 6 ) ) \
|
||||
GLOBAL_SERVER_COUNT
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// server_browser_main acts as a gateway to open the correct sub menu based upon dvar settings
|
||||
menuDef
|
||||
{
|
||||
name server_browser_main
|
||||
fullScreen 0
|
||||
style WINDOW_STYLE_EMPTY
|
||||
rect 0 0 640 480 HORIZONTAL_ALIGN_FULLSCREEN VERTICAL_ALIGN_FULLSCREEN
|
||||
|
||||
onFocus
|
||||
{
|
||||
close self;
|
||||
exec openmenu (dvarString( "ui_serverBrowserMenu" ));
|
||||
}
|
||||
}
|
||||
|
||||
#define FILTER_ACTION \
|
||||
if( menuisopen( filter_window ) ) \
|
||||
{ \
|
||||
close filter_window; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
open filter_window; \
|
||||
}
|
||||
|
||||
#define BUTTON_SPACING 20
|
||||
#define FILTER_BUTTON_OFFSET ( getTextWidth( locString( "@PLATFORM_BACK" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
#define SERVER_INFO_BUTTON_OFFSET ( FILTER_BUTTON_OFFSET + getTextWidth( locString( "@MENU_FILTER_SERVERS" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) + 8 + BUTTON_SPACING )
|
||||
#define JOIN_BUTTON_OFFSET ( 0 )
|
||||
#define REFRESH_BUTTON_OFFSET ( -JOIN_BUTTON_OFFSET - getTextWidth( locString( "@MENU_JOIN_SERVER" ), CHOICE_TEXTFONT, TEXTSIZE_DEFAULT ) - 8 - BUTTON_SPACING )
|
||||
|
||||
#define SERVER_BROWSER_BOTTOM_BUTTONS \
|
||||
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, FILTER_BUTTON_OFFSET, "@MENU_FILTER_SERVERS", FILTER_ACTION, 1 ) \
|
||||
NEW_FRAME_BUTTON_PC_LEFT_OFFSET( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, SERVER_INFO_BUTTON_OFFSET, "@MENU_SERVER_INFO", open newframeserverinfo;, 1 ) \
|
||||
NEW_FRAME_BUTTON_PC_RIGHT_OFFSET( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, REFRESH_BUTTON_OFFSET, "@MENU_REFRESH_LIST", uiScript RefreshServers;, 1 ) \
|
||||
NEW_FRAME_BUTTON_PC_RIGHT_OFFSET( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, JOIN_BUTTON_OFFSET, "@MENU_JOIN_SERVER", JOIN_SERVER_ACTION;, 1 ) \
|
||||
NEW_FRAME_BACK_BUTTON_ACTION( SERVER_BROWSER_WIDTH, SERVER_BROWSER_HEIGHT, ON_ESC )
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_ranked, uiscript UpdateNetSource AS_RANKED;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_ranked, server_browser_history, server_browser_unranked )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 1 );
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_unranked, uiscript UpdateNetSource AS_UNRANKED;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_unranked, server_browser_ranked, server_browser_wager )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 2 )
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser listbox with background
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_wager, uiscript UpdateNetSource AS_WAGER;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_wager, server_browser_unranked, server_browser_friends )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 3 )
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser listbox with background
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_friends, uiscript UpdateNetSource AS_FRIENDS;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_friends, server_browser_wager, server_browser_favorites )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 4 )
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser listbox with background
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_favorites, uiscript UpdateNetSource AS_FAVORITES;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_favorites, server_browser_friends, server_browser_history )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 5 )
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser listbox with background
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SERVER_BROWSER_MENU_TEMPLATE( server_browser_history, uiscript UpdateNetSource AS_HISTORY;, ; )
|
||||
PC_TAB_SWITCH_ACTIONS( server_browser_history, server_browser_favorites, server_browser_ranked )
|
||||
SERVER_BROWSER_TAB_COMMON_ITEMS( 6 )
|
||||
|
||||
// buttons
|
||||
SERVER_BROWSER_BOTTOM_BUTTONS
|
||||
|
||||
// browser listbox with background
|
||||
SERVER_BROWSER( browser, FEEDER_SERVERS, 1)
|
||||
}
|
||||
|
||||
#undef MENUDEF_NAME
|
||||
#define MENUDEF_NAME filter_window
|
||||
|
||||
#undef CHOICE_BUTTON_NAME
|
||||
#define CHOICE_BUTTON_NAME "filter_"
|
||||
|
||||
#define FILTER_WIDTH TABLE_WIDTH
|
||||
#define FILTER_HEIGHT FILTER_MENU_HEIGHT
|
||||
#define FILTER_X (TABLE_X - 10)
|
||||
#define FILTER_Y ( TABLE_Y + (TABLE_HEIGHT - FILTER_HEIGHT) - 2 )
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXT_COLOR_HL 1 1 1 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 120
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START 0
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 0
|
||||
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_SMALL
|
||||
|
||||
#undef CHOICE_DVAR_EXTRA_WIDTH
|
||||
#define CHOICE_DVAR_EXTRA_WIDTH 60
|
||||
|
||||
menuDef
|
||||
{
|
||||
name filter_window
|
||||
rect FILTER_X FILTER_Y FILTER_WIDTH FILTER_HEIGHT CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN
|
||||
focuscolor COLOR_FOCUSED
|
||||
style WINDOW_STYLE_FILLED
|
||||
priority MENU_PRI_ONTOP
|
||||
openSlideSpeed DEFAULT_SLIDE_IN_SPEED
|
||||
closeSlideSpeed (DEFAULT_SLIDE_OUT_SPEED*2)
|
||||
openSlideDirection MENU_SLIDE_DIRECTION_BOTTOM_TO_TOP
|
||||
closeSlideDirection MENU_SLIDE_DIRECTION_TOP_TO_BOTTOM
|
||||
visible 1
|
||||
|
||||
onOpen
|
||||
{
|
||||
play uin_navigation_menu_lg_open;
|
||||
execNow ui_animate (dvarString( "ui_serverBrowserMenu" )) Browser "Reduced" DEFAULT_SLIDE_IN_SPEED;
|
||||
}
|
||||
onClose
|
||||
{
|
||||
execNow ui_animate (dvarString( "ui_serverBrowserMenu" )) Browser "Maximized" DEFAULT_SLIDE_OUT_SPEED;
|
||||
}
|
||||
onEsc
|
||||
{
|
||||
close self;
|
||||
}
|
||||
leaveFocus
|
||||
{
|
||||
close self;
|
||||
}
|
||||
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER_FRAMED
|
||||
rect -10 -10 ( FILTER_WIDTH + 20 ) ( FILTER_HEIGHT + 20 ) HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
background "menu_mp_lobby_frame_outer"
|
||||
forecolor 1 1 1 1
|
||||
visible when( 1 );
|
||||
decoration
|
||||
frame 26 0.1 FRAME_SIDE_ALL
|
||||
}
|
||||
itemDef
|
||||
{
|
||||
style WINDOW_STYLE_SHADER_FRAMED
|
||||
rect 0 0 FILTER_WIDTH FILTER_HEIGHT HORIZONTAL_ALIGN_CENTER VERTICAL_ALIGN_CENTER
|
||||
background "menu_mp_lobby_frame_inner"
|
||||
forecolor 1 1 1 1
|
||||
visible when( 1 );
|
||||
decoration
|
||||
frame 26 0.1 FRAME_OPEN_TOP
|
||||
}
|
||||
|
||||
// View empty.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 1, "@MENU_VIEW_EMPTY", ui_browserShowEmpty, { "@MENU_NO" 0 "@MENU_YES" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
// View full.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 2, "@MENU_VIEW_FULL", ui_browserShowFull, { "@MENU_NO" 0 "@MENU_YES" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
// With password.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 3, "@MENU_VIEW_PASSWORD", ui_browserShowPassword, { "@MENU_ALL" -1 "@MENU_NO" 0 "@MENU_YES" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
// mods
|
||||
FRAME_CHOICE_DVARLIST_VIS( 4, "@MENU_MODS", "", ITEM_TYPE_OD_TEXT_BUTTON, ownerdraw UI_JOINMOD, uiScript RefreshFilter;, 1 )
|
||||
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 180
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -76
|
||||
|
||||
// Voice chat.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 5, "@MENU_VOICECHAT", ui_browserVoiceChat, { "@MENU_ALL" -1 "@MENU_NO" 0 "@MENU_YES" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
// Hardcore.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 6, "@MPUI_HARDCORE_PRE", ui_browserHardcore, { "@MENU_ALL" -1 "@MENU_NO" 0 "@MENU_YES" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
// Friendly fire.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 7, "@MENU_VIEW_FRIENDLY_FIRE", ui_browserFriendlyfire, { "@MENU_ALL" -1 "@MENU_OFF" 0 "@MENU_ON" 1 "@MENU_REFLECT" 2 "@MENU_SHARED" 3 }, uiScript RefreshFilter; )
|
||||
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 360
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START -152
|
||||
|
||||
// Map
|
||||
FRAME_CHOICE_DVARENUMLIST_VIS( 9, "@MPUI_CHANGE_MAP_LOWER", ui_browserMap, ui_browserMap, uiScript RefreshFilter;, 1 )
|
||||
|
||||
// Game Mode
|
||||
#define MODE_LIST { "@MENU_ALL"; 0; "@MPUI_TDM_SHORT_CAPS"; "tdm"; "@MPUI_DM_SHORT_CAPS"; "dm"; "@MPUI_SD_SHORT_CAPS"; "sd"; "@MPUI_DOM_SHORT_CAPS"; "dom"; "@MPUI_KOTH_SHORT_CAPS"; "koth"; "@MPUI_DEM_SHORT_CAPS"; "dem"; "@MPUI_CTF_SHORT_CAPS"; "ctf"; "@MPUI_SAB_SHORT_CAPS"; "sab"; }
|
||||
FRAME_CHOICE_DVARSTRINGLIST( 10, "@MENU_GAME_MODE_PRE", ui_browserGameMode, MODE_LIST;, uiScript RefreshFilter;)
|
||||
|
||||
// Hide Dlc.
|
||||
FRAME_CHOICE_DVARFLOATLIST( 11, "@MPUI_DLC_CONTENT", ui_browserHideDlc, { "@MENU_ALL" 0 "@MPUI_PURCHASED" 1 }, uiScript RefreshFilter; )
|
||||
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X 98
|
||||
|
||||
#undef CHOICE_X_START
|
||||
#define CHOICE_X_START 480
|
||||
|
||||
#undef CHOICE_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_TEXT_COLOR_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_NO_HL
|
||||
#undef CHOICE_CAPTION_TEXT_COLOR_HL
|
||||
|
||||
#define CHOICE_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_TEXT_COLOR_HL 0 0 0 1
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_NO_HL CHOICE_TEXTCOLOR
|
||||
#define CHOICE_CAPTION_TEXT_COLOR_HL 0 0 0 1
|
||||
|
||||
// Reset
|
||||
FRAME_CHOICE_BUTTON( 12, "@MENU_RESET", exec "exec default_filter.cfg"; )
|
||||
|
||||
// Apply
|
||||
//FRAME_CHOICE_BUTTON( 14, "@MENU_APPLY", uiScript RefreshFilter; )
|
||||
}
|
||||
}
|
||||
|
||||
#undef CHOICE_TEXTSIZE
|
||||
#define CHOICE_TEXTSIZE TEXTSIZE_DEFAULT
|
||||
|
||||
#include "ui_mp/popupstyle.inc"
|
||||
#include "ui/choices_setup_popmenu.menu"
|
||||
#include "ui_mp/popup_player_info.inc"
|
||||
|
||||
#undef CHOICE_FOCUS_SOUND
|
||||
#define CHOICE_FOCUS_SOUND "uin_navigation_over"
|
||||
|
||||
// Redefinitions for MEDIUM_POPUP_SETUP popups
|
||||
#undef POPUP_WIDTH
|
||||
#define POPUP_WIDTH MEDIUM_POPUP_WIDTH
|
||||
#undef POPUP_HEIGHT
|
||||
#define POPUP_HEIGHT MEDIUM_POPUP_HEIGHT
|
||||
#undef CHOICE_SIZE_X
|
||||
#define CHOICE_SIZE_X CONFIRM_PURCHASE_SIZE_X
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_TOP
|
||||
#undef PLAYER_INFO_ALIGN
|
||||
#define PLAYER_INFO_ALIGN // Purposely set to nothing. The popup setup macro sets the alignment. If items within it set their own aligment, they end up offset incorrectly.
|
||||
#undef PLAYER_INFO_X_START
|
||||
#define PLAYER_INFO_X_START( frameWidth ) ( frameWidth - PLAYER_INFO_WIDTH - PLAYER_INFO_PAD )
|
||||
#undef PLAYER_INFO_Y_START
|
||||
#define PLAYER_INFO_Y_START( frameHeight ) ( PLAYER_INFO_PAD * 2 )
|
||||
#undef BG_BACKCOLOR
|
||||
#define BG_BACKCOLOR POPUP_BACKCOLOR
|
||||
|
||||
#define PURCHASE_CONFIRMATION_RIGHT_X ( MEDIUM_POPUP_WIDTH / 2 )
|
||||
#define PURCHASE_INFO_WIDTH ( ( MEDIUM_POPUP_WIDTH / 2 ) - POPUP_SIDE_PAD )
|
||||
|
||||
#define PURCHASE_CONFIRMATION_ITEM_INFO( itemName, itemCost ) \
|
||||
CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, "@MPUI_BALANCE_AFTER_PURCHASE", locString( "@MENU_POINTS", GetStatByName( "CODPOINTS" ) - itemCost ), 1 )
|
||||
|
||||
#define CONFIRMATION_ITEM_INFO_VIS( itemName, itemCost, balanceHeader, balanceAfter, visArg ) \
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 1 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, locString( itemName, itemCost ), TEXTSIZE_LARGE, 0, 0, ITEM_ALIGN_MIDDLE_LEFT, NEW_FRAME_GREEN_RGB 1, visArg, ; ) \ /* Name */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 7 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, "@MPUI_YOUR_BANK", TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, MEDIUM_POPUP_GRAY, visArg, ; ) \ /* Currency Available Header */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (MEDIUM_POPUP_WIDTH-75) CHOICE_Y( 7 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, locString( "@MENU_POINTS", GetStatByName( "CODPOINTS" ) ), TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, visArg, ; ) \ /* Currency Available */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (PURCHASE_CONFIRMATION_RIGHT_X) CHOICE_Y( 8 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, balanceHeader, TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, MEDIUM_POPUP_GRAY, visArg, ; ) \ /* Balance After Purchase Header */
|
||||
PREPROC_TEXT_DRAW_VIS_EX( (MEDIUM_POPUP_WIDTH-75) CHOICE_Y( 8 ) PURCHASE_INFO_WIDTH CHOICE_SIZE_Y, 0 0, balanceAfter, TEXTSIZE_DEFAULT, 0, 0, ITEM_ALIGN_TOP_LEFT, 1 1 1 1, visArg, ; ) /* Balance After Purchase */
|
||||
|
||||
#define WAGER_ONFOCUS \
|
||||
;
|
||||
|
||||
#define WAGER_ONESC \
|
||||
setDvar ui_joiningwagerfrominvite "0"; \
|
||||
close self;
|
||||
|
||||
#define WAGER_ACTION \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
uiScript JoinServer; \
|
||||
WAGER_ONESC
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "WagerConfirmation", setfocus "WagerConfirmation_2";, ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@PLATFORM_CONFIRM_WAGER_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( "@PLATFORM_WAGER_BET", dvarInt("ui_wagerbet") )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_JOIN_GAME_CAPS", WAGER_ACTION, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_CANCEL_CAPS", WAGER_ONESC, 1, name WagerConfirmation_2 )
|
||||
}
|
||||
|
||||
#define WAGER_ACTION2 \
|
||||
play CHOICE_FOCUS_SOUND; \
|
||||
execNow quickmatchconnect; \
|
||||
WAGER_ONESC
|
||||
menuDef
|
||||
{
|
||||
MEDIUM_POPUP_SETUP_VIS( "QuickWagerConfirmation", setfocus "QuickWagerConfirmation_2";, ;, POPUP_GLOW_GREEN, 1, 1 )
|
||||
MEDIUM_POPUP_TITLE_VIS( "@PLATFORM_CONFIRM_WAGER_CAPS", 1 )
|
||||
PLAYER_INFO_VIS( MEDIUM_POPUP_WIDTH, MEDIUM_POPUP_HEIGHT, 1 )
|
||||
PURCHASE_CONFIRMATION_ITEM_INFO( "@PLATFORM_WAGER_BET", dvarInt("ui_wagerbet") )
|
||||
|
||||
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_JOIN_GAME_CAPS", WAGER_ACTION2, 1, ; )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 2, "@MENU_CANCEL_CAPS", close self, 1, name QuickWagerConfirmation_2 )
|
||||
}
|
||||
|
||||
#undef CHOICE_Y_START
|
||||
#define CHOICE_Y_START POPUP_Y_START_CENTER
|
||||
|
||||
#undef POPUP_BUTTON_COUNT
|
||||
#define POPUP_BUTTON_COUNT 1
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( WagerDeadBeat, WAGER_ONFOCUS, WAGER_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@PLATFORM_WAGER_DEADBEAT_TITLE", 1 )
|
||||
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( locString( "@PLATFORM_WAGER_DEADBEAT_DESC", dvarInt( "ui_wagerbet" ) ), 1 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", WAGER_ONESC, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( WagerPlaylistIsOld, WAGER_ONFOCUS, WAGER_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ERROR_CAPS", 1 )
|
||||
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( locString( "@PATCH_PLAYLISTISOLD" ), 1 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", WAGER_ONESC, 1, ; )
|
||||
}
|
||||
|
||||
menuDef
|
||||
{
|
||||
SYSTEM_POPUP_SETUP_VIS( WagerPlaylistIsNew, WAGER_ONFOCUS, WAGER_ONESC, 1 )
|
||||
SYSTEM_POPUP_TITLE_VIS( "@MENU_ERROR_CAPS", 1 )
|
||||
|
||||
SYSTEM_POPUP_SUBTITLE_VIS( locString( "@PATCH_PLAYLISTISNEW" ), 1 )
|
||||
FRAME_CHOICE_BUTTON_VIS_EX( 1, "@MENU_OK", WAGER_ONESC, 1, ; )
|
||||
}
|
||||
|
1
z_dev.bat
Normal file
1
z_dev.bat
Normal file
@ -0,0 +1 @@
|
||||
start BlackOpsMP.exe +set r_fullscreen 0 +set drawlagometer 1 +set developer 1 +set developer_script 1 +set logfile 2 +set cg_drawfps 3 +set cg_drawsnapshot 1 +set scr_game_spectatetype 2 +set r_mode 1024x768 +set sv_cheats 1 +set fs_game "mods/mp_dev" +devmap mp_nuked
|
1
z_devserver.bat
Normal file
1
z_devserver.bat
Normal file
@ -0,0 +1 @@
|
||||
start BlackOpsMP.exe +set r_fullscreen 0 +set drawlagometer 1 +set developer 1 +set developer_script 1 +set logfile 2 +set cg_drawfps 3 +set cg_drawsnapshot 1 +set scr_game_spectatetype 2 +set r_mode 1024x768 +set sv_cheats 1 +connect 127.0.0.1
|
1
z_serverdev.bat
Normal file
1
z_serverdev.bat
Normal file
@ -0,0 +1 @@
|
||||
start BlackOpsMP.exe +set dedicated 1 +set developer 1 +set developer_script 1 +set logfile 2 +set scr_game_spectatetype 2 +set sv_cheats 1 +set sv_maxclients 32 +set sv_licensenum 0 +set net_port 28960 +set sv_ranked 0 +set scr_tdm_scorelimit 0 +set scr_bots_managed_spawn 1 +set scr_bots_managed_all 7 +devmap mp_nuked
|
Loading…
x
Reference in New Issue
Block a user