658 lines
28 KiB
Python
Executable File
658 lines
28 KiB
Python
Executable File
/***********************************
|
|
* Name: MP_Unlocks.sc
|
|
* Author: Ryan Baker / Chris McMahon
|
|
* Date: 02/09/2013
|
|
***********************************/
|
|
|
|
USING "PauseMenu_public.sch"
|
|
USING "net_include.sch"
|
|
USING "Transition_Common.sch"
|
|
USING "PauseMenu_mp_public.sch"
|
|
USING "FMMC_Cloud_Loader.sch"
|
|
USING "commands_pad.sch"
|
|
|
|
// ************************************************************
|
|
// ******************** MAIN SCRIPT LOOP **********************
|
|
// ************************************************************
|
|
|
|
//Unlocks Contstants
|
|
CONST_INT PM_MAX_SIZE_GENERAL_UNLOCKS 13
|
|
|
|
|
|
CONST_INT PM_MAX_SIZE_CONTENT_UNLOCKS 50
|
|
CONST_INT PM_MAX_SIZE_PROGRESS_UNLOCKS 49
|
|
|
|
CONST_INT PM_D2_GENERAL_UNLOCKS 0
|
|
CONST_INT PM_D2_PROGRESS_UNLOCKS 1
|
|
CONST_INT PM_D2_CONTENT_UNLOCKS 2
|
|
|
|
CONST_INT FIRST_COLUMN 0
|
|
CONST_INT SECOND_COLUMN 1
|
|
CONST_INT THIRD_COLUMN 2
|
|
CONST_INT SETTING_COLUMN 4
|
|
|
|
INT STATS_CATEGORY_MENU_ID = (ENUM_TO_INT(MENU_UNIQUE_ID_STATS_CATEGORY) + PREF_OPTIONS_THRESHOLD)
|
|
INT STATS_LISTITEM_MENU_ID = (ENUM_TO_INT(MENU_UNIQUE_ID_STATS_LISTITEM) + PREF_OPTIONS_THRESHOLD)
|
|
|
|
//Unlocks Variables
|
|
BOOL bShouldQuitUnlocksScript = FALSE
|
|
SCRIPT_TIMER iRStickTimer
|
|
INT iRStickTimerDelay
|
|
|
|
INT iCurrentMenu
|
|
BOOL bCanScroll
|
|
BOOL bDataAvailable
|
|
|
|
BOOL bInitMenu
|
|
|
|
CONST_INT MASKS_IN_RETAIL 25
|
|
CONST_INT HAIR_IN_RETAIL 76
|
|
CONST_INT MAKEUP_IN_RETAIL 29
|
|
CONST_INT TATTOOS_IN_RETAIL 67
|
|
CONST_INT AWARDS_IN_RETAIL 85
|
|
|
|
CONST_INT MASKS_IN_BEACH_BUM 0
|
|
CONST_INT HAIR_IN_BEACH_BUM 4
|
|
CONST_INT MAKEUP_IN_BEACH_BUM 0
|
|
CONST_INT TATTOOS_IN_BEACH_BUM 16
|
|
CONST_INT AWARDS_IN_BEACH_BUM 0
|
|
|
|
CONST_INT MASKS_IN_VALENTINE 7
|
|
CONST_INT HAIR_IN_VALENTINE 1
|
|
CONST_INT MAKEUP_IN_VALENTINE 0
|
|
CONST_INT TATTOOS_IN_VALENTINE 0
|
|
CONST_INT AWARDS_IN_VALENTINE 0
|
|
|
|
CONST_INT MASKS_IN_BUSINESS 29
|
|
CONST_INT HAIR_IN_BUSINESS 4
|
|
CONST_INT MAKEUP_IN_BUSINESS 0
|
|
CONST_INT TATTOOS_IN_BUSINESS 16
|
|
CONST_INT AWARDS_IN_BUSINESS 0
|
|
|
|
CONST_INT MASKS_IN_HIPSTER 8
|
|
CONST_INT HAIR_IN_HIPSTER 4
|
|
CONST_INT MAKEUP_IN_HIPSTER 0
|
|
CONST_INT TATTOOS_IN_HIPSTER 49
|
|
CONST_INT AWARDS_IN_HIPSTER 4
|
|
|
|
CONST_INT MASKS_IN_INDEPENDENCE 12
|
|
CONST_INT HAIR_IN_INDEPENDENCE 1
|
|
CONST_INT MAKEUP_IN_INDEPENDENCE 1
|
|
CONST_INT TATTOOS_IN_INDEPENDENCE 0
|
|
CONST_INT AWARDS_IN_INDEPENDENCE 0
|
|
|
|
CONST_INT MASKS_IN_PILOT_SCHOOL 1
|
|
CONST_INT HAIR_IN_PILOT_SCHOOL 0
|
|
CONST_INT MAKEUP_IN_PILOT_SCHOOL 0
|
|
CONST_INT TATTOOS_IN_PILOT_SCHOOL 0
|
|
CONST_INT AWARDS_IN_PILOT_SCHOOL 0
|
|
|
|
CONST_INT MASKS_IN_LTS 10
|
|
CONST_INT HAIR_IN_LTS 0
|
|
CONST_INT MAKEUP_IN_LTS 0
|
|
CONST_INT TATTOOS_IN_LTS 0
|
|
CONST_INT AWARDS_IN_LTS 0
|
|
|
|
CONST_INT MASKS_IN_CHRISTMAS14 4
|
|
CONST_INT HAIR_IN_CHRISTMAS14 0
|
|
CONST_INT MAKEUP_IN_CHRISTMAS14 0
|
|
CONST_INT TATTOOS_IN_CHRISTMAS14 30
|
|
CONST_INT AWARDS_IN_CHRISTMAS14 0
|
|
|
|
CONST_INT MASKS_IN_HEISTS 109
|
|
CONST_INT HAIR_IN_HEISTS 16
|
|
CONST_INT MAKEUP_IN_HEISTS 0
|
|
CONST_INT TATTOOS_IN_HEISTS 2
|
|
|
|
CONST_INT MAKEUP_IN_HALLOWEEN 30
|
|
INT AWARDS_IN_HEISTS = 39
|
|
|
|
|
|
|
|
|
|
//PURPOSE: Returns the an INT for how much of the unlock the player has achieved
|
|
FUNC INT GET_PM_UNLOCK_GENERAL_ACHIEVED(INT iNum)
|
|
INT iReturnCount
|
|
SWITCH iNum
|
|
CASE 0 RETURN g_FMMC_ROCKSTAR_CREATED.iTypePlayedCount[FMMC_TYPE_RACE]
|
|
CASE 1 RETURN g_FMMC_ROCKSTAR_CREATED.iTypePlayedCount[FMMC_TYPE_DEATHMATCH]
|
|
CASE 2 RETURN g_FMMC_ROCKSTAR_CREATED.iTypePlayedCount[FMMC_TYPE_BASE_JUMP]
|
|
CASE 3 RETURN g_FMMC_ROCKSTAR_CREATED.iTypePlayedCount[FMMC_TYPE_SURVIVAL]
|
|
CASE 4 RETURN g_FMMC_ROCKSTAR_CREATED.iTypePlayedCount[FMMC_TYPE_MISSION]
|
|
CASE 5 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_WEAPONS_UNLOCK)
|
|
CASE 6 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_WEAPON_MODS_UNLOCK)
|
|
|
|
CASE 7 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_MASKS_UNLOCK) - 1
|
|
CASE 8 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_HAIR_UNLOCK)
|
|
CASE 9 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_MAKEUP_UNLOCK)
|
|
CASE 10 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_NO_TATTOOS_UNLOCK)
|
|
CASE 11 RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_FM_PLAT_AWARD_COUNT)
|
|
CASE 12
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_0)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_1)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_2)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_3)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_4)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_5)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_6)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_7)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_8)
|
|
iReturnCount++
|
|
ENDIF
|
|
IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_PILOT_ASPASSEDLESSON_9)
|
|
iReturnCount++
|
|
ENDIF
|
|
RETURN iReturnCount
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
//PURPOSE: Returns the an INT for the total needed for the unlock
|
|
FUNC INT GET_PM_UNLOCK_GENERAL_TOTAL(INT iNum)
|
|
INT iAddWeapon
|
|
//BOOL bMale = IS_PLAYER_MALE(PLAYER_ID())
|
|
|
|
SWITCH iNum
|
|
|
|
CASE 0 RETURN g_FMMC_ROCKSTAR_CREATED.iTypeCount[FMMC_TYPE_RACE]
|
|
CASE 1 RETURN g_FMMC_ROCKSTAR_CREATED.iTypeCount[FMMC_TYPE_DEATHMATCH]
|
|
CASE 2 RETURN g_FMMC_ROCKSTAR_CREATED.iTypeCount[FMMC_TYPE_BASE_JUMP]
|
|
CASE 3 RETURN g_FMMC_ROCKSTAR_CREATED.iTypeCount[FMMC_TYPE_SURVIVAL]
|
|
CASE 4 RETURN g_FMMC_ROCKSTAR_CREATED.iTypeCount[FMMC_TYPE_MISSION]
|
|
|
|
CASE 5 // Weapons
|
|
|
|
|
|
IF IS_SPECIAL_EDITION_GAME() OR IS_COLLECTORS_EDITION_GAME() OR IS_PC_VERSION() OR IS_PLAYSTATION_PLATFORM() OR IS_XBOX_PLATFORM()
|
|
iAddWeapon +=2
|
|
iAddWeapon +=2
|
|
iAddWeapon +=1
|
|
iAddWeapon +=7
|
|
|
|
IF g_sMPTunables.bENABLE_DOUBLE_ACTION_REVOLVER
|
|
iAddWeapon +=1
|
|
ENDIF
|
|
IF g_sMPTunables.bUNLOCK_SERVICE_CARBINE_FOR_PURCHASE
|
|
iAddWeapon +=1
|
|
ENDIF
|
|
|
|
|
|
RETURN 47+iAddWeapon // 27 Base, 19 DLC
|
|
ELSE
|
|
RETURN 44 // 27 Base, 17 DLC
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
CASE 6 // Weapon Mods
|
|
IF NETWORK_HAS_SOCIAL_CLUB_ACCOUNT() //GET_MP_BOOL_PLAYER_STAT(MPPLY_XP_REWARD_PLAYER_IN_CREW) // IF in social club
|
|
OR IS_SPECIAL_EDITION_GAME()
|
|
OR IS_COLLECTORS_EDITION_GAME()
|
|
iAddWeapon = 0
|
|
iAddWeapon +=19
|
|
iAddWeapon +=8
|
|
RETURN g_sMPTunables.itotalnumberofweaponmods +iAddWeapon//246
|
|
ELSE
|
|
RETURN g_sMPTunables.itotalnumberofweaponmods //246 // non social club total
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
// MP_STAT_NO_MASKS_UNLOCK
|
|
CASE 7 RETURN MASKS_IN_RETAIL+MASKS_IN_BEACH_BUM+MASKS_IN_VALENTINE+MASKS_IN_BUSINESS+MASKS_IN_HIPSTER+MASKS_IN_INDEPENDENCE+MASKS_IN_PILOT_SCHOOL+MASKS_IN_LTS+MASKS_IN_CHRISTMAS14+MASKS_IN_HEISTS
|
|
// MP_STAT_NO_HAIR_UNLOCK
|
|
CASE 8 RETURN HAIR_IN_RETAIL+HAIR_IN_BEACH_BUM+HAIR_IN_VALENTINE+HAIR_IN_BUSINESS+HAIR_IN_HIPSTER+HAIR_IN_INDEPENDENCE+HAIR_IN_PILOT_SCHOOL+HAIR_IN_LTS+HAIR_IN_CHRISTMAS14+HAIR_IN_HEISTS
|
|
// MP_STAT_NO_MAKEUP_UNLOCK
|
|
CASE 9 RETURN MAKEUP_IN_RETAIL+MAKEUP_IN_BEACH_BUM+MAKEUP_IN_VALENTINE+MAKEUP_IN_BUSINESS+MAKEUP_IN_HIPSTER+MAKEUP_IN_INDEPENDENCE+MAKEUP_IN_PILOT_SCHOOL+MAKEUP_IN_LTS+MAKEUP_IN_CHRISTMAS14+MAKEUP_IN_HEISTS+MAKEUP_IN_HALLOWEEN
|
|
// MP_STAT_NO_TATTOOS_UNLOCK
|
|
CASE 10 RETURN TATTOOS_IN_RETAIL+TATTOOS_IN_BEACH_BUM+TATTOOS_IN_VALENTINE+TATTOOS_IN_BUSINESS+TATTOOS_IN_HIPSTER+TATTOOS_IN_INDEPENDENCE+TATTOOS_IN_PILOT_SCHOOL+TATTOOS_IN_LTS+TATTOOS_IN_CHRISTMAS14+TATTOOS_IN_HEISTS
|
|
// MP_STAT_NO_AWARDS_UNLOCK
|
|
CASE 11 RETURN AWARDS_IN_RETAIL+AWARDS_IN_BEACH_BUM+AWARDS_IN_VALENTINE+AWARDS_IN_BUSINESS+AWARDS_IN_HIPSTER+AWARDS_IN_INDEPENDENCE+AWARDS_IN_PILOT_SCHOOL+AWARDS_IN_LTS+AWARDS_IN_CHRISTMAS14+AWARDS_IN_HEISTS
|
|
// Pilot School Lessons
|
|
CASE 12 RETURN 10
|
|
ENDSWITCH
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
FUNC BOOL HAS_PLAYER_PLAYED_FLIGHT_SCHOOL()
|
|
BOOL bPlayed
|
|
bPlayed = FALSE
|
|
IF GET_MP_INT_CHARACTER_STAT(MP_STAT_CRPILOTSCHOOL) > 0
|
|
bPlayed = TRUE
|
|
ENDIF
|
|
RETURN bPlayed
|
|
ENDFUNC
|
|
|
|
FUNC BOOL HAS_PLAYER_COMPLETED_A_HEIST_FINALE()
|
|
BOOL bPlayed
|
|
bPlayed = FALSE
|
|
IF GET_MP_INT_CHARACTER_AWARD(MP_AWARD_FINISH_HEISTS) > 0
|
|
bPlayed = TRUE
|
|
ENDIF
|
|
RETURN bPlayed
|
|
ENDFUNC
|
|
|
|
//PURPOSE: Returns the TRUE if the Job has been done
|
|
FUNC BOOL GET_PM_UNLOCK_PROGRESS_BOOL(INT iNum)
|
|
SWITCH iNum //GET_MP_INT_CHARACTER_STAT GET_MP_BOOL_CHARACTER_STAT
|
|
CASE 0 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_RACE_MODDED_CAR)
|
|
CASE 1 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_DRIVE_RALLY)
|
|
CASE 2 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_GTA_RACE)
|
|
CASE 3 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_HAS_PLAYER_WON_A_LAND_RACE)
|
|
CASE 4 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_BOAT_RACE)
|
|
CASE 5 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRBASEJUMP) > 0)
|
|
CASE 6 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRDM) > 0)
|
|
CASE 7 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_TEAM_DM)
|
|
CASE 8 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_HELISTRIKES) // (GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_HELI_STRIKE) > 0)
|
|
CASE 9 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_CALL_MERCENARIES)
|
|
|
|
CASE 10 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PHONE_MECH_DROP_CAR)
|
|
CASE 11 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_GONE_OFF_RADAR)
|
|
CASE 12 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_AIRSTRIKES) //FALSE //(GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_AIRSTRIKES) > 0)
|
|
CASE 13 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_CARMODS) //FALSE// (GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_CAR_MODS) > 0)
|
|
CASE 14 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_FILL_TITAN)
|
|
CASE 15 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_MOD_CAR_USING_APP)
|
|
CASE 16 RETURN (GET_MP_INT_CHARACTER_AWARD(MP_AWARD_NO_HAIRCUTS) > 0)
|
|
CASE 17 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_TATTOO) //FALSE// (GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_TATTOOS) > 0)
|
|
CASE 18 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_CLOTHES) //FALSE// (GET_MP_FLOAT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_IN_CLOTHES) > 0)
|
|
CASE 19 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_WEAPON_MODS) //FALSE//(GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_WEAPON_MODS) > 0)
|
|
|
|
CASE 20 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_BUY_APPARTMENT)
|
|
CASE 21 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_SEND_MONEY_TO_PLAYER)// (GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SENT_TO_PLY) > 0)
|
|
CASE 22 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_BUY_GARAGE)
|
|
CASE 23 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_ENTER_FRIENDS_HOUSE)
|
|
CASE 24 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_CALL_STRIPPER_HOUSE)
|
|
CASE 25 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_CALL_FRIEND)
|
|
CASE 26 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_W_WANTED_PLAYER_TV)
|
|
CASE 27 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_VEHICLE_DM)
|
|
CASE 28 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRMISSION) > 0)
|
|
CASE 29 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_MISSION_CONTACT)
|
|
|
|
CASE 30 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRGOLF) > 0)
|
|
CASE 31 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRTENNIS) > 0)
|
|
CASE 32 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRDARTS) > 0)
|
|
CASE 33 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRSHOOTRNG) > 0)
|
|
CASE 34 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_BETAMOUNT) > 0)
|
|
CASE 35 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_A_PLAYLIST)
|
|
CASE 36
|
|
IF (GET_MP_INT_PLAYER_STAT(MPPLY_RACE_2_POINT_WINS) > 0)
|
|
OR (GET_MP_INT_PLAYER_STAT(MPPLY_RACE_2_POINT_LOST) > 0)
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
CASE 37 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_CHALLENGE_ONEONONEDM) //GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_PLAY_ONE_ON_ONE_DM)
|
|
CASE 38 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_CHALLENGE_IMPROPTURACE)
|
|
CASE 39 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CRARMWREST) > 0)
|
|
|
|
CASE 40 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_TOTAL_NO_SHOPS_HELD_UP) > 0)
|
|
CASE 41 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_WENT_TO_CINEMA) //FALSE//(GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_CINEMA) > 0)
|
|
CASE 42 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_BOUGHT_A_LAPDANCE) //(GET_MP_INT_CHARACTER_STAT(MP_STAT_LAP_DANCED_BOUGHT) > 0)
|
|
CASE 43 RETURN (GET_MP_INT_CHARACTER_STAT(MP_STAT_CR_GANGATTACK_CITY) > 0 OR GET_MP_INT_CHARACTER_STAT(MP_STAT_CR_GANGATTACK_COUNTRY)>0)
|
|
CASE 44 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_SPENT_BOUNTY)//(GET_MP_INT_CHARACTER_STAT(MP_STAT_MONEY_SPENT_ON_BOUNTY) > 0)
|
|
CASE 45 RETURN GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CL_SURV_A_BOUNTY)
|
|
//CASE 46 RETURN (GET_MP_INT_CHARACTER_AWARD(MP_AWARD_SECURITY_CARS_ROBBED) > 0)
|
|
CASE 46 RETURN GET_PACKED_STAT_BOOL(PACKED_MP_COLLECT_AMMO_DROP)
|
|
CASE 47 RETURN HAS_PLAYER_PLAYED_FLIGHT_SCHOOL() // Flight School
|
|
CASE 48 RETURN HAS_PLAYER_COMPLETED_A_HEIST_FINALE() // Heists
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
PROC ADD_GENERAL_UNLOCK_ITEM(INT& iItemCount, INT iNum1, INT iNum2)
|
|
|
|
TEXT_LABEL_15 tlLabel = "PM_UGEN_T"
|
|
tlLabel += iItemCount
|
|
|
|
PM_SET_DATA_SLOT_FOR_STAT_WITH_TWO_NUMBERS(SECOND_COLUMN, iItemCount, STATS_LISTITEM_MENU_ID, iItemCount, tlLabel, "PM_UGEN_NUM", iNum1, iNum2)
|
|
iItemCount++
|
|
|
|
ENDPROC
|
|
|
|
PROC ADD_PROGRESS_UNLOCK_ITEM(INT& iItemCount, BOOL bYes)//, BOOL bUnlocks)
|
|
|
|
TEXT_LABEL_15 tlLabel = "PM_UJOB_T"
|
|
tlLabel += iItemCount
|
|
|
|
MP_SET_DATA_SLOT_SETTING_YES_NO(SECOND_COLUMN, iItemCount, STATS_LISTITEM_MENU_ID, iItemCount, tlLabel, bYes, FALSE)//bUnlocks)
|
|
iItemCount++
|
|
|
|
ENDPROC
|
|
|
|
PROC ADD_CONTENT_UNLOCK_ITEM(INT& iItemCount, STRING tlLabel, BOOL bUnlocked)
|
|
|
|
MP_SET_DATA_SLOT_SETTING_YES_NO(SECOND_COLUMN, iItemCount, STATS_LISTITEM_MENU_ID, iItemCount, tlLabel, bUnlocked, TRUE)
|
|
iItemCount++
|
|
|
|
ENDPROC
|
|
|
|
//Draw Unlocks Data
|
|
FUNC BOOL UPDATE_ALL_LIST_ITEMS(BOOL &bThisDataAvailable)
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] UPDATE_ALL_LIST_ITEMS - SET DATA SLOTS")
|
|
|
|
SET_PM_HIGHLIGHT(FIRST_COLUMN, iCurrentMenu, FALSE, TRUE)
|
|
|
|
CLEAR_PM_COLUMN(SECOND_COLUMN)
|
|
|
|
INT iItemCount = 0
|
|
INT i
|
|
|
|
INT tempachieved
|
|
INT temptotal
|
|
|
|
//Add list items for current tab
|
|
SWITCH iCurrentMenu
|
|
|
|
CASE PM_D2_GENERAL_UNLOCKS
|
|
REPEAT PM_MAX_SIZE_GENERAL_UNLOCKS i
|
|
tempachieved = GET_PM_UNLOCK_GENERAL_ACHIEVED(i)
|
|
temptotal = GET_PM_UNLOCK_GENERAL_TOTAL(i)
|
|
|
|
IF tempachieved > temptotal
|
|
PRINTLN("UPDATE_ALL_LIST_ITEMS. the achieved has gone over the limit for ", i)
|
|
PRINTLN("UPDATE_ALL_LIST_ITEMS. tempachieved = ", tempachieved)
|
|
PRINTLN("UPDATE_ALL_LIST_ITEMS. temptotal = ", temptotal)
|
|
temptotal = tempachieved
|
|
ENDIF
|
|
|
|
ADD_GENERAL_UNLOCK_ITEM(iItemCount, tempachieved, temptotal)
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE PM_D2_PROGRESS_UNLOCKS
|
|
REPEAT PM_MAX_SIZE_PROGRESS_UNLOCKS i
|
|
ADD_PROGRESS_UNLOCK_ITEM(iItemCount, GET_PM_UNLOCK_PROGRESS_BOOL(i))//, bUnlocks)
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE PM_D2_CONTENT_UNLOCKS
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T21", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CRATE_DROP)) // Crate Drop
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T22", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_RACE_TO_POINT)) // Impromptu Race
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T0", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_DEATHMATCH)) // Deathmatch (from Rank 1)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T1", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_RACE)) // Race (from Rank 1)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T2", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_STUNT_JUMPS)) // Stunt Jumps (from Rank 2)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T3", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CAR_MOD)) // Car Mod Shop (from Rank 1)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T4", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_HOLD_UPS)) // Hold Ups (from Rank 3)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T6", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_DEATHMATCH)) // One on One Deathmatch (from Rank 3)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T5", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CALL_PEGASUS)) // Pegasus (from Rank 3)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T8", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_SHOOTING_RANGE)) // Shooting Range (from Rank 3)
|
|
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T7", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_SHOPS)) // Shops (from Rank 3)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T9", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CUSTOM_CAR_GARAGE)) // Garages (from Rank 5)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T11", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CINEMA)) // Movies (from Rank 5)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T10", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_PVEH_DEL)) // Personal Vehicle Delivery (from Rank 5)
|
|
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T15", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_ARM_WRESTLING)) // Arm Wrestling (from Rank 6)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T14", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_DARTS)) // Darts (from Rank 6)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T13", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_GOLF)) // Golf (from Rank 6)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T38", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_PILOT_SCHOOL)) // San Andreas Flight School (from Rank 6)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T16", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_STRIP_CLUB)) // Strip Club (from Rank 6)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T12", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MG_TENNIS)) // Tennis (from Rank 6)
|
|
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T43", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_MISSION_CTF)) // Captures (From Rank 8)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T17", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_IMPORT_EXPORT)) // Import/Export (from Rank 8)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T18", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_BOUNTIES)) // Bounties (from Rank 10)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T19", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_BASE_JUMP)) // Parachuting (from Rank 11)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T20", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_AMMO_DROP)) // Ammo Drop (from Rank 12)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T42", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_LESTER_NO_COPS)) // Cops Turn Blind Eye (From Rank 12)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T49", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_HEIST_INTRO)) // Heists (from Rank 12) *
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T41", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_DESTROY_VEH)) // Destroy Vehicle (from Rank 15) *
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T39", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_DISTRACT_POLICE)) // Distract Cops (from Rank 15) *
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T48", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_DAILY_OBJ)) // Daily Objectives (from Rank 15) *
|
|
|
|
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T40", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_PLANE_TAKEDOWN)) // Plane Takedown (from Rank 15) *
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T44", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_LESTER_CAR)) // Locate a Car (From Rank 15)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T23", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_SURVIVAL)) // Survival (from Rank 15)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T24", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_BRUCIE_BOX)) // Bull Shark Testosterone (from Rank 17)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T25", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_GANGHIDEOUT)) // Gang Attack (from Rank 18)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T26", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_SECURITY_VAN)) // Armored Truck (from Rank 19)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T27", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_HELI_STRIKE)) // Backup Helicopter (from Rank 20)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T28", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_CALL_COP)) // Remove Wanted Level (from Rank 21)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T29", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_BOAT_PICKUP)) // Boat Pickup (from Rank 25)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T45", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_LESTER_BOAT)) // Locate a Boat (From Rank 25)
|
|
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T30", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_HELI_PICKUP)) // Helicopter Pickup (from Rank 30)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T46", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_LESTER_HELI)) // Locate a Helicopter (From Rank 35)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T31", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_SEND_MERCENARIES)) // Send Mercenaries (from Rank 35)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T32", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_OFF_THE_RADAR)) // Off the Radar (from Rank 40)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T33", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_REVEAL_PLAYERS)) // Reveal Players (from Rank 40)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T47", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_LESTER_PLANE)) // Locate a Plane (From Rank 45)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T35", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_AIRSTRIKE)) // Airstrike (from Rank 50)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T34", IS_FM_TYPE_UNLOCKED(FMMC_TYPE_THIEF)) // Mugger (from Rank 50)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T37", (GET_RANK_FROM_XP_VALUE(GET_PLAYER_XP(PLAYER_ID()), FALSE) >= 100)) // Benefactor Dubsta 6x6 Vehicle (from Rank 100)
|
|
ADD_CONTENT_UNLOCK_ITEM(iItemCount, "PM_UCON_T36", (GET_RANK_FROM_XP_VALUE(GET_PLAYER_XP(PLAYER_ID()), FALSE) >= GET_CAR_COLOUR_UNLOCK_RANK(MCT_METALS, METALS_SET_2))) // Gold Metal Vehicle Resprays (from Rank 100)
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
// Enable/disable scrolling
|
|
IF iItemCount > 16
|
|
bCanScroll = TRUE
|
|
ADD_SCALEFORMXML_INIT_COLUMN_SCROLL_GEN(SECOND_COLUMN, 2, 1, 1, 0)
|
|
ADD_SCALEFORMXML_SET_COLUMN_SCROLL(SECOND_COLUMN, 0, iItemCount)
|
|
PAUSE_MENU_ACTIVATE_CONTEXT(HASH("RScrollUpDown"))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] UPDATE_ALL_LIST_ITEMS - Display Scroll Indicator")
|
|
ELSE
|
|
bCanScroll = FALSE
|
|
ADD_SCALEFORMXML_SET_COLUMN_SCROLL(SECOND_COLUMN, -1, -1)
|
|
PAUSE_MENU_DEACTIVATE_CONTEXT(HASH("RScrollUpDown"))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] UPDATE_ALL_LIST_ITEMS - Hide Scroll Indicator")
|
|
ENDIF
|
|
|
|
PAUSE_MENU_ACTIVATE_CONTEXT(HASH("HIDE_ACCEPTBUTTON"))
|
|
PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS()
|
|
|
|
// Display setting component
|
|
PM_DISPLAY_DATA_SLOT(SECOND_COLUMN)
|
|
SHOW_PM_COLUMN(SECOND_COLUMN)
|
|
|
|
bThisDataAvailable = TRUE
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
|
|
|
|
PROC CHECK_RIGHT_STICK_SCROLL()
|
|
|
|
IF NOT IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
|
|
INT i_right_y
|
|
i_right_y = GET_CONTROL_VALUE(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)//INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
|
|
//Check for Down
|
|
IF i_right_y > 180
|
|
IF HAS_NET_TIMER_EXPIRED(iRStickTimer, iRStickTimerDelay)
|
|
IF bCanScroll
|
|
PLAY_SOUND_FRONTEND(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] R-STICK UNLOCK - MOVE DOWN")
|
|
|
|
// Send dpad-down input to right hand column
|
|
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_DOWN))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
iRStickTimerDelay = 250
|
|
RESET_NET_TIMER(iRStickTimer)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Check for Up
|
|
ELIF i_right_y < 80
|
|
IF HAS_NET_TIMER_EXPIRED(iRStickTimer, iRStickTimerDelay)
|
|
IF bCanScroll
|
|
PLAY_SOUND_FRONTEND(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] R-STICK UNLOCK - MOVE UP")
|
|
|
|
// Send dpad-up input to right hand column
|
|
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(SCALEFORM_INPUT_EVENT_UP))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
iRStickTimerDelay = 250
|
|
RESET_NET_TIMER(iRStickTimer)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iRStickTimerDelay != -1
|
|
iRStickTimerDelay = -1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC INIT_MENU()
|
|
FRONTEND_MENU_SCREEN CurrentScreen
|
|
FRONTEND_MENU_SCREEN aNextScreen
|
|
INT iMenu
|
|
GET_MENU_LAYOUT_CHANGED_EVENT_DETAILS(CurrentScreen, aNextScreen, iMenu)
|
|
|
|
CLEAR_PM_COLUMN(FIRST_COLUMN)
|
|
|
|
iCurrentMenu = PM_D2_GENERAL_UNLOCKS
|
|
|
|
MP_SET_DATA_SLOT(FIRST_COLUMN, PM_D2_GENERAL_UNLOCKS, STATS_CATEGORY_MENU_ID, PM_D2_GENERAL_UNLOCKS, TRUE, "PM_UL_D0")
|
|
MP_SET_DATA_SLOT(FIRST_COLUMN, PM_D2_PROGRESS_UNLOCKS, STATS_CATEGORY_MENU_ID, PM_D2_PROGRESS_UNLOCKS, TRUE, "PM_UL_D1")
|
|
MP_SET_DATA_SLOT(FIRST_COLUMN, PM_D2_CONTENT_UNLOCKS, STATS_CATEGORY_MENU_ID, PM_D2_CONTENT_UNLOCKS, TRUE, "PM_UL_D2")
|
|
|
|
SHOW_PM_COLUMN(FIRST_COLUMN)
|
|
HIDE_PM_COLUMN(THIRD_COLUMN)
|
|
HIDE_PM_COLUMN(3)
|
|
HIDE_PM_COLUMN(4)
|
|
HIDE_PM_COLUMN(5)
|
|
PM_DISPLAY_DATA_SLOT(FIRST_COLUMN)
|
|
//SET_PM_HIGHLIGHT(FIRST_COLUMN, iCurrentMenu, FALSE, TRUE)
|
|
|
|
UPDATE_ALL_LIST_ITEMS(bDataAvailable)
|
|
|
|
PAUSE_MENU_DEACTIVATE_CONTEXT(HASH("RScrollUpDown"))
|
|
PAUSE_MENU_ACTIVATE_CONTEXT(HASH("HIDE_ACCEPTBUTTON"))
|
|
PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS()
|
|
|
|
bInitMenu = TRUE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_UNLOCKS - INIT_MENU Done")
|
|
ENDPROC
|
|
|
|
|
|
|
|
SCRIPT( PAUSE_MENU_LAUNCH_DATA args )
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_UNLOCKS - Select Menu Launched with args: ", args.operation, ", Menu: ", args.MenuScreenId, ", Prev:", args.PreviousId, ", Unique: ", args.UniqueIdentifier)
|
|
|
|
FORCE_SCRIPTED_GFX_WHEN_FRONTEND_ACTIVE(TRUE)
|
|
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
FRONTEND_MENU_SCREEN CurrentScreen
|
|
FRONTEND_MENU_SCREEN aNextScreen
|
|
INT iMenu
|
|
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
|
|
IF IS_XBOX_PLATFORM()
|
|
OR IS_PLAYSTATION_PLATFORM()
|
|
OR IS_PC_VERSION()
|
|
AWARDS_IN_HEISTS = 40
|
|
ENDIF
|
|
|
|
|
|
//INIT_MENU()
|
|
|
|
SWITCH args.operation
|
|
|
|
CASE kUpdate
|
|
WHILE bShouldQuitUnlocksScript = FALSE
|
|
|
|
WAIT(0)
|
|
|
|
//Check for right stick scroll
|
|
CHECK_RIGHT_STICK_SCROLL()
|
|
|
|
//Check for Back
|
|
IF HAS_HUD_CONTROL_BEEN_PRESSED_PAUSE(INPUT_FRONTEND_CANCEL)
|
|
NET_NL()NET_PRINT(" INPUT_FRONTEND_CANCEL PRESSED ")
|
|
//PLAY_SOUND_FRONTEND(-1, "CANCEL", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
RELEASE_CONTROL_OF_FRONTEND()
|
|
bShouldQuitUnlocksScript = TRUE
|
|
ENDIF
|
|
|
|
//Check for Up/Down Press
|
|
IF HAS_MENU_LAYOUT_CHANGED_EVENT_OCCURRED()
|
|
IF bInitMenu = FALSE
|
|
IF RECALCULATE_PLAYED_COUNTS_FOR_PAUSE_MENU()
|
|
INIT_MENU()
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_PAUSE_MENU, "MP_UNLOCKS - HAS_MENU_LAYOUT_CHANGED_EVENT_OCCURRED = TRUE")
|
|
GET_MENU_LAYOUT_CHANGED_EVENT_DETAILS(CurrentScreen, aNextScreen, iMenu)
|
|
CPRINTLN(DEBUG_PAUSE_MENU, " - CurrentScreen = ", CurrentScreen, " - ", GET_XML_SCREEN_STRING_VALUE(CurrentScreen))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, " - aNextScreen = ", aNextScreen, " - ", GET_XML_SCREEN_STRING_VALUE(aNextScreen))
|
|
CPRINTLN(DEBUG_PAUSE_MENU, " - iMenu = ", iMenu, " - ", iMenu)
|
|
|
|
// If new category has been selected, repopulate listitems
|
|
IF aNextScreen = MENU_UNIQUE_ID_STATS_CATEGORY
|
|
iCurrentMenu = iMenu
|
|
CPRINTLN(DEBUG_PAUSE_MENU, " - iCurrentMenu = ", iCurrentMenu)
|
|
UPDATE_ALL_LIST_ITEMS(bDataAvailable)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDWHILE
|
|
BREAK
|
|
|
|
CASE kFill
|
|
NET_NL()NET_PRINT("MP_Unlocks: args.operation = kFill")
|
|
BREAK
|
|
|
|
CASE kLayoutChange
|
|
NET_NL()NET_PRINT("MP_Unlocks: args.operation = kLayoutChange")
|
|
BREAK
|
|
|
|
CASE kTriggerEvent
|
|
NET_NL()NET_PRINT("MP_Unlocks: args.operation = kTriggerEvent")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
PAUSE_MENU_DEACTIVATE_CONTEXT(HASH("RScrollUpDown"))
|
|
PAUSE_MENU_DEACTIVATE_CONTEXT(HASH("HIDE_ACCEPTBUTTON"))
|
|
PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS()
|
|
|
|
NET_NL()NET_PRINT("Quitting Unlocks Screen")
|
|
RELEASE_CONTROL_OF_FRONTEND()
|
|
WHILE TRUE
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
ENDSCRIPT
|