diff --git a/iw4x/iw4x_00/localizedstrings/iw4x_english.str b/iw4x/iw4x_00/localizedstrings/iw4x_english.str index 2d08813..5381917 100644 --- a/iw4x/iw4x_00/localizedstrings/iw4x_english.str +++ b/iw4x/iw4x_00/localizedstrings/iw4x_english.str @@ -1051,4 +1051,97 @@ LANG_ENGLISH "^2&&1 ^7Bigger icon" REFERENCE GAME_NOTONROTATION LANG_ENGLISH "This map or gamemode is not part of the server rotation" -ENDMARKER \ No newline at end of file +REFERENCE MENU_LOADING_MAPS +LANG_ENGLISH "Loading map selection..." + +REFERENCE MPUI_SEATOWN +LANG_ENGLISH "Seatown" + +REFERENCE MPUI_RESISTANCE +LANG_ENGLISH "Resistance" + +REFERENCE MPUI_ARKADEN +LANG_ENGLISH "Arkaden" + +REFERENCE MPUI_HARDHAT +LANG_ENGLISH "Hardhat" + +REFERENCE MPUI_MISSION +LANG_ENGLISH "Mission" + +REFERENCE MPUI_VILLAGE +LANG_ENGLISH "Village" + +REFERENCE MPUI_DOME +LANG_ENGLISH "Dome" + +REFERENCE MPUI_LOCKDOWN +LANG_ENGLISH "Lockdown" + +REFERENCE MPUI_UNDERGROUND +LANG_ENGLISH "Underground" + +REFERENCE MPUI_DESC_MAP_UNDERGROUND +LANG_ENGLISH "Small subway station. Fast paced action both inside and out." + +REFERENCE MPUI_DESC_MAP_MISSION +LANG_ENGLISH "African colonial settlement. Fight to control the center." + +REFERENCE MPUI_DESC_MAP_VILLAGE +LANG_ENGLISH "Large African village. Great for all game modes." + +REFERENCE MPUI_DESC_MAP_DOME +LANG_ENGLISH "Small outpost in the desert. Fast and frantic action." + +REFERENCE MPUI_DESC_MAP_HARDHAT +LANG_ENGLISH "A small construction site. Fast paced, close quarter action." + +REFERENCE MPUI_DESC_MAP_ARKADEN +LANG_ENGLISH "Medium sized German mall. Intense Search & Destroy games." + +REFERENCE MPUI_DESC_MAP_RESISTANCE +LANG_ENGLISH "Parisian district. Great for Domination and Kill Confirmed." + +REFERENCE MPUI_DESC_MAP_SEATOWN +LANG_ENGLISH "A coastal town. Narrow streets bring hectic, close encounters." + +REFERENCE MPUI_DESC_MAP_LOCKDOWN +LANG_ENGLISH "European city center. Great for Team Defender." + +REFERENCE PATCH_DLC1 +LANG_ENGLISH "Stimulus maps" + +REFERENCE PATCH_DESC_DLC1 +LANG_ENGLISH "The Modern Warfare 2 Stimulus Package delivers additional action-packed multiplayer maps, including brand-new battlegrounds and legendary fan-favorites from Call of Duty 4: Modern Warfare." + +REFERENCE PATCH_DLC2 +LANG_ENGLISH "Resurgence maps" + +REFERENCE PATCH_DESC_DLC2 +LANG_ENGLISH "The best-selling first-person action game of all time gets even bigger with more epic new multiplayer content! The Modern Warfare 2 Resurgence Pack delivers five incredible new multiplayer maps. Take the action to exciting new locations, then battle across legendary landscapes from Call of Duty 4: Modern Warfare." + +REFERENCE PATCH_IW4X_DLC +LANG_ENGLISH "IW4x Classics" + +REFERENCE PATCH_DESC_IW4X_DLC +LANG_ENGLISH "Original IW4x DLC containing several maps from Call Of Duty: Online" + +REFERENCE PATCH_COD4_DLC +LANG_ENGLISH "Call Of Duty 4 Pack" + +REFERENCE PATCH_DESC_COD4_DLC +LANG_ENGLISH "Call Of Duty 4 maps ported to IW4x by the team" + +REFERENCE PATCH_MW3_DLC +LANG_ENGLISH "Modern Warfare 3 Pack" + +REFERENCE PATCH_DESC_MW3_DLC +LANG_ENGLISH "Modern Warfare 3 maps ported to IW4x by the team" + +REFERENCE CUSTOM_MAPS_DLC +LANG_ENGLISH "Custom maps" + +REFERENCE DESC_CUSTOM_MAPS_DLC +LANG_ENGLISH "Downloaded maps that are placed in the /usermaps subfolder" + +ENDMARKER diff --git a/iw4x/iw4x_00/mp/basemaps.arena b/iw4x/iw4x_00/mp/basemaps.arena index 8bea286..c104015 100644 --- a/iw4x/iw4x_00/mp/basemaps.arena +++ b/iw4x/iw4x_00/mp/basemaps.arena @@ -336,59 +336,7 @@ useteamzones "true" environment "urban" } -/* -{ - map "gulag" - longname "MPUI_GULAG" - gametype "dm dom sd sab war koth oneflag arena dd vip ctf gtnw oitc gg ss conf cranked infected tdef" - description "MPUI_DESC_MAP_GULAG" - mapimage "preview_mp_gulag" - mapoverlay "compass_overlay_map_blank" - allieschar "seals_udt" - axischar "opforce_arctic" - useteamzones "true" - environment "urban" -} -{ - map "invasion" - longname "BurgerTown" - gametype "dm dom sd sab war koth oneflag arena dd vip ctf gtnw oitc gg ss conf cranked infected tdef" - description "" - mapimage "preview_invasion" - mapoverlay "compass_overlay_map_blank" - allieschar "us_army" - axischar "opforce_composite" - useteamzones "true" - environment "urban" -} - -{ - map "so_ghillies" - longname "Pripyat" - gametype "dm dom sd sab war koth oneflag arena dd vip ctf gtnw oitc gg ss conf cranked infected tdef" - description "" - mapimage "preview_so_ghillies" - mapoverlay "compass_overlay_map_blank" - allieschar "socom_141_forest" - axischar "opforce_airborne" - useteamzones "true" - environment "forest" -} - -{ - map "contingency" - longname "Contingency" - gametype "dm dom sd sab war koth oneflag arena dd vip ctf gtnw oitc gg ss conf cranked infected tdef" - description "" - mapimage "preview_mp_contingency" - mapoverlay "compass_overlay_map_blank" - allieschar "seals_udt" - axischar "opforce_arctic" - useteamzones "true" - environment "urban" -} -*/ { map "iw4_credits" longname "MPUI_IW4_TEST_MAP" @@ -731,3 +679,111 @@ axischar "opforce_composite" environment "desert" } + +{ + map "mp_alpha" + longname "MPUI_LOCKDOWN" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_LOCKDOWN" + mapimage "preview_mp_alpha" + mapoverlay "compass_overlay_map_blank " + allieschar "us_army" + axischar "socom_141_forest" + environment "urban" +} + +{ + map "mp_underground" + longname "MPUI_UNDERGROUND" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_UNDERGROUND" + mapimage "preview_mp_underground" + mapoverlay "compass_overlay_map_blank " + allieschar "us_army" + axischar "opforce_airborne" + environment "urban" +} + +{ + map "mp_bravo" + longname "MPUI_MISSION" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_MISSION" + mapimage "preview_mp_bravo" + mapoverlay "compass_overlay_map_blank " + allieschar "socom_141_forest" + axischar "militia" + environment "forest" +} + +{ + map "mp_village" + longname "MPUI_VILLAGE" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_VILLAGE" + mapimage "preview_mp_village" + mapoverlay "compass_overlay_map_blank " + allieschar "socom_141_forest" + axischar "militia" + environment "forest" +} + +{ + map "mp_seatown" + longname "MPUI_SEATOWN" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_SEATOWN" + mapimage "preview_mp_seatown" + mapoverlay "compass_overlay_map_blank " + allieschar "socom_141_desert" + axischar "militia" + environment "desert" +} + +{ + map "mp_plaza2" + longname "MPUI_PLAZA2" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_PLAZA2" + mapimage "preview_mp_plaza2" + mapoverlay "compass_overlay_map_blank " + allieschar "seals_udt" + axischar "opforce_airborne" + environment "urban" +} + +{ + map "mp_paris" + longname "MPUI_RESISTANCE" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_RESISTANCE" + mapimage "preview_mp_paris" + mapoverlay "compass_overlay_map_blank " + allieschar "socom_141_forest" + axischar "opforce_airborne" + environment "urban" +} + +{ + map "mp_hardhat" + longname "MPUI_HARDHAT" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_HARDHAT" + mapimage "preview_mp_hardhat" + mapoverlay "compass_overlay_map_blank " + allieschar "us_army" + axischar "opforce_airborne" + environment "forest" +} + +{ + map "mp_dome" + longname "MPUI_DOME" + gametype "dm war sab sab2 dom sd sd2 hc thc ctf koth dd oneflag gtnw" + description "MPUI_DESC_MAP_DOME" + mapimage "preview_mp_dome" + mapoverlay "compass_overlay_map_blank " + allieschar "socom_141_desert" + axischar "opforce_composite" + environment "desert" +} diff --git a/iw4x/iw4x_00/ui_mp/createserver.menu b/iw4x/iw4x_00/ui_mp/createserver.menu index b15d6d1..9171b34 100644 --- a/iw4x/iw4x_00/ui_mp/createserver.menu +++ b/iw4x/iw4x_00/ui_mp/createserver.menu @@ -302,8 +302,9 @@ menuDef MENU_CHOICE_BUTTON(0, button_0, "@MENU_START_GAME_CAPS", ACTION_START, "@NULL_EMPTY") MENU_CHOICE_HORIZONTAL_LINE(1) - - MENU_CHOICE_BUTTON(1, button_1, "@MENU_CHANGE_MAP_CAPS", open "settings_map", "@NULL_EMPTY") + + MENU_CHOICE_BUTTON_VIS(1, button_1, "@MENU_LOADING_MAPS", "", "@NULL_EMPTY", when(dvarint("g_loadingInitialZones") != 0)) + MENU_CHOICE_BUTTON_VIS(1, button_1, "@MENU_CHANGE_MAP_CAPS", open "settings_map", "@NULL_EMPTY", when(dvarint("g_loadingInitialZones") == 0)) MENU_CHOICE_BUTTON(2, button_2, "@MENU_CHANGE_GAME_MODE_CAPS", open "settings_gametype", "@NULL_EMPTY") MENU_CHOICE_BUTTON_VIS(3, button_3, "@MENU_CHANGE_GAME_RULES_CAPS", ACTION_RULES, "@NULL_EMPTY", when(dvarString(ui_gametype) != "arena" && dvarString(ui_gametype) != "oneflag")) MENU_CHOICE_DBUTTON_VIS(3, button_3, "@MENU_CHANGE_GAME_RULES_CAPS", "@NULL_EMPTY", when(dvarString(ui_gametype) == "arena" || dvarString(ui_gametype) == "oneflag")) diff --git a/iw4x/iw4x_00/ui_mp/main.inc b/iw4x/iw4x_00/ui_mp/main.inc index 5ac0550..c2f2fd3 100644 --- a/iw4x/iw4x_00/ui_mp/main.inc +++ b/iw4x/iw4x_00/ui_mp/main.inc @@ -472,3 +472,312 @@ dvar "party_statusString" \ visible when (inLobby()) \ } + +#ifndef CHOICE_SIZE_X +#define CHOICE_SIZE_X 280 +#endif + +#ifndef CHOICE_SIZE_Y +#define CHOICE_SIZE_Y 20 +#endif + +#ifndef CHOICE_GROUP +#define CHOICE_GROUP "" +#endif + +#ifndef CHOICE_TEXTSIZE +#define CHOICE_TEXTSIZE TEXTSIZE_SMALL +#endif + +#ifndef CHOICE_TEXTFONT +#define CHOICE_TEXTFONT 3 +#endif + +#ifndef CHOICE_TEXTCOLOR +#define CHOICE_TEXTCOLOR 1 1 1 1 +#endif + +#ifndef CHOICE_TEXTSTYLE +#define CHOICE_TEXTSTYLE 0 +#endif + +#ifndef CHOICE_STYLE +#define CHOICE_STYLE 1 +#endif + +#ifndef CHOICE_TEXTALIGN +#define CHOICE_TEXTALIGN ITEM_ALIGN_TOP_RIGHT +#endif + +#ifndef CHOICE_TEXT_OFFSET_X +#define CHOICE_TEXT_OFFSET_X -4 +#endif + +#ifndef CHOICE_TEXT_OFFSET_Y +#define CHOICE_TEXT_OFFSET_Y 0 +#endif + +#ifndef CHOICE_TEXTCOLOR_DISABLED +#define CHOICE_TEXTCOLOR_DISABLED 1 1 1 0.5 +#endif + +#ifndef CHOICE_BACKCOLOR +#define CHOICE_BACKCOLOR 0 0 0 1 +#endif + +#ifndef CHOICE_TEXTCOLOR_CAPT +#define CHOICE_TEXTCOLOR_CAPT CHOICE_TEXTCOLOR +#endif + +#ifndef CHOICE_X_START +#define CHOICE_X_START -64 +#endif + +#ifndef CHOICE_X_SPACING +#define CHOICE_X_SPACING 250 +#endif + +#ifndef CHOICE_Y_START +#define CHOICE_Y_START 82 +#endif + +#ifndef CHOICE_Y_SPACING +#define CHOICE_Y_SPACING 20 +#endif + +#ifndef CHOICE_Y_COUNT +#define CHOICE_Y_COUNT 20 +#endif + +#ifndef CHOICE_HORIZONTAL_ALIGN +#define CHOICE_HORIZONTAL_ALIGN HORIZONTAL_ALIGN_LEFT +#endif + +#ifndef CHOICE_VERTICAL_ALIGN +#define CHOICE_VERTICAL_ALIGN VERTICAL_ALIGN_TOP +#endif + +#ifndef CHOICE_FOCUS_SOUND +#define CHOICE_FOCUS_SOUND "mouse_over" +#endif + +#ifndef CHOICE_SEP_OFFSET_X +#define CHOICE_SEP_OFFSET_X 64 +#endif + +#ifndef CHOICE_SEP_OFFSET_Y +#define CHOICE_SEP_OFFSET_Y 0 +#endif + +#ifndef CHOICE_SEP_WIDTH +#define CHOICE_SEP_WIDTH 216 +#endif + +#ifndef CHOICE_SEP_SPACING +#define CHOICE_SEP_SPACING 0 +#endif + +#ifndef CHOICE_SEP_BACKGROUND +#define CHOICE_SEP_BACKGROUND "line_horizontal" +#endif + +#ifndef HIGHTLIGHT_BACKCOLOR +#define HIGHTLIGHT_BACKCOLOR CHOICE_BACKCOLOR +#endif + +#ifndef CHOICE_SEP_COLOR +#define CHOICE_SEP_COLOR 1 1 1 0.65 +#endif + +#ifndef NEW_X_OFFSET +#define NEW_X_OFFSET 0 +#endif + +#ifndef NEW_Y_OFFSET +#define NEW_Y_OFFSET 0 +#endif + +#ifndef NEWSTICKER_SPEED +#define NEWSTICKER_SPEED 20 +#endif + +#ifndef CHOICE_HIGHLIGHT +#define CHOICE_HIGHLIGHT "menu_button_selection_bar" +#endif + +#ifndef CHOICE_DVAR_TEXTALIGN +#define CHOICE_DVAR_TEXTALIGN 8 +#endif + +#ifndef CHOICE_DVAR_OFFSET_X +#define CHOICE_DVAR_OFFSET_X 225 +#endif + +#ifndef CHOICE_DVAR_OFFSET_Y +#define CHOICE_DVAR_OFFSET_Y 0 +#endif + +#ifndef CHOICE_GETFOCUSEDITEMY +#define CHOICE_GETFOCUSEDITEMY setLocalVarFloat "ui_popupYPos" ( getfocuseditemy( ) ); +#endif + +#ifndef CHOICE_UI_BUTTON +#define CHOICE_UI_BUTTON "ui_menuAButton" +#endif + +#if !defined( CHOICE_SEP_1 ) || !defined( CHOICE_SEP_SPACING ) +#define CHOICE_SEP_TOTAL_SPACING( itemIndex ) 0 + +#elif !defined( CHOICE_SEP_2 ) +#define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ( ( itemIndex <= CHOICE_SEP_1 ) ? 0 : CHOICE_SEP_SPACING ) + +#elif !defined( CHOICE_SEP_3 ) +#define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ( ( itemIndex <= CHOICE_SEP_1 ) ? 0 : ( ( itemIndex <= CHOICE_SEP_2 ) ? CHOICE_SEP_SPACING : CHOICE_SEP_SPACING * 2 ) ) + +#else +#define CHOICE_SEP_TOTAL_SPACING( itemIndex ) ( ( itemIndex <= CHOICE_SEP_1 ) ? 0 : ( ( itemIndex <= CHOICE_SEP_2 ) ? CHOICE_SEP_SPACING : ( ( itemIndex <= CHOICE_SEP_3 ) ? CHOICE_SEP_SPACING * 2 : CHOICE_SEP_SPACING * 3 ) ) ) +#endif + +#define CHOICE_ROW( itemIndex ) ( ( itemIndex - 0 ) % CHOICE_Y_COUNT ) +#define CHOICE_COL( itemIndex ) ( ( itemIndex - 0 - ( ( itemIndex - 0 ) % CHOICE_Y_COUNT ) ) / CHOICE_Y_COUNT ) + +#define CHOICE_X( itemIndex ) ( CHOICE_X_START + CHOICE_X_SPACING * CHOICE_COL( itemIndex ) ) + +#define CHOICE_SHADER( itemIndex, nameArg ) \ + itemDef \ + { \ + forecolor 0 0 0 1 \ + style 3 \ + rect CHOICE_ORIGIN( itemIndex ) 336 20 CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN \ + background CHOICE_HIGHLIGHT \ + visible when ( getfocuseditemname() == nameArg ) \ + decoration \ + } + + +#define CHOICE_SCRIPTS_ALL( itemIndex, nameArg, actionArg, onFocusArg, leaveFocusArg ) \ + onFocus \ + { \ + onFocusArg \ + play CHOICE_FOCUS_SOUND; \ + setLocalVarInt "ui_menuAButton" ( itemIndex ); \ + setLocalVarString "ui_choicegroup" ( CHOICE_GROUP ); \ + } \ + leaveFocus \ + { \ + leaveFocusArg \ + setItemColor nameArg backcolor 0 0 0 0; \ + setLocalVarInt "ui_menuAButton" ( 0 ); \ + } \ + action \ + { \ + play "mouse_click"; \ + actionArg \ + } + +#define CHOICE_BUTTON( itemIndex, nameArg, textArg, actionArg ) \ + CHOICE_BUTTON_VIS( itemIndex, nameArg, textArg, actionArg, 1 ) + +#define CHOICE_BUTTON_NOHI( itemIndex, nameArg, textArg, actionArg ) \ + CHOICE_BUTTON_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, 1 ) + +#define CHOICE_BUTTON_VIS( itemIndex, nameArg, textArg, actionArg, visArg ) \ + CHOICE_BUTTON_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, visArg ) + +#define CHOICE_BUTTON_VIS_ADV( itemIndex, nameArg, textArg, actionArg, visArg, vis ) \ + CHOICE_BUTTON_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, visArg ) + +#define CHOICE_BUTTON_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, visArg ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, ;, ;, visArg ) + +#define CHOICE_BUTTON_FOCUS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg ) \ + CHOICE_BUTTON_FOCUS_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, 1 ) + +#define CHOICE_BUTTON_FOCUS_NOHI( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, 1 ) + +#define CHOICE_BUTTON_FOCUS_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) + +#define CHOICE_BUTTON_FOCUS_VIS_ADV( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, vis ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) + +#define CHOICE_BUTTON_FOCUS_NOHI_VIS( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, ; ) + +#define CHOICE_BUTTON_EX( itemIndex, nameArg, textArg, actionArg, extraArgs ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, ;, ;, 1, extraArgs ) + +#define CHOICE_BUTTON_EX_VIS( itemIndex, nameArg, textArg, actionArg, visArg, extraArgs ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, ;, ;, visArg, extraArgs ) + +#define CHOICE_BUTTON_FOCUS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, extraArgs ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, 1, extraArgs ) + +#define CHOICE_BUTTON_FOCUS_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) + +#define CHOICE_BUTTON_FOCUS_VIS_ADV_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs, vis ) \ + CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) + +#define CHOICE_BUTTON_FOCUS_NOHI_VIS_EX( itemIndex, nameArg, textArg, actionArg, onFocusArg, leaveFocusArg, visArg, extraArgs ) \ + CHOICE_SHADER( itemIndex, nameArg ) \ + itemDef \ + { \ + name nameArg \ + rect CHOICE_RECT( itemIndex ) \ + forecolor CHOICE_TEXTCOLOR \ + disablecolor CHOICE_TEXTCOLOR_DISABLED \ + style CHOICE_STYLE \ + group "mw2_button" \ + type ITEM_TYPE_BUTTON \ + textAlign CHOICE_TEXTALIGN \ + textAlignX CHOICE_TEXT_OFFSET_X \ + textFont CHOICE_TEXTFONT \ + textScale CHOICE_TEXTSIZE \ + textStyle CHOICE_TEXTSTYLE \ + exp text( textArg ) \ + visible visArg \ + extraArgs \ + CHOICE_SCRIPTS_ALL( itemIndex, nameArg, actionArg, onFocusArg, leaveFocusArg ) \ + } + +#define CHOICE_BACK( textArg, actionArg ) \ + CHOICE_BACK_VIS( textArg, actionArg, 1 ) + +#define CHOICE_BACK_VIS( textArg, actionArg, visArg ) \ + itemDef \ + { \ + rect -64 -20 336 20 1 3 \ + visible 1 \ + group "mw2_button" \ + style 1 \ + foreColor CHOICE_TEXTCOLOR \ + disableColor 0.6 0.55 0.55 1 \ + background "menu_button_selection_bar" \ + type 1 \ + textFont 3 \ + textAlign 6 \ + textAlignX -60 \ + textScale 0.375 \ + text textArg \ + visible when ( visArg ) \ + onFocus \ + { \ + play CHOICE_FOCUS_SOUND; \ + setItemColor self backcolor 0 0 0 1; \ + setLocalVarBool "ui_menuAButton" ( 1 ); \ + } \ + leaveFocus \ + { \ + setItemColor self backcolor 0 0 0 0; \ + setLocalVarString "ui_hint_text" ( "@NULL_EMPTY" ); \ + setLocalVarBool "ui_menuAButton" ( 0 ); \ + } \ + action \ + { \ + play "mouse_click"; \ + escape "self"; \ + actionArg \ + } \ + } diff --git a/iw4x/iw4x_00/ui_mp/mapmacros.inc b/iw4x/iw4x_00/ui_mp/mapmacros.inc new file mode 100644 index 0000000..c99419e --- /dev/null +++ b/iw4x/iw4x_00/ui_mp/mapmacros.inc @@ -0,0 +1,55 @@ +#define LOCAL_MAP_ACTION( mapname ) \ + setdvar ui_mapname mapname; \ + close "settings_map"; \ + close "self"; + +#define LOCAL_MAP_FOCUS( name, desc, icon ) \ + setLocalVarString "ui_info_name" ( name ); \ + setLocalVarString "ui_info_desc" ( desc ); \ + setLocalVarString "ui_info_icon" ( icon ); + +#define LOCAL_MAP_NAME( name ) \ + "@" + name + +#define LOCAL_XDLC_FOCUS \ + setLocalVarString "ui_info_name" ( "PATCH_DLC_MAPS" ); \ + setLocalVarString "ui_info_desc" ( "PATCH_DLC_MAPS_DESC" ); \ + setLocalVarString "ui_info_icon" ( "loadscreen_mp_bonusmaps" ); + +#define LOCAL_MAP_SELECTION_RECT(i) 220 ( 30 + ( i * 20 ) ) 148 18 1 1 + +#define LOCAL_MAP_SELECTION(itemIndex, mapname, name, desc, icon, visArg) \ + itemDef \ + { \ + rect LOCAL_MAP_SELECTION_RECT(itemIndex) \ + forecolor 1 1 1 1 \ + style WINDOW_STYLE_FILLED \ + background "menu_rules_selection_bar" \ + group "mw2_button" \ + type ITEM_TYPE_BUTTON \ + textAlign ITEM_ALIGN_TOP_RIGHT \ + textAlignX -34 \ + textAlignY -1 \ + textScale CHOICE_TEXTSIZE \ + textFont CHOICE_TEXTFONT \ + exp text ( LOCAL_MAP_NAME( name ) ) \ + visible when (visArg) \ + onFocus \ + { \ + play "mouse_over"; \ + setItemColor self backColor 0 0 0 1; \ + setLocalVarBool "ui_menuAButton" ( 1 ); \ + setLocalVarFloat "ui_popupYPos" ( 0 ); \ + LOCAL_MAP_FOCUS( name, desc, icon ) \ + } \ + leaveFocus \ + { \ + setItemColor self backColor 0 0 0 0; \ + setLocalVarBool "ui_menuAButton" ( 0 ); \ + } \ + action \ + { \ + play "mouse_click"; \ + LOCAL_MAP_ACTION( mapname ) \ + } \ + } \ No newline at end of file diff --git a/iw4x/iw4x_00/ui_mp/playerdataread.menu b/iw4x/iw4x_00/ui_mp/playerdataread.menu index 0217467..a13d126 100644 --- a/iw4x/iw4x_00/ui_mp/playerdataread.menu +++ b/iw4x/iw4x_00/ui_mp/playerdataread.menu @@ -43,8 +43,6 @@ setDvar "ui_checkclass" 14; open "resetclass"; - exec "checkClasses"; - setLocalVarInt "classIndex" ( localvarint( "oldClassIndex" ) ); if ( !isitemunlocked( getplayerdata( "killstreaks" , 0 ) ) && getplayerdata( "killstreaks" , 0 ) != "none" ) { diff --git a/iw4x/iw4x_00/ui_mp/settings_map.menu b/iw4x/iw4x_00/ui_mp/settings_map.menu index ae540ed..d142326 100644 --- a/iw4x/iw4x_00/ui_mp/settings_map.menu +++ b/iw4x/iw4x_00/ui_mp/settings_map.menu @@ -1,124 +1,350 @@ -#include "ui/menudef.h" -#include "ui_mp/main.inc" - -#define MENU_NAME "settings_map" -#define MENU_MUSIC "music_mainmenu_mp" -#define MENU_TITLE "@MENU_CHOOSE_MAP_CAP" - -#undef CHOICE_GROUP -#define CHOICE_GROUP MENU_NAME - -#undef MENU_BACKGROUND_PANEL_RIGHT -#define MENU_BACKGROUND_PANEL_RIGHT \ - itemDef \ - { \ - rect (0 - MENU_BACKGROUND_PANEL_RIGHT_WIDTH) 28 MENU_BACKGROUND_PANEL_RIGHT_WIDTH MENU_BACKGROUND_PANEL_RIGHT_HEIGHT HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP \ - style WINDOW_STYLE_SHADER \ - foreColor 0 0 0 0.7 \ - background "black" \ - decoration \ - textScale 0.55 \ - visible 1 \ - } \ - itemDef \ - { \ - name "image" \ - rect (0 - (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 10)) 50 (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 20) 127 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP \ - style WINDOW_STYLE_SHADER \ - foreColor 1 1 1 1 \ - decoration \ - textScale 0.55 \ - visible 1 \ - exp material ("preview_" + dvarString("ui_map_name")) \ - } \ - itemDef \ - { \ - name "longname" \ - rect (0 - (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 10)) 28 (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 20) 22 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP \ - foreColor CHOICE_TEXTCOLOR \ - decoration \ - textAlign ITEM_ALIGN_TOP_LEFT \ - textScale CHOICE_TEXTSIZE \ - textFont 9 \ - visible 1 \ - exp text (dvarString("ui_map_long")) \ - } \ - itemDef \ - { \ - name "description" \ - rect (0 - (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 10)) 180 (MENU_BACKGROUND_PANEL_RIGHT_WIDTH - 20) 20 HORIZONTAL_ALIGN_RIGHT VERTICAL_ALIGN_TOP \ - foreColor 1 1 1 0.65 \ - decoration \ - autoWrapped \ - textAlign ITEM_ALIGN_TOP_LEFT \ - textScale CHOICE_TEXTSIZE \ - textFont UI_FONT_SMALL \ - visible 1 \ - exp text (dvarString("ui_map_desc")) \ - } - -#define ON_MENU_OPEN \ - focusFirst; \ - uiScript "ApplyInitialMap"; - -#define ON_MENU_CLOSE \ - execNow "xupdatepartystate"; - -#define ON_MENU_ESC \ - close self; - -menuDef -{ - name MENU_NAME - fullscreen 1 - rect 0 0 640 480 - foreColor CHOICE_TEXTCOLOR - focusColor CHOICE_TEXTCOLOR - soundLoop MENU_MUSIC - fadeCycle 1 - fadeClamp 1 - fadeAmount 0.1 - - MENU_ON_OPEN(ON_MENU_OPEN) - MENU_ON_CLOSE(ON_MENU_CLOSE) - MENU_ON_ESC(ON_MENU_ESC) - - #define DISABLE_SIDEBAR - #include "ui_mp/bg.inc" - - MENU_ITEM_TITLE(10) - MENU_BACKGROUND_FRAME - MENU_BACKGROUND_PANEL_RIGHT - - itemDef - { - name "maplist" - rect 62 28 210 356 HORIZONTAL_ALIGN_LEFT VERTICAL_ALIGN_TOP - style WINDOW_STYLE_FILLED - foreColor CHOICE_TEXTCOLOR - outLineColor 0 0 0 0.6 - type ITEM_TYPE_LISTBOX - textFont UI_FONT_NORMAL - textAlignX 6 - textScale CHOICE_TEXTSIZE - visible 1 - feeder 60 - selectBorder 0.8 0.95 1 0 - elementWidth 120 - elementHeight 22 -// numcols xpos xwidth textlen alignment - columns 1 8 120 25 0 - doubleClick - { - uiScript "ApplyMap"; - close self; - } - execkeyint 13 - { - uiScript "ApplyMap"; - close self; - } - } - - ITEM_BUTTON_BACK(close self;) -} +#define CHOICE_Y( itemIndex ) ( CHOICE_Y_START + CHOICE_Y_SPACING * CHOICE_ROW( itemIndex ) + CHOICE_SEP_TOTAL_SPACING( itemIndex ) ) +#define CHOICE_ORIGIN( itemIndex ) CHOICE_X( itemIndex ) CHOICE_Y( itemIndex ) +#define CHOICE_RECT( itemIndex ) CHOICE_ORIGIN( itemIndex ) CHOICE_SIZE_X CHOICE_SIZE_Y CHOICE_HORIZONTAL_ALIGN CHOICE_VERTICAL_ALIGN + +#include "ui/menudef.h" +#include "ui_mp/main.inc" + +#define MENU_NAME "settings_map" +#define MENU_MUSIC "music_mainmenu_mp" +#define MENU_TITLE "@MENU_CHOOSE_MAP_CAP" + +#undef CHOICE_GROUP +#define CHOICE_GROUP MENU_NAME + +{ + menuDef + { + name MENU_NAME + fullscreen 1 + rect 0 0 640 480 + foreColor 1 1 1 1 + focusColor 1 1 1 1 + soundLoop MENU_MUSIC + fadeCycle 1 + fadeClamp 1 + fadeAmount 0.1 + onOpen + { + focusFirst; + uiScript "ApplyInitialMap"; + + } + onClose + { + execNow "xupdatepartystate"; + } + onESC + { + close "self"; + } + + #define DISABLE_SIDEBAR + #include "ui_mp/bg.inc" + + MENU_BACKGROUND_FRAME + + itemDef + { + rect 0 0 272 28 1 1 + decoration + visible 1 + forecolor 1 1 1 1 + textfont 9 + textalign 6 + textalignx -60 + textscale 0.5 + text "@MENU_CHOOSE_MAP_CAP" + } + + #include "ui_mp/mapmacros.inc" + + #undef CHOICE_Y_START + #define CHOICE_Y_START 28 + + #undef CHOICE_TEXTALIGN + #define CHOICE_TEXTALIGN ITEM_ALIGN_TOP_LEFT + + #undef CHOICE_TEXT_OFFSET_X + #define CHOICE_TEXT_OFFSET_X 124 + + CHOICE_BACK( "@PLATFORM_BACK_CAPS", close "self"; ) + + #undef CHOICE_TEXTCOLOR + #define CHOICE_TEXTCOLOR 0.5 1 0.5 1 + CHOICE_BUTTON_FOCUS(0, "dlc_list_1", "@MP_ORIGINAL_MAPS", setdvar "iw4x_maps_dlc" 0;, LOCAL_MAP_FOCUS( "MP_ORIGINAL_MAPS", "NULL_EMPTY", "loadscreen_mp_bonusmaps" ), ; ) + CHOICE_BUTTON_FOCUS(1, "dlc_list_2", "@PATCH_DLC1", setdvar "iw4x_maps_dlc" 1;, LOCAL_MAP_FOCUS( "PATCH_DLC1", "PATCH_DESC_DLC1", "preview_stimulus_dlc" ), 1) + CHOICE_BUTTON_FOCUS(2, "dlc_list_3", "@PATCH_DLC2", setdvar "iw4x_maps_dlc" 2;, LOCAL_MAP_FOCUS( "PATCH_DLC2", "PATCH_DESC_DLC2", "preview_resurgence_dlc" ), 1) + CHOICE_BUTTON_FOCUS(3, "dlc_list_4", "@PATCH_IW4X_DLC", setdvar "iw4x_maps_dlc" 3;, LOCAL_MAP_FOCUS( "PATCH_IW4X_DLC", "PATCH_DESC_IW4X_DLC", "preview_codo_dlc" ), 1) + CHOICE_BUTTON_FOCUS(4, "dlc_list_5", "@PATCH_COD4_DLC", setdvar "iw4x_maps_dlc" 4;, LOCAL_MAP_FOCUS( "PATCH_COD4_DLC", "PATCH_DESC_COD4_DLC", "preview_cod4_dlc" ), 1) + CHOICE_BUTTON_FOCUS(5, "dlc_list_6", "@PATCH_MW3_DLC", setdvar "iw4x_maps_dlc" 5;, LOCAL_MAP_FOCUS( "PATCH_MW3_DLC", "PATCH_DESC_MW3_DLC", "preview_mw3_dlc" ), 1) + CHOICE_BUTTON_FOCUS(6, "dlc_list_custom", "@CUSTOM_MAPS_DLC", setdvar "iw4x_maps_dlc" 99;, LOCAL_MAP_FOCUS( "CUSTOM_MAPS_DLC", "DESC_CUSTOM_MAPS_DLC", "preview_custom_maps" ), 1) + + LOCAL_MAP_SELECTION( 0, "mp_afghan", "MPUI_AFGHAN", "MPUI_DESC_MAP_AFGHAN", "preview_mp_afghan", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 1, "mp_derail", "MPUI_DERAIL", "MPUI_DESC_MAP_DERAIL", "preview_mp_derail", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 2, "mp_estate", "MPUI_ESTATE", "MPUI_DESC_MAP_ESTATE", "preview_mp_estate", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 3, "mp_favela", "MPUI_FAVELA", "MPUI_DESC_MAP_FAVELA", "preview_mp_favela", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 4, "mp_highrise", "MPUI_HIGHRISE", "MPUI_DESC_MAP_HIGHRISE", "preview_mp_highrise", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 5, "mp_invasion", "MPUI_INVASION", "MPUI_DESC_MAP_INVASION", "preview_mp_invasion", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 6, "mp_checkpoint", "MPUI_CHECKPOINT", "MPUI_DESC_MAP_CHECKPOINT", "preview_mp_checkpoint", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 7, "mp_quarry", "MPUI_QUARRY", "MPUI_DESC_MAP_QUARRY", "preview_mp_quarry", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 8, "mp_rundown", "MPUI_RUNDOWN", "MPUI_DESC_MAP_RUNDOWN", "preview_mp_rundown", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 9, "mp_rust", "MPUI_RUST", "MPUI_DESC_MAP_RUST", "preview_mp_rust", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 10, "mp_boneyard", "MPUI_BONEYARD", "MPUI_DESC_MAP_BONEYARD", "preview_mp_boneyard", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 11, "mp_skidrow", "MPUI_RAID", "MPUI_DESC_MAP_NIGHTSHIFT", "preview_mp_nightshift", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 12, "mp_subbase", "MPUI_SUBBASE", "MPUI_DESC_MAP_SUBBASE", "preview_mp_subbase", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 13, "mp_terminal", "MPUI_TERMINAL", "MPUI_DESC_MAP_TERMINAL", "preview_mp_terminal", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 14, "mp_underpass", "MPUI_UNDERPASS", "MPUI_DESC_MAP_UNDERPASS", "preview_mp_underpass", dvarint("iw4x_maps_dlc") == 0) + LOCAL_MAP_SELECTION( 15, "mp_brecourt", "MPUI_WASTELAND", "MPUI_DESC_MAP_BRECOURT", "preview_mp_brecourt", dvarint("iw4x_maps_dlc") == 0) + + LOCAL_MAP_SELECTION( 0, "mp_complex", "PATCH_COMPLEX", "PATCH_DESC_MAP_COMPLEX", "preview_mp_complex", dvarint("iw4x_maps_dlc") == 1) + LOCAL_MAP_SELECTION( 1, "mp_crash", "MPUI_CRASH", "MPUI_DESC_MAP_CRASH", "preview_mp_crash", dvarint("iw4x_maps_dlc") == 1) + LOCAL_MAP_SELECTION( 2, "mp_overgrown", "MPUI_OVERGROWN", "MPUI_DESC_MAP_OVERGROWN", "preview_mp_overgrown", dvarint("iw4x_maps_dlc") == 1) + LOCAL_MAP_SELECTION( 3, "mp_compact", "PATCH_COMPACT", "PATCH_DESC_MAP_COMPACT", "preview_mp_compact", dvarint("iw4x_maps_dlc") == 1) + LOCAL_MAP_SELECTION( 4, "mp_storm", "PATCH_STORM", "PATCH_DESC_MAP_STORM", "preview_mp_storm", dvarint("iw4x_maps_dlc") == 1) + + LOCAL_MAP_SELECTION( 0, "mp_abandon", "PATCH_ABANDON", "PATCH_DESC_MAP_ABANDON", "preview_mp_abandon", dvarint("iw4x_maps_dlc") == 2) + LOCAL_MAP_SELECTION( 1, "mp_fuel2", "PATCH_FUEL2", "PATCH_DESC_MAP_FUEL2", "preview_mp_fuel2", dvarint("iw4x_maps_dlc") == 2) + LOCAL_MAP_SELECTION( 2, "mp_strike", "PATCH_STRIKE", "MPUI_DESC_MAP_STRIKE", "preview_mp_strike", dvarint("iw4x_maps_dlc") == 2) + LOCAL_MAP_SELECTION( 3, "mp_trailerpark", "PATCH_TRAILERPARK", "PATCH_DESC_MAP_TRAILERPARK", "preview_mp_trailerpark", dvarint("iw4x_maps_dlc") == 2) + LOCAL_MAP_SELECTION( 4, "mp_vacant", "PATCH_VACANT", "MPUI_DESC_MAP_VACANT", "preview_mp_vacant", dvarint("iw4x_maps_dlc") == 2) + + LOCAL_MAP_SELECTION( 0, "mp_nuked", "MPUI_NUKED", "MPUI_DESC_MAP_NUKED", "preview_mp_nuked", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 1, "mp_cross_fire", "MPUI_CROSSFIRE", "MPUI_DESC_MAP_CROSSFIRE", "preview_mp_cross_fire", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 2, "mp_cargoship", "MPUI_CARGOSHIP", "MPUI_DESC_MAP_CARGOSHIP", "preview_mp_cargoship", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 3, "mp_bloc_sh", "MPUI_BLOC_SH", "MPUI_DESC_MAP_BLOC_SH", "preview_mp_bloc_sh", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 4, "mp_killhouse", "MPUI_KILLHOUSE", "MPUI_DESC_MAP_KILLHOUSE", "preview_mp_killhouse", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 5, "mp_bog", "MPUI_BOG_SH", "MPUI_DESC_MAP_BOG", "preview_mp_bog_sh", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 6, "mp_cargoship_sh", "MPUI_CARGOSHIP_SH", "MPUI_DESC_MAP_CARGOSHIP_SH", "preview_mp_cargoship_sh", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 7, "mp_shipment_long", "MPUI_SHIPMENT_LONG", "MPUI_DESC_MAP_SHIPMENT_LONG", "preview_mp_shipment_long", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 8, "mp_rust_long", "MPUI_RUST_LONG", "MPUI_DESC_MAP_RUST_LONG", "preview_mp_rust_long", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 9, "mp_firingrange", "MPUI_FIRINGRANGE", "MPUI_DESC_MAP_FIRINGRANGE", "preview_mp_firingrange", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 10, "mp_bloc", "MPUI_BLOC", "MPUI_DESC_MAP_BLOC", "preview_mp_bloc", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 11, "mp_crash_tropical", "MPUI_CRASH_TROPICAL", "MPUI_DESC_MAP_CRASH_TROPICAL", "preview_mp_crash_tropical", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 12, "mp_estate_tropical", "MPUI_ESTATE_TROPICAL", "MPUI_DESC_MAP_ESTATE_TROPICAL","preview_mp_estate_tropical", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 13, "mp_fav_tropical", "MPUI_FAV_TROPICAL", "MPUI_DESC_MAP_FAV_TROPICAL", "preview_mp_fav_tropical", dvarint("iw4x_maps_dlc") == 3) + LOCAL_MAP_SELECTION( 14, "mp_storm_spring", "MPUI_STORM_SPRING", "MPUI_DESC_MAP_STORM_SPRING", "preview_mp_storm_spring", dvarint("iw4x_maps_dlc") == 3) + + LOCAL_MAP_SELECTION( 0, "mp_farm", "MPUI_FARM", "MPUI_DESC_MAP_FARM", "preview_mp_farm", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 1, "mp_backlot", "MPUI_BACKLOT", "MPUI_DESC_MAP_BACKLOT", "preview_mp_backlot", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 2, "mp_pipeline", "MPUI_PIPELINE", "MPUI_DESC_PIPELINE", "preview_mp_pipeline", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 3, "mp_countdown", "MPUI_COUNTDOWN", "MPUI_DESC_MAP_COUNTDOWN", "preview_mp_countdown", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 4, "mp_crash_snow", "MPUI_CRASH_SNOW", "MPUI_DESC_MAP_CRASH_SNOW", "preview_mp_crash_snow", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 5, "mp_carentan", "MPUI_CARENTAN", "MPUI_DESC_MAP_CARENTAN", "preview_mp_carentan", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 6, "mp_broadcast", "MPUI_BROADCAST", "MPUI_DESC_MAP_BROADCAST", "preview_mp_broadcast", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 7, "mp_showdown", "MPUI_SHOWDOWN", "MPUI_DESC_MAP_SHOWDOWN", "preview_mp_showdown", dvarint("iw4x_maps_dlc") == 4) + LOCAL_MAP_SELECTION( 8, "mp_convoy", "MPUI_CONVOY", "MPUI_DESC_MAP_CONVOY", "preview_mp_convoy", dvarint("iw4x_maps_dlc") == 4) + + LOCAL_MAP_SELECTION( 0, "mp_alpha", "MPUI_LOCKDOWN", "MPUI_DESC_MAP_LOCKDOWN", "preview_mp_alpha", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 1, "mp_bravo", "MPUI_MISSION", "MPUI_DESC_MAP_MISSION", "preview_mp_bravo", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 2, "mp_dome", "MPUI_DOME", "MPUI_DESC_MAP_DOME", "preview_mp_dome", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 3, "mp_hardhat", "MPUI_HARDHAT", "MPUI_DESC_MAP_HARDHAT", "preview_mp_hardhat", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 4, "mp_paris", "MPUI_RESISTANCE", "MPUI_DESC_MAP_RESISTANCE", "preview_mp_paris", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 5, "mp_plaza2", "MPUI_ARKADEN", "MPUI_DESC_MAP_ARKADEN", "preview_mp_plaza2", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 6, "mp_seatown", "MPUI_SEATOWN", "MPUI_DESC_MAP_SEATOWN", "preview_mp_seatown", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 7, "mp_underground", "MPUI_UNDERGROUND", "MPUI_DESC_MAP_UNDERGROUND", "preview_mp_underground", dvarint("iw4x_maps_dlc") == 5) + LOCAL_MAP_SELECTION( 8, "mp_village", "MPUI_VILLAGE", "MPUI_DESC_MAP_VILLAGE", "preview_mp_village", dvarint("iw4x_maps_dlc") == 5) + + itemDef + { + name "select_custom_map" + rect 250 -20 96 20 1 3 + visible 1 + group "mw2_button" + style 1 + foreColor 1 1 1 1 + disableColor 0.6 0.55 0.55 1 + background "black" + type 1 + textFont 3 + textAlign 6 + textAlignX -60 + textScale 0.375 + text "@MPUI_DONE_SELECTING" + visible when ( dvarint("iw4x_maps_dlc") == 99 ) + onFocus + { + play CHOICE_FOCUS_SOUND; + setItemColor self backcolor 0 0 0 1; + setLocalVarBool "ui_menuAButton" ( 1 ); + } + leaveFocus + { + setItemColor self backcolor 0 0 0 0; + setLocalVarString "ui_hint_text" ( "@NULL_EMPTY" ); + setLocalVarBool "ui_menuAButton" ( 0 ); + } + action + { + play "mouse_click"; + escape "self"; + uiScript "ApplyMap" + close "settings_map"; + close "self"; + } + } + + itemDef + { + name "maplist_hd" + rect -478 28 185 356 3 1 + visible 1 + style 1 + border 1 + bordersize 1 + forecolor 1 1 1 1 + backcolor 0 0 0 0.7 + bordercolor 1 1 1 0.15 + outlinecolor 1 1 1 0.2 + type ITEM_TYPE_LISTBOX + textfont 1 + textalignx 6 + textscale 0.4 + feeder 60 + elementtype LISTBOX_TEXT + elementWidth 120 + elementHeight 22 + visible when ( dvarbool( "widescreen" ) && dvarint("iw4x_maps_dlc") == 99 ) + onFocus + { + play "mouse_over"; + setItemColor "maplist" bordercolor 1 1 1 "1"; + LOCAL_MAP_FOCUS( "@" + localvarstring( "ui_info_name" ), "Custom usermaps/", "loadscreen_mp_bonusmaps" ) + } + leaveFocus + { + setItemColor "maplist" bordercolor 1 1 1 "0.15"; + } + } + itemDef + { + rect -292 28 292 356 3 1 + style 3 + foreColor 0 0 0 0.7 + background "black" + decoration + textScale 0.55 + visible when ( dvarbool( "widescreen" ) ) + } + itemDef + { + name "mapimage" + rect -282 50 272 153 3 1 + style 3 + foreColor 1 1 1 1 + decoration + textScale 0.55 + exp material ( localvarstring( "ui_info_icon" ) ) + visible when(localvarstring( "ui_info_icon") != "" && dvarbool( "widescreen" ) && dvarint("iw4x_maps_dlc") != 99 ) + } + itemDef + { + name "longname" + rect -282 28 272 22 3 1 + foreColor 1 1 1 1 + decoration + textAlign 4 + textScale 0.375 + textFont 9 + exp text ( "@" + localvarstring( "ui_info_name" ) ) + visible when ( dvarbool( "widescreen" ) ) + } + itemDef + { + name "description" + rect -282 203 272 20 3 1 + foreColor 1 1 1 0.65 + decoration + autoWrapped + textAlign 4 + textScale 0.375 + textFont 3 + exp text ( "@" + localvarstring( "ui_info_desc" ) ) + visible when ( dvarbool( "widescreen" ) ) + } + + // temporary lazy fix for non 16:9 + + itemDef + { + name "maplist_sd" + rect -292 28 120 356 3 1 + visible 1 + style 1 + border 1 + bordersize 1 + forecolor 1 1 1 1 + backcolor 0 0 0 0.7 + bordercolor 1 1 1 0.15 + outlinecolor 1 1 1 0.2 + type ITEM_TYPE_LISTBOX + textfont 1 + textalignx 6 + textscale 0.4 + feeder 60 + elementtype LISTBOX_TEXT + elementWidth 120 + elementHeight 22 + visible when (!dvarbool( "widescreen" ) && dvarint("iw4x_maps_dlc") == 99 ) + onFocus + { + play "mouse_over"; + setItemColor "maplist" bordercolor 1 1 1 "1"; + LOCAL_MAP_FOCUS( "Custom Maps", "Custom usermaps/", "loadscreen_mp_bonusmaps" ) + } + leaveFocus + { + setItemColor "maplist" bordercolor 1 1 1 "0.15"; + } + } + + itemDef + { + rect -172 28 210 356 3 1 + style 3 + foreColor 0 0 0 0.7 + background "black" + decoration + textScale 0.55 + visible when ( !dvarbool( "widescreen" ) ) + } + itemDef + { + name "mapimage" + rect -162 50 190 133 3 1 + style 3 + foreColor 1 1 1 1 + decoration + textScale 0.55 + exp material ( localvarstring( "ui_info_icon" ) ) + visible when( localvarstring( "ui_info_icon") != "" && !dvarbool( "widescreen" ) && dvarint("iw4x_maps_dlc") != 99 ) + } + itemDef + { + name "longname" + rect -162 28 200 22 3 1 + foreColor 1 1 1 1 + decoration + textAlign 4 + textScale 0.375 + textFont 9 + visible 1 + exp text ( "@" + localvarstring( "ui_info_name" ) ) + visible when ( !dvarbool( "widescreen" ) ) + } + itemDef + { + name "description" + rect -162 186 200 20 3 1 + foreColor 1 1 1 0.65 + decoration + autoWrapped + textAlign 4 + textScale 0.375 + textFont 3 + visible 1 + exp text ( "@" + localvarstring( "ui_info_desc" ) ) + visible when ( !dvarbool("widescreen") ) + } + } +} diff --git a/iw4x/iw4x_01/images/loadscreen_mp_alpha.iwi b/iw4x/iw4x_01/images/loadscreen_mp_alpha.iwi new file mode 100644 index 0000000..4601c8f Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_alpha.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_bravo.iwi b/iw4x/iw4x_01/images/loadscreen_mp_bravo.iwi new file mode 100644 index 0000000..807427d Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_bravo.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_dome.iwi b/iw4x/iw4x_01/images/loadscreen_mp_dome.iwi new file mode 100644 index 0000000..3d5cbb8 Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_dome.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_hardhat.iwi b/iw4x/iw4x_01/images/loadscreen_mp_hardhat.iwi new file mode 100644 index 0000000..4b8d23f Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_hardhat.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_paris.iwi b/iw4x/iw4x_01/images/loadscreen_mp_paris.iwi new file mode 100644 index 0000000..7a2586b Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_paris.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_plaza2.iwi b/iw4x/iw4x_01/images/loadscreen_mp_plaza2.iwi new file mode 100644 index 0000000..8cab768 Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_plaza2.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_seatown.iwi b/iw4x/iw4x_01/images/loadscreen_mp_seatown.iwi new file mode 100644 index 0000000..02e205c Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_seatown.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_underground.iwi b/iw4x/iw4x_01/images/loadscreen_mp_underground.iwi new file mode 100644 index 0000000..8d1586f Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_underground.iwi differ diff --git a/iw4x/iw4x_01/images/loadscreen_mp_village.iwi b/iw4x/iw4x_01/images/loadscreen_mp_village.iwi new file mode 100644 index 0000000..8500b12 Binary files /dev/null and b/iw4x/iw4x_01/images/loadscreen_mp_village.iwi differ diff --git a/iw4x/iw4x_01/images/preview_cod4_dlc.iwi b/iw4x/iw4x_01/images/preview_cod4_dlc.iwi new file mode 100644 index 0000000..677db6d Binary files /dev/null and b/iw4x/iw4x_01/images/preview_cod4_dlc.iwi differ diff --git a/iw4x/iw4x_01/images/preview_codo_dlc.iwi b/iw4x/iw4x_01/images/preview_codo_dlc.iwi new file mode 100644 index 0000000..a73b325 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_codo_dlc.iwi differ diff --git a/iw4x/iw4x_01/images/preview_custom_maps.iwi b/iw4x/iw4x_01/images/preview_custom_maps.iwi new file mode 100644 index 0000000..55bdaf4 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_custom_maps.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_alpha.iwi b/iw4x/iw4x_01/images/preview_mp_alpha.iwi new file mode 100644 index 0000000..69a22b5 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_alpha.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_bravo.iwi b/iw4x/iw4x_01/images/preview_mp_bravo.iwi new file mode 100644 index 0000000..fe6a52f Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_bravo.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_dome.iwi b/iw4x/iw4x_01/images/preview_mp_dome.iwi new file mode 100644 index 0000000..3d15449 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_dome.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_hardhat.iwi b/iw4x/iw4x_01/images/preview_mp_hardhat.iwi new file mode 100644 index 0000000..a5770c0 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_hardhat.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_paris.iwi b/iw4x/iw4x_01/images/preview_mp_paris.iwi new file mode 100644 index 0000000..b08196b Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_paris.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_plaza2.iwi b/iw4x/iw4x_01/images/preview_mp_plaza2.iwi new file mode 100644 index 0000000..0c026ca Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_plaza2.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_seatown.iwi b/iw4x/iw4x_01/images/preview_mp_seatown.iwi new file mode 100644 index 0000000..1c4737a Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_seatown.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_underground.iwi b/iw4x/iw4x_01/images/preview_mp_underground.iwi new file mode 100644 index 0000000..453d5af Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_underground.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mp_village.iwi b/iw4x/iw4x_01/images/preview_mp_village.iwi new file mode 100644 index 0000000..1dda81e Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mp_village.iwi differ diff --git a/iw4x/iw4x_01/images/preview_mw3_dlc.iwi b/iw4x/iw4x_01/images/preview_mw3_dlc.iwi new file mode 100644 index 0000000..dc8a4b3 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_mw3_dlc.iwi differ diff --git a/iw4x/iw4x_01/images/preview_resurgence_dlc.iwi b/iw4x/iw4x_01/images/preview_resurgence_dlc.iwi new file mode 100644 index 0000000..9404f7e Binary files /dev/null and b/iw4x/iw4x_01/images/preview_resurgence_dlc.iwi differ diff --git a/iw4x/iw4x_01/images/preview_stimulus_dlc.iwi b/iw4x/iw4x_01/images/preview_stimulus_dlc.iwi new file mode 100644 index 0000000..cc7c469 Binary files /dev/null and b/iw4x/iw4x_01/images/preview_stimulus_dlc.iwi differ diff --git a/zone/patch/iw4x_ui_mp.ff b/zone/patch/iw4x_ui_mp.ff index ef95573..7e46eca 100644 Binary files a/zone/patch/iw4x_ui_mp.ff and b/zone/patch/iw4x_ui_mp.ff differ